Platform independent changes are marked with '***', otherwise the
applicable platform is listed. If someone besides me found the bug or
suggested the fix, I'll put their name in [ ].

KallistiOS version 1.3.0 -----------------------------------------------
- DC  Broadband Adapter driver fixes [Dan Potter == DP]
- *** Imported a new version of lwIP, with proper sockets lib [DP]
- DC  Added new DC example for Parallax (raster_melt) [DP]
- *** Added svnpush.py script for pushing repositories on the web [DP]

KallistiOS version 1.2.1 -----------------------------------------------
- DC  Added genmenu module and example in Tsunami [Dan Potter == DP]
- DC  Added hello-mp3 example [DP]
- DC  320x240 PAL mode [mekanaizer == MK]
- *** Fixed vqenc and kmgenc headers to be ANSI compliant [DP]
- *** New addons/ports build system [DP]
- *** Moved most addons/ports into their own tree/distribution [DP]
- *** Moved several incorrectly placed pieces into libkosutils [DP]

KallistiOS version 1.2.0 -----------------------------------------------
- DC  Fix to use DCARM7_CFLAGS when compiling ARM driver [Christian Groessler == CG]
- DC  Fix for typo in vmu_pkg_crc() (submitted by anonymous)
- DC  Fix for incorrect source address in maple packets [Jim Ursetto == JU]
- *** Fix fputs() to not put an extra "\n" [Walter van Niftrik == WvN]
- DC  Fix Makefile for vqenc to work in more cases [Dan Potter == DP]
- DC  Integrated irq_disable() and irq_enable_exc() so that exceptions are
      always enabled. [DP]
- DC  Added pvr_mem_stats() (like malloc_stats but for PVR) [DP]
- *** Removed SYSCALL() usage in favor of thd_block_now() [DP]
- *** Primary timers switched to wakeup interval rather than periodic. [DP]
- *** Fix uninitialized mutex in semaphores [DP]
- *** Added generic waits, and changed semaphores/mutexes to use them [DP]
- DC  Added timer_ms_gettime64() [DP]
- DC  Fix for potential incorrectness in NDEBUG mode in pvr_txr_load_ex [DP]
- DC  Remove float usage in timer_ms_gettime() [DP]
- *** More proper condvar impl using genwaits [DP]
- DC  Strip trailing dots on extensionless ISO filenames (thanks waltervn for 
      pointing this out) [DP]
- *** Fix file descriptor owner bug in fdopen [Bero]
- *** Zlib workaround for KOS file descriptors being non-POSIX [Bero]
- *** Added more proper (mutex-paired) condvars, and tests [DP]
- DC  Tremor: bug fix for mono playback, guaranteed thread exit timing, added
      thd_sleep() to make threading more efficient [DP]
- *** Use dbgio_printk instead of dbgio_printf in printf [Bero]
- DC  System ASIC module now supports IRQ priority levels [DP]
- DC  CD-Rom driver much more thread-friendly [DP]
- *** 'struct netif' renamed to 'struct knetif' to avoid conflicts with lwIP [DP]
- *** Fix for initial '/' in fs_builtin pathnames [Bero]
- *** Moved addons' includes and output libs to under addons/ [DP]
- DC  Updated liboggvorbisplay to use vorbisfile funcs like libtremor [DP]
- DC  Set size to -1 while readdir'ing on /vmu so they appear as dirs [DP]
- DC  Filter chain support for snd_stream [DP]
- DC  Basic flashrom BIOS support [DP]
- DC  Improved PVR statistics reporting [DP]
- DC  Misc improvements to Parallax and Tsunami [DP]
- DC  Add Joliet support to iso9660 and fix a big huge bug in directory
      scanning [Bero, DP]
- DC  Support for alpha channels, PNG input, and KMG output in vqenc [DP]
- DC  New libkmg for loading KMG files output by vqenc [DP]
- *** Added byte_count field to kos_img_t for paletted and VQ'd data [DP]
- DC  Typo in broadband adapter driver flags [Wayne Moorefield == WM]
- DC  Switch to genwaits and remove extra timing in maple VMU module [DP]
- DC  Added skeleton PuruPuru/Jump Pack driver [DP]
- DC  New vmufs middle-layer driver and new fs_vmu that uses it [DP]
- *** Fixed thread non-safety in readpng [DP]
- DC  SPU module wasn't clearing all of sound ram on startup/shutdown [DP]
- DC  New libkmg for loading "KOS image" files from disk [DP]
- DC  Support for opening a stream from a descriptor in liboggvorbisplay [DP]
- DC  Parent-relative colorization and positioning in libtsunami [DP]
- DC  Misc bug fixes and improvements in libtsunami [DP]
- DC  Multi-format texture loading support, getpos() for fonts in plx [DP]
- *** fs_ramdisk attach/detach support [DP]
- *** Added a NOT_OWNER flag for kos_img_t for ROM images, etc [DP]
- DC  Added WIP native dc-load client [DP]
- DC  Added generic vblank hooking system [DP]
- DC  KM_DBG_VERBOSE support for PVR malloc [DP]
- DC  Improved texture memory size detection for debug messages in PVR [DP]
- DC  Switch to vblank for page flipping, stats on vertex buffer usage in PVR [DP]
- DC  Add support for load method flags in pvr_load_texture_ex [DP]
- DC  Add snd_sfx_stop_all() and mmap support for loading samples [DP]
- DC  Improved debug output for sound malloc [DP]
- *** Removed x86-specific code in endian.h [DP]
- DC  New kmgenc utility for pre-twiddling textures [DP]
- DC  Inside-int usability for cdrom_get_status() [DP]
- DC  Tray-open detection using vblank, improved fd invalidation support
      for fs_iso9660 [DP]
