PicoDrive 1.35b for PS2: A New MegaDrive / CD Emulator - Are you still running emulators on your PS2? This new project brings some classic PSP code to Sony's second-generation console!
SP193 has been releasing a whole bunch of PS2 apps these days, and as of right now he hasn't stopped. This is a Sega Genesis / Sega CD emulator for the now-aging system. Some of you may recall that PicoDrive was released on PSP about five years ago. Now it has a brand new home. Because this is a first release, plenty of bugs are expected. However, the basic performance of the product should work quite well. For more detailed info, see the release log below!
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).
|
Similar Software:
|
 | CrocoDS Alpha CrocoDS Alpha Donning one of the most bizarre names we've ever encountered among coders, My Ketchup Is Dead has once again updated his homebrew emulator for Amstrad CPC, CrocoDS Alpha |  | FCE Ultra GX 2.0.8 [What's New 2.0.8 - December 24, 2008]
* Fixed unstable SD card access
* Proper SD/USB hotswap (Wii only) |  | Dolphin SVN r7326 32bit Dolphin SVN r7326 32bit
The latest update for Dolphin is now out folks, bringing a new set of changes and enhancements to the ever-improving Nintendo Gamecube and Wii emulator.
Changelogs:
Dolphin SVN 7326
Remove the need for the less than standard strnlen()/strndup() |  | DSx86 DSx86
Developer's note:
This version has the following major changes/improvements:
* CGA mode is forced to be blitted even if you have selected Direct mode |  | DeSmuME Wii r154 DeSmuME Wii r154
A port of the Nintendo DS emulator DeSmuME to Wii homebrew.
Developer's note:
This is the first release I've uploaded that I firmly believe is an important and powerful revision. At this point, 95% of DS games should be able to be bootedA and about 30% of those should be fully playable |
|
 | PS3 Gameboy Emulator PS3 Gameboy Emulator
Good news for the gamers who have not yet updated their PS3 firmware.
The Japanese homebrew programmer Mario has released a Gameboy Emulator for the Playstation 3.
The emulator has been programmed in BD-J code, a form of JAVA, which is normally used for advanced Blu-ray menus |  | Snezzi DS Snezzi DS Gary Linscott has been busy fixing some pesky bugs buzzing around the Snezzi DS, the DS port of the Snezziboy SNES emulator. These quick bug fixes will make the program run even smoother, thanks to your feedback, and of course to Gary's persistence. Snezzi DS comes in two versions, the sound version and the no-sound version. Each version has different compatibility |  | PokeMini Emulator PokeMini Emulator
NDS dev justburner has released and update to the PokeMini Emulator bringing this release to version 0.5.2.A The full changelog is listed below.
-: 0.5.2 Changes :-
Opening .minc files now opens the linked |  | C64-network.org C64-network.org
Developer's note:
Note to those using network play: the network connection broker requires the latest version of Frodo, so please upgrade if you plan to use the network support!
c64-network.org is a Commodore 64 emulator written by Christian Bauer (http://frodo.cebix.net) |  | ScummVM DS ScummVM DS |
|
|