Sign in

Michael Martin

@mcmartin.bsky.social
77 followers 29 following 1.2K posts

#retrocomputing on main, politics occasionally in the replies, video game stuff basically everywhere. If you *just* want the retrotech, bumbershootsoft.wordpress.com is my retrodev blog.

PostsRepliesMedia
Michael Martin @mcmartin.bsky.social · 26/09/2026
I've been trying to get this working since July, but... I have, and now I've written it up. Proper, HW-verified, fully-intelligible voice clip playback out of the 1-bit, CPU cycle-count controlled, #ZXSpectrum beeper. Neat non-identical prior work too. bumbershootsoft.wordpress.com/2026/09/26/d...
bumbershootsoft.wordpress.com
Digital Audio on the ZX Spectrum’s 1-Bit Beeper
It’s finally time for me to wrap up this ZX Spectrum series, with a look at how to get the simple 1-bit beeper on every Spectrum model to emit high-quality digital audio. The results are quit…
152
Reposted by Michael Martin
Gamma Correction @gammacorrect.bsky.social · 26/09/2026
Made a little Atari homebrew for some waterfall ambience #atari #atari2600 #homebrew #pixelart #gamedev #indiedev
0226
Michael Martin @mcmartin.bsky.social · 25/09/2026
Stuff leaking into my timeline suggests that people are being Weird about using words that suggest reasoning or knowledge as applied to mechanized reasoning systems again. For the record my opinion has not changed in the past year, nor indeed from the Normal C Compiler incident two years ago
010
Michael Martin @mcmartin.bsky.social · 22/09/2026
A fun question, in part because I don't seem to have one. By the time games got big enough that they *could* "define" you like this, I'd already had far too much experience with too many genres and variations just treating games as Things You Can Play. "My" games are ones I wrote or heavily edited.
120
Michael Martin @mcmartin.bsky.social · 19/09/2026
I've started actually writing up the last of my #retrocomputing sound adventures on the #ZXSpectrum, with lots of charts of ostensibly-square waves. Looks icky, but I can't argue with the results! The digital sample playback stuff will be next week. bumbershootsoft.wordpress.com/2026/09/19/u...
bumbershootsoft.wordpress.com
Unfinished Business with 1-Bit Audio Chords
My article from two weeks ago on fancy 1-bit sound on the ZX Spectrum was a bit incomplete. I used a shortcut to test out the “interleaved oscillator” technique, and I couldn’t ge…
044
Michael Martin @mcmartin.bsky.social · 13/09/2026
I was not expecting to wake up to this.
140
Michael Martin @mcmartin.bsky.social · 12/09/2026
Put together a cheat sheet for cycle-exact delays on the 8-bit CPUs I've been messing with. This should make the #retrocomputing stuff I've been doing trying to drive precise sound playback under CPU control less obnoxious. bumbershootsoft.wordpress.com/2026/09/12/d...
032
Reposted by Michael Martin
Locomalito @locomalito.com · 10/09/2026
Today marks the 16th anniversary of L'Abbaye des Morts. And we're working on an update! It was a small side project that @gryzor87.bsky.social and I made in the afternoons during a week-long trip to France. We released it in the void, but somehow it became a classic within the homebrew scene.
Side to side comparision of the main character for the 2010 and 2026 versions.
418034
Michael Martin @mcmartin.bsky.social · 11/09/2026
Progress on my #ZXSpectrum 1-bit sound pulse width modulation adventures. I don't have sample playback working yet, but I *was* able to get Fuse to output a sawtooth wave.
A rapidly oscillating sound wave, where the course shape describes a sawtooth wave imposed over a more regular and much faster carrier wave
121
Michael Martin @mcmartin.bsky.social · 07/09/2026
I'm still not where I want to be with getting good sound out of the #ZXSpectrum 's 1-bit speaker, but I've gotten *some* neat results so far. Still have more to dig into. bumbershootsoft.wordpress.com/2026/09/05/z...
021
Michael Martin @mcmartin.bsky.social · 05/09/2026
This, apparently, is how I am finding out that VBCC and Vasm have not only 65816 compiler support now but multi-segment Apple IIgs binary support. Looks like I've got some more things to mess around with soon...
110
Michael Martin @mcmartin.bsky.social · 01/09/2026
Sometimes the BlueSky not-an-algorithm thinks it's funny
Two posts by Prof. Bret Deveraux, from completely different threads, yet appearing back to back in my timeline as if they were related:

"Yikes for my Latin class - low attendance on Indirect Statement day. That's gonna come back to bite some folks."

then...

"The core problem - once you've tried to murder someone and their entire family, you don't have any deterrence left - remains unchanged."
000
Reposted by Michael Martin
guydenaville @guydenaville.bsky.social · 30/08/2026
Here is a preview : 134,217,728 Blue Spheres stages on SMS ! The new Endless Mode lets you browse the full level set with a real map preview : still polishing transitions and audio performance, but it’s getting there! youtu.be/QN3cKYY9BPg #SEGA #MasterSystem #Homebrew
youtu.be
Blue Spheres SMS: The ENDLESS Update Is Coming!
YouTube video by The OLD Cartridge
142
Reposted by Michael Martin
Edcrab @edcrab.bsky.social · 26/08/2026
Don't cite the deep magic to me, witch. I straight-up don't remember writing that shit. I don't know how it runs when it calls on a non-existent .txt called deepmmagic. Yeah two Ms I missed it. And yes I know it always crashes to desktop on exit. No I won't help you mod it for "deeper magic"
41004231
Reposted by Michael Martin
KIM-1 @kim-6502.bsky.social · 23/08/2026
A 256-byte identity table (0-255 at offsets 0-255) gives the 6502 synthetic instructions it never had: AND table,X -> A AND X ORA table,X -> A OR X EOR table,X -> A XOR X LDY table,X -> TXY One page of ROM buys you register-to-register ops the silicon never provided. (via c3po, AtariAge)
4205
Reposted by Michael Martin
Hackaday @hackadayofficial.bsky.social · 23/08/2026
An Atari Desktop On A Sega
hackaday.com
An Atari Desktop On A Sega
Hackaday Article
2243
Michael Martin @mcmartin.bsky.social · 23/08/2026
Posted my photos from this year's #VCFWest #Retrocomputing fair. bumbershootsoft.wordpress.com/2026/08/22/v...
bumbershootsoft.wordpress.com
Vintage Computer Fair West 2026
I went to VCFW again this year. Unlike last year there wasn’t a major overarching theme this time, but that meant more miscellaneous and serendipitous things to go alongside it.
000
Reposted by Michael Martin
Sarah Archer @sarcher.bsky.social · 19/08/2026
Are you aware of CAT YURTS catyurts.com
A brown tabby cat snuggling inside a blue and white cat yurt on top of a green and yellow patterned textile
291131235
Michael Martin @mcmartin.bsky.social · 09/08/2026
My #retrocomputing stuff has been very #ZXSpectrum focused for the past few months. I decided to take a breath after a few projects and work through a modern guide by a programmer from back in the day to fold it all in to what I learned along the way. bumbershootsoft.wordpress.com/2026/08/08/z...
032
Michael Martin @mcmartin.bsky.social · 02/08/2026
Got a little more time to poke at this and made a *little* progress and some leads. * 4kHz 1-bit PCM definitely works but is scratchy as hell; could be improved with some prefiltering * If I get the bitrate high enough (40-80kHz) the system kind of turns into delta-PCM; can that work?
121
Michael Martin @mcmartin.bsky.social · 02/08/2026
I'm still struggling with getting digital playback tricks to work on the #ZXSpectrum, but I *did* at least get the more mundane tone generation to to work. Mostly. The system still had some surprises waiting. bumbershootsoft.wordpress.com/2026/08/01/z...
000
Reposted by Michael Martin
xot @xot.bsky.social · 01/08/2026
Rebecca Heineman's source code disks for Apple II, Apple IIGS, and C64 versions of "Tass Times in Tonetown" were recently imaged at KansasFest 2026 and are now archived. Burger Becky was an incredible and beloved engineer and raconteur who we sadly lost last year. archive.org/details/tass...
Title screen of the Apple IIGS version of "Tass Times in Tonetown". A white dog dives out of the smashed computer monitor. He wears red-rimmed glasses and a brown felt hat with press credentials tucked into the blue hat band. The title appears at the top, and text below reads: "Designed by Interplay Productions and Brainwave Creations, copyright 1986 Activision, Inc.
310750
Michael Martin @mcmartin.bsky.social · 01/08/2026
Playing around with complex sound effects on the #ZXSpectrum's one-bit beeper, and getting very disappointing results despite being pretty sure of the technique. The carrier wave is overwhelming everything else, and I don't have hardware to test on. Anyone out there know period works that did this?
121
Reposted by Michael Martin
Charles Louis Richter @richterscale.bsky.social · 29/07/2026
IMPORTANT KITTEN ACTIVITY
824758
Michael Martin @mcmartin.bsky.social · 25/07/2026
I can sort of see how the designs form traditions of their own and I can't get too mad at people who decide to treat them like rival kung-fu schools. Based on my own adventures with sprites, this makes the Amiga some kind of strange form of MMA. bumbershootsoft.wordpress.com/2026/02/14/s...
bumbershootsoft.wordpress.com
Sprite Graphics Traditions
About a year and a half ago, I took a more systematic look at programming the Amiga 500 hardware directly. I had a somewhat impish thought at the time and thought to half-seriously suggest that its…
031
Michael Martin @mcmartin.bsky.social · 22/07/2026
Today in Kind of Silly but Nevertheless Very Effective #retrocomputing Tricks: If you have code that runs once every video frame, and (like most old machines) video data is streamed out in real time, time your work each frame by changing the border or background color. Instant real-time usage meter!
A little pickup truck with a blaster in its flatbed shoots laser beams at mysteriously hovering archery targets. Meanwhile,the top fifth of the screen or so has a cyan border, representing the amount of time spent drawing the screen that frame. Another 10% of border below that is magenta, showing the time spent on game logic.

