Not been well this week but during last month got a lot done overall. Getting close to beta release.
SW music replay working reliably, if still producing occasional cracks and pops in a few tracks. Will return to that later.
MIDI format handling integrated, hardware replay being done right now. Got a couple of Adafruit MIDI synth pcbs and will fit one inside my Falcon to test it
Engine has many new optimizations. Runs faster than before, but music steals time so on balance probably about the same.
New texturing technique - finally solved a problem with this which bugged me for ages. I think it is now finally at theoretical limits for the DSP with indexed textures and lighting (famous last words). But no, really - this took me 5 separate attempts to crack, with no progress until now.
Going to attempt one more big optimization that has bugged me even longer - floor span fragmentation caused by BSP walk order alternating between surfaces with different textures, creating seams. Tends to rise with scene complexity, causing nonlinear slowdown, mis-representing the Falcon's ability to texture the scene. Think I finally have a solution to this now. If it works it will be worthwhile, and will be the last big opt attempted on this project before it is put to bed.
Several new shaders, including addblend (skulls, fireballs, muzzleflash etc) and alphablend (some enemies).
New method of rendering Doom transparencies, much faster when up close. Better way to use the original postmap algorithm developed for BadMood transparent textures and sprites.
Completely replaced the lighting model, which preserves glows and specular highlights, and reduces saturation in dim light. Makes (some brightly painted) enemies look more anchored in the world at their respective distances.
Intermission game logic modified to swap old 'progress map' for new intermission art, based on Doom II progression.
Lots of bugs fixed, including a couple of really evil ones, and some issues with map rendering glitches.
New attract mode underway...