Opened 3 years ago

Closed 16 months ago

Last modified 4 months ago

#6987 closed defect (wontfix)

PS2: compilation story

Reported by: SF/akuhak Owned by: csnover
Priority: normal Component: Port: PS2
Keywords: Cc:
Game:

Description

i post it here cause I cannot register at forum.

First of all no need to modify for specific revision (1641) as everything is working in latest revisions. I fixed that issue so that note can be erased. Zlib and libmad installed just fine.

// zlib & libmad
git clone https://github.com/PS2SDK/ps2sdk-ports.git
cd ps2sdk-ports
cd zlib
make
make install
cd ../libmad
mkdir ee/lib
make
make install
cd ..

// Tremor (unoptimized)
svn co http://svn.xiph.org/trunk/Tremor/
cd Tremor
make
./autogen.sh

And now Tremor failes at configure stage with error:
./configure: line 11504: PKG_PROG_PKG_CONFIG: command not found
./configure: line 11509: syntax error near unexpected token OGG,' ./configure: line 11509: PKG_CHECK_MODULES(OGG, ogg >= 1.0, HAVE_OGG=yes, HAVE_OGG=no)'

Ok im lazy and didnt fix tremor and just ignore this error. we can compile it without ogg support so lets try! Next step. IsjPCM

// sjcpm (unoptimized)
git clone https://github.com/AzagraMac/PS2_SDK.git
cd PS2_SDK/isjcpm
make
make install

And now scummvm

git clone https://github.com/scummvm/scummvm.git

If we will try to go into trunk/backends/platform/ps2 we will fail cause we need configure scummvm first. So we launch this command:

./configure --backend=ps2 --host=ps2 --disable-tremor --disable-all-engines

But! Wait a moment! --disable-tremor doesn't work! We still has tremor enabled -_- OK i opened configure, go to line 2874 and changed it into '_tremor=no'
BTW --disable-all-engines which I used to speed up compilation works just fine.
Rerun that command

./configure --backend=ps2 --host=ps2 --disable-all-engines

But if we launch now make it will fail cause it cannot find Isjpcm library. Ok lets fix configure once more.
Go to line 3041 and add after that:
append_var "-I$PS2DEV/isjpcm/include"
and after line 3048
append_var LDFLAGS "-L$PS2DEV/isjpcm/lib"

And again:

./configure --backend=ps2 --host=ps2 --disable-all-engines

finally everything seems ok. Lets compile (i also removed -pedantic to get rid of comma at end of enumerator list warnings):

Great! Now it compiles just fine. Lets test it.

Download pcsx2, create iso file with all irx files and scumvm files, and launch iso. Yeah - it is dirty but working debugging. And volia - we get to the scummvm main screen. But we got some red errors in pcsx2 console window. It is very difficult to understand where is our error produced cause debugginf information is hidden from us. We can solve this problem: just go into backend/platform/ps2 and replace all occurrences "sioprintf" into "sio_printf" in all files except of ps2debug.h and ps2debug.cpp and now ee_sio is talking with us :) Nevermind I already discovered that error is produced by SjPCM_Init(0) - how to fix I dont know for now...
BTW red errors in pcsx2 which are just ignored in real ps2 will produce just machine freeze.

So my questions and requests are:
1) How to compile Tremor?
2) Make --disable-tremor more stronger than rule provided by --backend=...
3) It will be useful to get rid of all of those irx files. Now you NEED to keep cd inserted in ps2 if you want to launch elf. Just incapsulate it into ELF file - not very difficult.
4) It is better not to use ROM0:LIBSD cause in early ps2s there is no such module in bios (as result emulator fails). It will be better to switch into homebrew freesd.irx
5) The same thing about SifIopReset("rom0:UDNL rom0:EELOADCNF", 0) in early models this code will state ps2 into falty mode, it will be better to reset iop with NULL and than fix code (for example by adding some sbv patches)
4) In fact it is possible to add libjpeg and libpng support very easily cause ps2 already has ported libraries.
5) The same for freetype and mpeg2 libraries but probably it is more difficult.
6) Fix scummvm\backends\platform\ps2\iop\CoDyVDfs\ to be compilable with latest revisions of ps2sdk (not so necessary)

As about night builds - they freeze at PFS initialization so I can assume that buildbot is using old version of ps2sdk.

Ticket imported from: bugs/6987.

Change History (5)

comment:1 Changed 3 years ago by SF/akuhak

Here screenshot.

comment:2 Changed 2 years ago by wjp

Component: Engine: ZVisionPorts
Game: Zork Grand Inquisitor

comment:3 Changed 16 months ago by csnover

Owner: set to csnover
Resolution: wontfix
Status: newclosed

This is not a ticket but rather a forum post disguised as a ticket.

comment:4 Changed 4 months ago by digitall

Component: PortsPort: PS2
Note: See TracTickets for help on using tickets.