"This is basically just the latest CVS plus a few misc fixes and NickK's modem driver. I decided that since it's been so long and the
codebase is relatively stable now, might be a good time to switch to a 1.2.x version number.

The idea behind 1.2.x is that it will basically remain stable, both in the sense that the code is stable, and that the API is stable and won't change on you; you can upgrade to another 1.2.x without having to go refit a bunch of code. We'll probably stick with this series for a few more bugfix releases, and then move on to 1.3.x. If someone wants to pick up the maintenance of 1.2.x at that time, let me know. Otherwise it'll bitrot like the other earlier versions.

Also as I mentioned earlier, I am no longer distributing binaries with KOS releases. They are a pain to generate and take up huge amounts of space and upload time. I figure if you can compile KOS binaries at all, you can probably compile KOS itself. :)"

KMG files are in. This should be really helpful if you want to pre-twiddle your textures. It additionally supports mmap'ing, so for example you can place a bunch of textures in a romdisk and blast 'em to the PVR fast. I'm doing this now in FoF and it's _significantly_ faster than the old way of loading PNGs and twiddling them on the fly. I find too that making KMG files into a romdisk and then gzipping the bundle still gives good compression (as good as PNG anyway) but is much faster overall.

Tsunami got a huge overhaul and now supports parent-relative coloration and positioning. So it really operates a lot more like a windowing system at this point.

fs_ramdisk has an attach/detach function now. This nifty feature lets you take a chunk of malloc'd memory you have laying around and attach it as a file on the ramdisk. You can also write out files to the ramdisk and then detach them to use as standard malloc'd buffers.

I started (and got sort of minimally working) a "native" dc-load client. I asked AndrewK and got permission to import the GPL'd code from dc-load-ip under the standard KOS license. It's still not terribly functional, but if someone wants to pick up the torch then let me know and I'll try to help you get started. To enable it, start a program with the dc-load-ip console and set INIT_NET on the init flags. You also need to go remove the dbglog() messages from the ethernet module you're using, and enable the spin until link stabilized loop.

There's a new generic vblank hooking system. Lots of things want to hang off the vblank IRQs so I went ahead and wrote this thing. Maple is now using it, and the PVR uses this for page flipping now instead of the somewhat unreliable SCANINT1 (we were having troubles on 50Hz PAL with it).

fs_iso9660 can (FINALLY) detect and properly handle tray opening. So at this point it should behave exactly as you'd expect when you swap out CDs and such. It uses the vblank checking to do this.