TomF,
@TomF@mastodon.gamedev.place avatar

Computers like the ZX Spectrum had each 8x8 block have 1 bit per pixel, and that 1 bit selects between two colours chosen by an 8-bit attribute. For the Spectrum the attribute had 3 bits for colour 0, 3 bits for colour 1, 1 bit to make them bright, and a completely pointless "flash" attribute.

But what if you had twice as many bits?

Well, you'd have four colours per pixel to choose from, and a 16-bit attribute chunk. So 16/4 = 4 bits per colour. Same as the Speecy. Buuuut....

TomF,
@TomF@mastodon.gamedev.place avatar

...what if the 16 bits were 3 colours of 5 bits, and a single bit to say whether colour 0 was black or white? Having the other 3 colours be one of 32 colours is veeeery interesting. That's twice as many as the C64!

TomF,
@TomF@mastodon.gamedev.place avatar

BTW it is distressing to me that the Speccy could have had the same palette as the C64 if they'd just used their bits better. Burning an entire bit for "flash" - a thing the CPU could have trivially done in SW - is just criminal. It also chewed about 10% of the ULA. We could have had 1-bit PCM sound with those gates!

mogwai_poet,
@mogwai_poet@mastodon.social avatar

@TomF Imagine, with just a few tweaks, it could've had the CGA 16 color palette

TomF,
@TomF@mastodon.gamedev.place avatar

@mogwai_poet UNTHINK THIS IMMEDIATELY.

mcmartin,
@mcmartin@mastodon.gamedev.place avatar

@TomF @mogwai_poet He said 16 color palette. The 16-color palette is more than fine.

I have to admit that my own experiments with the Speccy didn't go terribly well, because attribute clash was just ruinous, and unlike the C64 you had no escape hatches.

TomF,
@TomF@mastodon.gamedev.place avatar

@mcmartin @mogwai_poet An 8x1 mode (as in many of the later Speccy clones) would have been so much better. Of course chewed a bit more memory, but not that much more. ah well.

floooh,
@floooh@mastodon.gamedev.place avatar

@TomF @mcmartin @mogwai_poet the little known East German KC85/4 had 8x1 color attributes, and (best and AFAIK unique feature) a "vertical" linear video memory layout at 320x256 pixels (e.g. 40 columns at 256 rows). Writing 8 consecutive bytes fills an 8x8 pixel block. 8x LDI to blit a character, or 16x LDI to blit a character with color.

The big downside of 8x1 color attributes is of course that you had to move so much more data (the predecessor had 8x4 color attribute blocks).

floooh,
@floooh@mastodon.gamedev.place avatar

@TomF @mcmartin @mogwai_poet ...which let's you do stuff like this in half a PAL frame all done with bruteforce CPU copying (WASM emulator demo here: https://floooh.github.io/kcide-sample/kc854.html?file=demo.kcc)

video/mp4

floooh,
@floooh@mastodon.gamedev.place avatar

@TomF @mcmartin @mogwai_poet PS: also important to note: this thing is clocked at only 1.75 MHz.

A 3.5 MHz KC85/4 would have been a dream, but the 4 MHz Z80 clones were all allocated for "serious" office computers in East Germany :/

floooh,
@floooh@mastodon.gamedev.place avatar

@TomF it would also have helped a lot if Speccy colors were a bit more "diverse". For comparison KC85 again: 3 bits background, 4 bits foreground, 1 bit blinking. The foreground colors were all brighter than the same background color number.

floooh,
@floooh@mastodon.gamedev.place avatar

@TomF btw, the "useless" blinking bit could be used for an interesting "fullscreen effect" on the KC85 (AFAIK not on the Speccy though), because the blink frequency was controlled by a Z80 CTC timer channel. This sets the blink frequency to the duration of somewhere between 4 and 5 PAL scanlines which causes this "running image" effect, all without programmable color palette :)

TomF,
@TomF@mastodon.gamedev.place avatar

@floooh That would have been smarter. The blink on the Speccy was hard-coded in the ULA and the counter took up a surprising number of gates!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • thenastyranch
  • DreamBathrooms
  • tacticalgear
  • magazineikmin
  • khanakhh
  • everett
  • Youngstown
  • mdbf
  • slotface
  • rosin
  • ethstaker
  • InstantRegret
  • kavyap
  • ngwrru68w68
  • megavids
  • cisconetworking
  • cubers
  • osvaldo12
  • modclub
  • GTA5RPClips
  • tester
  • Durango
  • provamag3
  • anitta
  • Leos
  • normalnudes
  • JUstTest
  • lostlight
  • All magazines