Recompile Yaroze Source

Need help for the Yaroze SDK? Ask a question or look for an answer here. For programming questions or anything else, please see the PlayStation 1 section since the Yaroze has the exact same hardware as a normal PlayStation
mrhaboobi
Active PSXDEV User
Active PSXDEV User
Posts: 59
Joined: Nov 18, 2012

Recompile Yaroze Source

Post by mrhaboobi » December 19th, 2012, 6:54 am

Hey all,

Im wondering if anyone has attempted to update the sony tools to work correctly using the latest version of gcc? From memory the sources are pretty old version of GCC (2.7 or 2.8 from memory ), compiled using DJGPP so that they work under windows and not requiring Cygwin or anything else. id be keen to know if anyone has gotten the tools to recompile correctly, as ive tried a few times, i have patch files from the japanese web site, but again ive had little luck getting anything going.. Would be great is someone could get a new build up..

User avatar
Shadow
Admin / PSXDEV
Admin / PSXDEV
Posts: 2670
Joined: Dec 31, 2012
PlayStation Model: H2000/5502
Discord: Shadow^PSXDEV

Post by Shadow » December 19th, 2012, 1:18 pm

Why can't you just install the Yaroze SDK and compile them that way?
Development Console: SCPH-5502 with 8MB RAM, MM3 Modchip, PAL 60 Colour Modification (for NTSC), PSIO Switch Board, DB-9 breakout headers for both RGB and Serial output and an Xplorer with CAETLA 0.34.

PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.

mrhaboobi
Active PSXDEV User
Active PSXDEV User
Posts: 59
Joined: Nov 18, 2012

Post by mrhaboobi » January 11th, 2013, 12:37 pm

Shad0w wrote:Why can't you just install the Yaroze SDK and compile them that way?
Im talking about recompiling the Yaroze compiler, which was originally compiled using an old version of DJGPP which didnt/doesnt support Windows XP etc.. When you try and build yaroze programs using the original yaroze dev kit you get memory issues, its a fairly well known issue, discussed numerous times on the original yaroze meembers forums and most people just stuck with a windows 98 machine or vm. not really ideal :)

a few people also recompiled for C++ support, i believe GCC 2.81 waas used at the time, but would also be keen to know if it can be upgraded to something newer, im not knowledgeable on GCC or cross compiling.. however i have the yaroze src, and what were supposedly the patch files to be able to get the yaroze code working on newer gcc..

User avatar
gwald
Net Yaroze Enthusiast
Net Yaroze Enthusiast
Posts: 282
Joined: Sep 18, 2013
I am a: programmer/DBA
PlayStation Model: Net Yaroze
Contact:

Post by gwald » January 7th, 2016, 12:19 pm

mrhaboobi wrote:
Shad0w wrote:Why can't you just install the Yaroze SDK and compile them that way?
Im talking about recompiling the Yaroze compiler, which was originally compiled using an old version of DJGPP which didnt/doesnt support Windows XP etc.. When you try and build yaroze programs using the original yaroze dev kit you get memory issues, its a fairly well known issue, discussed numerous times on the original yaroze meembers forums and most people just stuck with a windows 98 machine or vm. not really ideal :)

a few people also recompiled for C++ support, i believe GCC 2.81 waas used at the time, but would also be keen to know if it can be upgraded to something newer, im not knowledgeable on GCC or cross compiling.. however i have the yaroze src, and what were supposedly the patch files to be able to get the yaroze code working on newer gcc..
http://www.cebix.net/
" A very old document explaining how to use GCC for Net Yaroze development "
Also mentioned here:

http://www.identicalsoftware.com/yaroze/

It's a bit over my head, but it looks well documented.. looks like were stuck in win98 :shock:
win98 works vbox.. BUT the PCI system peripherals isn't detected so no COM1 port :evil:
Last edited by gwald on January 13th, 2016, 1:35 pm, edited 2 times in total.

User avatar
gwald
Net Yaroze Enthusiast
Net Yaroze Enthusiast
Posts: 282
Joined: Sep 18, 2013
I am a: programmer/DBA
PlayStation Model: Net Yaroze
Contact:

Post by gwald » January 9th, 2016, 10:23 am

mrhaboobi wrote:Hey all,

Im wondering if anyone has attempted to update the sony tools to work correctly using the latest version of gcc? From memory the sources are pretty old version of GCC (2.7 or 2.8 from memory ), compiled using DJGPP so that they work under windows and not requiring Cygwin or anything else. id be keen to know if anyone has gotten the tools to recompile correctly, as ive tried a few times, i have patch files from the japanese web site, but again ive had little luck getting anything going.. Would be great is someone could get a new build up..
So I thought I would go through the document by Christian Bauer:
http://www.cebix.net/ (attached)

