Difference between revisions of "ARM9 SWI Functions"

From DSiBrew
Jump to navigation Jump to search
Line 8: Line 8:
 
! Name  
 
! Name  
 
! Args
 
! Args
! New?
+
! Changes
 
|-
 
|-
 
| 0x00
 
| 0x00
| swiSoftReset
+
| N/A (hangs)
 
| none
 
| none
| old
+
| '''formerly SoftReset'''
 
|-
 
|-
 
| 0x01
 
| 0x01
| swiUnknown
+
| swiDecompressLZSSwithCallbackWrite8bitUnits
 
| ??
 
| ??
| '''new''' ??
+
| '''formerly jump to 0'''
 
|-
 
|-
 
| 0x02
 
| 0x02
| swiDecompressLZSSVram
+
| swiDecompressLZSSwithCallbackWrite16bitUnits
 
| ??
 
| ??
| old
+
| '''formerly jump to 0'''
 
|-
 
|-
 
| 0x03
 
| 0x03
| swiDelay
+
| swiWaitByLoop
 
| ??
 
| ??
| old
+
| same as DS
 
|-
 
|-
 
| 0x04
 
| 0x04
 
| swiIntrWait
 
| swiIntrWait
 
| ??
 
| ??
| old
+
| same as DS
 
|-
 
|-
 
| 0x05
 
| 0x05
| swiWaitForVBlank
+
| swiVBlankIntrWait
 
| ??
 
| ??
| old
+
| same as DS
 
|-
 
|-
 
| 0x06
 
| 0x06
| swiWaitForIRQ
+
| swiHalt
 
| ??
 
| ??
| old
+
| same as DS
 +
|-
 +
| 0x07-0x08
 +
| N/A (hangs)
 +
| ??
 +
| same as DS / formerly jump to 0
 
|-
 
|-
 
| 0x09  
 
| 0x09  
 
| swiDivide
 
| swiDivide
 
| ??
 
| ??
| old
+
| same as DS
 +
|-
 +
| 0x0A
 +
| N/A (hangs)
 +
| ??
 +
| same as DS / formerly jump to 0
 
|-
 
|-
 
| 0x0B
 
| 0x0B
 
| swiCopy
 
| swiCopy
 
| ??  
 
| ??  
| old
+
| same as DS
 
|-
 
|-
 
| 0x0C
 
| 0x0C
 
| swiFastCopy
 
| swiFastCopy
 
| ??  
 
| ??  
| old
+
| same as DS
 
|-
 
|-
 
| 0x0D
 
| 0x0D
 
| swiSqrt
 
| swiSqrt
 
| ??  
 
| ??  
| old
+
| same as DS
 
|-
 
|-
 
| 0x0E
 
| 0x0E
 
| swiCRC16
 
| swiCRC16
 
| ??  
 
| ??  
| old
+
| same as DS
 +
|-
 +
| 0x0F
 +
| N/A (hangs)
 +
| ??
 +
| '''formerly IsDebugger'''
 
|-
 
|-
 
| 0x10
 
| 0x10
 
| swiUnpackBits
 
| swiUnpackBits
 
| ??
 
| ??
| old
+
| same as DS
 
|-
 
|-
 
| 0x11
 
| 0x11
 
| swiDecompressLZSSWram
 
| swiDecompressLZSSWram
 
| ??
 
| ??
| old
+
| same as DS
 
|-
 
|-
 
| 0x12
 
| 0x12
| swiDecompressLZSSVram
+
| N/A (ignored)
 
| ??
 
| ??
| old
+
| '''(formerly swiDecompressLZSSVram)'''
 
|-
 
|-
 
| 0x13
 
| 0x13
| swiDecompressHuffman
+
| swiDecompressHuffmanWithCallback
 
| ??
 
| ??
| old
+
| same as DS
 
|-
 
|-
 
| 0x14
 
| 0x14
 
| swiDecompressRLEWram
 
| swiDecompressRLEWram
 
| ??
 
| ??
| old
+
| same as DS
 
|-
 
|-
 
| 0x15
 
| 0x15
 
| swiDecompressRLEVram
 
| swiDecompressRLEVram
 
| ??
 
| ??
| old
+
| same as DS
 
|-
 
|-
 
| 0x16
 
| 0x16
 
| swiDecodeDelta8
 
| swiDecodeDelta8
 
| ??
 
| ??
| old
+
| same as DS
 +
|-
 +
| 0x17
 +
| N/A (hangs)
 +
| ??
 +
| same as DS / formerly jump to 0
 
|-
 
|-
 
| 0x18
 
| 0x18
 
| swiDecodeDelta16
 
| swiDecodeDelta16
 
| ??
 
| ??
| old
+
| same as DS
 +
|-
 +
| 0x19
 +
| swiDecompressLZSSwithCallbackWrite16bitUnits
 +
