Changes in Vice 3.9
General
- Joystick Input System: The joystick mapping and input system has been largely rewritten. Both the SDL and GTK versions now share common code, feature parity, and can utilize the same mapping files. However, a related UI for the GTK port is not yet implemented. To manually configure mappings:
- Locate an appropriate SDL mapping file in the
DATA/C64
directory. If none matches your controller, create one (manually or using the SDL port). - Rename the file to
gtk3-joymap-<MACHINE>.vjm
(e.g.,gtk3-joymap-C64SC.vjm
). - Place the file in the following directory:
- Windows: In the
bin
directory (where the executable resides). - Linux:
$HOME/.config/vice/
.
If you create a mapping for an unsupported controller, please share it with us to improve compatibility.
- Windows: In the
Call for Contributors: The VICE team seeks Windows and macOS developers to assist with game controller-related features and fixes.
- Locate an appropriate SDL mapping file in the
- IRQ Logic Fix: The interrupt logic now ensures the CPU detects the IRQ line activation only when the first IRQ source becomes active, preventing redundant actions. (Bug #2052)Developer Note: For those using VICE for debugging or development, updating to this version is strongly recommended.
- Performance Enhancement: Added an option to skip sound chip emulation in warp mode, trading accuracy for performance.
- reSID Updates:
- Adjusted filtered voice scaling for the 6581 SID.
- Unified volume scaling for 6581 and 8580 chips.
- Added DAC leakage emulation.
- Fixed uninitialized variables in the old filter.
- Improved 8580 filter voltage accuracy.
- CIA Fix: AM/PM flag now toggles correctly when setting a 12 o’clock time, regardless of register changes.
- User Port Cleanup: Removed non-functional devices from selection for unsupported machines.
- Palette Addition: Added a C64/C128/SCPU64 palette by Kim Lemon to ensure consistent screenshots for Lemon64.com.
- Tape Enhancements:
- Corrected tape header types for VIC-20 and C128.
- Improved autostart behavior for tapes.
- Logging System Overhaul: Logging to stdout and files can now coexist, with optional color-coded messages.
- Miscellaneous Fixes:
- Improved handling of warp mode during movie recording.
- Enhanced ZMBV recording for accurate fractional FPS.
- Addressed multiple controller mapping and polling issues.
- Fixed DigiMAX DAC addresses for proper stereo replay.
- Corrected RTC core for CMD FD/HD and RAMLink.
Platform-Specific Fixes
C64
- Extended DQBB support (16-256k RAM and C128 mode).
- Added support for various cartridges, including UC1/UC15/UC2 and BMP Data Turbo 2000.
- Enhanced WiC64-related functionality.
- Re-enabled CP/M cartridge support.
C128
- Added snapshot support for cartridge systems.
- Addressed Z80 timing issues and improved accuracy (e.g., WZ register fixes).
- Fixed RAMLink behavior with internal function ROMs.
VIC-20
- Adjusted RAM initialization for specific cases (e.g., “AE” and “Jelly Monsters”).
- Added support for several cartridges, including “Super Expander” and “Mikro Assembler.”
Plus/4
- Introduced new TED sound logic inspired by SDL-YAPE.
- Added support for the PETSCII SNES Adapter and improved expansion port handling.
PET/CBM-2
- Corrected CRTC emulation and memory bank handling for PETREU.
- Added missing cartridge support for CBM-2 systems.
Monitor Updates
- Simplified register handling to prevent unintended register corruption or double instruction execution. (Bug #2024, #2025)
- Enhanced “help” command and addressed output wrapping for various terminal sizes.
- Introduced a new
tapeoffs <offset>
command for.tap
management.
SDL and GTK Enhancements
- Added joystick menu navigation support and drag-and-drop improvements.
- New ROM settings interface allows loading and saving
.vrs
files. - Improved font handling and window scrolling in the GTK monitor.
Build System
- Added linker map generation and improved configure checks for dependencies.
- Updated
.desktop
file templates to fix icon display issues in desktop environments.
This release introduces significant improvements to functionality, compatibility, and performance. Users are encouraged to upgrade to benefit from these enhancements.