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 ...
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
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 / 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:
- © ...
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 ...
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
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 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 = ...
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 ...