root670 / CheatDevicePS2

Game enhancer for PlayStation 2 similar to Action Replay, GameShark, and CodeBreaker. (No longer in development)
GNU General Public License v3.0
79 stars 18 forks source link

Playstation Underground Jampack demo discs do not boot #8

Closed PrgmrAtHrt closed 6 years ago

PrgmrAtHrt commented 6 years ago

I have tried to boot a couple of demo disks ( Jampack Summer 2001 and Jampack Winter 2002), and neither will boot from cheat device ( hangs on a black screen). I am able to work around this by going back to the ps2 browser (from cheat device) and booting from there. I believe this relates to these disks having an elf file that is loaded from within a folder on the root of the disc (SCE_DD.ELF) upon booting the main elf.

I have tried the 1.2.1 release and the latest source versions on both hardware and emulator. Also, something interesting to point out is that when I do this on PCSX2, the console output shows that the system.cnf file is being read and nothing else happens after.

root670 commented 6 years ago

I've reproduced the issue and it looks like it's caused by the way ELF files are loaded in bootstrap/main.c. Currently, ELF sections are loaded manually before calling ExecPS2 to jump to the entrypoint, but it appears to be doing something the Jampack ELF doesn't like. If I add code to call SifLoadElf() to load the ELF sections rather than doing it manually, it works! This is how ps2rd and uLaunchElf do things, so I'm just copying their logic. I want to test this more to make sure it works with ELF files loaded from memory cards and mass devices before pushing the changes.

Thanks for submitting an issue report!

PrgmrAtHrt commented 6 years ago

No problem! Thank you for being prompt about this and for developing such a wonderful piece of software, I'm really looking forward to future updates.