Metroid Tuner

So I made this thing to edit Metroid (NES) music data, and I named it “Metroid Tuner,” because I didn’t feel like trying very hard to come up with a good name. Here is a download link to an alpha version of the utility that will crash and melt your computer and blow up your house and punch a kitten in the face. » Read more…

Zelda Automap 0.2 Source

Below is the source for the Zelda Automap hack (0.2). You can also download the source with the needed GFX file. The code should be assembled with snarfblASM. The resulting IPS file should be applied to the PRG0 version of the ROM (PRG1 appears to work as well, but the hack was created and tested on PRG0). Comments are welcome.

» Read more…

ReMaster: Editing Doors

It looks like there may be some confusion as to how door editing works in ReMaster, so here’s the how. (We’re referring to doors that bring the player from one level to the next, or from tank areas to overhead areas and vice-versa.) The very first thing you’ll want to do is select “Doors” as the editing mode in the top-right corner of the window. In the editor area on the left, doors are shown in yellow. On the right is a list of all the doorways in the game.

» Read more…

ReMaster: Better Late Than Never

The Blaster Master level editor, ReMaster, has been shared with some communities, but has yet to see a proper release until now.

DOWNLOAD IT

» Read more…

snarfblASM Manual

snarfblASM 6502 Assembler

by snarfblam

  1. » Read more…

Doors With Editroid

I know I was pretty confused about how doors work when I started messing with Metroid, and it’s been a recurring question. The trickiest part is scrolling, but I’ll go over a couple other points, too, so here’s the scoop. » Read more…

Drawing NES Graphics With C#

One of the tricky parts of working with NES ROMs in .NET is drawing game graphics. There are several approaches that could be tried, but many have problems or simply don’t suit NES graphics. GDI+ is much too slow with tile based graphics, especially indexed (paletted) graphics. GDI is a better fit, but it is more difficult, still not ideal, and requires P/Invoke. Libraries such as DirectX or XNA offer the best performance, but require more work, especially if you need to learn the API. They can also add one more dependency that you may prefer to do without.

My preferred technique is to simply do the blitting myself. Knowing how to access graphics using LockBits is requisite. » Read more…

What Can Romulus Do?

As “Romulus,” my NES Level Editor Framework, nears a usable state, I’ve decided it would be a good idea to give a summary of what it actually does. Romulus will be available as a .NET DLL, and will be usable from any .NET language. There is a thread for discussing Romulus on RHDN.

Romulus actually fills two roles: it acts as a general purpose library for NES level editors, and it also defines the plug-in architecture used by its sister project, SuiteNES. Here, I’m addressing Romulus in terms of a level editor library.

» Read more…

In Defense of the Mutable Struct

In the world of .NET, there’s a school of thought that tells us that all structs (i.e. value types) should be immutable. I’ve seen it spouted all over the place. I’m not opposed to the idea of immutable types, but I really don’t agree with the notion that all structs should be immutable.

The idea of immutable structs certainly has its case. Bad things happen when what you expect doesn’t correspond with what actually happens…

// Let's move our Form 100 pixels to the right.
this.Location.Offset(100, 0);

It looks like it should work. Luckily, most any C# programmer can tell you that this is incorrect. The problem, in short, is that structs don’t exhibit OO behavior. That can be bad when a programmer’s mind is in OO mode. » Read more…

Editroid 2.1

Editroid 2.1 is available for download (http://snarfblam.com/files/Editroid%202.1a.zip). When it breaks, the best place to whine is MetConst, although you can also comment or e-mail me.

Changes in Editroid since 2.0:

  • Built-in ROM expander – Does not come with a warranty on hacked ROMs. (For example, glitches the title screen on MDbTroid.)
  • Add/delete rooms and structures – (You know, without breaking the ROM.)
  • Improved physics preview – Easier to see bombable blocks, invisible walls, and everything else.
  • Slightly improved “Pointer Explorer” – I don’t know if anyone but me uses this, but it now shows more data, and lists it in the order it appears in the ROM.
  • Advanced palette editor – Allows editing of all level palette data. (Useful mainly for Samus’ colors, the normal palette editor covers all your other bases.)
  • Item Data Disassembler – (Largely useless) Gives item data in a format that can be assembled, for hand-editing and relocating data, for hardcore nerds.
  • Advanced item editor – Complete item editing freedom.
  • General bug fixes, UI changes – One thing I’ll point out is that, since a common question is how to use empty map spaces, I’ve made this very trivial.