Mega Man 3’s Graphical Glitches, the MMC3 Mapper, and a Bad Development Timeline – Behind the Code

“Is my copy of Mega Man III messed up?” This question is a common one from those that either have not played the third game in the series or are returning to it after a number of years. There is a graphical glitch above Shadow Man in the Stage Select screen. A segment of pixels […]


How to Reprogram Tetris By Playing It – Behind the Code Leveled Up

In a previous episode of Behind the Code, we talked about how the scoring logic of Tetris can crash the game at high levels. Now what is even more interesting is that you can hook up extra controllers to the expansion port on a Famicom and use them to redirect code execution to the A-Type […]


Crashing Tetris! The Logic Behind the Madness – Behind the Code Leveled Up

This has been a really big year so far for Tetris on the NES. Players have found ways to provide controller inputs at speeds the programmers of the game didn’t anticipate. A technique called “rolling” has allowed players to move pieces at such fast speeds that they can progress beyond level 150! Unfortunately, this might […]


The Wacky Frame Rate and Game Engine of Dr. Jekyll and Mr. Hyde (NES) – Behind the Code: Leveled Up

While I was working on the previous episode of Behind the Code and researching Jekyll’s walking speed in Dr. Jekyll and Mr. Hyde for the NES, I noticed that the frame rate was rather odd. Turns out it is REALLY odd. If you’ve played the game, you may have noticed that the speed is inconsistent. […]


Reprogramming Dr. Jekyll and Mr. Hyde for NES – Behind the Code

A friend of mine rented Dr. Jekyll and Mr. Hyde when it was new, and we gave it a try. It was certainly different than any of the other games we had played on the NES. Try playing Contra or Punch-Out and then switching over to a game that demands patience like this one does. […]


Why is Platforming so Difficult in the Terminator for NES? – Behind the Code

Have you ever played The Terminator for the NES? Landing is difficult. Jumping is inconsistent. Sometimes you appear to land but fall through the ground! Sometimes you fall off the edge of a platform while running even though you swear you pressed jump before you got there. Sometimes jumping to the first ledge works but […]


The Physics Nightmare and Bizarre Jumping of Strider (NES) – Behind the Code

NES Strider feels janky. We’ve known that since it was released. But how bad could it be? … Oh! Absolutely terrible! Jumping, running into a wall, and falling – simple things in any other game seem to be half-baked in Strider. The physics are worse than you could possibly imagine. Why do you slam your […]

Alex Mitchell

Celeste-style Total Conversion for SMB Released

I’m sure I’m not alone in my affection for the indie platformer, “Celeste”. Released in 2018, Celeste’s mix of easy to learn but difficult to master platforming, its driving soundtrack, and its timely narrative made it an indie darling that is still popular today. To wit, ROM hackers w7n, Morshu, StudsX, karmic, and Eden GT […]


NES Sprites, OAM, and the Battle for Priority – Behind the Code

Sprite limitations and flicker define what the NES is. They are a part of history. This video dives into Object Attribute Memory – OAM – to explain why the system is limited to eight sprites on a scanline as well as how both sprite limitation and sprite priority are used by programmers to add some […]