- DC  Persistent volume support for liboggvorbis [DP]
- DC  Font fuzziness cleanup and pseudo-newline support in Parallax [DP]
- DC  Added modem driver from Nick Kochakian [NK]
- DC  Added a bunch of fun Kosh builtins [DP]
- DC  Slightly more verbose death message for out-of-mem panic [DP]
- *** Added pure virtual function support in libk++ [DP]

KallistiOS version 1.1.9 ------------------------------------------------
- *** Added private data field, async and stat to VFS [Dan Potter == DP]
- DC  Fix for opening VMU files as dirs [Christian Groessler == CG]
- *** Added fs_mkdir and fs_rmdir [DP]
- *** Added fs_ramdisk (on /ram) [DP]
- *** Added mutex as a wrapper to semaphores [DP]
- *** Switched VFS to use real mutex support [DP]
- *** Added vfs_handler_t parameter to some VFS calls for private data usage [DP]
- *** Changed fs_romdisk to allow multiple romdisk mounts [DP]
- *** Added fs_copy and fs_load util functions [DP]
- *** Changed sem_wait() and sem_wait_timed() so it doesn't assert() if
      called from an interupt [DP]
- *** Added the dlmalloc debugger [DP]
- DC  Fixed bug with samples >64k looping accidentally [DP]
- DC  Added stereo sample support [DP]
- DC  Fixed some alignment issues in 3dutils in libdcutils [DP]
- *** Replace slightly broken atoi/atol with BSD versions [DP]
- *** Added endian.h from BSD [DP]
- DC  Port of OggVorbis "Tremor" lib [DP]
- DC  Added leak checker for PVR malloc [DP]
- DC  NULL parameters are allowed to timer_ms_gettime now [DP]
- *** malloc_debug is now platform independent [DP]
- DC  libdcutils has been removed; most pieces moved elsewhere in KOS [DP]
- DC  Adventure example should compile more places now [DP]
- DC  Added mat_trans_single3() [DP]
- DC  Calling pvr_list_begin() when a list is opened closes the old one first [DP]
- DC  Added wav2adpcm utility [Bero, DP]
- DC  ADPCM samples support in sfxmgr [DP]
- DC  Added 2D PVR util library Parallax [DP]
- DC  Added C++ scene graph lib Tsunami [DP]
- DC  Added frame pointer macros [DP]
- DC  Ability to hook into "double faults" [DP]
- DC  Stack tracing functions for FRAME_POINTERS mode [DP]
- *** Assert hooking capabilities, stack trace from assert when possible [DP]
- *** libtga wasn't setting format of kimg's (thanks dvanbler)
- DC  snd_init() called more than once would freeze (thanks anonymous)
- DC  Fixed "dunno" field in cdrom TOC structure (thanks bjonte)
- DC  Added GDB stub support [Jason Fritcher == JKF]
- DC  Fix for libconio to remove some duplicated code [Jim Ursetto == JU]
- DC  Timing test code for tremor and sndoggvorbis, and race condition fix
      for quick starting/stopping of songs. [DP]
- DC  Fix for loading 3-channel PNGs into an alpha-enabled buffer [DP]
- DC  Fix in libconio for incorrect output target when using dc-load-ip
      console [DP]
- GBA Code sync with Gil Megidish's GBA code base [Gil Megidish == GM]
- DC  Updates to the AICA driver due to Yamato's new docs [DP]
- DC  PVR texture DMA support [Roger Cattermole == RC]
- DC  sfxmgr changed to allow unlimited sound effects [DP]
- *** fread() fix if nmemb < size [GM]
- *** new and delete in libk++ accept size_ instead of unsigned int [GM]
- *** Fixed many warnings in the build [GM]
- DC  Disable IRQs during screen shots to make sure you get a coherent pic [DP]
- DC  Added plasma example [DP]
- DC  Some efficiency fixes in the thread scheduler [DP]
- DC  Some init/shutdown cleanups for libconio [DP]
- DC  Added libkosh, a library version of Kosh for debug purposes [DP]
- DC  Generic mode system for vid_set_mode, fixed centering on VGA [DP]
- DC  Cleaned up MMU support, added some MMU examples [DP]
- DC  Maple only queries U0 for each port for attach/detach now [DP]
- DC  Added a rudimentary (and slightly abusive :) stat call to fs_vmu [DP]
- DC  Added spu_master_mixer() to control the master mixer [DP]
- DC  Added irq_get_handler and irq_get_global_handler [DP]
- PS2 Initial skeleton port for PS2 RTE added [DP]
- DC  Misc cleanup in dcplib [DP]
- DC  Added INIT_QUIET and INIT_NO_DCLOAD for "production" versions [DP]
- *** Fix a startup error when booting the original kernel thread [DP]
- *** dbglog short-circuits to dbgio_printk to save some time [DP]
- DC  Fixed up SYSCALL macro to be much less broken [DP]
- *** Added sem_trywait() as a non-blocking semaphore wait [Bero]
- *** Added thd_wait() to wait for thread death [DP]
- *** Double-advancing gettimeofday() fixed [DP]
- DC  Added some consts in the oggvorbis libs [DP]
- DC  Added a VQ encoder and a VQ example [GM]
- DC  Added SDL port from Bero and Lawrence Sebald [Lawrence Sebald == LS]

