![]() ![]() Also not mapped to the CPU’s address space. A small bit of memory for storing sprite attributes used by the PPU (position, flipping, tile index, etc.), known as Object Attribute Memory (OAM).64 KB of VRAM, which holds tile and map data used by the PPU for drawing sprites and backgrounds.The “Picture Processing Unit” (PPU), which is the dedicated sprite and background-drawing processor.Anywhere from 256 KB to 4 MB of ROM data mapped directly into the CPU’s address space, depending on the cartridge.128 KB of RAM, referred to as “Work RAM” or WRAM for short.The main CPU, which is a clone of a 65816.The SNES has a few main pieces of hardware that are relevant to the programmer: The point here is that if I can learn how to program this crazy machine, I’m sure that you can too! Hardware Basics My only prior experience in hand-writing assembly programs was a single micocontrollers class that I took in college, so I’m hardly an expert in that domain. This was a full two decades after the 65816 was first released, and well after the era of sprite and character-based display chips that the SNES graphics hardware was spawned from. I started learning programming around 2005-2006, and my first forays into graphics programming used DX9-capable hardware. Just for context, I really knew very little about any of this before I dove in. However it was a bit tough getting started, so I thought I would share some of my experiences in case it helps to spare others a bit of pain. I decided to use this past holiday break as an excuse to finally get started, and I had a great time doing it! I love learning about old hardware and development environments, so this was really right up my alley. How could it not be, with top-tier games like Super Metroid and Mega Man X available? I had always wanted to learn how to program for the SNES so that I could develop my own silly games for the hardware that ran my favorite games as a kid. When I was growing up, the SNES was easily my favorite console. ![]() You can find an ad-free static site version of this post here: ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |