abbruzze/kernal64
57.1
Adequate · 20 September 2026
62.9k
lines of production code
Scala
with C
1
measurement over time
What this system is
Kernal64 is a Java-based emulator for the Commodore 64 and its related hardware family, including the C128, VIC-20, and CBM II. It provides cycle-accurate emulation of CPU architectures like the 6502 and Z80, alongside detailed peripheral support for video, audio, and storage devices. The system also features a built-in 6502 assembler, a remote control client, and tools for debugging and game management.
How it got here
2014–2017 — Commodore 128 and core architecture expansion
27 changes.
This period focused on adding full Commodore 128 emulation support, including its VDC video controller and Z80 co-processor, while refactoring the internal architecture into a unified CBM component hierarchy. Significant enhancements were made to peripheral accuracy, featuring cycle-exact SID audio, precise CIA timing, and comprehensive disk drive and expansion port emulation. The work also introduced new developer tools like a 6502 assembler and trace debugger, alongside usability features such as OS-aware keyboard layouts and remote client capabilities.
2020–2023 — Commodore platform expansion and hardware emulation
16 changes.
This period focused on significantly expanding the emulator's hardware support by adding initial implementations for the Commodore VIC-20, CBM II, and Super CPU variants, alongside a new WD65816 CPU core. The work also involved deepening peripheral accuracy through the addition of VASYL, CRTC, and MOS653x chip emulation, while replacing the SID audio subsystem with a more precise resid4 model. Infrastructure improvements included migrating the build system to SBT and establishing a comprehensive testbench for validating these new platform features.
Features
Added ACIA configuration dialog for internet connectivity
Users can now configure the ACIA (Asynchronous Communications Interface Adapter) to connect to remote hosts via a new GUI dialog. This feature allows specifying a host and port, establishing a TCP socket connection, and managing the connection state (connect/disconnect) with visual status feedback. The implementation includes the underlying ACIA6551 peripheral logic to handle data streams and interrupts when connected.
Kernal64/src/ucesoft/cbm/peripheral/mos6551 · high confidence
Added CP/M Cartridge support for Commodore 64
Users can now use a CP/M cartridge expansion on the Commodore 64, which integrates a Z80 processor to run CP/M software. The implementation handles the Z80's memory mapping, clock synchronization, and bus request signals, allowing the system to toggle the Z80 core on and off. State saving and loading are supported to preserve the Z80's internal state across sessions.
Kernal64/src/ucesoft/cbm/expansion/cpm · high confidence
Added CRTC6845 video controller implementation
The CRTC6845 peripheral component has been added to the system, providing the core logic for video timing, raster generation, and screen geometry management. This implementation handles register configuration for horizontal and vertical sync, cursor positioning, and interlace modes, and integrates with the display subsystem to manage bitmap rendering and screen clipping.
Kernal64/src/ucesoft/cbm/peripheral/crtc · high confidence
Added MOS6530 and MOS6532 peripheral emulation
The MOS653x peripheral emulation layer now includes support for the MOS6530 and MOS6532 chips. The new MOS6532 class implements the base I/O port handling, timer logic, and interrupt flag management, while the MOS6530 class extends this to handle its specific 64-byte RAM and 1024-byte ROM configuration. This enables accurate emulation of hardware components that rely on these specific 653x variants.
Kernal64/src/ucesoft/cbm/peripheral/mos653x · high confidence
Added VASYL coprocessor emulation support
Added the VASYL coprocessor implementation, including its instruction set (BADLINE, BRA, DELAYH, etc.), memory banking, and register handling, along with the necessary VICContext and VICCoprocessor interface traits to integrate it into the VIC emulation pipeline.
Kernal64/src/ucesoft/cbm/peripheral/vic/coprocessor · high confidence
Added WD65816 CPU emulation core
The emulator now includes a new CPU core for the Western Digital WD65816 (65816) processor, enabling support for systems that use this 16-bit architecture. This addition introduces the core execution logic, including a full instruction set disassembler, cycle-accurate timing definitions, and microcode macros for handling 8-bit and 16-bit operations. The implementation supports both emulation and native modes, allowing the emulator to correctly handle the specific addressing modes and register behaviors required by 65816-based hardware.
Kernal64/src/ucesoft/cbm/cpu/wd65816 · high confidence
Added default keyboard layouts for C64 and C128 on Windows, Linux, and Mac
The emulator now ships with built-in, operating-system-aware keyboard configuration files for the Commodore 64 and C128. New resource files (e.g., \default\_keyboard\_c64\_DE\, \default\_keyboard\_c128\_EN\) provide pre-configured mappings for German, English, and Italian layouts, using OS-specific modifiers (Windows, Linux, Mac) to correctly handle special characters like umlauts and currency symbols. This ensures that users get accurate key mapping out-of-the-box without needing to manually configure their host keyboard layout.
Kernal64/resources · high confidence
Added keyboard layout definitions for C128, C64, CBM2, and VIC-20
The Keyboard Editor now includes resource files defining the physical key layouts for four classic Commodore systems: the C128, C64, CBM2, and VIC-20. These CSV files specify the position, size, and label for every key on each model, enabling the editor to accurately render and allow customization of these specific hardware configurations.
Kernal64/resources/keyboardEditor · high confidence
Added launch scripts for C64, C128, VIC-20, CBM II, SCPU64, assembler, and remote client
New batch (.bat) and shell (.sh) scripts have been added to the build directory to provide convenient ways to launch specific emulator components. These scripts cover the Commodore 64 (k64), Commodore 128 (k128), VIC-20 (k20), CBM II (kcbm2), SCPU64 (kscpu64), the 6502 assembler (k64ass), and the remote C64 client (remoteclient). Each script sets up the necessary Java classpath and library paths, with the remote client script specifically configured with lower memory limits (32M) compared to the main emulators (64M-256M).
Kernal64/build · high confidence
Added support for MPS803 and IEEE488 MPS803 printer peripherals
Users can now emulate the Commodore MPS803 printer and its IEEE488 variant within the CBM computer models. This change introduces the necessary hardware components, including the printer device drivers, a graphics rendering driver for visual output, and the associated ROM image, enabling software that relies on these specific printer interfaces to function correctly.
Kernal64/src/ucesoft/cbm/peripheral/printer · high confidence
Datassette peripheral implementation with tape controls
The C2N datassette peripheral now supports full tape simulation, including play, stop, record, forward, and rewind operations. Users can load TAP files, which are analyzed to provide accurate counter tracking and position updates during playback or recording. The implementation handles motor delay logic and state transitions, ensuring the emulator correctly reflects the physical behavior of a cassette interface.
Kernal64/src/ucesoft/cbm/peripheral/c2n · high confidence
Expanded cartridge support with new hardware implementations
The emulator now supports a wider variety of Commodore 64 and VIC-20 cartridges, including Action Replay, Comal80, Dinamic, EasyFlash, Epyx Fastload, Final Cartridge I and III, FunPlay, GMOD2, GMOD3, Game System, KCS, Mach5, MagicDesk, MagicDesk128, MagicDesk16K, Ocean, PageFox, Simon's Basic, Super Explode, Super Games, Super Snapshot 5, Warp Speed, and Zaxxon. This update adds specific emulation logic for each cartridge type, enabling users to load and play software that relies on these hardware expansions.
Kernal64/src/ucesoft/cbm/formats/cart · high confidence
Initial Commodore 128 emulation support
The emulator now includes the core components for the Commodore 128, introducing the C128 main class, a dedicated MMU (C128MMU) for memory management, and specific RAM (C128RAM) and ColorRAM implementations. This change enables the emulation of the C128's dual-mode architecture (C64 and 128 modes), including support for the Z80 co-processor, VDC video output, and various cartridge types like MagicDesk128 and Megabit. A new MMU status panel provides visual feedback on system states such as 2MHz speed, Z80 activity, and mode selection.
Kernal64/src/ucesoft/cbm/c128 · high confidence
Initial implementation of Commodore CBM II (CBM2) machine emulation
This change introduces the core emulation infrastructure for the Commodore CBM II series, including the 610, 620, 710, and 720 models. It adds the CBM2MMU component to handle the specific memory mapping and bank switching logic required by these machines, defines the hardware profiles in CBM2Model (covering memory sizes, PAL/NTSC variants, and ROM configurations), and implements the main CBMII computer class with IEEE488 bus support via new connector classes. This provides the foundational hardware simulation layer for running CBM II software.
Kernal64/src/ucesoft/cbm/cbm2 · high confidence
Initial implementation of the VDC peripheral for C128 emulation
Added the Video Display Controller (VDC) component to the C128 emulation, enabling 80-column text and graphics modes. This new file implements the core VDC logic, including register handling, video mode management (text, bitmap, blank), and screen rendering, which is required for full C128 functionality and compatibility with specific demos.
Kernal64/src/ucesoft/cbm/peripheral/vdc · high confidence
Initial support for Commodore VIC-20 emulation
Users can now run and play software on the Commodore VIC-20 within Kernal64. This change introduces the core emulation components for the VIC-20, including the main computer class, a memory management unit (MMU) with configurable expansion blocks, and specific VIA (Versatile Interface Adapter) chips for keyboard scanning, cassette control, and I/O. It also adds support for VIC-20 specific cartridges (such as FE3, Ultimem, GeoRAM, and IEEE488), RS-232 communication, and NTSC/PAL video modes, enabling the system to boot and execute programs.
Kernal64/src/ucesoft/cbm/vic20 · high confidence
Initial testbench hook scripts for Commodore 64, 128, VIC-20, CBM-II, and SuperCPU
This change introduces the first revision of the Kernal64 testbench infrastructure by adding shell hook scripts for the C64, C128, VIC-20, CBM-II, and SuperCPU platforms. These scripts define the environment checks, default emulator flags (such as headless mode, warp speed, and specific video palettes), and screenshot-based test execution logic. They enable the testbench to handle hardware-specific configurations, including NTSC/PAL video modes, SID chip variants, REU memory sizes, GeoRAM, RAM cartridges, and disk/cartridge file mounting, aligning the testing process with the Vice emulator's test list.
Kernal64/testbench · high confidence
Introduce SCPU-based Commodore 64 emulation with enhanced memory and status controls
This change adds a new SCPU (Super CPU) variant for the Commodore 64, implemented in the \scpu\ package. It introduces a custom MMU (\SCPUC64MMU\) that supports fast RAM banking, SIMM usage tracking, and specific memory configurations like Ultimax mode. The emulator now includes a new \MMUStatusPanel\ in the GUI, allowing users to visually monitor and toggle JiffyDOS and 1MHz system speed settings, as well as view SIMM memory usage. The underlying \SCPUC64\ component wires up the 65816 CPU, VIC II, CIAs, and drives to support this enhanced hardware model.
Kernal64/src/ucesoft/cbm/scpu · high confidence
K64Assembler documentation and example source files added
The Kernal64/asm directory now includes a README.md user guide and a collection of example assembly files (such as 1nvader-c64.asm, MusicIrq.asm, and fractal.asm) adapted from the KickAssembler project. These files demonstrate the assembler's high-level features, including preprocessor directives, macros, variables, loops, and integration with the debugger, providing users with reference implementations for C64 development.
Kernal64/asm · high confidence
New 6502/65xx Assembler with GUI and SID support
Introduces a complete new assembler subsystem for 6502/65xx assembly language, including a parser, compiler, bytecode emitter, and a Swing-based GUI dialog for interactive assembly. The assembler supports standard directives (ORG, FILL, WORD, TEXT), control flow (IF, WHILE, FOR), macros, modules, and includes. It also adds specific support for analyzing SID (Sound Interface Device) data structures via the .asSID directive, allowing users to work with SID file formats within their assembly code.
Kernal64/src/ucesoft/cbm/cpu/asm · high confidence
New CPU core architecture and assembler support
The emulator now includes a new CPU subsystem in the \cpu\ package, introducing a generic \CPU65xx\ trait and a specific \CPU6510\_CE\ implementation for the Commodore 64, alongside a full Z80 emulator (\Z80.scala\). This change adds a new 6502 assembler (\Assembler.scala\) for parsing and encoding assembly code, and refactors memory management with new \Memory\, \RAMComponent\, and \ROM\ classes that support features like ROM reloading and bridged memory access. These components form the foundational CPU and memory emulation layer for the emulator's CBM (Commodore) computer support.
Kernal64/src/ucesoft/cbm/cpu · high confidence
New CSDB game provider and refactored game repository system
Users can now browse and download Commodore 64 games from the CSDB (csdb.dk) database via a new provider, alongside existing GameBase and Pouet sources. This change introduces a unified game repository system that caches game metadata and archives locally, supports progress tracking during downloads, and handles URL redirects for reliable game retrieval. The underlying game data model and provider interface have been standardized to support these features.
Kernal64/src/ucesoft/cbm/game · high confidence
New IEC and IEEE488 bus emulation infrastructure
The emulator now includes a new bus emulation layer in the \ucesoft.cbm.peripheral.bus\ package, introducing support for both the Commodore IEC bus (used by C64/C128 peripherals) and the IEEE488 bus (used by CBM2 and other devices). This change adds core components such as \IECBus\ and \IEEE488Bus\ to manage signal lines (ATN, CLK, DATA, SRQ, etc.) and listener registration, along with \IECBusDevice\ and \IEEE488BusHandshake\ to handle device-level protocol states, commands (TALK/LISTEN/OPEN/CLOSE), and data transfer. It also provides utility classes like \BusDataIterator\ for stream processing and a \BusSnoop\ device for debugging bus activity. This infrastructure enables more accurate peripheral communication and state saving/loading for connected devices.
Kernal64/src/ucesoft/cbm/peripheral/bus · high confidence
New RS-232 serial port emulation for CBM computers
This change introduces a complete RS-232 peripheral implementation for the CBM (Commodore) family, allowing the emulator to handle serial communication via the User Port. It provides multiple connection backends: TCP networking (TCPRS232), Telnet/BBS connections (TelnetRS232), file I/O (FileRS232), and external process piping (ProcessRS232). The implementation includes a Hayes-compatible modem command interpreter (supporting AT commands like ATDT, ATH, ATE) and manages serial signals (TXD, RTS, DTR, CTS, etc.) with configurable baud rates, parity, and stop bits. This enables software that relies on serial modems or direct serial links to function correctly within the emulator.
Kernal64/src/ucesoft/cbm/peripheral/rs232 · high confidence
New VIC-20 expansion port support for IEEE488, FE3, GeoRAM, and Ultimem cartridges
The VIC-20 emulator now supports four distinct expansion port cartridges: the IEEE488 interface (VIC 1112), the Final Expansion 3 (FE3), GeoRAM, and Ultimem. This change introduces the core \VIC20ExpansionPort\ framework and specific implementations for each cartridge type, including configuration UI panels for loading ROM images and managing settings. The FE3 and Ultimem cartridges now utilize the AMF29F040 flash chip model to support image write-back capabilities, allowing changes made during emulation to be saved back to the original ROM file when the cart is detached.
Kernal64/src/ucesoft/cbm/expansion/vic20 · high confidence
New cartridge and disk image format support
The emulator now supports loading and saving .CRT cartridge files, including specific implementations for various cart types via the ExpansionPortFactory. It also adds support for several disk image formats: .D64 and .D71 (with 42-track support), .G64 and .G71 (with directory/BAM support), .D80 (Commodore 80-drive format), and .D81 (Commodore 1581 format). Additionally, a new D64LocalDirectory class allows creating disk images from local directories, syncing changes back to the source files.
Kernal64/src/ucesoft/cbm/formats · high confidence
New configurable joystick and gamepad input system
The control port peripheral now supports configurable input devices, allowing users to select between keypad, keyboard, or gamepad for each joystick port via the new Joystick Setting Dialog. The system introduces a GamePadControlPort that detects and maps physical controllers using jinput, including specific handling for the 1531 mouse right button emulation. Keyboard emulation has been refined to prevent key forwarding conflicts and support fast direction changes, while the underlying ControlPort architecture provides a unified interface for these diverse input methods.
Kernal64/src/ucesoft/cbm/peripheral/controlport · high confidence
New drive emulation architecture with C1541, 1571, 1581, and 8050 support
The emulator introduces a comprehensive new drive subsystem, replacing previous implementations with full hardware-level emulation for the Commodore 1541, 1571, 1581, and 8050 disk drives. This change includes dedicated CPU and memory models for each drive type, precise IEC/IEEE bus protocol handling via VIA and CIA chips, and support for various disk image formats (D64, D71, G64, G71, D81, D80). The update also adds a new abstract drive base class and a software-emulated C1541 variant, enabling more accurate floppy operations and state saving across different drive models.
Kernal64/src/ucesoft/cbm/peripheral/drive · high confidence
New expansion port hardware support: DigiMAX, DualSID, GeoRAM, RAMCART, ISEPIC, and REU
The emulator now supports several new expansion cartridges and hardware modules. Users can attach a DigiMAX cartridge for digital audio playback via the user port, and a DualSID cartridge to enable a second SID chip for stereo sound. Additional memory expansions include GeoRAM, RAMCART, and the ISEPIC cartridge. The Rapid Eye Unit (REU) emulation has been significantly updated to support sizes up to 8MB and includes fixes for memory read/write operations and state saving.
Kernal64/src/ucesoft/cbm/expansion · high confidence
New remote C64 emulation client and server
Added a new remote control feature for the Commodore 64 emulator, consisting of a server component that streams video and accepts keyboard input over a network socket, and a client application that displays the remote video feed and forwards user keystrokes. This allows users to run the C64 emulation on one machine and view/control it from another via a simple TCP connection.
Kernal64/src/ucesoft/cbm/remote · high confidence
New trace debugger with condition-based breakpoints and memory inspection
The trace debugger now supports conditional breakpoints, allowing users to pause execution only when specific CPU register values or labels match a defined expression. A new Inspect panel lets users browse the system's component tree and inspect or modify memory addresses in real-time, while a Font panel provides a visual viewer for character sets at arbitrary memory locations. The debugger interface has been updated to persist breakpoints across sessions and includes a labels table for managing symbolic addresses.
Kernal64/src/ucesoft/cbm/trace · high confidence
New utility components and hardware emulation models added to the misc package
This change introduces several new files to the \ucesoft.cbm.misc\ package, enhancing both the emulator's internal capabilities and user interface. It adds hardware emulation models for flash memory chips (AMF29F040 and EN25QH128A) and an AnimatedGIF writer for recording. On the UI side, it provides new canvas classes for displaying Commodore character modes (CBMCanvas, D64Canvas), a file view for disk images, a configuration panel for drive settings with drag-and-drop support, and a display effects panel for rotation and mirroring. Additionally, it includes an 'About' canvas and a BASIC token explorer for debugging.
Kernal64/src/ucesoft/cbm/misc · high confidence
Architecture
Refactored Commodore emulation core into a unified CBM component hierarchy
The emulator's internal architecture has been restructured to consolidate C64, C128, and VIC20 emulation into a shared \CBMComputer\ base class and a \CBMComponent\ tree. This change introduces a standardized lifecycle for hardware components (init, reset, hardReset, shutdown) and a unified state-saving mechanism that recursively saves and restores the entire component hierarchy, including clock events and memory. The refactoring also adds a new \CBMComputerModel\ enumeration to distinguish between machine types and integrates the FlatLaf look and feel for the GUI.
Kernal64/src/ucesoft/cbm · high confidence
Behavioural changes
1 commit (0 fixes) modifying Kernal64/resources/sid
A change to existing behaviour in Kernal64/resources/sid — 1 commit, 8 files.
Kernal64/resources/sid, Kernal64/roms/cbm2, Kernal64/roms/scpu · medium confidence · unverified
2 commits (0 fixes) modifying Kernal64/roms/vic20
A change to existing behaviour in Kernal64/roms/vic20 — 2 commits, 4 files.
(repo-wide) · medium confidence · unverified
New VIC video chip emulation architecture with palette and display support
The emulator introduces a new internal structure for the VIC video chip, separating the core logic into distinct VIC\_I and VIC\_II implementations to better model the hardware differences between the VIC-20/C64 and C128. This change adds support for multiple color palettes (including VICE, Bright, Pepto, and Colodore) and enables display features such as interlaced modes, light pen input, and single-frame stepping. The visual output is now handled by a dedicated Display component that supports zooming, rotation, and flipping, while the VIC\_I chip gains its own audio generation logic for the VIC-20.
Kernal64/src/ucesoft/cbm/peripheral/vic · high confidence
New keyboard subsystem with OS-aware layout detection and C128-specific key support
The emulator introduces a new keyboard handling architecture in the \Kernal64/src/ucesoft/cbm/peripheral/keyboard\ package, replacing previous implementations with a modular system supporting C64, C128, VIC20, and CBM2 models. This change adds automatic detection of host OS keyboard layouts (Italian, German, English) via environment variables or system queries, allowing users to use their native physical key mappings without manual configuration. It also implements specific handling for C128-exclusive keys, mapping the 40/80 column switch to F9 and Caps Lock to the Caps Lock key, while introducing a threaded buffer mechanism to reliably insert keystrokes into the emulated machine's memory even after long loading delays.
Kernal64/src/ucesoft/cbm/peripheral/keyboard · high confidence
New reSID-based SID audio emulation engine
The Commodore 64 SID (Sound Interface Device) audio emulation has been replaced with the reSID engine, a cycle-accurate Java implementation of the MOS6581 and MOS8580 chips. This change introduces precise modeling of the SID's internal operations, including its two-integrator-loop biquadratic audio filter, envelope generators, and waveforms, significantly improving the authenticity of music and sound effects in C64 software.
Kernal64/src/ucesoft/cbm/peripheral/sid/resid · high confidence
Refactored CIA peripheral emulation with improved timer and interrupt accuracy
The Commodio Interface Adapter (CIA) emulation has been significantly refactored to improve timing accuracy and fix several behavioral bugs. The timer logic has been restructured into dedicated classes (Timer, Timer\_A, Timer\_B), correcting issues with timer reloading, underflow handling, and the interaction between Timer A and Timer B. Interrupt requests (IRQ) are now handled more precisely, particularly regarding the timing of CPU interrupt clears relative to timer underflows. Additionally, the Time-Of-Day (TOD) clock implementation has been fixed to correctly handle BCD digit rollovers and NTSC/PAL tick rates, and Port B now properly supports light-pen trigger detection.
Kernal64/src/ucesoft/cbm/peripheral/cia · high confidence
Replaced SID audio engine with cycle-exact resid4 implementation and pluggable audio drivers
The Commodore SID sound chip emulation has been rewritten to use the resid4 library for cycle-exact audio synthesis, significantly improving audio accuracy and timing. This change introduces a new \AudioDriverDevice\ abstraction, allowing the emulator to swap audio output backends (defaulting to a Java Sound \SourceDataLine\ implementation) without modifying the core emulation logic. Users benefit from more precise sound reproduction, support for dual SID configurations, and the ability to toggle cycle-exact audio timing via the \--sid-cycle-exact\ flag, while maintaining compatibility with existing save states and hardware features like light gun input.
Kernal64/src/ucesoft/cbm/peripheral/sid · high confidence
Restructured C64 memory management and initialization
The C64 emulator's memory architecture has been refactored to improve accuracy and testability. The Memory Management Unit (MMU) and VIC banked memory are now handled by dedicated classes (C64MMU and C64VICMemory), introducing support for custom glue logic and precise VIC bank switching. Additionally, a new MemConfig system defines 32 distinct memory configurations, allowing the emulator to correctly map ROMs (Basic, Kernal, Character) and I/O regions for various hardware setups, while RAM initialization patterns have been adjusted to ensure compatibility with testbench requirements.
Kernal64/src/ucesoft/cbm/c64 · high confidence
Fixes
Replaced SID audio emulation with new resid4 implementation
The SID audio chip emulation in the Commodore 64 peripheral has been replaced with a new \resid4\ implementation. This change introduces a complete rewrite of the audio subsystem, including new classes for the Digital-to-Analog Converter (DAC), Envelope Generator, Waveform Generator, Voice processing, and both internal and external filters. The new model supports distinct characteristics for the MOS 6581 and MOS 8580 SID chips, utilizing specific waveform data and DAC tables to improve audio fidelity and accuracy, particularly for low frequencies and complex filter interactions.
Kernal64/src/ucesoft/cbm/peripheral/sid/resid4 · high confidence
Dependencies
Migrate build system to SBT and update dependencies
The project has switched its build process from ANT to SBT, introducing a new build.sbt configuration that sets the version to 1.8.7 and Scala to 2.13.16. This change updates several library dependencies, including rsyntaxtextarea to 3.6.0, jsoup to 1.21.2, scala-parser-combinators to 2.4.0, commons-net to 3.12.0, and flatlaf to 3.6.1, while also configuring the Java release target to 11.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 57.
Lenses
- Code Health 76
- Architecture 98
- Maturity 55
- Readiness 44
- Security 87
Changes since last survey
- 300 commits — 198 feature/other, 102 fixes
By area
- Kernal64/src — 220 commits
- (root) — 36 commits
- (repo) — 8 commits
- Kernal64/build — 8 commits
- .github/workflows — 5 commits
- Kernal64/build.sbt — 5 commits
- Kernal64/testbench — 5 commits
- Kernal64/resources — 4 commits
- images/c128.jpg — 2 commits
- Kernal64/project — 1 commit
- images/cbm2-spacechase.png — 1 commit
- images/cbm2.png — 1 commit
- images/debug.png — 1 commit
- images/keyboard_editor.PNG — 1 commit
- images/scpu-metaldust.gif — 1 commit
- images/vic20-interlaced.png — 1 commit
Notable commits
- fix: 128MMU other little adjustments Removed useless --drive-trace-file option Fixed 1571 MMU led
- fix: Added ACIA configuration menu. Fixed CIA's TOD cycle count.
- fix: Added ASCII/DIN handling for multilingual char rom set. Fixed 128/64 char rom reloading
- fix: Added CBM2 ROM configuration. Added CBM2 save/load state.To be fixed.
- fix: Added support for Magnum Light Phaser light gun. Fixed audio state saving.
- fix: Added task for crlf fix on unix. Added task to make *.sh executable.
- fix: Banks map optimization. Fixed Comal80 (bad EXROM & GAME defaults).
- fix: Changed floatingBus emulation, still something to fix. Changed init memory pattern routine.
- fix: Fixed $9003 reading.
- fix: Fixed (and simplified) bank handling.
- fix: Fixed --driveX-file and --driveX-type command options.
- fix: Fixed --warp option: now disables audio output
- fix: Fixed 0x43 registry handling. Now Silverdr's demo jema_n_silver work properly.
- fix: Fixed 0x43 registry handling. Now silverdr's demo jema_n_silver works fine.
- fix: Fixed C64 address to check.
- fix: Fixed CBM2 save/load state
- fix: Fixed DL2STROBE bit 3 handling
- fix: Fixed GameBase urls
- fix: Fixed Geo-Ram page & block registers: must understand how is decoded io1/io2 area
- fix: Fixed IRQ handling when CPU clears ICR on the same cycle of timer underflow.
- …and 280 more
Architecture
- 0 containers · 1 bounded contexts · 0 dependency edges (baseline)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
abbruzze/kernal64 was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 20db6403e1a5501b2baddecef6a8fc0eeeebf5e4 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.