Difference between revisions of "PSP Emulator"

From Vita Development Wiki
Jump to navigation Jump to search
 
(3 intermediate revisions by the same user not shown)
Line 32: Line 32:
 
| 0xBFC00000
 
| 0xBFC00000
 
| 0x1000
 
| 0x1000
| Shared SRAM. 0xE8100000 on ARM side
+
| Shared SRAM. Mapped to [[Physical_Memory#Main_table|<code>0xE8100000</code>]] on ARM side
 
|-
 
|-
 
|}
 
|}
Line 48: Line 48:
 
| 0xBC300030
 
| 0xBC300030
 
| 4
 
| 4
| Interrupt pending/ack
+
| Interrupt pending and ack/clear, 1 bit each
 
|-
 
|-
 
| 0xBC300038
 
| 0xBC300038
 
| 4
 
| 4
| Interrupt raise
+
| Interrupt enable/mask, 1 bit each
 
|-
 
|-
 
| 0xBC300040
 
| 0xBC300040
 
| 4
 
| 4
| Interrupt enable IRQs 0-31 ?
+
| Interrupt mode for IRQs 0-15, 2 bits each
 
|-
 
|-
 
| 0xBC300044
 
| 0xBC300044
 
| 4
 
| 4
| Interrupt mask IRQs 0-31 ?
+
| Interrupt priority for IRQs 0-15, 2 bits each
 
|-
 
|-
 
| 0xBC300048
 
| 0xBC300048
 
| 4
 
| 4
| Interrupt enable IRQs 32-63 ?
+
| Interrupt mode for IRQs 16-31, 2 bits each
 
|-
 
|-
 
| 0xBC30004C
 
| 0xBC30004C
 
| 4
 
| 4
| Interrupt mask IRQs 32-63 ?
+
| Interrupt priority for IRQs 16-32, 2 bits each
 
|-
 
|-
 
| 0xBC300050
 
| 0xBC300050
 
| 4
 
| 4
| Interrupt raise ?
+
| Interrupt raise, 1 bit each. Raises [[SceKernelIntrMgr#Registered_Interrupts|<code>SceCompatN</code>]] ARM interrupt
 
|}
 
|}
  

Latest revision as of 10:04, 14 April 2020

PSP Memory Layout

Address Size Comments
0x00010000 0x4000 CPU Scratchpad
0x04000000 2 MB/4 MB VRAM/Framebuffer
0x08000000 64 MB Main Memory
0xBC300000 0x1000? Interrupt manager. Used for MIPS <-> Kermit (ARM) communication
0xBD000000 0x1000? System control
0xBE140000 0xC0000 LCDC
0xBFC00000 0x1000 Shared SRAM. Mapped to 0xE8100000 on ARM side

Registers

Interrupt manager

Address Size Comments
0xBC300030 4 Interrupt pending and ack/clear, 1 bit each
0xBC300038 4 Interrupt enable/mask, 1 bit each
0xBC300040 4 Interrupt mode for IRQs 0-15, 2 bits each
0xBC300044 4 Interrupt priority for IRQs 0-15, 2 bits each
0xBC300048 4 Interrupt mode for IRQs 16-31, 2 bits each
0xBC30004C 4 Interrupt priority for IRQs 16-32, 2 bits each
0xBC300050 4 Interrupt raise, 1 bit each. Raises SceCompatN ARM interrupt

System control

Address Size Comments
0xBD000000 4 ??
0xBD000004 4 ??

SceGrab

Address Size Comments
0xE8300120 4 Paddr of CDRAM base + 1, maps to 0x88000000?
0xE8300124 4 Paddr of CDRAM base + 0x1000000 + 1
0xE8300128 4 Paddr of CDRAM base + 0x2000000 + 1
0xE830012C 4 Paddr of flash0 in CDRAM (base + 0x3000000) + 1, maps to 0x3000000?

SceCompatLCDDMA

Address Size Comments
0xE5071004 4 set 1 when done
0xE5071024 4 0xFF0000
0xE5071028 4 0x0
0xE5071030 4 some status
0xE5071034 4 Width pixels
0xE5071038 4 0x0
0xE507103C 4 Hight pixels
0xE5071040 4 0x0
0xE507104C 4 DMA Paddr
0xE5071078 4 0x0
0xE5071084 4 0x0
0xE5071050 4 2048
0xE5071094 4 2
0xE5071098 4 1
0xE50710C0 4 busy status? (set 0x1000000 when done)