Difference between revisions of "Routine Locations"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
m
(Removed redirect to Routine and Data/Table Locations)
Tag: Removed redirect
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
Here is a list of Routine locations in RAM. To view the actual code of the routine follow the link under it.  
+
:For additional ASM notes and an easier to use version of this data in .txt format, [[https://ffhacktics.com/smf/index.php?action=dlattach;topic=6538.0;attach=11553| download ASM Files]] <-- possibly outdated
  
'''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.
+
:If you're just starting ASM, check [[Assembly FAQ|this page]] first, it contains some important assorted information
  
Thanks!
+
:For Data Tables, see [[Data/Table Locations]]
  
  Main Routine Locations:
+
Main Routine Locations:
 
   
 
   
 
  RAM -> File
 
  RAM -> File
     0x00F800 -> [[SCUS 942.21 Routines|SCUS_942.21]]
+
     0x00F800 -> [[SCUS 942.21 Routines]]
     0x067000 -> [[WLDCORE.BIN Routines|WLDCORE.BIN]]
+
     0x067000 -> [[WLDCORE.BIN Routines]]
     0x067000 -> [[BATTLE.BIN Routines|BATTLE.BIN]]
+
     0x067000 -> [[BATTLE.BIN Routines]]
     0x067000 -> [[OPEN.BIN Routines|OPEN.BIN]]
+
     0x067000 -> [[OPEN.BIN Routines]]
     0x0E0000 -> [[WORLD.BIN Routines|WORLD.BIN]]
+
     0x0E0000 -> [[WORLD.BIN Routines]]
     0x1BF000 -> [[ATTACK.OUT Routines|ATTACK.OUT]]
+
     0x1BF000 -> [[ATTACK.OUT Routines]]
     0x1BF000 -> [[REQUIRE.OUT Routines|REQUIRE.OUT]]
+
     0x1BF000 -> [[REQUIRE.OUT Routines]]
     0x1BF000 -> [[OPTION.OUT Routines|OPTION.OUT]]
+
     0x1BF000 -> [[OPTION.OUT Routines]]
     0x1BF000 -> [[ETC.OUT Routines|ETC.OUT]]
+
     0x1BF000 -> [[ETC.OUT Routines]]
     0x1BF000 -> [[EQUIP.OUT Routines|EQUIP.OUT]]
+
     0x1BF000 -> [[EQUIP.OUT Routines]]
     0x1BF000 -> [[CARD.OUT Routines|CARD.OUT]]
+
     0x1BF000 -> [[CARD.OUT Routines]]
     0x1BF000 -> [[BUNIT.OUT Routines|BUNIT.OUT]]
+
     0x1BF000 -> [[BUNIT.OUT Routines]]
     0x1DF000 -> [[JOBSTTS.OUT Routines|JOBSTTS.OUT]]
+
     0x1DF000 -> [[JOBSTTS.OUT Routines]]
     0x1DF000 -> [[HELPMENU.OUT Routines|HELPMENU.OUT]]
+
     0x1DF000 -> [[HELPMENU.OUT Routines]]
 +
    0x1DF000 -> [[SMALL.OUT Routines]]
 
     0x1DF000 -> SP2 + effects + other.
 
     0x1DF000 -> SP2 + effects + other.
  
  Main Data Locations:
+
  PSX Console:
 
   
 
   
 
  RAM -> File
 
  RAM -> File
     0x00F800 -> [[SCUS 942.21 Data Tables|SCUS_942.21]]
+
     0x00000000 -> [[PSX BIOS]]
    0x067000 -> [[WLDCORE.BIN Data Tables|WLDCORE.BIN]]
+
     0x07c00000 -> [[PSX Kernel]]
    0x067000 -> [[BATTLE.BIN Data Tables|BATTLE.BIN]]
 
    0x067000 -> [[OPEN.BIN Data Tables|OPEN.BIN]]
 
    0x0E0000 -> [[WORLD.BIN Data Tables|WORLD.BIN]]
 
    0x1BF000 -> [[ATTACK.OUT Data Tables|ATTACK.OUT]]
 
    0x1BF000 -> [[REQUIRE.OUT Data Tables|REQUIRE.OUT]]
 
     0x1BF000 -> [[OPTION.OUT Data Tables|OPTION.OUT]]
 
    0x1BF000 -> [[ETC.OUT Data Tables|ETC.OUT]]
 
    0x1BF000 -> [[EQUIP.OUT Data Tables|EQUIP.OUT]]
 
    0x1BF000 -> [[CARD.OUT Data Tables|CARD.OUT]]
 
    0x1BF000 -> [[BUNIT.OUT Data Tables|BUNIT.OUT]]
 
    0x1DF000 -> [[JOBSTTS.OUT Data Tables|JOBSTTS.OUT]]
 
    0x1DF000 -> [[HELPMENU.OUT Data Tables|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.
 

Latest revision as of 06:04, 23 September 2024

For additional ASM notes and an easier to use version of this data in .txt format, [download ASM Files] <-- possibly outdated
If you're just starting ASM, check this page first, it contains some important assorted information
For Data Tables, see Data/Table Locations
Main Routine Locations:

RAM -> File
   0x00F800 -> SCUS 942.21 Routines
   0x067000 -> WLDCORE.BIN Routines
   0x067000 -> BATTLE.BIN Routines
   0x067000 -> OPEN.BIN Routines
   0x0E0000 -> WORLD.BIN Routines
   0x1BF000 -> ATTACK.OUT Routines
   0x1BF000 -> REQUIRE.OUT Routines
   0x1BF000 -> OPTION.OUT Routines
   0x1BF000 -> ETC.OUT Routines
   0x1BF000 -> EQUIP.OUT Routines
   0x1BF000 -> CARD.OUT Routines
   0x1BF000 -> BUNIT.OUT Routines
   0x1DF000 -> JOBSTTS.OUT Routines
   0x1DF000 -> HELPMENU.OUT Routines
   0x1DF000 -> SMALL.OUT Routines
   0x1DF000 -> SP2 + effects + other.
PSX Console:

RAM -> File
   0x00000000 -> PSX BIOS
   0x07c00000 -> PSX Kernel