Not only is the Super Nintendo an all-around great platform, both during its prime in the 90s and now during the nostalgia craze, but its relative simplicity compared to modern systems makes it a lot more accessible from a computer science point-of-view. That means that we can get some in-depth discussion on how the Super Nintendo actually does what it does, and understand most of it, like this video from [Retro Game Mechanics Explained] which goes into an incredible amount of detail on the mechanics of the SNES’s memory system.
Two of the interesting memory systems the SNES uses are called DMA and HDMA. DMA stands for direct memory access, and is a way for the Super Nintendo to access memory independently of the CPU. The advantages to this are that it’s incredibly fast compared to more typical methods of accessing memory. This isn’t particulalry unique, but the HDMA system is. It allows the SNES to do all kinds of interesting tricks with its video output display like changing color gradients and doing all kinds of masking effects.
If you’re interested in the inner workings of classic consoles like the SNES, this video gets way down in the weeds in the system itself. It’s interesting to see how programmers were able to squeeze more capability from these limited (by modern standards) systems by manipulating memory like the DMA and HDMA systems do. [Retro Game Mechanics Explained] is a great resource for exploring in-depth aspects of lots of classic games, like how speedrunners can execute arbitrary code in old Mario games.
6 thoughts on “Memory Mapping Methods In The Super Nintendo”
Well, with all the abandonment by the “I’ll never buy Nintendo” crowd, good thing the console is good for something.
the snes was the last nintendo product that i owned.
And HDMA stands for? You note what DMA stands for, you should also do the same for HDMA…
I believe the H stands for horizontal in that one.
“DMA by itself is pretty useful, but Nintendo thought up another way of using the DMA controller that really made the SNES the great console that it is. Instead of immediately halting the CPU and performing the copy, they created “HDMA” mode, which performs one transfer during each horizontal blanking period. This allows you to do neat things like set a color every scanline, which is how the gradient fills in Chrono Trigger’s menus are done. ” – https://wiki.superfamicom.org/#toc-hdma-mode
That channel is one of my absolute favorites. Lots of good detail and the presentation is first-rate (especially knowing it’s a college kid doing it on his own…)
Please be kind and respectful to help make the comments section excellent. (Comment Policy)