Download Everybody Gets a Chocobo ROM Hack

Everybody Gets a Chocobo Game
Spread the love:
Parameter Info
Console: SNES
Original Game: Final Fantasy III
Type: Bug Fix
Genre: Role Playing
Modifications: G
Creator: PowerPanda
Date Created: 07/20/2018
Last Modified: 07/21/2018
Parameter Info
File Name: Everychocobo_v1_1.zip
Downloads: 2
Requirements: Header (SNES)
Version: 1.1
Rating:

Everybody Gets a ChocoboDescription

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.

Everybody Gets a ChocoboRead Me

Title: Everybody Gets a Chocobo!
Author: PowerPanda
Version: 1.0
Applies to: FF3us v1.0 (headered)

Contents:  everychocobo.ips - apply to your rom to get the changes
	   everychocobo_removal.ips - reverts your rom back to the original

--------------------------------------------------------------------------------
-=Intro and Description=-
In Final Fantasy VI, there is a semi-famous bug called the "Chocobo Riding Glitch".
You can read about it here:
http://finalfantasy.wikia.com/wiki/Chocobo_riding_glitch

Though it is only possible to trigger this glitch with Banon in an unhacked game,
it can actually affect any sprite beyond the Main Characters, Vicks/Wedge, and
the Imp.

