I've always wanted to build my own computer system, OS and all, which would be, ahem, perfected. I designed an ISA called SubSky and wrote an emulator/VM implementing it, and made a language + compiler. (It's kinda like UXN in nature, actually, just 32-bit and more 2000s-era than 80s-era.) A 16-opcode, 3-operand RISC with an operand/"pseudoregister" referring to the stack. I'll have to publish it sometime. I'm making a videogame for it.

Cc: @rl_dane (it didn't seem right to reply to the thread)

@golemwire

Awesome! I'd love to see a 16/32-bit 68k-inspired cousin to #uxn.

Someday I wanna develop a GUI system that's purely 1024x768 monochrome, just to prove that we don't need truecolor, 4k, and all that jazz.

Follow

@rl_dane @cerement Currently, the graphics system uses 24-bit color, plus an alpha channel for transparency. It supports setting individual pixels, as well as basic image buffer rendering which supports nearest-neighbor scaling. Rotation is not supported, as I deemed it too high-level for this system; although, via negative scales, you can effectively flip the image 90° 180° etc.

This is in the standard Devices specification, and is implemented in the emulator.

@rl_dane @cerement I've considered doing paletted color instead of 24-bit color. Given that you usually don't need that much color, I might step the graphics down a bit to make it more minimalistic.

The sort of level of "low-tech" I'm going for is something like a computer with 1 -- 4GB RAM, one core at 0.3 -- 1GHz. Again this isn't for nostalgia and definitely not for historical accuracy; it's more for simpler computing with less bloat. And because I enjoy designing computers.

@golemwire @cerement

What about color cells? You can save a ton of VRAM and even bandwidth by having high res mono with color cells or raster tables (i.e. set BG=a, fg=b, starting at line 512)

@rl_dane @cerement SubSky's supposed to be easy to program for (in a low-level language), so I feel like color cells would be too hard to work with.
Here's a demo of the palette I have in mind. The colors have been rearranged since I made this demo image, but nonetheless there are a few short of 256 colors here so that'd be 1 byte per pixel.

@rl_dane Some notes on color indexes, from my bobcolor.s lib (for the videogame; it uses this palette):
A bobcolor color index can usually be interpreted as:
0 1 2 3 4 5 6 7
Brightness Saturation Type (often hue)
with Saturation descending (keeping RGB values generally ascending).
Type:
4-15: the 12 hues
0-3: other types

@rl_dane The SubSky CPU can only R/W one byte or four bytes at a time, so unfortunately I need to avoid e.g. 2 bytes per pixel, as well. (Still unsure about how to handle audio with this limitation...)

Sign in to participate in the conversation
Librem Social

Librem Social is an opt-in public network. Messages are shared under Creative Commons BY-SA 4.0 license terms. Policy.

Stay safe. Please abide by our code of conduct.

(Source code)

image/svg+xml Librem Chat image/svg+xml