Negative Charge @negativecharge.bsky.social · 6h...and here's what I'll be adding next. Rather than play back the complete SID file I've extracted the original sequencer from the C64 driver (order lists -> patterns -> notes/commands) so I don't have to dynamically convert the SID frequencies to the SN76489. Let's hope there's enough space! 🔊 061
Negative Charge @negativecharge.bsky.social · 9hThanks - it's a hybrid, using Kevin's Crazee Rider source as a starting point, information from here www.extentofthejam.com/pseudo/ and some hand porting of jakesgordon.com/games/racer/... to 6502. I'm using Sonnet in a limited fashion for optimization of the road drawing and python tooling.extentofthejam.comLou's Pseudo 3D Page 030
Negative Charge @negativecharge.bsky.social · 22hA few updates.... horizon moved to middle of the screen, now has three lanes for the road, dithering improved and applied to grass too, and added some clouds (which don't move at the moment). It's slightly slower but working on reclaiming cycles. Here's the code running in the beebjit emulator: 2170
Negative Charge @negativecharge.bsky.social · 04/10/2026Yes, rendering speed was my concern here too. I’m going to try and move the horizon up to the middle of the screen, but will have to resort to SWRAM soon… very tight on memory due to all the lookup tables. 010
Negative Charge @negativecharge.bsky.social · 04/10/2026Not sure where I'm going to go with this, if anywhere at all. Interesting experiment to try and get the ideas from here working on the BBC Micro: www.extentofthejam.com/pseudo/ E-Type (www.bbcmicro.co.uk/game.php?id=...) was pretty good, but was always a little disappointed by the viewport size. 3184
Negative Charge @negativecharge.bsky.social · 26/09/2026A few updates to the SID emulation on the SN76489. Playback speed is better. I'll put all three players (SoftSID, HardSID & NoSID) up on GitHub soon. Just sorting out the automatic memory relocation to filter out digi tracks these players can't yet handle. 🔊 060
Negative Charge @negativecharge.bsky.social · 25/09/2026Just a small update, but I now have 4x speed SID files dynamically playing on the SN76489. Cycles are very tight so I had to disable the scope and colour cycling, but sounds good. 🔊 1113
Negative Charge @negativecharge.bsky.social · 22/09/2026Yes, this is very possible with the same limitations. Additionally, you’d need to emulate a 6502 on the SMS to play the SID files directly, or work from a converted register dump (easier, but requires lots of memory, a streaming decompressor, or a VGM player) 020
Negative Charge @negativecharge.bsky.social · 21/09/2026Added in IRQ software bass by default... this is less harsh than using periodic noise via the LFSR. Also improved the scope visualization a little. Still lots of issues with SID files that trample all over the BBC Micro memory map, but this one appears to work just fine. 🔊 1145
Negative Charge @negativecharge.bsky.social · 19/09/2026I've posted many C64 SID to SN76489 conversions previously. These are pre-processed register dumps with large memory footprints and need compression / SWRAM. What you're seeing here is actual SID playback with dynamic SN76489 conversion. A game changer thanks to @kieranhj.bsky.social's AKS work. 1165
Negative Charge @negativecharge.bsky.social · 09/09/2026Inspired by @kieranhj.bsky.social 's realtime AKS player on the BBC Micro, I reused the AY-3-8912 to SN76489 converter to expand this to realtime playback of PT3 files from Vortex Tracker. This opens up another tracker that can now be used for BBC Micro music composition. Much smaller than ym files. 073
Negative Charge @negativecharge.bsky.social · 06/09/2026FYI - github.com/NegativeChar... This is an early version of the format I have been using. Exploring zx02 as an alternative to LZSS at the moment.github.comGitHub - NegativeCharge/BBC-Micro-SN76489-LZSS-PlayerContribute to NegativeCharge/BBC-Micro-SN76489-LZSS-Player development by creating an account on GitHub. 020
Negative Charge @negativecharge.bsky.social · 06/09/2026Sounds similar to the .lzc (lzss) format I moved to from .vgc for the same reasons… fixes unpredictable CPU usage. The difference seems to be you’re using offset streams concatenated one after the other while I went for interleaved to be able to split 16kb chunks across SWRAM backs for large files. 120
Negative Charge @negativecharge.bsky.social · 06/09/2026A little side project I've been working on... a lightweight streaming ZX02 music driver for the BBC Micro. Supports main memory as well as multiple chunks spread over SWRAM banks. Without giving too much away, the ultimate platform for this driver isn't just the SN76489... more to come 🔊 0133
Negative Charge @negativecharge.bsky.social · 06/09/2026Love it! I built a converter for AKS to SN register writes, but never attempted direct realtime playback which is much less memory hungry and more efficient on disk. Would love to see this extended to .PT3 as there’s a huge library available. Also hardware envelopes via IRQ bit banging! Great job 130
Negative Charge @negativecharge.bsky.social · 22/08/2026A bit of a diversion from SoftSID. I realised that with a few minor changes I could add support for the BeebSID device which interfaces with a hardware SID. Also added a rudimentary menu system and tools to automate the batch relocation of SID files. Should be ready to publish to GitHub soon. 🔊 1132
Negative Charge @negativecharge.bsky.social · 17/08/2026Same tune at a lower sampling rate and Mode 7 visualisation. 🔊 020
Negative Charge @negativecharge.bsky.social · 17/08/2026Quite a significant improvement in sound quality. SID files are now played back via all three tone channels of the SN76489 all set to play PCM audio. A mass of optimisations allows for a higher sampling rate. 🔊 1111
Negative Charge @negativecharge.bsky.social · 10/08/2026Added a rudimentary oscilloscope view to the BBC Micro SoftSID player. It takes up cycles which means I have to drop sampling down to 6500hz, but @pauliehughes.bsky.social SID driver still sounds good on hardware and a sound chip it was never supposed to work on 😊🔊 1214
Negative Charge @negativecharge.bsky.social · 09/08/2026Working on getting some of the more complex SIDs playing. Created a Mode 7 version to free up more base memory, and updated the command line parsing to allow loading from any drive. Still some problematic SIDs that relocate to memory regions not writable on the BBC Micro which need recompiling. 191
Negative Charge @negativecharge.bsky.social · 07/08/2026A little more progress on SoftSID for the BBC Micro. Thanks to @kieranhj.bsky.social for testing on real hardware, which highlighted subtle inconsistencies on all emulators... they may sound fine, but the real hardware doesn't like it when you try an over-optimise the writes to the SN76849. 0141
Negative Charge @negativecharge.bsky.social · 03/08/2026Check my latest post here for the updated .SSD to try on your hardware. I realise the previous version I posted had a serious bug that meant it only worked in B-em. This version should work everywhere (hopefully): stardot.org.uk/forums/viewt...stardot.org.ukSoftSID - BBC Micro software-based SID emulatorHere's something I've been working on for a long while but finally have something to show. This is a pure software-based C64 SID emulator (no additional 010
Negative Charge @negativecharge.bsky.social · 02/08/2026Fortunate, and may also mean I don’t need to remap the SID registers at &d4xx, making for easier conversions. 010
Negative Charge @negativecharge.bsky.social · 02/08/2026You read my mind 😊 I’ll give an Elk version a go at some point. The Beeb version uses variable volume levels between 0 to 15, so I’ll need to switch to on and off as I did for Speech! The bigger issue may be the self modified code. 140
Negative Charge @negativecharge.bsky.social · 02/08/2026A little more work on SoftSID for the BBC Micro. More SID files are working now once I realised several want to unpack into memory between &c000 and &8000, so I page in a writeable SWRAM bank if available. Also fixed VBI track playback speed (correcting Out Run) and implemented NTSC support. 🔊 2192
Negative Charge @negativecharge.bsky.social · 25/07/2026If anyone wants to give it a go, I’ve put an early preview up here on this thread: stardot.org.uk/forums/viewt...stardot.org.ukSoftSID - BBC Micro software-based SID emulatorHere's something I've been working on for a long while but finally have something to show. This is a pure software-based C64 SID emulator (no additional 020
Negative Charge @negativecharge.bsky.social · 25/07/2026SoftSID 0.0.6 for the BBC Micro Added ability to specify the .sid file and track number on the command line. Many optimizations to bring the cycle count down too. Should be ready for a preview release soon once I've chased a few more cycles and relocated some more example SIDs. 🔊 1242
Negative Charge @negativecharge.bsky.social · 21/07/2026Here’s the complete Monty on the Run SID playing back using SoftSID on the BBC Micro (albeit slightly too slow). Trying to work out what’s causing the high-pitched carrier tone on other emulators - BeebEm is surprisingly the best right now. youtu.be/2Pw7LqgPdTIyoutu.beBBC Micro SoftSID ExperimentYouTube video by Negative Charge 160
Negative Charge @negativecharge.bsky.social · 21/07/2026BBC Micro SoftSID v0.03 Now working on other emulators, and directly parsing relocated .sid files. This is the track I've always wanted to get playing properly on the BBC Micro. Getting closer.... 🔊 0202
Negative Charge @negativecharge.bsky.social · 20/07/2026Just to prove to myself that playback of other SID files via the SoftSID, here's Plastic Pop by Danko 🔊 192
Negative Charge @negativecharge.bsky.social · 20/07/2026I don't think there's many cycles left... if any. I'll try and measure it at some point. 210
Negative Charge @negativecharge.bsky.social · 20/07/2026SoftSID v0.02 for the BBC Micro This is a bit more like it. Upped the audio rate to 6.1 kHz to match the VIC-20 version. Also re-located the SID to &1100 which was the cause of the random hangs and inability to playback on the Model B due to a DFS clash. I need to relocate a different SID now 😊🔉 1194
Negative Charge @negativecharge.bsky.social · 20/07/2026Thanks. Once I have this stable and tested under FPGA I’ll make it available. I think I may need to relocate the SID file above &1100 which is the issue on a Model B right now. 010
Negative Charge @negativecharge.bsky.social · 20/07/2026A lot of the ability to drive the SN76489 at a reasonable rate relies on the discoveries here: stardot.org.uk/forums/viewt... At the moment I can only get B-em to play back properly, and then only emulating a Master - fails completely in other emulators.stardot.org.ukSN76489: analysis of bus side behaviorBy better understanding the bus side behavior of the SN76489 in the BBC application, there may be opportunities to create enhanced audio demos. The BBC uses a 220
Negative Charge @negativecharge.bsky.social · 20/07/2026This is heavily based on Sid Vicious by Aleksi Eeben. 160
Negative Charge @negativecharge.bsky.social · 20/07/2026Ever wanted to play Commodore 64 SID tunes on a BBC Micro without needing additional hardware? Having seen similar attempts on the VIC-20, Atari 800 and ZX Spectrum I thought I'd give it a go. Early days, unstable, and sound fidelity needs to be improved, but it works! (sort of...). SoftSID v0.01 🔊 2215
Negative Charge @negativecharge.bsky.social · 16/07/2026I previously had a go at converting Tim Follin's 1-bit ZX Spectrum beeper routine for Agent X II to the BBC Micro's SN76489. Here's a follow up attempt with Chronos. The percussion isn't quite right, but the melody is perfectly recognisable. 🔊 091
Negative Charge @negativecharge.bsky.social · 12/07/2026Just to close this one out... random colour palette, screen fades and the odd teapot. Source code at the link below for those interested. I'm sure it can be optimized and even implemented in a better way. github.com/NegativeChar... 3213
Negative Charge @negativecharge.bsky.social · 10/07/2026Works on the Acorn Electron too. Just a little bit slower. 0101
Negative Charge @negativecharge.bsky.social · 10/07/2026Yes, Mode 1, even with less colours allows for a lot more going on... 2122
Negative Charge @negativecharge.bsky.social · 10/07/2026I haven't posted any demos for a long while, so here's a version of 2D Pipes in Mode 2 which works as quite a good screensaver for the BBC Micro. No music on this one as I waste 20kb just on the screen mode. No random teapots at the moment either. It might look better in Mode 1 with square pixels. 0172
Negative Charge @negativecharge.bsky.social · 06/07/2026It determines exactly when each byte of compressed data is "consumed" by the driver at runtime. It then re-interleaves all the compressed data into one single, flat file, ordered specifically by the exact moment the music player needs to read each byte. 110
Negative Charge @negativecharge.bsky.social · 06/07/2026It’s a little difficult to explain, but I’ve tried to keep the driver as close to the lzss code as possible. The compressor de-interleaves into 7 independent streams, uses ZX02 to compress each of these 7 streams individually, then runs a simulation of the decompression process for all 7 streams. 110
Negative Charge @negativecharge.bsky.social · 05/07/2026I've replaced the compression with zx02 from lzss, which on average is giving 2kb smaller files. I've also implemented a new SID converter to handle some of the trickier tunes. Doesn't look any different, but I can now squeeze a few extra tracks onto the BBC Micro music disks. 🔊 1319
Negative Charge @negativecharge.bsky.social · 20/06/2026Slowly putting together some new music disks for the BBC Micro using a new set of converters. This one demonstrates squeezing a multi channel song down into 3 tone channels and one noise channel. Still some refinement needed. Here's the original for comparison: demozoo.org/music/134849/ 🔊 0150
Negative Charge @negativecharge.bsky.social · 25/05/2026As this is 1-bit sound all 5 tones are down-mixed to output on a single SN76489 tone channel by rapidly turning the volume on and off with an inaudible tone set. This is normally quieter than the square wave generators. I could output to all three channels to increase volume at expense of cycles. 030
Negative Charge @negativecharge.bsky.social · 22/05/2026Putting the BBC Micro compressed VGM to the side for now as I can't get it to work at the required speed. Instead, I've been looking at some of the Tim Follin archives posted by @breakintoprogram.co.uk to GitHub to see if I can get any of the classic beeper music playing back on the SN76489: 🔊 1152
Negative Charge @negativecharge.bsky.social · 17/05/2026While I continue to battle with compressed VGM playback streaming from disk at a decent speed, here's some brand new BBC Micro music by Enfys from Outline 2026. 🔊 1246
Negative Charge @negativecharge.bsky.social · 11/05/2026Some progress! I now have compressed VGM files (.VGZ) streaming from disk and decompressing on the fly. How do I know it's working? At the very end of the clip you can make out the GD3 strings. Very close to having a streaming, decompressing, SN76489 VGM playback engine. 14KB expanding to 95KB. 192
Negative Charge @negativecharge.bsky.social · 09/05/2026Buffer size reduced to 2kb which leaves plenty of memory for vgz decompression. 8271 floppy disk controller support fixed. 60Hz VGM playback fine. So now I'll work on a basic streaming decompressor to a ring buffer for VGZ. The window should be 32kb (which I don't have free) but we won't need that. 0201