gridbugs
Porting my Toy OCaml Build System to Windows
Alice the Caml
Fixing my Old OS Assignment with Machine Code Hacks
Sound on OCaml on Windows
Scope Creep
7 Day Roguelike 2025: Success!
7 Day Roguelike 2025: Putting it all together
7 Day Roguelike 2025: Map, Pickups
7 Day Roguelike 2025: Text, Item Labels, Central Hub
7 Day Roguelike 2025: Collision Detection and Enemies
7 Day Roguelike 2025: Oscillographics
7 Day Roguelike 2025: Vector 3D Renderer
Every Game I Made Since 2019 had a Lighting Bug
Setting up WinGet for the First Time
Restoring my Childhood Family Computer: Part 3
Restoring my Childhood Family Computer: Part 2
Restoring my Childhood Family Computer: Part 1
Frustrating Interactions with the OCaml Ecosystem while developing a Synthesizer Library
Electric Organ
7 Day Roguelike 2024: Shops, Organs, Environment Effects, Boss
7 Day Roguelike 2024: Applying Items, Equipment
7 Day Roguelike 2024: Items
7 Day Roguelike 2024: Ranged Combat, Sound Effects, Message Log
7 Day Roguelike 2024: Title, Pathfinding, UI
7 Day Roguelike 2024: Animation, Music, Level Switching
7 Day Roguelike 2024: Procgen, Graphics
Component Pinouts and Notes
Programming an Arduino the Hard Way
Chargrid SDL Frontend
7 Day Roguelike 2023: Mechanics, Content, Playtesting
Boat Journey
7 Day Roguelike 2023: Passengers, Art
7 Day Roguelike 2023: UI, Night, Loss, Menus
7 Day Roguelike 2023: Even More Procedural Generation!
7 Day Roguelike 2023: More Procedural Generation
7 Day Roguelike 2023: Procedural Generation
7 Day Roguelike 2023: Bootstrapping, Boat Gameplay, Vision
Playing sound on the NES by directly setting its DMC output
Demystifying Floating Points
If you use a custom linker script, _start might not be your entry point
Rain Forest
7 Day Roguelike 2022: Complete
7 Day Roguelike 2022: Interactions
7 Day Roguelike 2022: Motivation
7 Day Roguelike 2022: Time
7 Day Roguelike 2022: Content
7 Day Roguelike 2022: Atmosphere
7 Day Roguelike 2022: Bootstrapping
Reverse-Engineering NES Tetris to add Hard Drop
Orbital Decay
7 Day Roguelike 2021: Gamepad Support, Audio, Maps, Help Screen, Play Testing
7 Day Roguelike 2021: Enemies, Message Log, Space Gradient
7 Day Roguelike 2021: Weapons
7 Day Roguelike 2021: Upgrades
7 Day Roguelike 2021: Depressurisation
7 Day Roguelike 2021: NPCs, Pathfinding, First Level, Final Level, Projectiles, Destructible Terrain
7 Day Roguelike 2021: Procedural Generation, Rendering, Pretty Menus, End Text
7 Day Roguelike 2021: Preparation
2020 Recap
NTFS on FreeBSD
NTFS on FreeBSD
dmenu_histogram
dmenu_histogram
Stopping daily posts
Disk image tool progress - Counter-intuitive header population
Disk image tool progress - directory hierarchies
Learning about kqueue
Configuring Feh
Chargrid HiDPI Scaling Fix
Ruby shell with custom .inputrc
Tmux runs a login shell by default
Building this site sometimes crashes ruby
How I start X
Make sure your terminal emulator runs in the expected environment
Make sure your terminal emulator runs in the expected environment
Winit makes windows the wrong size in some cases I think
Why you need a .bashrc and .profile
Why you need a .bashrc and .profile
Updating Library Dependencies
How I spent 2020-10-31
FreeBSD 12.2 intel graphics bug
Vanilla Javascript and Under Engineering
Simple Wolfenstein-3D-esque renderer
Simple Wolfenstein-3D-esque renderer
Parsing and Generating GUIDs in GPT Header Fields
Cellular automata drawing prompt generator
Repository of new words
Boss fights in traditional roguelikes
Boss fights in traditional roguelikes
The latest rust release broke backtraces on FreeBSD
Raidz setup
Rust stacktraces are <unknown> on FreeBSD
Train Game
Fixing zpool after FreeBSD fresh install on ZFS mirror
New URL and title formats for daily posts
Time to start using language managers?
Unsafely removing disks in a ZFS pool
Yes WWW
What if all your boot disks suddenly got wiped?
I broke some things
Formatting GUIDs in GPT header fields
Encoding disk headers into disk images
Gradually implementing a tool to create GPT FAT disk images
All game links on this site now point to itch.io
More of my 7DRLs are playable on itch.io
Migrated browser games to nearlyfreespeech
FAT32 FSInfo and its backup don't always match
In praise of rEFInd
Getting back into bouldering
I accidentally let some of my TLS certs expire
KID___PER? (2,4,3,3,6)
Determining the size of a FAT32 partition
I no longer feel like an imposter
FAT32 FSInfo
Cryptic Clues Repository
I saw an eel in Moore Park
Have I been using vi keys wrong my whole life?
Crunch
What exactly is a "Functional Programming Language"
Is it a good idea, or are you just proud to understand it?
Checking backup regions in gpt fat disk image tools
Separable Convolution Kernels
Move semantics and argument parsing
Parsing command-line arguments with meap in real programs
Problems, not Solutions, Part 2
Meap Help Messages
roglkpl
New phone, and an arduous journey bootstrapping LineageOS
Renamed "args_af" to "meap"
Quality of life in command-line argument parsing
Parsing my first command-line arguments
I was briefly wrong about list's behaviour as an applicative
Low-Level and High-Level Command-Line Argument Parsing
New argument parsing library
Re-added MBR parsing to my GPT disk image library
First thoughts after playing Epistory
Word navigation in Vim
Reading and listing files with my disk image tools
Qwerty Quirks
Relearning Qwerty
Disk image tool no longer reads entire image
Disk image tool progress
Creating and mounting a FAT32 partition in a GPT disk on FreeBSD
Image Creation Tool - First Steps
My keyboard backlight works!
Planning to make a simple disk image creator
Should I make my own bootloader?
Fixing bugs in sample code
Quick'n'dirty user-level switching
x86 Basic Interrupt Handling Kind of Working
Global Descriptor Table
Trampolining
More fun with linking
I need to go learn more about ELF and static linking
In Homogeneous Coordinates Addition is Multiplication
Homogeneous Coordinates
Printing over serial on x86
Trekking is good because it's a problem you can solve
Part 13 - Equipment
Part 12 - Increasing Difficulty
Chargrid Roguelike Tutorial 2020
Problems, not Solutions
BOOTBOOT
Sticking with FreeBSD for now
Bootstrapping Nightly Rust on OpenBSD
Rust on OpenBSD
Part 11 - Descending the Stairs
Time to stop using language managers
Roguelike Tutorial - Levelling up the player character
OpenBSD
stevebob.net
Replace all the CSS!
I'll probably move this site to nearlyfreespeech
Part 10 - Saving and Loading
Distro Hopping
Part 9 - Ranged Scrolls and Targeting
Part 8 - Items and Inventory
Part 6 - AI and Combat
Part 7 - User Interface
Part 4 - Field of View
Part 5 - Placing NPCs
Part 2 - Entities, Rendering, Map
Part 3 - Generating a Dungeon
Part 0 - Setting Up
Part 1 - Drawing and Moving the Player
Conway's Game of Life on the NES in Rust
slime99
7 Day Roguelike 2020: Day 7
7 Day Roguelike 2020: Day 6
7 Day Roguelike 2020: Day 5
7 Day Roguelike 2020: Day 4
7 Day Roguelike 2020: Day 3
7 Day Roguelike 2020: Day 2
7 Day Roguelike 2020: Day 1
7 Day Roguelike 2020: Plan
Zelda Screen Transitions are Undefined Behaviour
NES Emulator Debugging
Get Well Soon
7 Day Roguelike 2019: Content, Plot, Polish, Publish
7 Day Roguelike 2019: More Enemies, More Upgrades, More Cards
7 Day Roguelike 2019: Character Progression
7 Day Roguelike 2019: Card Gameplay
7 Day Roguelike 2019: Card Display, Death Screen
7 Day Roguelike 2019: Physics and Improved Pathfinding
7 Day Roguelike 2019: Procgen and Basic Pathfinding
7 Day Roguelike 2019: Planning and Preparation
Procedural Generation with Wave Function Collapse
2018 Recap
Meters Below the Ground
7 Day Roguelike 2018: Success
7 Day Roguelike 2018: Meters, Objectives
7 Day Roguelike 2018: NPCs
7 Day Roguelike 2018: Character Progression, Melee Combat
7 Day Roguelike 2018: Items, Glossary, Combat, Railgun
7 Day Roguelike 2018: Procgen, Visibility, Missions, Colour
7 Day Roguelike 2018: Day 1
Pathfinding on a Grid
Another Roguelike Lighting Demo
Modifying Entity Component System for Turn-Based Games
Programming Languages Make Terrible Game Engines
Apocalypse Post
7 Day Roguelike 2017: Success
7 Day Roguelike 2017: Consumables
7 Day Roguelike 2017: Procgen and Explosions
7 Day Roguelike 2017: Mechanics and Descriptions
7 Day Roguelike 2017: Vehicles
7 Day Roguelike 2017: Shopping
7 Day Roguelike 2017: Day 1
7 Day Roguelike 2017: Plan
Howl
Roguelike Lighting Demo
Even Separation Algorithm
Skeleton Crew
7 Day Roguelike 2016: Success
7 Day Roguelike 2016: Ending
7 Day Roguelike 2016: Polish
7 Day Roguelike 2016: Pathfinding
7 Day Roguelike 2016: Procedural Generation
7 Day Roguelike 2016: Day 1
7 Day Roguelike 2016: Plan
Encoding Rules for Turn-Based Games
Glacial
Bug Catcher
Visible Area Detection with Recursive Shadowcast
Cellular Automata Cave Generation
2D Phong Illumination in WebGL
Post Mortem of an Abandoned Game
Top-down Sidescrolling Engine
Pitch Controlled Game