ScummVM PS2 Port Compilation

Subforum for discussion and help with ScummVM's PlayStation 2 port

Moderator: ScummVM Team

Post Reply
stonedge
Posts: 1
Joined: Tue Mar 21, 2006 3:19 pm
Location: Canada

ScummVM PS2 Port Compilation

Post by stonedge »

Im currently looking for instruction on how to compile this port(library needed, platform param, etc.).... the configure script don't include this platform.

did someone know where i can find this info?

Running on Fedora core 4 with toolchain...

thanks in advance

Stonedge
mac_es
Posts: 145
Joined: Mon Oct 31, 2005 9:37 am

Post by mac_es »

Have you found something?
vetoed615
Posts: 6
Joined: Tue Jul 08, 2008 2:15 pm

Post by vetoed615 »

So, is there some kind of guide or at least some tips? Already got all libraries and installed the PS2Dev toolchain.
What should I do next, how to configure it and begin the make?
mac_es
Posts: 145
Joined: Mon Oct 31, 2005 9:37 am

Post by mac_es »

In which system?

I'm able to compile it under XP whith mingw/msys.
vetoed615
Posts: 6
Joined: Tue Jul 08, 2008 2:15 pm

Post by vetoed615 »

Under Ubuntu on a VM. Got it more or less compiled now.

What I'm currently missing is MPEG2 suppport. Two problems with that:
- <inttypes.h> required by graphics\mpeg_player.h is nowhere to be seen in PS2SDK,
- libmpeg is also not in PS2SDK, what version is known to be portable to PS2SDK?
User avatar
eriktorbjorn
ScummVM Developer
Posts: 3561
Joined: Mon Oct 31, 2005 7:39 am

Post by eriktorbjorn »

vetoed615 wrote: What I'm currently missing is MPEG2 suppport.
It's quite possible that you don't need that. The only games that use it are Broken Sword 1 and 2, and only if you use the older, low-quality MPEG cutscenes. The newer DXA cutscenes don't need it.
vetoed615
Posts: 6
Joined: Tue Jul 08, 2008 2:15 pm

Post by vetoed615 »

eriktorbjorn wrote: It's quite possible that you don't need that. The only games that use it are Broken Sword 1 and 2, and only if you use the older, low-quality MPEG cutscenes. The newer DXA cutscenes don't need it.
I just prefer to start with a completely working setup.
Speaking of DXA, is there some kind of selector DXA/MPEG2, or just disabling MPEG2 will do?
User avatar
eriktorbjorn
ScummVM Developer
Posts: 3561
Joined: Mon Oct 31, 2005 7:39 am

Post by eriktorbjorn »

vetoed615 wrote: Speaking of DXA, is there some kind of selector DXA/MPEG2, or just disabling MPEG2 will do?
The logic in Broken Sword 2 goes like this:

1) If ScummVM is compiled with zlib support, and it can find the DXA file for the cutscene, it will play that.

2) Otherwise, if ScummVM is compiled with MPEG2 support, and it can find the MPEG file for the cutscene, it will play that.

3) Otherwise, it will try to play just the voice-over and, optionally, subtitles of the cutscene.
vetoed615
Posts: 6
Joined: Tue Jul 08, 2008 2:15 pm

Post by vetoed615 »

Thanks.

Any known pitfalls about the PS2 port? Like, for example, not using USE_MT32EMU or something. Cause the rebuild isn't lightning fast on the VM.
User avatar
eriktorbjorn
ScummVM Developer
Posts: 3561
Joined: Mon Oct 31, 2005 7:39 am

Post by eriktorbjorn »

vetoed615 wrote: Any known pitfalls about the PS2 port? Like, for example, not using USE_MT32EMU or something. Cause the rebuild isn't lightning fast on the VM.
I don't really know anything abuot the PS2, but the MT-32 emulator supposedly needs a quite fast CPU on a desktop computer.
vetoed615
Posts: 6
Joined: Tue Jul 08, 2008 2:15 pm

Post by vetoed615 »

Well, previous posts where about the 0.11.1 source. Now I tried to compile the trunk and I'm getting:

Code: Select all

systemps2.cpp&#58; In function `int main&#40;int, char**&#41;'&#58;
systemps2.cpp&#40;110&#41; &#58; cannot allocate an object of type `OSystem_PS2'
systemps2.cpp&#40;110&#41; &#58;   because the following virtual functions are abstract&#58;
../../../common/system.h&#40;905&#41; &#58;  virtual FilesystemFactory* OSystem&#58;&#58;getFilesystemFactory&#40;&#41;
systemps2.cpp&#58; In member function `void OSystem_PS2&#58;&#58;init&#40;&#41;'&#58;
systemps2.cpp&#40;312&#41; &#58; cannot allocate an object of type `Audio&#58;&#58;Mixer'
systemps2.cpp&#40;312&#41; &#58;   because the following virtual functions are abstract&#58;
../../../sound/mixer.h&#40;299&#41; &#58;  virtual uint Audio&#58;&#58;Mixer&#58;&#58;getOutputRate&#40;&#41; const
...
Is it compilable at all? Where these should be set to real classes and how?

Update:
That seems to be a modularization issue.
So, all I have to do is to supply the real functions for these prototypes, or there is something else beside that?
User avatar
md5
ScummVM Developer
Posts: 2250
Joined: Thu Nov 03, 2005 9:31 pm
Location: Athens, Greece

Post by md5 »

vetoed615 wrote:Well, previous posts where about the 0.11.1 source. Now I tried to compile the trunk and I'm getting:

Code: Select all

systemps2.cpp&#58; In function `int main&#40;int, char**&#41;'&#58;
systemps2.cpp&#40;110&#41; &#58; cannot allocate an object of type `OSystem_PS2'
systemps2.cpp&#40;110&#41; &#58;   because the following virtual functions are abstract&#58;
../../../common/system.h&#40;905&#41; &#58;  virtual FilesystemFactory* OSystem&#58;&#58;getFilesystemFactory&#40;&#41;
systemps2.cpp&#58; In member function `void OSystem_PS2&#58;&#58;init&#40;&#41;'&#58;
systemps2.cpp&#40;312&#41; &#58; cannot allocate an object of type `Audio&#58;&#58;Mixer'
systemps2.cpp&#40;312&#41; &#58;   because the following virtual functions are abstract&#58;
../../../sound/mixer.h&#40;299&#41; &#58;  virtual uint Audio&#58;&#58;Mixer&#58;&#58;getOutputRate&#40;&#41; const
...
Is it compilable at all? Where these should be set to real classes and how?

Update:
That seems to be a modularization issue.
So, all I have to do is to supply the real functions for these prototypes, or there is something else beside that?
The PS2 port is currently a bit outdated, and some changes that have been made to the latest bleeding edge SVN version haven't been implemented yet.

You are getting those errors because of patch #1956946 - "Audio::Mixer internal API revision", revision 32828. The PS2 porter hasn't made the necessary changes to the PS2 port yet (instructions to make them were given by fingolfin before he committed his patch).

You can have a look at how the PSP porter (joostp) did the changes in revision 32967, to get a rough idea on what needs to be changed...
Post Reply