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

Popular posts from this blog

BOTTOM LIVE script

Fawlty Towers script for "A Touch of Class"