CoN 25th Anniversary: 1997-2022
Hacking Questions for Master Zed(Or anyone else)

Posted: 27th January 2004 20:44

*
Chocobo Knight
Posts: 94

Joined: 10/8/2003

Awards:
Member of more than ten years. Member of more than five years. 
Is it possible to hack the game to cause over 9999 damage?

How do I make any battle have the Final battle music(I think it's called Dancing Mad)? -(Done, but a way to get around the background glitch would help.)

How can I do some advanced hacking(Dissassembly stuff)?

How do I edit text?

And finally, can I make any spell give Retort status?

This post has been edited by Mikey on 28th January 2004 00:59
Post #27540
Top
Posted: 27th January 2004 22:51

*
Chocobo Knight
Posts: 75

Joined: 4/11/2003

Awards:
Member of more than ten years. Member of more than five years. 
yes its possible.

if you want to know how then i sugest gamedev.net therell be folk on thare will tell you how.

--------------------
Failure is not an option. its an art form
Post #27557
Top
Posted: 28th January 2004 00:13

*
Chimera
Posts: 1,048

Joined: 12/11/2003

Awards:
Member of more than ten years. Member of more than five years. 
Hi there Mikey. I can answer one of your questions.

Quote
How do I make any battle have the Final battle music(I think it's called Dancing Mad)?


Using the FF3usME editor, click on formations. You can then select what battle music you want to play for each formation. Select Final Part 1,2 or 3 which represent the different tiers of Kefka's tower. You can't select part 4 though.

If Master Zed could describe the dissassembly thing that would be great. He gave me a link to this text about changing what music is played where, outside of battles. However I haven't been able to make sense of it. I'm interested in making the WoR Jidoor music play in the WoB Jidoor, and the WoB Narshe music play in the WoR Narshe.

This post has been edited by i90east on 28th January 2004 00:17

--------------------
FFXI (Siren server)
Tauu the Windurstian Tarutaru!
White Mage & Paladin
Post #27560
Top
Posted: 28th January 2004 00:25

*
Chocobo Knight
Posts: 94

Joined: 10/8/2003

Awards:
Member of more than ten years. Member of more than five years. 
Thanks, but I think there's an event in between the Sleep\Girl battle and Kefka's battle that starts the music. I think it involves that ??(Byte 1, Bit 2) thing. I'm just not sure about it...

EDIT:I got the music working. The background screws up, but the battle plays and the music is fine. thumbup.gif

1 down, 4 to go... And another...

Does anybody know how to lengthen the names of player usable spells?

And how to change the Shock command to use a different spell?

This post has been edited by Mikey on 29th January 2004 23:09
Post #27562
Top
Posted: 29th January 2004 13:59

*
Chocobo Knight
Posts: 139

Joined: 25/1/2004

Awards:
Member of more than ten years. Member of more than five years. 
Quote (Mikey @ 27th January 2004 15:44)
Is it possible to hack the game to cause over 9999 damage?


Yes, it is possible. In the Damage function, it checks to see if greater or equal to 10000, and if so, it sets it to 9999. Just change these 2 values to the cap you want. Of course, it will ultimately be capped at 2^15 = 32768. It would be 2^16, but the highest bit is used to show "missed".

At least I think that's how it works wink.gif

--------------------
Food is like magic in my ears. - Djibriel
Ogopogo lives.
Post #27669
Top
Posted: 31st January 2004 00:17
*
SOLDIER
Posts: 741

Joined: 5/7/2001

Awards:
Member of more than ten years. Member of more than five years. 
This may not make much sense unless you have already learned a couple things.

Quote (Mikey @ 27th January 2004 14:44)
Is it possible to hack the game to cause over 9999 damage?

From Terii's disassembly:
Code
C2/0C90: C9 10 27     CMP #$2710  (If over 9999)
C2/0C93: 90 03        BCC $0C98
C2/0C95: A9 0F 27     LDA #$270F  (Truncate Damage to 9999)
C2/0C98: 99 D0 33     STA $33D0,Y (Damage Taken)

IOW, four Game Genie or PAR codes could do that, at least for actual damage. Simply edit C20C91 and C20C92 to change the damage limit, and C20C96 and C20C97 to change what value the truncated damage becomes (in your hex editor, those offsets are 20E91, 20E92, 20E96, and 20E97 respectively).

Another tidbit; to convert a ROM PAR code (a.k.a. CPU address) to the offset you see in a hex editor, subtract BFFE00h from it. This works for HiROM games such as FF3us, but won't for games like FF4 which are LoROM. Information on what I'm talking about shouldn't be too hard to find if you look for hardware info.

Quote (Mikey @ 27th January 2004 14:44)
How do I make any battle have the Final battle music?

While part 1 is in the box on FF3usME, and you can get the theme by using final Kefka's intro, another way to do this (without event editing) would be to change the value at 2C141 to 50h (that's what my notes say the value for Dancing Mad part 4 is anyway). That will change the first "Current" in FF3usME's music box to really mean Dancing Mad. I chose this one because I don't think it's actually used, it always seems to be the second "Current", since only one of those would be all Square would need anyway.

Quote (Mikey @ 27th January 2004 14:44)
How can I do some advanced hacking(Dissassembly stuff)?

How do I edit text?

This is where I start pointing you at the tutorials on sites like Zophar's and romhacking.com (but romhacking.com's assembly section has been down for months). For assembly, look for stuff on the SNES and the 65816 processor (not the 65c816 (I believe that's the name), that's a modified version not used by the SNES). Or maybe just Terii's site since he has a bunch of assembly docs all in a nice compact zip file. smile.gif

Also, don't limit yourself to just assembly, you need to have documentation on the hardware as well, at least as far as the special offsets for stuff like the SNES' multiplication and division offsets.

As for hacking text, romhacking.com should definitely be able to help with that. There's a lot of text tutorials out there.

Quote (Mikey @ 27th January 2004 14:44)
And finally, can I make any spell give Retort status?

Yeah, but that definitely will require an assembly-level hack. Terii's site has a C2 bank disassembly that has a whole lot of comments in it, Retort's code is probably commented as well. Don't look for the special effect in the spell though, it does nothing at all.

Your last two questions are the same scenario, and you will definitely have to expand the ROM and relocate the spell names to do the first one. You most likely have a ways to go before you're going to be capable of those feats.

i90: That's not the code Mikey's talking about, that's the event code, which, much like enemy command scripts, is its own script language. What would REALLY help you out is to use Yousei's eventdisasm.exe (comes with the old FF3Edit) to create a disassembly of all the event code so you can see exactly how Square used it without having to go back over and over at the text and seeing what hex value is what (you may do that a little anyway since eventdisasm.exe doesn't list out opcode "parameters" in its texts, only the hex number of the opcode itself). It's a DOS command line program though, and there's no documentation on it I know of. IIRC, all you have to do to use it is to give the name of the ROM as the first parameter and the program does the rest. If not, PM me, and I'll see if I can figure it out again (or if I have to send you mine). smile.gif

I know, this is cluttered. I'll reword it if you need me to.

--------------------
Post #27821
Top
Posted: 31st January 2004 21:59

*
Chocobo Knight
Posts: 94

Joined: 10/8/2003

Awards:
Member of more than ten years. Member of more than five years. 
Thanks! thumbup.gif
Post #27878
Top
Posted: 5th February 2004 01:40

*
Chocobo Knight
Posts: 139

Joined: 25/1/2004

Awards:
Member of more than ten years. Member of more than five years. 
For Master Zed (or anyone else):

I would like to get a complete list of RAM locations and their purposes (for its obvious benefit). Yes, I do have the one from Terii's page and I've also added several of my own, but if anyone else has a running list that they would share I would appreciate it. Hopefully we can avoid as much "wheel reinvention" as possible.


--------------------
Food is like magic in my ears. - Djibriel
Ogopogo lives.
Post #28241
Top
Posted: 23rd January 2006 02:18

*
Returner
Posts: 9

Joined: 10/12/2005


Zed, I'm trying to use the FF3Edit program, but I can't because my rom is a version 1.1

IS it still possible to get version 1.0 roms? Or am I pretty much screwed.

Or... IS there another program for windows that allows me to edit text?

--------------------
Kefka: Then I'll destroy those too. Why do people rebuild things they know are going to be destroyed? Why do people cling to life when they know they can't live forever? Think how meaningless each of your lives is!
Post #107123
Top
Posted: 23rd January 2006 03:13

*
Cetra
Posts: 2,350

Joined: 19/9/2004

Awards:
Member of more than five years. 
Quote (Ogopogo @ 4th February 2004 20:40)
For Master Zed (or anyone else):

I would like to get a complete list of RAM locations and their purposes (for its obvious benefit). Yes, I do have the one from Terii's page and I've also added several of my own, but if anyone else has a running list that they would share I would appreciate it. Hopefully we can avoid as much "wheel reinvention" as possible.

AFAIK, no such list exists. Many of us probably have very detailed lists of RAM offsets (I myself carry such a list with a few thousand offsets tongue.gif) but 65,000 addresses, some of which are reused multiple times and/or serve only as temporary storage locations, simply can't be mapped out.

Your best bet is to figure out what it is you want to edit and go from there, instead of poring through a list of offsets and picking one to work with. A list of ROM offsets, particularly which sections of the code banks handles what, is the best way to pump out solid hacks when ROM hacking.

RAM offsets are a good way to understand what's going on in the code though. But you can often figure out the more important ones via ROM offsets (ie, if you see a block of 12 bytes being loaded from offset xyz and you know that's character data, the RAM offset it's loaded into should serve a very obvious purpose. tongue.gif )

--------------------
"Judge not a man by his thoughts and words, but by
the quality and quantity of liquor in his possession
and the likelyhood of him sharing."
Post #107125
Top
Posted: 9th February 2006 15:17

*
Chocobo Knight
Posts: 139

Joined: 25/1/2004

Awards:
Member of more than ten years. Member of more than five years. 
Geez man, that's a 2-year old message you just quoted! I've got my own list now, but thanks anyway. tongue.gif

--------------------
Food is like magic in my ears. - Djibriel
Ogopogo lives.
Post #107823
Top
Posted: 10th February 2006 01:01

*
Cetra
Posts: 2,350

Joined: 19/9/2004

Awards:
Member of more than five years. 
ROM hackers never vanish. They merely wait until they feel the time is right..

>_> <_<

--------------------
"Judge not a man by his thoughts and words, but by
the quality and quantity of liquor in his possession
and the likelyhood of him sharing."
Post #107857
Top
Posted: 10th February 2006 01:06

*
Climbing Marle!
Posts: 1,640

Joined: 21/6/2004

Awards:
Member of more than ten years. Participated at the forums for the CoN's 15th birthday! Major involvement in the Final Fantasy V section of CoN. Member of more than five years. 
Amen to that, RuneLancer. happy.gif

--------------------
Is PJ
Post #107858
Top
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members: