The rebirth of GenRomSuite

Talk about development tools here

Moderator: BigEvilCorporation

Post Reply
tomman
Newbie
Posts: 5
Joined: Sat Apr 20, 2013 1:06 am
Location: El Tigre, Venezuela
Contact:

The rebirth of GenRomSuite

Post by tomman » Mon Apr 22, 2013 4:27 am

Hi there! Some familiar faces here, so I have no need to introduce myself, I hope...

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)
Very easy to use, as you can see.
- 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 :P Suggestions for extra features are also welcomed.

Have fun!

tomman
Newbie
Posts: 5
Joined: Sat Apr 20, 2013 1:06 am
Location: El Tigre, Venezuela
Contact:

Post by tomman » Tue Apr 30, 2013 4:25 am

Update time!
http://mi.tsdx.net.ve/temp/GenRomSuite- ... 17.tar.bz2

What's new for this time:

- i18n AKA localization support. Now available in English and Spanish. Sorry for my awkward English, improvements welcome. Anyone willing to translate to pt_BR, ja_JP, or any of the Chinese/Euro locales?

- Checksum fixer, implementing the standard Sega "add-up-all-the-bytes-in-the-ROM" algorithm. The framework allows to implement custom checksum algorithms in the future, provided that they're 16-bit values stored at the usual place.

EDIT: Package updated:
- Finished localization of the ROM Header Viewer
- Fixed a few bugs with handling of file paths on batch converter/purifier

Post Reply