Romhacks running on actual hardware
Romhacks running on actual hardware
Could someone reccommend some hacks to play which would work on an actual cart? Would any of the VIPs fit this criteria?
- This Eye o' Mine
- Posts: 199
- Joined: 5 years ago
- Pronouns: Nah, I'm good
- Location: Ooh, yes please
Re: Romhacks running on actual hardware
The main issue with ROM hacks breaking is the old AddMusic tools made by Carol and Romi relying on inaccurate emulation to allow them to upload music into memory where it really shouldn't go, causing music data in RAM to often be overwritten during gameplay when played on more accurate emulators and actual hardware. There's also a couple other similar things that can break gameplay, like old custom sprite tools causing stuff to not be loaded properly when played on an actual SNES.
Any romhacks made in the last couple of years (say since about 2012, 2013?) should be using hardware accurate tools for inserting custom stuff, and thus should work, especially if you find them on SMWC. The VIP 4 patch that's in the LP thread right now will work since it's been fixed, though I'd suggest waiting for the next update which will fix some graphical issues in the end game that happen on actual hardware. VIP 1 and 2 also shouldn't break due to not having any custom music, though I can't give any guarantees on that. VIP 3 and 5 definitely will screw up due to their music. Finally, the version of ASMT that's up on SMWC now was fixed by Maks, so it should work too.
I'm actually part of a team that's planning to fix (and translate) more hacks in the future to work on real hardware, with the VIPs being up there on the priority list. You might want to keep an eye out for our thread once it goes up. Also check out the patches in this guy's thread, which I haven't tried yet personally, but which have apparently been tested to work on the accurate emulator BSNES, and therefore there's no reason they shouldn't work on real hardware: viewtopic.php?f=11&t=17793
Any romhacks made in the last couple of years (say since about 2012, 2013?) should be using hardware accurate tools for inserting custom stuff, and thus should work, especially if you find them on SMWC. The VIP 4 patch that's in the LP thread right now will work since it's been fixed, though I'd suggest waiting for the next update which will fix some graphical issues in the end game that happen on actual hardware. VIP 1 and 2 also shouldn't break due to not having any custom music, though I can't give any guarantees on that. VIP 3 and 5 definitely will screw up due to their music. Finally, the version of ASMT that's up on SMWC now was fixed by Maks, so it should work too.
I'm actually part of a team that's planning to fix (and translate) more hacks in the future to work on real hardware, with the VIPs being up there on the priority list. You might want to keep an eye out for our thread once it goes up. Also check out the patches in this guy's thread, which I haven't tried yet personally, but which have apparently been tested to work on the accurate emulator BSNES, and therefore there's no reason they shouldn't work on real hardware: viewtopic.php?f=11&t=17793
Re: Romhacks running on actual hardware
I assume JUMP would work on an actual console? That in particular is something I would like to try out.
- This Eye o' Mine
- Posts: 199
- Joined: 5 years ago
- Pronouns: Nah, I'm good
- Location: Ooh, yes please
Re: Romhacks running on actual hardware
JUMP is a fairly modern hack, and its page on SMWC doesn't have any tags to note that it would break, so I'd say it's safe to assume it will work.
Re: Romhacks running on actual hardware
How do you guys tell whether a romhack can be played on a real console? The most obvious way I can think of is testing it on the most accurate emulator around (or better yet, a real console) but surely you don't visit each room of each level to make sure it's working. Do you look for signs that those specific tools you mention were used? Do you have a fairly standard list of bugs, or do you catch some really odd ones? Thanks!
Oui oui. Je suis très jambon.
- aterraformer
- Posts: 330
- Joined: 12 years ago
- Location: The Astral
Re: Romhacks running on actual hardware
You can look on the smwc page and sometimes get lucky, it'll say doesn't work on accurate emulators or nothing (and be correct). If you try the hack in higan, bizhawk, snes9x v1.53+, or console, usually it will crash within a few levels if it will. Cave levels tend to have echo so they are your best bet. Any hack on or before about 2013 and has custom music has a high chance of being broken but there are some exceptions. Hacks with all vanilla music tend to work though, unless there's a different kind of problem, which is rare to hacks like Super Mario Odyssey (unsupported chip) or SMW Returns (old sprite tool, maybe?).
Re: Romhacks running on actual hardware
Very interesting stuff! And how do you fix them? Do you have any special tools to automate the process?
Oui oui. Je suis très jambon.
- This Eye o' Mine
- Posts: 199
- Joined: 5 years ago
- Pronouns: Nah, I'm good
- Location: Ooh, yes please
Re: Romhacks running on actual hardware
A basic check is just looking at the SMWC page for it and checking if any curator has put a 'fixme' tag on it, typically with a list of the main issues (though in most cases it only tends to list broken AddMusic as a compatibility issue, since obviously once that happens you won't be able to play any further).
The thing that in most cases completely breaks old hacks is old AddMusic tools, and there's ways of detecting that these were used, as well as methods to fix them. There's a bunch of other things that can go wrong though, with one of the more prominent ones I've personally encountered being old SpriteTool spawning missingno style enemies due to the assumptions it makes about the state of RAM (which a real console handles differently from ZSNES), and improper assumptions about how multiplication and division instructions work resulting in custom code that uses them getting the wrong result, often leading (for example) to custom sprite projectiles that are meant to be aimed at the player either not moving at all or flying off in the wrong direction. Fixing hacks up does involve doing at least one full run through of it on BSNES to find these unanticipated bugs (after either fixing the music or temporarily preventing it from loading in the first place so that it won't halt progress), and then finding and analysing the bit of code responsible for them.
We do have a basic list of the most common things that go wrong, so when they're encountered we tend to know what to look for, but every now and then there's something that comes completely out of left field, taking a more in-depth look.
Of course, even if we didn't go through the hack to find all these issues, it's good form to do a full run through after fixing them just to make sure nothing has broken as a result anyway. Stuff can catch you off-guard like that.
The thing that in most cases completely breaks old hacks is old AddMusic tools, and there's ways of detecting that these were used, as well as methods to fix them. There's a bunch of other things that can go wrong though, with one of the more prominent ones I've personally encountered being old SpriteTool spawning missingno style enemies due to the assumptions it makes about the state of RAM (which a real console handles differently from ZSNES), and improper assumptions about how multiplication and division instructions work resulting in custom code that uses them getting the wrong result, often leading (for example) to custom sprite projectiles that are meant to be aimed at the player either not moving at all or flying off in the wrong direction. Fixing hacks up does involve doing at least one full run through of it on BSNES to find these unanticipated bugs (after either fixing the music or temporarily preventing it from loading in the first place so that it won't halt progress), and then finding and analysing the bit of code responsible for them.
We do have a basic list of the most common things that go wrong, so when they're encountered we tend to know what to look for, but every now and then there's something that comes completely out of left field, taking a more in-depth look.
Of course, even if we didn't go through the hack to find all these issues, it's good form to do a full run through after fixing them just to make sure nothing has broken as a result anyway. Stuff can catch you off-guard like that.
- This Eye o' Mine
- Posts: 199
- Joined: 5 years ago
- Pronouns: Nah, I'm good
- Location: Ooh, yes please
Re: Romhacks running on actual hardware
I haven't tried this method myself, but some of the hack fixes that were done so far were apparently done by either finding the music resources used originally, or extracting them with programs that turns the music code in the ROM into the more higher-level abstract stuff that AddMusic tools use, so that they can then be reinserted with a modern AddMusic tool.
However, this doesn't always work that well, since the original resources aren't always easy to find, and apparently some of the tools mentioned don't produce the most accurate results (I can't really comment on that too much), so VIP 4 was fixed using a different method. Maks laboriously went through all of the music code and copied it into ASM format, so that it could then be reinserted with the load address of the music changed to no longer conflict with echo data. The advantage to this is that all the resources are already in the rom, and there's no tools involved that might alter the data without you knowing; the original AddMusic code setup and music data is preserved (besides load address and pointers), so you know for sure the result will be authentic. Downside is that copying the data by hand like that takes a lot of time and work, and it tends to require a bit more of an understanding of how and what stuff is loaded where into Audio RAM, so that you know where you can redirect stuff. In order to help with the first issue we've recently been working on some software that automates the process of copying down the music data into ASM. It's still under development, and it's still got its share of bugs, but with some manual working around those it's given enough output so far to help fix a couple of hacks with it, which will be going up on the forums just as soon as we've tested them out.
Re: Romhacks running on actual hardware
Thanks for the detailed replies, it sounds like a very cool project. Of course it's a shame that it needs to be done in the first place. Maybe it would be easier to make modified consoles that behave like ZSNES and then ship them out to people who want to play these romhacks
Oui oui. Je suis très jambon.
Re: Romhacks running on actual hardware
Here's another question: VLDC9, hardware compat or not? I expect due to the nature as a contest compilation perhaps it isn't, but would love to be wrong.
- BobisOnlyBob
- Mythical Quadruped
- Posts: 1793
- Joined: 11 years ago
- Location: the world is no longer a place
Re: Romhacks running on actual hardware
Oh god please say yes I need to hear this theme coming from actual SNES hardware if possible
- This Eye o' Mine
- Posts: 199
- Joined: 5 years ago
- Pronouns: Nah, I'm good
- Location: Ooh, yes please
Re: Romhacks running on actual hardware
Without having tested it myself, I'm going to say the answer is likely yes, for a couple of reasons:
1. It's run by SMWC, which for about quite a number of years now has been extremely adamant about stuff getting uploaded to the site being able to run on accurate emulators/consoles.
2. It's a vanilla contest, meaning you're only allowed to use what Lunar Magic lets you do, and so there's no opportunity for outside ASM breaking stuff (unless a level just flat-out breaks the vanilla rule, which I vaguely recall happening once?).
3. The one non-vanilla thing that is allowed, the music, is nowadays inserted with tools that take the limitations of the SNES console into account. Tools that upload music data into the echo buffer aren't even available on SMWC in any way shape or form anymore (because archiving stuff for future reference is bad apparently).
4. I think raocow in his LP used Snes9x, which is I think accurate enough to cause hacks with music issues to break, and his LP went fine. Though I'm not sure what version of Snes9x raocow was using (older versions would have no problem with broken music).
That said, there's still ways conceivable that would break the experience on an actual SNES. Lax curating or oversights could let some of the more obscure hardware compatibility bugs go through (I don't know how the process of compiling everything into one hack went), it's still possible for music to break in certain circumstances when uploaded even with modern tools, etc. But without having done any actual testing myself, I would say it's still really unlikely to have any game-crashing issues.
1. It's run by SMWC, which for about quite a number of years now has been extremely adamant about stuff getting uploaded to the site being able to run on accurate emulators/consoles.
2. It's a vanilla contest, meaning you're only allowed to use what Lunar Magic lets you do, and so there's no opportunity for outside ASM breaking stuff (unless a level just flat-out breaks the vanilla rule, which I vaguely recall happening once?).
3. The one non-vanilla thing that is allowed, the music, is nowadays inserted with tools that take the limitations of the SNES console into account. Tools that upload music data into the echo buffer aren't even available on SMWC in any way shape or form anymore (because archiving stuff for future reference is bad apparently).
4. I think raocow in his LP used Snes9x, which is I think accurate enough to cause hacks with music issues to break, and his LP went fine. Though I'm not sure what version of Snes9x raocow was using (older versions would have no problem with broken music).
That said, there's still ways conceivable that would break the experience on an actual SNES. Lax curating or oversights could let some of the more obscure hardware compatibility bugs go through (I don't know how the process of compiling everything into one hack went), it's still possible for music to break in certain circumstances when uploaded even with modern tools, etc. But without having done any actual testing myself, I would say it's still really unlikely to have any game-crashing issues.