This is my first time compiling a compiler, but his docs and others more modern are pretty good.. good enough to compile the binutils.
I'm using the latest Mint linux 17.3 for a quick test, but I need it for windows.
Requires:

apt-get install Texinfo
apt-get install g++ make gawk
apt-get install libmpc-dev
apt-get install libc-dev-bin
apt-get install libc-dev


export PATH=/usr/local/ target /bin:$PATH

I'm using the 2nd latest version of binutils/gcc as the old 2001 don't compile.

My gcc config, runs with no errors/warnings:
../gcc-5.2.0/configure --prefix=/usr/local --target=mipsel-unknown-ecoff --with-gnu-as --with-gnu-ld --disable-nls --disable-multilib --enable-languages=c --build=i686-linux-gnu


But I'm stuck at the compiling gcc:
*** Configuration mipsel-unknown-ecoff not supported

From google'ing I guess that configuration has been dropped?

I would guess the Net Yaroze toolchain would be the same as compiling with the PSY-Q libs? just different library right?
Could be different due to the dynamic linking of the yaroze lib in PS ram?
elf = PSY-Q
ecoff = Net yaroze

update:
https://gcc.gnu.org/install/specific.html#mips-x-x

So, as a test I used mipsel-unknow-elf, which is supported and looks like its working....

update:
Looks like it compiled as expected, but couldn't find the /usr/local/mipsel-unknown-elf/lib etc, because I did that using the ecoff.
checking for mipsel-unknown-elf-ar... mipsel-unknown-elf-ar
checking for mipsel-unknown-elf-lipo... mipsel-unknown-elf-lipo
checking for mipsel-unknown-elf-nm... /home/ny/NY/build-gcc/./gcc/nm
checking for mipsel-unknown-elf-ranlib... mipsel-unknown-elf-ranlib
checking for mipsel-unknown-elf-strip... mipsel-unknown-elf-strip
checking whether ln -s works... yes
checking for mipsel-unknown-elf-gcc... /home/ny/NY/build-gcc/./gcc/xgcc -B/home/ny/NY/build-gcc/./gcc/ -B/usr/local/mipsel-unknown-elf/bin/ -B/usr/local/mipsel-unknown-elf/lib/ -isystem /usr/local/mipsel-unknown-elf/include -isystem /usr/local/mipsel-unknown-elf/sys-include
checking for suffix of object files... configure: error: in `/home/ny/NY/build-gcc/mipsel-unknown-elf/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make[1]: *** [configure-target-libgcc] Error 1
make[1]: Leaving directory `/home/ny/NY/build-gcc'
make: *** [all] Error 2
ECOFF info:
http://web.mit.edu/rhel-doc/3/rhel-as-e ... bject.html


http://crosstool-ng.org/#status also doesn't have ecoff

Kinda close:
https://sourceware.org/ml/crossgcc/2003 ... 00110.html


old patch
https://www.niksula.hut.fi/~buenos/cros ... r-old.html

Someone else trying to do it
http://lukasz.dk/mirror/forums.ps2dev.o ... ml?t=11275


Going to try and build the older versions, with C errors :crying

So, I guess this is the process:
Compile an old 1999-2000 toolchain; then with that,
Compile the mips-ecoff NY toolchain
:lol: :lol: :shock:

[youtube]http://www.youtube.com/watch?v=fCi-fytEQO8[/youtube]


links:
https://groups.yahoo.com/neo/groups/psx ... sages/4791
https://sourceware.org/ml/crossgcc/1999 ... 00187.html
https://github.com/andrewwutw/build-djgpp
https://groups.google.com/forum/#!topic ... U9swPq16zk

Regarding the pdf doc,I've downloaded RH 6 (from 2000).
See if it was/is that easy, except siocons is pure dos hackery... nope doesn't start on virtualbox :?

I've emailed of few people that might help also.. but :shrug
I have a copy of the official NY gcc, gdb and siocons which is the real issue that the NY is stuck in win98.
It's build with DJGPP, it has the configurations already set.
I downloaded the v2 of gcc, make, binutils etc, but it doesn't compile :evil: :twisted: :twisted:

also, I've found a DJGPP ISO
https://archive.org/download/DJGPP_Deve ... ugust_1998

If anyone want the sources, PM me, happy to share as it's gnu.




I can't live like this!
I can't! Please no I can't! I can't! Help me, somebody please, help me!
Mother where are ya? Help me, mother, I'm having a nightmare and I can't wake up
:dance :dance
You do not have the required permissions to view the files attached to this post.

