SABS Forum

Public => Creation => Topic started by: neen on Sun, 2025 - 12 - 21, 10:35 PM

Title: snes homebrew: cgblast
Post by: neen on Sun, 2025 - 12 - 21, 10:35 PM
after being present in discord servers and other such places where snes development is discussed for a little while now, the topic of nintendo's competition in that period comes up from time to time. because of this i wanted to learn what sega's claim of the genesis' BLAST PROCESSING was about. i had at one point heard it was just a claim about the processor. the motorola 68000 is definitely more powerful than the snes' 65816, and more suited for high level languages. then i watched this video: https://www.youtube.com/watch?v=rvvL6S5Buiw

according to this, the blast processing programming technique uses DMA to the screen's backdrop color while the screen is drawing. so it occured to me to attempt doing this on the super nintendo.

the technique is basically the same as what is described on the genesis. we set up a dma to fire to cgram while the screen is being drawn by the snes PPU (picture processing unit). the cgram (cg means "color generator") is not a separate chip but a 512 bytr buffer inside the ppu. if a color is written to the color generator ram while the ppu is trying to draw, you end up outputting that color to the screen.

in the process of writing this i found out that this technique had been used in a demo some years ago (thread here https://forums.nesdev.org/viewtopic.php?t=9187) and they were able to use it to display a rock solid steady image, which i was not able to do. the thread contains some detail about extra tricks needed to obtain the stable image output that i had not thought of.

in its current state it might be fun to play the blast with a controller along to some music (i myself have jhammed out a bit in this manner). could be fun to write a sequence for it to follow or play manually, on a crt at a music show or rave or something.

i've included the rom and source. you need to use a very accurate emulator like mesen for this to work. snes9x does not work. blast.sfc takes controller input for changing colors.