A downloadable Fantasy Computer for Windows and Linux

CHROMA-60 is a Fantasy Computer created for #FCDEV_JAM. It is programmed in assembly language for an emulated 8-bit CPU and has a scanline based renderer that supports raster effects and allows for very colorful images despite the 1-bit display.

StatusReleased
CategoryTool
PlatformsWindows, Linux
Rating
(1)
AuthorArkia
Tags1-bit, 2D, fantasy-console, Retro

Install instructions

Download and extract the archive, then run CHROMA-60. Also be sure to read the manual.

Download

Download
CHROMA60-win64.zip 813 kB
Download
CHROMA60-win32.zip 731 kB
Download
CHROMA60-linux.tar.gz 474 kB
Download
source.zip 55 kB

Comments

Log in with itch.io to leave a comment.

Here's a Windows command line port of the official assembler the dev made a few months back, for those who can't get the Python version to work. From Arkia on Discord DM's: "Alright I did it. I wrote a real assembler in C. It works exactly like the python script does and cleans up a few very strange things I discovered while porting it (but still keeps some I'm too lazy to change)"

Also, if you want to toy around with a formerly-unreleased version that has a 4-channel PSG, an updated renderer that allows for stuff such as mid-line palette changes, a "Get Stack Pointer" instruction, some updates on the software side, some unfinished stuff that (indefinitely?) halted CHROMA-60 development, and some strange crash bug I don't know what could be the cause, check out this Twitter thread! I'm hoping someone could make a tracker or something on it!

Me testing this fantasy console for the first time:

I wish this would actually be back in dev.
(+1)

make it also for mac please

Hey, what programming language is this?

I want to program it to spray deadly neurotoxin at my enemies.

(+1)

Never mind... There's a manual here. Soaked in neurotoxin. Lovely.

Its Assembly

(1 edit)

Assembly language! It has a custom 8-bit fantasy architecture called the F8B25 (yeah, not the Fairchild F8!). It has sixteen 8-bit general-purpose data registers/accumulators, a 64K address space, and a pretty basic instruction set (which honestly shares some similarities to the 6502 and some RISC-type designs, but is more limited in the context of addressing modes).

Code density is just low to be honest. They sure had enough spare opcode space for add/subtract without carry, and a way to get the stack pointer value (which is certainly a must-need thing other 8-bit ISA's have, otherwise stack-based arguments is difficult, and multi-stacks are impossible).

Also, note that the manual has a few typos here and there. I downloaded the source code, and confirmed that some opcodes are misaligned, "PSH I" exists and ALS appears to be broken. I think "CMP R, I" might be broken too, in that it doesn't set the CARRY flag if the immediate operand is 0 (always clears it, since the AND-mask and +1 add are backwards), which may indicate the code that there was a borrow even though any unsigned value minus 0 doesn't produce one.

Also, I don't think the OVERFLOW flag's detection handles all cases correctly, since it literally just detects if the MSB of the destination register is flipped by an ADD/SUB/CMP.