Users browsing this thread: 1 Guest(s)
Portrait removal patch request for FFVI advance

#1
Posts: 7
Threads: 1
Thanks Received: 0
Thanks Given: 0
Joined: Jul 2019
Reputation: 0
Status
None
Hi! I'm new here and was wondering if there is a patch for the FFVI advance rom that removes the character portraits in the dialogue boxes. This is the first time I'm going to play FFVI and wanted to be similar to the snes version (I already have the patches for color and sound restoration). I've looked in the forum but couldn't find anything like that. Recently I played FFV with a patch that does that (what is seen in the attached image) so I thought it may be possible for FFVI as well. Anything on the matter would be very helpful, thanks in advance!

ps: English is not my native language, sorry for any grammar errors!


Attached Files Thumbnail(s)
   
  Find
Quote  

#2
Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
There is no such patch sadly. What you could do though is replace every portrait GFX in the ROM with 00 (transparency). Here are the offset for all GBA version. You would get the same result as your picture as the text still start after the portrait space in the dialogue box.

Code:
5FE83E     60301D     GFX     Portraits (800 bytes * 23 entries)
  Find
Quote  
[-] The following 1 user says Thank You to madsiur for this post:
  • Feanor17 (07-28-2019)

#3
Posts: 7
Threads: 1
Thanks Received: 0
Thanks Given: 0
Joined: Jul 2019
Reputation: 0
Status
None
Thanks for your reply! Indeed what you say is exactly what I wanted to do. Sadly, I've no experience in hacking roms, but aparently this task in particular shouldnt be difficult, so I guess I could learn and experiement a bit. If it's not to much to ask, could you tell me which program I can use or a tutorial I could follow to do the portrait replacement you mention? Thanks!
  Find
Quote  

#4
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
You'll need a hex editor. This site's wiki has three of them; personally I use HxD.

https://www.ff6hacking.com/wiki/doku.php...ex_editors

Make a copy of your ROM and open it with the Hex Editor (and ONLY the copy). You have to be careful, you can use Hex editors to change ANY file, but it will likely make them unstable; you only want to play with the ROM which is well-documented. Use the find function to go to the address Madsiur gave you (5FE83E). The window is displayed as a grid in hexadecimal 'dohs' (so each row has sixteen values). You'll see 5FE830, and you'll want to find Column E.

You'll want to replace this byte and every byte after with 00 up to and including 60301D (which is 800x23 bytes later, the storage spot for all the portraits and the end value Madsiur listed). Then save the file.
This _should_ make all of the portraits blank in the modified version of the ROM; you can test by starting the game and seeing if you see the soldier's face on the first dialogue box. Note it won't shift the text over with the portraits gone; there'll be a blank spot there.

When you're done with the modification, if you don't intend to do any other manual hacking I recommend deleting the hex editor so that you don't accidentally alter another file with it.
  Find
Quote  
[-] The following 1 user says Thank You to C-Dude for this post:
  • Feanor17 (07-29-2019)

#5
Posts: 178
Threads: 2
Thanks Received: 23
Thanks Given: 4
Joined: Apr 2015
Reputation: 18
Status
None
I made patches for the US and European versions of FF6 Advance. I just wrote a for loop in FF6Tools and had it delete all the character portraits from each dialog string. I only tested a few dialog messages but it looks like it worked. Let me know if you find any errors. I couldn't get the Japanese version to work for some reason. There might be a bug in my Kanji encoding algorithm.

FF6 Advance (US): https://www.mediafire.com/file/w04bjah58...u.ips/file
FF6 Advance (Europe):  https://www.mediafire.com/file/nw1ehtxhv...e.ips/file
  Find
Quote  
[-] The following 1 user says Thank You to Everything for this post:
  • Feanor17 (07-29-2019)

#6
Posts: 7
Threads: 1
Thanks Received: 0
Thanks Given: 0
Joined: Jul 2019
Reputation: 0
Status
None
Thank you very much to both of you ! <3 I tried doing what C-Dude said and it worked perfectly, I tested it only in the beggining though. The portraits are removed in the dialogue boxes and in the menu as well. The result can be seen in the image below.

Everything, I patched (using Lunar IPS) another copy of the game with the ips files you kindly made but somehow it didn't seem to work. I tried with both of them (separately of course) but the portraits were still there and also the sound was somewhat messed up. I used a rom from the link:

[link to rom removed]