The cyan border spilling into the viewable area means we can expect some graphical glitches or tearing on elements near the very top of the screen; the relative dearth of magenta means that our game logic is already basically fast enough and we won't gain anything from optimizing it further.

Sometimes the magenta spikes MUCH further down, though never far enough down to spill into the next frame; it turns out that printing out the updated score after a hit is at least twice as expensive as everything else happening in the visible screen combined.
021
Reposted by Michael Martin
Michael Martin @mcmartin.bsky.social · 20/06/2026
People tend to treat assembly language programming as some kind of impossibly obscure wizardry but this gets it almost exactly backwards. 6502 (above) is so simple I have a complete reference to it printed on my coffee mug. The fundamental challenge is keeping things organized at such small scales.
351
Reposted by Michael Martin
Michael Martin @mcmartin.bsky.social · 21/07/2026
This bit me on a semi-recent Amiga project; I had an accidental guaranteed buffer overflow in the program, and not only did it "optimize" my finite loop into an infinite loop, it *also* optimized away all of my safety checks, defeating *even printf debugging* when optimized.
121
Michael Martin @mcmartin.bsky.social · 19/07/2026
Technically the first computer I ever used was Z80-based, but I didn't start to really learn to program the chip until 2017. Most of my actual experience in asm involves chips with sharply different design philosophies, and I still find the contrasts pleasing. goliath32.com/blog/z80.html
goliath32.com
goliath32.com - The Zilog Z80 has turned 50
061
Reposted by Michael Martin
Bits @bitshammer.bsky.social · 13/07/2026
Instant Transmission
5982412958
Michael Martin @mcmartin.bsky.social · 11/07/2026
I think I've dealt with the graphical glitches in my #ZXSpectrum shooting-gallery project. I can get a decent number of moving objects on the screen at once, seems to be comfy in 50 FPS, and flicker/tear is minimal. Not bad for no HW sprites and 1MHz memory access speed. Now for collision logic. 😓
A simple 8-bit video game display, with a little truck with a blaster cannon in its flatbed shooting a bunch of laser bolts at some flying archery targets.
131
Michael Martin @mcmartin.bsky.social · 04/07/2026
As long as I'm posting about ZX stuff, my current #retrocoding project is building a "sprite" engine for the spriteless #ZXSpectrum from first principles. I'm up to getting stuff to render right; optimizing for my specific project comes next. bumbershootsoft.wordpress.com/2026/07/04/s...
bumbershootsoft.wordpress.com
Spritework on the ZX Spectrum: Rendering
Last week’s article saw us preparing sprite graphics for display on the ZX Spectrum’s display screen. This week we’ll actually do the rendering, and kick off the shooting gallery …
051
Michael Martin @mcmartin.bsky.social · 02/07/2026
OK, the Brits are asleep, let's have a #retrocoding thread where we do terrible things to the machine that kicked off their home computer revolution: the #ZX81 en.wikipedia.org/wiki/ZX81
2113
Michael Martin @mcmartin.bsky.social · 27/06/2026
My #ZXSpectrum sprite project is coming together enough that I can start writing up elements of it on the blog. I'm a little further coding than writing, but *postable* code is a bit further off. I have hilariously little clue what I'm doing here yet. bumbershootsoft.wordpress.com/2026/06/27/s...
bumbershootsoft.wordpress.com
Spritework on the ZX Spectrum: Preparing Our Graphics
It’s finally time to properly harness the power of the ZX Spectrum’s graphics hardware. We’ve looked at what BASIC offers us, we’ve seen how the system ROM simulates a text …
011
Reposted by Michael Martin
Juan F. Ramírez @juanfr.mastodon.social.ap.brid.gy · 23/06/2026
Fuse emulator, version 1.9.0 for Windows, has just been released: fuse-emulator.sourceforge.net #zxspectrum #rettogaming
fuse-emulator.sourceforge.net
Fuse - the Free Unix Spectrum Emulator
074
Reposted by Michael Martin
Mark Moxon @markmoxon.bsky.social · 14/06/2026
I’ve been beavering away at two-player #BBCMicro Elite These videos show the most recent improvements: laser beams, hit counters, two-player dashboard, planets, suns and more accuracy It’s quite difficult to film! See the thread for a tour of what’s new… (1/6) #retrocomputing #retrogaming #8bit
36015
Michael Martin @mcmartin.bsky.social · 22/06/2026
Update: we've got our explosion! 🎉🎆 Sprite "flicker" with timing so consistent it makes certain objects invisible if they're at certain places on the screen. Timing seems very consistent though so being smarter about screen updates should solve it.
000
Michael Martin @mcmartin.bsky.social · 20/06/2026
Speaking of grinding through references to get old assembly language code working the way you wanted, I had to do that when I wrote my Bresenham's line algorithm implementation for the #ZXSpectrum last week, so this week I'm posting my notes. bumbershootsoft.wordpress.com/2026/06/20/i...
bumbershootsoft.wordpress.com
Interlude: Using the Index Registers Effectively on the Z80
Working on these Spectrum projects has meant more practice with Z80 assembly along with everything else, and while I do think I’m basically at parity between Z80 and 6502 now in terms of my s…
021
Michael Martin @mcmartin.bsky.social · 20/06/2026
As much as we pretend that everything in tech is built on quicksand, it's really quite gratifying how much of the fundamentals hold across 50 years of personal computing. It's the emphasis and the optimal approaches that shift.
143
Michael Martin @mcmartin.bsky.social · 17/06/2026
I have just reached the point in my #ZXSpectrum project where I can start actually reading guides/AARs from other devs without worrying about locking in too hard to other people's designs... ... and it appears that my project should be exploding about 75% of the way through. Fun times ahead.
100
Reposted by Michael Martin
Chris Williams @diodesign.org · 15/06/2026
I like this warts-and-all reverse-engineering documentary by David Given of this 6502-based system. From extracting the firmware to figuring out the device architecture, it's a realistic journey for anyone interested in this kind of forensic work www.youtube.com/watch?v=jJ0X...
youtube.com
Reverse engineering a 'tony' 6502-based game console
YouTube video by Poking Technology
184
Michael Martin @mcmartin.bsky.social · 14/06/2026
Having an entirely normal one tonight at the ol' #ZXSpectrum console. The bounds-checking logic is clearly still a bit off.
A ZX Spectrum screen with some colored streaks on it and the error C Nonsense in BASIC, 10:1The listing after the program runs, now in fact nonsense:

