Skip to content

ChetSimpson/KAOSToolkit

Repository files navigation

Introduction

The KAOS Toolkit is an in-development set of libraries and tools for importing, manipulating, converting, and exporting of multimedia resource files for use in retro computer game development.

Milestone 1 has been completed and Milestone 2 is currently in development.

Milestone 2 (In Development)

General work for this milestone

  • Address all remaining TODO tasks.
  • Review and correct/update documentation.
  • Review and correct/update unit tests.
  • Add ZX0 library dependency (external)
  • Add XML library dependency (external)

The following components will be added to the Core library

  • Bit Writer
  • Binary Writer
  • Add std::any and GUID type support to fixed variant

The following components will be added to the AssetFoo library

  • Composite media document with layer and object support (Part 1)
  • Tiled tileset and tilemap importing
  • Extended image implementation supporting multiple named and unnamed frames
  • Piskel animation import (generated by Piskel editor)
  • FLiC animation import (generated by AESprite editor)
  • CoCoMax II image import
  • McPaint image import
  • GIF image import.
  • PCX image import
  • WAV import
  • PNG export
  • Color layout for Apple IIgs
  • Color layout for Atari ST and STe
  • Color layout for Amiga
  • Planar pixel conversion
Milestone 1 - Completed 2023/01/16

The current version consists of initial core functionality, color conversion, pixel conversion, palette loading, and image loading. Also included is documentation for all classes, documentation for TC1014 (Tandy Color Computer 3) based image formats (CM3, HRS, MGE, RAT, and VEF), and 1,029 unit tests covering all components (676 for Core and 353 for AssetFoo).

The following components are provided in the Core library

  • KAOS specific exceptions
  • RGBA color representation.
  • Fixed Variant for common data types with built-in conversion between most supported data.
  • 2 dimensional point (vector2) and size (dimension2) representations for integral and decimal values.
  • Abstract Bitfield to provide a base interface for all named bitfield types.
  • Single Bitfield providing simple support for a single named bitfield with configurable position and size.
  • Split Bitfield providing advanced support for fields that have bitfields composed from two different locations in an integral value with configurable positions and sizes.
  • Empty Bitfield for situations where a placeholder with no size or position is required.
  • Box View providing a 2 dimensional view of sequential data (IE. std::vector and std::array) with iterator support.
  • Binary Reader for reading binary data from input streams with big and little endian support
  • Bit Stream Reader for reading individual bits from in-memory buffers.
  • Auxiliary functionality for string trimming and dynamic casting of std::unique_ptr types.

The following components are provided in the AssetFoo library

  • Color Layout representation providing information defining the size and details of red, green, blue, and alpha color components.
  • Color space providing RGB and Composite color indications.
  • Color Converter for converting colors between retro color formats and a modern RGBA representation.
  • Color map for maintaining lists of RGBA colors.
  • TC1014 specific color layout definitions.
  • TC1014 specific color converter implementation.
  • GIMP color map (palette) reader.
  • Packed Pixel Layout providing details of the position and size for various packed pixel formats.
  • Packed Pixel Converter providing facilities to convert between packed pixel formats and RGBA pixels.
  • Monochrome bitmap patterns
  • RGBA Image with support for efficient views and sub views of RGBA pixel data.
  • TC1014 image type providing common support for all TC1014 based images
  • TC1014 image reader type providing common support for image file formats common to the Tandy Color Computer 3 platform.
  • TC1014 based image implementation for CoCoMax III images that carries properties specific to the CM3 format including color animation, color cycling, and monochrome patterns.
  • TC1014 based image reader for CoCoMax III CM3 images.
  • TC1014 based image implementation for Hi-Res HRS images used by various programs on the Color Computer 3 including Davinci 3.
  • TC1014 based image reader for Hi-Res HRS images.
  • TC1014 based image implementation for ColorMax Deluxe MGE images that carries properties specific to the MGE format.
  • TC1014 based image reader ColorMax Deluxe MGE images.
  • TC1014 based image implementation for The Rat Graphics Package RAT images that carries properties specific to the MGE format.
  • TC1014 based image reader for The Rat Graphics Package RAT images.
  • TC1014 based image reader for OS-9 Level II VEF images supporting uncompressed and compressed images in 2, 4, and 16 colors.
  • PNG image reader.

About

The KAOS Toolkit for Retro Game Development

Resources

License

Stars

Watchers

Forks

Packages

No packages published