Sections

Monday, January 16, 2012

How to extract legal ROMs from Intellivision Lives

Intellivision Lives italian cover
Last flea-market I went was cold, there weren't many sellers and most of the interesting things were overpriced. Just when I lost all hope of finding something interesting I spotted a few games in a bin: one of these was the Intellivision Lives package for PS2. It's basically nothing more than an emulator bundled with around 70 Intellivision games.
So... What if You're not interested in playing these games on your Playstation 2 but want to try them on a different emulator?
Keep reading if You want to know more.


The game rom  dumps are all packed into a single file named gameroms.rez, without any compression applied (which was to be expected: what would be the reason to compress games which reach a maximum of 48kb in size? :P).
The rez file has a footer at the bottom (beginning at offset 0x14E800) which lists every file included and the relative size (with an entry of 0x6C bytes for every game): sufficient information to split all the games back to separate files (in ITV format).

Thunder Castle, extracted from Intellivision Lives
Why going through all this trouble instead of simply downloading the games off the net? First of all downloading them might not be legal (or it's a grey area at best) even if You own the games, also I wanted to have some hex-viewing fun!

Here is my quick & dirty solution in C to split all the roms: GitLab repo
It builds fine with gcc 4.6.1 on a 64bit machine and it's tested on the italian PS2 version of Intellivision Lives... I bet it works on other versions too.
Once you build it (gcc sources.c -o binary), it simply takes the path of gameroms.rez and extracts the game in the current directory.

Have fun!

POST SCRIPTUM: I just checked the Wikipedia page about the Intellivision Lives! compilation. There is a list of all the available games in there, but some titles are listed as not available on Xbox or PS2 versions. Actually while most of the "missing" titles are really not present in the compilation, a few ones still have the rom image available (King of the Mountain or Land Battle for example) so You can play them once the data is extracted.

9 comments:

  1. Hi Fabio! I wish you good luck for the new "twin" blog! (Everything seems work now)

    ReplyDelete
  2. I have this disc! I am a programmer but I have never programmed in C before. Any more advice or step by step info you can give me. I have the code. I pulled that file off the disc. I can run GCC in terminal so I have all the pieces to try it. I am not sure what the exact steps are to have the code process the ROMs file.

    ReplyDelete
  3. First, build the tool with GCC (see post for command line) eg. gcc extractor.c -o extractor.bin

    Then execute the binary giving the path to the ROM package
    Eg. ./extractor.bin /path/to/gamerom.rez

    ReplyDelete
    Replies
    1. Great. Thanks. I will try it tonight.

      Delete
  4. Ah, very interesting. I gave for granted that the package was identical for every version.
    Thanks for the info!

    ReplyDelete
  5. This worked great! But any idea where one could find the EXEC and GROM on the disc?

    ReplyDelete
    Replies
    1. Hello,
      I don't have the disc at hand to check, but it could be embedded in the ps2 exec, or maybe reimplemented and thus not present in the original binary form.

      Delete
    2. The download link does not work, could you please reupload it?

      Delete