08 January 2020

Where No Pandora's Box 6 Has Gone Before

Work on the Pandora's Box 6 Customization Hack is continuing and I wanted to give you a little update on it.

A few months ago, I bought a Pandora's Box 9D with 2500 games for research as we discovered that it handles SNES and Genesis/Mega Drive games. I thought that it would really come in handy so I bought it. When it arrived, I discovered that I was completely unable to mount my usual USB stick so I was unable to rip the various files from the 9D the usual way as we had with the PB6. At this point, I put it away for a while after extracting an SD card image. I put it away and went back to work on the PB6 hack.

A few months went by. We came back to hacking the PB6 again and this time, we succeeded in reading the hidden SD card files directly on the PB6 and just for fun, we tried to do the same with the 9D. It worked, so now we had access to most of the 9D's hidden files as well.

Immediately, I took a look at app9 as it is one we do not have on Pandora's Box 6. After some poking around, it became clear that this is SNES9X, version 1.56.2 from mid 2018. I decided against my better judgment to try to get it running on the Pandora's Box 6 last night, not expecting to actually get it running.

I was originally intending on my partner making the proper assembly code changes to the frontend to make it support the SNES emulator properly, but I was feeling impatient. I decided to test this out by swapping out the PSCX ReARMed emulator (app8) for the SNES9X emulator from the PB9D by renaming it app8. I edited the game database in each of the frontend apps so that the final game in the list is now sfc_ffight2 and left the app number to launch as the same. I knew that as soon as the menu would load, it would crash if it can't find the encrypted game list images, so I copied two random game name images and named them to match the game name. I also taught the frontend to scan for SNES games. I put the zipped SNES ROM into roms_playstation aaaaannnd...

...it failed and dropped back to the main menu. Taking a look at the app in a hex editor and we see the issue - SNES9X is hardcoded to run the ROM directly from the roms directory on the USB stick. (The PB9D does not use a USB stick, but still maps its directories like as if it DOES, which is interesting.) Once I dropped the zipped SNES ROM into the roms directory on my USB stick, the game booted up and I got to see the following:

There is screen tearing, but performance otherwise is pretty good with the two games I've tried so far, Final Fight 2 and Super Mario World.

So, because this was basically a quick and dirty hack to see if it would run, we are going to work on getting it to function the "proper" way. This will mean editing the frontend applications to let them know of the existence of app9, properly adding a roms_snes directory to the list of directories that will be scanned on startup. Just like the PlayStation games, they will just use the name of the zip file for the game name in the menu, no need to mess with any encrypted images, etc...

I'm hoping to get this work done soon so that it will be another nice gift as part of the hack. Also, in the future, after the hack is released, we may release updates to various files. Those updates will just need to be placed on the USB stick, overwriting the originals and you're done. So yes, even when the hack is released, it doesn't mean that we are just ending things there.

: