Being a naive dumbass, that did not stop me, I looked through the source files and thought "why not just edit the voltage/frequency tables in all of the files?"
And it worked. Could've easily bricked the device, but it didn't. I believe I had the same feeling as you. Yay for ignorance, I guess :D
Well I looked at where it crashes, and simply nopped out the code where it crashes (it was a null pointer access I think) ... and we haven't noticed any weird effects of that so far ... one of these days I'll get around to making it an if (ptr) fix and see that happens then, but it is not this day!
Diffing the game.dat we use vs an "untouched" cracked one there are a few more differences than I expected (I at one point fixed the random version number and the 3:30 auto defeat if the game thinks you copied the game illegaly).
If you send me a mail to the email in my profile, I'll send you the binary!
This was in early 2001, I was an exchange student in Japan, and I'd bought a really cool gadget in Akihabara that almost nobody had heard about: a hardware MP3 player. For storage, it used MMCs (precursor of SD cards), affordable ones held 32MB. To get music onto those cards, I also bought a USB card reader.
And there I ran into problems: the PC in my dormitory room was a used Pentium Pro desktop I'd gotten very cheaply without an OS, and I'd installed Linux on it. But at that time, USB support on Linux was still rather spotty, and while the card reader was in principle supported as a mass storage device, the USB driver would reproducibly freeze up after a short time accessing it.
As mentioned above, my C skills were basically non-existing, but compiling your own kernel was at that time still a pretty common thing for Linux users to do, so I had some experience with that. And I was motivated. I enabled kernel debug output, and discovered that just before freezing up, the driver would report that it had received an event with a certain ID. I found the code that handled events, and I found the code that handled the problematic event. I looked at it and realized that I was many months of learning away from being able to fix it.
So instead, I deleted it. I simply made the driver ignore that type of event.
It worked. I could use the card reader to put MP3 files on the MMCs and listen to them on the player.
I felt a strange mixture of achievement and embarassment.