Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

alex_free

macrumors 65816
Original poster
Feb 24, 2020
1,106
2,366
Official Web Page | GitHub

SuperMario64GameSharkWriter is an open source 3-BSD licensed command line program written in C that writes GameShark/Xploder64 codes into a Super Mario 64 USA ROM (must be .z64/big endian format), and modifies the CRC check if neccesary (making this an alternative to the CHKSUM64 program) allowing edited ROMs to boot in emulators. Unlike the old CHKSUM64 program the ROM will work in Mupen64Plus and many other emulators.

SM64GSW performs Messiaen64's ROM hex editing methods written at Patching GameShark Codes and Getting Rid Of The Checksum Trap in software automatically so you don't have to hex edit your SM64 ROM manually. You want to use the ROM file most likely named 'Super_Mario_64__U_____.z64' with this software. The .z64 rom file type is big endian, which is required.


sm64gsw_wrote_codes_from_file_mac_os_x.png
 
This is very niche software, but I'm glad you are helping to keep development for PPC alive!
Seeing your own stuff work on platforms you find interesting always is fun! Writing stuff like this improves your programming skills as well, I just figured out how to make this work on Big Endian last night. So now I have builds of this for Windows 95-Windows 10, Linux x86, Linux x86_64, and PowerPC Mac OS X 10.3.9+. Making an idea a reality is always really cool, to write software that can just modify the N64 USA ROM file with existing cheat codes.
 
Last edited:
Seeing your own stuff work on platforms you find interesting always is fun! Writing stuff like this improves your programming skills as well, I just figured out how to make this work on Big Endian last night. So now I have builds of this for Windows 95-Windows 10, Linux x86, Linux x86_64, and PowerPC Mac OS X 10.3.9+. Making an idea a reality is always really cool, to write software that can just modify the N64 USA ROM file with existing cheat codes.
Alex, you're the PPC miracle worker and I for one really appreciate your tireless efforts that have provided so many solutions and options for our supposedly obsolete hardware. I might have a couple of specific gaming related requests for you once you've finished working on this. :)
 
Alex, you're the PPC miracle worker and I for one really appreciate your tireless efforts that have provided so many solutions and options for our supposedly obsolete hardware. I might have a couple of specific gaming related requests for you once you've finished working on this. :)
People love to idiocize new technologies such as the rust language and electron, but I for one find the C language much more interesting and rewarding to learn. I can write one file and it can work on ancient operating systems and modern ones with some effort and knowledge. I can’t recommend the K&R C language book enough. What are these requests by the way? I always like a challenge.
 
  • Like
Reactions: TheShortTimer
People love to idiocize new technologies such as the rust language and electron, but I for one find the C language much more interesting and rewarding to learn. I can write one file and it can work on ancient operating systems and modern ones with some effort and knowledge. I can’t recommend the K&R C language book enough.

I've been interested in C for a very long time. After I've finally finished my doctorate, that's something I'd like to explore and play around with. :)

What are these requests by the way? I always like a challenge.

Ok! :D Last year I floated the possibility that we could recompile the Intel based Sega Supermodel emulator to work on PPC Macs because the Supermodel hardware is PPC based in the first place. It would be a walk in the park for a G5 to pull off the emulation. Unfortunately I lack the know how that's required to do this so it didn't progress any further than discussions.

#2 was the suggestion of an SDL MAME PPC version for Panther and Tiger that can use the latest ROM releases.

If we're ever lucky enough that you'd get around to these, I'd happily help out with testing etc. :)
 
  • Like
Reactions: alex_free
I've been interested in C for a very long time. After I've finally finished my doctorate, that's something I'd like to explore and play around with. :)



Ok! :D Last year I floated the possibility that we could recompile the Intel based Sega Supermodel emulator to work on PPC Macs because the Supermodel hardware is PPC based in the first place. It would be a walk in the park for a G5 to pull off the emulation. Unfortunately I lack the know how that's required to do this so it didn't progress any further than discussions.

#2 was the suggestion of an SDL MAME PPC version for Panther and Tiger that can use the latest ROM releases.

If we're ever lucky enough that you'd get around to these, I'd happily help out with testing etc. :)
#1 is way out of my league. The emulator translates x86 to a PowerPC target which certainly has custom instructions for it. Theoretically one could rewrite that but you mine as well rewrite the whole emulator at that point. The OpenGL requirement is actually possible, but only on Leopard and for very few Macs since it’s OpenGL 2.1 (my iBook would meet the requirements tho). Also troubling is it needs a very fast machine by 2011 standards.

#2, once I finish PPCMC 7.2.2 I’m gonna setup a new build environment and see how far Panther SDL2 can take us...
 
Also troubling is it needs a very fast machine by 2011 standards.

Does that mean that the emulator has been programmed inefficiently?

#2, once I finish PPCMC 7.2.2 I’m gonna setup a new build environment and see how far Panther SDL2 can take us...

Wonderful, thanks so much! :)

The PPC Mac versions of MAME that work under Panther and Tiger are way out of date: many titles have since been added or have received improved emulation by the MAME development team in subsequent updates but they're not available to Panther and Tiger users, which is a shame. Also the GUIs on MacMAME and MAME OS X whilst helpful for novices, also expend CPU cycles that could be used for the emulation and game performance instead.
 
Does that mean that the emulator has been programmed inefficiently?



Wonderful, thanks so much! :)

The PPC Mac versions of MAME that work under Panther and Tiger are way out of date: many titles have since been added or have received improved emulation by the MAME development team in subsequent updates but they're not available to Panther and Tiger users, which is a shame. Also the GUIs on MacMAME and MAME OS X whilst helpful for novices, also expend CPU cycles that could be used for the emulation and game performance instead.
Not at all inefficient, emulation’s general rule is you need 10x the performance for something playable. Of course there are notable exemptions like the first n64 emulator ultrahle. They had access to leaked documentation (rumors from the 90s were that when SGI went out of business someone leaked a ton of info on how the N64 worked, I have that leak on one of my HDDs downloaded from archive.org).
According to the supermodel site there really is no such info and everything was purely revered by hand. One would need to reverse the x86 core itself to be modern PowerPC, I think it’s theoretically possible you could get good performance with that but it would take so much work and a deep understanding of everything involved.

As I understand it there are some Leopard builds of MAME that are more modern then what’s available for older OS X, and I think Panther_SDL2 and GCC 7 can get us there.
 
  • Like
Reactions: TheShortTimer
Alex, I'm honoured that you're so thoughtful that took the time out to let me know. I appreciate that, it underscores what a great community we have here. Thanks, that's wonderful - take your time, I'll wait. :)
Thanks! So I’ve done a bit more research about the latest MAME version and it appears that GCC 7.2 or later is required and SDL 2.0.4 or later is recommend as earlier versions of SDL are quote “buggy”. Well GCC 7.4.0 blows the first requirement out of the water, I’ll have to see how buggy my SDL 2.0.3 based Panther_SDL2 is! First I’ll setup a new build environment and go from that.

Unfortuantely it does look like some other stuff may be required and I’m not sure if I can get the absolute latest version working but for sure a significant upgrade in the very least should be possible.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.