Initializing the SNES

Initializing the SNES takes LOTS OF CODE. Now, resources for SNES are hard to come by, so I forced myself to dive into Neviksti and Marc's initialization files. Now, believe me, it's a lot to deal with, so what I'll do is try to provide you with some important things that Neviksti's Init SNES file does. You could also take your own peak into his file, but if your the lazy coder, don't think it wil ...

SNES Sprites

This was very large and I had to write more sections in different parts of the tutorial, so please tell me if anything is confusing. I have not proofread any of this.

Sprites are important to every game. They are coined after the objects that move in a game, and there are ALOT of moving objects in a game! So... sprites are very important to any demo or game, capiche?

I want you to read the S ...

Writing Your First SNES Program

Writing Your First SNES Program

Now it is time to get your hands dirty. You will be making your first SNES ASM program today. It's about time, huh. So let's get on with it!

What this program will do:

Well it will basically fill then entire screen with one color. MAN is that EXciting OR WHAT! Now, before we begin, I want you to know what you are writing. So some very Quick (actuall ...

SNES Development Hardware and Software

SNES Development Hardware / Software

Psygnosis PSY-Q Development System for SuperNES

To enter a diagnostics mode, hold the Left Trigger + Right Trigger + Start + Select and a diagnostics screen will appear.

The cart PCB has the following labels:

  • SNES Cart v1.2
  • (C) SN Systems 1993
  • A 94V-0 9426

And has the following labeled chips:

  • © ...



アセンブラに関する資料は見かけるものの、 具体的な解析手法を公開しているサイトはほとんど見ないので作ってみました。 まー私自身大した知識や技術があるわけではないので、逆汗初心者向けです。


前提的知識としては ゲイムのお部屋の「2から始める改造講座」をなんとなく理解できるくらいを想定して書いています。
わからない単語があれば、e-Words を探せば大抵載ってます。

§1 基 ...

SNES Development Boards

SNES Development & Production PCB IDs

  • SHVC-2Q5B - EP 4

  • SHVC-4PV5B - EP 7

  • SHVC-8PV5B - EP 10

  • SHVC-4RB3B7S - EP 20

  • SHVC-2QW5B-01 - DSP1-B

  • SHVC-4QW5B-10 - DSP1

  • SHVC-1RA3B6S-01 - SuperFX GSU1A

  • SHVC-1P0N - Single EPROM Board

  • SHVC-2P3B - Double EPROM Board

  • SHVC-8X7B - SA-1

  • SHVC-D(F)PV7R-01 - NUS-Checker Cart

  • SETA ESP-0019C / SHCV PCB - Seta ...

Learning the GFX Format - 2BPP Gameboy and SNES

This is good if you want to understand the actual graphics format the SNES uses, well 1 way anyways. I guess it's not really necessary, but it doesn't hurt.

I am going to use a great explanation from a Gameboy document. Why? Because the original Gameboy's were also 2BPP, but were only 4 different shades of grey. 2BPP means 2 bits per pixel, making 4 total possible colors (0..3 decimal is 00..11 ...

Basic ca65 Usage for SNES Programming

Basic ca65 Usage for SNES Programming

First Example

The first example is a minimal example of setting up the ROM header, vectors, etc.


ca65 ca65.s
ld65 -C lorom128.cfg -o ca65.smc ca65.o


# ca65 linker config for 128K SMC

# Physical areas of memory
# Names need not match, but it makes it easier to remember if they do ...

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

Grog's Guide to DMA and HDMA on the SNES

Introduction to DMA

Most computer systems have some form of Direct Memory Access controller, which is basically a piece of hardware that allows I/O devices to copy to and from main memory independently of CPU control. In the SNES, as usual, Nintendo came up with an odd design for their DMA system. There are 8 DMA "channels", each of which can control a separate transfer from CPU memory t ...