#8bpp
Added VRAM debug window! You can preview the VRAM in 4bpp, 8bpp, or 16bpp mode, and for 4/8bpp modes you can set a location in VRAM to use as a palette preview!

#indiegamedev #fantasyconsole #athena32 #psx
December 27, 2024 at 1:25 AM
made a ravine kind of scene in blender and ran it through my 160x100 8bpp qbasic engine. i kinda like it :3

#PixelArt #GameDev
February 22, 2026 at 4:07 PM
i'm making a #QBasic game using mode 13h, 320x200 8bpp. i'm using VGA line doubling to make it 320x100 then horizontally doubling each pixel for 160x100

i use a palette with 3 bits red/green and 2 blue, and "subpixel dither" in between colors. here's a thread of images showing what that's like

1/5
February 9, 2026 at 2:39 PM
wip of graphics conversion i'm doing for donkey kong country. new in-progress sprite conversion in snes 4bpp on the left, original game sprite converted to 8bpp linear bitmap on the right. the game's sprite/animation format is funny to figure out but i can see how powerful it is...
June 25, 2025 at 11:46 PM
Commission work: I need 16x16 to 16x24 pixel art weather icons made. 1bpp, 4bpp, 8bpp depths. Reach out to me in DMs for details
August 17, 2026 at 1:52 AM
Last year I built this 23BPP framebuffer with an 8BPP backing store. It uses spatial dithering with the precision of the color channels encoded in the dither. The “decode” is edge aware smoothing. It is a reimplementation of HP Color Recovery - I will eventually release it with a full nonAI writeup.
July 17, 2026 at 3:43 AM
barely any cursing at typescript required. though i still find it weird to write in.

also i forgot this thing took color pictures!
July 4, 2026 at 6:59 PM
there's record breaking storms incoming so i've been too migrainy to qbasic but i've thought real hard about what i wanna do and i've come up with

- 160x120 resolution
- 64k "vram" for tiles, sprites, object attribute memory
- everything 8bpp so i don't gotta worry about unpacking goddamn nybbles
might give in to the urge to qbasic today

kinda tempted to make a library used via call absolute that renders the screen via a console-like chunk of VRAM to define characters, tilemaps, and object attributes >_>
August 28, 2026 at 6:13 PM
Alright basic blitter designed I think.
July 17, 2026 at 6:01 PM
i've once solved this mystery - a piece of polygon art focused around #blockbench 's plane polygons - i'm slowly faced up all the towel textures - though all texture images have 256 colors - i've finally drew enough textures from #graphicsgale - #segasaturn #indiedev #gamedev #lowpoly #8bpp #32bit
July 5, 2026 at 3:39 PM
Tweaking my python script to turn it into a more fully-featured texture tool.

Can convert images into 4bpp, 8bpp, or 16bpp, and writes out "IMG" files which store a very basic header (3-byte identifier, format, width, height, optional palette, & pixel data).

#gamedev #fantasyconsole #athena32
December 6, 2024 at 7:21 PM
yep, it's also used for the credits screen, 8bpp foreva
September 17, 2025 at 8:37 PM
dug up an old link someone gave me (gist.github.com/juj/34306e6d...) and managed to get 320x200 8bpp at 60Hz with square pixels going :D much better on my 60Hz monitor

i also learned how to use the VGA clocking mode register to turn the display on and off on demand which could be handy
February 8, 2026 at 12:00 PM
the idea is that you use EMS memory pages to get four 16k banks of "VRAM", that you put sprites and tilemaps in. and then with that and an array of object attributes the renderer will render the entire 160x120 8bpp screen in one go super fast

and i'm also gonna add faux HDMA effects :3
August 31, 2026 at 5:04 PM
This leads me to another point: Colour Count!
The CPS2 could display tiles of 4bpp, 4 bits per pixel, allowing for 16 colours, 15 + transparency. The CPS3 jumped to 6bpp, 64 colours! Alongside a seldom used mode for 8bpp (SCR only iirc). If you've ever wondered what CPS3 limits are, there you go!
September 5, 2025 at 11:45 AM
Today I made a 1080p HDMI framebuffer core - the FPGA acts as an HDMI receiver, storing frames as 8bpp HPCR-encoded data and decoding them on the fly. The DDR SDRAM used is only fast enough to sustain 1080p60 with HPCR. Here you can see it switch between the raw and decoded data. Switch as HDMI src.
July 19, 2026 at 3:35 AM
1mb ram, 25 channel audio, like a hundred sprites I think? 8bpp too, all powered by a 6502 instead of at least a 68k
December 3, 2024 at 3:13 PM
The Super NES version of Ms. Pac-Man stores some of it's palettes (e.g. mazes and sprites) in Sega Genesis format, and converts them to SNES format at runtime. Below is how the game would look like without this color conversion code.
March 14, 2025 at 5:36 AM
our recent doom/heretic releases do 4k120 on current gen consoles, but that required a multithreaded 3d renderer, and 8bpp output to reduce the bandwidth to the gpu by a third. it also depends on how much you care about power efficiency (aka battery life on handhelds)
January 2, 2026 at 4:56 AM
Currently, my game engine uses an 8bpp indexed (virtual) frame buffer (VGA's Mode13h alike).

Are 256 colors "too much"? Realistically, who's going to use a palette like this, given the "retro" aesthetic I'm aiming to?

Any pixel artists around willing to comment? 😊

#gamedev #indiedev #gameengine
December 4, 2025 at 11:13 PM
More than a year ago I started with the new feature to enable less expensive 8bpp rendering in caprice32 #AmstradCPC, and the effort is finally being rewarded!! 😋😍

I hope it will also help to improve the speed on Nintendo xDS ✨
January 5, 2025 at 10:40 AM
github.com/uniskie/MSX_...

バイナリエディタ BzEditor 改造
MSX向け機能追加版

BITMAP VIEWに1bpp(SCREEN0~2/SPRITE)、2bpp(SCREEN6/9)、4bpp(SCREEN5/7)、8bpp(SCREEN8)、YJK+RGB(SCREEN10/11)、YJK(SCREEN12)向け表示機能とパレット定義を追加
元プログラムに合ったバグも修正してます

#MSX
May 19, 2025 at 9:24 PM
Currently also supports four texture modes (None, 4BPP, 8BPP, or 16BPP) and four blend modes (None, Add, Sub, or 50% Mix)
December 3, 2024 at 4:51 PM
Oh sorry, I deleted and reposted to fix a typo and copy pasting must have broken the link. It was meant to be to here: github.com/pimoroni/pre...

The frame buffer is in internal RAM as I couldn’t get scan out glitch free from PSRAM. That means pretty much everything else uses PSRAM.
ST7701: 8bpp palette mode option. by MichaelBell · Pull Request #16 · pimoroni/presto
Full support for 8bpp palette mode, inspired by Dmitry's PIO driven lookup.
github.com
December 31, 2024 at 11:03 AM
for the uninitiated: a *linear* framebuffer is where each pixel is represented by one or more bytes in sequence.

to set a pixel on a linear framebuffer is easy: you write bytes to the correct address, which for a 8bpp framebuffer can be calculated as:

width = 640
pixel = (y * width) + x
January 22, 2025 at 8:21 AM