Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
Final Fantasy I & II: Dawn of Souls/ROM map: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
(Adding listing of known animation-related routines) |
||
Line 2: | Line 2: | ||
The following offsets have been determined for Final Fantasy I only. All offsets are given in hexadecimal format. | The following offsets have been determined for Final Fantasy I only. All offsets are given in hexadecimal format. | ||
All currently described ASM routines are in Thumb mode. | |||
(Under Construction) | (Under Construction) | ||
==General Purpose Routines== | ==General Purpose Routines== | ||
''Core Routines:'' | |||
* <tt>000EFC-000F81 (000086)</tt> = '''Core division-related routines''' | * <tt>000EFC-000F81 (000086)</tt> = '''Core division-related routines''' | ||
* <tt>000F18</tt> = General division routine. Given r0 = divident and r1 = divisor, checks for zero and calls software division | * <tt>000F18</tt> = General division routine. Given r0 = divident and r1 = divisor, checks for zero and calls software division | ||
Line 12: | Line 13: | ||
* <tt>014E4C- | ''Game-Specific Routines:'' | ||
* <tt>014E4C-014E6B (000020)</tt> = '''Uncompressed tile graphic size finder routine''' | |||
* <tt>014E6C-0158E7 (000A7C)</tt> = Unknown (Short ASM routines) | |||
* <tt>0158E8-0158FB (000014)</tt> = '''Chest State Determination Routine''' | |||
* <tt>0158FC-01591B (000020)</tt> = Unknown ASM Routine (reads $02001DF0) | |||
==FF1 Stat | ==FF1 Stat and Animation Handling== | ||
* <tt>01591C-0159B3 (000098)</tt> = '''Total Attack Determination''' | * <tt>01591C-0159B3 (000098)</tt> = '''Total Attack Determination''' | ||
* <tt>0159B4-015ACB (000118)</tt> = '''Total Defence Determination''' | * <tt>0159B4-015ACB (000118)</tt> = '''Total Defence Determination''' | ||
Line 26: | Line 31: | ||
* <tt>015F08-015F43 (00003C)</tt> = '''Current HP/MP Determination (And Possible Truncation)''' | * <tt>015F08-015F43 (00003C)</tt> = '''Current HP/MP Determination (And Possible Truncation)''' | ||
* <tt>015F44-015F83 (000040)</tt> = '''Total Accuracy Determination''' | * <tt>015F44-015F83 (000040)</tt> = '''Total Accuracy Determination''' | ||
* <tt>01E2FC-01E8C3 (0005C8)</tt> = '''(ASM) Root Spell/Weapon Animation Handling''' | |||
* <tt>01E8C4-01F12F (00086C)</tt> = (ASM) Unknown Routines | |||
* <tt>01F130-01F1A3 (000074)</tt> = '''(ASM) Conditional Animation Effect Handling''' | |||
* <tt>01F1A4-01F743 (0005A0)</tt> = '''(ASM) Animation Chunk Storage Routine''' | |||
* <tt>01F744-02B2B3 (00BB70)</tt> = (ASM) Animation-related routines; exact function unknown |
Revision as of 23:04, 2 March 2017
The following article is a ROM map for Final Fantasy I & II: Dawn of Souls.
The following offsets have been determined for Final Fantasy I only. All offsets are given in hexadecimal format. All currently described ASM routines are in Thumb mode. (Under Construction)
General Purpose Routines
Core Routines:
- 000EFC-000F81 (000086) = Core division-related routines
- 000F18 = General division routine. Given r0 = divident and r1 = divisor, checks for zero and calls software division
- 000F2C = As above, but only returns remainder in r0
- 000F68 = Divides r1 by r2; stores the product in [r0],[r0+8] and the remainder in [r0+4]
Game-Specific Routines:
- 014E4C-014E6B (000020) = Uncompressed tile graphic size finder routine
- 014E6C-0158E7 (000A7C) = Unknown (Short ASM routines)
- 0158E8-0158FB (000014) = Chest State Determination Routine
- 0158FC-01591B (000020) = Unknown ASM Routine (reads $02001DF0)
FF1 Stat and Animation Handling
- 01591C-0159B3 (000098) = Total Attack Determination
- 0159B4-015ACB (000118) = Total Defence Determination
- 015ACC-015B8F (0000C4) = Total Evade Determination
- 015B90-015C23 (000094) = Effective Max HP Determination
- 015C24-015CB7 (000094) = Effective Max MP Determination
- 015CB8-015D4B (000094) = Total Intellect Determination
- 015D4C-015DDF (000094) = Total Agility Determination
- 015DE0-015E73 (000094) = Total Stamina Determination
- 015E74-015F07 (000094) = Total Strength Determination
- 015F08-015F43 (00003C) = Current HP/MP Determination (And Possible Truncation)
- 015F44-015F83 (000040) = Total Accuracy Determination
- 01E2FC-01E8C3 (0005C8) = (ASM) Root Spell/Weapon Animation Handling
- 01E8C4-01F12F (00086C) = (ASM) Unknown Routines
- 01F130-01F1A3 (000074) = (ASM) Conditional Animation Effect Handling
- 01F1A4-01F743 (0005A0) = (ASM) Animation Chunk Storage Routine
- 01F744-02B2B3 (00BB70) = (ASM) Animation-related routines; exact function unknown