Sega Master System / Mark III / Game Gear|
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats
Music - Videos - Development - Translations - Homebrew
Plug-in support for custom boards development supportPosted: Sat Jan 03, 2009 12:50 pm
I'm currently working for a DIY project for a Sega Master System II console.
Basically I'm designing a custom board that hosts a custom ROM, a 1Mb SIMM of DRAM (30-pin old fashioned...), a custom CPLD and a SD/MMC slot.
Once loaded some ROM images on the SD/MMC card (using the standard VFAT format), the board will allow you to load that images on the RAM with a "file" selector and play it.
In addition, an 'action replay' button on the board will take memory snapshots and save it on the flash memory.
The CPLD should implements all known memory pagers (+1 for RAM loading and page locking), the MMC port access, an hook for NMI interrupts.
The ROM should contains a simple FAT implementation for read/write, MMC protocol basics and a graphical selector.
Since I would use Meka for design, debug and test my board, my idea is to enhance Meka to allow plug-ins to be loaded.
Basically plug-ins should be able to:
- hook and generate the NMI signal;
- hook I/O ports instructions to simulate extended ports;
- change the memory map (simulating my custom memory mapper).
At this stage I don't need to interact with the main Meka screen (e.g. adding some special window), but I will interact with a stand-alone Win32 top-level window (the plug-in will be developed for Windows only :).
I'm not thinking to UI plug-in selector, but only to automatically load all valid plug-ins DLL found in a certain subdir (e.g. 'plugins').
I've already hooked the Meka source code to do some preliminary tests in hard-coded way, but the best idea is to extend the main trunk code to support standalone plug-ins.
What you are thinking about this project?
I'm very confident with svn and C/C++ programming, and I can program the Meka extension by myself on a separate branch.
Are you interested in this task, or in my whole HW project?
If so, please contact me at luciano.martorella*at*gmail_dot_com. A hand is welcome. My idea is to develop the project in full open-source way.
||Posted: Mon Jan 05, 2009 4:58 am|
It may be a little overkill to add a proper plugin architecture when the emulator has so many outdated parts. Why would you want to support such plugins?
Hardcoding custom changes in a branch (or even in trunk with #ifdef) will get you something working faster - thus if you think there is really an advantage of setuping a plugin system I'm willing to listen. Don't hesitate to ask me any question on the code. I'd be glad to help and if MEKA sources can serve to help this kind of project.