PSP Emulator: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
 
(7 intermediate revisions by the same user not shown)
Line 20: Line 20:
| 0xBC300000
| 0xBC300000
| 0x1000?
| 0x1000?
| MIPS -> Kermit (ARM) communication ?
| [[PSP Emulator#Interrupt manager|Interrupt manager]]. Used for MIPS <-> Kermit (ARM) communication
|-
|-
| 0xBD000000
| 0xBD000000
| 0x1000?
| 0x1000?
| Kermit (ARM) -> MIPS communication ?
| [[PSP Emulator#System control|System control]]
|-
|-
| 0xBE140000
| 0xBE140000
Line 32: Line 32:
| 0xBFC00000
| 0xBFC00000
| 0x1000
| 0x1000
| Shared SRAM
| Shared SRAM. Mapped to [[Physical_Memory#Main_table|<code>0xE8100000</code>]] on ARM side
|-
|-
|}
|}


== SceGrab ==
== Registers ==
 
=== Interrupt manager ===
 
{| class='wikitable'
|-
! 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 [[SceKernelIntrMgr#Registered_Interrupts|<code>SceCompatN</code>]] ARM interrupt
|}
 
=== System control ===
 
{| class='wikitable'
|-
! Address
! Size
! Comments
|-
| 0xBD000000
| 4
| ??
|-
| 0xBD000004
| 4
| ??
|}
 
=== SceGrab ===


{| class='wikitable'
{| class='wikitable'
Line 62: Line 118:
|}
|}


== SceCompatLCDDMA ==
=== SceCompatLCDDMA ===


{| class='wikitable'
{| class='wikitable'

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)