PSP Memory Map
Base Address | Length | Description |
---|---|---|
0×00010000 | 0×00004000 (16 KiB) | Allegrex Scratchpad |
0×04000000 | 0×00200000 (2 MiB) | Ge VRAM |
0×08000000 | 0×00800000 (8 MiB) | Allegrex Kernel memory |
0×08800000 | 0×01800000 (24 MiB) | Allegrex User memory |
PSP Memory Partitions
The following table is based on results from calling sceKernelQueryMemoryPartitionInfo.
Partition | Start Address | Size | Unknown | Description |
---|---|---|---|---|
1 | 0×88000000 | 0×00300000 (3 MiB) | 0xC | Kernel 1 |
2 | 0×08000000 | 0×01800000 (24 MiB) | 0xF | User |
3 | 0×88000000 | 0×00300000 (3 MiB) | 0xC | Kernel 1 |
4 | 0×88300000 | 0×00100000 (1 MiB) | 0xC | Kernel 2 |
5 | 0×88400000 | 0×00400000 (4 MiB) | 0xF | Kernel 3 |
6 | 0×08800000 | 0×01800000 (24 MiB) | 0xF | User |
IMPORTANT
To get uncached reads and writes, OR your pointers with 0×40000000 (for example, the location of the Ge VRAM then becomes 0×44000000). When writing to VRAM or feeding data to the GE (graphics chip) through display lists in main memory, this is VERY important. Not doing so will cause unpredictable behaviour and hanging because the graphics chip may miss your END and FINISH commands since they might still be sitting in the cache.