Merge branch 'master' of github.com:optixx/quickdev16

This commit is contained in:
optixx 2016-05-22 15:15:17 +02:00
commit 9479d2b1ff
11 changed files with 2 additions and 536 deletions

View File

@ -968,4 +968,4 @@ BYTE 5
Continue this table all the way down to sprite #127 (the 128th Continue this table all the way down to sprite #127 (the 128th
sprite). sprite).
Don't think you're Don't think you're

Binary file not shown.

View File

@ -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?

View File

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

View File

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

View File

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