diff --git a/files/docs/snes/Architektur des SNES - Final.doc b/files/docs/snes/Architektur des SNES - Final.doc deleted file mode 100644 index 1d00a66..0000000 Binary files a/files/docs/snes/Architektur des SNES - Final.doc and /dev/null differ diff --git a/files/docs/snes/SNES.DOC b/files/docs/snes/SNES Documentation v1.3 similarity index 99% rename from files/docs/snes/SNES.DOC rename to files/docs/snes/SNES Documentation v1.3 index 16ac171..608b9f8 100644 --- a/files/docs/snes/SNES.DOC +++ b/files/docs/snes/SNES Documentation v1.3 @@ -968,4 +968,4 @@ BYTE 5 Continue this table all the way down to sprite #127 (the 128th sprite). - Don't think you're \ No newline at end of file + Don't think you're diff --git a/files/docs/snes/SNESKART.doc b/files/docs/snes/SNESKART.doc deleted file mode 100644 index a38ddc6..0000000 Binary files a/files/docs/snes/SNESKART.doc and /dev/null differ diff --git a/files/docs/snes/SNESROM.PIN b/files/docs/snes/SNESROM.PIN deleted file mode 100644 index a3c0855..0000000 --- a/files/docs/snes/SNESROM.PIN +++ /dev/null @@ -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? - diff --git a/files/docs/snes/snes_cart1.txt b/files/docs/snes/Snes_cart_hacking.txt similarity index 100% rename from files/docs/snes/snes_cart1.txt rename to files/docs/snes/Snes_cart_hacking.txt diff --git a/files/docs/snes/Sneskart.txt b/files/docs/snes/Sneskart_v1.6.txt similarity index 99% rename from files/docs/snes/Sneskart.txt rename to files/docs/snes/Sneskart_v1.6.txt index 0cb0f2c..4120aef 100644 --- a/files/docs/snes/Sneskart.txt +++ b/files/docs/snes/Sneskart_v1.6.txt @@ -1205,7 +1205,7 @@ consoles in general. [Image] 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 diff --git a/files/docs/snes/Snesrom.txt b/files/docs/snes/Snesrom.txt deleted file mode 100644 index 1e4c840..0000000 --- a/files/docs/snes/Snesrom.txt +++ /dev/null @@ -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 - 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 - - (heh) - -Later Mind Rape diff --git a/files/docs/snes/SNES-ROM.TXT b/files/docs/snes/Snesrom_v1.5.txt similarity index 100% rename from files/docs/snes/SNES-ROM.TXT rename to files/docs/snes/Snesrom_v1.5.txt diff --git a/files/docs/snes/board_cpld_01.png b/files/docs/snes/board_cpld_01.png deleted file mode 100644 index c91132b..0000000 Binary files a/files/docs/snes/board_cpld_01.png and /dev/null differ diff --git a/files/docs/snes/how2code.txt b/files/docs/snes/how2code.txt deleted file mode 100644 index c3ea6ae..0000000 --- a/files/docs/snes/how2code.txt +++ /dev/null @@ -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 - diff --git a/files/docs/snes/pilotwings.pdf b/files/docs/snes/pilotwings.pdf deleted file mode 100644 index 60f72a4..0000000 Binary files a/files/docs/snes/pilotwings.pdf and /dev/null differ