Giter Site home page Giter Site logo

slithymatt / x16-cga Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 46 KB

CGA palette for X16 with utilities and demos using it.

License: GNU General Public License v3.0

C 23.58% Assembly 55.13% Visual Basic 11.65% Shell 9.64%
commanderx16 commander-x16 demo cga pcjr tandy1000 palette bitmap

x16-cga's Introduction

x16-cga

CGA palette for X16 with utilities and demos using it. Build scripts require bash shell to run. If on Windows, using the Git bash shell is recommended.

Palette

Indices 0-15 (Full 16-color Palette, aka PC-Jr. or Tandy): black,blue,green,cyan,red,magenta,brown,lt. gray,dk. gray,lt. blue,lt. green,lt. cyan,lt. red,lt. magenta,yellow,white

Offset 1, indices 16-19 (CGA Mode 4 Palette 0, low intensity): black,green,red,brown

Offset 2, indices 32-35 (CGA Mode 4 Palette 0, high intensity): black,lt. green,lt. red,yellow

Offset 3, indices 48-51 (CGA Mode 4 Palette 1, low intensity): black,cyan,magenta,lt. gray

Offset 4, indices 64-67 (CGA Mode 4 Palette 1, high intensity): black,lt. cyan,lt. magenta,white

Offset 5, indices 80-83 (CGA Mode 5 Palette, low intensity): black,cyan,red,lt. gray

Offset 6, indices 96-99 (CGA Mode 5 Palette, high intensity): black,lt. cyan,lt. red,white

Offset 7, indices 112-115: low intensity green-scale

Offset 8, indices 128-131: high intensity green-scale

Offset 9, indices 144-147: low intensity amber-scale

Offset 10, indices 160-163: high intensity amber-scale

Offsets 11-15, indices 176-255: Spare

Tools, Demos, and Data

build_tools.sh - Build the toolchain for generating CGA graphics demos on the X16.

build_prg.sh - Builds an X16 PRG file from a raw image data file. You can use GIMP to export an indexed image file (GIF or PNG) to this format (*.data).

You can use the sample data files in this repo to create an example PRG to view an image as an X16 bitmap.

Example:

  ./build_prg.sh x16cga640.data 640 2 4

The arguments are as follows: raw data file name, bitmap width (must be 640 or 320), color bit depth (must be 2 or 4), palette offset (must be between 0 and 15)

Please note that 2-bit color means 4 color values and 4-bit color (CGA palette) means 16 color values (all available CGA colors).

The palette offset argument is optional. 2-bit bitmaps will default to palette offset 1 (black/green/red/brown). 4-bit bitmaps will default to palette offset 0. Please note that at this time, palette offset 0 is the only full 16-color offset. Selecting any other offset with a 4-bit bitmap will likely result in a mostly black image.

cga.bas - A BASIC script that can be loaded and run within X16 BASIC to change to the CGA palette.

x16cga320.data - A raw export of x16cga320.png, which is a 4-color 320x240 bitmap. The PNG uses what would be palette offset 4. However, you can use build_prg.sh to load it into the X16 with any of the emulated CGA palettes (even the first four colors of offset 0).

x16cga640.data - A raw export of x16cga640.png, which is a 4-color 640x480 bitmap. The PNG uses what would be palette offset 4.

x16tga.data - A raw export of x16tga.png, which is a 16-color 320x240 bitmap. The PNG uses the PCJr/Tandy 16-color palette, which is palette offset zero with this toolchain.

Running in X16 Emulator

PRG files built with this project can be autoloaded and run by the X16 emulator.

Example:

  path/to/x16emu -prg x16cga640.prg -run

This will fill the emulator screen with the image. The program runs in an infinite loop after loading the image, so the emulator will need to be shut down or restarted to stop it. Note that the display is scaled up 2x to make a 320 pixel-wide bitmap fill it.

Note on VERA limitations

While this toolchain supports creating a 4-bit 640x480 bitmap, by default VERA does not have enough VRAM to support that, so it will fail at runtime, unless bank 2 of VRAM is enabled for a special emulator build. Most likely, the actual X16 hardware will only have VRAM banks 0 and 1 available to the user.

In order to not interfere with text on layer 0, the bitmap is loaded into VRAM starting at $04000. This means that a 4-bit bitmap that is 640 pixels wide could only be up to 358 pixels high.

x16-cga's People

Contributors

slithymatt avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.