I got the latter working thanks to Casio's old SW-10 softsynth for Windows - the sound bank it uses is apparently just the entire ROM from the GT913-based MIDI modules (GZ-30M and GZ-70SP) and the WG-130 daughterboard. I've also been able to use the softsynth as a reference for improved mixing and envelope behavior.
Depends on what you mean by games e.g. arcade (including mahjong/hanafuda etc.), console, handheld, home computer, pinball, redemption games, non-video arcade games (skee-ball, whack-a-mole, coin pushers, claw games), gambling/casino games (video slots, reel slots, fruit machines, pachislots/pachinko, video poker, electronic roulette). If you meant exactly 30 years old e.g. from 1992, probably not many. If you meant games that are 30-50 years old from any genre, probably well over ten thousand, if they aren't already extinct.
This looks a lot cleaner. It helps if I don't process off the end of a span list.
While there are presumably DSP issues causing portions of the tank to either not show up or draw incorrectly, I'm not sure if it's that my processing of the list and the associated framebuffers is wrong (i.e. ending early), or if it's that the DSP isn't actually issuing enough data to draw the full tank. I do see a few "pulled" triangles every so often, so there might still be DSP issues lurking.
But at this point I believe the DSP is in better shape than I'd expected, and the real problem is figuring out how the rasterizer hardware works: How does it get hidden, how does it get shown, how are the 2 layers combined, that sort of thing. If anyone is willing to take a stab at it, I'm willing to commit my changes to a branch.
Turns out that some debug code from when I was first getting the span draw-er up and running, which was only accepting spans that didn't exceed the presumed clipping range of the framebuffer viewport, was biting me in the ass. This looks a lot more like Polygonet Commanders.
Still some DSP bugs lurking - those bent triangles on the front of the first-person tank are pretty suspicious - but if I can get Thursday off in addition to Friday this week, I'd say we have a damn good chance of getting this sucker finalized for 0.245.