SEGA MEGADRIVE - NINTENDO SUPER FAMICOM - NEC PC-ENGINE
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
< <
> ___ ___ ___ ___ __ ___ ___ __ __ ___ ___ ___ ___ >
< | |___|/__ /__ / \|__)| __) | | \| \/__ /\ \ / | | \_/ <
> | | |\___ \ \___/| \|___)_|_|__/|__/\___\ \/ \___ _|_ | | >
< <
> >
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
############################################################################
# #
# 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.
=============================================================================
Comments
Post a Comment