KallistiOS version 1.1.8 ------------------------------------------------
- DC  Fixed two more memory free problems in OggVorbis [Dan Potter == DP]
- DC  Fixed GL_POINTS [Paul Boese == PB]
- DC  Fixed problem with setting gl_cur_texture to gl_null_texture in
      glmisc.c [PB]
- DC  Added "navi" subarch for my hardware experimenting work [DP]
- DC  Fixed a bug in the cdrom drive which caused a lockup if the tray
      was open during startup, and fixes compatability with navi [DP]
- DC  Added GL_POLYGON and GL_QUAD_STRIP to gldraw.c. Thanks to Jesse Ruffin :)
      [Jesse Ruffin == JR]
- DC  Various fs_vmu fixes: properly zero out directory entries on unlink,
      confine user writes to user data area, file blocks no longer cleared
      on unlink, allow writing to existing files, implement seek/mmap,
      O_TRUNC support, case-insensitive port in path, improved error
      checking and various cleanups [Jim Ursetto = JU]
- DC  New "public" maple API (maple_enum_*) [DP]
- DC  Prevent FPU exception on underflow (DN=1, thanks Andrew!) [DP]
- DC  Fix for non-square PNG loading [Fredrik Ehnbom = FE]
- DC  Fixed race condition in snd_stream for multi-threaded operation [DP]
- DC  Stack underrun check for threads, fixed thread pwd inheritance [DP]
- *** Changed gentexfont to include more glyphs by default [DP]
- DC  lwIP support for dcload-ip [Andrew Kieschnick == ADK]
- DC  irq.h fixes and generic trapa handler support [Jason Fritcher == JKF]
- DC  Added vmu_parse function [JU]
- DC  Changed snd_stream callback to return an actual "got" value,
      added a timeout for kick_aica(), added checks so that re-initting
      the snd_stream lib won't stop currently running sound effects [DP]
- DC  Added seamless looping support for OggVorbis [DP]
- DC  Fix for "adventure" conio example under Cygwin [DP]
- *** Added "imageload" library [Jeffrey McBeth == JBM]
- DC  Added arch_exec_at [Scott Robinson == SR]
- *** Fix ar->$(KOS_AR) in lwIP Makefile [JKF]
- DC  Fix potential crash in vmu_close [JU]
- DC  New more generic sound driver [DP]
- *** Ported strtod and strtoul from BSD [DP]
- *** Include stddef.h in stdlib.h for offsetof() among other things [DP]
- *** Port of the Lua scripting language [DP]
- *** Added rule for 'S' (preprocessed assembly) to 'o' [DP]
- DC  Trilinears Z-Clipper for GL_TRIANGLES. Includes demo [Marc Hall MH]
- DC  Added Experimental volume modifier stuff to pvr and kgl [PB]
- *** Added PCX loader for libimageload [JBM]
- *** Fix for BMP loader in libimageload [JBM]
- DC  Japanese support for biosfont [Kazuaki Matsumoto == KM] [DP]
- DC  Fix a NEARZ clipper bug in KGL. Misc Fixes. Added storage for
      frustum atttributes [PB]
- DC  Change for fs_dcload that lets console output keep going out over
      dcload-ip up to the last second [DP]
- DC  Removed some assert_msg's in KGL to make threaded programming with
      these more usable [DP]
- DC  Replaced cheesoid sound allocator with a real best-fit one [DP]
- DC  Fixed error handling for out-of-texture-ram so it doesn't crash
      the entire program [DP]
- DC  Left out some "break" statements in pvr_texture.c (thanks Mike Z) [DP]
- DC  Palette format support for PVR (thanks Mike Z) [DP]
- *** Fixed dirent_t to also be "struct dirent" [Christian Groessler == CG]
- DC  Added "volatile" in counters in maple [CG]
- DC  Fix for CDDA volume/panning [Fredrik Ehnbom == FE]
- DC  Improvement for randnum() [JU]
- DC  Added FASTSOUNDLIB to libmodplug flags [JU]
- DC  Enable OCRAM on init with INIT_OCRAM init flags [JKF]
- DC  Allow exceptions during G2 operations to catch bugs [DP]
- DC  Added arch_get_ret_addr to allow getting the return address from a func [DP]
- DC  Added channel inits on init for SPU, to fix CDDA [DP]
- DC  Changed spu_cdda_* functions to be a bit more sane [DP]
- DC  Added CDDA example [DP]
- DC  Added MAPLE_FOREACH macros [DP]
- DC  Changed libdcutils funcs to take pvr_ptr_t's instead of uint32's [DP]
- DC  Removed deprecated TA compat API, and kos_init_all/kos_shutdown_all [DP]
- DC  Removed deprecated init macros (BASIC_ENABLE, etc) [DP]
- DC  Updated libjpeg and libpng to use pvr_ptr_t's and PVR API [DP]
- DC  Updated Kosh to PVR API [DP]
- DC  Removed GhettoPlay/S3M in favor of GhettoPlay/Vorbis for a sample [DP]
- DC  Changed VMU low-level API to use maple_device_t [DP]
- DC  vmu_icon_init in libdcutils changed to vmu_set_icon, and it now
      sets the icon on all VMUs [DP]
