Routine Locations

From Final Fantasy Hacktics Wiki
Revision as of 01:02, 22 September 2024 by Talcall (talk | contribs)
Jump to navigation Jump to search

Here is a list of Routine locations in RAM. To view the actual code of the routine follow the link under it.

If you add routines PLEASE keep them in order. When unfinished routines are deciphered they'll be inserted in the correct location. If you know the return locations of the routine, please link to them under the routine code. See "Defense Up" for an example.

Thanks!

 Main Routine Locations:

RAM -> File
   0x00F800 -> SCUS_942.21
   0x067000 -> WLDCORE.BIN
   0x067000 -> BATTLE.BIN
   0x067000 -> OPEN.BIN
   0x0E0000 -> WORLD.BIN
   0x1BF000 -> ATTACK.OUT
   0x1BF000 -> REQUIRE.OUT
   0x1BF000 -> OPTION.OUT
   0x1BF000 -> ETC.OUT
   0x1BF000 -> EQUIP.OUT
   0x1BF000 -> CARD.OUT
   0x1BF000 -> BUNIT.OUT
   0x1DF000 -> JOBSTTS.OUT
   0x1DF000 -> HELPMENU.OUT
   0x1DF000 -> SP2 + effects + other.
Main Data Locations:

RAM -> File
   0x00F800 -> SCUS_942.21
   0x067000 -> WLDCORE.BIN
   0x067000 -> BATTLE.BIN
   0x067000 -> OPEN.BIN
   0x0E0000 -> WORLD.BIN
   0x1BF000 -> ATTACK.OUT
   0x1BF000 -> REQUIRE.OUT
   0x1BF000 -> OPTION.OUT
   0x1BF000 -> ETC.OUT
   0x1BF000 -> EQUIP.OUT
   0x1BF000 -> CARD.OUT
   0x1BF000 -> BUNIT.OUT
   0x1DF000 -> JOBSTTS.OUT
   0x1DF000 -> HELPMENU.OUT
   0x1DF000 -> SP2 + effects + other.


PSX BIOS

