øAslickproductions.org/forum/index.php?PHPSESSID=tga29oflgq4sghh9j1hi317237&topic=2425.0e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexd382.htmlslickproductions.org/forum/index.php?board=6.0e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexd382.html.zx  h^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿȰU|þOKtext/htmlISO-8859-1gzip8:Ö|þÿÿÿÿÿÿÿÿTue, 10 Mar 2020 21:58:16 GMT0ó°° ®0®P®€§²ð®  h^ÿÿÿÿÿÿÿÿþ-|þ State of the Sketcher

Author Topic: State of the Sketcher  (Read 356 times)

13375K31C43R

  • Ultros
  • *
  • Posts: 675
  • Gender: Male
    • View Profile
    • Leet Sketcher's Final Fantasy III Patches
State of the Sketcher
« on: January 16, 2018, 01:59:04 AM »
Hi everyone! Time for a bit of a serious discussion.

It's now 2018, which means this year will see my third anniversary of FF6 hacking! I don't know yet whether I will release a new Anniversary Pack as I have done the past two anniversaries, mainly because I've only released four new patches since my most recent anniversary (five if you include Count Monsters for FF5). But I'm not here to anticipate or look ahead; this is instead a time for reflection. My FF6 hacking portfolio shows that I have made a total of 70 patches, and out of those all 70 are applicable to the SNES version, 68 are applicable to the SFC version, 26 to the GBA version and 14 to the PS1 version! I have to say I'm very proud of myself for all the work I've done so far and I am so grateful to my supporters and contributors for all the help you've given me! Thank you all very much! :childish:

On a more serious note, however, I anticipate that I will be much less active this year because I have to focus hard on school and work, and I will have little to no time available for hacking. To give some context, I just finished making a small but important update to Dead in the Air, which in turn affected Soul Saved, and I decided that it would be a convenient opportunity to port those two patches to GBA as well. It ended up being a successful and positive accomplishment, but far from convenient. I wanted to have the ports finished before New Year's, but it took me two weeks longer than I expected.

GBA hacking is much different than SNES hacking when it comes to this game. While the GBA version does its best to align its RAM in the same manner as the SNES version to maintain some semblance of recognition and similarity, the ARM Thumb assembly language that makes up the code of the GBA version is entirely different than the SNES assembly language. It requires multiple ARM instructions to simulate one SNES instruction, making GBA hacking much more arduous and time-consuming. To give some perspective, the non-headered SNES fix patch for Dead in the Air is 504 bytes; its US GBA equivalent is a staggering 2.43 kilobytes!

I would love to port as many of my patches to GBA as possible this year, but unfortunately I can only do as much as my busy schedule will allow. Don't be surprised this year to experience gaps between updates that are several months long. If a flaw exists in one of my already-existing patches, you may still feel free to send me a message and I will fix it ASAP, but as far as my own agenda goes, it's going to be a long and slow climb to that higher peak. Here are some of my patches that I would most love to port as soon as I get the opportunity:

  • Caravaggio
  • Game Over
  • Half Knife
  • Imp's Call
  • Imp's Retort
  • Item/Magic Counter
  • Stone Zombie
  • Throwback
  • Ultimate Damage Fix

If anyone feels like helping me out with these ports, I will be so thankful to you and I will continue to appreciate every bit of support and assistance that comes my way! Here's to a successful and enjoyable 2018!
« Last Edit: February 25, 2018, 09:10:45 PM by 13375K31C43R »
"Do not meddle in the affairs of wizards, for they are subtle and quick to anger." -Gildor from The Lord of the Rings

Squall

  • Dark Dragon
  • *
  • Posts: 486
    • View Profile
Re: State of the Sketcher
« Reply #1 on: January 16, 2018, 04:45:43 AM »
My FF6 hacking portfolio shows that I have made a total of 70 patches, and out of those all 70 are applicable to the SNES version, 68 are applicable to the SFC version, 26 to the GBA version and 14 to the PS1 version!
:whoa: That is quite some patching!!! Congratulation and Respect!!!

