The Infinite Loop That Wasn't: A Holy Grail Bug Story - mGBA
https://mgba.io/2020/01/25/infinite-loop-holy-grail/
january 2020 ‧ IFTTT Pocket ‧ open in karakeep
Karakeep has no AI summary for this page yet. summarize now
Once upon a time there was a game for the GBA by the name of Hello Kitty Collection: Miracle Fashion Maker. It was a cutesy game based on the famous Sanrio Hello Kitty franchise, developed by Access. But hidden beneath the surface of the seemingly innocuous title was an insidious problem. Somehow, this simple game just did not boot in any GBA emulator. This alone was enough to qualify it as a Holy Grail bug. As with all Holy Grail bugs the bug itself was absolutely baffling. Here the explanation was simple: sometime during the game’s startup sequence, it enters a loop that can never exit due to expecting a specific value reading out of memory that does not exist. While many games have similar bugs, such as the intro sequence in the high-profile game The Legend of Zelda: The Minish Cap, those rely on a specific behavior from reading invalid memory addresses. But this loop seemed to defy that behavior. And yet, it works on actual hardware. Moreover, this same bug also occurs in when loading a save in Sonic Pinball Party after a cold boot. Could the expectation of these invalid memory accesses be wrong somehow? But how?
*bookmark *download *tobuy *tofollow *toread *wishlist 2d 360 3d 3g abandonware accounting actionscript air airplay algorithm android animation api app apple appstore arcade arduino art article asm assembler audio automation baby backlight backup bbs berlin bitcoin bivert blipfm blipster blog blu-ray bluetooth book bookmark bootcamp boxee brasil brazil bruno bug bugtracking buildapc business c c# c++ carro casa cell chart chiptune cliq cocoa cocoa-touch code collection component controller cooking core-graphics crt css curso database ddwrt debug demoscene design deutschland dev developer development diy dj dns doc dos dosbox dotnet download dreamcast drink drm ds dvb-c dvd ebook electronics emu emudev emulator engine example facebook famicom feedbin firmware fix flash flashcart flex fluorine forum framework freeware gadget game gameboy gameboy-pocket gamedesign gamedev gamegear games gba genesis german germany git google googlemaps GoogleReader gps gsm gui guide hack hacks hamburg hardware home home-automation homeassistant homebrew honda howto html htpc http icon IFTTT ikea image imported indie inspiration install insteon interview ios ipad iphone iptv iso itunes jailbreak japan java javascript job keyboard lastfm lcd lib library linux live lldb localization london mac macos mame management mapkit mastersystem math mce media mediacenter megadrive memory-management miami midi mod movie mp3 mpd msn music mythtv nas nes network nvidia nyc objective-c opengl opengles opensource osx pc pcb perlerbeads php physics piracy plex plugin Pocket portfolio prepaid project ps1 ps2 ps3 ps4 psp puremvc push pvr python raspberrypi recalbox recipe region remote repro resource restaurante retrogaming retrograming retropc retropie rgb rip rom roms router ruby rubyonrails saopaulo scart scumm sdk security seedbox serial server shmups shop shopping sim sms snes software sonos sound soundblaster soundtrack source spotify sql sqlite star startup steamdeck store stream subtitles svn swift sync synology synth tax terminal three20 tips tool tools toread torrent tracker travel trip tutorial tweak twitter ubuntu ui uitableview unix unlock uremote usa veralite viagem video vista vita vpn vps vst walkthrough warez web2.0 webdesign webradio webservices wifi wii wiiu windows wishlist wordpress xbmc xbox xcode xml xna youtube z-wave z80 zigbee