Very interesting to read and learn about all this. I have heard of HDMA before. There is a guy about online who knows a lot about the SNES and makes cool parallax demos that should run on the SNES which some people were critical of. I forget his name but it was from him. He seemed to know his stuff though.93143 wrote: Thu Oct 30, 2025 9:08 pm Not at all. The SNES is one of the best raster effect machines out there. You usually don't even need raster IRQs (though of course the SNES has them), because HDMA can be used to automate up to 8 small DMA transfers during each HBlank; this lets you poke S-PPU registers and even rewrite palette entries. HDMA uses a table of values or pointers for each channel, with line counters to avoid needing an entry for every scanline, so setup can be done up front and CPU overhead is minimal.
VRAM itself is closed during active display and HBlank, and will ignore writes. OAM is busy and may put your writes somewhere they don't belong. But most S-PPU registers are wide open during HBlank - scroll, Mode 7 transform (this is how you get perspective, since it's only an affine transform), BG mode, main/sub layer assignment, window edge positions and settings, colour math settings, subscreen backdrop colour, column scroll table VRAM offset, etc. The palette is wide open during HBlank too.
This is not even getting into unintended tricks, like changing VRAM and OAM during HBlank (only useful in certain scenarios due to restrictions or side effects), changing S-PPU settings mid-scanline (can cause transient glitching, but this can often be hidden), changing VRAM offsets for the sprite character tables mid-screen to bust the 16 KB limit (which, to be fair, nobody else has, especially not the Neo Geo)...
Coming from the Neo Geo, it amazes me how complicated the SNES and Megadrive are to code for. But they do have some nice graphical effects they can use. On the Neo Geo, you draw everything straight from the cartridge - you don't move any graphics data into VRAM. So even that is easy and simple. I used to do some simple coding on the Amiga, and that could be complicated too, because of all the chips it had to use to do stuff.
8 transfers during 8 blank seems like a good number. Nintendo definitely thought that aspect of the machine through well. What does "16kb limit" mean? Is that the total OAM space?
I always thought Axelay used mode 7 raster effects for the 1st level background where it kind of warps and rolls round?
Yes for sure. You can make a whole screen horizintally scrolling background with 21+ sprites (each sprite is 16 x 512 pixels so you put 20 side by side = 320 pixels to cover screen width + some extra for scroll on). Then you "stick" them together in hardware, so any changes you make to the first sprite is made to the others (apart from x zooming which is independent). Then you set the timer interrupt for each line, and change the x coord of the first sprite only, to scroll each line at a different speed. I think with the Space Harrier background you can just snap back to a repeat point in the pattern too.93143 wrote: Thu Oct 30, 2025 9:08 pm Is the Neo Geo flexible enough to handle the ground in Space Harrier without having to use a separate graphic for every possible camera position? It kinda sounds like it might be.
Each interrupt (just the interrupt not the VRAM writing) would take maybe 130+ CPU cycles total (including acknowledge, saving/restoring registers, returning to main program etc). There are 768 CPU cycles per line, so to do every screen line might turn the 12Mhz CPU into a 9 MHz one
There are issues with sprite scaling on Neo Geo though that make those kind of games more work than you would expect. To do with the horizontal sprite limit (96 sprites) and how when sprites are shrunk vertically - they still use their original height for horizontal sprite limit calculations. So you can run out of horizontal sprites if you are not careful. You can get around this by turning the sprites off with interrupts etc and by using prestored inbetween sprites. But I think this is why there aren't many super scalar style games on the Neo Geo.
There is a demo game here that uses that kind of background https://www.youtube.com/watch?v=1ZGM55RpYHE. I know this one interrupts every 2 screen lines. It eventually evolved and became a bonus game in a game called NeoTris (yes Tetris!)
I think R-Type 3 uses smaller sprites so they don't quite have the visual impact. Still looks good though! I really like the Japanese box for that. It's a bold pink and white choice. Would be great to have Dragon Breed (another IREM game) on the SNES with that huge dragon. Even the Amiga had a pretty good version of that albeit at a lower frame rate.93143 wrote: Thu Oct 30, 2025 9:08 pm Super R-Type is still pretty good IMO. R-Type III is generally considered to be a lot better (and has a lot less slowdown), but I liked the graphical style and music in Super R-Type more. Maybe it's nostalgia...
It looks pretty good but not as colorful as the SNES. Clever idea though. Yes you need to fight back93143 wrote: Thu Oct 30, 2025 9:08 pm There's a video of a Donkey Kong Country 2 demo on Mega Drive that was recently posted on this forum, showing a layer-interlace method that produces a pseudo-BG3 with fake colour blending. It looks pretty decent...
...I just remembered that I tried basically the same trick on SNES myself a while back, on a Mode 7 layer. It looked great on an LCD with a CRT filter, but it looked too flickery on my real TV.
I wish I had the time and spare mental energy to really make progress on this hobby. I might have produced a SNES port of Thunder Force IV by now... At some point, I want to at least do a remix of Metal Squad on the SNES and see what can really be accomplished when you push the chipset (leaving a couple channels and some storage and bandwidth for sound effects, of course, to keep it fair)...