ASM Hacking for Dummies

This document was written for the aspiring ROM hacker with little to no experience in 65c816 programming.

ASM Tutorial Part 2

Are you familiar with all the previous lessons yet? If so, that's great.. with all of that knowledge, you can do a lot of cool stuff - but you can always get better at ASM and make awesome stuff by learning more. So here's Part 2 of the tutorial, which for now only explains a bit of intermediate stuff. Don't worry, everything will be explained easily.

Lesson 6: Indexing

So... you know ...

BS-X RAM Map

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 - ...

GD Leen

GD Leen

Below is a decompressor and recompressor for GD Leen. This has been updated to compile with GCC, below that is the original unmodified file.

//------------------------------------------------//
// Decompressor and Recompressor: GDLeen ver 1.0  //
//                                                //
// Coded By:   John C. (Bongo`) ...

Game Doctor

Bung Game Doctor SF3, SF6, SF7 Headers

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 ...

General Advice

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

Kiddo and Seru-kun's Satellaview Homebrew convo logs (Header, Registers, etc.)

<Seru-kun> Anyway, want to see a working Satellaview homebrew on video ? <Kiddo> Sure, although the ROM'd probably be quicker. <Seru-kun> http://www.youtube.com/watch?v=3zDirQXD8Cw -Seru-kun- DCC Send SatellaviewTest2Working.rar (82.249.178.174)

  • Seru-kun has offered SatellaviewTest2Working.rar (1076 bytes)
  • DCC RECV connection established to Seru-kun [82.249.178.174:1024]
  • DCC RECV Satel ...

SA-1

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).

SPC7110

SPC7110 Decompression Chip

Super FX cycle times

Number of cycles each SuperFX instruction takes depending on where it is run from

Super Wild Card

Hardware Specification to SWC & SMC Programmer Only

  1. DRAM - 28 Mega Bits Maximum Available.
  2. SRAM - 256K Bits. (Battery Backup)
  3. ROM - 128K Bits. (Firmware)
  4. Floppy Drive Interface
  • Motorola MCS3201 Chip. (NEC 765a Compatible)
  • Compatible With IBM PC/at and XT Disk Drive System.
  • Supports 3.5" or 5.25" Floppy Disk Drive.
  • Db-25 Female Connector. (Non-Standar ...

Testing Code

Once you've programmed a game or other bit of data for SNES, you'll probably want to try to, well, test it.

Methods

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).

Emulators

...

Tototek Flash Cart

Super Flash Cart 64M for NTSC/PAL SNES

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.

Memory Mapping

The SNES has a 24-bit a ...

Transferring Data from ROM to the SNES APU

Transferring Data from ROM to the SNES APU The method of transferring data to the sound module of the SNES is a bit screwy, but it works. I've read many docs, looked at a lot of code, and nothing I've seen seems to explain the method to this madness in a straightforward way. I'm hoping I can shed some light on the matter.

During the transfer process, the following ports apply:

$2140   = ...

Widespread Myths

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.