Skip to content

Releases: cupidthecat/cupid-nes

Cupid NES 0.2.0-preview.7

Pre-release

Choose a tag to compare

@frankischilling frankischilling released this 27 Sep 14:02

Cupid NES 0.2.0-preview.7

This preview fixes configurable keyboard shortcuts in the GTK desktop. The game
view now routes keyboard events through the active input profile, including
rewind, fast-forward, pause, frame advance, state save/load, reset, and mute.
Settings, fullscreen, and the palette editor shortcuts are also connected.

Hold Ctrl+Backspace to rewind with the default profile. Rewind needs retained
history and a nonzero rewind duration. Releasing the key stops rewind even if
Ctrl was released first. Moving focus to another control releases held input;
editors and menus keep their own keyboard input. Custom bindings work after
applying settings.

This release retains the accelerated Windows game viewport, restored-window
alignment fix, frame timing statistics, and live Game Information updates from
preview 6. The changes remain in PR #205,
which is not merged.

Windows x64

Extract cupid-windows-x64.zip into a new folder and run cupid-nes.cmd.
Keep the bin, lib, share, and etc directories together. GTK and its runtime
libraries are included.

Linux x64

The archive targets Ubuntu 24.04 on x86-64 and uses system libraries:

sudo apt install libgtk-4-1 libsdl2-2.0-0 libcurl4t64
tar -xzf cupid-linux-x64.tar.gz
cd cupid-linux-x64
./cupid-nes

Both downloads have SHA-256 files and complete file manifests. ROMs and BIOS
images are not included.

Validation

All eight CI checks passed on release commit 56f77dd. Validation includes all 18 configurable shortcuts through GTK key signals, repeat handling, remapping, modifier-first release, focus loss, 58 tool windows, accelerated viewport checks at 100% and 200% scaling, hardware regressions, the CPU trace, diagnostic ROMs, and AccuracyCoin 144/144 with no skipped or unfinished entries under GCC and Clang sanitizers. Both downloaded packages passed checksum, complete file-manifest, and embedded version/revision verification. Extracted-package startup passed in CI.

Hardware CI | Windows and Linux desktop CI

Cupid NES 0.2.0-preview.6

Pre-release

Choose a tag to compare

@frankischilling frankischilling released this 27 Sep 13:31

Cupid NES 0.2.0-preview.6

This preview improves frame delivery and fixes stale Game Information.

Windows now uses an accelerated SDL game viewport, preferring Direct3D 11.
GTK keeps its normal desktop compositor. Scaling the game on the GPU reduces
the cost of maximized and fullscreen output. The game viewport also fits the
GTK layout correctly in restored and smaller windows, including at 200% scaling.

Game Information refreshes after loading another game and while the window
stays open. It shows the game renderer separately from the desktop compositor.
Frame Timing Statistics reports emulation and display draw rates, with interval
jitter to help identify uneven motion. Frame waits use the high-resolution clock
and process pending desktop work between frames.

The release includes the desktop tools, movie and capture features, and emulator
improvements in PR #205.
It is published from that branch without merging the PR.

Windows x64

Extract cupid-windows-x64.zip into a new folder and run cupid-nes.cmd.
Keep the bin, lib, share, and etc directories together. The archive
includes GTK and its runtime libraries.

Game Information should show an accelerated SDL video renderer during play.
The desktop compositor can still say GskCairoRenderer. Remove an old
GSK_RENDERER=cairo environment override to use the accelerated game viewport;
that override remains available for software fallback.

Linux x64

The Linux archive targets Ubuntu 24.04 on x86-64 and uses system libraries.
Install the runtime dependencies, extract it, and launch Cupid:

sudo apt install libgtk-4-1 libsdl2-2.0-0 libcurl4t64
tar -xzf cupid-linux-x64.tar.gz
cd cupid-linux-x64
./cupid-nes

Both archives include component licenses and a file manifest. Verify each
download with its accompanying SHA-256 file. ROMs and BIOS images are not included.

Validation

All eight CI checks passed on release commit 0e8832a. Validation includes AccuracyCoin 144/144 with no skipped or unfinished tests, the CPU trace, diagnostic ROMs, hardware regressions, Clang sanitizers, GTK interactions, viewport bounds at 100% and 200% scaling, and extracted-package startup. Both downloaded archives passed checksum, embedded version and revision, and complete file-manifest verification.

