• Welcome to Talking Time's third iteration! If you would like to register for an account, or have already registered but have not yet been confirmed, please read the following:

    1. The CAPTCHA key's answer is "Percy"
    2. Once you've completed the registration process please email us from the email you used for registration at percyreghelper@gmail.com and include the username you used for registration

    Once you have completed these steps, Moderation Staff will be able to get your account approved.

Talking about romhacks!

ArugulaZ

Fearful asymmetry
More of a re-creation than a hack, but someone is hard at work on a Genesis port of Final Fight, and he's offered a demo for those willing to brave the wilderness of 4Shared to get it. You get two stages and the "Oh my cah!" bonus stage. It feels a bit removed from arcade quality at the moment... some movement isn't right and there's oodles of slowdown. Still, it's a fine start, and it's better than the lion's share of Genesis beat 'em ups not named "Streets of Rage."

 

jpfriction

(He, Him)
Anyone tried this Ancient Dungeon roguelike hack for Zelda 1 yet? Seems like a neat idea, I’ll give it a go here soon.
This is a bit simple, but I can see it’s merit.

Just randomly generated dungeon rooms, no overworld, maps or backtracking. You can walk back and forth between two rooms all day and it’ll just keep throwing new rooms at you.

Haven’t seen any puzzles yet so it’s best for people who like the combat. Occasionally rooms have bosses in them that will drop a heart container or a weapon, I’d imagine it’ll just keep ramping up in difficulty until you die (my first run ended after 40 rooms). Saw one black moblin so I guess there are custom enemies.
 

Mogri

Round and round I go
(he)
Staff member
Moderator
My understanding is it ends at 255, presumably with a Ganon fight.
 

Octopus Prime

Mysterious Contraption
(He/Him)

Well…

This is… not what I would have predicted existing
 

RT-55J

space hero for hire
(He/Him + RT/artee)

Yimothy

Red Plane
(he/him)
I’ve been playing Secret of Evermore and complaining about having to wait for my attack to recharge. The obvious solution would be to switch from my PAL copy to NTSC so everything would be a bit faster, but I decided to hack the ROM to get rid of the recharge time.

This was my first time looking at a SNES ROM, which created a couple of difficulties for me, the first of which was finding a suitable debugging emulator. I started off with bsnes, which I thought had a debugger but if it does I couldn’t find it, so I switched to bsnes plus, a debugging focussed fork of it. I think with my previous hacks I’ve been lucky that my preferred Master System emulator, MEKA, has quite a good, intuitive, and well-documented debugger built in. bsnes plus’s debugger seems pretty good, but there’s not a lot of documentation and I just found it harder to figure out, though maybe it’s just a familiarity issue. One specific issue that I had was that it doesn’t show the actual machine code in the debugger window, just the disassembly generated from it. Having the actual code there would have saved me having to look it up, and also made it easier for me to understand which specific version of the opcodes were in use.

I started off trying to identify the location in memory where the attack recharge is stored. When you attack in the game, a box down the bottom of the screen gets a number in it that counts from zero up to 100%, so I started by using the cheat finder to identify all memory addresses set to 100, then made an attack and found all of those addresses that were no longer set to 100 while it was counting. This got me about five addresses, none of which appeared to be counting up after an attack. So I tried the same thing with FF, which didn’t work either, and then again with 00, which got a promising result - a memory address that appeared to be counting up after an attack, and one next to it that went slowly up from 00 to 04 during the recharge. I tried changing the first value in the memory editor and nothing happened, but setting the 04 one to a lower value would get the percentage counter up, so it appeared I had the right value.

From there I set a breakpoint in the debugger for writes to the 04 address, then used an attack, which helped me find two addresses where the memory was set to zero after an attack and several points where it was counting up. There were also seperate points for running and for the dog’s counter. I had to spend a little time finding the equivalent points in the ROM because the debugger was giving me the address in the CPU memory where the ROM had been loaded. Doing this required translating the assembly from the debugger into machine code so I could search for it in the ROM. The SNES CPU uses different machine code to the SMS’s Z80, so I had to find new resources to help me with that. Once I’d done that I realised I could use the memory editor to see (and modify) the code loaded into the CPU, which might have saved me some time, but oh well.