May I ask you what tools you used to do all this work? I'm mainly interesting in what compiler& editor you use for SNES, but whatever make the life easier will be very welcome too. Also doing whatever patch would require a good source of info for SNES hardware and FF6 internals (structures, addresses,...) could you share that too? (lets say the primary sources of info)

Since, this is a time for reflection, my personal goal is to add Scene (event), Spells and Attack Animations to my Viewer. Imagine, you could watch Galuf and Bratz learn that Faris is a women. Or how Blizzaga animation looks like. Or how Excalibur swings. Similar to you, I don't restrict myself to specific version (SNES), rather seeing it in all worth mentioning versions (GBA). Unfortunately that is vast uncharted area in FF5. Since FF5 is close to FF6 (as internals) maybe learning about FF6 will help me in FF5 ...

P.S.
Quote
If anyone feels like helping me out with these ports, I will be so thankful to you and I will continue to appreciate every bit of support and assistance that comes my way!
Maybe asking for specific needs will help :D

13375K31C43R

  • Ultros
  • *
  • Posts: 675
  • Gender: Male
    • View Profile
    • Leet Sketcher's Final Fantasy III Patches
Re: State of the Sketcher
« Reply #2 on: February 02, 2018, 09:33:34 AM »
May I ask you what tools you used to do all this work? I'm mainly interesting in what compiler& editor you use for SNES, but whatever make the life easier will be very welcome too. Also doing whatever patch would require a good source of info for SNES hardware and FF6 internals (structures, addresses,...) could you share that too? (lets say the primary sources of info)

For editing, I've found nothing to be more effective then simply using a hex editor to hack the snot out of the ROM. I use the disassembly docs hosted on Slick as a reference for the code that is there that needs fixing. For addresses and such, there are ROM maps and RAM maps posted in various places that you can find easily with a quick Google search. The most useful ROM map for me is Terii Senshi's; it's available to view on his website, which I am linking here.

The only patch I think I've made that required more in-depth knowledge of the hardware is Map Mishap because that includes editing values used by the graphics processor. I use this site as reference for all my knowledge about how the graphics registers work. The Super Famicom dev wiki also has a lot of useful information.

GBA hacking is much more of a pain. There aren't disassembly docs I can find like there are for SNES, so instead I use NO$GBA, which is an emulator/debugger/disassembler. The code is disassembled in 16-bit ARM Thumb, so I have an instruction reference handy that I found online via Google.

P.S.
Quote
If anyone feels like helping me out with these ports, I will be so thankful to you and I will continue to appreciate every bit of support and assistance that comes my way!
Maybe asking for specific needs will help :D

Ah, yes. Sorry about that. :isuck:

One thing that would really help is if someone could confirm if Game Over actually needs a GBA port, i.e. if the bug that it fixes is also in the GBA version. When I debugged and died on the overworld map, it looked like the event pointer stack was indeed filling up, but even after 52 deaths there didn't seem to be any adverse effects on the game, unlike when I was testing on the SNES version and it froze.

:edit: Same thing goes for the other patches on the above list.
« Last Edit: February 04, 2018, 10:59:12 PM by 13375K31C43R »
"Do not meddle in the affairs of wizards, for they are subtle and quick to anger." -Gildor from The Lord of the Rings

Squall

  • Dark Dragon
  • *
  • Posts: 486
    • View Profile
Re: State of the Sketcher
« Reply #3 on: February 21, 2018, 06:49:37 AM »
For editing, I've found nothing to be more effective then simply using a hex editor to hack the snot out of the ROM. I use the disassembly docs hosted on Slick as a reference for the code that is there that needs fixing. ...
O boy, you are second person that have done extensive hack work and I respect, BUT is using just hex editor ... was that a trend or a guru told you that is the way  :laugh:

