From ed77542227f5e70497421e6d2580580047063296 Mon Sep 17 00:00:00 2001 From: optixx Date: Sun, 15 May 2016 13:16:46 +0200 Subject: [PATCH] Delete how2code.txt --- files/docs/snes/how2code.txt | 156 ----------------------------------- 1 file changed, 156 deletions(-) delete mode 100644 files/docs/snes/how2code.txt 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 -