10 RANDOMIZE USR 28672????? GO TO 99
97 CLEAR 286????????: LOAD ""
98 RUN
000
Michael Martin @mcmartin.bsky.social · 13/06/2026
Back on my #retrocoding, working my way towards building a decent framework on the #ZXSpectrum for making an animated game. Working out screen memory now which means writing my own line-drawing stuff, which will help spritework basically not at all. bumbershootsoft.wordpress.com/2026/06/13/p...
bumbershootsoft.wordpress.com
Programming the ZX Spectrum’s Bitmap Display
Now then, where were we? Last time, we worked through the many and varied abilities the ZX Spectrum system ROM offers us when we treat the screen as being a text-based terminal. However, as we note…
151
Michael Martin @mcmartin.bsky.social · 11/06/2026
I have joked about this before, but it's worth pointing out that it is *only the first part* of Lal's famous quote that has aged poorly, and it has aged poorly *specifically because as an 'only safeguard' it is now seen to be insufficient.*
U.N. Commisioner Pravin Lal from the game "Sid Meier's Alpha Centauri," alongside his faction's pull quote:

"As the Americans learned so painfully in Earth's final century, free flow of information is the only safeguard against tyranny. The once-chained people whose leaders at last lose their grip on information flow will soon burst with freedom and vitality, but the free nation gradually constricting its grip on public discourse has begun its rapid slide into despotism. Beware of he who would deny you access to information, for in his heart he dreams himself your master."
000
Michael Martin @mcmartin.bsky.social · 27/05/2026
I like to think I'm as good with the Z80 now as I am with the 6502, but my retro time tonight was spent poring over the instruction reference and implementing basic stuff three different ways to figure out the "correct" way to phrase it on this chip. Habits are forming, progress is measurable
000
Michael Martin @mcmartin.bsky.social · 23/05/2026
Kicking off my new #retrocomputing project on the blog today! I use the #ZXSpectrum as a test platform for a lot of my #Z80 asm stuff because it is extremely cozy, but I've not written much about it because I don't, like, USE use it. Time to fix that. bumbershootsoft.wordpress.com/2026/05/23/g...
bumbershootsoft.wordpress.com
Giving the ZX Spectrum a Fair Shake
Last month (just a couple days before my Exidy Sorcerer article) the ZX Spectrum celebrated its 44th birthday. I have written shockingly little about the system given that it still remains the firs…
141
Reposted by Michael Martin
Erin Reed @erininthemorning.com · 21/05/2026
Trans people are not “fighting for unpopular positions that society isn’t ready for.” Trans people are fighting to KEEP the rights we have enjoyed for decades. We have been able to legally change our gender markers since the 70s and before. Same with bathrooms, sports, youth, all for decades.
3982652668
Reposted by Michael Martin
Jess Ragan @mneko.bsky.social · 18/05/2026
rasterscroll.com/mdgraphics/ It's dense, technical reading, but this is the best guide I've found to the graphics of the Sega Genesis. Note! There are four, sixteen color mini-palettes in the VDP, and sprites can use any one of these, along with tiles.
rasterscroll.com
A Guide to the Graphics of the Sega Mega Drive / Genesis – Raster Scroll Books
032
Reposted by Michael Martin
Dbug @dbug.defence-force.org · 17/05/2026
The difficulty with colored Oric graphics is to give the impression that the stuff is "organic" while in practice everything is aligned on a multiple of 6 pixels so attribute color changes work. And even then... iterations are required to get them all working fine!
042
Michael Martin @mcmartin.bsky.social · 16/05/2026
My latest #retrocomputing stuff has been kind of draining, so I unwound by messing around with #pico8 and porting over a cute little a-life program I've had since I was a kid. Got to do some sleazy tricks while building it too; happy with the results. bumbershootsoft.wordpress.com/2026/05/16/s...
bumbershootsoft.wordpress.com
Simulated Evolution on the PICO-8
The articles from these past couple of weeks kinda burned me out. After wrapping it up, I decided I was going to take it easy, do something simple and brainless in a nice comfy high-level language,…
032