Monthly Archives: March 2007

ROM-Based FMV

I found out that the Nintendo 64 version of Capcom’s timeless Resident Evil 2 features FMV. This is amazing given that that the game is cartridge-based and only has 64 megabytes of data. According to some reports I have read, the N64 version had essentially the same FMV content as the the original PlayStation version had (which came on 2 CDs and had dedicated FMV decoding hardware at it disposal).

I’m sure I’m not the only person to wonder how this N64 FMV works.

Further, I read that the Neo Geo version of the 1994 remake of Double Dragon featured a FMV clip from the hilariously absurd 1994 movie. Naturally, I’m curious how that video was stored. I believe the Neo Geo was another strictly tile-based console which would have required vector quantization.

Trixter’s Favorite Text Editor

If you think I’m obsessed with long-obsolete software and technology, I’ve got nothing on Trixter. This guy actually had a bake-off to determine which text editor performs best on an original 8088 PC. Forget vi vs. Emacs. Check out main article. Actually, vi is a contender but it didn’t fare well.

Check out Trixter’s blog for more classic hardware hacking, including information on how he is reworking his infamous 8088 Corruption PC video demo.

Streaming Trailer Set-Top Box

So the Apple TV hit the street last week. I wasn’t aware of it until a friend just IM’d me informing me that he kept up his long-standing tradition of early adoption, putting one of these shiny new units next to his Nintendo Wii and Sony PlayStation 3.


Apple TV

Here’s the killer feature he relayed to me:

You’d like apple tv. There’s a built-in movie trailer streaming function.

To think: If Apple had released this unit 7 years ago, I might never have started down the path of multimedia hacking.

Sega CD Ripper

I’ve started to plunder my stash of Sega CD games for my Gaming Pathology project. To run the games with the Gens emulator under Windows it is necessary to either install ASPI drivers for accessing the game CD-ROMs in a particular manner, or rip the data and audio tracks into a particular filename sequence in order to play them directly from the hard disk. Since I couldn’t make the former work on my new machine, I proceeded with the latter option.


Sega CD unit

Gens wants the data track, i.e. ISO-9660 CD-ROM filesystem, as ‘title.iso’. Any redbook CD audio tracks after the data track need to be in the same directory, compressed as MP3, and named as ‘title 02.mp3’…’title nn.mp3’. After performing the process more or less manually for Revengers of Vengeance (I automated some parts, but had to manually rename the files in the end, and RoV has 44 audio tracks), I wrote a Python script to help me with other games (and I’m not very good at Python yet but I like these opportunities to learn).

There might be other ways, better ways, but this is my new way. The script relies on cdparanoia and LAME (oh, and dd and rm). I didn’t know any program to query a CD to learn how many audio tracks it had (except my own hacked up program and I didn’t feel like leveraging it), so I just perform a rip loop until cdparanoia returns an error. LAME is instructed to encode at its ‘insane’ profile, sparing no bitrate. Syntax is ‘./rip-sega-cd.py “game title”‘ which will produce an ISO file and a series of MP3 files if redbook audio is present:

$ ./rip-sega-cd.py "Revengers Of Vengeance"
ripping Revengers Of Vengeance
ripping data track...
/bin/dd if=/dev/cdrom of="Revengers Of Vengeance.iso"

ripping audio tracks...
/usr/bin/cdparanoia --quiet 2
/usr/bin/lame --quiet --preset insane cdda.wav "Revengers Of Vengeance 02.mp3"
/bin/rm cdda.wav

[...repeated for each redbook CD audio track...]