000000a0: Jump to 0x5c4 (Bios call - First table) --> Bios call A
000000b0: (Bios call - Second table) --> Bios call B
000000c0: (Bios call - Third table) --> Bios call C
000005c4: Bios A
000005e0: Bios B
00000600: Bios C
00002958: A(0x00) open also B(0x32)
00002a64: A(0x01) lseek also B(0x33)
00002b28: A(0x02) read also B(0x34)
00002c94: A(0x03) write also B(0x35)
00002e00: A(0x04) close also B(0x36)
00002efc: A(0x05) ioctl also B(0x37)
00003000: A(0x06) exit also B(0x38)
0000346c: A(0x07) isatty also B(0x39)
00004024: A(0x08) getc also B(0x3a)
00004060: A(0x3c) putchar also B(0x3d)
00004134: A(0x09) putc also B(0x3b)
00004164: A(0x3d) gets also B(0x3e)
00004304: A(0x3e) puts also B(0x3f)
...
07c018e0: A(0x3f) printf
07c01920: A(0x44) FlushCache
07c01a90: A(0x27) bcopy
07c01acc: A(0x28) bzero
07c01b08: A(0x29) bcmp Bugged!
07c01e24: A(0x39) InitHeap
07c01e5c: A(0x33) malloc
07c020f0: A(0x34) free
07c02104" A(0x38) realloc Slow
07c021a0: A(0x37) calloc Slow
07c02200: A(0x2f) rand
07c02230: A(0x30) srand
07c02240: A(0x13) setjmp
07c0227c: A(0x14) longjmp
07c022c0: A(0x0a) todigit
07c02324: A(0x32) strtod Doesn't work!
07c02590: A(0x0b) atof Doesn't work!
07c025b0: A(0x0c) strtoul
07c02738: A(0x0d) strtol
07c02918: A(0x0e) abs
07c02934: A(0x0f) labs
07c02950: A(0x10) atoi
07c02af0: A(0x11) atol
07c02b10: A(0x12) atob
07c02b50: A(0x2a) memcpy
07c02b8c: A(0x2b) memset 
07c02bc8: A(0x2c) memmove Bugged!
07c02c50: A(0x2d) memcmp Bugged!
07c02cc0: A(0x2e) memchr
07c02d20: A(0x35) lsearch
07c02dac: A(0x36) bsearch
07c02ea0: A(0x25) toupper
07c02edc: A(0x26) tolower
07c03098: A(0x31) qsort
07c03190: A(0x15) strcat
07c03200: A(0x16) strncat
07c03288: A(0x17) strcmp
07c03310: A(0x18) strncmp
07c033c8: A(0x19) strcpy
07c03418: A(0x1a) strncpy
07c03494: A(0x1b) strlen
07c034d0: A(0x1c) index
07c03514: A(0x1d) rindex
07c0357c: A(0x1e) strchr
07c035c0: A(0x1f) strrchr
07c03628: A(0x20) strpbrk
07c03694: A(0x21) strspn
07c036fc: A(0x22) strcspn
07c03764: A(0x23) strtok
07c03894: A(0x24) strstr Bugged!
07c039b0: A(0x41) LoadTest
07c03a18: A(0x42) Load
07c03aa4: A(0x51) LoadExec
07c03cf0: A(0x43) Exec
07c03d80: A(0x46) GPU_dw
07c03ea0: A(0x47) gpu_send_dma
07c03f8c: A(0x48) SendGP1Command
07c03fac: A(0x49) GPU_cw
07c03fe0: A(0x4a) GPU_cwp
07c03ff0: A(0x3b) getchar also B(0x3c)
07c0403c: A(0x4b) send_gpu_linked_list
07c040ec: A(0x4c) gpu_abort_dma
07c04120: A(0x4d) GetGPUStatus
07c04138: A(0x4e) gpu_sync
07c042a0: A(0x45) init_a0_b0_c0_vectors
07c04850: A(0xa2) EnqueueCdIntr
07c048d0: A(0xa3) DequeueCdIntr
07c04910: A(0x95) CdInitSubFunc
07c04aa0: A(0x94) CdromGetInt5errCode
07c04abc: A(0x78) CdAsyncSeekL
07c04bc4: A(0x7c) CdAsyncGetStatus
07c04c38: A(0x7e) CdAsyncReadSector
07c04d50: A(0x81) CdAsyncSetMode
07c04dec: A(0x90) CdromIoIrqFunc1
07c04fbc: A(0x91) CdromDmaIrqFunc1
07c0506c: A(0x92) CdromIoIrqFunc2
07c050a4: A(0x93) CdromDmaIrqFunc2
07c050dc: A(0x9e) SetCdromIrqAutoAbort
07c06680: A(0x9f) SetMem
07c06700: [[A(0xb2) ioabort_raw
07c06728: A(0x9d) GetConf
07c06750: A(0x9c) SetConf
07c06ca4: A(0xa0) _boot
07c06fdc: A(0x57) returnZero includes a large number of A(0x##) calls.
07c072b8: A(0x56) _96_remove also A(0x72), doesn't work
07c073a0: A(0x54) _96_init also A(0x71)
07c078a4: A(0x5f) dev_cd_open
07c079f8: A(0x61) dev_cd_close
07c07a04: A(0x60) dev_cd_read
07c07b88: A(0xa4) CdGetLbn
07c07c1c: A(0xa5) CdReadSector
07c07f28: A(0xa6) CdGetStatus
07c08098: A(0x63) dev_cd_nextfile
07c081fc: A(0x62) dev_cd_firstfile
07c08354: A(0x64) dev_cd_chdir
07c085b0: A(0x96) AddCDROMDevice
07c086b0: A(0x99) add_nullcon_driver
07c09914: A(0x55) _bu_init also A(0x70)
07c0996c: A(0x65) dev_card_open
07c09cdc: A(0x68) dev_card_close
07c09d3c: A(0x66) dev_card_read
07c0a080: A(0x67) dev_card_write
07c0a4b4: A(0x6a) dev_card_nextfile
07c0a5e4: A(0x69) dev_card_firstfile nice
07c0a8bc: A(0x6b) dev_card_erase
07c0ab60: A(0x6e) dev_card_rename
07c0ad08: A(0x6c) dev_card_undelete
07c0b0c4: A(0x6f) card_clear_error?
07c0b0d0: A(0x6d) dev_card_format
07c0c048: A(0xaf) card_write_test
07c0c0dc: A(0xab) _card_info
07c0c140: A(0xac) _card_load
07c0c1dc: A(0xad) _card_auto
07c0c1fc: A(0x97) AddMemCardDevice
07c0c220: A(0xa7) bufs_cb_0
07c0c248: A(0xa8) bufs_cb_1
07c0c270: A(0xa9) bufs_cb_2
07c0c298: A(0xaa) bufs_cb_3
07c0c2c0: A(0xae) bufs_cb_4
07c0c890: A(0x5b) dev_tty_init fun fact! breaks the ps2
07c0c9cc: A(0x5c) dev_tty_open also breaks the ps2
07c0cab4: A(0x5d) dev_tty_in_out *also* breaks the ps2
07c0cc68: A(0x5e) dev_tty_ioctl ditto
07c0d4cc: A(0x98) AddDuartTtyDevice breaks the ps2
07c0d4f0: A(0xb4) GetSystemInfo
07c0d8d0: A(0x3a) _exit traps cpu
07c0d8e0: A(0x40) SystemErrorUnresolvedException traps cpu
07c0d8f0: A(0x4f) SystemError traps cpu
07c0d900: A(0x50) SystemError traps cpu
07c0d910: A(0x52) GetSysSp also traps cpu, like an exit code. different function in sony devkit?
07c0d920: A(0x53) SystemError traps cpu
07c0d930: A(0x9a) SystemError traps cpu, used to link to windows to provide error messages!
07c0d940: A(0x9b) SystemError traps cpu
07c0d950: A(0xa1) SystemError external sources say this takes 2 arguments. I say that's bogus.