!

[c64] C64E (Commodore C64 Emulator) 0.7.9.9 Alpha 08/05/2026

[10] @ !!! Sobota, 9 Maja 2026 00:46 CET [29-03-2026 00:52 CET]

C64E to nowy projekt emulatora "ziemniaczka" autorstwa  Christopher Broscharda. Napisany w C++, powoli i metodycznie obrasta w piórka i jest to na tyle młody projekt, że można go śledzić od totalnej podstawki;). 

Commodore 64 Emulator v0.7.9.9 alpha 8/05/2026

Primarily an accuracy and stability release. The biggest improvements are in VIC-II timing groundwork, SID register/audio correctness, chip model selection, and safer PRG/cartridge transition behavior. These changes move the emulator closer to real C64 hardware behavior while also improving the debug tooling needed to keep refining compatibility.

  • Continued VIC-II hardware accuracy improvements across raster timing, badline behavior, bus arbitration, border handling, and pixel-phase rendering.
  • Improved SID emulation accuracy, including better register handling, filter routing, OSC3/ENV3 reads, audio underrun behavior, and 6581/8580 model selection.
  • Added/expanded SID chip model selection so the emulator can switch between MOS 6581 and MOS 8580 behavior.
  • Fixed PRG loading flow so loading a PRG performs a cleaner machine reset path, including cold reset behavior and cartridge detach handling.
  • Improved emulator stability and diagnostics around display, audio, CPU, and media loading behavior.

Commodore 64 Emulator v0.7.9.5 alpha 26/04/2026

This update focuses on VIC-II rendering performance, smoother horizontal scrolling, improved raster-latched render behavior, and continued drive/media/UI work.

v0.7.9.7-alpha improves VIC-II rendering performance and stabilizes raster-latched rendering behavior. Pac-Man and Ms. Pac-Man now run without the previous audible slowdown, horizontal scrolling is smoother, and Spy Hunter’s lower-screen corruption has been fixed through improved render-register latching.

Drive emulation and media/UI work also continued, especially around 1571 native mode, D71 geometry/BAM behavior, 1581 IEC debugging, and disk image management.

Changes

VIC-II Rendering Performance

Improved the scanline rendering path to reduce per-raster overhead.

Changes include:

  • Optimized border mask generation.
  • Optimized raster line emission by writing the final raster color buffer directly.
  • Removed unnecessary background-opacity copying for the current raster.
  • Reduced renderer overhead enough to resolve audible slowdown in Pac-Man and Ms. Pac-Man.

Horizontal Scrolling Improvements

Improved horizontal scroll stability by making completed raster rendering use more consistent latched raster state.

Changes include:

  • Background geometry now uses per-raster border/window latches.
  • Text, bitmap, multicolor bitmap, and ECM render paths now use latched horizontal bounds.
  • Background render paths now use latched character/bitmap/screen base state where appropriate.
  • Multicolor text mode selection now follows latched D016 state during rendering.

This improved side scrolling in games such as Pac-Man and reduced visual jerkiness caused by mixing live register state with latched scanline state.

Raster Register Latching Cleanup

Improved the VIC-II render latch model.

Render-facing D011, D016, and D018 state is now latched at raster start instead of being retroactively changed by late register writes during the same raster.

This fixed a long-standing bottom-screen corruption issue in Spy Hunter, where late D011 writes near the bottom of the screen were affecting how the completed scanline was rendered.

Spy Hunter Bottom Screen Fix

Investigated and fixed the corrupted lower display area in Spy Hunter.

The issue was traced to late D011 writes around raster 241/242 that changed RSEL and Y-scroll timing near the bottom of the screen. The final fix was to stabilize per-raster render latches instead of bypassing the border or forcing display rows through the border mask.

Monitor / Debug Consistency

Cleaned up how VIC state is represented in monitor/debug output.

Current behavior:

  • Raw register dumps continue to show live register values.
  • Decoded render base addresses use latched raster state.
  • Cycle/debug views continue to use effective/current timing state.

This keeps the monitor useful for both live register inspection and render-state debugging.

Sprite / DMA Timing Preservation

No final changes were made to sprite DMA fetch timing, BA/AEC arbitration, or sprite pointer/data fetch sequencing.

