Guess I'm doing #pixelart #stopmotion #animation with #GIMP and #Ruby now...
#devlog #art #pixel #darkart #grimreaper #gothicart #occultart
Guess I'm doing #pixelart #stopmotion #animation with #GIMP and #Ruby now...
#devlog #art #pixel #darkart #grimreaper #gothicart #occultart
Spacetime boxes and #NicCLIM #gamedev : An ordeal #devlog #commonLisp
https://screwlisp.small-web.org/lispgames/spacetime-boxes-nicclim/
I made a gamedev-my-NicCLIM-oriented spacetime-box class to try and figure upon Olum's stuff. I got tied up making two spacetime boxes, then making one spacetime-box every neighbor of the other, which was a huge problem actually. It seemed to be working at the end. Skip quickly to the extensive and far-ranging if poorly-named conclusions.
Update on my Pi-Hole project: It's live, and it has a display with live data. Really fun project to work on, and kind of scary how many requests are being made just to collect data.
WOOPS I've added OpenBSD support to Exosphere. One thing led to another and uh...
quoth the raven: "__declspec(property(...)) only supported by clang and msvc."
#LifeDev #DevLog 26
* Chapter 03 Pass 02
* Even more refactor, better flow, & more.
Video https://youtu.be/itT6A6qfuuk
Text https://store.steampowered.com/news/app/2450230/view/509590727168100306
Steam https://s.team/a/2450230
I'm making a lot of small games for various reasons, so I'm setting up a blog where you can download them or, more frequently, play them in your browser.
An #Assembly program that dumps itself.
Usefulness? None.
Purpose? None...ish.
It just dumps itself.
No hidden message here, just self-hexdump...
...Although this is me trying to find ways to steganographically hide text/poetry/occult rituals within Assembly instructions.
According to a Ruby one-liner which I fed with the Assembly output, the self-hexdump from Assembly contains letters ("A", "H" and "U"), as well as digits ("0", "1", "6" and "9") so maybe it's possible to code something both valid (preferably functional as well) as Assembly code AND valid as steganographed text, using different (and particularly atypical) opcodes.
From the alt-text:
Two-window layout screenshot.
Left window: the whole source-code from an Assembly program that dumps itself. The font-size is very thin so it fits the image.
Right window: the output from said program, which was invoked through nodemon (see my previous post where I explained what the heck nodemon is doing in an Assembly code environment).
Code is too long to be alt-text, but it's basically printing itself (at least each byte from section .text
) using printf("%02x ")
then finally printing a newline and exiting with code 0. It keeps track of the current pointer and the end boundary of the program using two variables declared in the .bss
section (cur
and fin
, both .quad
). The pointer fin
points to a label at the very end of the program (after calling sys_exit
), called __theend
, while the pointer cur
starts pointing to main
(the program's entry point).
#devlog #programming #gnuasm #asm
I've started a new blog where I refactor old BASIC type-in listings and post them so you can play them in your browser.
https://basic-code.bearblog.dev/
I'm working my way through David Ahl's "Basic Computer Games" and have posted Acey-Ducey, Craps, and Hammurabi.
Check it out if that's your jam.
The rust rewrite of my Forgejo client already has 20% of the Nuxt version's functionality: It can display profile cards.
Before listing ~~repos~~ *projects*, I'll add auth/account management and Sourcehut support.
(The blur is not added in post. It's to prevent accidental anti-doxxing.)
Using #GNU as
Assembler (not Assembly, but the Assembler) and ld
Linker to spit out a working BMP gradient image.
Yeah, you read it right. I'm not using #Assembly to produce an image. I'm, instead, using Assembler directives and macros during compile-time to generate a binary file that happens to be a valid image (BMP) file.
File: tonishing.s (GNU Assembly file)
width = 320
height = 240
area = width * height
_begin:
.ascii "BM"
.int fileSize
.int 0
.int (_rasterdata - .)
_infoheader:
.int infoheaderSize
.int width # width
.int height # height
.short 1 # planes
.short 24 # bitcount
.int 0 # compression
.int 0 # imagesize
.int 11811 # xpixperm
.int 11811 # ypixperm
.int 0 # colorsused
.int 0 # colorsimp
infoheaderSize = (. - _infoheader)
_rasterdata:
n=area+1
.rept height
.rept width
byten=((n*255)/area)&0xFF
rn=(192*byten)/255
gn=(64*byten)/255
bn=(128*byten)/255
.byte rn,gn,bn
n=(n-1)
.endr
.endr
fileSize = (. - _begin)
#!/bin/sh
clear
rm astonishing.bin
rm tonishing.o
as tonishing.s --64 -o tonishing.o
# The pun is _astonishingly_ intended.
strip -R .comment -R .note.gnu.property tonishing.o
ld -n -x -s -N --oformat binary --unique=.note.gnu.property -o astonishing.bin tonishing.o
magick identify -verbose astonishing.bin
I run the whole thing with... wait for it... #nodemon!nodemon -e "s sh" --exec ./run.sh
#NicCLIM Map Editor pushing v2 right now (no time like the present)
https://screwlisp.small-web.org/lispgames/trying-nicclim-v2/
#commonLisp #gameDev #devlog #itchio.
This version introduces executing lists of commands, a "current player" with put/get on them, and host lisp interactions (i.e. there's a com-apply that applies the host lisp's apply to the map location).
Some apologies to @dougmerritt
#gamedev #devlog #itchio #commonLisp #mcclim my #nicclim Map Editor way-better- #demo and setup walkthrough.
https://screwlisp.small-web.org/lispgames/trying-nicclim/
I'd love it if you tried it; a few people already are. Link to previous thread in the article. I'm happy for any and all comments. I'll attach screenshots from the article, which shows programmatic useage and indicates hotkey useage.
Permacommons #devlog 2025-08-19
This took a while to get working, but in my quest to automate all the things I managed to end up with a publish workflow for the `chabeau` crate that seems fairly sane.
1) Stage release on a release branch, using "cargo release"
2) If all checks pass, merge into main (protected branch)
3) Check on main detects new tag & publishes crate (assuming final pre-publication checks are happy)
Concurrency group ensures it only runs once.
a nice procedural way to generate palettes from a subset of colors could be to do a delaunay triangulation of them in YUV (or any better perceptual space), and then use the resulting edges to build gradients. the number of colors of each gradient should be proportional to the edge length.
I would really appreciate it if you take 5 minutes of your Sunday (morning) for my video about my heart project. It is a glimpse into the life of me developing my daily history game #PastPuzzle.
Made for everybody who is into creative projects, history, games or just relaxing videos. :)
Thank you for watching and helping me to reach more people: https://youtu.be/Ub9aae_dzhc?si=bl2VnrXA-q07ijuI #history #game #devlog
A new devlog about my medieval village building game! About 4 months of progress in this one!