- DC  readdir support in fs_vmu for "/vmu" [CG]
- *** Added strtol and _strupr [Brian Peek == BP]
- DC  Fixed theme support in libconio, and other misc cleanup [DP]
- DC  Moved Kosh to "conio" and ported to libconio [DP]
- DC  Added serial console support for libconio [DP]
- DC  Updated liboggvorbisplay to 1.0 Final [Thorsten Titze == TT]

KallistiOS version 1.1.7 ------------------------------------------------
- DC  Fix for 320x240 on NTSC TVs [Jim Ursetto == JU]
- DC  Fix for readdir in fs_dcload [Bero]
- DC  Fix for libjpeg's jpeg_to_texture [Bero]
- *** Added assert(), assert_msg(), and assert.h [Dan Potter == DP]
- *** Fix for feof()/ferror() in stdio.c [Brian Peek == BP]
- DC  Added gluLookAt() [James Susinno == JS]
- DC  New PVR API added to replace old "ta" API [DP]
- *** New network API started [DP]
- DC  Experimental SPU DMA usage has been removed for now (it was causing
      issues with CD access) [DP]
- DC  Added DC port of PLIB [Peter Hatch == PH]
- DC  Fixed IRQ bug for non-threaded mode [Roger Cattermole == RC]
- *** Added support for PWD in non-threaded mode [DP]
- DC  Ported 2ndmix example to PVR API [DP]
- *** Added conditional compilation for addons and examples in C++ [DP]
- DC  Added pauses to some more libdream examples [DP]
- *** Port of libbz2 [Sven Oliver Moll == SOM]
- *** Changed around build process a bit check the README for
      more info [DP]
- *** Libc split into seperate directory [DP]
- DC  Renamed current g2_* stuff to asic_* [DP]
- DC  Added new "g2bus" module to handle writing to the G2 bus [DP]
- DC  Fixed default AICA program [RC]
- DC  New streaming sound / sound effects library [DP]
- *** Changed dbgio_printf -> printf and added NDEBUG in thread.c [DP]
- DC  Fixed include arm/aica_cmd_iface.h to mp3/arm/aica_cmd_iface.h [BP]
- *** Cygwin fix for genromfs [Florian Schulze == FS]
- DC  Rockridge fix for iso9660 [Takayama Fumihiko == TF]
- DC  Port of XMMS' modplug [FS]
- DC  Fix for store queue alignment [Andrew Kieschnick == ADK]
- DC  Fix for stricmp/strnicmp problem with differnet length strings [ADK]
- DC  More complete AICA driver [FS]
- DC  atexit() support [FS]
- DC  Circular buffering support for sndstream [FS]
- *** Added atol() to libc [BP]
- *** Added IRQ safety primitives to spinlock and malloc [DP]
- DC  Double fault patches for better error handling [DP]
- DC  Fixes for moved files, and texture allocation support for
      libpng [Jeffrey McBeth == JBM]
- DC  New maple system [DP]
- DC  Added first working version of Table Fog to PVR API stubs [Paul Boese PB]
- DC  Ported KGL to new PVR API and Merged in Benoit Millers Changes.
      NOTE: glRotatef now takes angle in degrees; Maths in gltrans is
      completely rewritten and should be more GL compatible. [PB]
- DC  Created new KGL demo/example subdirectory /examples/dreamcast/kgl.
      moved gl under kgl/basic/gl. Added Benoit Millers nehe02-nehe09
      ports to kgl/nehe and texenv example under /kgl/basic. [PB]
- DC  A couple of OggVorbis fixes [Thorsten Titze == TT]
- DC  Added _start to work with sh-sega-dreamcast GCC / GCC 3.0.4 [DP]
- DC  Added timer_ms_gettime() for the number of milliseconds since startup [DP]
- *** Added gettimeofday(), mktime(), and localtime_r(); fixed time() [DP]
- DC  Fixed clash with newlib's time.h [DP]
- DC  Fixed rtc_unix_secs() [DP]
- DC  Added clock example [DP]
- DC  Added pvr_set_bg_color to glClearColor in glmisc.c [PB]
- DC  Added texture wrapping enums and functionality to KGL. Cleaned up 
      glTexParameteri in gltex.c in the process. [PB]