Earlier bus-owner-table experiments were abandoned because they introduced regressions in Pac-Man / Ms. Pac-Man speed and sprite behavior. The final stable changes focus on rendering performance and render-latch consistency only.

Drive Emulation Work

Continued investigation and cleanup around Commodore drive emulation.

Recent areas of work include:

  • Continued 1571 native mode testing.
  • D71 geometry and BAM/block-count debugging.
  • 1581 IEC / device-present investigation.
  • VIA/CIA timer behavior review, including Timer 2 one-shot behavior.
  • Continued movement away from high-level IEC shortcuts toward ROM-driven IEC behavior.

Several behaviors were compared against VICE, especially around D71 loading, block counts, and 1571 native mode behavior.

Media / UI Work

Continued work on emulator media handling and UI organization.

Recent areas include:

  • Blank disk image creation planning.
  • D64/D71/D81 formatting behavior.
  • Drive-specific disk creation menu work.
  • Cartridge detach menu behavior.
  • Drive status and LED/menu improvements.

Known Remaining Issues

Bottom Text Scrollers

Games such as Pitfall and Ghostbusters still show slightly jerky bottom text scrolling.

Current theory:

  • The text renderer is now more consistent.
  • The remaining issue is likely related to D016 horizontal scroll write timing.
  • D016 may need targeted current-raster latch handling without disturbing D011/D018 behavior.

VIC-II Pixel Accuracy

The VIC-II is still primarily a cycle-timed scanline renderer rather than a full pixel/dot pipeline.

Known limitations:

  • Sprites are still prepared and composed mostly per raster line.
  • Sprite/background collision timing is still line-based.
  • Border behavior is improved but not yet modeled as true pixel-time flip-flops.
  • Some mid-line raster effects remain approximate.

1581 IEC Timing

1581 emulation still needs additional work.

  • CIA/VIA IEC pin behavior.
  • Drive CPU timing.
  • ROM-driven IEC bus behavior.
  • Correct ATN/DATA/CLK interaction.
  • Device-present / startup handshake behavior.

Commodore 64 Emulator v0.7.9.5 alpha 12/04/2026

This release focuses on improving the hardware accuracy of the VIC-II emulation through a series of targeted fixes and cleanup work completed over the last two weeks. The main areas of improvement were bad-line handling, BA/AEC bus arbitration, display row progression, fetched-row ownership, open-bus behavior, raster timing cleanup, VIC state/save-load consistency, and joystick input handling through CIA1.

Highlights

VIC-II bad-line and display row improvements

  • Refined bad-line behavior and tightened the relationship between bad-line start, row fetch setup, and active display state.
  • Improved how display-row state is carried across lines to better match real VIC-II behavior.
  • Decoupled parts of bad-line fetch startup from broader display-enable behavior.
  • Cleaned up vmliBase handling so fetched row state remains more stable across display shutdown/opening transitions.
  • Added explicit bad-line matrix fetch progress tracking with vmliFetchIndex, making the internal row-fetch model closer to real hardware and easier to reason about.

BA/AEC bus arbitration improvements

  • Improved VIC-II bus arbitration behavior to better separate BA-low warning/ownership from true AEC-low CPU steal cycles.
  • Sprite pointer fetches no longer force full AEC steals, while real sprite data fetches still do.
  • Reduced overly aggressive bus-steal behavior that could cause performance/timing regressions in some games.

Fetched-row ownership and display sourcing

  • Continued moving the emulator toward a cleaner model where fetched row data owns active display output.
  • Improved consistency between bad-line fetched row data and the data consumed during active display.
  • Laid groundwork for stricter FIFO-backed row usage during active display rendering.

Open-bus behavior cleanup

  • Moved open-bus updates toward the actual fetch moment instead of later render-time usage.
  • Cleaned up bitmap, ECM, text, sprite, and bad-line fetch paths so open bus is updated when bytes are actually fetched.
  • Removed several duplicate render-time open-bus relatches that were less hardware-faithful.

Raster, IRQ, and latch timing cleanup

  • Continued refining raster/IRQ timing behavior and per-raster latch usage.
  • Improved handling of per-raster VIC register state and timing-sensitive behavior tied to those latches.
  • Kept the internal timing model more consistent across line start, decision phases, and fetch phases.

