| Number | Name |
| 0x00 | swiSoftReset |
| 0x03 | swiDelay |
| 0x04 | swiIntrWait |
| 0x05 | swiWaitForVBlank |
| 0x06 | swiWaitForIRQ |
| 0x09 | swiDivide |
| 0x0B | swiCopy |
| 0x0C | swiFastCopy |
| 0x0D | swiSqrt |
| 0x0E | swiCRC16 |
| 0x0F | swiIsDebugger |
| 0x10 | swiUnpackBits |
| 0x11 | swiDecompressLZSSWram |
| 0x12 | swiDecompressLZSSVram |
| 0x13 | swiDecompressHuffman |
| 0x14 | swiDecompressRLEWram |
| 0x15 | swiDecompressRLEVram |
| 0x16 | swiDecodeDelta8 |
| 0x18 | swiDecodeDelta16 |
| 0x1F | SetHaltCR |
Like on the GBA, the SWI handler is very simplistic, requiring a bit more effort on the behalf of the caller. These values are listed for Thumb operation, shift left by 16 when calling from ARM code, i.e.
.thumb
swi 0x05
versus
.arm
swi 0x050000
The SWI parameters are not range checked, although they are taken modulo 256, and there are a number of additional literals beyond the end of the 32 element table that will result in execution from internal RAM.