which aparently is FF6 Advance (US). Maybe I did something wrong or it is possible that there's something wrong with the patch, I noticed that in the original rom the first dialogue boxes don't have any portraits by default and the first dialogue with a portrait in the game is after you find the frozen esper and Terra wakes up in Narshe, so maybe you didn't test it that far, although you can also check it right form the start by looking at the menu.

Nevertheless, it appears that it is already solved since the first method worked Smile. I'll start playing and if I encounter any error I'll let you know. I guess if someone wants to perfect it even more, one could remove the portraits only from the dialogue boxes while keeping the menu portraits (like the snes version), but maybe that's a long shot, since we would need to know which bytes are specifically for the menu portraits. Anyway, thank you very much for your help!


Attached Files Thumbnail(s)
   
  Find
Quote  

#7
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
[You should use the edit button to remove that link from the middle of your post.]

Here's what's happening with the portraits.
Madsiur's suggestion (which I explained how to achieve in hex editing) removes the graphics used by the portraits. More specifically, it overwrites each pixel of all 23 portraits with the transparency color. See, computers draw images by indexing their individual pixels and then assigning a color value to them. For 16-bit video games, these colors, from 00 to FF (256 in decimal) are drawn from the game's palette. By setting all of the values to 00, we've told the game that all of the portraits should actually be blank boxes. This is convenient because all of the relevant hex is located in the same place, but inconvenient because the game does not discriminate where and where not to draw the portraits (hence why they disappear in the menu).

Everything's approach is more elegant but more complicated; he wrote a block of code that checked the game's dialogue for the portrait pointers. These are special codes used by the game's text processing to decide whether or not a portrait should be drawn. They're kinda like bulliten board code: "[Portrait:Terra]Where am I?" is basically what the strings say in their raw text... except instead of a human-readable format like the word "Portrait" it's written as a hex command call.
Because of this, you can't just go to a single block of hex code and erase it all, lest you erase all the text completely. Instead, sections of code are selectively removed (which is where a patch comes in handy).

Now... you probably ran into a header issue when you tried to apply Everything's patch; this is why it did not work as intended. We don't want to know the origins of your ROM file, but you can tell us its file size. With that information we should be able to determine whether or not it has a header (headered ROMs are slightly bigger) and the patch Everything prepared can be adjusted accordingly.
  Find
Quote  
[-] The following 2 users say Thank You to C-Dude for this post:
  • Everything (07-29-2019), Feanor17 (08-03-2019)

#8
Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
(07-29-2019, 06:33 PM)C-Dude Wrote: Now... you probably ran into a header issue when you tried to apply Everything's patch; this is why it did not work as intended.  We don't want to know the origins of your ROM file, but you can tell us its file size.

I never saw a GBA ROM with a header but there might be some compatibility issue with the prepatched ROM he found. It could also be the patch applied to the wrong ROM version.
  Find
Quote  
[-] The following 2 users say Thank You to madsiur for this post:
  • C-Dude (07-29-2019), Feanor17 (08-03-2019)

#9
Posts: 178
Threads: 2
Thanks Received: 23
Thanks Given: 4
Joined: Apr 2015
Reputation: 18
Status
None
I tested up until the 3-party moogle battle. I suppose I should have specified the ROM size and CRC32. I wasn't aware that GBA ROMs could come with a header. If it does have a header, I would recommend deleting it. Here are the details for the ROMs I used to make the patches.

FF6 Advance (US) - Length: 8388608 bytes, CRC32: 0xD708F5AB
FF6 Advance (Europe) - Length: 16777216 bytes, CRC32: 0xD15DEBA5

Just to note: Madsiur's suggestion leaves an empty area on the left side of the dialog box, while mine leaves an empty area on the right side. So slightly different but same basic result.
  Find
Quote  
[-] The following 2 users say Thank You to Everything for this post:
  • C-Dude (07-30-2019), Feanor17 (08-03-2019)

#10
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
(07-29-2019, 11:22 PM)Everything Wrote: I wasn't aware that GBA ROMs could come with a header. If it does have a header, I would recommend deleting it. Here are the details for the ROMs I used to make the patches.
Maybe they don't.  I was just guessing on the usual reason a patch doesn't work as intended: an incompatible file.  Admittedly my experience with GBA hacking is limited; I've only used editors on those types of games.  Most of the hacking communities I've seen prefer the SNES versions.
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite