173 lines
7.3 KiB
Plaintext
173 lines
7.3 KiB
Plaintext
|
||
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||
< <
|
||
> ___ ___ ___ ___ __ ___ ___ __ __ ___ ___ ___ ___ >
|
||
< | |___|/__ /__ / \|__)| __) | | \| \/__ /\ \ / | | \_/ <
|
||
> | | |\___ \ \___/| \|___)_|_|__/|__/\___\ \/ \___ _|_ | | >
|
||
< <
|
||
> >
|
||
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||
############################################################################
|
||
# #
|
||
# SEGA MEGADRIVE - NINTENDO SUPER FAMICOM - NEC PC-ENGINE #
|
||
# More than just AMIGA.. #
|
||
# #
|
||
# 14.4k HST/V32bis -- ASL -- Locked at 38.4k -- Kickstart 2 -- 68030 40MHz #
|
||
# #
|
||
# FILE DOWNLOADED FROM TREASURE ISLAND BBS +44 (0)992 451 191 #
|
||
# #
|
||
############################################################################
|
||
|
||
Version 1.1
|
||
|
||
Corrected an error in screen sizes and removed a quesry on sound registers.
|
||
|
||
|
||
Corsair + Kari presents the first dox of Fami hardware register
|
||
locations and brief explanation of them..
|
||
|
||
If you would like to add any info found in this list please leave
|
||
a mail message to Corsair or RamRaider on GRAVEYARD BBS +44-91-5160560
|
||
or anything to do with the FAMICON/SNES..
|
||
|
||
We have an INTERNET address if ya want it leave true e-mail!
|
||
|
||
Or better still if ya can get the Programmers handbook (Both) please call
|
||
and leave mail :) , or even the 100,000 quid SCSI SNASM board for FAMICON
|
||
development :)
|
||
|
||
Also if you want more info contact us the same way..
|
||
|
||
We are esp looking for contacts to help get to grips with this new platform
|
||
everybody welcome!
|
||
|
||
Special greetings to Starr/QUARTEX and any other True Console Dude!
|
||
|
||
coming soon is some sound chip info........
|
||
|
||
Memory Map
|
||
~~~~~~~~~~
|
||
Bank Address
|
||
~~~~ ~~~~~~~
|
||
|
||
00- 0000-1fff Lo RAM (same as at $7e0000-$7e1fff)
|
||
7d 2100-2142(?) Videochip Registers
|
||
4300-437f DMA Registers
|
||
|
||
8000-ffff ROM:This contains 32k block of game ROM.
|
||
So, the games are divided to 32k chunks
|
||
which locate always at address $8000-$ffff,
|
||
but in different banks. This means that the first
|
||
32k of game is at $008000-$00ffff and next 32k
|
||
is at $018000-$01ffff etc.
|
||
|
||
7e 0000-1fff Lo RAM (same as always at $0000-$1fff) \
|
||
2000-ffff RAM \ I'm not sure about } 128k RAM??
|
||
7f 0000-ffff RAM / this RAM /
|
||
|
||
7f-ff all Not used???
|
||
|
||
$ffec($fffc) contains reset vector and $ffea($fffa) is NMI vector. The NMI is
|
||
actually vertical blank interrupt.
|
||
|
||
Video Chip
|
||
~~~~~~~~~~
|
||
size loc.
|
||
~~~~ ~~~~
|
||
B 2100 Screen fade x000bbbb x=screen on/off b=brightness(0-f)
|
||
B 2106 Screen Pixelation xxxxbbbb x=pixel size b=planes to expand
|
||
B 2107 Plane 0 location in vram xxxxxxab x=address ab=32/64 width xy
|
||
B 2108 Plane 1 location in vram xxxxxxab as above
|
||
B 2109 Plane 2 location in vram xxxxxxab as above
|
||
B 210a Plane 3 location in vram xxxxxxab as above
|
||
B 210b Tile VRAM address aaaabbbb a=Playfield 0 b=Playfield 1
|
||
B 210c Tile VRAM address ccccdddd c=Playfield 2 d=Playfield 3
|
||
2B 210d Plane 0 scroll x 8+3 bits (0-7ff) put first 8 bits and then
|
||
2B 210e Plane 0 scroll y 8+3 bits (0-7ff) 3 highest bits
|
||
2B 210f Plane 1 scroll x as above
|
||
2B 2110 Plane 1 scroll y as above
|
||
2B 2111 Plane 2 scroll x as above
|
||
2B 2112 Plane 2 scroll y as above
|
||
2B 2113 Plane 3 scroll x as above
|
||
2B 2114 Plane 3 scroll y as above
|
||
B 2115 Video port control
|
||
W 2116 Video port address (lo-hi)
|
||
W 2118 Video port data (lo-hi) (address is incremented by 2)
|
||
B 2121 Palette color nr
|
||
B 2122 Palette color data
|
||
B 212C Playfield Enable xxxxabcd a-d = playfield number..
|
||
B 2133 Screen mode 0000ab0c a=Interlace Y b=Overscan c=Interlace X??
|
||
2140-2142 Audio Registers
|
||
|
||
I/O
|
||
~~~
|
||
W B 420b Start dma (enable bits) bits: 76543210 = dma nr (8 DMA's)
|
||
R B 4212 Pad ready to be read
|
||
R W 4218 Pad 0 data 76543210 = A-B-Select-Start-U-D-L-R
|
||
4219 76543210 = X-Y-Top Left-Top Right-0000
|
||
R W 421a Pad 1 data as above
|
||
R W 421c Pad 2 data as above
|
||
R W 421e Pad 3 data as above
|
||
|
||
DMA registers ($4300-$437f)
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
B 43X0 DMA control reg??(not sure!)
|
||
B 43X1 DMA destination (Access only to some of the video chip
|
||
registers ($2100-$21ff)
|
||
$18=video port $22=color palette
|
||
W 43X2 Source address lo-hi 16 lowest bits
|
||
B 43X4 Source Bank addr. 8 highest bits
|
||
W 43X5 Transfer size lo-hi
|
||
|
||
X=dma number (0-7) DMA #0= 4300-4305
|
||
DMA #1= 4310-4315 ...
|
||
DMA #7= 4370-4375
|
||
|
||
Symbols: size: B=byte long 2B=put 2 bytes W=word long
|
||
R=read only W=write only
|
||
|
||
Screen Details
|
||
~~~~~~~~~~~~~~
|
||
Famicom Tile format is simple. Each Tile is 4 planes and 8x8 bits.
|
||
32 bytes are used per Tile .
|
||
|
||
PLANES 1 & 2 PLANES 3 & 4
|
||
byte0 byte1 byte 16 byte 17
|
||
byte2 byte3 byte 18 byte 19
|
||
byte4 byte5 byte 20 byte 21
|
||
..... .......
|
||
byte14 byte15 byte 30 byte 31
|
||
|
||
Screen Map
|
||
~~~~~~~~~~
|
||
Famicom can use only Tiles $0-$3ff, max 1024 chars.
|
||
16 bits: YX?c ccNN NNNN NNNN
|
||
fedc ba98 7654 3210
|
||
|
||
Y = mirror y X = mirror x ?=unknown
|
||
ccc = palette nr (8 palettes) NN.. = character number
|
||
|
||
Screen Resolution is normally 32x32 chars but only the first 30 y blocks are
|
||
visible (until scrolled) - 64 bytes / line
|
||
|
||
Screen VRAM Location
|
||
~~~~~~~~~~~~~~~~~~~~
|
||
Screen Width 32x32 offset for x,y 0,0 = 0
|
||
|
||
Screen Width 64x32 offset for x,y 0,0 = 0
|
||
33,0 = $400
|
||
|
||
Screen Width 32x64 offset for x,y 0,0 = 0
|
||
0,33 = $400
|
||
|
||
Screen Width 64x64 offset for x,y 0,0 = 0
|
||
33,0 = $400
|
||
0,33 = $800
|
||
33,33 = $c00
|
||
|
||
As can be seen if a wider mode is selected the extra height/width follow
|
||
after the main screen in memory.
|
||
|
||
=============================================================================
|
||
|
||
|