- DC  Added texwrap example [PB]
- DC  Fixed some locking issues, added real date/time support to fs_vmu [DP]
- DC  Added vmu_pkg_* for handling VMU file headers [DP]
- DC  Added fs_vmu unlink() [BP]
- DC  Added glKosMatrixIdent() and glKosMatrixApply() to allow for optimized
      direct-rendering access, along with mat_trans_single() [DP]
- DC  added tunnel demo [PB]
- *** Newlib libm now included with main distro (though still a bit DC specific) [DP]
- DC  Created KGL programming reference in LyX [PB]
- *** Implement fputc and O_TRUNC [JU]
- DC  Fix for modesize.y % 32 != 0 [DP]
- DC  Fix for compilation on NetBSD [Christian Groessler = CG]
- DC  Patch to make adding builtins easier in Kosh [SOM]
- *** Updated zlib [JBM]
- DC  Fix glViewport to correct location of origin [PB]
- DC  Added glScissor function to KGL [PB]
- DC  Added scissor test under kgl basic examples [PB]
- DC  Queueing support for OggVorbis and snd_stream [DP]
- *** clock_t/clock()/BUFSIZ for ANSI C [JBM]
- DC  KGL now uses pvr_poly_cxt_t structs and pvr_poly_compile. Also
      resolves some blending problems [PB]
- DC  Added basic UBC support [DP]
- DC  Configurable exit support (return, menu, reboot) [DP]
- DC  KGL now uses pvr_poly_cxt_t structs and pvr_poly_compile. Also
      resolves some blending problems [PB]
- DC  Enabled glDepthFunc() and remapped GL to PVR depth functions so they
      work as expected (the ones I could test anyway) [PB]
- DC  PNG loader cleanups, removed O'Reilly code [JBM]
- DC  Fixed vid_empty() to make it actually start at VRAM base [DP]
- DC  Changed init process and threading (see release notes) [DP]
- DC  Added screen-shot facility [DP]
- *** Added png_write [JBM]
- *** Added timeout-capable semaphores [DP]
- DC  Fixed a bug in syscall.c which probably didn't affect anything yet [DP]
- *** New (slightly kludgy for now) port of lwIP to KOS NetCore API [DP]
- DC  Fixed memory leak in libjpeg (thanks Jacob) [DP]
- *** Fixed a big in gettimeofday() [CG]
- *** malloc_debug added calloc() [DP]
- DC  Double-free fix for fs_dcload [DP/BP]
- DC  Cleaned up a massive memory leak in liboggvorbisplay [DP]
- *** Added readdir support for fs_romdisk [DP]
- DC  Now use assert/assert_mesg to carp on user programming errors in KGL [PB]
- DC  Use direct render API in gldraw to submit vertices to TA [PB]
- *** Platform independent image functions [DP]
- *** Added vcheck.py script for CVS assistance [DP]
- *** Split pcx functions into libpcx, adapted to PII funcs [DP]
- *** Split tga functions into libtga, adapted to PII funcs [DP]
- DC  Added POSIX-style arch_exec() function [DP]
- *** Fix for zlib compression [JU]
- DC  Added kgl benchmarks directory with trimark and quadmark [PB]
- DC  Fix for 320x240 on VGA box [CG/DP]
- DC  Updated examples to latest API changes [DP]
- DC  Added controller button combo callback [DP]
- DC  Fix all examples makefiles to use $KOS_STRIP environment variable [PB]
- *** Added beginnings of libk++ (tiny libstdc++ replacement) [Gil Megidish/DP]
- DC  Adapted C++ examples to use libk++ [DP]
- DC  Added libconio (adapted from Kosh) for "console" programs [DP]
- DC  Added wump and adventure examples for libconio [DP]

KallistiOS version 1.1.6 ------------------------------------------------
- DC  Fix for using resolutions other than 640x480 with TA [David Kuder == DCG]
- *** New version of dlmalloc with better thread safety [Dan Potter == DP]
- *** Misc fixes for the build process [Benoit Miller == BM]
- *** C++ compilation rules for cpp->o [BM]
- *** Beginnings of BSD-style C++ header support [DP]
- DC  G2 DMA locking for maple and SPU DMA [DP]
- DC  Fixes to SPU DMA to make it behave with maple and other DMAs [DP]
- DC  Default to initting SPU DMA during initall() [DP]
- *** ANSI stdio wrappers [Tobias Gloth == TG]
- DC  Experimental SPU DMU usage in mp3lib [DP]
- DC  GCC 2.x compliance fixes (var decls inside functions) [BM]
- *** Import of BSD ctype [BM *]
- *** wchar support and other ANSI fixes [BM]
- *** Lots of headers now have DECLS for C++, more on the way [DP]
- DC  Added -fno-exceptions to the default CPPFLAGS in environ.* [DP]
- *** Added C++ low-level memory primitives (__builtin_new, etc) [DP]
- DC  Added a C++ version of gltest to the examples tree [DP]
- DC  Added new 768xXXX modes [DCG]
- *** Misc source cleanups [DP]
- DC  ctor/dtor support [DP]
- *** zlib port [Jeffrey McBeth == JBM]
- DC  pnglib port plus DC texture loader [JBM]
- DC  Added cdrom_get_status() to check GD-Rom drive status [DP]
- DC  Updated liboggvorbis from RC3 [Thorsten Titze]
- *** Fixed a problem with VFS when threads weren't enabled [DP]
- DC  Cleaned up cruft in DC spinlock.h [DP]
- DC  Pre-bundled libm.a updated to latest newlib release [DP]