Save/load and internal state correctness

  • Expanded VIC save/load coverage to better preserve internal runtime state.
  • Added persistence and restoration for new VIC runtime fields like bad-line fetch progress.
  • Improved reset/frame-start cleanup so transient VIC row-fetch state does not leak across frames or states.
  • Added additional sanity/clamp handling for restored VIC runtime values.

Joystick input fixes

  • Fixed joystick handling for Joy1 and Joy2 through CIA1.
  • Improved controller input routing so joystick state is presented through the correct hardware path instead of behaving inconsistently at the emulator input layer.
  • Better matches real C64 joystick port behavior and improves compatibility with games that rely on correct CIA1-backed joystick input.

Practical impact

These changes improve compatibility and correctness across a range of timing-sensitive titles and test cases, especially in areas involving:

  • bad lines
  • display row progression
  • bus arbitration
  • sprite fetch interaction with CPU timing
  • open-bus-sensitive behavior
  • frame/row state stability
  • joystick handling through CIA1

Internal focus of this release

This was primarily a hardware-accuracy release, not a feature release. Most of the work went into making the VIC-II and related input behavior act more like the real hardware in edge cases rather than adding new user-facing functionality.

Commodore 64 Emulator v0.7.9-alpha

Commodore-C64-Emulator GUI

This alpha focuses on emulator-core accuracy, VIC-II improvements, expanded tracing/debugging, cartridge and mapper work, save/load fixes, and continued IEC/drive development.

Added

  • Expanded tracing detail categories across major subsystems
  • Added more targeted tracing for:
    • CPU
    • VIC
    • CIA
    • PLA
    • Memory and I/O
    • Cartridge / mapper behavior
  • Added improved cartridge-side tracing helpers for mapper, line, memory, and bank activity
  • Continued cartridge persistence support work for mappers that require saved EEPROM/flash-style state
  • Extended internal save-state coverage for more runtime state

Changed

  • Continued refinement of VIC-II emulation
  • Improved raster IRQ handling and related timing behavior
  • Refined display progression, badline-related handling, and raster-driven internal VIC state
  • Continued work on sprite DMA and bus arbitration behavior
  • Improved cartridge/memory interaction paths for mapper-controlled behavior
  • Continued development of IDE64 support, including controller/register groundwork and RTC-related work
  • Continued work toward more accurate IEC bus and disk-drive emulation
  • Improved monitor/debug workflows with more granular tracing controls

Fixed

  • Fixed multiple raster IRQ and VIC-related issues discovered during compatibility testing
  • Fixed save/load problems caused by stale or missing runtime state
  • Fixed issues affecting successful state restore in some scenarios
  • Fixed watch/monitor behavior regressions in debugging workflows
  • Corrected a VIC regression in display/counter progression logic that could break game rendering/loading behavior
  • Corrected issues introduced during register-write and tracing-related refactors

Improved

  • Better diagnostics for difficult game-specific issues
  • Better visibility into PLA mode changes and memory resolution
  • Better visibility into memory-mapped I/O behavior
  • Better mapper debugging for cartridge banking and control-line changes
  • Improved confidence when isolating regressions through internal tracing and testing
  • Mapper and cartridge work
    • Continued refinement of cartridge mapper support and behavior
    • Ongoing work across supported mapper types, including improvements around:
      • Ocean
      • Action Replay variants
      • Retro Replay
      • GMOD2
      • IDE64
    • Improved handling for mapper-controlled windows, bank behavior, and persistence-related state
  • Save state / load state
  • Expanded serialization coverage for runtime emulator state
  • Improved restoration of derived internal state after loading
  • Reduced load-state failures caused by unsaved transient data
  • Continued stabilization of chunk-based save-state behavior across subsystems

Commodore 64 Emulator v0.7.8-alpha

This release focuses on emulator usability and stability, especially around pause handling, monitor behavior, and window scaling.

What’s new

  • Added support for resizing and maximizing the emulator window
  • Improved screen scaling while preserving aspect ratio
  • Reworked pause handling across hotkeys, menus, dialogs, and monitor state
  • Improved monitor integration and pause/resume synchronization
  • Refined input and UI command routing
  • General internal cleanup and stability improvements

Fixes

  • Fixed Ctrl+Space pause toggle issues
  • Fixed Pause/Resume menu issues
  • Fixed monitor open/close pause-state problems
  • Fixed cases where the emulator could remain paused incorrectly
  • Fixed scaling and fit issues during resize/maximize
  • Fixed several regressions introduced by recent UI refactoring