I went into the memory editor and changed the instructions to set the counter to 00 into three NOP instructions, then tried attacking again. This caused the game to crash. I have since realised that the reason for this was that I was using the machine code for a Z80 NOP, 00, which in the SNES CPU is a BRK instruction. And indeed, it broke. In the SNES, the right code is EA. Whoops! Anyway, not realising that meant I had to pursue a different method, so I looked at the code that made the counter go up, thinking I could increase the value it incremented by or something. I found that the way it was working was by comparing the counter value to 0400, and if it were higher it would set it to 0400 and stop counting. So I just changed the reference value from 0400 to 0000, with the result that the counter would always be higher than the reference (or would be after incrementing once). That seems to have worked - one byte in the ROM changed from 04 to 00 (a single bit change - from 00 00 01 00 to 00 00 00 00).

Now in the game my attack is always at full power, which to me is an unambiguous improvement. I had hoped to stop running decreasing the charge as well, but this was a quick and simple hack and I’m not sure I can be bothered going back in, though it should actually be pretty easy now that I know what the correct code for a NOP is. Running out of stamina while running now just needs a momentary release of the run button to allow an instant refill, so it’s still better than it was.
 

Beowulf

Son of The Answer Man
(He/Him)
Now in the game my attack is always at full power, which to me is an unambiguous improvement. I had hoped to stop running decreasing the charge as well, but this was a quick and simple hack and I’m not sure I can be bothered going back in, though it should actually be pretty easy now that I know what the correct code for a NOP is. Running out of stamina while running now just needs a momentary release of the run button to allow an instant refill, so it’s still better than it was.
...I didn't know I wanted this until you said it, and now I want this.
 

Lokii

(He/Him)
Staff member
Moderator
That's really cool! I hope it makes the game more palatable for you Yimothy. I'm kinda surprised that a hack that did this didn't already exist.
 

Yimothy

Red Plane
(he/him)
If you want to try it, open the ROM in a hex editor, go to FCBF8 in it, which should be 04, and change that byte to 00. I did it in a PAL ROM, so it’s possible the NTSC version is different in which case it won’t work. I’m gonna keep playing the game, and if I have no problems from it and I can be bothered I’ll put a patch up on ROMhacking.net. If I get really energised maybe I’ll redo the hack so stamina is never dropped instead of instantly refilling, but I like the simplicity of changing a single bit for the fix.
 

Kazin

did i do all of that?
(he/him)
Could.... Could that be done for Secret of Mana, too, I wonder?

Either way, that's amazing, Yimothy. Well done.
 

Yimothy

Red Plane
(he/him)
I had a look, there’s something called the Secret of Mana Turbo Patch which appears to have started out as pretty much my patch but for mana, but has undergone severe mission creep and become an omnibus patch of all the various existing SoM patches with an installer that lets you turn each one on or off.
 

Yimothy

Red Plane
(he/him)
I wound up going back into SoE to see if I could improve my hack. First I tried replacing the instructions to drop stamina (there are two for attacking, one for running) with no operation instructions. This worked perfectly for the boy, but when I switched to control the dog I found that if I hit attack it would attack repeatedly until I switched back to the boy. Not ideal. So I kept the no operation instruction for running, which seems to be working as intended, but went back to the drawing board on attacking. This time, rather than trying to stop stamina being set to zero or trying to have it instantly go back to full, I looked for times when the game was checking what the stamina was and tried to stop it knowing there was no stamina. I found a few points where it was loading the current stamina and comparing it to 04 00, including the one I’d previously used to have it instantly refill, and I started fiddling with them without worrying too much about what exactly they did. I found one that would stop the stamina counter ever showing if I made it compare to 00 00 instead of 04 00, but it would then have the charge attack bar show up but not be able to be used. But if I made that change and also made my previous instant stamina refill, then everything worked as I wanted it - no sign of stamina going down on attack, charge attack still working. It was looking perfect, so I made the changes to the ROM and continued my game. Once I got out of the dungeon I’d been in while I was testing though I realised that there was a small vertical rectangle sitting in the stamina charge area that had blended into the background of the dungeon but was pretty obvious once I got out. I think it’s the first two pixels of the bar that shows up while you’re charging a special attack.

From a me-playing-the-game point of view, I can deal with this just fine, but if I’m going to release a patch I gotta say it looks sloppy. Maybe I’ll do one that has the stamina drop but instantly refill on attack, and infinite running. That also looks kind of sloppy but I think less so than the little rectangles.
 

Felicia

Power is fleeting, love is eternal
(She/Her)
This isn't nearly as impressive as the other hacks shown in this thread, but recently I made my first hack translating an old Swedish game into English. It's a very simple text adventure for the Commodore 64, called Agent 999, perhaps most notable for being the earliest known published Swedish video game created by a woman, Kajsa Söderström. It's probably best appreciated by knowing the context of its creation (it was originally a type-in program from a Swedish computer magazine), which is why I've written about it on my English-language blog about Swedish games. The translation can be downloaded for emulation from the Internet Archive, or even played directly in the Archive's browser emulator.

