Aller au contenu

PicoDrive (emu mégadrive)


ShaoliAss

Messages recommandés

Sortie aujourd’hui d'un port de la version psp de l'emulateur PicoDrive pour PS2, par SP193. Permet notamment de faire tourner certains jeux ayant des pb avec PGEN.

 

 

This is a port of PicoDrive v1.35b for the PlayStation 2 console. Although another Megadrive emulator called PGEN does exist, I never remembered that it was able to run games like Sonic 3 at full 60 FPS.

 

I figured that anything good enough for the PSP would be also good enough for the PlayStation 2... especially since its EE (The "main" CPU) is a 64-bit MIPS with some 128-bit instructions. And so I ported PicoDrive v1.35b over from the PSP to the PlayStation 2.

 

Why port v1.35b? Why not the new v1.85 which was released recently long ago by Notaz himself? It's because the PSP port within it appears to be dysfunctional and outdated. I wanted to have something that already works to work on, so that I would have a higher chance to succeed at porting. Even if the port was successfully made without the missing assembly stub (The C alternative could be used instead), it won't be as fast as a fully working copy of v1.35b.

 

What can I expect from this port?

The basic functionality from PicoDrive v1.35b in general (game compatibility rates, SEGA Megadrive and MegaCD support etc.)

Two-player support (Multitaps are not supported).

Support for the HDD unit, USB mass storage devices and the memory card.

Hardware bilinear filtering support, and support for progressive scanning.

Support for the L3 and R3 buttons, as well as the analog sticks (Press the MODE button to enable/disable this functionality).

 

 

Notes/known issues:

Changing some settings (or just toggling some options in the options menu) seems to occasionally cause MegaCD games (or whatever that is MegaCD that is running) to freeze up. Reloading (as in, selecting the ROM/ISO again instead of just selecting the "reset" option). It might be a problem with the emulator itself, although it's also nearly equally likely that some buffer somewhere is getting overrun.

The progressive scanning option will not be saved. This is a deliberate limitation, since the PlayStation 2 has no built-in recovery mode in the event that the user enables progressive scanning but the connected display does not support progressive scanning (The Sony TRC forbids game developers from storing the HD mode settings too).

The screen in progressive scanning mode (480P) seems to be cut off at the sides on my TV... but I'm not sure why (hence I can't fix it).

The emulator must be placed in either a memory card or a USB mass storage device, for saving to work. Getting full support for the HDD unit is a challenge because the UI wasn't designed to deal with filesystem mounting. Such a modification would be intrusive (requires modification of the common code files).

For the skin to be loaded properly, the emulator must be stored on a memory card. The USB drivers may take a while to detect the USB device, and hence the USB device cannot be accessed during the emulator's startup process. The reason why this hasn't been worked around is the same as in #4: The menu wasn't designed for that purpose.

Due to #5, the emulator's required folders may not be created when the emulator is started up. If they don't exist, the emulator will be unable to save. A workaround would be to manually create the "brm", "cfg", "mds" and "srm" folders within the folder that the emulator is stored in (Hence why storing the emulator on a memory card is currently the best thing to do!).

Due to #5 and #4, the emulator's configuration may not be loaded at startup if the device cannot be accessed.

 

 

Anything under "Future enhancements" isn't going to be done by me for v1.35b because I feel that it's not going to be productive. I hope that somebody will pick up this project though, since this may be one of my last projects for 2013. It's also been really time consuming, since I take about a week at least, for each one of these projects.

 

Future enhancements:

Port PicoDrive v1.85 over, although the assembly memory module stubs need to be written from scratch.

Connect with Notaz and get the PlayStation 2 port of v1.85 integrated with his repository (So that it'll automatically receive updates whenever PicoDrive gets updated).

Probably fix up the text colour code within menu.c. It currently works because the default colours are black (for the background) and white (for the text). The alpha bit (Bit 15) is set accordingly because black is 0x0000 (transparent) and white is 0xFFFF (Opaque). Since they are at the extreme ends of the colour values, the fact that the GS doesn't use R5G6B5 (It uses A1B5G5R5, where A1 at 1 = opaque) isn't apparent.

Optimize the assembly stubs (and certain parts of the platform code) for the EE's 64-bit architecture (and take advantage of its 128-bit instructions too).

 

 

Prerequisites for compiling the PlayStation 2 port's source code (Please use their latest available versions!):

libmad and its dependencies.

libpng and its dependencies.

gsKit and its dependencies.

The homebrew PS2SDK.

 

 

Note: Do NOT give game compatibility reports because this is based on an obsolete version of PicoDrive, and I am the wrong person to ask to get games working anyway (I have very little knowledge on how these SEGA consoles work).

 

Dispo ici : - PicoDrive v1.35b (PlayStation 2 port) support page -

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
  • Statistiques des membres

    23 028
    Total des membres
    1 033
    Maximum en ligne
    Subaru
    Membre le plus récent
    Subaru
    Inscription
  • Statistiques des forums

    128,1 k
    Total des sujets
    1,7 M
    Total des messages
×
×
  • Créer...