|
[An interface for dynamic emulator manipulation]
ROM Hacking,
for those
unfamiliar with the concept, basically involves the manipulation the addition of new game levels. The problem is that these types of changes are typically made through the use of either a hex editor, or a complex editor that is tied to one specific game. For things like new level creation, these tools are required. For color, graphics, or gameplay modifications, they are not. Therefore, it would be really nice to have a structured mechanism for making these types of changes. In order to accomplish this effect, I have developed two components. First, I have modified the Nintendulator open source NES emulator to accept dynamic color, graphics, and gameplay modifications. These changes are sent as OpenSoundControl (OSC) packets over a network to a small OSC server I embedded within the emulator. The emulator interprets the packets, and makes the relevant modifications. The current implementation uses Max/MSP to create the packets, and send them over the network. While the underlying emulator architecture is in place, a number of design decisions still need to be addressed. How to best structure data writes into the sprite buffers and the color palette? How can I ensure that dynamic gameplay modifications don't crash the emulator? These are difficult to answer.
These above two videos demonstrate some of the possibilities. The first is a short video of what color palette and sprite buffer scribbling can accomplish. The emulation mechanism also provides a way to get at the screen pixels after we've scribbled into the sprite buffer. This allows us to apply post pass image processing techniques as the game is played. The second video demonstrates this technique. If you would like to give it a try, you can download it here: (Windows NT/2000/XP): 1. Download the modified Nintendulator binaries. 2. Download the Max/MSP modifier patch. 3. Do not use derivatives of this work for commercial purposes. Updated 11/11/2005
|

