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 [ ].

KallsitiOS version 1.1.7 ------------------------------------------------
- DC  Fix for 320x240 on NTSC TVs [Jim Ursetto]
- 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 [Jim Ursetto = 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]
- 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]

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 == JMB]
- DC  pnglib port plus DC texture loader [JMB]
- 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: CHANGELOG,v 1.79 2002/03/11 04:41:46 axlen Exp

