Some folks here may know a neat tool that I made like 10 years ago (wow, time surely runs fast!), called GenRomSuite. It used to convert between ROM formats (only SMD and BIN), edit ROM headers (including fixing checksums), IPS ROM patcher, and a rather simple emulator launcher. After 2 years of continuous updates, the project stalled shortly after I started college.
Now that I see the code (it was written in VB6, waaaaay before learning proper programming techniques), I only want to stab my eyes with a rusty fork. WTFs everywhere, poorly documented code, next to no testing on NT platforms (I used WinMe back then!), performance issues everywhere, and God only knows how many serious bugs are still lurking there. Oh, and Windows-only!? (VB apps never played nice with Wine). Now it's the time to fix this mess, bring GenRomSuite to the XXIth century, and maybe introduce some Web 2.0 social convergence buzzword soup... OK, scratch that last part.
So I've finally decided to start over, bury the past and rewrite the thing from scratch. Enter GenRomSuite-NG:
- Made in Java 7 (yes, Oracle is evil - not Java the language, which I love)
- Platform-neutral (hopefully!)
- CLI and GUI interfaces
- The launcher is gone! With the small number of modern emulators, I guess that it's no longer needed...
- Featuring support for new ROM and patch formats
- "ROM purifier" mode: get rid of interleaved ROMs and copier headers for good! Purify your collection - one format to rule them all!
- Well documented code, easy to extend (Want a new patch format? Sure, implement a interface and you're good to go).
- And much more to come...
Here is what I've got for now:
http://mi.tsdx.net.ve/temp/GenRomSuite- ... 05.tar.bz2
- Java 7 VM required! Either Oracle's bugfest or OpenJDK will do (if using the latter, make sure to use the Java 7-compatible version! openjdk-7-jre on Debian/Ubuntu, for example)
- Source code included (with NetBeans project files). If you wonder about the license... asume "no license" or WTFPL. Sorry, I don't believe in things like GPL, BSD, or anything like that.
- CLI only
- It's in Spanish for now, sorry. Support for localization is on the TODO list, but here is the translated help:
Code: Select all
GenRomSuite-NG Java CLI
=======================
Versión CLI-b100-preview (Terme) - 21/04/2013
Suite of tools for managing Sega(TM) Genesis(TM) / MegaDrive(TM) ROMs
Usage:
--help | -h
Print these instructions.
--convert | -c SOURCE-ROM [SOURCE-FORMAT] TARGET-FORMAT [TARGET-ROM]
Converts a ROM between formats.
--patch | -p SOURCE-ROM PATCH [TARGET-ROM]
Apply a patch to a ROM.
--batch | -b ROMS-DIRECTORY SOURCE-FORMAT TARGET-FORMAT [TARGET-DIRECTORY]
Convert every ROM on a directory.
--header | -H SOURCE-ROM
Shows the header information inside of a ROM.
--purify | -P [ROMS-DIRECTORY]
Purifies a ROM directory, converting everything to a standard format.
Supported formats:
[Conversion]
- Raw binary dump [BIN] (Extensions: .gen, .bin)
- Super Magic Drive [16K interleaved] [SMD] (Extensions: .smd)
- Multi Game Doctor [interleaved] [MGD] (Extensions: .md, .000, .008, .018, .038)
[Patches]
- IPS (International Patching System) (.ips)
- BPS (beat) (.bps)
- Added support for the BPS (beat) patch format, which overcomes many of the limitations of IPS
- Added support for Multi Game Doctor interleaved ROMs (if you for some reason still have to deal with dumps made with that ancient ROM copier - I've never seen one in the wild, but since the format is a overly simplified interleaving.. why not?)
- Header info will also dump the 68K interrupt table, and show some extra info about ROM/RAM/external RAM.
Testers wanted! Of course, TRIPLE BACKUP YOUR ROMs! - assume that this WIP code is as dangerous as MOX nuclear fuel Suggestions for extra features are also welcomed.
Have fun!