Parámetro | Info |
---|---|
Consola: | SNES |
Juego Original: | Final Fantasy II |
Tipo: | Improvement |
Género: | Role Playing |
Modificaciones: | GP |
Creador: | Phoenix Hacks |
Fecha de creación: | 09/09/2008 |
Última modificación: | 01/08/2016 |
Parámetro | Info |
---|---|
Nombre del archivo: | AddingSpellstoSpellLists.zip |
Téléchargements: | 7 |
Requisitos: | Header (SNES) |
Versión: | 1.0 |
Clasificación: |
Don’t think this is gonna be a 100% Gold Remake, it’ll have its differences. Extra battles (some’ll be optionals, tough but rewarding), Hoenn Pokemon (in every area, and hard to find) New areas, Remapped some dungeons (so your old guides wont work) , Extra recurring characters (some’ll hate you, some’ll help you)
Note that the hack is incomplete but feel free to enjoy the hack as-is.
================================================================= FF2/4 Adding Spells to Spell Lists Patch by Phoenix Hacks 9/9/2008 ================================================================= This patch is really only for hackers. In the original game, spells are added to spell lists based on spell number. If you change spell effects, however (for example, changing a White spell to a Black spell), then the spell will still be added to a White list. This patch changes it so the spells are added based on the first character of their name. Any spells with a white magic sphere will be added to the top (i.e. White) list, any spells with a gray magic sphere will be added to the bottom (i.e. Call) list, and any other spells with be added to the middle (i.e. Black/Ninja) list. This zip file includes three IPS patches. One is for FF2us v1.0, one is for FF2us v1.1, and one is for FF4j. The disassembly for each of these is provided below. The "ASM Interpretation" is for v1.0, but the (headered) offsets are listed for all three version on the left. The second subroutine below (starting at offset 1F420) is the same for all three versions. 2v1.0 2v1.1 4j Hex Data ASM Interpretation ----- ----- ----- -------- ------------------ 1F334 1F349 1F34E BD 60 15 Load A with 1 byte at $7E:1560+X ; \ 1F337 1F34C 1F351 D0 2D Branch to 1F366 if zero flag is clear ; | 1F339 1F34E 1F353 B9 1C 29 Load A with 1 byte at $7E:291C+Y ; | load A with the spell number 1F33C 1F351 1F356 85 B9 Store A to $00:D+$B9 ; | 1F33E 1F353 1F358 C9 FF Compare A with #FF ; | 1F340 1F355 1F35A F0 2D Branch to 1F36F if zero flag is set ; / 1F342 1F357 1F35C 20 20 F2 Jump to subroutine at 1F420 ; load A with first letter of spell name 1F345 1F35A 1F35F C9 40 Compare A with #40 ; if A isn't 40 (i.e. white magic), 1F347 1F35C 1F361 D0 06 Branch to 1F34F if zero flag is clear ; branch to next check 1F349 1F35E 1F363 A5 B3 Load A with 1 byte at $00:D+$B3 ; else if A is 40 and the spell list isn't 0, 1F34B 1F360 1F365 D0 19 Branch to 1F366 if zero flag is clear ; skip past adding the spell 1F34D 1F362 1F367 80 11 Branch to 1F360 ; otherwise add the spell to the first list 1F34F 1F364 1F369 C9 41 Compare A with #41 ; if A isn't 41 (i.e. call magic), 1F351 1F366 1F36B D0 08 Branch to 1F35B if zero flag is clear ; branch to next check 1F353 1F368 1F36D A5 B3 Load A with 1 byte at $00:D+$B3 ; else if A is 41 1F355 1F36A 1F36F C9 02 Compare A with #02 ; and the spell list isn't 2, 1F357 1F36C 1F371 D0 0D Branch to 1F366 if zero flag is clear ; skip past adding the spell 1F359 1F36E 1F373 80 05 Branch to 1F360 ; otherwise add the spell to the third list 1F35B 1F370 1F375 A5 B3 Load A with 1 byte at $00:D+$B3 ; if A is anything else 1F35D 1F372 1F377 3A Decrement A ; and the spell list isn't 1, 1F35E 1F373 1F378 D0 06 Branch to 1F366 if zero flag is clear ; skip past adding the spell 1F360 1F375 1F37A A5 B9 Load A with 1 byte at $00:D+$B9 ; \ 1F362 1F377 1F37C 9D 60 15 Store A to $7E:1560+X ; | 1F365 1F37A 1F37F C8 Increment Y ; | 1F366 1F37B 1F380 E8 Increment X ; | otherwise, add the spell to the 1F367 1F37C 1F381 E6 B7 Increment 1 byte at $00:D+$B7 ; | list and repeat if necessary 1F369 1F37E 1F383 A5 B7 Load A with 1 byte at $00:D+$B7 ; | 1F36B 1F380 1F385 C9 18 Compare A with #18 ; | 1F36D 1F382 1F387 D0 C5 Branch to 1F334 if zero flag is clear ; / 1F36F 1F384 1F389 60 Return from subroutine ; return 1F420 DA Push X (2 bytes) onto stack ; \ 1F421 85 DF Store A to $00:D+$DF ; | 1F423 A9 06 Load A with #06 ; | 1F425 85 E1 Store A to $00:D+$E1 ; | loads A with the first letter 1F427 20 E0 83 Jump to subroutine at 185E0 ; | of the spell name (40 for 1F42A A6 E3 Load X with 2 bytes at $00:D+$E3 ; | white magic, 41 for call magic) 1F42C BF 00 89 0F Load A with 1 byte at 78B00+X ; | 1F430 FA Pull 2 bytes from stack and store in X ; | 1F431 60 Return from subroutine ; /