Adding Spells to Spell Lists Patch ROM Hack herunterladen

Adding Spells to Spell Lists Patch Spiel
Mit Freunden teilen:
Parameter Informationen
Konsole: SNES
Original Spiel: Final Fantasy II
Typ: Improvement
Genre: Role Playing
Veränderungen: GP
Ersteller: Phoenix Hacks
Erstellungsdatum: 09/09/2008
Letzte Änderung: 01/08/2016
Parameter Informationen
Dateiname: AddingSpellstoSpellLists.zip
Downloads: 7
Anforderungen: Header (SNES)
Version: 1.0
Bewertung:

Adding Spells to Spell Lists Patch Beschreibung

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.

Adding Spells to Spell Lists Patch Liesmich

=================================================================
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			; /