Jonas Eschenburg
@indyjonas.bsky.social
Software developer with a passion for inconsistency | Bringing visual functional programming to industrial robotics | Graphics • Programming Languages • Robotics • Demo Scene • Retro Gaming • Retro Programming • Reverse Engineering • Flight Simulation
I can spoil it for you, should I?
...
It's pitch black!
...
It's pitch black!
June 8, 2025 at 10:22 PM
I can spoil it for you, should I?
...
It's pitch black!
...
It's pitch black!
Merci beaucoup for featuring my little project :-)
June 7, 2025 at 8:35 PM
Merci beaucoup for featuring my little project :-)
It does! Here is how the four colours mix to reproduce DOOM’s 256 colour palette.
June 7, 2025 at 12:17 PM
It does! Here is how the four colours mix to reproduce DOOM’s 256 colour palette.
This is running on an emulated 32MHz Mega STe with 68030 processor. Full source code and binaries for download available on GitHub. github.com/indyjo/STDOOM
GitHub - indyjo/STDOOM: A port of DOOM to the Atari ST/STe
A port of DOOM to the Atari ST/STe. Contribute to indyjo/STDOOM development by creating an account on GitHub.
github.com
June 7, 2025 at 10:41 AM
This is running on an emulated 32MHz Mega STe with 68030 processor. Full source code and binaries for download available on GitHub. github.com/indyjo/STDOOM
And if you want to be fancy, you can reduce the original to 64 colors and use the byte value directly as an offset into the LUT, without bitshift.
May 31, 2025 at 12:57 PM
And if you want to be fancy, you can reduce the original to 64 colors and use the byte value directly as an offset into the LUT, without bitshift.
If you’re using a LUT anyway you could map the 256 PLAYPAL colors directly to planar without loss of efficiency.
May 31, 2025 at 11:58 AM
If you’re using a LUT anyway you could map the 256 PLAYPAL colors directly to planar without loss of efficiency.
Or did I misunderstand and you simply reduce to 16 colors and then pack two pixels into a byte for memory efficiency?
May 31, 2025 at 9:15 AM
Or did I misunderstand and you simply reduce to 16 colors and then pack two pixels into a byte for memory efficiency?
It’s not only the palette, it’s also how the colors are mixed in dithering. There’s some color perception biology going on. I wrote an optimizer for finding good weights. Of course it’s a quick hack, but feel free to use it.
github.com/indyjo/STDOO...
github.com/indyjo/STDOO...
May 31, 2025 at 9:13 AM
It’s not only the palette, it’s also how the colors are mixed in dithering. There’s some color perception biology going on. I wrote an optimizer for finding good weights. Of course it’s a quick hack, but feel free to use it.
github.com/indyjo/STDOO...
github.com/indyjo/STDOO...
Cool, so you can take one byte of texture data and directly extract two colors which you then mix. Do you use movep to fill 8 pixels at once?
May 31, 2025 at 8:58 AM
Cool, so you can take one byte of texture data and directly extract two colors which you then mix. Do you use movep to fill 8 pixels at once?
Looking sweet, and I love the PC speaker sound 😊
Getting this to run on a 512KB ST is crazy cool, I have a 1MB one. Looking forward to playing Doom on it! Are all the textures still stored in chunky format? And how do you come up with the palette? Fixed subset of the 256 PLAYPAL colors?
Getting this to run on a 512KB ST is crazy cool, I have a 1MB one. Looking forward to playing Doom on it! Are all the textures still stored in chunky format? And how do you come up with the palette? Fixed subset of the 256 PLAYPAL colors?
May 31, 2025 at 7:48 AM
Looking sweet, and I love the PC speaker sound 😊
Getting this to run on a 512KB ST is crazy cool, I have a 1MB one. Looking forward to playing Doom on it! Are all the textures still stored in chunky format? And how do you come up with the palette? Fixed subset of the 256 PLAYPAL colors?
Getting this to run on a 512KB ST is crazy cool, I have a 1MB one. Looking forward to playing Doom on it! Are all the textures still stored in chunky format? And how do you come up with the palette? Fixed subset of the 256 PLAYPAL colors?
Listened to the first episode and loving it. As the world’s greatest Battlehawks 1942 fan I can’t wait to listen to the Lucasfilm feature!
May 28, 2025 at 10:03 AM
Listened to the first episode and loving it. As the world’s greatest Battlehawks 1942 fan I can’t wait to listen to the Lucasfilm feature!
If you have c2p anyway, the additional cost of high-quality dithering is so low it’d be a crime not go do it. Seriously, it’s a simple lookup-table.
May 16, 2025 at 8:44 PM
If you have c2p anyway, the additional cost of high-quality dithering is so low it’d be a crime not go do it. Seriously, it’s a simple lookup-table.
Source code and binary on GitHub: github.com/indyjo/STDOOM
GitHub - indyjo/STDOOM: A port of DOOM to the Atari ST/STe
A port of DOOM to the Atari ST/STe. Contribute to indyjo/STDOOM development by creating an account on GitHub.
github.com
May 16, 2025 at 3:28 PM
Source code and binary on GitHub: github.com/indyjo/STDOOM
I updated the input code in STDOOM since I regularly got annoying input buffer overflows. This resulted in spurious keypress events when moving the mouse in certain ways, often interpreted as the Esc key, causing the menu to open. You might want to have a look whether Doom8088 is affected as well.
May 10, 2025 at 8:05 PM
I updated the input code in STDOOM since I regularly got annoying input buffer overflows. This resulted in spurious keypress events when moving the mouse in certain ways, often interpreted as the Esc key, causing the menu to open. You might want to have a look whether Doom8088 is affected as well.
Source code and binaries available on GitHub github.com/indyjo/voxel...
GitHub - indyjo/voxel-st: An experimental VoxelSpace engine for the Atari ST
An experimental VoxelSpace engine for the Atari ST - indyjo/voxel-st
github.com
March 3, 2025 at 8:45 AM
Source code and binaries available on GitHub github.com/indyjo/voxel...
Most recent achievement: Freed a whopping 140kB of RAM (on a 1MB machine!) by programming against native TOS API instead of C stdio where possible (this is the way!) and linking against libcmini. Binary size reduced to 15108 bytes. Finally some memory left for sprites?
March 3, 2025 at 8:45 AM
Most recent achievement: Freed a whopping 140kB of RAM (on a 1MB machine!) by programming against native TOS API instead of C stdio where possible (this is the way!) and linking against libcmini. Binary size reduced to 15108 bytes. Finally some memory left for sprites?