* Xavier Bouchoux sent this to me earlier, but I was too lazy to get 
  it integrated ^_^;

KallistiOS version 1.1.5 ------------------------------------------------
- DC  Fix for spu_write_wait() -- it was doing the opposite of what it
      was supposed to! (oops!) [Anders Clerwall == Scav]
- DC  New matrix.s [Mathieu Legris] -- note that there are now some
      alignment constraints on the usage of the matrix functions.. please
      see matrix.s for the comments if you use it!
- DC  KGL support for the new matrix.s [Andrew Kieschnick == ADK]
- DC  New video.c / video.h with a real mode table, and support for
      some PAL modes and 256x256! 800x608 is apparently still
      a bit broken in this one, so if anyone is actually using it you
      might have to tweak just a bit. [Scav]
- DC  Fixed a potential race condition in kernel/main.c [Dan Potter == DP]
- *** Added some new libc stuff from BSD (abs, labs, strdup, qsort, and some
      misc is/to upper/lower funcs)
- DC  Added an early implementation of alpha-blended polys to KGL [DP]
- *** Semaphores and condition variables weren't getting initialized [DP]
- DC  First pass at SPU DMA [DP]
- *** New isdigit() and [DC] a biosfont patch [Warren Moore]
- DC  New more general twiddle function [Vincent Penne == VP]
- DC  TA frame counter, paletted texture type defines [VP]
- *** abort() function [VP/DP]
- *** atoi, dtoa, and floating point printf support [VP]
- DC  randnum() fix [VP]
- DC  Ported over the simple serial console from KOS-MMU [DP]
- DC  Inline TA commit functions [VP]
- DC  Updated gl example to show translucency [DP]
- *** Added architecture checks in header files
- *** Fixed some prototype errors with index, rindex [?]
- DC  Fixed turning off vertical smoothing on VGA [DP]
- DC  Added polygon culling controls for KGL [ADK]
- DC  Ported up MMU functions from KOS-MMU [DP]
- DC  Imported liboggvorbisplay and GhettoPlay adapted to OGG [Thorsten Titze]

KallistiOS version 1.1.4 ------------------------------------------------
- DC  Store queue support [Andrew Kieschnick == ADK]
- DC  New and improved matrix math routines [ADK]
- DC  Patch to KGL to clip polygons with bad w value [ADK]
- DC  Patch for serial I/O that does not reset the baud rate if it's already
      been set. This should eliminate a lot of problems with mismatched
      serial baud in dcload [ADK]
- DC  Patch to fix GL_QUADS constant [Greg Cooksey]
- DC  ftan support, plus KGL usage [Andrew Kieschnick == ADK]
- DC  Fix for iso_ioctl
- DC  New spinlock code works a lot better [ADK]
- DC  Fixed a bug where thd_enabled wasn't being set to 1 [ADK]
- DC  Render done seems to work again, so it's now re-enabled [ADK]
- DC  Added 'menu' command in KOSH to exit to the DC menus [Dan Potter == DP]
- DC  Added rtc_unix_secs() support for reading the current date/time [DP]
- DC  Fixed some problems in VMU writing related to timing and a mystery
      command (thanks to an oooold message from Nagra) and also did some
      fixes to fs_vmu. Please see the notes in README, this code still
      isn't really stable. [DP]
- DC  Added a new 'hello' example in the DC examples tree which shows
      a basic project skeleton which you can start with. [DP]

KallistiOS version 1.1.3 ------------------------------------------------
- DC  Included initial test version of KallistiGL (addons/libgl)
- *** strstr.c was not getting included in the compile for some reason [Regex]
- DC  Fixed bug that could cause fs_iso9660 to run out of handles [James Surine]
- DC  New inline math functions [Andrew Kieschnick]
- DC  Added (currently non-working) MPGLIB sources
- DC  Some more Makefile build fixes
- DC  Still yet more joy of ISO fncompare() fixes [Brian Peek]
- DC  Changed TA far Z clipping plane to be out even farther
- DC  Fixes for matrix.s to make it use W properly [Andrew Kieschnick]
- DC  libos wasn't being built; fixed