| ??
 +
| same as SWI 0x02 / formerly jump to 0
 +
|-
 +
| 0x1A-0x1E
 +
| N/A (hangs)
 +
| ??
 +
| same as DS / formerly jump to 0
 
|-
 
|-
 
| 0x1F
 
| 0x1F
| swiSetHaltCR
+
| swiCustomPost
 
| ??
 
| ??
| old
+
| same as DS
 
|-
 
|-
 
| 0x20
 
| 0x20
| init_crypto_heap
+
| swiInit_crypto_heap
 
| ??
 
| ??
 
| '''new'''
 
| '''new'''
 
|-
 
|-
 
| 0x21
 
| 0x21
| rsa_decrypt
+
| swiRSA_decrypt
 
| ??
 
| ??
 
| '''new'''
 
| '''new'''
 
|-
 
|-
 
| 0x22
 
| 0x22
| rsa_decrypt_signature
+
| swiRSA_decrypt_signature
 
| ??
 
| ??
 
| '''new'''
 
| '''new'''
 
|-
 
|-
 
| 0x23
 
| 0x23
| rsa_decrypt_der
+
| swiRSA_decrypt_der
 
| ??
 
| ??
 
| '''new'''
 
| '''new'''
Line 164: Line 194:
 
| looks like it's trying to generate a random number using SHA1
 
| looks like it's trying to generate a random number using SHA1
 
| '''new'''
 
| '''new'''
 +
|-
 +
| 0x2A
 +
| N/A (hangs)
 +
| ??
 +
| formerly jump to garbage
 +
|-
 +
| 0x2B
 +
| N/A (ignored)
 +
| ??
 +
| formerly jump to garbage
 +
|-
 +
| 0x2C-0x3F
 +
| N/A (hangs)
 +
| ??
 +
| formerly jump to garbage
 +
|-
 +
| 0x40-0xFF
 +
| Mirrors of 0x00-0x3F
 +
| ??
 +
| formerly jump to garbage
 
|}
 
|}
  

Revision as of 23:10, 17 July 2013

ARM9 BIOS SWI Function

These are the functions provided by the ARM9 BIOS. IDs not mentioned here, calls swiSoftReset. I haven't checked any old ones if they've been modified/replaced.

ID Name Args Changes
0x00 N/A (hangs) none formerly SoftReset
0x01 swiDecompressLZSSwithCallbackWrite8bitUnits ?? formerly jump to 0
0x02 swiDecompressLZSSwithCallbackWrite16bitUnits ?? formerly jump to 0
0x03 swiWaitByLoop ?? same as DS
0x04 swiIntrWait ?? same as DS
0x05 swiVBlankIntrWait ?? same as DS
0x06 swiHalt ?? same as DS
0x07-0x08 N/A (hangs) ?? same as DS / formerly jump to 0
0x09 swiDivide ?? same as DS
0x0A N/A (hangs) ?? same as DS / formerly jump to 0
0x0B swiCopy ?? same as DS
0x0C swiFastCopy ?? same as DS
0x0D swiSqrt ?? same as DS
0x0E swiCRC16 ?? same as DS
0x0F N/A (hangs) ?? formerly IsDebugger
0x10 swiUnpackBits ?? same as DS
0x11 swiDecompressLZSSWram ?? same as DS
0x12 N/A (ignored) ?? (formerly swiDecompressLZSSVram)
0x13 swiDecompressHuffmanWithCallback ?? same as DS
0x14 swiDecompressRLEWram ?? same as DS
0x15 swiDecompressRLEVram ?? same as DS
0x16 swiDecodeDelta8 ?? same as DS
0x17 N/A (hangs) ?? same as DS / formerly jump to 0
0x18 swiDecodeDelta16 ?? same as DS
0x19 swiDecompressLZSSwithCallbackWrite16bitUnits ?? same as SWI 0x02 / formerly jump to 0
0x1A-0x1E N/A (hangs) ?? same as DS / formerly jump to 0
0x1F swiCustomPost ?? same as DS
0x20 swiInit_crypto_heap ?? new
0x21 swiRSA_decrypt ?? new
0x22 swiRSA_decrypt_signature ?? new
0x23 swiRSA_decrypt_der ?? new
0x24 swiSHA1_Init ?? new
0x25 swiSHA1_Update ?? new
0x26 swiSHA1_Final ?? new
0x27 swiSHA1 ?? new
0x28 swiSHA1_Compare ?? new
0x29 SHA1_Random looks like it's trying to generate a random number using SHA1 new
0x2A N/A (hangs) ?? formerly jump to garbage
0x2B N/A (ignored) ?? formerly jump to garbage
0x2C-0x3F N/A (hangs) ?? formerly jump to garbage
0x40-0xFF Mirrors of 0x00-0x3F ?? formerly jump to garbage

See Also