Some of you may have seen my C3 thread about it, but for those who haven't- I'm developing a new, CLI-based debugging SPC player called Apollo!
It features a ARAM/DSP memory viewer, SPC700 code debugger, breakpoints, Script700 support & FIR EQ visualizer
Give it a try!
github.com/jimmy-dsi/ap...
Posts by undisbeliever
Introducing version 0.3.0 of the Terrific Audio Driver.
github.com/undisbelieve...
This version does not add new features, instead I made 2 major back end changes: The audio driver has been ported to spc-700 assembly and tad-gui now uses the cpal crate to play audio.
#snesdev #spc700
I took the Super Game Boy code I made for Petal Crash GBC and made a code example that shows off booting custom SNES code and then having the Game Boy side send files to the SNES as needed.
Code and ROM (under "releases"): code.novasquirrel.com/Maffi/SuperG...
#snesdev #gbdev #gamedev
The Super Game Boy part of my Petal Crash GBC port ran into an obstacle since the original game uses screen shake effects that only apply to one board, and the normal SNES solution (mode 2) would've required giving up either the cool 12x12 blocks or the background. I found a cool creative solution.
Creating my own spc700 assembler sounded like a fun side project and will greatly simplify compiling TAD for people who downloaded the source code directly from the release page.
Another goal for March is to remove the SDL dependency (used for audio playback) to make compiling TAD easier on windows
However, wiz cannot encode the branch if bit set/clear instructions. It also complicates building TAD as you need to import git submodules & compile wiz before running cargo build.
It's wonderful for rapid prototyping but now that the driver has matured I want to focus on making TAD easy to compile
No, spc700 code is usually written in assembly. I've seen code written in bass, xkas or a ca65 macro pack.
Terrific Audio Driver is written in wiz, a high-ish level language created by @eggboycolor.bsky.social.
Here's a Super Game Boy enhancement driver I need to finish some day. It uses a circular buffer in VRAM to communicate with the SNES at 60fps via a combination of command data and per-frame data, rather than joypad packets. This particular version allowed a Game Boy game to reuse Game Boy Color art.
Screenshot of unit test output in-front of the unit test code. test result: ok. 45 passed; 0 failed;
Getting back into snesdev with a new side project, an spc700 assembler.
This assembler will make compiling Terrific Audio Driver a lot easier.
I'm off to a good start, it can currently assemble a single instruction inside unit tests.
#snesdev
I wasn't lying when I said I spent too much time on the editor.
I used the editor as reason to learn modern C++ & 3 different GUI toolkits.
When I realised a Dear ImGui GUI would be faster & easier, I spent some time rewriting the Qt5 editor to Dear ImGui with c++ template magic for tables & undo.
New blog post:
A wordy overview and retrospective on the homebrew SNES game engine I used for my 2025 SNESDEV game jam submission.
undisbeliever.net/blog/2026021...
#snesdev
My resolution is going to remain 256x224 with two 1080p monitors and mostly for the same reason.
I want to finish one of my in-development games, Space Rescue Squad before the end of the year.
Happy New Year, everybody :-)
Following the success of last year's Game Jam, there will be another SNESDEV Game Jam in the summer of 2026.
SNES homebrewers, get ready and prepare your tools for the next round!
itch.io/jam/snes-dev...
#snesdev2026, #gamedev, #gamejam, #homebrew
Announcing v0.2.0 of my homebrew SNES audio driver.
This release stabilises the 2 breaking changes I made to the audio driver months ago (in the beta releases). It also fixes a lot of small bugs and items I had on my ever growing todo list.
github.com/undisbelieve...
#snesdev #spc700
PVSnesLib 4.5 is now available!
Thanks to the community for the help.
You can download it here: github.com/alekmaul/pvs...
#retrogaming #snes #pvsneslib #homebrew #indiedev
I aim to release v0.2.0 before the end of the year. I have 80 small things and bugs left to do on my checklist.
I have released a 2nd beta of my SNES audio driver.
It adds transpose analysis to the compiler to detect all out-of-range notes caused by driver transpose.
I've also rewritten the timer code to increase the max bytecode sleep duration to 65535 ticks.
github.com/undisbelieve...
#snesdev #spc700
A new SNES soundtrack work of mine in development, game developed by @kannagichan.bsky.social ... www.youtube.com/watch?v=P3mX... #snesdev #indiedev #snes #sfc #スーパーファミコン #スーファミ
The beta also adds a `_{}` change key signature MML command.
A demonstration of the new transpose behaviour.
I have released a new public beta build of my SNES homebrew audio driver. github.com/undisbelieve...
This beta moves `_` and `__` transpose MML commands out of the MML compiler and into the audio driver, so the semitone offset will affect loops and subroutines.
#snesdev #spc700
I released an MML based game-ready homebrew audio driver for the SNES.
It's been used in a few games. I'm still working on it and I plan on adding sample swapping and a tracker format to it.
github.com/undisbelieve...
Welcome back.
There was a SNESDEV game jam that ended last month with 17 entries itch.io/jam/snesdev-....
My game, Space Rescue Squad, was ranked 4th. undisbeliever.itch.io/space-rescue...
Currently TAD supports swapping the Common Audio Data (containing all samples and sound effects). It was originally intended for hot-loading the CAD via usb2snes but can be used to create a game with multiple TAD projects.
BRR sample swapping is on the roadmap for my Terrific Audio Driver.
I am very undecided on the features, data structures and UX of sample swapping. I will make a request for comments to assist in the design after the next TAD release.
I've added a transpose setting to my SNES audio driver.
Subroutines and loops can now be played with different semitone offsets.
Bytecode assembly only, the MML compiler changes have not been coded yet.
#snesdev #spc700
Screenshot of Terrific Audio Driver's window on top of OpenMPT with the same song shown in both tracker and MML format
Extending my Furnace to Terrific Audio Driver project so that it can also accept Impulse Tracker files wasn't too difficult, though there's still work to do and everything needs to be tested. Internally it converts the file to Furnace-style representation and then converts again to MML.
Screenshot of a SNES game where a hovercraft toy is moving across a grassy map that has walls made out of colored wood. There's snowmen snowboarding around, and a pirate and pumpkin.
Screenshot of a forest-y scene with a lot of trees and many colored balloons.
Screenshot of a maze-like level with grass and colored wood, and pirates approaching the player.
Here's my #SNES mouse-controlled shooter game so far! It's definitely far from being 100% done, but it's in a state where I feel comfortable showing it off and having people try it out! Multiplayer and regular controllers are supported.
forums.nesdev.org/viewtopic.ph...
#gamedev #snesdev #homebrew
My entry in the 2025 SNESDEV game jam is complete.
undisbeliever.itch.io/space-rescue...
#snesdev #snes
Here's an upcoming #SNES beat'em up that might be worth keeping on you radar:
"Triple Impact"
By DigiFox
It's still somewhat early in development but so far it's already looking really atmospheric with some solid sprite work.
#retro #homebrew #indiedev #retrodev #SNESDev #gaming
#retrogaming