C'mon guys that is so obvious low productive ... that is even hard to explain. Its like you have to move weight from floor 1 to floor ... lets say 5. Obviously you can move the weight by hand. Or use a specialized tool created for that job like winch, windlass or lift. When it comes to move just few kilos/pounds by hand is ok, but what about when you have to move 100? or 1000? Obviously you still can do it BUT its HIGHLY inefficient - it will cost you so much effort, so much time.

Exactly the same is doing it with a hex editor. Sure you can still do the job, but the cost, the time, the probability to make error is more then 100%. Instead of focusing on the real thing like algorithm, you have to keep track for trivial things like: did I enter the right opcode? Did I used the right addressing? And when you want to insert a few bytes you have to manually reevaluate all relative branches ...

13375K31C43R

  • Ultros
  • *
  • Posts: 675
  • Gender: Male
    • View Profile
    • Leet Sketcher's Final Fantasy III Patches
Re: State of the Sketcher
« Reply #4 on: February 22, 2018, 01:14:38 AM »
C'mon guys that is so obvious low productive ... that is even hard to explain.

...

Exactly the same is doing it with a hex editor. Sure you can still do the job, but the cost, the time, the probability to make error is more then 100%. Instead of focusing on the real thing like algorithm, you have to keep track for trivial things like: did I enter the right opcode? Did I used the right addressing? And when you want to insert a few bytes you have to manually reevaluate all relative branches ...

You're probably referring to assembly code, because for everything else I don't have much of a choice. And even for assembly code, I find it best to devise a working algorithm before I start editing, and by working, I mean it does the job the way it's meant to AND fits within the allowed space, or if free space is needed, uses as little as possible. That means I actually write the code in an accompanying text file, including the bytes that make up the commands, before I even start editing. That way I can visualize all the bytes that are there and make sure that the algorithm doesn't use too much space.