KallistiOS version 1.1.2 ------------------------------------------------
- DC  Fixed over-initialization of VRAM (sorry, didn't realize it was wrong)
- DC  Fixed some dc-load init/shutdown bugs (adk)
- *** Fixed a bug in the global Makefiles that made it not process
      the "SUBDIRS" entries normally
- DC  PVR functionality ("ta" module) has been seperated into its own
      subdir, where it will eventually gain more functionality and be
      reorganized.
- DC  As part of the above reorganization, TA initialization is no longer
      done automatically; you can do this by adding TA_ENABLE to the
      call to kos_init_all (see below).
- DC  vid_set_mode() has been simplified to take only two arguments; a
      new function vid_set_mode_and_cable() is now there if you want to
      change cable types manually for some reason.
- DC  kos_init_all() has changed to a more flexible format; PLEASE LOOK
      at the examples to see how!
- DC  Fixed a bug in fs_dcload that made a listing of /pc not work

KallistiOS version 1.1.1 ------------------------------------------------
- *** Per-thread path functions are back now, if threads are enabled.
- DC  dc-load console and file system support is now integrated
- DC  The startup procedure has changed (i.e., how you initialize the
      library mode). Please see the dreamcast "2ndmix" example for
      details.
- DC  MP3 player lib and S3M player lib have been integrated (though the
      S3M lib is a bit incomplete as of yet)
- DC  JPEG lib, PVR and other utils from DC Tonic's libdemocd now included
- DC  More OS-mode support
- DC  Semaphore and Condition Variable sync primitives re-imported from KOS-MMU
- DC  Updated the FAQ for 1.1.x
- DC  Included the Newlib libm in binary distributions
- DC  Added functions for DC's "hidden" sin/cos/sqrt functions (dc/fmath.h)
- DC  Added CDDA functionality in the cdrom and spu modules; also added a
      new "cdrom_spin_down" call to manually spin down the CD (thanks maiwe!).
- DC  Fixed a problem where some things (hardware, irq) might be de-initted
      even though they weren't initted (and cause strange problems)
- DC  Libdream examples now ported and included in the DC examples dir

KallistiOS version 1.1.0 ------------------------------------------------
- Complete rework of the entire OS structure. Many of the incorporated
  changes and cleanups were ported over from the ill-fated KOS-MMU project.
- KallistiOS is now primarily built as a library. It has always worked this
  way in the past, but now the focus is on the library version rather than
  the OS version. All non-library-essential items have been moved out of the
  kernel tree and are currently somewhat broken. These will be fixed over
  the next couple of releases.
- KOS goes multi-platform! All architecture specific pieces are now moved
  into the 'kernel/arch' directory.
- A new GBA port was added for Nintendo(tm)'s Gameboy Advance(tm). Not much
  there yet for GBA, but that will change shortly.
- Everything is now compiled with -Wall and all warnings as of GCC-20010507
  are cleaned up.
- New threading module, including proper condition variables, semaphores, and
  microkernel-style message passing.
- Tiny PCX loading function now included for GBA
- New FS call fs_mmap() added to support using ROM files as const arrays.
- arch_exit() and arch_reboot() added for escape-hatch functionality (if
  your program is hosed and you know it, call one of these to bail in
  a nice manner)
- Threading should no longer be essential in any part of the system that
  does not explicitly depend on it (e.g., semaphores).
- Mutexes have been renamed to spinlocks (which is what they were anyway)
  and moved into a header file for inlining.
- Serial I/O on DC now times out after a second or so and disables itself
- Lots more that I can't remember!

KallistiOS version 1.0.0 ------------------------------------------------
- Turn off Y scaling on VGA box
- Added render-done interrupt support, to support lower frame rates
- Added rudimentary render-to-texture support
- Added semaphore and mailbox primitives to thread ABI
- Added thd_schedule_next, which the TA routines now use to reduce
  TA thread overhead to almost nothing
- Added fs_getwd() and fs->getwd()
- fs_romdisk is now case-insensitive
- init.klf now takes an optional command line parameter of the rc.boot name
- Added serial ABI (thanks Brian Peek)
- fs_iso9660 has improved cacheing now; a seperate data and inode cache is
  kept so that directory info doesn't have to be re-fetched after loading
  a large file. Also increased the number of cache buffers and got rid of
  the moronic init_percd() on every file open behavior.
- Fixed bug in fs_iso9660 that caused Rockridge file names to be
  case sensitive
- Added sprintf in libc
- Kludged around a bug in maple (for now) that would trash thread structures
  at random (buffer overrun in DMA)
- Added malloc() debugger malloc_debug.c in the 'mm' directory. See that
  file for usage notes.
- Fixed some (probably irrelevant) memory leaks in startup/shutdown code
  for KOS
- Added an extra serial_init() call in startup/main.c so that serial output
  works from the very beginning.
- SVCMPX now fails (correctly) if it hasn't been initialized yet.
- Fix for Gameshark and other 3rd party VMUs that don't properly return
  an error code when trying to write to the VMU LCD screen (thanks Andrew
  Kieschnick)

KallistiOS version 0.90 -------------------------------------------------
- Fixed a bug in svcmpx that would return a fake service if you didn't have
  the named service (thanks to Andrew Kieschnick for finding that one).
- Fixed build on Cygwin for genromfs (thanks Florian Schulze and Brian Peek)
- Fixed bug in bin2o on the cmdline help (I dunno why it worked at all!)
- Updated "goals.txt" document to reflect the changes since before KOS
  was started. It was still amazingly on-track but there are a few things
  that have changed since then.
- Inclusion of new "configure" utility for setting up compilation defaults.
- Added new G2 bus module that handles G2 interrupts; will add more later
- Fixed a bug in TA that caused problems with large scenes (thanks
  Andrew K. again)
- Updated TA to use new G2 module
- Fixed some build things that I found when switching to BSD (this ought
  to help everyone building).
- Mutexes are now inactive inside interrupts, to avoid a double-fault
  that causes a reset of the DC. One result of this is...
- BSOD is back (finally), though it only works over the serial port as a
  general rule.
- Imported BSD's sys/queue.h as bsd/queue.h
- New thread scheduler that uses priority queues and an idle task (so
  the real thd_sleep ought to work again).
- Fix for trailing '.' in fs_iso9660: some CD burning software adds a dot
  if there isn't one elsewhere in the filename (thanks Brian Peek).
- Added semaphores to the thread manager.
- Added mboxes to the thread manager.
- Added labels and pwds for threads; labels will be for eventual process
  listing facilities. VFS uses pwd to resolve relative paths (somewhat).
  Kosh also now supports this facility.
- Imported lwIP BSD-licensed TCP/IP stack; it's still pretty broken
- Fixes to the RockRidge code (AndrewK)
- load_and_fork() now takes argc,argv also
- Added new userland utility, "init" (see docs/FAQ).
- fs_romdisk now supports directories
- Although this doesn't really affect anything in the code, the naming
  convention for KOS executables is now to make their extension '.klf'
  instead of '.elf'. 
- Default 'zclip' in TA module is now 0.01

KallistiOS version 0.80 -------------------------------------------------
- Changed the licensing terms to full BSD-style.
- Fixed the "VGA tearing" bug for real this time (scanline int); TA should
  now be active and work in all video modes (in theory). 800x608 remains
  "experimental".
- Fixed the "tile 0 bug", which was really stupid: it was just clipping
  tile 0 as I had requested in the polygon header.
- Added new bin2o util that converts a binary into an object file for
  inclusion in the link process.
- Tightened thread locking code and irq disable code: there are still some
  situations where two threads can enter a critical section, but doing it
  "right" put an incredible load on the CPU. Thus, I just tried to minimize
  the possibility.
- Fixed a bug in 320x240 setup for RGB cables and VGA offset for 640x480 so
  it's the same as official games.
- Fixed frame buffer size in 640x480; this prevents the first bits of your
  texture from showing up on the bottom of the screen.
- Added a new ta_set_buffer_config() so that you can set the TA parameters
  like active lists and buffer sizes before calling init.
- Integrated Andrew Kieschnick's RockRidge NM extension patches for the
  ISO9660 file system.
- Added new romdisk file system. This is intended as a general replacement
  for the old "builtin" file system, though builtin still has its uses too.
- Added conio->check_getch() in Kosh and added support for that to
  Streamtest; also added conio->freeze() and conio->thaw() so that you
  can run compliant apps from Kosh now. This is just a temporary hack
  and will be changed later, but it works for now.
- New upstream version of Streamtest code (from our game).
- Increased default thread stack space again, this time to 64k. Tune to
  your liking in include/kallisti/config.h.
- Simplistic TA texture allocation system; names of texture_* funcs have
  changed; please see ta.c or ta.h.
- BIOS font API now supports opaque or not; the bfont_* functions have
  changed; please see biosfont.c or biosfont.h.
- Added default disclaimer screen for use in bootable KOS applications.
- Included new version of 2ndmix intro/demo and the original song with
  the romdisk image.
- Added the beginnings of a FAQ.

KallistiOS version 0.7
- Added some "const" keywords here and there, and made an effort to remove
  most of the in-block stack variables and in-var initializations. There are
  still a few in userland programs (jam notably).
- Most things now work with default optimiztions (-O1 plus some other things).
  -O2 seems to work for that matter, but I'm not pushing it yet =)
- Increased max simultaneous open files on /bi to 8
- Fixed iso_seek() for /cd
- Added some thread safety stuff in /pc (serconsole) and fixed some memory
  leaks in there. It still doesn't work right with threads. Some reciprocal
  fixes in konsole.
- Added some DMA-safety things in maple (timeouts, etc)
- Added mutex init in maple (oops!!)
- TA has a completely new buffer allocator now that takes texture memory into
  account. Also texture_map() has changed, all texture offsets should start
  at zero and will be mapped by TA automatically.
- TA now does almost everything relevant inside its interrupt for improved
  rendering response time. It also resets after each frame in case the last
  one didn't finish (this is an improvement from locking up the TA =). The
  next version ought to properly wait until the render is done.
- Moved several config options (like thread stack size, etc) into config.h
- Fixed a lot of pointer/heap corruption bugs and memory leaks in elf.c
- Fixed memory leak in process.c (ps_load_and_fork wasn't freeing the image)
- Added 'LIBS' var in userland's Makefile.prefab
- Cleaned up a few things in JAM (including removing "required" mouse support)
- Changed Kosh's \r and \n handling to be more Unix-like
- Removed a few debug lines in libk
- New userland program "streamtest" demonstrates the beta streaming AICA
  driver, and includes a DC/KOS port of XingMP3 from FreeAmp. Note that
  compiling this program from scratch requires the ARM compiler and a
  working libm from newlib.

KallistiOS version 0.6 --------------------------------------------------
- First release


KOS Version Id: $Id: CHANGELOG,v 1.212.2.2 2003/08/02 01:51:55 bardtx Exp $

