Dear Reader:

You are viewing a story from GN Version 5.0. Time may not have been kind to formatting, integrity of links, images, information, etc.

Every copy of Mega Man Legacy Collection on 3DS has a glitch you never knew about

by rawmeatcowboy
29 November 2017
GN Version 5.0

Do you have a copy of Mega Man Legacy Collection on 3DS? Well your game is glitched. It doesn't matter when you bought or downloaded your game. Every single copy has a bug that was never removed. The thing is, the bug was given an extremely cover-up, which is why you never noticed it. Keith Kaisershot, a programmer at Digital Eclipse, explains the bug below.

When working on Mega Man Legacy Collection for 3DS, I encountered a sound bug I couldn’t track down. Basically, the first sound would either get garbled or not play properly, no matter what sound it was.

I had written the audio playback layer myself, but it built upon Nintendo's audio API for the 3DS. The playback system had to support continual streaming for things like background music and NES audio emulation (the latter of which I didn't write), plus short little one-off sounds for things like UI flourishes and the opening logo stinger.

Each of the 3DS's sound "channels" carried with it a data structure containing various flags and things to inspect its current state. One of them was a flag that indicated if that channel was active or playing. Nintendo's official documentation said that the flag was true if the channel was playing something, false if not.

I ran into a couple of bugs with this for which I never found the root cause because of time. Basically-- 9 out of 10 times when you launched the game, the stinger sound that accompanies the Digital Eclipse [developer of the collection] logo would glitch in some way-- it'd stutter or just not play at all. This was the first sound you’d hear in the game, and I discovered it always affected the very first sound played-- subsequent sounds were fine.

When I dug in to debug it, that aforementioned "playing" flag would be true, even though nothing was playing in some cases! We couldn't ship it that way obviously, and I was reaching my wits' end, so my solution?

When loading the game before playing that first stinger, play a second of silence. And that shipped.

[Link]