Notes

  • This is still an alpha build, but it should feel much smoother and more consistent during normal use.

 

Vox populi

Ten artykuł nie byl jeszcze komentowany:(

Dodaj komentarz!!!!

Nick
Email
Www
Komentarz
 
wstecz09/05/2026 00:46
Inne treści związane z tematem
[Multi] Denise 2.8 12/05/2026 [Multi] Denise 2.8 12/05/2026
Denise jest emulatorem "cycle exact" mikrokomputera Commodore C64, a od poprzedniej wersji również i Amigi:). Dokładne odwzorowanie pracy C64, przejrzysta konfiguracja powinna ucieszyć każdego, komu z nieznanych mi przyczyn nie odpowiada czy to Hox64, czy też WinVice. Czy dogoni WinUAE? Wątpie, przy zapale Toni Willena to prawie niemożliwe;).
[C64] CCS64 v4 04/05/2026 [C64] CCS64 v4 04/05/2026
Zaktualizowano jeden z najstarszych emulatorów komputera COMMODORE C64 - CCS64 (pierwsza wersja ukazała się w okolicy 1997 roku), z ciekawych funkcji emulator posiada możliwość gry poprzez sieć (kaillera), bardzo fajny moduł obsługi joystika, który podobnie jak nakładka dink'a na VICE pozwala na swobodne mappowanie emulowanej klawiatury C64, posiada możliwość rejestracji ...
[multi] BizHawk x64 2.11.1 1/05/2026 [multi] BizHawk x64 2.11.1 1/05/2026
Wersja testowa multiemulatora BizHawk, specjalnie dla osób chcących sprawdzić i wspomóc projekt. Ten napisany w C# multiemulator pozwala udawać  konsole: Nintendo Entertainment System / Famicom / Famicom Disk System (NES/FDS), Super Nintendo (SNES), Nintendo 64, Gameboy, Gameboy Color, Super Gameboy, Sega Master System, SG-1000, Game Gear, Sega Genesis / Sega-CD, Sega ...
[c64] CBM prg Studio 4.8.0 29/03/2026 [c64] CBM prg Studio 4.8.0 29/03/2026
Arthur Jordison opublikował CBM prg Studio w wersji 4.7.0 czyli wygodny framework, pozwalający nie tylko na edycję plików napisanych w basicu ale też assemblerze. Dodatkowo Studio posiada moduł do tworzenie duszków ("sprite"), edycji fontów i obsługi SID'ów. Nowa wersja to wsparcie dla Mega65 czyli próbą odświeżenia ideii Commodore C65 w stylu ...
[cpc] CPC Alive 1.20a 11/04/2026 [cpc] CPC Alive 1.20a 11/04/2026
CPC Alive jest dość specyficznym rozwiązaniem wśród emulatorów AMSTRADA CPC646/6128 - tworzy coś pośredniego pomiędzy linią komend DOS'u (natywnie albo wykorzystując DOSBOX'a) i wirtualną maszynką zgodną ze starą konstrukcją, można dzięki temu np. ładować pliki z/do emulatora czy też wykorzystywać fragmenty kody x86 w środowisku AMSTRADA, zainsteresowanych ...
Do ściągnięcia
v0.7.9.7-alpha.tar.gz
W ramach wolnego czasu odtwarzam stare magazyny komputerowe i prowadzę serwis emulacyjny try2emu. Jeżeli uważasz, że moja publiczna działalność możesz postawić mi kawę, a kawę lubię;). Wspierając mnie, otrzymujesz w nagrodę dostęp do pełnych pdf'ów publikowanych magazynów - czyli dokładnie takich jakie spełniają zamierzenia tego projektu.
Postaw mi kawę na buycoffee.to
Dodatkowe informacje
Ostatnio dodane pliki

Retro T-shirt

Retro T-Shirt Bajtek 12-1986 56,40zł - męski podkoszulek
Retro T-Shirt Lost Vikings 57,00zł - męski podkoszulek
Newsy Linkownia Emulatory na PC Wideoteka Screenshoty Bajtek Reduks Ready.Run Kreator okładek na kasety Kreator kalendarzy Alpha

© Try2emu 1999 - 2026 | Krzysztof 'Faust' Karkosza Kontakt Polityka Prywatności OWU