User avatar
gwald
Net Yaroze Enthusiast
Net Yaroze Enthusiast
Posts: 282
Joined: Sep 18, 2013
I am a: programmer/DBA
PlayStation Model: Net Yaroze
Contact:

Post by gwald » January 11th, 2016, 9:26 am

This is how far I've gotten, I can build the utilbin and partly the gcc/gar/etc.

If your keen, this is how to do it:
following this:
http://wiki.osdev.org/Building_GCC
http://wiki.osdev.org/GCC_Cross-Compiler#Windows_Users


Using cygwin, install:
GNU G++
GNU Make
GNU Bison
Flex
GNU GMP
GNU MPFR
GNU MPC
ISL dev, lib
CLooG dev, lib

Download :
texinfo-4.13
gdb-6.3
gcc-core-3.3.6
binutils-2.16
extract to C:\cygwin\home\Administrator folders which is your "linux" home

The "newest" mipsel-ecoff supported gcc was gcc-core-3.3.6 from 2005-05-03

First build textinfo (which supports the older builds, the new ones don't) as part of your toolchain.
in root

Code: Select all

mkdir build-textinfo
cd build-textinfo
../texinfo-4.13/configure
make install
whereis makeinfo
 
next start building the toolchain.

Load the env vars:
export TARGET=mipsel-ecoff
export PREFIX="$HOME/opt"
export PATH="$PREFIX/bin:$PREFIX/bin/$TARGET/bin:/usr/local/bin/:$PATH"
copy the yaroze stuff as explain on the pdf, here's my script, i did it a folder yaroze.
mkdir -p $PREFIX/$TARGET
cp -a yaroze/* $PREFIX/$TARGET
next.. binutils
mkdir build-binutils
cd build-binutils
../binutils-2.16/configure --target=$TARGET --prefix="$PREFIX" --with-sysroot --disable-nls --disable-werror
make
make install
next gcc, needs --enable-obsolete

Code: Select all

mkdir build-gcc
cd build-gcc

../gcc-3.3.6/configure --prefix=$PREFIX  --target=$TARGET --with-gnu-as --with-gnu-ld --disable-nls --disable-multilib --enable-languages=c  --enable-obsolete 
I"m not sure what the flags --with-gnu-as --with-gnu-ld do
The pdf doesn't mention them...


It will configure fine, then this is where I'm stuck.. for now :ugeek:
make all-gcc
It will create the obj files but I can't get it to link

Code: Select all

Administrator@win03 ~/build-gcc
$ make all-gcc
make[1]: Entering directory '/home/Administrator/build-gcc/libiberty'
make[2]: Entering directory '/home/Administrator/build-gcc/libiberty/testsuite'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/Administrator/build-gcc/libiberty/testsuite'
make[1]: Leaving directory '/home/Administrator/build-gcc/libiberty'
make[1]: Entering directory '/home/Administrator/build-gcc/gcc'
(cd intl && make all)
make[2]: Entering directory '/home/Administrator/build-gcc/gcc/intl'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/Administrator/build-gcc/gcc/intl'
make GCC_FOR_TARGET="/home/Administrator/build-gcc/gcc/xgcc -B/home/Administrator/build-gcc/gcc/ -B/home/Administrator/opt/mipsel-ecoff/bin/ -B/home/Administrator/opt/mipsel-ecoff/lib/ -isystem /home/Administrator/opt/mipsel-ecoff/include"   BUILD_PREFIX="" BUILD_PREFIX_1="loser-"   AR_FOR_TARGET="mipsel-ecoff-ar"   AR_CREATE_FOR_TARGET="mipsel-ecoff-ar  rc"   AR_FLAGS_FOR_TARGET=""   CFLAGS="-g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long "   RANLIB_FOR_TARGET="mipsel-ecoff-ranlib"   RANLIB_TEST_FOR_TARGET="[ -f mipsel-ecoff-ranlib ] || ( [ "i686-pc-cygwin" = "mipsel-unknown-ecoff" ] && [ -f /usr/bin/ranlib -o -f /bin/ranlib ] )"   NM_FOR_TARGET="/home/Administrator/opt/mipsel-ecoff/bin/nm.exe" AWK="gawk"   LIBGCC2_CFLAGS="-O2  -DIN_GCC -DCROSS_COMPILE   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include  -G 0 -g  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc"   INCLUDES="-I. -I. -I../../gcc-3.3.6/gcc -I../../gcc-3.3.6/gcc/. -I../../gcc-3.3.6/gcc/config -I../../gcc-3.3.6/gcc/../include"   CONFIG_H="config.h auto-host.h ../../gcc-3.3.6/gcc/../include/ansidecl.h ../../gcc-3.3.6/gcc/config/i386/xm-cygwin.h ../../gcc-3.3.6/gcc/config/mips/mips.h ../../gcc-3.3.6/gcc/config/dbx.h ../../gcc-3.3.6/gcc/defaults.h ../../gcc-3.3.6/gcc/defaults.h insn-constants.h insn-flags.h" MACHMODE_H="machmode.h machmode.def "   LIB1ASMSRC='mips/mips16.S'   MAKEOVERRIDES=   -f libgcc.mk all
make[2]: Entering directory '/home/Administrator/build-gcc/gcc'
for d in libgcc; do   if [ -d $d ]; then true; else /bin/sh ../../gcc-3.3.6/gcc/mkinstalldirs $d; fi; done
if [ -f stmp-dirs ]; then true; else touch stmp-dirs; fi
/home/Administrator/build-gcc/gcc/xgcc -B/home/Administrator/build-gcc/gcc/ -B/home/Administrator/opt/mipsel-ecoff/bin/ -B/home/Administrator/opt/mipsel-ecoff/lib/ -isystem /home/Administrator/opt/mipsel-ecoff/include -O2  -DIN_GCC -DCROSS_COMPILE   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include  -G 0 -g  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I../../gcc-3.3.6/gcc -I../../gcc-3.3.6/gcc/. -I../../gcc-3.3.6/gcc/config -I../../gcc-3.3.6/gcc/../include -DL_m16addsf3 -xassembler-with-cpp -c ../../gcc-3.3.6/gcc/config/mips/mips16.S -o libgcc/./_m16addsf3.o
[b]/home/Administrator/opt/mipsel-ecoff/bin/as: unrecognized option `-mdebug'[/b]
libgcc.mk:8: recipe for target 'libgcc/./_m16addsf3.o' failed
make[2]: *** [libgcc/./_m16addsf3.o] Error 1
make[2]: Leaving directory '/home/Administrator/build-gcc/gcc'
Makefile:1211: recipe for target 'stmp-multilib' failed
make[1]: *** [stmp-multilib] Error 2
make[1]: Leaving directory '/home/Administrator/build-gcc/gcc'
Makefile:1551: recipe for target 'all-gcc' failed
make: *** [all-gcc] Error 2

Administrator@win03 ~/build-gcc
$

/home/Administrator/opt/mipsel-ecoff/bin/as: unrecognized option `-mdebug'


Looks simple enough.. but i'll leave it there for now

Tip
Keep a backups of the c:\cygwin folder

User avatar
gwald
Net Yaroze Enthusiast
Net Yaroze Enthusiast
Posts: 282
Joined: Sep 18, 2013
I am a: programmer/DBA
PlayStation Model: Net Yaroze
Contact:

Post by gwald » January 17th, 2016, 4:48 pm

I got the yaroze gdb compiler compiled using the DJGPP cdrom from archive.org.
It ran in winXP, but had problems communicating :'(

So I've completely given up on this.. way too hard for me :(

mrhaboobi
Active PSXDEV User
Active PSXDEV User
Posts: 59
Joined: Nov 18, 2012

Post by mrhaboobi » February 12th, 2016, 1:35 pm

thats exactly where i go to. giving up that is :)
i spent many hours / days trying djgpp but i believe the old tools work in windows 8 ok...

mrhaboobi
Active PSXDEV User
Active PSXDEV User
Posts: 59
Joined: Nov 18, 2012

Post by mrhaboobi » November 12th, 2018, 6:47 am

I'm giving this a bump becaause im sure there are smart cookies here who could help make this a reality..

mrhaboobi
Active PSXDEV User
Active PSXDEV User
Posts: 59
Joined: Nov 18, 2012

Post by mrhaboobi » November 13th, 2018, 8:54 am

gwald wrote: January 17th, 2016, 4:48 pm I got the yaroze gdb compiler compiled using the DJGPP cdrom from archive.org.
It ran in winXP, but had problems communicating :'(

So I've completely given up on this.. way too hard for me :(
You mentioned

"I"m not sure what the flags --with-gnu-as --with-gnu-ld do"

the LD is the Linker and you would have needed this for linking to work which i believe was your error?

User avatar
gwald
Net Yaroze Enthusiast
Net Yaroze Enthusiast
Posts: 282
Joined: Sep 18, 2013
I am a: programmer/DBA
PlayStation Model: Net Yaroze
Contact:

Post by gwald » November 13th, 2018, 1:59 pm

Yeah, that's not the reason why I gave up, but this:
gwald wrote: January 9th, 2016, 10:23 am So, I guess this is the process:
Compile an old 1999-2000 toolchain; then with that,
Compile the mips-ecoff NY toolchain
:lol: :lol: :shock:
You can only build a toolchain with a compatible toolchain, so that would be a nightmare just figuring that out.
But honestly, using a virtual machine wasn't too bad.

User avatar
gwald
Net Yaroze Enthusiast
Net Yaroze Enthusiast
Posts: 282
Joined: Sep 18, 2013
I am a: programmer/DBA
PlayStation Model: Net Yaroze
Contact:

Post by gwald » November 18th, 2018, 5:53 pm

Okay, so this will be my last go at this :lol:
gwald wrote: January 11th, 2016, 9:26 am The "newest" mipsel-ecoff supported gcc was gcc-core-3.3.6 from 2005-05-03
I'm not sure where I got 3.3.6 from?


https://www.gnu.org/software/gcc/gcc-3.3/
states:
Obsolete Systems
MIPS:
Generic ECOFF, mips*-*-ecoff*


I should have used GCC 3.2.3. which was the lastest of 3.2
https://www.gnu.org/software/gcc/gcc-3.2/changes.html
It's here:
https://ftp.gnu.org/gnu/gcc/gcc-3.2.3/ 2003-04-23 17:18 26M

So the hard part is finding a pre compiled mingw or cygwin gcc 3.2.3 or as close to
IE:
gcc-3.4.4-999 (2005-05-19)
https://ptolemy.berkeley.edu/ptolemyII/ ... cygwin.htm (missing Bison, Flex, etc)

mrhaboobi
Active PSXDEV User
Active PSXDEV User
Posts: 59
Joined: Nov 18, 2012

Post by mrhaboobi » November 19th, 2018, 1:46 pm

Oh goodie you are trying again :)

User avatar
gwald
Net Yaroze Enthusiast
Net Yaroze Enthusiast
Posts: 282
Joined: Sep 18, 2013
I am a: programmer/DBA
PlayStation Model: Net Yaroze
Contact:

Post by gwald » November 22nd, 2018, 8:19 am

mrhaboobi wrote: November 19th, 2018, 1:46 pm Oh goodie you are trying again :)
Ha, it's more complicated.
I can't find a full 2000-2010 repo cygwin
Might be easier getting a linux repo with a windows cross compiler and using that, but last time I tried:
gwald wrote: January 9th, 2016, 10:23 am I've downloaded RH 6 (from 2000).
See if it was/is that easy, except siocons is pure dos hackery... nope doesn't start on virtualbox :?
So :roll:
:shrug

mrhaboobi
Active PSXDEV User
Active PSXDEV User
Posts: 59
Joined: Nov 18, 2012

Post by mrhaboobi » November 22nd, 2018, 11:01 am

You should have siont which was a rebuild of sicons to supports nt and non dos stuff

User avatar
gwald
Net Yaroze Enthusiast
Net Yaroze Enthusiast
Posts: 282
Joined: Sep 18, 2013
I am a: programmer/DBA
PlayStation Model: Net Yaroze
Contact:

Post by gwald » November 22nd, 2018, 9:15 pm

I use siocons in wine, it works for me.
It also works in win32, ie winXP

danhans42
BANNED
BANNED
Posts: 329
Joined: Nov 28, 2012

Post by danhans42 » November 22nd, 2018, 11:52 pm

mrhaboobi wrote: November 22nd, 2018, 11:01 am You should have siont which was a rebuild of sicons to supports nt and non dos stuff
Where can you find SioNT?

Thanks

mrhaboobi
Active PSXDEV User
Active PSXDEV User
Posts: 59
Joined: Nov 18, 2012

Post by mrhaboobi » November 26th, 2018, 12:47 pm

danhans42 wrote: November 22nd, 2018, 11:52 pm
mrhaboobi wrote: November 22nd, 2018, 11:01 am You should have siont which was a rebuild of sicons to supports nt and non dos stuff
Where can you find SioNT?

Thanks
It was a bit of code from the Yaroze Forums long ago.

danhans42
BANNED
BANNED
Posts: 329
Joined: Nov 28, 2012

Post by danhans42 » November 26th, 2018, 6:57 pm

I have a full backup of the forums and the user ftp so will have a look through.

mrhaboobi
Active PSXDEV User
Active PSXDEV User
Posts: 59
Joined: Nov 18, 2012

Post by mrhaboobi » November 27th, 2018, 12:49 pm

danhans42 wrote: November 26th, 2018, 6:57 pm I have a full backup of the forums and the user ftp so will have a look through.
From memory it was Frothy or Graeme Evans ( names seems to be stuck in my head )

Same guy who did the C++ builds.

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests