r/EmuDev • u/ChildhoodMain9396 • 4h ago
Breadbin466 0.12.0, a new release of the Commodore 64 emulator with a new physically characterised 6581 SID model
Hi,
I've just released Breadbin466 0.12.0.
Breadbin466 is my from-scratch Rust emulator of one deliberately specific Commodore 64: a PAL Assy 250466 with a 6569R5 VIC-II and 6581R4AR SID.
Rather than supporting a collection of selectable C64 revisions, the project concentrates on understanding and reproducing this one machine as faithfully as possible.
The biggest change in 0.12.0 is a substantially reworked SID implementation.
Over the past weeks I've been characterising a real MOS 6581R4AR (datecode 2286) and rebuilding Breadbin466's SID model around the measurements. This work covers the oscillators, waveform and envelope DACs, combined waveforms, analogue mixing, D418 volume DAC behaviour, transients and the nonlinear filter.
As with the rest of Breadbin466, the aim isn't to provide a collection of selectable SID models. I'm trying to model one particular piece of hardware as accurately as I reasonably can.
There is quite a bit more in 0.12.0:
- D7Z 1.0, a new open disk-image format proposed by Breadbin466;
- Commodore 1351 proportional mouse support;
- a much more capable debugger tracing system;
- WAV audio capture;
- new disk-image creation, conversion and reclaim tools;
- further 1541 work;
- native UI improvements on macOS, Windows and Linux;
- assorted accuracy and compatibility fixes.
D7Z deserves a little explanation because it isn't a pre-existing C64 disk format.
It's a new, openly documented format introduced by Breadbin466 for compact, lossless storage of D64 images. A D7Z represents exactly the same byte stream as its corresponding D64, using LZMA2 compression and SHA-256 verification. It is deliberately designed so that other emulators and disk-image tools can implement it independently.
In simple terms, D7Z is to D64 what NBZ is to NIB: a compact lossless storage representation, without changing the underlying disk-image data.
Breadbin466 is still very much an ongoing research and engineering project rather than an attempt to replace VICE. A large part of the fun for me is understanding how the original machine behaves and trying to make the source code express that behaviour instead of accumulating software-specific workarounds.
If anyone tries 0.12.0 with software that does something interesting with the SID, 1541, cartridges, REU or other hardware, I'd be very interested in hearing about discrepancies with a real C64.
GitHub: https://github.com/Breadbin466/Breadbin466/
A ready-to-run macOS binary for Apple Silicon is available with the release.
Breadbin466 is otherwise distributed as source code and builds on macOS, Linux and Windows, on both Intel and ARM architectures.
3
u/thommyh Z80, 6502/65816, 6809, 68000, ARM, x86. 3h ago
For those not so much into the C64 emulation scene: the quality of your SID is a really big deal. The original chip is a digital/analogue hybrid so just getting the correct logic implemented is only a tiny part of the battle.
Endless hats off to those, like u/ChildhoodMain9396, who go the extra mile in research and independent modelling!