Hardware CI | Windows and Linux desktop CI

Cupid NES 0.2.0-preview.5

Pre-release

Choose a tag to compare

@frankischilling frankischilling released this 27 Sep 11:44

Cupid NES 0.2.0-preview.5

This preview fixes thick black margins around Windows desktop windows. Cupid
now leaves compositor selection to GTK instead of enabling its experimental
DirectComposition path. The fix was confirmed on the affected desktop.
GTK may select software rendering on Windows, which can cost more time when
scaling large windows. Explicit renderer and compositor overrides remain available.

The release includes the desktop tools, movie and capture features, and emulator
improvements in PR #205.
It is published from that branch without merging the PR.

Windows x64

Extract cupid-windows-x64.zip into a new folder and run cupid-nes.cmd.
Keep the bin, lib, share, and etc directories together. The archive
includes GTK and its runtime libraries.

Linux x64

The Linux archive targets Ubuntu 24.04 on x86-64 and uses system libraries.
Install the runtime dependencies, extract it, and launch Cupid:

sudo apt install libgtk-4-1 libsdl2-2.0-0 libcurl4t64
tar -xzf cupid-linux-x64.tar.gz
cd cupid-linux-x64
./cupid-nes

Both archives include component licenses and a file manifest. Verify each
download with its accompanying SHA-256 file. ROMs and BIOS images are not included.

Validation

All eight CI checks passed on release commit d5ed468. Validation includes AccuracyCoin 144/144 with zero skipped or unfinished tests, the CPU trace, diagnostic ROMs, hardware regressions, Clang sanitizers, GTK interactions, and extracted-package startup. Both downloaded archives passed checksum, version, source revision, and complete file-manifest verification.

Hardware CI | Windows and Linux desktop CI

Cupid NES 0.2.0-preview.4

Pre-release

Choose a tag to compare

@frankischilling frankischilling released this 27 Sep 02:00

Cupid NES 0.2.0-preview.4

This preview fixes slow game presentation in large Windows windows. On GTK
4.24 or newer, Cupid enables DirectComposition so GTK can use GPU rendering
when the main window is maximized or fullscreen. Game Information shows the
active video renderer. Unchanged window captions no longer trigger repeated
updates, and closing a maximized window preserves its saved window size.

The included SMB3 USA Rev 1 benchmark held 60.10 FPS at normal speed in
windowed, maximized, and fullscreen views, including with a PPU viewer open.
The measurements cover the game's opening sequence on one Windows machine.
Results vary with graphics hardware, drivers, game timing, and settings.

The release also includes the desktop and emulator improvements listed in
PR #205.

Windows x64

Extract cupid-windows-x64.zip into a new folder and run cupid-nes.cmd.
Keep the bin, lib, share, and etc directories together. The archive
includes GTK and its runtime libraries.

Linux x64

The Linux archive targets Ubuntu 24.04 on x86-64 and uses system libraries.
Install the runtime dependencies, extract it, and launch Cupid:

sudo apt install libgtk-4-1 libsdl2-2.0-0 libcurl4t64
tar -xzf cupid-linux-x64.tar.gz
cd cupid-linux-x64
./cupid-nes

Both archives include component licenses and a file manifest. Verify each
download with its accompanying SHA-256 file. ROMs and BIOS images are not
included.

Validation

AccuracyCoin passed 144/144 with no skips or unfinished tests. The CPU trace,
91 diagnostic ROMs, hardware suite, Windows GTK checks, and Linux GTK checks
passed on the source revision. Both platform archives were checked for
reproducibility and startup.

Cupid NES 0.2.0-preview.3

Pre-release

Choose a tag to compare

@frankischilling frankischilling released this 27 Sep 01:14

Cupid NES 0.2.0-preview.3

Fixes GTK playback slowing down when the main window is enlarged or a tool
window is open. The GTK desktop no longer renders or waits for VSync on its
hidden SDL host window. Emulation continues to use the NES frame deadline,
including the selected region and speed.

