Merge branch 'master' of github.com:optixx/quickdev16
This commit is contained in:
commit
9479d2b1ff
Binary file not shown.
Binary file not shown.
@ -1,35 +0,0 @@
|
|||||||
Here's the pinout to a 4Mbit/*Mbit mask Rom used in SNES carts as I've
|
|
||||||
deduced from various specs and actual testing.
|
|
||||||
|
|
||||||
1 A17 ------\__/------ +5v 32
|
|
||||||
2 A18 | | *OE 31
|
|
||||||
3 A15 A19 30
|
|
||||||
4 A12 A14 29
|
|
||||||
5 A7 A13 28
|
|
||||||
6 A6 A8 27
|
|
||||||
7 A5 A9 26
|
|
||||||
8 A4 A11 25
|
|
||||||
9 A3 A16 24
|
|
||||||
10 A2 A10 23
|
|
||||||
11 A1 *CE 22
|
|
||||||
12 A0 D7 21
|
|
||||||
13 D0 D6 20
|
|
||||||
14 D1 D5 19
|
|
||||||
15 D2 D4 18
|
|
||||||
16 GND |---------------| D3 17
|
|
||||||
|
|
||||||
The design approximates std EPROM/SRAM pinouts except for the upper address
|
|
||||||
lines (A16-A19), and OE which sits where VPP or PRGM usually is for an EPROM.
|
|
||||||
This pinout approximates Fujitsu's tentative mask ROM pinouts (a package
|
|
||||||
called GAMEMEDC.ZIP seems to base itself on this and is consequently wrong).
|
|
||||||
Nintendo uses Fujitsu chips in some carts, but from my testing and card-edge
|
|
||||||
pinouts provided by other users, I conclude that Fujitsu must have modified
|
|
||||||
the designs.
|
|
||||||
|
|
||||||
NOTE!: Card-edge pin #40, address line 15 (A15) is not used by any cart I've
|
|
||||||
seen. And ROM pin #3 (see above) that I've determined to be A15 is connected
|
|
||||||
to card-edge pin#41, labeled on many pinouts schems as A16..not A15!!!
|
|
||||||
Would some one please verify this inconsistency.
|
|
||||||
|
|
||||||
PS: How many Megabits can the Snes address?
|
|
||||||
|
|
||||||
@ -1205,7 +1205,7 @@ consoles in general.
|
|||||||
[Image]
|
[Image]
|
||||||
|
|
||||||
Questions, comments or complaints can be sent to DiskDude via e-mail.
|
Questions, comments or complaints can be sent to DiskDude via e-mail.
|
||||||
Copyright © 1995-1996 DiskDude of Damaged Cybernetics. All rights reserved.
|
Copyright © 1995-1996 DiskDude of Damaged Cybernetics. All rights reserved.
|
||||||
|
|
||||||
Last updated 1st January 1997
|
Last updated 1st January 1997
|
||||||
|
|
||||||
@ -1,343 +0,0 @@
|
|||||||
|
|
||||||
______ _____ _____ _______ ___ ___
|
|
||||||
/ __/ /. _ \ ___/ __/ |____ \___ /. \/ \
|
|
||||||
\___ .\// |. \ / . \__ .\ |. _/ \// .\
|
|
||||||
/. \\ |: .\ __/ \\ || | .\ ! \ \/. \
|
|
||||||
\______ /___|____/____\____ / |__| \\___/____||: \
|
|
||||||
By Mind Rape \___/ |______/
|
|
||||||
v1.5 (C) Damaged Cybernetics 1994-95
|
|
||||||
|
|
||||||
|
|
||||||
This document main goal is show where one can find the SNES ROM
|
|
||||||
information. Most of this information was collected thru hacking
|
|
||||||
the rom to death and help from Norm/Yoshi/chp.
|
|
||||||
|
|
||||||
License codes are taken from SU and probably incorrect.
|
|
||||||
|
|
||||||
Source? None here, if you are going to screw with the bin,
|
|
||||||
you probably know what you are doing (HOPEFULLY).
|
|
||||||
|
|
||||||
If you have any questions, comments,corrections, additional information,
|
|
||||||
you can either find me on IRC as (MindRape) or you can send me email
|
|
||||||
(much prefered) mind@primenet.com. Also if you write anything
|
|
||||||
interesting then send it to me!
|
|
||||||
|
|
||||||
You may distribute this document freely, but you may not change
|
|
||||||
the information here and redistribute. If you use this information
|
|
||||||
please credit me. You steal this information and say you did it,
|
|
||||||
you know it's a LIE and there you are.
|
|
||||||
|
|
||||||
=[SNES ROM Makeup]===========================================================
|
|
||||||
|
|
||||||
ROM Title : 21 Bytes
|
|
||||||
|
|
||||||
* Titles are all in upper case
|
|
||||||
* Japanese titles are in high ascii values
|
|
||||||
good rule of thumb if you can't read the title and
|
|
||||||
it's country code is Japan and your American,
|
|
||||||
you probably can't play it. :>
|
|
||||||
|
|
||||||
Rom Makeup : 7654 3210
|
|
||||||
0000-0000
|
|
||||||
|__| |__|
|
|
||||||
| |
|
|
||||||
| |___Bank Size 0001 = HiROM (64K Banks Mode 21)
|
|
||||||
| 0000 = Low Rom (32K Banks Mode 20)
|
|
||||||
|
|
|
||||||
|________ROM Speed 0111 = Fast Rom
|
|
||||||
0000 = Slow Rom
|
|
||||||
|
|
||||||
* Could someone give the correct
|
|
||||||
* speeds of the ROMs? I got
|
|
||||||
* conflicting answers.
|
|
||||||
|
|
||||||
|
|
||||||
ROM Type : 1 Byte
|
|
||||||
|
|
||||||
Hex ROM Type
|
|
||||||
---------------------
|
|
||||||
00 ROM
|
|
||||||
01 ROM/RAM
|
|
||||||
02 ROM/SRAM
|
|
||||||
03 ROM/DSP1
|
|
||||||
04 ROM/DSP1/RAM
|
|
||||||
05 ROM/DSP1/SRAM
|
|
||||||
06 FX
|
|
||||||
|
|
||||||
* SRAM = Save Ram
|
|
||||||
* DSP1 = Nintendo's 1st generation of DSP (Math coprocessor)
|
|
||||||
* FX = RISC based math coprocessor
|
|
||||||
Only a couple of games support the FX Chip, Star Fox
|
|
||||||
is the most well known one.
|
|
||||||
|
|
||||||
|
|
||||||
ROM Size : 1 BYTE
|
|
||||||
|
|
||||||
Hex Size
|
|
||||||
--------------
|
|
||||||
08 2 Mbit
|
|
||||||
09 4 Mbit
|
|
||||||
0A 8 Mbit
|
|
||||||
0B 16 Mbit
|
|
||||||
0C 32 Mbit
|
|
||||||
|
|
||||||
* As of this documentation 32MBit ROMs are the largest that
|
|
||||||
Nintendo currently uses. Rumors of a 40+ kart are around,
|
|
||||||
but cannot be verified.
|
|
||||||
|
|
||||||
* 8MBit ROMs are the most common in the entire library of
|
|
||||||
SNES karts
|
|
||||||
|
|
||||||
* ROMs are always multiples 2, thus 2MBit ROMs are the smallest
|
|
||||||
Space Invaders (c) Taito is a 2MBit ROM (Japan only)
|
|
||||||
|
|
||||||
* Easy way to calc rom size without a lookup table
|
|
||||||
|
|
||||||
1 << (ROM_SIZE - 7) MBits
|
|
||||||
|
|
||||||
ie. 8Mbit ROMs = 0Ah = 10d
|
|
||||||
1 << (0A-7) = 8 Mbit
|
|
||||||
|
|
||||||
SRAM Size : 1 BYTE
|
|
||||||
|
|
||||||
Hex Size
|
|
||||||
--------------
|
|
||||||
00 No SRAM
|
|
||||||
01 16 Kbit
|
|
||||||
02 32 Kbit
|
|
||||||
03 64 Kbit
|
|
||||||
|
|
||||||
* 64Kbit is the largest SRAM size that Nintendo currently uses.
|
|
||||||
* 256Kbit is standard for most copiers.
|
|
||||||
|
|
||||||
* Easy way to calc SRAM Size without a lookup table
|
|
||||||
|
|
||||||
1 << (3+SRAM_BYTE) Kbits
|
|
||||||
|
|
||||||
ie. 16Kbit = 01
|
|
||||||
1 << (3+1) = 16
|
|
||||||
|
|
||||||
|
|
||||||
COUNTRY CODE : 1 BYTE
|
|
||||||
|
|
||||||
Hex Country Video Mode
|
|
||||||
------------------------------------------
|
|
||||||
00 Japan (NTSC)
|
|
||||||
01 USA (NTSC)
|
|
||||||
02 Europe, Oceania, Asia (PAL)
|
|
||||||
03 Sweden (PAL)
|
|
||||||
04 Finland (PAL)
|
|
||||||
05 Denmark (PAL)
|
|
||||||
06 France (PAL)
|
|
||||||
07 Holland (PAL)
|
|
||||||
08 Spain (PAL)
|
|
||||||
09 Germany, Austria, Switz (PAL)
|
|
||||||
10 Italy (PAL)
|
|
||||||
11 Hong Kong, China (PAL)
|
|
||||||
12 Indonesia (PAL)
|
|
||||||
13 Korea (PAL)
|
|
||||||
|
|
||||||
* Country Codes are from SU.INI, could someone verify these?
|
|
||||||
|
|
||||||
LICENSE : 1 BYTE
|
|
||||||
0 <Invalid License Code>
|
|
||||||
1 Nintendo
|
|
||||||
5 Zamuse
|
|
||||||
8 Capcom
|
|
||||||
9 HOT B
|
|
||||||
10 Jaleco
|
|
||||||
11 STORM (Sales Curve) (1)
|
|
||||||
15 Mebio Software
|
|
||||||
18 Gremlin Graphics
|
|
||||||
21 COBRA Team
|
|
||||||
22 Human/Field
|
|
||||||
24 Hudson Soft
|
|
||||||
26 Yanoman
|
|
||||||
28 Tecmo (1)
|
|
||||||
30 Forum
|
|
||||||
31 Park Place Productions / VIRGIN
|
|
||||||
33 Tokai Engeneering (SUNSOFT?)
|
|
||||||
34 POW
|
|
||||||
35 Loriciel / Micro World
|
|
||||||
38 Enix
|
|
||||||
40 Kemco (1)
|
|
||||||
41 Seta Co.,Ltd.
|
|
||||||
45 Visit Co.,Ltd.
|
|
||||||
53 HECT
|
|
||||||
61 Loriciel
|
|
||||||
64 Seika Corp.
|
|
||||||
65 UBI Soft
|
|
||||||
71 Spectrum Holobyte
|
|
||||||
73 Irem
|
|
||||||
75 Raya Systems/Sculptured Software
|
|
||||||
76 Renovation Pruducts
|
|
||||||
77 Malibu Games (T*HQ Inc.) / Black Pearl
|
|
||||||
79 U.S. Gold
|
|
||||||
80 Absolute Entertainment
|
|
||||||
81 Acclaim
|
|
||||||
82 Activision
|
|
||||||
83 American Sammy
|
|
||||||
84 GameTek
|
|
||||||
85 Hi Tech
|
|
||||||
86 LJN Toys
|
|
||||||
90 Mindscape
|
|
||||||
93 Technos Japan Corp. (Tradewest)
|
|
||||||
95 American Softworks Corp.
|
|
||||||
96 Titus
|
|
||||||
97 Virgin Games
|
|
||||||
98 Maxis
|
|
||||||
103 Ocean
|
|
||||||
105 Electronic Arts
|
|
||||||
107 Laser Beam
|
|
||||||
110 Elite
|
|
||||||
111 Electro Brain
|
|
||||||
112 Infogrames
|
|
||||||
113 Interplay
|
|
||||||
114 LucasArts
|
|
||||||
115 Sculptured Soft
|
|
||||||
117 STORM (Sales Curve) (2)
|
|
||||||
120 THQ Software
|
|
||||||
121 Accolade Inc.
|
|
||||||
122 Triffix Entertainment
|
|
||||||
124 Microprose
|
|
||||||
127 Kemco (2)
|
|
||||||
130 Namcot/Namco Ltd. (1)
|
|
||||||
132 Koei/Koei! (second license?)
|
|
||||||
134 Tokuma Shoten Intermedia
|
|
||||||
136 DATAM-Polystar
|
|
||||||
139 Bullet-Proof Software
|
|
||||||
140 Vic Tokai
|
|
||||||
143 I'Max
|
|
||||||
145 CHUN Soft
|
|
||||||
146 Video System Co., Ltd.
|
|
||||||
147 BEC
|
|
||||||
151 Kaneco
|
|
||||||
153 Pack in Video
|
|
||||||
154 Nichibutsu
|
|
||||||
155 TECMO (2)
|
|
||||||
156 Imagineer Co.
|
|
||||||
160 Wolf Team
|
|
||||||
164 Konami
|
|
||||||
165 K.Amusement
|
|
||||||
167 Takara
|
|
||||||
169 Technos Jap. ????
|
|
||||||
170 JVC
|
|
||||||
172 Toei Animation
|
|
||||||
173 Toho
|
|
||||||
175 Namcot/Namco Ltd. (2)
|
|
||||||
177 ASCII Co. Activison
|
|
||||||
178 BanDai America
|
|
||||||
180 Enix
|
|
||||||
182 Halken
|
|
||||||
186 Culture Brain
|
|
||||||
187 Sunsoft
|
|
||||||
188 Toshiba EMI/System Vision
|
|
||||||
189 Sony (Japan) / Imagesoft
|
|
||||||
191 Sammy
|
|
||||||
192 Taito
|
|
||||||
194 Kemco (3) ????
|
|
||||||
195 Square
|
|
||||||
196 NHK
|
|
||||||
197 Data East
|
|
||||||
198 Tonkin House
|
|
||||||
200 KOEI
|
|
||||||
202 Konami USA
|
|
||||||
205 Meldac/KAZe
|
|
||||||
206 PONY CANYON
|
|
||||||
207 Sotsu Agency
|
|
||||||
209 Sofel
|
|
||||||
210 Quest Corp.
|
|
||||||
211 Sigma
|
|
||||||
214 Naxat
|
|
||||||
216 Capcom Co., Ltd. (2)
|
|
||||||
217 Banpresto
|
|
||||||
219 Hiro
|
|
||||||
221 NCS
|
|
||||||
222 Human Entertainment
|
|
||||||
223 Ringler Studios
|
|
||||||
224 K.K. DCE / Jaleco
|
|
||||||
226 Sotsu Agency
|
|
||||||
228 T&ESoft
|
|
||||||
229 EPOCH Co.,Ltd.
|
|
||||||
231 Athena
|
|
||||||
232 Asmik
|
|
||||||
233 Natsume
|
|
||||||
234 King/A Wave
|
|
||||||
235 Atlus
|
|
||||||
236 Sony Music
|
|
||||||
238 Psygnosis / igs
|
|
||||||
243 Beam Software
|
|
||||||
244 Tec Magik
|
|
||||||
255 Hudson Soft
|
|
||||||
|
|
||||||
* License Codes are from SU.INI, could someone verify these?
|
|
||||||
|
|
||||||
* I believe the # of licenses is low. Is it possible that
|
|
||||||
License and Country codes are used in conjuction to produce
|
|
||||||
that many more licenses?
|
|
||||||
|
|
||||||
VERSION - 1 byte
|
|
||||||
|
|
||||||
* The Version is interpeted this way.
|
|
||||||
1.?? - (thanks to yoshi for the correction)
|
|
||||||
|
|
||||||
CHECKSUM COMPLEMENT - 2 bytes the complement of the checksum :>
|
|
||||||
|
|
||||||
The bits are reversed of the CHECKSUM
|
|
||||||
|
|
||||||
CHECKSUM - 2 bytes Checksum of the bin
|
|
||||||
|
|
||||||
* Anyone know how the checksum is calculated for the ROM?
|
|
||||||
|
|
||||||
NMI/VBL Vector - 2 bytes - OFFSET 81FAh (lowrom)
|
|
||||||
OFFSET 101FAh (hirom)
|
|
||||||
|
|
||||||
RESET Vector - 2 bytes where to start our code at - OFFSET 81FCh (lowrom)
|
|
||||||
- OFFSET 101FAh (hirom)
|
|
||||||
* 8000h is common for Low Roms
|
|
||||||
|
|
||||||
=[READING THE CORRECT BIN INFORMATION]==================================
|
|
||||||
|
|
||||||
The bin information can be found in 2 possible places,
|
|
||||||
|
|
||||||
a) End of the 1st 32K bank (Low ROM) (81c0h/w 512 byte header)
|
|
||||||
b) End of the 1st 64K bank (HiROM) (101c0h/w 512 byte header)
|
|
||||||
|
|
||||||
You could use UCON's method (author chp).
|
|
||||||
|
|
||||||
The method is as followed:
|
|
||||||
|
|
||||||
UCON's method is to OR the Checksum and the Complement. If the
|
|
||||||
resulting value is FFFFh, then we found the correct location of
|
|
||||||
to extract rest of the data out. HOWEVER! This fails on several
|
|
||||||
karts, such as Castle Wolfenstien 3D and Super Tetris 3 for example.
|
|
||||||
|
|
||||||
Reason being is that not all developers put the correct complement
|
|
||||||
or bother even to implement it. I would suspect! That this maybe
|
|
||||||
a ploy to keep other developers out of the bin, for if they can't
|
|
||||||
find the reset vector, disassembling becomes a bit difficult.
|
|
||||||
|
|
||||||
=[Other Information on SNES?]================================================
|
|
||||||
|
|
||||||
Famicom Development FTP Site
|
|
||||||
busop.cit.wayne.edu - pub/famidev
|
|
||||||
|
|
||||||
Yoshi's SNES Documentation 2.3
|
|
||||||
|
|
||||||
This is considered the BEST source of SNES hardware information,
|
|
||||||
and the most complete!
|
|
||||||
|
|
||||||
busop.cit.wayne.edu - pub/famidev/incoming/sndoc230.lzh
|
|
||||||
|
|
||||||
=[w0rd!]=====================================================================
|
|
||||||
|
|
||||||
w0rd to all following console dudes
|
|
||||||
|
|
||||||
GoosE_,yoshi,sir jinx,chp,SHORYUKEN,_bubsy,felon,archimede
|
|
||||||
rugalz,SinZ,dragonz,procyon,royce,hoodlem,bri_acid,kamikitty,
|
|
||||||
norm,ZillionZ Members,grayarea,Victor,drunkfux(h0h0h0h0),dmessiah,
|
|
||||||
piratendo
|
|
||||||
|
|
||||||
<insert your favorite group(s) greet here> (heh)
|
|
||||||
|
|
||||||
Later Mind Rape
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 132 KiB |
@ -1,156 +0,0 @@
|
|||||||
BASELINE 2091 Presents The First Guide To Coding The SNES
|
|
||||||
Guide and Source Code by -Pan-
|
|
||||||
Released on 4/20/93
|
|
||||||
|
|
||||||
|
|
||||||
Welcome to the first installment of "How to code SNES"
|
|
||||||
This first volume will show you how to make a simple text intro. It uses
|
|
||||||
mode 0 graphics with no DMAs (Horizontal or General) and is the simplest
|
|
||||||
type of intro you can make. We're starting small so you can easily understand
|
|
||||||
what to do. Other future volumes will contain other graphic modes,
|
|
||||||
Horizontal DMA (HDMA, the SNES version of an amiga copperlist), General DMA,
|
|
||||||
Interrupts, and a brief section on Sound. Originally we were going to release
|
|
||||||
the full Super Famicom Programmer's Manual but believe it or not, this manual
|
|
||||||
a pile of garbage. Contrary to the popular belief that we always had the
|
|
||||||
manual, this is NOT true. The White Knight happened to meet a very cool
|
|
||||||
guy at the CEBIT in Germany and has gotten the manual 2 weeks ago!
|
|
||||||
Yes! What you have seen from us before was true coding. We started out
|
|
||||||
by hacking and working our way to the top. We didn't wait until we bought
|
|
||||||
a manual. In fact, the manual was sent to us for FREE! This book isn't
|
|
||||||
worth paying for!
|
|
||||||
|
|
||||||
Let's clear up a few misunderstandings about that SNES manual!
|
|
||||||
|
|
||||||
1) This book does NOT teach you assembly language!!
|
|
||||||
It would help if you knew a little before trying to code this machine!
|
|
||||||
|
|
||||||
2) This book was not written such as other reference guides you can find in
|
|
||||||
a store, like Mapping the Amiga, or even Mapping the C64.
|
|
||||||
It tells you barely and confusingly what the registers do. Period.
|
|
||||||
|
|
||||||
3) This book is about 148 pages long and that includes the Sound Section.
|
|
||||||
Some have said it was the size of a phone book. Unless live in
|
|
||||||
Mud Hole, Kentucky this is NOT the case!
|
|
||||||
|
|
||||||
|
|
||||||
So much for the introduction. I personally feel that experience is better
|
|
||||||
than a reference guide. Reading a text file does not give you the feel of the
|
|
||||||
machine. In the included source file, you will notice that almost every line
|
|
||||||
has a description of what it is doing. This is better than telling you the
|
|
||||||
registers and letting you fiddle around. You know what it will do, and you
|
|
||||||
can see it in action in the assembled output (also included). I suggest
|
|
||||||
you examine the source code right after reading this brief introduction on
|
|
||||||
how the SNES system operates.
|
|
||||||
|
|
||||||
The SNES runs on a 65816 processor. This is similar to the 6502, but many
|
|
||||||
new instructions are available. You will use the most popular commands
|
|
||||||
like LDA, LDX, STA, PHA, PLA, RTS, JMP.. etc etc. There are some new
|
|
||||||
ones but we will get into that subject in the next volume as it is not
|
|
||||||
very important right now.
|
|
||||||
The 65816 is a 16 bit processor that does 24 bit addressing.
|
|
||||||
You can load and store 16 bit numbers, as well as 8 bit. The addressing is
|
|
||||||
is different than the 6502 in that it includes a bank. If you have coded on
|
|
||||||
the C64 you know that the addressing on the C64 was from $0000-$FFFF.
|
|
||||||
That is 16 bit addressing. 24 bit includes 1 extra byte. This one byte
|
|
||||||
is the BANK number. The SNES memory is broken down into fragments of
|
|
||||||
32k blocks each. They are addressed from $8000-$FFFF and are stored into
|
|
||||||
banks sequentially. If you wanted to access the first ROM byte in memory,
|
|
||||||
the address would be $008000. The first $00 is the bank number, the first
|
|
||||||
bank you can access. The $8000 is the 16 bit address. All banks (unless in
|
|
||||||
high rom 64k bank memory) start at $8000!
|
|
||||||
Remember that you can not write ROM. If you have coded on a C64 you have
|
|
||||||
written a routine that looked like this:
|
|
||||||
|
|
||||||
lda #$00
|
|
||||||
sta $c000
|
|
||||||
|
|
||||||
You cannot do this! $c000 is ROM and you can not write to ROM!
|
|
||||||
To write to ram, simply write to any address between $0000-$1fff.
|
|
||||||
If you need more memory you will find plenty at bank $7e and $7f
|
|
||||||
These 2 banks contain memory from $0000-$ffff. These 2 banks each contain
|
|
||||||
64k ofram totalling 128k for your own use!
|
|
||||||
If you need to write to these directly, just use the LONG STA command
|
|
||||||
example:
|
|
||||||
sta $7ec000
|
|
||||||
|
|
||||||
This will write to bank $7e at address $c000!
|
|
||||||
|
|
||||||
Fair enough. This was only a brief lecture on how the memory works.
|
|
||||||
|
|
||||||
|
|
||||||
The SNES hardware registers and how the work:
|
|
||||||
|
|
||||||
You will notice when looking at the source code something very strange.
|
|
||||||
Some registers are written to twice in a row! This because some registers
|
|
||||||
need more than one 8 bit info, such as the scroll X registers. In these
|
|
||||||
registers you can enter any number between $0-$07ff, but they are written
|
|
||||||
as two 8 bit numbers, one right after another.
|
|
||||||
example:
|
|
||||||
|
|
||||||
lda #$07
|
|
||||||
sta $210d
|
|
||||||
lda #$00
|
|
||||||
sta $210d
|
|
||||||
|
|
||||||
This writes #$0007 to $210d, plane 0 scroll x register.
|
|
||||||
|
|
||||||
Using 16 bit data storage will not work for this type of register!
|
|
||||||
example:
|
|
||||||
|
|
||||||
lda #$0007
|
|
||||||
sta $210d
|
|
||||||
|
|
||||||
This will not work because it will write #$07 to $210d, then a #$00 to $210e.
|
|
||||||
|
|
||||||
Another strange register is the self-incrementing register such as the VRAM
|
|
||||||
address registers $2116 and $2117.
|
|
||||||
After writing to $2119 (or $2118 in another setting) the VRAM address in
|
|
||||||
$2116 and $2117 will be increased. You do not have to do it yourself.
|
|
||||||
This can be seen in the Character set (font set) transfer routine in the
|
|
||||||
source code.
|
|
||||||
|
|
||||||
|
|
||||||
Introduction to Video RAM (VRAM)
|
|
||||||
|
|
||||||
The Super NES system has it own graphics processor. This requires its own
|
|
||||||
ram to read/write graphics data. This ram can only be accessed through
|
|
||||||
certain registers such as $2118 + $2119. To access Video Ram you MUST
|
|
||||||
turn off the video or you must be in screen blank (horizontal or vertical).
|
|
||||||
This is one of the downsides of the SNES.
|
|
||||||
Video Ram allows the storage of map planes and tile graphics.
|
|
||||||
VRAM is only 64k long and can not be used as regular ram. You can not
|
|
||||||
program in it, it is a separate unit!
|
|
||||||
|
|
||||||
In this volume we show you how to make a text screen in Mode 0. There are
|
|
||||||
8 graphic modes numbered from Mode 0 to Mode 7. Mode 0 is the most
|
|
||||||
simplistic. It allows only 4 colors per tile, but allows all four
|
|
||||||
planes to be used.
|
|
||||||
|
|
||||||
A normal video screen on the SNES is 32*32 tiles, which comes out to an
|
|
||||||
even 1024 tiles. You can widen the screen but you still may only have
|
|
||||||
1024 tiles. There are 2 parts to displaying a graphic on the screen.
|
|
||||||
There is the tile graphic data which gives the tile its picture. Then there
|
|
||||||
is the Map data. These are individually placed tiles placed on the screen
|
|
||||||
to produce an image.
|
|
||||||
|
|
||||||
example:
|
|
||||||
|
|
||||||
BBBBB SSSSS LL
|
|
||||||
BB BB SS LL
|
|
||||||
BBBBB SSSS LL
|
|
||||||
BB BB SS LL
|
|
||||||
BBBBB SSSSS LLLLLLL
|
|
||||||
|
|
||||||
Notice that all the small B's are the same. These woulds be drawn as
|
|
||||||
Tile Graphics. They all form together to create the large B image.
|
|
||||||
These B's together would be the Map data. The same would go for the S and L.
|
|
||||||
|
|
||||||
This is enough info to understand the basics of this 2 color intro.
|
|
||||||
This next installment on "How to code SNES" will feature more interesting
|
|
||||||
subjects as:
|
|
||||||
|
|
||||||
- How the color works
|
|
||||||
- 16 color graphic mode
|
|
||||||
- the entire 65816 instruction set with op-codes
|
|
||||||
- more info on the joypad
|
|
||||||
|
|
||||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user