Skip to content

Improve keyboard mappings#96

Merged
chrisgleissner merged 5 commits into
mainfrom
fix/improve-keyboard-mappings
Jan 17, 2026
Merged

Improve keyboard mappings#96
chrisgleissner merged 5 commits into
mainfrom
fix/improve-keyboard-mappings

Conversation

@chrisgleissner

@chrisgleissner chrisgleissner commented Jan 17, 2026

Copy link
Copy Markdown
Owner

Improved keyboard mappings:

  • Switch between text and graphics mode by pressing Ctrl+Meta (at same position as Cbm+Shift on C64 keyboard).
  • Fix incorrect handling of $ key.

- Introduced a new option `--no-nvidia` in args.sh to disable NVIDIA auto-detection.
- Updated extract-frame.sh and report_generator.py to utilize NVIDIA hardware acceleration for frame extraction.
- Enhanced verify_output.py and verify_tint.py to support NVIDIA hardware acceleration in frame processing.
- Removed obsolete script send_sid_songlengths.py.
- Added basic OBS Studio configuration for NVIDIA encoder in basic.ini.
Copilot AI review requested due to automatic review settings January 17, 2026 12:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request adds NVIDIA hardware acceleration support for E2E tests and improves keyboard mappings to better support C64 interaction.

Changes:

  • Added NVIDIA GPU detection and automatic NVENC/NVDEC acceleration for E2E test frame processing
  • Implemented Ctrl+Meta keyboard chord to toggle between C64 text and graphics modes
  • Fixed $ key handling by prioritizing printable text over ambiguous virtual key codes
  • Removed obsolete send_sid_songlengths.py script
  • Extended keymap system to support multi-value sequences for mode switching

Reviewed changes

Copilot reviewed 35 out of 39 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/e2e/e2e.sh Adds configure_nvidia_accel() function with feature detection and override merging
tests/e2e/util/*.py Adds NVIDIA hwaccel support to ffmpeg commands in verification scripts
tests/e2e/assertions/*.py Adds hwaccel helper usage to frame extraction in assertion modules
src/c64-source.c Implements Ctrl+Meta chord detection state machine and prioritizes text over vkey
src/c64-keyboard.c Adds multi-value sequence support to keymap entries with cycling logic
src/c64-types.h Adds keyboard state tracking fields for chord detection
data/keymaps/*.c64keymap.ini Adds Ctrl+Meta=0x0E,0x8E mapping for text/graphics mode toggle
tests/e2e/config/obs-studio-overrides/nvidia/basic.ini Adds NVENC encoder configuration
local-build.sh Adds --no-nvidia flag support (with duplicate handling issue)
util/send_sid_songlengths.py Removes obsolete script
tests/e2e/results/ntsc_default/* Updates test results from new test run

Comment thread local-build.sh Outdated
Comment thread tests/e2e/util/report_generator.py Outdated
@chrisgleissner chrisgleissner changed the title Add NVIDIA hardware acceleration support for E2E tests. Improve keyboard mappings. Improve keyboard mappings Jan 17, 2026
- Introduced multiple test scripts to validate error handling for various scenarios:
  - Array bounds errors
  - Array index type mismatches
  - Scalar usage of arrays
  - Zero-length arrays
  - Illegal quantity errors
  - Invalid escape sequences
  - Map key type mismatches
  - Scalar usage of maps
  - Mixed-type comparison errors
  - Undefined function errors
  - Invalid WAIT memory arguments
  - Invalid WAIT UNTIL string

- Each test includes expected trace outputs to ensure accurate error reporting.
- Updated the test suite to include new error cases in the expected failures list.
@chrisgleissner chrisgleissner merged commit eb8129a into main Jan 17, 2026
37 checks passed
@chrisgleissner chrisgleissner deleted the fix/improve-keyboard-mappings branch January 17, 2026 19:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants