AGS engine PSP port

Started by JJS, Fri 15/07/2011 16:27:57

Previous topic - Next topic

JJS



This is a follow up post to the initial PSP port I presented in the engine release thread.

Now that the port has matured a bit and can be considered almost complete and more user-friendly here is a proper release thread for it. Still, this is a port of the 3.21.1115 runtime engine to the PlayStation Portable. To play it you need a PSP 2000/3000 or Go with a Custom Firmware or Homebrew Enabler. The engine will start on a PSP 1000 but due to the lower total available memory, you cannot run most AGS games.

Games can just be copied as they are into the ports folder on the PSP, no more renaming to "ac2game.dat" as in the initial version. Now the game data is autodetected. If the game data is compiled with an incompatible AGS version, the launcher will tell you so.

There are various options that can be configured in a text file. See the Readme for details please.


Source code is available on gitorious as a clone/branch of the Linux engine port:
https://github.com/adventuregamestudio

Binaries are available from my website:
http://jjs.at/software/ags.html


:= UPDATE :=

If you want to stay on top of the newest developments, you can get intermediate binaries from my daily build site:
http://jjs.at/daily/

I will put an updated version there whenever I make changes to the source.

Also there is a bug tracker here:
http://jjs.at/tracker/

Please also post feature requests and bugs there.
Ask me about AGS on PSP, Android and iOS! Source, Daily builds

Joseph DiPerla

Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

LimpingFish

Great! :D

Some questions:

Would it be possible to build a version of this that compiles everything as an eboot? What I mean is, can a version that loads a single game automatically, bypassing the need to load a game from a seperate GUI, be implemented?

Some PSP emulators use a cache file system to avoid the PSP1000's memory limitations. Could something similar be used here?

Steam: LimpingFish
PSN: LFishRoller
XB: TheActualLimpingFish
Spotify: LimpingFish

Dualnames

Those are great news. Now let's make than android port :P (I doubt that's doable :P)
Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

monkey0506

I was actually just looking into it, and the Android NDK might actually make an AndroidGS engine port more feasible. I'm not nearly versed enough in C++ to attempt it myself, and a fair amount of the engine would probably still have to be ported directly to Java. Probably not impossible though.

Icey


Dualnames

Quote from: monkE3y_05_06 on Sat 16/07/2011 00:52:04
I was actually just looking into it, and the Android NDK might actually make an AndroidGS engine port more feasible. I'm not nearly versed enough in C++ to attempt it myself, and a fair amount of the engine would probably still have to be ported directly to Java. Probably not impossible though.

if I were you, I'd get working to it, before I GET MY HANDS ON YOU. Now, work!!
Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

Joseph DiPerla

Quote from: Dualnames on Sat 16/07/2011 00:29:07
Those are great news. Now let's make than android port :P (I doubt that's doable :P)

Its doable. Allegro is being ported to Android (In the developers spare time of course) and Android does have an SDK for C++ programmers. I think this should be next on the portability front as, I er hem, own an Android. But also, Android seems to be available for more phone companies than the iphone/pad is.
Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

JJS

Quote from: LimpingFish on Fri 15/07/2011 21:49:39
Would it be possible to build a version of this that compiles everything as an eboot? What I mean is, can a version that loads a single game automatically, bypassing the need to load a game from a seperate GUI, be implemented?
If you put the data files in the same directory as the eboot and rename the games executable to "ac2game.dat", the launcher will directly start that game.
Also it is possible to compile the engine as an eboot, so that you don't even have to include the launcher at all, only eboot.pbp (and exception.prx unless you are sure that your game never ever crashes the PSP ;).)

Quote from: LimpingFish on Fri 15/07/2011 21:49:39
Some PSP emulators use a cache file system to avoid the PSP1000's memory limitations. Could something similar be used here?
I don't know about that. The PSP lacks an MMU and therefore "virtual memory" cannot be implemented in an efficient way. The difference between a 1000 and the other models is having about 17 MB and 48 MB heap respectively.
Unless really digging into the source code and changing the way it uses memory I don't think anything can be done for the 1000. Even the other models run out of memory with large rooms, e.g. Eternally Us crashes in the first room because it is gigantic and Of The Essence runs out of memory for the pathfinder.

Ask me about AGS on PSP, Android and iOS! Source, Daily builds

Calin Leafshade

Yea, eternally us is graphically huge and loads a lot of full screen pngs into memory. This was before i discovered doing alpha blended particles dynamically.

LimpingFish

Quote from: JJS on Sat 16/07/2011 06:37:40
Even the other models run out of memory with large rooms, e.g. Eternally Us crashes in the first room because it is gigantic and Of The Essence runs out of memory for the pathfinder.

Ah, I see. I was specifically referring to something like MVPSP (a NEO-GEO emulator), which must generate separate cached data files on the 1000, to enable larger ROMs to run, while the same ROMs run on the 2000 and up without the need to do this; the extra memory of these models allowing the full ROM to be loaded directly. I thought something similar might be applicable to this project. Of course, this was based on my knowing exactly nothing on how these things actually work. :)

Good to know about the eboot possibilities, though.

Thanks again for the great work. :)
Steam: LimpingFish
PSN: LFishRoller
XB: TheActualLimpingFish
Spotify: LimpingFish

JJS

Made a small update after a bug report from here. The King's Quest I and Quest for Glory II remakes now run without crashing. There were still parts with misaligned pointers in the scripting engine and I had forgotten to update apeg when I switched from libvorbis to libtremor. The update is available through the same URL as before.

Btw. LimpingFish, I tried Dead Hand on my Go and it runs there. Unfortunately the 3d is too much for the PSP so that it only displays at 1 fps.
Ask me about AGS on PSP, Android and iOS! Source, Daily builds

Icey

#12
Sorry but how do I set it up? I got the app on my psp(5.50 gen d full) however I dont know were I should place games and if I have it set up right on my memory card. I can see the app on psp btw.

JJS

You just copy the whole folder that contains your AGS game into the folder with the EBOOT.PBP file.

For example you got the port in "x:\PSP\GAME\ags\", then you copy the data files of a game into "x:\PSP\GAME\ags\my ags game\". That folder then contains the game exe, audio.vox, speex.vox, etc. Every game you want to add gets its own folder.


Unfortunately I spoke too soon for QFG II, that game seems to randomly crash from lack of memory later on (the fix was for making it start at all).
Ask me about AGS on PSP, Android and iOS! Source, Daily builds

Icey

Thanx a bunch. I was def not thinking about putting anything in that folder.

Icey

Every game I use it says I need to create a save game folder and t can't find the Eboot.pbp

JJS

Alright, let's make sure that we got a compatible game and that the folders are set up correctly.

For example your game from here: http://www.adventuregamestudio.co.uk/yabb/index.php?topic=43962.0

The AGS engine must be extracted to the GAMEs folder. I think you've done that right, but still:

The folder "x:PSPGAMEAGS_Runtime_for_PSP_3.21" then contains these files:
Code: ags

P:PSPGAMEAGS_Runtime_for_PSP_3.21>dir
 Datenträger in Laufwerk P: ist A

 Verzeichnis von P:PSPGAMEAGS_Runtime_for_PSP_3.21

12.05.2011  13:58    <DIR>          .
12.05.2011  13:58    <DIR>          ..
19.07.2011  08:19    <DIR>          Project 304 style
17.07.2011  23:04         3.226.402 ags321.prx
17.07.2011  23:04           232.765 EBOOT.PBP
17.07.2011  23:04             2.466 exception.prx
17.07.2011  23:04             2.958 kernel.prx
17.07.2011  23:04             9.547 License.txt
17.07.2011  23:04               709 psp.cfg
17.07.2011  23:04             7.782 readme.txt
               7 Datei(en),      3.482.629 Bytes
               3 Verzeichnis(se),    366.051.328 Bytes frei


And the folder "x:PSPGAMEAGS_Runtime_for_PSP_3.21Project 304 style" is where you extract the game files from your download:

Code: ags

P:PSPGAMEAGS_Runtime_for_PSP_3.21Project 304 style>dir
 Datenträger in Laufwerk P: ist A

 Verzeichnis von P:PSPGAMEAGS_Runtime_for_PSP_3.21Project 304 style

19.07.2011  08:19    <DIR>          .
19.07.2011  08:19    <DIR>          ..
07.07.2011  13:47        23.166.419 PMQ.NO1.exe
07.07.2011  13:47            57.368 winsetup.exe
09.07.2011  02:26               314 acsetup.cfg
07.07.2011  13:47         3.072.825 audio.vox
09.07.2011  02:02            74.112 pass3.png
               5 Datei(en),     26.371.038 Bytes
               2 Verzeichnis(se),    366.051.328 Bytes frei


When I run the port with this setup, everything works as expected for me. The error you are receiving sounds like the files are still in the wrong place, so can you please check that?
Ask me about AGS on PSP, Android and iOS! Source, Daily builds

Icey

#17
I dont see some of those files. And the Eboot is inside bin however the way you have it shown is that it is in the AGS folder. If I use the AGS folder then the icon is damaged however when I use the bin folder out side of the AGS folder with the ebout/psp.cfg inside it it shows but I get that error even though the game is in that folder with eboot.

What's a bear to do? :(

JJS

"bin" folder? Are you using the old version that I initially posted in the engine thread?

Please download the current one from the URL given in the opening post.
Ask me about AGS on PSP, Android and iOS! Source, Daily builds

Icey

So there was an update after all, I thought it was. Thank again for helping me through this.

SMF spam blocked by CleanTalk