Sunday, March 18, 2007

General roadmap

Now that I've got some GP2X related posts out of the way I should go over some of the more overarching concerns and plans I have regarding gpSP in general (in other words, the PSP version). The next version would be a 1.0, which by its name should mean that it's rather "complete." Of course, gpSP will never be complete, and I'm sure even version 1.0 will have its share of obvious flaws, but I'd like to push it closer than it is now.

There are a few main areas where improvement can be done. These are pretty obvious, but I'll go over them anyway.

- Compatability. A few games are not working correctly, ranging from minor to severe problems. Right now the biggest culprit is Final Fantasy VI, but there are others, such as Sims: Pets. Games such as Golden Sun 2 have buggy sound. Some other games I need to test more thoroughly to see if they have problems on the PSP version in particular.

Broken games fall into a few categories. Some work only on the PC version and not the PSP version. Some work only on the interpreter and the dynarec. There are a few that only work on PSP and only work on the dynarec; these I'm not terribly concerned about. As of now all games that I'm aware of that are critically broken don't work anywhere (interpreter or dynarec). This doesn't mean there aren't dynarec bugs left for the PC/PSP versions (which have been synchronized), but I don't know of any at the moment. Unfortunately, the games that don't work for any configuration of gpSP are far the hardest to deal with.

Debugging these games at this point is extremely time consuming and trying. I have put hours into FF6 in particular but have gotten nowhere. Often it's difficult to even know where to begin when trying to find what's wrong with something. The best aid I've had is using the debuggers in other emulators where the game works (such as VBA) to try to track where the emulation diverges from gpSP's. The big problem with this method is that the timing in the two emulators are never going to be the same, even with coercion to try to make it so, so the games will always harmlessly diverge at some point. For this reason a more high level approach has to be taken to examining where the two are different. This is usually feasible when the game has a very obvious problem (such as crashes at a certain point) but can be very difficult when the problems are more subtle than that.

- Performance. I'll cover this more in a later post; the bottom line is that there is still room to make gpSP faster, especially for certain games that don't get along with it well right now.

- Features. The cheat support needs to be improved, I'd like for there to be a low pass filter option for audio (I tried this, and failed..). Of course, everyone wants wifi multiplayer but I don't know what the prospects are for such a thing. That, and I don't have a second PSP or a wireless router.

I'll divulge more details about some of these things later, and as I make any improvements I'll post that here as well.


mikeful said...

Hi. I'm not sure how close the PSP-version and GP2X-version (which I have tested) are each other but please put some time on GUI. Current one is pretty horrible.

Really good work anyway.

Exophase said...

They're "identical" to an extent (you can surely notice a number of PSP specific options still, for one thing), but the resolution of the two devices are different. This gives less room, cuts off some things, overlaps the options with the mini-display...

'course, the gamepad config doesn't work, that's a big difference. And there's no autorepeat on the buttons. And the overlap of options and display doesn't look so good (would look better if the text had a transparent background, against a black border).

I've gotten some complaints on the PSP version, but they're basically entirely aesthetic; it's my opinion that the GUI is very functional on that side of things. Auto-repeat in particular makes a huge difference when selecting things.

I think that it'd help a little to at least use a smaller font and rearrange things a bit, and add auto-repeat of course. These things I can probably do myself.

And me/zodttd can also do a new one entirely, of course. Maybe someone could give some ideas or mock-ups.

Tesseract said...

Actually, one functional problem I have with the GUI is that it defaults to the root folder of where gPSP is installed.

Although it's only a minor annoyance to have to select my ROMs folder every time, it's a little worse when I accidentally hit 'execute' on the gba_bios.bin and it crashes.

As for a graphical interface, I'd be willing to help. I'm a big fan of minimalism, and it seems that if you'd agree to have a GUI at all, you'd want one that's A) minimal and B) resolution independent so it can easily go on both versions.

Exophase said...

There isn't a plaintext config file for gpSP overall, and selecting a directory can't be done very naturally in the GUI right now. Alternatively, it would be pretty easy to have an option that allows gpSP to remember the last directory ROMs were loaded from, and possibly have an option to put the support files in subdirectories (IE, SAV, SVS, CFG, etc).

Making a GUI that's resolution independent probably won't work out very well, there just isn't a lot of resolution to work with for either version. I think we'd may as well tailor the GUIs a bit to the GP2X and PSP version.

Which version are you using, btw? I assume the PSP version because gba_bios.bin crashing is a bug in 0.9 (that has been fixed). I could make it not show .bin altogether, I think most people don't use them.

I honestly don't think that any real graphical interface is needed with the PSP version. The main thing to remember here is that bitmap graphics = memory usage, and not a trivially small amount. Right now I need to save as much memory as I can, especially for some upcoming things I'd like to implement.

Unknown said...

that sounds great Exophase!! :)

looking forward for your next release, the only thing i could say about the GUI is that i think u should hide the bios file when u browse the roms ;)

Tesseract said...

Yeah, I'm using 0.9 on the PSP. And you make some excellent points aboutr memory usage. If you make those adjustments to the text display (ROM Folder Memory, gba_bios.bin file invisible, making support files disappear) That'd really address the only major gripes I have.

If it's even a remote possibility that someone MAY use .bin files, then perhaps making ONLY 'gba_bios.bin' invisible would be a viable alternative, since the naming of the file is critical for the operation of the emulator anyway.