• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
June 06, 2024, 09:59:34 am

News:

Please use .png instead of .bmp when uploading unfinished sprites to the forum!


Is there an ASM for unlocking the sound novels? (gameshark to HEX question)

Started by Life, November 19, 2011, 02:40:55 am

Life

I'm searching for such a hack in the forum currently, wondering if it exists. If not, how do I make it myself?

The gameshark codes for activating the sound novels are in the FFT Complete main info thread. But I'd prefer if I could access the novels without needing to use the gameshark every time.


3009EB99 0001
3009EB9A 0002
3009EB9B 0003
3009EB9C 0004


Edit: Hmm, I just watched Wiz's video tutorial on hex editing using HxD and CDmage. Its a great tutorial! Can these gameshark codes be translated into some sort of code that we can use to hex edit in the iso?

Edit2: Alright, I went to read up on gameshark files on the following site: http://gamehacking.org/faqs/hackv500c.html#playstation_code_types

Using HxD, I opened up my ISO file (FF Tactics.img) and tried changing the values in the four offset addresses according to the above gameshark codes.

In offset 09EB99, changed 00 to 01
In offset 09EB9A, changed 00 to 02
In offset 09EB9B, changed 00 to 03
In offset 09EB9C, changed 00 to 04

After doing that, I hit save and then tried loading it up using epxse. But the novels still don't work.  :cry:

I've attached a screenshot of the HxD window for the changes I've made. Is there any step that I've done wrong? The gameshark codes themselves should be correct as I've tried them using pec.


Life

Hmm.. I've just downloaded psxfin. Tried playing with the r3000 debugger but couldn't figure out how to use it. How do I find the ram location?

Cheetah

Do I not have the actual asm hack uploaded in the FFT:Complete area? I can upload it there if you would like Life. What are your plans?
Current Projects:

Life

Cheetah, that would be great! I've read through every post in the complete area but couldn't find the hack. Or perhaps I missed it somewhere.

I wanted to make a simple patch to unlock the sound test and novels in the US version and leaving them as they are with Japanese text. No other changes will be made in that patch. This way there wouldn't be a need to hunt down the Japanese iso just to mess around with these two removed features in their original form. Also, the patched iso can still be used as a base to play around with FFTpatcher. The iso is still technically 'clean' as no changes were made that directly affects the core gameplay mechanics of fft.

Pride


<?xml version="1.0" encoding="utf-8" ?>
<Patches>
<Patch name="Activate Sound Novels">
<Location file="WORLD_WLDCORE_BIN" offset="37b99">
01020304
</Location>
</Patch>
</Patches>


I tested it and it should work. It doesn't show the input command needed, Triangle, but pressing it when looking at the novels does cause the novels to begin.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?


Pride

  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Cheetah

Good to hear you got it taken care of. If you are ever interested in inserting the actual translations let me know.
Current Projects:

Life

Alright thanks. I'm still figuring out the basic of hacking fft though. I love your FFT Complete patch btw. It got me interested to learn more about hacking.  ;)

I'm thinking of trying another thing related to gameshark - enable the world debug and battle debug codes through asm. Has this been done before? Is it possible to figure out the offset address from the asm just by looking at the gameshark codes? I can't see the link between the offset address for the asm and the gameshark codes in the sound novel case...

Pride

I had to find what file the gameshark code was editing to create that little edit, which in this case was wldcore.bin. wldcore.bin is loaded at 0x67000. So 0x9eb99 - 0x67000 leads to the offset change needed in the actual game (0x37b99).
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Life

I see. So we need to first figure out which file the gameshark modifies, and then using the gameshark address, subtract the offset where the file is loaded, to obtain the actual offset change. If we modify the iso itself like I initially did, why wouldn't it work?

Hmm.. Since we need to find the file that the code is modifying, has it been documented in this site which file is loaded at which offset?

Pride

The problem lies in the way FFT loads files. You noticed that I said wldcore.bin is loaded at 0x67000? Well, that's only true when you're not in a battle and possibly an event... But when you're in battle, this file is replaced by battle.bin and battle.bin begins at 0x67000.

A few files are known where they are loaded, I've heard its not hard to figure out what file is being loaded at a certain time.

http://ffhacktics.com/wiki/Offset_Conversion
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Cheetah

If I remember correctly, the world debug codes just extend the number of options in menus and reassign what those new options point to. It will be easy to do.
Current Projects:

Life

Yup, that's what it does. These are the actual codes.

World Debug Menu code:
D0198090 0000
80198090 0006

Battle Debug Menu code:
8016BC1C 0003

I'm still not sure how determining which file is loaded works. Like for the sound novel example with wldcore.bin, the offset conversion page did not list wldcore.bin. How did you figure out that it loads wldcore.bin at 0x67000 and not, for example, world.bin?

For the world debug codes, how do I figure out which file they are modifying? 198090 - E0000 = B8090. I tried changing the value at B8090 in world.bin to 06 (it was 00 originally), but it didn't work.

For the battle debug code, 16BC1C - E0000 = 8BC1C. I tried changing the value at 8BC1C in battle.bin, it didn't activate the code as well.

Pickle Girl Fanboy

Quote from: Life on November 20, 2011, 02:06:47 am
Yup, that's what it does. These are the actual codes.

World Debug Menu code:
D0198090 0000
80198090 0006

Battle Debug Menu code:
8016BC1C 0003

I'm still not sure how determining which file is loaded works. Like for the sound novel example with wldcore.bin, the offset conversion page did not list wldcore.bin. How did you figure out that it loads wldcore.bin at 0x67000 and not, for example, world.bin?

For the world debug codes, how do I figure out which file they are modifying? 198090 - E0000 = B8090. I tried changing the value at B8090 in world.bin to 06 (it was 00 originally), but it didn't work.

For the battle debug code, 16BC1C - E0000 = 8BC1C. I tried changing the value at 8BC1C in battle.bin, it didn't activate the code as well.

It's not that simple.  Many times, only part of a file is loaded into RAM, so what you need to do is go to the RAM address in the Memory Viewer in pSX, and post a pic of what's going on there.  What we want is the original data from around that address.  We can then use that information to search for the same block of data in the game's files, which we can then edit.

I don't remember enough about pSX to help you, but I do know that there are different versions.  I think the one named psxfin.exe is the one you want.

Life

Is this what is needed? Using HxD to open the .psv savestate and going to the memory addresses stated in the gameshark codes.

Pickle Girl Fanboy

A pSX save state (aka *.PSV) has a header on it.
http://ffhacktics.com/wiki/Offset_Conversion
Quote*RAM to PSV: Add 0x2B0

Add 0x2b0 to the RAM address to get the same address in a *.psv, and then post another screenshot of that location in the psv.

Life

Alright. 2B0+198090=198340, 2B0+16BC1C=16BECC.

Glain

In the second screenshot (battle debug) of your savestate, that data seems to definitely be from WORLD.BIN (0x8BC1C), but I can't seem to figure out which file is responsible for the data in the first screenshot (RAM 0x198090). It doesn't seem like anything obvious. If it's the same savestate, we know the world files are loaded and the battle ones aren't, at least.
  • Modding version: Other/Unknown