tomman |
Posted on 19-08-13, 16:55 (revision 3)
|
Dinosaur
Post: #482 of 1315 Since: 10-30-18 Last post: 58 days Last view: 17 hours |
Recently I've got into the wonderful world of Super Mario 64 ROM hacks - the scene has really moved forward since I first tried with "The Missing Stars" (the very first complete ROM hack, released a decade ago!). New items, bosses, and amazing courses that give a new breath of life to this 3D platformer pioneer. Heck, they even tried to fix the camera! Fast forward to the year 2019. Emudevs are now taking accuracy seriously. Mupen64plus is still progressing in this front (with the help of angrylion's RDP and the cxd4 RSP LLE plugins), and we now also have CEN64, whose goal is perfect LLE emulation (it's nowhere near yet, but MarathonMan's work is nothing short of impressive). And if you absolutely care about running your RAWMz on The Real Thing™, we now have very user friendly and (somewhat) affordable flashcarts (Everdrive 64 and 64drive), which leave the old Bung carts and clunky copiers eating dust. If you're a homebrew dev and/or ROM hacker, these are great times to be alive and kicking in the scene. But then, it seems that the SM64 ROM hacking community (which for some reason mostly congregates at SMW Central) didn't got the memo and refuse to leave their own ZSNES platform. Most hacks are developed for some pirate N64 knockoff known as "Project 64 v1.x", because they will not run on anything but that emulator. Not on real hardware, not on CEN64, and not even on Mupen64plus (mostly newer versions after the accuracy improvements, but a bunch of older hacks will not run on older, less accurate versions). Very few hacks are actually developed for the N64 - when you open the readme files that ship with hacks and find the chapter on how to setup Project64 to get their hacks to run, you know you're in for a rough time if you happen to be not on a x86 PC running Windows (remember: PJ64 is still Windows-only, even after its revival). ROM hackers usually blame the toolchain: most of the hacking tools of choice (like the famous SM64 Editor) are made by a sole individual that is known to not give importance to compatibility with anything that is not PJ64. In fact, "hardware compatibility" seems to be taboo on places like SMW Central (the usual excuse is something down the lines of "you're getting this for free, stop bitching, you self-entitled brat!", which is a double edged sword: it reminds you that ROM hacks are copyright-infriging works that come with ABSOLUTELY NO WARRANTY, but also means that you, the ROM hacker, are intentionally narrowing down your possible audience, which is not good if you actually want to improve your skills, for fun or profit). Impressive new hacks are still being released in this very 2019. For example, anything done by BroDute's Star Revenge series (from custom NPCs to Touhou-themed hacks, this guy does some seriously good hacks that deserve praise). Somari Dash (where the illegal stepchild of Sonic and Mario gas it up its way to victory - forget about Goombas and Thwomps), SM64 Openworld Quest (a remix of vanilla SM64 where you warp between worlds instead of using the castle for that, a common theme across SM64 hacks), Ztar Attack Rebooted (a well-balanced hack with plenty of new gimmicks, and that bastard "burn your ass 'till victory" Of all SM64 hacks I've tried so far, the only one that actually tries to target hardware is Super Mario and the Cursed Castles (another great hack I can recommend although the first King Boo boss is a PITA far bigger than the last Bowser course on vanilla SM64), and this one was just posted online a few weeks ago) - at least it's the only one that I managed to get running on CEN64 and a recently-built Mupen64plus 2.5.9 from Git (I'm sure there are other hacks out there that have little to no compatibility issues, but they're a tiny minority as of today, sadly). This also means that I now have to keep two separate Mupen64plus setups for gaming: - The latest shiny (complete with GLideN64 for best HLE video compatibility and looks) for commercial ROMs and properly coded homebrew/hacks. - An old, outdated, and buggy build, solely intended for emulating "PJ64 v1.x" ROMs. Right now I'm relying on Debian Stretch stock packages (v2.5.0) for the latter, but the day I take the warp pipe to Buster, most likely it means I'll have to figure out how to build an outdated emulator on a recent distro. Not my idea of fun. From reading old posts on the former bBoard incarnations, I can understand that the ZSNES "console" was (and still is?) a huge problem on the SMW hacking scene, and looks like the SM64 scene also has the same disease, with not much hope of improving in the short period (I can only hope that when the decompiling project ever gets finished, this gives ROM hackers and hacking tool authors a better understanding on how to better target the real thing, instead of sticking to a emulator that sooner than later will no longer work on PCs once MS drops the axe over Win32, except maybe through virtualization solutions that are usually ill-suited for most gaming workloads. Even PJ64 will have to get its shit together someday and start walking the road towards accuracy, if that doesn't have happened yet - I don't know as I'm not following that project due to its Windows-only nature). UPDATE: Oh, PJ64 is now opensource, and it's still alive, now at version 2.3.2 - For comparison, the Sonic ROM hacking scene didn't suffered of this at a large scale, because there has been no emulator monopoly in the last decade and a half. Sure, every now and then you will find a hack that crashes and burn on console (like the recent 32X hacks I reviewed on my 32X crashtest that will work on emulators but are known to not boot on hardware), but so far I've yet to see a hack that won't run on anything but Gens, for example. Hardware compatibility seems to be a given nowadays, and we have quite a few accuracy-focused emulators readily available (BlastEm, Genesis Plus, Exodus, even good ol' Kega Fusion was the gold standard of accuracy until the '10s). There has been no risks of monoculture in the Genesis/MegaDrive scene (or in the Sega scene in general, which basically restricts to the 16-bit generation as SMS/GG hacks are very rare, and Saturn/DC mods are virtually nonexistant considering the difficulties on emulating those two 32-bit platforms). Dunno why the Nintendo hacking scenes are very prone to this undesirable outcome (people turning broken emulators into platforms de facto) If anything, I've seen efforts of a couple individuals for "hacking the hacks" to improve compatibility, but this is only a band-aid at most (if the hack has used custom code additions, chances are it is unfixable by anybody but its original author) Preemptive answer: No sureanem, I am not going to emulate an emulator! Licensed Pirate® since 2006, 100% Buttcoin™-free, enemy of All Things JavaScript™ |
Nicholas Steel |
Posted on 19-08-14, 06:38 (revision 7)
|
Post: #244 of 426
Since: 10-30-18 Last post: 499 days Last view: 14 days |
Mupen64 Plus and GLideN64 video plugin have both been a god send for N64 emulation. Mupen64+ because its accuracy is great & also allows it to use sane defaults for unknown games, allowing hacks like Zelda: Ocarina of Time Randomizer to work without having to do any shenanigans to load game-specific-hacks from a emulator database (the resulting files are also compatible with an actual N64!). GLideN64 is able to accurately recreate many/all(?) visual effects that N64 games used which is pretty friggen amazing to see in action, though performance can be pretty abysmal for some games (Goldeneye anyone? Especially when you get the Night Vision goggles). I'm disappointed there's no N64 music plugin for media players that can correctly play the music from 1080 snowboarding. AMD Ryzen 3700X | MSI Gamer Geforce 1070Ti 8GB | 16GB 3600MHz DDR4 RAM | ASUS Crosshair VIII Hero (WiFi) Motherboard | Windows 10 x64 |
CaptainJistuce |
Posted on 19-08-14, 10:00 (revision 1)
|
Custom title here
Post: #636 of 1164 Since: 10-30-18 Last post: 63 days Last view: 8 hours |
In fairness to SMWCentral, last I heard the Super Nintendo hackers were making a concerted effort to get people to stop making ZNES-only hacks and start testing against something resembling actual Super Nintendo behavior. As I recall, there was one specific tool responsible for most of the issues, and it wasn't super-important, just super-convenient. --- In UTF-16, where available. --- |
tomman |
Posted on 19-08-14, 11:26
|
Dinosaur
Post: #483 of 1315 Since: 10-30-18 Last post: 58 days Last view: 17 hours |
Oh, it seems Debian Buster still has the ancient broken ROM friendly Mupen64Plus version I'm using currently on Stretch. But then, upstream didn't had released a new version until this year. 2.5.9 didn't made in time for Debian, but it's now on Experimental, if you're running Testing/Sid. I've heard that this "fuck the hardware" is only specific to the SM64 hacking scene, and it's less of a concern in other N64 game modding places (I've seen Goldeneye and Zelda cited) - how true is that? Licensed Pirate® since 2006, 100% Buttcoin™-free, enemy of All Things JavaScript™ |
Kakashi |
Posted on 19-08-14, 12:32
|
Post: #183 of 210 Since: 10-29-18 Last post: 1876 days Last view: 1848 days |
When I get home from vacation, I intend to test my Adaptoid out with a few emulators and plugins in Windows (old and new) and Linux. I wanna see if I can get Memory Pack transfers working so I can go between a real console and and emulator before purchasing an Everdrive. (I picked up a console for 100 yen because the reset button is stuck....morons were standing behind me in line laughing and exclaiming, "It's junk!" Joke's on them...Also, the staff at the store (which is the one that used to have thousands of games and consoles and now just has hundreds of Nintendo games and a smattering of consoles) gave them death stares) |
Nicholas Steel |
Posted on 19-08-14, 16:37 (revision 3)
|
Post: #246 of 426
Since: 10-30-18 Last post: 499 days Last view: 14 days |
Posted by CaptainJistuceIt was old versions of this tool https://www.smwcentral.net/?p=section&a=details&id=17546 because it overwrote the audio echo data or some such which for ZSNES is fine and for anything remotely like a real SNES will wreck havoc. (Snes9x has an option to emulate the ZSNES behaviour) AMD Ryzen 3700X | MSI Gamer Geforce 1070Ti 8GB | 16GB 3600MHz DDR4 RAM | ASUS Crosshair VIII Hero (WiFi) Motherboard | Windows 10 x64 |
tomman |
Posted on 19-08-15, 11:28 (revision 2)
|
Dinosaur
Post: #484 of 1315 Since: 10-30-18 Last post: 58 days Last view: 17 hours |
In the case of SM64 hacks, from what I've been able to understand (I'm no N64 hacker, so feel free to expand/correct this), the two most usual pitfalls that cause hacks to not run on hardware (or less broken emulators) are the following: 1) Misaligned PI DMA transfers of MIO0 compressed data (that is, gamepak™ -> RDRAM): The real hardware requires PI DMA transfers to be byte aligned (2-byte aligned for cart, 8-byte aligned for RDRAM) - if your data is misaligned, the console will crash. Some retail games are specifically sensitive to this: if you check the pull request for Mupen64plus to fix DMA alignment, it improved compatibility with games such as Taz Express, at the cost of breaking nearly every single SM64 romhack because the developers of hacking tools neglected to obey a hardware restriction. Only those ROM hackers that have been careful to ensure proper ROM alignment of their MIO0 chunks (where the SM64 engine stores pretty much every single game asset, so you get a nice blank screen if the engine fails to load any of those) will actually stand a chance of getting their game to work on anything other than PJ64 1.x. 2) Invalid/malformed RCP commands: This one is on the video plugin (in the case of HLE emulators). Older plugins (like Jabo, Rice, and Glide64) were pretty much "anything goes as long as it can draw polygons to display". Modern HLE video plugins (GLideN64) and anything doing proper RCP/RSP LLE (Angrylion+cxd4, CEN64) are more strict, and will do exactly what the real hardware does: display garbage or nothing at all. This is also why even if you enable misaligned DMA transfers on recent PJ64 versions, you're still forced to use an older (and inaccurate/broken) video plugin. A possible fix here is to hexedit the ROM to replace the invalid commands with proper, well-formed commands (aka the "setcombiner trick"), and while this is enough to get some hacks working, you still have to deal with possible graphic issues later on. Oh, even if you fix that, you still gotta deal with hacks exceeding polygon limits too, which at best will slow dwon massively, and at worst will crash. The PJ64 guys are having a hard time trying to combat their own "ZNES" situation, unfortunately for them. Licensed Pirate® since 2006, 100% Buttcoin™-free, enemy of All Things JavaScript™ |
Duck Penis |
Posted on 19-08-15, 17:24 (revision 1)
|
Stirrer of Shit
Post: #576 of 717 Since: 01-26-19 Last post: 1763 days Last view: 1761 days |
Polygon limits feel like kind of a different animal. They're not doing anything wrong, are they? They're just writing games which are too slow to play on console, but they're perfectly standards-compliant. By that measure, Perfect Dark is broken too. So what they could do is do a hack: allow people to enable the standards-violating features. Or perhaps you should just draw a line in the sand and say that you're making a N64 emulator and not a N64 emulator emulator, and tell people to go run PJ64 1.6 if they want to run ROMhacks. EDIT: oh boy am I bad at reading There was a certain photograph about which you had a hallucination. You believed that you had actually held it in your hands. It was a photograph something like this. |
DonJon |
Posted on 19-08-16, 09:48 (revision 1)
|
Post: #79 of 88 Since: 11-04-18 Last post: 1882 days Last view: 1882 days |
Posted by tomman yep, screw anything that only works on old outdated emulators seriously i don't have any ways to play hacks on hardware, though still have an old n64 console, still running fine after all this time, but i've read "Super Mario 74" plays fine on hardware https://www.youtube.com/watch?v=4A_MrGiugq8 |
tomman |
Posted on 19-08-24, 20:37
|
Dinosaur
Post: #508 of 1315 Since: 10-30-18 Last post: 58 days Last view: 17 hours |
This site (literally the first Google Search result for "super mario 64 rom hacks hardware compatibility") nicely recaps what's wrong with all those broken SM64 hacks that won't work on console (or less broken emulators), alongside with solutions: https://hack64.net/wiki/doku.php?id=super_mario_64:console_compatibility Most of them are easy fixes, so someone could come up with an automated patcher. However, there is one (the SetCombine one) that requires some manual intervention, and therefore should be performed by the ROM hacker him/herself. Licensed Pirate® since 2006, 100% Buttcoin™-free, enemy of All Things JavaScript™ |
Nicholas Steel |
Posted on 19-08-25, 15:16
|
Post: #257 of 426
Since: 10-30-18 Last post: 499 days Last view: 14 days |
Nice article Tomman. AMD Ryzen 3700X | MSI Gamer Geforce 1070Ti 8GB | 16GB 3600MHz DDR4 RAM | ASUS Crosshair VIII Hero (WiFi) Motherboard | Windows 10 x64 |
tomman |
Posted on 19-08-25, 16:28 (revision 1)
|
Dinosaur
Post: #511 of 1315 Since: 10-30-18 Last post: 58 days Last view: 17 hours |
...too bad the average ROM hacker answer to all this headache is something like the following:It's not worth putting the time and effort into updating all of our tools and figuring out how to run hacks on console, likely adding new limitations Good luck having people run your hacks in 2031, when there are no computers capable to run Project64 1.x outside emulation, and all emus the average user can find are -God forbid- accuracy-focused projects! But then, it's August 2019, and people are still disregarding those concerns because "hardware is expensive" (it isn't unless you live in a dumpster like my country) and "you're getting this for free so don't bitch" (the fact noone can run your game is a proof that even "free" can be expensive), so I guess that there is a chance for the SM64 ROM hacking scene to implode and start over... Licensed Pirate® since 2006, 100% Buttcoin™-free, enemy of All Things JavaScript™ |
Duck Penis |
Posted on 19-08-25, 17:09
|
Stirrer of Shit
Post: #605 of 717 Since: 01-26-19 Last post: 1763 days Last view: 1761 days |
Well, if their ROM hacks are any good, people will find it worth to run Project64 in an emulator to keep playing them. If not, then no loss. Free market will fix it. As for the SetCombine hack, isn't that nearly trivial to fix too? Ugly, but it should work: 1) load game in an emulator 2) use cheat codes to load each level 3) intercept 0xB7 (F3D_SETGEOMETRYMODE) commands, log the level and correct geometry mode to file 4) go through level display lists, s/old geometry mode/correct geometry mode/g A skilled developer could perhaps even do it in vitro with static analysis. There was a certain photograph about which you had a hallucination. You believed that you had actually held it in your hands. It was a photograph something like this. |
KingMike |
Posted on 19-09-11, 14:26
|
Post: #29 of 36
Since: 12-21-18 Last post: 1207 days Last view: 115 days |
Someone on RHDN making a SNES checksum calculator using 8 threads because existing ones "are too slow". One thing to note is the author adds header support. Why header support, I wonder? Oh yeah, probably because of Lunar Magic. I'm guessing Lunar Magic still requires headered ROMs. In 2019. Is that correct? Headers being data added by game copiers. Game Copiers which allowed games to be loaded to the device using either a parallel port or floppy disks. Parallel ports and floppy drives both have not been produced on new PCs in over 10 years. So why again is there an argument for headered SNES ROMs? |
Nicholas Steel |
Posted on 19-09-11, 17:41
|
Post: #272 of 426
Since: 10-30-18 Last post: 499 days Last view: 14 days |
Pretty sure Lunar Magic now supports headerless ROM's. Took a long time for that to happen though, way too long. AMD Ryzen 3700X | MSI Gamer Geforce 1070Ti 8GB | 16GB 3600MHz DDR4 RAM | ASUS Crosshair VIII Hero (WiFi) Motherboard | Windows 10 x64 |
Kawaoneechan |
Posted on 19-09-11, 18:38
|
The Devilfucking Dickens
Post: #392 of 599 Since: 10-29-18 Last post: 195 days Last view: 4 hours |
Posted by KingMike Posted by Foone Turing |
tomman |
Posted on 19-09-11, 19:10
|
Dinosaur
Post: #536 of 1315 Since: 10-30-18 Last post: 58 days Last view: 17 hours |
We're in the era of affordable (and very reliable) flashcarts that use solid state storage. And if you want to dump your ROMs, there are plenty of more modern ways, from Retrode to console->PC link cables that work over good ol' USB. Who in the hell still uses cart copiers in 2019?! Licensed Pirate® since 2006, 100% Buttcoin™-free, enemy of All Things JavaScript™ |
NTI |
Posted on 19-09-11, 19:34
|
Post: #25 of 40 Since: 10-29-18 Last post: 711 days Last view: 711 days |
Posted by Nicholas Steel Not really. Lunar Magic DOES accept to load an unheadered ROM, but it asks to add a FuSoYa header right after so the program can do its magic. Header Magic is still working on newer LM versions, though. |
Kawaoneechan |
Posted on 19-09-11, 19:48
|
Ensemble Darkpony
Post: #393 of 599 Since: 10-29-18 Last post: 195 days Last view: 4 hours |
Posted by NTIOhohohoh, I see what you did there. |
wareya |
Posted on 19-09-12, 11:35
|
Post: #80 of 100 Since: 10-30-18 Last post: 1782 days Last view: 1347 days |
On a completely unrelated note, I recently realized that bizhawk (yes) is the simplest way to get a working, up-to-date n64 emulation package. Jeez. |