I just find that better than writing just an assembly file and using that to make a patch (I'm aware that there's a program out there that's written specifically for that purpose) because A) that means I have to learn the right/best way to write the assembly file to make it work as intended and B) I can't be entirely sure how big the fix is compared to how much space is allowed. Yes, counting and re-counting bytes may be tedious, but it's worth it to make sure it's done right. In most cases I even find it easier to follow, believe it or not, which is important when I manually step through it to check all possible routes that could be taken through the logic.
"Do not meddle in the affairs of wizards, for they are subtle and quick to anger." -Gildor from The Lord of the Rings

Squall

  • Dark Dragon
  • *
  • Posts: 486
    • View Profile
Re: State of the Sketcher
« Reply #5 on: February 22, 2018, 03:50:02 AM »
You're probably referring to assembly code ... I find it best to devise a working algorithm before I start editing ... That means I actually write the code in an accompanying text file, including the bytes that make up the commands, before I even start editing. That way I can visualize all the bytes that are there and make sure that the algorithm doesn't use too much space.
I feel you, because I've been there (as teenager) and I know what are you saying very well ... back then I was using any piece of paper that happen around me and a pencil (so I can easily delete/change), including a bus ticket or toilet paper :D

But then after I got a macro assembler (which for that time was equivalent of miracle), I felt like the world is opening for me ... like when you have observed the world from a small window, and suddenly you go out. Only then you can really experience it, only then you can really feel it and maybe understand its different then what you have imagine trough that small window ...

How much it opened you ask? Before I could write only small things, hack lives in some games. But after that ... (well there is a learning curve) ... I made music editor, graphics editor, vector graphics and what I consider my jewel in the crown - a game similar to my fav arcade "City Connection". All done from scratch, no internet, no books to find algorithms, no friends to ask (in that time most people didn't know that computers existed).

Ops that was a little bit personal, but I see a good potential and I hope to open your eyes to see how much more you could achieve with a right tool. Speaking of which there are number of macro assemblers for SNES - xkas, ca65, bass, wla-dx. As far as I know, xkas is most used but quite buggy and not friendly for patching. The only one that I know and use is wla-dx, not the most popular, but here is the opinion of fellow hacker that has tried several:
Quote
That said, I actually went with WLA for my Super Famicom Wars translation in the end. It's the only 65816 assembler I know of that both has pretty decent "patching assembler" features and uses a decent linker which can automatically put code and data in sections you've defined as free.

Madsiur

  • Tunnel Armor
  • *
  • Posts: 149
  • Gender: Male
  • FF6AE coder
    • View Profile
    • Madsiur's Lair
Re: State of the Sketcher
« Reply #6 on: March 17, 2018, 07:46:18 PM »
On a more serious note, however, I anticipate that I will be much less active this year because I have to focus hard on school and work, and I will have little to no time available for hacking.

Happy late 2018! As someone that went back to university in 2016, I can say I can relate. I had to put on hold my FF6A Editor and abandon my FF6 hack project so I can fullfill my forum admin and forum coding tasks and do properly school things. I just focus on smaller hacking projects but I'll admit if I was not spending time in the ROM hacking world and would only study, my average could go from B to B+ or  A-... but we must also do things that are enjoyables :P

I think you are a FF6 bugfix beast, do less this year but don't abandon everything and focus some periods on school to have some free time once in a while to fix another bug!

13375K31C43R

  • Ultros
  • *
  • Posts: 675
  • Gender: Male
    • View Profile
    • Leet Sketcher's Final Fantasy III Patches
Re: State of the Sketcher
« Reply #7 on: March 18, 2018, 02:20:32 AM »
Happy late 2018! As someone that went back to university in 2016, I can say I can relate. I had to put on hold my FF6A Editor and abandon my FF6 hack project so I can fullfill my forum admin and forum coding tasks and do properly school things. I just focus on smaller hacking projects but I'll admit if I was not spending time in the ROM hacking world and would only study, my average could go from B to B+ or  A-... but we must also do things that are enjoyables :P

I think you are a FF6 bugfix beast, do less this year but don't abandon everything and focus some periods on school to have some free time once in a while to fix another bug!

Thanks! I appreciate all of this! :happy: I feel like I'm running out of bugs to fix in FF6 anyway. There is a bug I want to try to fix in FF5, though, and I want to do a lot of research into the event scripts in FF5 also.

Good luck with your own projects!
"Do not meddle in the affairs of wizards, for they are subtle and quick to anger." -Gildor from The Lord of the Rings

Xenovant

  • Tunnel Armor
  • *
  • Posts: 154
  • (ಠ_ಠ)
    • View Profile
Re: State of the Sketcher
« Reply #8 on: March 18, 2018, 11:48:18 AM »
Sorry for the late reply, but I haven't noticed this thread until today, I always go directly to the FF6 subforum xD

I just wanted to say that I hate you. I wanted to forget about my hack and suddently you appeared from nowhere, bashing bugs like crazy, forcing me to update the hack countless times. :tongue:

Now seriously, I wish you luck in school and your life. Thanks for all these years of dedication, you have done A LOT for this community.

13375K31C43R

  • Ultros
  • *
  • Posts: 675
  • Gender: Male
    • View Profile
    • Leet Sketcher's Final Fantasy III Patches
Re: State of the Sketcher
« Reply #9 on: March 18, 2018, 11:58:44 AM »
I just wanted to say that I hate you. I wanted to forget about my hack and suddently you appeared from nowhere, bashing bugs like crazy, forcing me to update the hack countless times. :tongue:

CV Reynolds probably hates me too because I keep making him update his bugfix comp. No regrets! :laugh:

Now seriously, I wish you luck in school and your life. Thanks for all these years of dedication, you have done A LOT for this community.

Thank you! :childish:
"Do not meddle in the affairs of wizards, for they are subtle and quick to anger." -Gildor from The Lord of the Rings