This patch completes the spritesheets of the other 5 sprites that are controled by
the player over the course of the game, upping the total for complete spritesheets
from 15 to 20. The expanded sheets are:
1. Leo
2. Banon
3. The Ghost
4. The Merchant (Locke's costume)
5. Terra in Esper Form

By re-arranging the rom data, I was able to free up enough space to complete the
sheets. You can use it in 3 different ways:
1. You can use a Save State editor to change any character's graphics to these 5.
2. You can combine it with HatZen08's guest adder to add any of these 5 as permanent
   guests.
3. If you're a hacker, you can add these characters at other points in the story.

--------------------------------------------------------------------------------
-=Under the Hood=-

To give a short explanation, a full character spritesheet contains 180 8x8 tiles.
Any character that has a full set of battle sprites has 170 tiles. The final 10 
"missing" tiles create the 2 poses needed for riding Chocobos and MagiTek armor.
When one of these characters tries to ride a vehicle, the game tries to read tiles
171-180, but ends up reading the first 10 tiles of the next spritesheet over. As a
result, you get a different character, in the wrong pose, and with the wrong palette.
That's why Banon's "riding sprite" is a miscolored standing Esper Terra.

When Square Enix re-released FFVI on the GBA, their fix was to switch Terra in as the
lead character if Banon tried to ride a chocobo. Another hacker, Leet Sketcher, fixed
this bug by adding in a code hook that checked to see if Banon was in front, and if so,
jumped to a different sprite. Both were... complex solutions for a simple problem. 
Also, both ONLY accounted for Banon.

This patch takes a different approach. The character after Kefka, Gestahl, is a
55-tile sheet. I have relocated Gestahl's sprite to an empty block of space right before
Terra's sprite, and used the remaining empty space to expand the 5 sheets up
to 180 tiles.

Additionally, I have made a handful of other fixes:
1. Esper Terra now has a tent. Her eye shading was fixed on 2 rarely-used sprites.
2. The Ghost's tent was recolored to bone-white.
3. The "surprised" face for the Soldier Sprite (never used in the base game) has been
   redrawn so as not to look like a glitch.
4. Esper Terra and Kefka's Save Screen/Party Select Screen Palettes are incorrect
   in the base rom. Both are set to Palette "0". I have corrected these to "5" for
   Esper Terra and "3" for Kefka.

--------------------------------------------------------------------------------
-=Known Issues=-

Note, all of these issues are pre-existing, and not caused by this patch.
1. Esper Terra re-uses Terra's portrait, and the Merchant re-uses the Soldier portrait.
   This patch does not add in new portraits.
2. HOWEVER, Locke has an exception in the code to not display the Merchant or Soldier
   portrait when dressed as them. His portrait will stay the same in the main menu, but
   will have the wrong palette on the Party Select Menu (since you never see that menu
   during his scenario.) No other character has this code exception, so as long as you
   don't use the Merchant or Soldier sprite with Locke, you'll be fine.
3. Esper Terra uses palette 6, but the Save Menu and Party Select Menu only load up to
   palette 5. Palettes 5 & 6 are very close to each other, only differing in the colors
   used to shade the edges, so most people will never notice this, but it IS technically
   a mis-coloration.
4. The shop menu doesn't care what sprite your character has; it will always display
   their original graphics. This is not a bug.

Also, note that the repoint of the graphics will make these sheets look garbled in
the hacking program FF3usME. They will appear correctly in other programs and in game.

--------------------------------------------------------------------------------
-=Future Versions=-

I may or may not release another version of this patch. If I do, here are the things
I would like to add:

1. Riding graphics for Kekfa. In order to make space for this, I would have had to
   re-point the sprites for almost every NPC in the game. This seemed more work than
   it was worth for a character that is never controllable.
2. Adding portraits for Esper Terra, the Merchant, and Kefka. The GBA version had
   Esper Terra and Kefka portraits, and Amano did concept art for the merchant that
   could be converted. The big thing is finding space in the rom. This would probably
   require rom expansion.

--------------------------------------------------------------------------------
Credits

Hacking - PowerPanda
Banon Riding Sprite - LeetSketcher
Leo Riding Sprite - Fauntleroy/FedoraJoe (General Leo Edition)
		   (hair animation by PowerPanda)
Additional Sprites for Esper Terra, Merchant, Ghost, and Soldier - PowerPanda

Programs Used
FF3usMe 6.80
Cygnus Hex Editor

--------------------------------------------------------------------------------
Code Changes

C0/D112: 00 6A > unchanged	(Leo's field sprite location pointer)
C0/D114: 60 7F > A0 80		(Banon's field sprite location pointer)
C0/D116: C0 94 > 40 97		(Esper Terra's field sprite location pointer)
C0/D118: 20 AA > E0 AD		(Merchant's field sprite location pointer)
C0/D11A: 80 BF > 80 C4		(Ghost's field sprite location pointer)
C0/D11C: E0 D4 > 20 DB		(Kefka's field sprite location pointer)
C0/D11E: 40 EA > 20 F9		(Gestahl's field sprite location pointer)

C0/D25C: D6 20 > unchanged	(Leo's field sprite bank pointer)
C0/D25E: D6 20 > unchanged	(Banon's field sprite bank pointer)
C0/D260: D6 20 > unchanged	(Esper Terra's field sprite bank pointer)
C0/D262: D6 20 > unchanged	(Merchant's field sprite bank pointer)
C0/D264: D6 20 > unchanged	(Ghost's field sprite bank pointer)
C0/D266: D6 20 > unchanged	(Kefka's field sprite bank pointer)
C0/D268: D6 20 > D4 20		(Gestahl's field sprite bank pointer)

C2/CE73 - 00 6A D6 > unchanged	(Leo's battle sprite pointer)
C2/CE76 - 60 7F D6 > A0 80 D6	(Banon's battle sprite pointer)
C2/CE79 - C0 94 D6 > 40 97 D6	(Esper Terra's battle sprite pointer)
C2/CE7C - 20 AA D6 > E0 AD D6	(Merchant's battle sprite pointer)
C2/CE7F - 80 BF D6 > 80 C4 D6	(Ghost's battle sprite pointer)
C2/CE82 - E0 D4 D6 > 20 DB D6	(Kefka's battle sprite pointer)
C2/CE85 - 60 7F D6 > 20 F9 D4	(Gestahl's battle sprite pointer)

CF/F951 - D6 00 00 6A > unchanged	(Leo's formation sprite pointer)
CF/F955 - D6 00 60 7F > D6 00 A0 80	(Banon's formation sprite pointer)
CF/F959 - D6 00 C0 94 > D6 00 40 97	(Esper Terra's formation sprite pointer)
CF/F95D - D6 00 20 AA > D6 00 E0 AD	(Merchant's formation sprite pointer)
CF/F961 - D6 00 80 BF > D6 00 80 C4	(Ghost's formation sprite pointer)
CF/F965 - D6 00 E0 D4 > D6 00 20 DB	(Kefka's formation sprite pointer)

D8/EB7C - 02 80 01 24 39 80 11 26 39 
        > 02 80 01 24 3F 80 11 26 3F (Corrects bug in Esper Terra's OAM Palette)
D8/EB97 - 02 80 01 4C 39 80 11 4E 39
	> 02 80 01 4C 3B 80 11 4E 3B (Corrects bug in Kefka's OAM Palette)

Sprite Sheet Hex Locations
INDEX	 SPRITE NAME	ORIGINAL LOCATION	NEW LOCATION
FREE SPACE		D4F646-D4FFFF		D4F606-D4F91F
16/$10 - Leo 		D66A00-D67F5F		D66A00-D6809F
17/$11 - Banon 		D67F60-D694BF		D680A0-D6973F
18/$12 - Esper Terra 	D694C0-D6AA1F		D69740-D6ADDF
19/$13 - Merchant 	D6AA20-D6BF7F		D6ADE0-D6C47
20/$14 - Ghost		D6BF80-D6D4DF		D6C480-D6D9DF
21/$15 - Kefka		D6D4E0-D6EA3F		D6DB20-D6F07F
22/$16 - Gestahl	D6EA40-D6F11F		D4F920-D4FFFF
FREE SPACE (5 tiles)	N/A			D6F080-D6F11F

Note: To edit the sprite sheets or replace them, please follow this tutorial:
https://www.youtube.com/watch?v=gvX-GQaaz2A