On GTK 4.10 and newer, the game image is uploaded at its source resolution and
scaled by GTK's texture renderer. Enlarging the window no longer requires a
window-sized Cairo image every frame. Nearest-neighbor and bilinear filtering,
aspect ratio, and integer scaling are preserved; GTK 4.8 retains its Cairo path.

Windows measurements with an NTSC diagnostic cartridge improved from roughly
45 FPS with the timing tool open to 60.0–60.1 FPS after the window settled.
Actual performance also depends on the game, video filters, tools, and host.

Windows x64

Extract cupid-windows-x64.zip into a new folder and run cupid-nes.cmd.
Keep its bin, lib, share, and etc directories together. GTK and the
other runtime libraries are included.

Linux x64

The new cupid-linux-x64.tar.gz download targets Ubuntu 24.04 x86-64 and uses
system runtime libraries. Install them, extract the archive, and start Cupid:

sudo apt install libgtk-4-1 libsdl2-2.0-0 libcurl4t64
tar -xzf cupid-linux-x64.tar.gz
cd cupid-linux-x64
./cupid-nes

Both downloads include component licenses and a manifest. The accompanying
SHA-256 files verify the archives. This prerelease is built from the existing
desktop PR branch; installation is manual.

Source: commit c24d7bf from PR #205.

Validation passed for this revision: strict GCC and Clang with AddressSanitizer/UndefinedBehaviorSanitizer, hardware regressions, the 8,991-state CPU trace, 91 diagnostic ROMs, all 144 AccuracyCoin tests, GTK interaction checks, and extracted-package startup checks.

Desktop builds and packages · Hardware and sanitizer results.

Cupid NES 0.2.0-preview.2

Pre-release

Choose a tag to compare

@frankischilling frankischilling released this 27 Sep 00:19

Cupid NES 0.2.0-preview.2

This preview reorganizes the GTK desktop around the task in each window.
Menus show shortcut hints, the main toolbar uses compact icons, and individual
tools have their own opening sizes and control groups.

Settings use tabs for longer categories. Overscan has a region-by-edge grid,
audio mixers pair volume with pan, and controller mappings pair keyboard and
gamepad bindings. General preferences and short settings pages keep their groups
together. Invalid pending values stay editable; Apply opens the tab containing
the error before returning focus to the field.

The debugger places CPU state and breakpoints beside disassembly. Memory tools
separate search criteria, results, selection edits, and file operations. The
header editor has ROM, RAM, and console tabs, with named format and region
choices and battery/trainer checkboxes. PPU windows group selection controls and
details. The assembler puts its preview and apply actions below the editors.

The README and desktop guide include new screenshots from the native regression
application. Its generated cartridge and movie make the captures reproducible.
The GTK checks now cover the registered tools and every settings tab, along with
settings transactions, debugger register edits, assembly, and TAS interactions.

Windows package

Download cupid-windows-x64.zip, extract it into a new folder, and run
cupid-nes.cmd. The ZIP includes GTK, runtime libraries, and component licenses.
The accompanying SHA-256 file verifies the download. Installation is manual.

This is a preview release from the desktop PR branch. Physical controllers,
display-DPI changes, and game-specific behavior still need testing on their
respective hardware and software setups.

Cupid NES 0.2.0-preview.1

Pre-release

Choose a tag to compare

@frankischilling frankischilling released this 26 Sep 23:24

Preview build from PR #205. The PR remains open and unmerged.

  • GTK4 menus, settings, native file pickers, and resizable debugger windows.
  • Multiline 6502 assembly with highlighting, labels, undo/redo, and a byte preview.
  • TAS input grid with a live game preview in a resizable side pane.
  • Larger memory views, shared frozen snapshots, live disassembly, PPU tools, and a native virtual keyboard.
  • Windows light/dark preference, bundled runtime libraries, and preview-channel update checks.

Download cupid-windows-x64.zip, extract the whole ZIP into a new folder, and run cupid-nes.cmd. Keep your current installation and user files. Updates download through the browser and are installed manually.

This is a preview for testing the desktop migration. Automated checks cover the core and native widget interactions; physical controllers, display-DPI changes, and representative games still need interactive testing.

Validation: all eight PR checks passed, including GCC and Clang sanitizer suites, AccuracyCoin 144/144, GTK window checks, and Windows packaging. The ZIP was built from commit aac84cc.