undisbeliever

Slowly, slowly making a SNES game

No snesdev last night. I got overwhelmed by the amount of stuff I have to do over the next two months.

Time to reset the snesdev daily log counter.

SNESdev daily log 5 & 6 & 7:
Added anti-gravity to the base enemy.
Coded an enemy that avoids ledges.

SNESdev daily log 4:
Coded a very basic enemy that turns around when it touches a wall.

SNESdev daily log 3:
Added ladders to the game

#snesdev

SNESdev daily log 2:
Sketched a few level designs in a sketchbook.
Converted hard-coded constants into a structure of arrays table so walk and run have different movement values.

SNESdev daily log 1:
- Panicked about my lack of progress in my snesdev game jam game
- Brainstormed and sketched the enemies I want in my game (instead of keeping them locked up in my head)

Photo of a spiral sketchbook showing 3 drone ideas.

- Drone: hovers, follows left/right or up/down path.
- Package drone: spawns offscreen, moves left/right, drops package on player, package might be an enemy.
- Bomb dropping drone.Security bot.
 - Holds a shield
 - Whistles when see player
 - Other bots advance to player when whistle active
 - Stays near spawn location

Maybe a swarm of small security botsPhoto of a bird enemy movement.

- Bird moves in a flappy bird motion.
- When player is nearby the bird does not flap upwards and swarms playerPhoto of a spiral sketchbook showing organic enemies.
Slime, walking plants, snapping plant, giant flies, flies on fire, lightning bugs, snakes.

I've published version 0.1.1 of my homebrew SNES audio driver github.com/undisbeliever/terri
This release adds:
* An optional delay to vibrato
* A way to key-on a note without key-off
* A broken chord can now be slurred
#snesdev #spc700

undisbeliever boosted:
2025-06-19

Working on a converter from the Furnace tracker to Terrific Audio Driver for SNES. I previously did something like this for Nova the Squirrel, where I converted Famitracker music to MML for use with the Pently audio driver for NES. I thought the converter would be just like the previous one, but TAD handles speeds and duration in a completely different way from Pently and there's the additional complication of key ons and key offs to worry about that NES audio drivers don't have.

Right now it'll work on music that doesn't use any effects, and there's some simple support for compression via loops and subroutines. I don't know if all of the effects in Furnace will translate cleanly to TAD effects (especially with how I'm handling Furnace speeds/duration) but I'll give it a try.

Source code so far: github.com/NovaSquirrel/fur2ta

Screenshot of some music in Furnace alongside a terminal window in which that music has been converted to MML
undisbeliever boosted:

I have been enjoying the recent threads by @pervognsen about instruction-level efficiency on computers over the years, so I'm going to do a brief one of my own based on some of my recent adventures.

It'll end up touching on topics that are coming up today and on some conversations I'd had some years ago.

In 2018, I wrote a cellular automaton program for the Sega Genesis (8MHz 68000 CPU), and in 2023 I wrote a version for the SNES (3-ish MHz 65816 CPU).

#retrocomputing #genesis #snes

After a long break I'm getting back into snesdev.

This weeks goals:
* Work on my website and/or the wiki every day
* Prototype a ledges + jumping movement system for unnamed-snes-game
* Study and learn my old untech game engine (in preparation for the upcoming snesdev game jam)
* Add a search bar to the audio driver GUI

I wrote a blog post about the smpspeed tests I did for TASBot with an analysis from the perspective of someone who has coded a homebrew SNES audio driver.
undisbeliever.net/blog/2025031
#snes #snesdev

SNESdev daily log 8:
Improved the smpspeed reading script.

SNESdev daily log 7:
Sketched out a design for adding ledges to unnamed-snes-game.
Measured the S-SMP clock on 3 of my Super Famicom consoles.

SNESdev daily log 6:
Wrote a python script that uses usb2snes to extract the smpspeed test results out of the VRAM tilemap and into a csv file (while the console is running).
Recorded and graphed my PAL console's S-SMP (audio CPU) clock over 2 hours.
#snesdev

1-CHIP PAL S-SMP clock line graph.
This shows the S-SMP clock slowly rising as the console warms up, then flattening out.

I have released v0.1.0 of homebrew SNES audio driver.

This release adds new echo instructions to audio driver, left/right channel invert and cleans up the 65816 API.

I'm also declaring the MML & bytecode assembly stable. I'm not going to change the current syntax/behavior unless there is a very good reason to do so.

github.com/undisbeliever/terri

#snesdev #spc700

SNESdev daily log 5:
Lots of little changes and fixes to the audio driver.
Stabilized the Terrific Audio Driver MML and bytecode assembly syntax and behavior.

SNESdev daily log 3 & 4:
Proofreading audio driver code and documentation for the upcoming v0.1.0 release.
Ran the smpspeed test on 3 of my consoles for TASBot.

SNESdev daily log 2:
Added manual seeking to the audio driver state window.
Added `(` decrement volume and `)` increment volume MML commands.

@PypeBros I want achieve 90 days in a row, but bad luck (things breaking around me requiring quick fixes) and my difficulty in managing multiple projects at once have have this problematic.

@PypeBros
Looking through my files (and I may have missed a few) - 48 times when the log was private (2017-2020) and 53 times when the log was public (2020-2025).

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst