From: quzar <qu...@us...> - 2024-09-22 21:41:35
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 7adf0ae6ae75675f6d1c05ee23342696f73c9bab (commit) via cd4e5db08b1987eea21e973df442ef44c797f975 (commit) via 8f3977b6eecdad5004e27444203cc870247f6bfb (commit) via 0233a297fbf9b49bb2114c3015f5671e4181c9ec (commit) via 80cb6f09e553f70efd184b40ad46fabde4bccd07 (commit) via 41c37da08d71af6ee29f3b5195897971ee718485 (commit) via ee50f748af060646ff9d9fddaf02690f596475b6 (commit) via 362768fbc1c7a8b7d0646608562fcda5b8ac5ec5 (commit) from fd9f323eeddea8970ec595ca49cb40e68b208520 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 7adf0ae6ae75675f6d1c05ee23342696f73c9bab Author: Andy Barajas <and...@gm...> Date: Sun Sep 22 14:39:25 2024 -0700 Separated screen shot logic. (#766) Add functionality to retrieve a 24BPP screenshot data dump rather than forcing write to a PPM file. commit cd4e5db08b1987eea21e973df442ef44c797f975 Author: dfchil <dan...@gm...> Date: Sun Sep 22 21:47:29 2024 +0200 Added small approval test on binary output from pvrtex (#732) commit 8f3977b6eecdad5004e27444203cc870247f6bfb Author: Andy Barajas <and...@gm...> Date: Sun Sep 22 12:44:20 2024 -0700 Add . & .. to filesystems (#634) commit 0233a297fbf9b49bb2114c3015f5671e4181c9ec Author: Falco Girgis <gyr...@gm...> Date: Sat Sep 21 16:59:08 2024 -0500 Updated the version number for KOS 2.1.0. (#750) commit 80cb6f09e553f70efd184b40ad46fabde4bccd07 Author: Donald Haase <qu...@ya...> Date: Sat Sep 21 17:58:09 2024 -0400 Docs update (#747) * Huge update of docs primarily authored by darcagn. Mostly formatting, but a lot of minor fixups. * Significant content updates for license info to better coincide with current KOS (a lot no longer applied or made sense). * Updates to relnotes for v2.1.0 --------- Co-authored-by: darcagn <da...@pr...> commit 41c37da08d71af6ee29f3b5195897971ee718485 Author: Andy Barajas <and...@gm...> Date: Sat Sep 21 12:59:26 2024 -0700 Update position when playing (#764) This checks if a channel is playing before updating the channel position. commit ee50f748af060646ff9d9fddaf02690f596475b6 Author: Andy Barajas <and...@gm...> Date: Tue Sep 17 18:06:32 2024 -0700 Updated aica memcpy to copy four bytes at a time instead of one. (#748) * Updated aica memcpy to copy four bytes at a time instead of one. * Updated to do a check before assuming 4-byte alignment. I assumed if alignment was an issue like it was on the SH4 that the AICA would crash and I wouldnt because to run the sound examples. Turns out the AICA handles unaligned memory access by performing a rotate commit 362768fbc1c7a8b7d0646608562fcda5b8ac5ec5 Author: Falco Girgis <gyr...@gm...> Date: Tue Sep 17 19:59:17 2024 -0500 Modified PVR cxt compilation to be write-only. (#751) Modified the following PVR API routines to be WRITE-ONLY to their destination vertex header pointers: - pvr_poly_compile() - pvr_sprite_compile() - pvr_mod_compile() This will allow us to compile headers "in-place" within the SQ-mapped pointers returned by pvr_dr_target(), for better gainz using the direct rendering API... This is required since according to some docs, the SQs are write-only while others claim only 32-bit reads are valid... Either way, this was necessary to be safe. ----------------------------------------------------------------------- Summary of changes: README.md | 60 +- addons/readme.md | 16 + doc/CHANGELOG | 1128 -------------------- doc/CHANGELOG.md | 950 +++++++++++++++++ doc/{FAQ => FAQ.md} | 247 ++--- doc/LICENSE | 83 -- doc/LICENSE.md | 52 + doc/{README => README.md} | 241 ++--- doc/{RELNOTES => RELNOTES.md} | 48 + doc/{goals.txt => goals.md} | 7 +- doc/{README.BSD => license/LICENSE.BSD} | 2 +- doc/{README.GPL => license/LICENSE.GPL} | 16 +- doc/{README.KOS => license/LICENSE.KOS} | 0 doc/{README.LGPL => license/LICENSE.LGPL} | 11 +- doc/{dreamcast => }/modem.txt | 56 - doc/{coding_style.txt => style.md} | 0 examples/dreamcast/filesystem/browse/Makefile | 29 + examples/dreamcast/filesystem/browse/browse.c | 371 +++++++ examples/dreamcast/filesystem/browse/browse.h | 28 + .../dreamcast/filesystem/browse/romdisk/file.txt | 1 + .../filesystem/browse/romdisk/test/file2.txt | 1 + examples/dreamcast/{ => filesystem}/sd/Makefile | 0 .../dreamcast/{ => filesystem}/sd/ext2fs/Makefile | 0 .../{ => filesystem}/sd/ext2fs/sd-ext2fs.c | 0 .../dreamcast/{ => filesystem}/sd/mke2fs/Makefile | 0 .../{ => filesystem}/sd/mke2fs/Makefile.nonkos | 0 .../dreamcast/{ => filesystem}/sd/mke2fs/mke2fs.c | 0 .../{ => filesystem}/sd/speedtest/Makefile | 0 .../{ => filesystem}/sd/speedtest/sd-speedtest.c | 0 examples/dreamcast/readme.md | 123 +++ include/kos/nmmgr.h | 2 +- include/kos/version.h | 2 +- kernel/arch/dreamcast/exports-naomi.txt | 1 + kernel/arch/dreamcast/exports-pristine.txt | 1 + kernel/arch/dreamcast/hardware/pvr/pvr_prim.c | 288 ++--- kernel/arch/dreamcast/include/dc/video.h | 15 +- kernel/arch/dreamcast/sound/arm/main.c | 37 +- .../arch/dreamcast/sound/arm/stream.drv.prebuilt | Bin 3228 -> 3312 bytes kernel/arch/dreamcast/util/screenshot.c | 158 +-- kernel/fs/fs.c | 68 +- utils/pvrtex/approvaltest/.gitignore | 1 + utils/pvrtex/approvaltest/Makefile | 62 ++ utils/pvrtex/approvaltest/crate.png | Bin 0 -> 13777 bytes .../texture.dt | Bin 0 -> 32800 bytes .../texture.dt | Bin 0 -> 6016 bytes .../texture.dt | Bin 0 -> 43744 bytes .../preview.png | Bin 0 -> 20986 bytes .../texture.dt | Bin 0 -> 8224 bytes .../texture.dt.pal | Bin 0 -> 72 bytes .../texture.dt | Bin 0 -> 16416 bytes .../texture.dt.pal | Bin 0 -> 264 bytes .../texture.dt | Bin 0 -> 32800 bytes .../texture.tex | Bin 0 -> 32784 bytes .../texture.vq | Bin 0 -> 32784 bytes utils/readme.md | 28 + 55 files changed, 2270 insertions(+), 1863 deletions(-) create mode 100644 addons/readme.md delete mode 100644 doc/CHANGELOG create mode 100644 doc/CHANGELOG.md rename doc/{FAQ => FAQ.md} (68%) delete mode 100644 doc/LICENSE create mode 100644 doc/LICENSE.md rename doc/{README => README.md} (54%) rename doc/{RELNOTES => RELNOTES.md} (91%) rename doc/{goals.txt => goals.md} (97%) rename doc/{README.BSD => license/LICENSE.BSD} (98%) rename doc/{README.GPL => license/LICENSE.GPL} (95%) rename doc/{README.KOS => license/LICENSE.KOS} (100%) rename doc/{README.LGPL => license/LICENSE.LGPL} (97%) rename doc/{dreamcast => }/modem.txt (62%) rename doc/{coding_style.txt => style.md} (100%) create mode 100644 examples/dreamcast/filesystem/browse/Makefile create mode 100644 examples/dreamcast/filesystem/browse/browse.c create mode 100644 examples/dreamcast/filesystem/browse/browse.h create mode 100644 examples/dreamcast/filesystem/browse/romdisk/file.txt create mode 100644 examples/dreamcast/filesystem/browse/romdisk/test/file2.txt rename examples/dreamcast/{ => filesystem}/sd/Makefile (100%) rename examples/dreamcast/{ => filesystem}/sd/ext2fs/Makefile (100%) rename examples/dreamcast/{ => filesystem}/sd/ext2fs/sd-ext2fs.c (100%) rename examples/dreamcast/{ => filesystem}/sd/mke2fs/Makefile (100%) rename examples/dreamcast/{ => filesystem}/sd/mke2fs/Makefile.nonkos (100%) rename examples/dreamcast/{ => filesystem}/sd/mke2fs/mke2fs.c (100%) rename examples/dreamcast/{ => filesystem}/sd/speedtest/Makefile (100%) rename examples/dreamcast/{ => filesystem}/sd/speedtest/sd-speedtest.c (100%) create mode 100644 examples/dreamcast/readme.md create mode 100644 utils/pvrtex/approvaltest/.gitignore create mode 100644 utils/pvrtex/approvaltest/Makefile create mode 100644 utils/pvrtex/approvaltest/crate.png create mode 100644 utils/pvrtex/approvaltest/tests/approved/-i_crate_png_-o_tests_run_texture_dt/texture.dt create mode 100644 utils/pvrtex/approvaltest/tests/approved/-i_crate_png_-o_tests_run_texture_dt_-f_argb4444_-d_-c_64_-m_quality_-r_-R/texture.dt create mode 100644 utils/pvrtex/approvaltest/tests/approved/-i_crate_png_-o_tests_run_texture_dt_-f_normal_-m/texture.dt create mode 100644 utils/pvrtex/approvaltest/tests/approved/-i_crate_png_-o_tests_run_texture_dt_-f_pal4bpp_-d_-p_tests_run_preview_png/preview.png create mode 100644 utils/pvrtex/approvaltest/tests/approved/-i_crate_png_-o_tests_run_texture_dt_-f_pal4bpp_-d_-p_tests_run_preview_png/texture.dt create mode 100644 utils/pvrtex/approvaltest/tests/approved/-i_crate_png_-o_tests_run_texture_dt_-f_pal4bpp_-d_-p_tests_run_preview_png/texture.dt.pal create mode 100644 utils/pvrtex/approvaltest/tests/approved/-i_crate_png_-o_tests_run_texture_dt_-f_pal8bpp_-C_64_-d/texture.dt create mode 100644 utils/pvrtex/approvaltest/tests/approved/-i_crate_png_-o_tests_run_texture_dt_-f_pal8bpp_-C_64_-d/texture.dt.pal create mode 100644 utils/pvrtex/approvaltest/tests/approved/-i_crate_png_-o_tests_run_texture_dt_-s/texture.dt create mode 100644 utils/pvrtex/approvaltest/tests/approved/-i_crate_png_-o_tests_run_texture_tex/texture.tex create mode 100644 utils/pvrtex/approvaltest/tests/approved/-i_crate_png_-o_tests_run_texture_vq/texture.vq create mode 100644 utils/readme.md diff --git a/README.md b/README.md index 021455fd..c0f154f5 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,6 @@ - <!-- PROJECT LOGO --> -<br /> <div align="center"> <h1 align="center"><strong>KallistiOS</strong></h1> - <p align="center"> Independent SDK for the Sega Dreamcast <br /> @@ -13,61 +10,50 @@ # Overview -KOS is an unofficial development kit for the SEGA Dreamcast game console with some support for the NAOMI and NAOMI 2 arcade boards. +KallistiOS is a development library and operating system for the Sega Dreamcast game console, developed independently from Sega entirely by free software developers. Its flexible permissive license allows both homebrew and commercial use with little restrictions besides proper attribution. As a result, it powers most homebrew and commercial indie releases for the platform. Interfaces and drivers are included for a significant portion of the Dreamcast's hardware capabilities and accessories, including modifications created by hobbyists. -KOS was developed from scratch over the internet by a group of free software developers and has no relation to the official Sega Katana or Microsoft Windows CE Dreamcast development kits. This has allowed it to fuel a thriving Dreamcast homebrew scene, powering many commercial releases for the platform over the years. It supports a significant portion of the Dreamcast's hardware capabilities and a wide variety of peripherals, accessories, and add-ons for the console, including custom hardware modifications that have been created by the scene. +KallistiOS offers a modern, programmer friendly environment for the vintage Dreamcast system. The distribution includes [scripts for building and installing a cross-compiling toolchain](utils/dc-chain/README.md) using the latest GCC, Binutils, and Newlib. This allows for full support for C17 and C++20 standards and libraries, as well as various POSIX APIs. Preliminary support exists for C23, C++23, and Objective-C. -Despite the console's age, KOS offers an extremely modern, programmer-friendly development environment. Using the latest GCC toolchain, it supports the entirety of C17 and C++20 including their standard libraries, along with support for portions of C23, C++23, Objective-C, and various POSIX APIs. Additionally, KOS-ports offers a rich set of add-on libraries such as SDL, OpenGL, OpenAL, and Lua for the platform. +KallistiOS also features a package manager called [**_kos-ports_**](https://github.com/KallistiOS/kos-ports) which gives developers the power to build and include a rich set of add-on libraries for various common audiovisual formats (jpg, png, mp3, ogg, mpeg), compression formats (libbz2, zlib), scripting languages (Lua, Tcl, MicroPython), gaming APIs (OpenGL, OpenAL, SDL), and many more. -# Features -## Core Functionality +### Core Functionality * Concurrency with Kernel Threads, C11 Threads, C++11 `std::thread`, POSIX threads * Virtual Filesystem Abstraction * IPv4/IPv6 Network Stack * Dynamically Loaded Libraries and Modules * GDB Debugger Support -## Dreamcast Hardware Support -* GD-ROM Optical Drive +### Dreamcast Hardware Support +* Optical Disc Drive * Low-level 3D PowerVR Graphics * SH4 ASM-Optimized Math Routines * SH4 SCIF Serial I/O * DMA Controller -* Flashrom Filesystem +* FlashROM Filesystem * AICA SPU Sound Processor Driver * Cache and Store Queue Management * Timer Peripherals, Real-Time Clock, Watchdog Timer * Performance Counters * MMU Management -* BIOS Font Rendering -## Peripherals and Accessory Support -* Controller, ASCII Pad -* Arcade Stick, Twin Stick, Mission Stick -* Keyboard -* Mouse -* Visual Memory Unit -* Puru Puru Vibration Pack -* Seaman Microphone -* Dreameye Webcam -* Lightgun -* Racing Wheel -* Fishing Rod -* Samba De Amigo Maracas -* Dance Mat -* Dial-up Modem -* Broadband Adapter -* LAN Adapter -* VGA Adapter -* SD Card Reader +### Peripherals and Accessory Support +* Standard controllers, expanded controllers with additional buttons and dual analog sticks +* Arcade Sticks and Twin Sticks +* Lightguns, Racing Wheels, Fishing Rods, Samba Maracas, Dance Mat +* Visual Memory Unit, Memory Cards, Puru Puru/Jump Vibration Pack, Microphone, Dreameye Webcam +* 33.6K and 56K Dial-up Modems, 100/10Mbps "Broadband Adapter", 10Mbps "LAN Adapter" +* RCA, S-video, RGB, and VGA output +* Serial-based SD card readers -## Hardware Modification Support -* IDE Hard Drive -* 32MB RAM Upgrade -* Custom BIOS Flashroms +### Hardware Modification Support +* IDE hard drive, 32MB RAM upgrade, custom BIOS flashROMs # Getting Started -A beginner's guide to development for the Sega Dreamcast along with detailed instructions for installing KOS and the required toolchains can be found on the [Dreamcast Wiki](https://dreamcast.wiki/Getting_Started_with_Dreamcast_development). Additional documentation can be found in the docs folder. +A beginner's guide to development for the Sega Dreamcast along with detailed instructions for installing KOS and the required toolchains can be found on [dreamcast.wiki](https://dreamcast.wiki/Getting_Started_with_Dreamcast_development). Additional documentation can be found in the docs folder. + +# Licensing +KallistiOS itself is licensed under the BSD-like **KOS License**. **Attribution is not optional**. Additionally, this distribution contains code licensed under various free software licenses. +See [LICENSE.md](doc/LICENSE.md) for more information on licensing, as well as [LICENSE.KOS](doc/LICENSE.KOS) for the actual **KOS License** text. # Examples Once you've set up the environment and are ready to begin developing, a good place to start learning is the examples directory, which provides demos for the various KOS APIs and for interacting with the Dreamcast's hardware. Examples include: @@ -96,7 +82,7 @@ Once you've set up the environment and are ready to begin developing, a good pla - Interactive Lua interpreter terminal # Resources -[Dreamcast Wiki](http://dreamcast.wiki): Large collection of tutorials and articles for beginners +[dreamcast.wiki](http://dreamcast.wiki): Large collection of tutorials and articles for beginners [Simulant Discord Chat](https://discord.gg/bpDZHT78PA): Home to the official Discord channel of KOS [DCEmulation Forums](http://dcemulation.org/phpBB/viewforum.php?f=29): Goldmine of Dreamcast development information and history IRC Channel: irc.libera.chat `#dreamcastdev` diff --git a/addons/readme.md b/addons/readme.md new file mode 100644 index 00000000..2d064f36 --- /dev/null +++ b/addons/readme.md @@ -0,0 +1,16 @@ +# KallistiOS Addons + +The Addons system allows the creation of standalone addon packages, similar to the ports in the kos-ports system. + +## Installing addons +To install an add-on, simply place the addon directory inside this directory. Addons in this directory are automatically built when KallistiOS is built. Once built, the addon's headers will be available in `addons/include` and the built libraries in `addons/lib`. These paths are automatically included in your build flags if you are using the KOS Makefile system. You may disable an addon by creating an `unused` directory and moving the addons within, or you may uninstall an addon outright by simply deleting its directory. + +A few addons are supplied with KallistiOS. These include: +- [**libkosext2fs**](libkosext2fs/): A filesystem driver for the ext2 filesystem +- [**libkosfat**](libkosfat/): A filesystem driver for FAT12, FAT16, and FAT32 filesystems, with long name support +- [**libkosutils**](libkosutils/): Utilities: Functions for B-spline curve generation, MD5 checksum handling, image handling, network configuration management, and PCX images +- [**libnavi**](libnavi/): A flashROM driver and G2 ATA driver, historically used with Megan Potter's Navi Dreamcast hacking project +- [**libppp**](libppp/): Point-to-Point Protocol support for modem devices + +## Creating addons +Although KallistiOS currently only supports the Sega Dreamcast platform, the system is designed to support build quirks for various platforms. Each addon contains a `kos` directory, which would contain `$(KOS_ARCH).cnf` files (so, as of now, just `dreamcast.cnf`). The addon's `Makefile` contains build instructions to build the addon for KallistiOS, while the `dreamcast.cnf` contains quirks specific to building for the Dreamcast. If there are no platform-specific build quirks, an empty file named `dreamcast.cnf` still needs to exist for the build system to recognize that Dreamcast is a valid target platform for the addon. diff --git a/doc/CHANGELOG b/doc/CHANGELOG deleted file mode 100644 index d8f3a52a..00000000 --- a/doc/CHANGELOG +++ /dev/null @@ -1,1128 +0,0 @@ -Platform independent changes are marked with '***', otherwise the -applicable platform is listed. The name/initials of the person who -is responsible for the change are listed in [square brackets] for most -versions (where they are missing from early versions, assume that they -should be attributed to Megan Potter). - -KallistiOS version 2.1.0 ----------------------------------------------- -- *** Cleaned up generated stubs files on a make clean [Lawrence Sebald == LS] -- DC Added a function to detect if the program is being run on a retail - Dreamcast or a Set5.xx device [LS] -- DC Fixed an issue with the SIP driver that would cause programs to freeze - if a microphone was connected at program startup [LS] -- DC Rearranged the SIP driver to get rid of the internal buffer [LS] -- *** Removed the GBA, ia32, and ps2 ports. If someone really wants them back - and wants to maintain them, let me know. [LS] -- DC Fixed fmath functions so they compile in C99 mode [LS] -- *** Cleaned up warnings with -std=gnu99 for C code [LS] -- *** Cleaned up warnings with -std=c99 for C code [LS] -- DC Changed the PVR render-to-texture support to allow for two render-to- - texture passes without an intervening render-to-screen pass [LS] -- *** Fixed an issue in fs_ext2 that would allow you to rename a directory to - be a child of itself, thus chopping it off from the rest of the - directory tree [LS] -- *** Added a fs_readlink() function to resolve symlinks [LS] -- *** Fixed the vqenc and kmgenc utilities for compilation on a 64-bit OS [LS] -- DC Corrected an issue with video cable detection with GCC 4.8.x [LS] -- DC Added support for ATA devices on the G1 bus [LS] -- DC Fixed an infinite loop in ATA initialization if nothing except the - GD-ROM drive is connected [LS] -- *** Added documentation for the addons tree [LS] -- DC Made the hardware auto-initialization/shutdown functions weakly linked so - that they can be overridden without modifying KOS [LS] -- DC Corrected render-to-texture mode so that you don't have to wait for a - vblank to actually render to the texture [LS] -- *** Modified fs_stat to conform (mostly) to the POSIX standard for the stat - function [LS] -- DC Modified the cdrom driver so that it will set itself as the active ATA - device before trying to do any CD related reading [LS] -- DC Fixed potential race conditions between the cdrom code and g1ata [LS] -- DC Fixed full sector reading of non-data CDs (thanks to SWAT for pointing - out that it needed fixing) [LS] -- DC Added many new matrix/vector math-related macros [Josh Pearson == JP] -- *** Added libppp for dialup internet access to the addons tree [LS] -- *** Added DNS resolver functions getaddrinfo() and gethostbyname() [LS] -- *** Fixed a problem where poll() would deadlock if the timeout expired [LS] -- *** Modified getaddrinfo() so that it would try multiple times to contact - the DNS server with a timeout between messages [LS] -- DC Various cleanups and modifications to the cdrom code, including subcode - reading functionality, DMA-based sector reads, and using a recursive - mutex for the G1 lock [Donald Haase == DH] -- DC Fixed pvr_mem_available() to report all available texture memory, not - just what was available in the pvr_malloc() arena [LS] -- DC Added a utility function to the PVR code for controlling the cheap shadow - scale register [LS] -- DC Added an example of the PVR's cheap shadow functionality [LS] -- DC Added a tool for generation of bumpmaps that was sent to the mailing list - all the way back in 2005 [Fredrik Ehnbom == FE] -- *** Added the fs_path_append() function to append path components [LS] -- *** Added a nanosleep() function to koslib by request [LS] -- *** Added rewinddir() support to the VFS and several filesystems [LS] -- *** Added in C11 threading support [LS] -- *** Added UDP Lite support to the network stack [LS] -- DC Adjust sq_cpy() to use a const pointer for the source [JP] -- DC Retrieve the IP address from dcload-ip when we can [LS] -- *** Added the mutex_unlock_as_thread() function to allow an IRQ handler to - unlock a mutex as if it were a specified thread [LS] -- DC Fixed a deadlock issue in the G1ATA code related to the use of a recursive - mutex for locking -- Thanks to SWAT for noticing the issue [LS] -- DC Added support for German (DE) and UK keyboards [Christian Groessler == CG] -- DC Minor cleanups to the flashrom code [DH && LS] -- DC Added light gun support roughly based on how it is done in libronin [LS] -- DC Added a very simple light gun example [LS] -- DC Added support for Spanish keyboards [Xavier Vallejo == XV] -- DC Added rudimentary support for OCRAM in linker script [CG] -- *** Added the C11 aligned_alloc() function [LS] -- *** Added fs_fstat and modified the fstat function in the newlib handlers to - use that or fake it for filesystems that don't support fstat [LS] -- DC Added fstat support to fs_iso9660 and fs_vmu [LS] -- *** Added fstat support to fs_ext2, fs_ramdisk, fs_romdisk, and fs_pty [LS] -- *** Changed libc/koslib/byteorder.c functions to use the <arch/byteorder.h> - macros, instead of being hard-coded as little-endian [LS] -- DC Added Opus decoding example using libopusplay [LS] -- *** Removed jiffy "counter" that wasn't actually counting anything [LS] -- *** Added the thd_create_ex() function to create a thread with a given set of - attributes set at thread creation (allowing us to expand that list of - attributes a bit more easily than what we would have to do otherwise) [LS] -- *** Made thd_mode local to the threading code (if you need to get the mode at - runtime, for some reason, use the new thd_get_mode() function) [LS] -- DC Patched the GCC patch so that GCC 4.7.x compiles cleanly with a newer host - GCC version [Luke Benstead == LB] -- *** Fixed GCC version detection in the environ script for some locales [LS] -- DC Made it so that PVR register access is done through a volatile pointer, - as it should be to ensure GCC doesn't mess with it any [LS] -- DC Copy function data from maple device during hot-swap poll if already - attached [Joe Fenton == JF] -- DC Fixed the clobber list of several matrix-related assembly blobs. Thanks - to kazade at DCEmulation for pointing out the issue [LS] -- *** Added the uname() function to retrieve the current kernel version [LS] -- *** Added fs_fat for SD cards and g1ata devices [LS] -- *** Added thd_each() function to iterate over all current threads [LB] -- *** Added dirname() and basename() functions to koslib [LS] -- DC Clean up strict aliasing rule violations and remove -fno-strict-aliasing - from the KOS_CFLAGS [mrneo240 && LS] -- NAO Added preliminary support for compiling to target the NAOMI and NAOMI 2 - arcade systems with a NetDIMM board attached [LS] -- NAO Added a simple utility to parse NetDIMM binary header data [LS] -- DC Fixed AICA crash when volume is set to 255 [Andress Barajas == AB] -- DC Placed a cap on the amount of samples requested by AICA so we don't get - a Buffer overflow [AB] -- DC Added a very simple minifont and an example of its use [LS] -- NAO Added a NAOMI-specific version of fb_console using minifont [LS] -- NAO Cleaned up the build process to not build certain parts of the DC - hardware support that are either not useful or not (yet?) functional on - NAOMI [LS] -- DC Fixed fs_path_append unsafe pointer arithmetic and made it smarter [AB] -- DC Fixed fs_ramdisk_attach so it does not cut off the first character of - filename when attaching [AB] -- DC Moved max open file constants for CD, Ramdisk, Romdisk to opts.h [AB] -- DC Removed stale lwIP examples [LS] -- DC Removed fs_dclnative declarations from opts.h [LS] -- DC Ported lwIP/httpd example to the built-in network stack [LS] -- DC Added functions to set the icon and color of a VMU that is shown in - the BIOS menu, as well as functionality to read the VMU icons from the - BIOS font [AB] -- DC Added a function to draw an XBM image on a single VMU screen [AB] -- *** Fixed issues with erasing long file name entries and empty files in - libkosfat [Thomas Sowell == TS] -- *** Updated time_t to be 64-bits on Newlib 3.0 and later and fixed Newlib's - type for ino_t to be sensible in Newlib 3.3.0 patch [TS, LS] -- *** Fixed argument check in sem_init. Thanks to TapamN at DCEmulation for - noticing the issue and proposing the fix [LS] -- NAO Updated the NAOMI header parsing tool to also support creating NAOMI - binaries and renamed it to naomibintool [LS] -- NAO Added naominetboot - a tool to upload NAOMI formatted binaries to a - NetDIMM board for executing on the NAOMI [LS] -- DC Prevent double-initialization of Maple devices from breaking things [LS] -- DC Added a user data pointer to snd_stream [LS] -- DC Added support for -fstack-protector to Newlib 3.3 patch [LS] -- DC Fixed wasted PVR ram in buffer allocation code [LB] -- *** Added getsockopt to TCP and UDP [LB] -- DC Corrected sizeof in fs_dclsocket that referenced wrong struct [LB] -- *** Fixed spinlock that was left locked on key error in the - kthread_getspecific function [LS] -- DC Added a modem PPP example [LB] -- DC Fixed register usage and counter in modem driver [LB] -- *** Fixed invalid read when closing UDP socket [LB] -- *** Fixed sending packets with an IP address of 0.0.0.0 [LB] -- *** Added code to attempt to lease the specified address via DHCP, if set [LB] -- DC Fixed controller capability masks [Artemio Urbina == AU] -- *** Added simple _times_r syscall for Newlib [LS] -- *** Fixed length of DHCP options area to always be at least 64 [LB] -- *** Fixed DHCP retransmit timeout to 4 seconds, per spec [LB] -- DC Added code to (partially) read DreamKey ISP information [LB] -- DC Fixed G1 reactivation code for modified BIOSes [Eric Fradella == EF] -- DC Added support for consoles modded with 32MiB of RAM [TS && EF] -- DC Fixed wildly out of range start for pvrmark benchmark [Falco Girgis == FG] -- DC Removed "navi" subarch, moved code to addons/libnavi [LS] -- *** Removed (completely unsupported) support for GCC 3.x and older [LS] -- *** Add timespec_get C11 function to koslib's libc [LS] -- DC Added timer_ns_gettime64() and performance counters [AB] -- *** Added check to allow strict C++17+ to use timespec_get [FG] -- *** Cleaned up all compiler warnings for all toolchains for KOS [FG] -- *** Add support for compiling with LTO [Paul Cercueil == PC] -- DC Fixed calling newlib's exit after returning from main so functions - registered with atexit() are called [Colton Pawielski == CP] -- *** Cleaned up + documented RTC driver, added support for setting time [FG] -- DC Cleaned up the register access in video to match pvr [DH] -- DC Fixed various shutdown functions to be safer to call in an interrupt [DH] -- DC Cleaned up asic functions and corrected potential bugs [DH] -- DC Removed cooperative threading mode -- threading is always preemptive [DH] -- DC Added early user init function [PC] -- *** Added Objective-C example testing/demonstrating C Runtime [FG] -- *** Updated Objective-C examples to include more thorough testing of the - runtime aspects of the language [Andrew Apperley == AA] -- DC Improve fipr() and fipr_magnitude_sqr() functions [PC] -- DC Add optimized bit-reverse function && vmu_draw_lcd_rotated() [PC] -- DC Update bfont example for Dreamcast-specific characters [DH] -- DC Add example for VMU speaker use [DH && FG] -- DC Add example for rumble accessory use [DH] -- *** Split init flags from <arch/arch.h> into <kos/init.h> [LS] -- *** Implemented posix_memalign() from stdlib.h [FG] -- *** Added clock_gettime(), clock_settime(), clock_getres() [FG] -- DC Refactored controller API, added capability groups and types [FG] -- DC VMU driver update for date/time, buttons, buzzer, and docs [FG] -- DC Add spinlock_trylock macro [LS] -- *** Simplify kthread_once_t into a simple variable rather than a struct [LS] -- *** Simplify sync primitive structures to remove initialized member [LS] -- *** Move definition of __RESTRICT from <sys/_types.h> to <kos/cdefs.h> [LS] -- DC Added DMA YUV converter path. Adjust some name of related #defines. - Added yuv examples [AB] -- *** Added GCC builtin functions for supporting all of C11 atomics [FG] -- *** Added toolchain and KOS support for C/C++ compiler-level TLS [CP && FG] -- DC Added vmu functions to check/enable/disable the extra 41 blocks [AB] -- *** Added driver for the SH4's Watchdog Timer peripheral [FG] -- DC Added Moop powered fast path to sq_cpy, added TapamN pvr related sq - functions [AB] -- DC Garbage-collect network stack [PC] -- DC Rework romdisks [PC] -- DC Refactored g2bus API, converted magic values to macros, added - dc/fifo.h, dc/dmac.h file [AB] -- DC Fixes and improvements for G1 ATA devices [Ruslan Rostovtsev == RR] -- DC Fixed and improved SCIF SPI reading for use with SD [RR] -- DC SH4 cache improvements [RR] -- DC Optimized separating stereo PCM [RR] -- DC Refactored sfx and streaming to add SQ fast path [RR] -- DC Added 4/8-bit wav support to sfx and streaming [RR] -- *** Added <netinet/tcp.h> header file and required option [LS] -- *** Added <netinet/udp.h> and <netinet/udplite.h> headers and move the related - content from <netinet/in.h> [LS] -- *** Added __weak, __used, likely() and unlikely() [FG] -- DC Added Maple-specific KOS_INIT_FLAGS() which allow for GC-ing unused drivers [FG] -- DC Added basic example for micropython KOS port [Aaron Glazer == AG] -- DC Improved performance of IRQ context save / restore [PC] -- DC Increased resolution of TMU timers + date/time functions [FG && PC] -- *** Increased resolution of clock() and CLOCKS_PER_SEC to microseconds [FG] -- DC Added centralized header for Dreamcast Memory map (arch/memory.h) [DH] -- DC Refactored multibuffer video modes and added example of their use [DH] -- DC Created separate performance counter driver and enhanced API [FG] -- *** Implemented _POSIX_CPUTIME in clock_gettime() using perf counter timer [FG] -- *** Implemented scandir() and alphasort() POSIX functions from dirent.h [FG] -- DC Added new driver for the SH4's UBC + high-level breakpoint API [FG] -- DC Add support for French AZERTY keyboards [PC] -- DC Increased the resolution of pvr_stats_t from milli to nanoseconds [FG] -- *** Added support for modifying scheduler frequency at runtime [FG] -- *** Add support for worker threads [PC] -- DC Added new System Calls module [AB] -- DC Add timer_spin_delay_{us,ns} and use them in scif-spi [PC] -- *** Added thread support for tracking CPU time + updated clock_gettime() [FG] -- *** Added support for one-shot timers [PC] -- DC Use one-shot timers for timeout and a proper polling mechanism in modem [PC] -- *** Added pvrtex utility by TapamN to utils [DF == Daniel Fairchild] -- DC Added a set of known working purupuru bit patterns and a browsing mechanism to the rumble example [DF] -- *** Added full support for <time.h> additions from C23 standard. [FG] -- *** Fixes mutexes not working properly [PC] -- DC fs_dcload: Set errno on error in dcload_stat() [PC] -- *** Create romdisks with bin2c instead of bin2o [PC] -- *** Implemented versioning scheme for KOS API [FG && DH && LB] - -KallistiOS version 2.0.0 ----------------------------------------------- -- DC Broadband Adapter driver fixes [Megan Potter == MP] -- *** Imported a new version of lwIP, with proper sockets lib [MP] -- DC Added new httpd example for lwIP [MP] -- x86 Added incomplete ia32 port [MP] -- DC Added new DC examples for Parallax (raster_melt, sinus, delay_cube, - rotocube) [MP] -- *** Added svnpush.py script for pushing repositories on the web [MP] -- DC Added genmenu module and example in Tsunami [Megan Potter == MP] -- DC Added hello-mp3 example [MP] -- DC 320x240 PAL mode [mekanaizer == MK] -- *** Fixed vqenc and kmgenc headers to be ANSI compliant [MP] -- *** New addons/ports build system [MP] -- *** Moved most addons/ports into their own tree/distribution [MP] -- *** Moved several incorrectly placed pieces into libkosutils [MP] -- *** Imported port of Lua 5.0 [MP] -- DC Added Tsunami Matrix class [MP] -- DC Various improvements to Tsunami classes [MP] -- *** Major build system overhaul (see RELNOTES) [MP] -- DC Improved MII/link status handling for BBA driver [MP] -- *** Added NONE thread mode [MP] -- *** lwIP select fixes [Walter van Niftrik == WvN] -- DC GDB stub fixes [Richard Moats == RM] -- *** New bin2c [Gil Megidish == GM] -- *** Updated genromfs [MP] -- DC Fixed and re-enabled SPU DMA module [MP] -- DC Cleaned up PVR DMA functions, adding support for different DMA targets [MP] -- DC Floating point register support for the GDB stub [RM] -- DC Added G2 DMA pausing for G2 bus read/write calls [MP] -- *** Added UDP sendto/recvfrom calls in lwIP [MP] -- DC Added DNS client lwIP example [MP] -- DC Added ISP settings code to flashrom module [Sam Steele == SS, DP] -- DC Added ISP settings example [MP] -- *** Added gethostbyname support to lwIP port [MP] -- DC Updated netcfg to load settings from flashrom [MP] -- DC Cleaned up DC modem code and added new dialing functions [MP] -- DC Store Queue and Matrix translation speed ups [Jim Ursetto = JU] -- DC Support for DMAed vertex buffers in PVR [MP] ...<truncated>... hooks/post-receive -- A pseudo Operating System for the Dreamcast. |