Copy Link
Add to Bookmark
Report

Playstation 2 MEMORY & HARDWARE MAPPED REGISTERS LAYOUT

Dreamcast's profile picture
Published in 
Playstation 2 tutorials
 · 19 Feb 2020

PS2 MEMORY & HARDWARE MAPPED REGISTERS LAYOUT, by Minmei (minemei2002@yahoo.com)


Please, feel free to distribute this document as well as make modifications or or corrections on it.
The purpose of this document is to through a little light to those unmmaped areas of PS2 that I've find very diffucult to find information about on the web.
I'm also very interested on learn more on how PS2 handle's its Interruptions and Exceptions hardware related flags (VSyncs, HSyncs, Counters, DMAs, etc...).
If you know how to complete or enhance this little document, please contact me (minemei2002@yahoo.com).

 GENERAL MEMORY 
--------------
0x00100000-0x01ffffff RAM Mirror Address. (cached)
0x20100000-0x21ffffff RAM Mirror Adress. (not cached)
0x30100000-0x31ffffff RAM Mirror Adress. (not cached & accelerated)
0x70000000-0x70003fff Scratch Pad RAM Adress.
0x1FC00000 - 0x1FFFFFFF ROM BIOS Mirror Adress. (not cached)
0x9FC00000 - 0x9FFFFFFF ROM BIOS Mirror Adress. (cached)
0xBFC00000 - 0xBFFFFFFF ROM BIOS Mirror Adress. (not cached)
0x80000000-0x9fffffff KSEG0.
0xA0000000-0xbfffffff KSEG1.

COUNTERS' REGISTERS
-------------------
10000000 T0_COUNT Timer Count
10000010 T0_MODE

Timer Mode
10000020 T0_COMP

Timer Compare value
10000030 T0_HOLD

Timer Pause
10000800 T1_COUNT Timer Count
10000810 T1_MODE Timer Mode
10000820 T1_COMP Timer Compare value
10000830 T1_HOLD Timer Pause
10001000 T2_COUNT Timer Count
10001010 T2_MODE Timer Mode
10001020 T2_COMP Timer Compare value
10001810 T3_COUNT Timer Count
10001820 T3_MODE Timer Mode
10001830 T3_COMP Timer Compare value
IPU REGISTERS (MPEG2 DECODER)
-----------------------------
10002000 IPU_CMD
10002010 IPU_CTRL
10002020 IPU_BP
10002030 IPU_TOP
GIF REGISTERS
-------------
10003000 GIF_CTRL
10003010 GIF_MODE
10003020 GIF_STAT
10003040 GIF_TAG0
10003050 GIF_TAG1
10003060 GIF_TAG2
10003070 GIF_TAG3
10003080 GIF_CNT
10003090 GIF_P3CNT
100030a0 GIF_P3TAG
VIF0 REGISTERS
--------------
10003800

VIF0_STAT

VIF0 Status
10003810

VIF0_FBRST
10003820

VIF0_ERR
10003830

VIF0_MARK
10003840

VIF0_CYCLE
10003850

VIF0_MODE
10003860

VIF0_NUM
10003870

VIF0_MASK
10003880

VIF0_CODE
10003890

VIF0_ITOPS
100038d0

VIF0_ITOP
10003900

VIF0_R0
10003910

VIF0_R1
10003920

VIF0_R2
10003930

VIF0_R3
10003940

VIF0_C0
10003950

VIF0_C1
10003960

VIF0_C2
10003970

VIF0_C3
VIF1 REGISTERS
--------------
10003c00 VIF1_STAT
10003c10

VIF1_FBRST
10003c20

VIF1_ERR
10003c30

VIF1_MARK
10003c40

VIF1_CYCLE
10003c50

VIF1_MODE
10003c60

VIF1_NUM
10003c70

VIF1_MASK
10003c80

VIF1_CODE
10003c90

VIF1_ITOPS
10003ca0

VIF1_BASE
10003cb0

VIF1_OFST
10003cc0

VIF1_TOPS
10003cd0

VIF1_ITOP
10003ce0

VIF1_TOP
10003d00

VIF1_R0
10003d10

VIF1_R1
10003d20

VIF1_R2
10003d30

VIF1_R3
10003d40

VIF1_C0
10003d50

VIF1_C1
10003d60

VIF1_C2
10003d70

VIF1_C3
FIFO
----
10004000 VIF0_FIFO(write)
10005000 VIF1_FIFO(read/write)
10006000 GIF_FIFO0
10006010 GIF_FIFO1
10006020 GIF_FIFO2
10007000

IPU_out_FIFO(read)
10007010 IPU_in_FIFO(write)
DMA CH0 REGISTERS (Linked to VIF0)
----------------------------------
10008000

D0_CHCR

DMA-0 Channel Control
10008010

D0_MADR

Memory Address
10008020

D0_SIZE

