News: 11 March 2016 - Forum Rules

Author Topic: "Should Old Games Be Fixed? The Faxanadu Pendant Bug". ROM hacking related video  (Read 1366 times)

FAST6191

  • Hero Member
  • *****
  • Posts: 3348
    • View Profile
Continuing the theme I like to go with around here of ROM hacking and ROM hacking adjacent topics encountered out in the wild and being shared here then today we have/ze algorithm thinks I and by extension now all you might like

"Should Old Games Be Fixed? The Faxanadu Pendant Bug"

https://www.youtube.com/watch?v=FeemO9yW-hs
Have not gone through the channel yet but looks like if you like that then there are alternatives. Video was a nice, if somewhat informal, discussion of some bugs, password systems and means available to those out there to sort them. Most here would likely not learn much other than a specific game's fixes and methods, and those looking to come up might not find themselves more advanced in mindset, but might make for a nice "like this but for other games" if needing something to showcase to someone else if they ask about this hobby.

PolishedTurd

  • Full Member
  • ***
  • Posts: 219
    • View Profile
This video was also recommended to me by our yet-to-become-malevolent robot overlords. I enjoyed the presentation as well as the set of workarounds / fixes.

It reminded me of another video I saw about some re-release of the Phantasy Star series (Switch, perhaps?) where dungeons had a new auto-map feature, and there may have been an option to double experience and money too. I think it's great for the longevity of these old games. I got surprisingly close to finishing Phantasy Star I as a kid with no help in the pre-internet age. But I recently speed-watched a speedrun of the game that lasted 6 hours, and it was 5 hours of grinding. I'm not the only retro gamer who is absolutely never going back to that state of affairs. An auto-map and 2x boost might change the equation for me though.

The memory footprint of cartridge games is so tiny now that it should be "standard" to have modern conveniences / cheats / enhancement options, which the purist is free to leave disabled.

Of course, most of the marquee classics have QoL patches by now. A more sophisticated generic option I'd like to see would be for AI-assisted manipulation of physics or animation to make controls more responsive or to make the in-game AI more aggressive / accurate / predictive.

Spooniest

  • Hero Member
  • *****
  • Posts: 3406
  • Kuru zotsu!!
    • View Profile
I think it would be nice to include a 2x boost to the animation frames in a classic game, using the original frames of animation like "keyframes." Like, add "in-between" frames of animation to the game. Sonic Mania in fact does this, as do a lot of MD Sonic mods these days.

The SNES FF games could use it too, along with idle animations for the characters a la FF7+/Super Metroid.

But of course I see the problem with that; you'd basically have to draw a new version of almost every frame of animation in the game, and add it into an existing game. It'd take a zillion years to do, but I think it'd be worth it.
Yamero~~!

nesrocks

  • Hero Member
  • *****
  • Posts: 738
    • View Profile
    • nesrocks.com
It means a lot more work but I've been loving the idea of hacks adding the patch as in-game options. I've partly done this in the Adventure Island hack and done it completely in the TMNT2 hack. The idea is to allow the game to be played as it was originally (sans the options menu), even if patched.

Chronosplit

  • Hero Member
  • *****
  • Posts: 1598
    • View Profile
Same guy also did an overview of Monopoly NES's trade AI which is way more complicated than I had thought it to be.  I'm kinda mad that people call the NES/SNES version of Monopoly shovelware now, there was honest work in there.

FAST6191

  • Hero Member
  • *****
  • Posts: 3348
    • View Profile
It means a lot more work but I've been loving the idea of hacks adding the patch as in-game options. I've partly done this in the Adventure Island hack and done it completely in the TMNT2 hack. The idea is to allow the game to be played as it was originally (sans the options menu), even if patched.

Varies with the difficulty of the base hack (one instruction change is not going to compare) but it is not so bad to work up.

The obvious first step is button enable/disable. Usually a simple flag somewhere in memory and reading that to determine actions.

Second I would probably go for old school trainer options and have the same flag options but frontload the game with a menu of your own design (or someone else's I guess).

Third is more for games that load the binary into RAM as you could swap things in and out there easily enough if it is only a few lines of code/bytes of patch. Equally you could program something that effectively "drops" the pendant for a button press if not sorting code, maybe another to reverse it and call it equip and unequip, possibly with a check to see if it had ever been picked up/the level it was found in was completed.

After that then yeah fiddling with menus and all the fun that entails.

Practically speaking the non menu options above still give the end user the option to enable and disable things without having to have multiple versions (and thus save fun) with flash carts, or other such hassles.

PowerPanda

  • Sr. Member
  • ****
  • Posts: 267
    • View Profile
You guys, this discussion is way more fascinating than just "should we fix old bugs"?

When I watched the video, he noted that the fix was to switch an "F0" byte to a "D0" byte. Those translate to BNE (D0, "Branch Not Equal") and BEQ (F0, "Branch Equal"). The 2 instructions are used in the exact same way, but one is positive and one is negative. The syntax of 6502 (or any machine language for that matter) is not always the same as spoken language though. It's not always clear whether you should use BEQ or BNE. Sometimes, when you describe what your code does in "Plain English", you have to translate it by flipping all of the positives to negative, or vice versa.

Now, that's fascinating enough, but let's add another layer onto it. When you translate English to Japanese, you get the same effect. Sometimes things that would be expressed as a negative in English need to be expressed as a positive in Japanese, and vice versa. Example, if you asked a child, "You didn't hit your sister, did you?" an English child would say "No", responding to the "Did you" portion of the question to say that they didn't. However, a Japanese child would say "Yes" to indicate that your initial statement "You didn't hit your sister" is correct. I learned this the hard way as an ESL teacher. Note that most machine language is initially based on English syntax. This was a problem back in the day, as it was harder for Japanese speakers to learn the correct syntax for their code.

Putting that all together, you have a perfect recipe for mixing up BEQ/BNE. I can look at this video and say, "Yeah, it's pretty clear both what the bug is, and how it happened." So do we preserve the mistake out of a sense of nostalgia, or do we acknowledge that it was clearly a mistake, patch it, and move on? My vote would be to patch it. No toggle switches; no options menu. Just change it to what it was clearly supposed to be from the beginning.