- •Downloads:
- •Update Log:
- •Table of Contents:
- •Prologue: Bare Basics
- •Chapter 1: Key Terminology & Abbreviations
- •7Zip Archive – Supposedly the best file archiver there is, but not used as much, and thus less convenient. Requires 7zip or winRar to use.
- •VisualBoyAdvance – most people’s emulator of choice, almost always referred to as “vba” for short.
- •Chapter 2: Using Nightmare Modules
- •I upload anything that I think might be useful to someone on that site. Just use the menus and search until you find it.
- •Chapter 3: File Management
- •In order to be a successful hacker you need to have a lot of good management.
- •Chapter 4: Pointer Tables
- •Chapter 5: Battle Animation Editor
- •Chapter 6: Character Editor
- •Chapter 7: Class Editor
- •Chapter 8: Item Editor
- •Item icon – obvious
- •Chapter 9: Spell Association Editor
- •Chapter 13: Movement Cost Editor
- •If the value next to a type of terrain is ‘255’ then it is uncrossable because a unit won’t have 255 movement points.
- •Chapter 16: Battle Palette Reference Editor
- •If you want to know how to actually edit battle palettes’ colors, you can find that in a later chapter that I will make.
- •Chapter 17: Arena Class Editor
- •It’s a bit of work, but making cGs is quite rewarding, and it’s easier than some stuff, that’s for sure! Good luck with your cg making!
- •Chapter 20: Lyn’s Ending Editor
- •Chapter 21: Tutorial Editing/Getting Rid of the Tutorial
- •Part 2: Downloading the Programs
- •Part 3: Preparing Your midi
- •If you still have more than 10 tracks, you should find another midi. Sorry but, there are limits in life.
- •Part 4: Applying Blazer’s Beta Music Insertion/Instrument Patch
- •Part 5: Converting Your midi
- •Part 6: Making Your midi Repeat and Transferring it to Your rom
- •If the b1 and bc are next to each other then I can almost guarantee you want to replace it, so hit “replace” and do that with every instance and once you’re finished you’re good to go.
- •Part 7: Track Pointers & Repointing
- •Part 8: Finale- Assembling Your Song & Profit
- •If you don’t have this module, you’ll have to use this outdated way of doing it. Do check to see if you have the latest Nightmare Modules in general, but otherwise… well, sorry I guess. Xp
- •Part 9: Possible Errors & Wrap-up
- •Part 10: Documentation and Stuff
- •Atrius’ Notes:
- •Charon’s Notes:
- •Part 11: The Music Hacking Run-Down (Shorter Version of Tutorial & Walls of Text)
- •Part 12: Credits & Thanks
- •Chapter 25: Music Editing with Zahlman’s Song Editor
- •If you actually do type in help and press ‘enter’ on your keyboard, it’ll give you a list of commands, and tell you some stuff. Here’s the important stuff:
- •It worked! Great! I know how to import a song!
- •Chapter 26: Exporting Music with gba2midi
- •Chapter 27: Battle Background Graphics
- •If it doesn’t, I suggest double-checking all your settings (everything should be compressed) and make sure your width is set to 30 and your height is set to 32.
- •Chapter 28: Music Array Module
- •Chapter 29: Sound Room Editing
- •Chapter 30: Chapter Unit Editing with Nightmare
- •Chapter 31: Death Quotes
- •Chapter 32: Event iDs
- •Chapter 33: Battle Conversations
- •Chapter 34: Triangle Attacks
- •Chapter 35-36: The Animation Modules & Repointing Tutorial
- •It should look like this:
- •Chapter 37: Support Editing
- •Chapter 38: Miscellaneous Nightmare Modules
- •In this chapter I’m going to quickly run through what some other nightmare modules do.
- •Vendor/Armory Editors – edits the contents of vendors and armories.
- •Vulnerary Editor – edits the amount of hp restored by a vulnerary. (Default: 10)
- •Vulnerary Editor – edits the amount of hp restored by a vulnerary.
- •Chapter 40: Text Editing with fEditor Adv
- •Chapter 41: Portrait Formatting & Preparation
- •Chapter 42: Portrait Insertion with fEditor Adv
- •I wouldn’t mess with the palette editor (the colorful boxes).
- •Chapter 43: Locating Palettes
- •Chapter 44: Editing Palettes
- •I don’t exactly have a color I want to use for this title screen background, so I’m just going to show you how to get the rgb of some random color on a portrait.
- •If something didn’t work right, make sure you:
- •Chapter 45: Working with gbage
- •Chapter 46: Chapter Data Editor
- •Vision Distance is for Fog of War (fow). If it’s ‘0’, it’s assumed there is no fog of war.
- •Hold it! (Unless you aren’t hacking fe7!)
- •Chapter 47: Map Creation
- •I’m tired of writing this tutorial. Honestly. So from now on, I’m going to stop making so many wasteful comments like the one I am typing right now.
- •Chapter 48: Map Insertion
- •If you’re looking to make a totally new chapter (instead of being limited to the old game’s exact same scenes with exact same events) then read on, because I’m going to hack events next!
- •Chapter 49: Event Assembler Basics
- •I would just always add end guards since it’s not something you need to worry about too much.
- •Chapter 50: Events – The Layout
- •Including the stlb
- •Chapter 51: Events – The Event Codes
- •Items is just a list of items with a max of 4 starting items. I prefer to use the 3rd method of writing them, with the brackets and all. Each item is separated by a comma.
- •Chapter 52: Event Construction
- •VillageGate: // name of tile data group
- •Chapter 54: Chapter Creation Finishing Touches
- •Chapter 55: Importing Tilesets
- •Part 2: The First Frame
- •Part 1b: Palette Preparing
- •Part 2: Testing the Foundation to Your Animation
- •If all goes well, your guy should be standing, kinda like this.
- •Part 3: Making the Rest of Your Frames
- •Chapter 58: Custom Battle Animations – Scripts
- •I just pulled a Xeld. Had to do that at least once in this tutorial.
- •If you don’t know what a sound sounds like, just test it out with your animation and find out. Experiment with the codes if you need to.
- •Chapter 59: Custom Spell Animations
- •0X85 command count for this spell: 10
- •It’s true! It did work! It’s still very much a work in progress, as you can see, but the point is we got he test frame working. The rest just takes time, patience, and the attitude that you can do it!
- •Chapter 60: Weapon Icons
- •If you did, you are successful. Despite the odd format of the icons, you have spotted them, and that is what is most important, in my honest opinion.
- •I have this show up:
- •Chapter 61: Map Sprites
- •Chapter 62: Proper Betatesting
- •Chapter 63: vba’s Tools
- •Chapter 64: Other vba Options
- •In this chapter I’m going to detail some of vba’s semi-obscure but not totally obscure options. Knowing how to use vba will help you test your game in various ways.
- •Chapter 65: Recording Videos & Sound
- •Chapter 66: Fixing the Desync with VirtualDubMod & Video Rendering
- •Chapter 67: ips Patching & General Patching Information
- •Chapter 68: ups Patching
- •I suggest you read the ips patching tutorial (at least the beginning) if you haven’t done so as I will not be as thorough with this chapter as I was the previous.
- •In an extremely similar manner you can apply patches. Take a look.
- •Chapter 69: jfp Patching
- •Chapter 70: xDelta Patching
- •Chapter 71: Nightmare Module Format
- •It is recommended (for reasons of readability by humans) that a newline
- •Is unused ("null") for editboxes.
- •Chapter 72: Miscellaneous Information Archive
- •Chapter 73: Useful Links & Websites
- •Chapter 74: Bonus – Assembly Hacking
- •Preparations:
- •Part 1: Background Info
- •Part 2: Inserting an Assembly Hack
- •Part 2: Breaking Down Your First asm Hack
- •I digressed a lot, but back to the point:
- •Part 3: Second Example – More Codes, More Fun
- •Read other people’s doc.
- •Part 4: More Examples – “Speed-Analyzing”
- •It’s thumb. Write to offset 0. Start with label “Initial”. Push 5 registers and the last register, then start a loop counter in r2 with starting value 0x00.
- •Ifat *Conditional id* *asm routine pointer*
- •I may have mentioned this before, but finding where to hack routines is difficult. And I’m sure I mentioned that finding space for them is difficult.
- •It’s not super long, but it’s got some new things we need to learn. Let’s get started.
- •Part 5: Finding asm Routines & Basics of Using a Debugger
- •Warning: terms may not be accurate. In fact, they almost definitely aren’t accurate, as you’ve probably figured out by now.
- •I don’t know what the flags do either, but they’re there, right next to the window. That’s g.
- •I hope to hear of your achievements in the near future!
- •Final Chapter: Credits, Thanks, and the Epilogue
Chapter 63: vba’s Tools
I’m going to (relatively quickly) cover the various tools in VBA’s “Tools” dropdown menu.
Disassemble: this lets you disassemble ARM or THUMB assembly. If you don’t know ASM, it won’t prove very useful to you. If you do, it can prove very useful.
Logging: I’m no expert on this, but to my knowledge, logging lets you keep track of various functions and operations whose purposes I do not know.
I/O Viewer: This viewer enables you to view the input/output area of the RAM and even edit the values here to some extent, in real time.
Map Viewer: The map viewer is one of the more useful tools for average hackers that lets you see backgrounds, as well as information such as their size and # of colors. FYI, “stretch to fit” stretches the background in the viewing window so that it fits the window, and “auto update” makes it so that the background is automatically updated as it changes in-game. (The latter applies to other viewers as well). On the bottom left you can select a square/color (which is selected by clicking on a place in the window) and see it’s RGB.
Memory Viewer: The memory viewer lets you view the game’s RAM (memory) in real time (if you click “automatic update”) and save it as a memory dump (which you can load later) or edit it (although the game might change it by itself right back anyway, depending on what you’re editing). To edit, just click on a byte and type in the new value. Type in an offset in the “Go” box to go to a specific offset.
OAM Viewer: Essentially the same thing as the map viewer, this lets you view sprites, which are essentially smaller “object” graphics that are on top of the backgrounds.
Palette Viewer: The palette viewer is one of the most useful tools in VBA as it lets you find a palette and view any of the colors in the palette. It gives you the RGB and hex value and can let you save either the background (BG) or sprite (OBJ) part of the palette viewer as a .PAL file. It’s very useful for finding palettes in a hex editor as one can search the values of colors to find and edit them.
Tile Viewer: This last viewer lets you view graphics as 16bpp or 256bpp (depending on which it’s meant for—likely the former) as well as scroll through a selection of palettes (as different palettes fit with different tiles in the viewing window). Its other functions are much like the Map Viewer’s own functions.
Well, there’s nothing else of major interest I want to talk about in this dropdown just yet. There is the ability to record videos and sound, but that is for a future chapter. ^_^
Chapter 64: Other vba Options
In this chapter I’m going to detail some of vba’s semi-obscure but not totally obscure options. Knowing how to use vba will help you test your game in various ways.
The file menu has many options, most of which you should be familiar with. Pause obviously pauses the game (and also unpauses it) and ‘reset’ restarts the came (but doesn’t reload the cartridge, meaning if you hack the ROM and hit ‘reset’ in VBA, IIRC the changes won’t show up).
The Recent tab lets you load a recently played ROM. “Import” lets you import gameshark code files, battery saves (the “main” saves), and gameshark snapshots. Battery files and gameshark snapshots can be exported with the export tab, of course.
“Screen capture” takes a PNG screenshot and saves it to your computer, which is very useful.
“Rom information” gives very basic information of the ROM based off of the header and some other crap, and “close” simply closes the ROM without loading another one or exiting the program.
Now the more interesting and less basic stuff is in the “Options” menu at the top. There are a bunch of categories/tabs with lots of options, some with even more tabs. I’ll go through whatever I know well enough to teach. Haha.
“Frame skip” lets you skip frames, like you’d imagine. Lowering the frame rate makes each frame play—making it higher skips a lot of frames, which will make everything seem kinda laggy. Just try ‘9’ and try moving your cursor on a map in Fire Emblem, for example, and you should notice the difference. “Automatic” sets the frame skip to whatever VBA thinks is best.
Throttling forces the game to go at a certain speed (or close to said speed). Thus you can speed the game or slow the game down (of course, you can always speed the game up to max speed by pressing the spacebar too). 100% is normal speed, 25% is 1/4th said speed, and 200% is twice as fast as normal. You can also set your own emulation speed via the “Other…” (just enter a number in the dialog box).
The “video” tab affects the graphics display. There are a bunch of rendering options that I don’t care about, an ‘x1, x2’ etc. with zoom options (you can force the screen to be twice its normal size all the time, or just manually drag the screen yourself if you want), and most importantly, you can set which layers are on/off, which is useful for more advanced graphical hacking to see which graphical aspects are on the same graphic layer, as well as ripping graphics (because you turn the layers you don’t want to rip off).
The “emulator” tab has a lot of stuff that I don’t care about, even if I know what it does. The most relevant things to hacking are the automatic IPS feature (just keep it checked—all it does is have IPS patches with the same name as the ROM automatically be soft patched when you play the ROM-will cover in detail in the IPS patch chapter), and the PNG/BMP format which is for taking screenshots, which should be checked to PNG, of course, because BMP’s take up a ton of space.
In the sound menu you can turn sound off (which speeds up the game because it doesn’t have to load sound), mute it (which doesn’t speed up the game), or just have it on (…). The various channels (which should all be checked) control which… ‘layers’ (not terminologically savy) of sound are playing. So if you turn some channels off, you won’t hear certain music/sound. You can also edit the sound… type (again, terms = fail), with the 11khz, 22khz, etc., and adjust the emulator’s volume (not sure why you’d do that with the computer’s own volume changer though… lol).
The gameboy category doesn’t have anything I want to talk about. The end. Neither does priority.
So next is filtering, which is used for when your emulator is zoomed in. Filters edit the way zoomed in pixels are “interpreted” and displayed. You can make the game look like fine lines, smoothen things out, add motion blur, whatever, but the window has to be more than 1x zoomed in. Try out the filters yourself and see what you like. Here’s an example:
(This one is kinda smoothier than normal, if you can tell).
Joypad and Language also don’t have any interesting (to me) features, so I’m not gonna go over those… which means that, we’re done!