Transfer Size (they call it D0_QWC)
10008030

D0_TAG

DMA Tag (they call it D0_TADR)
10008040

D0_??LO

they call it D0_ASR0
10008050

D0_??HI

they call it D0_ASR1
DMA CH1 REGISTERS (Linked to VIF1)
----------------------------------
10009000

D1_CHCR

DMA-1 Channel Control
10009010

D1_MADR

Memory Address
10009020

D1_SIZE

Transfer Size (they call it D1_QWC)
10009030

D1_TAG

DMA Tag (they call it D1_TADR)
10009040

D1_??LO

they call it D1_ASR0
10009050

D1_??HI

they call it D1_ASR1
DMA CH2 REGISTERS (Linked to GIF)
---------------------------------
1000A000

D2_CHCR

DMA-2 Channel Control
1000A010

D2_MADR

Memory Address
1000A020

D2_SIZE

Transfer Size (they call it D2_QWC)
1000A030

D2_TAG

DMA Tag (they call it D2_TADR)
1000A040 D2_??LO

they call it D2_ASR0
1000A050 D2_??HI

they call it D2_ASR1
1000A080 D2_SADR
DMA CH3 REGISTERS (Linked to IPU (FROM???))
--------------------------------------------
1000B000

D3_CHCR

DMA-3 Channel Control
1000B010

D3_MADR

Memory Address
1000B020

D3_QWC

Transfer Size
DMA CH4 REGISTERS (Linked to IPU (TO???))
-----------------------------------------
1000B400

D4_CHCR

DMA-4 Channel Control
1000B410

D4_MADR

Memory Address
1000B420

D4_QWC

Transfer Size
1000B430

D4_TADR

DMA Tag
DMA CH5 REGISTERS (Linked to SIF0)
----------------------------------
1000C000

D5_CHCR

DMA-4 Channel Control
1000C010

D5_MADR

Memory Address
1000C020

D5_QWC

Transfer Size
DMA CH6 REGISTERS (Linked to SIF1)
----------------------------------
1000C400

D6_CHCR

DMA-6 Channel Control
1000C410

D6_MADR

Memory Address
1000C420

D6_QWC

Transfer Size
1000C430

D6_TADR

DMA Tag
DMA CH7 REGISTERS (Linked to SIF2)
----------------------------------
1000C800

D7_CHCR

DMA-7 Channel Control
1000C810

D7_MADR

Memory Address
1000C820

D7_QWC

Transfer Size
DMA CH8 REGISTERS (Linked to SPR (form SCRATCH PAD to RAM???)
--------------------------------------------------------------
1000D000

D8_CHCR

DMA-8 Channel Control
1000D010

D8_MADR

Memory Address
1000D020

D8_QWC

Transfer Size
1000D080

D8_MCR

???
DMA CH9 REGISTERS (Linked to SPR (form RAM to SCRATCH PAD???)
--------------------------------------------------------------
1000D400

D9_CHCR

DMA-9 Channel Control
1000D410

D9_MADR

Memory Address
1000D420

D9_QWC

Transfer Size
1000D430

D9_TADR

DMA Tag
1000D480

D9_MCR?

???
DMA CONTROL REGISTERS
---------------------
1000E000 D_CTRL DMA Control
1000E010

D_STAT

DMA Status
1000E020

D_PCR


1000E030 D_SQWC
1000E040 D_RBSR
1000E050 D_RBOR
1000E060 D_STADR
1000F000 INTC_STAT
1000F010 INTC_MASK
1000F100
1000F120
1000F130 STD-OUT STATUS???
1000F140
1000F150
1000F180 STD-OUT DATA???
1000F230 SBUS_SMFLG
1000F410
1000F430
1000F440
1000F480
1000F490
1000F500
1000f520 D_ENABLEW
1000f590 D_ENABLER

VU MAPPED MEMORY REGISTERS
--------------------------
11000000

VU0 PROGRAM MEMORY Program Memory (4K ROM)
11001000

VU0 MEMORY Memory (4K ROM)
11008000

VU1 PROGAM MEMORY VU1 Program Memory (16K ROM)
1100C000

VU1 MEMORY VU1 Memory (16K ROM)
GS
--
12000000 GS_PMODE
12000010

GS_SMODE1
12000020

GS_SMODE2
12000030

GS_SRFSH
12000040

GS_SYNCH1
12000050

GS_SYNCH2
12000060

GS_SYNCV
12000070

GS_DISPFB1
12000080

GS_DISPLAY1
12000090

GS_DISPFB2

//RESOLUTION
120000a0

GS_DISPLAY2

//
120000b0

GS_EXTBUF
120000c0

GS_EXTDATA
120000d0

GS_EXTWRITE
120000e0

GS_BGCOLOR
12001000 GS_CSR
12001010

GS_IMR
12001040 GS_BUSDIR
12001080 GS_SIGLBLID

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT