ASM Hacking for Dummies
This document was written for the aspiring ROM hacker with little to no experience in 65c816 programming.
This document was written for the aspiring ROM hacker with little to no experience in 65c816 programming.
This page contains the RAM Map of the BS-X.
$7E00AC - BS-X Token Interpreter Current Address (24-bit)
$7E0725 - Text Settings
$7E13C5 - Error Number
$7E1427 - Copy Type
$7E1430 - Current Month
$7E1431 - Current Day
$7E1432 - Data Type
$7E1433 - Seconds before timeout
$7E1437 - Ticks before timeout
$7E1C00:$7E1E20 - ...
BRR, or Bit Rate Reduction, is the sound encoding scheme used by the SPC700, the sound chip in the SNES.
SNES Capcom Sequence format / Capcom SPC format
SNES Controllers
Copiers were the original way to pirate games.
Cx4 Command Matrix
Cx4 Opcode Matrix
SNES Expansion Chips
List of Super Nintendo Flashcarts
Version 1.0 - Copyright 2003: The Dumper
The Game Doctor SF3/SF6/SF7 backup units for the SNES use a 512 byte header.
The format is as follows (all numbers are hexadecimal):
0000-000F
47 41 4D 45 20 44 4F 43 54 4F 52 20 53 46 20 33 "GAME DOCTOR SF 3"
This is the ID string for a Game Doctor SF header.
0010
SRA ...
This is a list of some Game-specific Hacking Tools that have been released through the ages.
The most important thing to know about 65816 optimizations is to not try to emulate other CPU architectures. A lot of games (games with a lot of slowdown) have this programming style where the programmer pretends that a couple memory locations are 68000 registers or high-level local variables, and the accumulator is only there as an operand buffer. Please avoid this style of programming. It is
Also known as Hoshi no Kirby Super Deluxe and Kirby's Fun Pak.
HiROM/LoROM differences
A few games on Super Famicom supports Memory Pack and Satellaview content.
Memory Pack can be accessed through the 3rd menu from the top and left.
Content must be at the start of Memory Pack, must be HiROM and 4M.
$A080E0 (0x80E0): "JYAN-OH TOHRYUMON SFX (SAT-VIE ...
Nintendo Music Format (N-SPC) player is a common SPC player included in many SNES games.
Why a ROM might not be 4, 8, 16, or 32 Mbit, and how it appears in address space
Old BBS Messages related to SNES or Programming
The Super Nintendo / Super Famicom stores its palette in 512 bytes in a 15-bit BGR format.
bazz's controller input tutorial
Some acronyms and their expansions used in the excellent video series for the Super Nintendo
The SA-1 is a coprocessor capable of running at four times the base speed of the SNES main CPU when access does not conflict with that of SNES CPU, DMA or HDMA processing. It provides additional shared RAM, visible to both the SNES CPU and the SA-1, and optionally backed up by battery referred to as BW-RAM with a maximum install RAM size of 256 KB (2 Mbit).
SA-1 Co-Processor Registers
SFROM File Format
Version 1
SNASM is a 65816 Cross Assembler which produces SNES code in Super Magicom format.
SNASM is a fast 2 pass assembler, supporting source and binary include files, generation of listing files and labels files, generation of executable or object files and support for all 65816 instructions and addressing modes.
The satellaview AV selector was conceived in order to prepare the decoded satellite signal for the satellaview, prevent the super famicom from monopolizing the TV's AV input, and allow for the use of a second BS decoder along with the one provided by ST. Giga. As is evident in the following diagram, the selector's internal circuit can be divided in three discrete units, ...
Satellaview Download Data
Before you dive into writing Super Nintendo programs, you need the necessary utilities and other things that will simplify your journey of learning how to program this beast.
a
Space Funky B.O.B.
The following information is for the US version of the game.
Offset | Description |
---|---|
1F4A5 - 1F4F8 | Track Data pointers (3 bytes per track, 28 tracks) |
28000 | Menu "Track" Data |
28074 | 00- ... |
Offsets refer to the US version of the ROM.
Offset 0x33F82
contains a table of pointers to level and cutscene headers. Each entry in the table is 4 b ...
The first SNES CD hardware by Sony.
How flags of the SuperFX change when an instruction runs
acronym expansions for the SuperFX patent
Number of cycles each SuperFX instruction takes depending on where it is run from
opcode matrix for the Super FX chip
03451
- 0346E
21D4A
- 21D67
21D68
- 21D85
4F4E2
- 4F4FF
Palette for Arthur (gray armor, boxer shorts and skeleton after death), lance weapon he starts the game with, and part of the color rotation for most ite ...
Super Mario World Music (N-SPC) Reference
SuperDisc Memory Map
This drive uses the EXT port for communication (while not directly plugged). Because this uses the B-Bus Memory, it can only use $21xx registers.
$21D0 - ? (Always zeroes it)
$21E0 - ?
$21E1 - NEC D75P308GF Interface
$21E2 - Sony CXD1800Q Register Select
$21E3 - Sony CXD1800Q Interface
$21E4 - Interrupt Enable
d1 = ...
Once you've programmed a game or other bit of data for SNES, you'll probably want to try to, well, test it.
Although for most software these choices are, mostly, about preference. Most games which require Expansion Chips other than the DSP-1 may require less than favorable methods of testing (either emulation or reproduction cartridge).
...
The Super Flash Cart 64M (SFC) is an 8MB SNES cartridge with flash memory and battery RAM. It comes with a separate programmer. I obtained the following information by hot-swapping the cartridge into an already-powered SNES running probing programs, and making minor modifications to its mapping scheme.
The SNES has a 24-bit a ...
How transparency works on the SNES.
So you're making a Super Nintendo game, (or demo) and you run into a problem. You want to animate sprites and BG tiles, but you ran out of v-blank time with all the heavy DMAing you're doing. What this tutorial covers is how to avoid the dreaded v-blank limit, without blowing your brains out with frustration.
You might at first take the "hardwired" appr ...
Widespread Programming Myths, These are myths that frequently show up that mislead people into writing bad code based on false perception of what the system actually does.
Winkysoft Music Format of Super Robot Wars 4
Below is an example of using Xkas to patch an existing game. The game is Super Mario World and the patch was coded by Videogamer555, you can also view the original thread.
Firstly you need the SMW ROM without a header, and should expand the ROM ...