FCEUX is the most amazing thing to come out of emulation since the Dreamcast was emulated. It allows for LUA scripting, which lets people make absolutely insane modifications to NES games.
This has lead to awesomeness:
Printable View
FCEUX is the most amazing thing to come out of emulation since the Dreamcast was emulated. It allows for LUA scripting, which lets people make absolutely insane modifications to NES games.
This has lead to awesomeness:
Woah! Nuts!
Like Gradius needed to be harder.
Please explain better how this works. I've seen a bit about this but never really understood it on a technical level.
That rainbow road mod is ridiculous.
There's a fairly decent amount of documentation included with the emulator. In addition, LUA scripts (by their very nature) are generally easy to read and decipher. On a very basic level, LUA scripts work by grabbing rom data and modifying it on a frame-by-frame basis. The emulator also allows scripts to overlay graphics on top of the game, and have those graphics affect collisions - which can in turn affect what the script or game does next. For the Canvas Curse-esque rainbow script, for instance, the script automatically handle's Mario's movement input and modifies it based on collisions with objects in-game or overlaid via the script (the latter being the titular rainbow). Furthermore, it also alters enemies and other sprites based on collisions with the drawn lines.
Obviously, developing such a script is not trivial. For it to do something meaningful, you have to work out how objects in-game are stored and monitored, then figure out how to affect them without causing the game to puke from an unexpected result.
You'd have to have my balls in a vice to get me to play NES Tetris against someone, but on a technical level, this stuff is so awesome. I've been impressed ever since the Mario 1 physics demonstration.
Neat idea. It never occurred to me to manipulate an emulated game like that.
But it doesn't look easy at all, you have to know the memory addresses of the parts of the game state you're interested in, and know how to manipulate them, which sounds like a lot of time spent disassembling the game and single stepping through it in an emulator. It might take you hours just to figure out how to the simplest things, not to mention you need to know your 6502 assembly. Clever though.
I don't think it's as bad as I made it sound. The LUA scripts included are fairly easy to understand, assuming you know basic programming. In fact, this looks a fair bit easier than traditional rom hacking, as you can do stuff like write a script to draw a box around what you think is a sprite, then see what you just identified in the game.
I Really Like that MM2 'enemy data' mod.