EmuCR Feeds
Email Us

Commodore 64 Emulator v0.7.9.7-alpha is released. A Commodore 64 emulator written in modern C++, built with SDL2 and designed around two priorities:Accuracy-first emulation (with a strong focus on real hardware behavior over “good enough” hacks); Debuggability (integrated monitor, break/watchpoints, and visibility into what the machine is doing). This project is actively under development; expect rough edges and incomplete features.

Commodore 64 Emulator Changelog:
This update focuses on VIC-II rendering performance, smoother horizontal scrolling, improved raster-latched render behavior, and continued drive/media/UI work.
Highlights
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.
Current focus areas:
CIA/VIA IEC pin behavior.
Drive CPU timing.
ROM-driven IEC bus behavior.
Correct ATN/DATA/CLK interaction.
Device-present / startup handshake behavior.
Summary
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.

Download: Commodore 64 Emulator v0.7.9.7-alpha
Source: Here



Random Related Topic Refresh Related Topic

Random Related Topic Loading...

0 Comments

Post a Comment

Can't post a comment? Try This!