z8UYY4v.png

As for the actual "hacking", it wasn't very difficult since the game was written i BASIC. So even with my limited programming knowledge it was no big challenge to go through the code (using the handy program "CBM .prg Studio"), finding the Swedish text and replacing it with English. The most challenging part was probably making sure that I translated all the possible text commands including directional inputs, playtesting the game to be sure that everything worked, but since the game is very short that didn't take much time to do. Still, it has sparked an interest in perhaps finding other similarly simple but interesting Swedish games to translate in the future.
 

Yimothy

Red Plane
(he/him)
I made my first hack translating an old Swedish game into English. It's a very simple text adventure for the Commodore 64, called Agent 999
I gave this a shot. There’s not a great deal to the game, but I enjoyed it, congrats on the translation! I got stung by a scorpion, shocked by a fence, eaten by a tiger, earned seven years bad luck, and got shot by an armed gangster twice. I figured out the fence by myself after far too long, but wound up looking at the walkthrough you posted to blow the safe - I hadn’t found the matches, so if I’d been more persistent I probably would have figured it out, though by that point I’d started over quite a few times and didn’t feel like going through it all too many more times. I feel a lot of the challenge was just finding the verbs - initially I was trying to “get” items instead of “take”ing them, and I repeatedly tried to use dynamite by dropping it and running away, which didn’t work. Once I had a grip on the parser it was quicker progress.

Thanks for making this game available in English.
 

Felicia

Power is fleeting, love is eternal
(She/Her)
Yeah, the limited parser is probably the main challenge of the game. The original Swedish version actually requires you to be even more precise, since all objects are definite nouns. So you can't write "take shovel", you need to specifically write "take the shovel". I decided to change this in my translation, since I thought the other limits of the parser were enough to deal with.

I believe there's only one place in the game where you have to use the "drop" command, and it's not required to beat the game. If you pick up the food from the fridge in the kitchen, you can drop it in the room with the tiger to avoid getting eaten. Relatedly, you can go to the desert and kill the scorpion when you've picked up the knife, but you don't get anything for doing so, which seems a little strange, almost as if that section of the game was intended to be bigger.
 

Yimothy

Red Plane
(he/him)
I had the food when I met the tiger but I didn’t think of dropping it, though it makes sense now you mention it. I tried to feed the tiger, give food to tiger, and I think I tried to use the knife on it too, all to no avail.
 

lincolnic

can stop, will stop
(he/him)
Most of my romhack experience is typically relegated to the kaizo thread, but over the past couple of days I played through a standard (i.e. not kaizo) Super Mario World romhack called A Plumber for All Seasons and wanted to talk about it a little bit. This hack was in development for almost a decade before finally seeing release about two years ago, and it's so incredibly polished you could almost believe it was an actual Nintendo release. There are 37 unique levels spread over four overworld maps and almost all of the sprites have been reworked by the creator. The hack is equal parts gorgeous and adorable (screenshots taken from the SMW Central link above):

83851.png


83864.png


83868.png


83859.png


If anyone's even remotely interested in SMW, I can't recommend this hack enough. I think the creator purposely tried to keep it approachable for casual players, so it's not difficult. Just a really fun and immensely creative hack. If you want to try it yourself, just make sure what whatever you're playing on can handle games that use the SA1 chip. If you're playing on an emulator, FXPAK Pro, Analogue Pocket, or a MiSTer you'll be fine, but the Super NT doesn't support SA1. (I played on the Pocket docked to my TV.)
 

Kazin

did i do all of that?
(he/him)
I'm not into kaizo stuff, but if that's approachable, I'm interested! Thanks for the heads up!
 

Beowulf

Son of The Answer Man
(He/Him)
Most of my romhack experience is typically relegated to the kaizo thread, but over the past couple of days I played through a standard (i.e. not kaizo) Super Mario World romhack called A Plumber for All Seasons and wanted to talk about it a little bit. This hack was in development for almost a decade before finally seeing release about two years ago, and it's so incredibly polished you could almost believe it was an actual Nintendo release. There are 37 unique levels spread over four overworld maps and almost all of the sprites have been reworked by the creator.
I just played all of the Autumn levels, and yeah, this is really well-done with a reasonable difficulty level. Good rec!
 
Top