Commit Graph

1121 Commits

Author SHA1 Message Date
Claude
48598f45ca Desync auto-resync: host sends state on desync event (#6)
Some checks failed
Rust-lint / lint-linux (pull_request) Failing after 2s
Rust / build-linux (linux-x86_64, X64, ubuntu-24.04, x86_64-unknown-linux-gnu) (pull_request) Failing after 1s
Rust / build-android (29.0.14206865, ubuntu-24.04, 33) (pull_request) Failing after 1s
Rust / build-linux (linux-aarch64, ARM64, ubuntu-24.04-arm, aarch64-unknown-linux-gnu) (pull_request) Has been cancelled
Rust / build-windows (windows-aarch64, woa64, windows-11-arm, aarch64-pc-windows-msvc) (pull_request) Has been cancelled
Rust / build-windows (windows-x86_64, win64, windows-2025, x86_64-pc-windows-msvc) (pull_request) Has been cancelled
Rust / build-macos (macos-aarch64, ARM64, aarch64-apple-darwin) (pull_request) Has been cancelled
Rust / Collect release artifacts (pull_request) Has been cancelled
When GGRS fires DesyncDetected, the host (player_number==0) snapshots
the current emulator state, sends it to all peers via the reliable
channel as a 'resync_state' message, and pauses the frame loop until
all peers acknowledge with 'resync_ready'. Non-host peers ignore the
desync event and wait for the host's state.

Changes:
- Add ResyncState enum (Idle, HostWaiting, ClientLoading) to Netplay
- In poll_clients DesyncDetected handler: host creates in-memory
  savestate, sends resync_state message, enters HostWaiting state
- Add check_resync_messages: non-host receives resync_state and enters
  ClientLoading; host receives resync_ready acks and resets frame when
  all peers ack
- Add process_resync_load: non-host decompresses and loads received
  state, calls reset_frame, sends resync_ready ack, resumes
- Add resyncing state check in advance_frame: pauses frame loop during
  resync (like disconnected path), with 5s timeout -> disconnect
- Add create_savestate_in_memory: serializes Device via postcard +
  compress without file I/O
- Call process_resync_load from vi.rs update_screen before normal frame
  processing
- Add tests: ResyncState default/transitions, message serialization,
  timeout logic, ack tracking

Based on issue-5 branch (includes GGRS frame reset from #5).

Closes #6
2026-08-25 00:44:37 -05:00
Claude
eb5cf56ee3 Fix GGRS frame counter reset after state load (#5)
Some checks failed
Rust / build-linux (linux-x86_64, X64, ubuntu-24.04, x86_64-unknown-linux-gnu) (pull_request) Failing after 5s
Rust / build-android (29.0.14206865, ubuntu-24.04, 33) (pull_request) Failing after 2s
Rust-lint / lint-linux (pull_request) Failing after 2s
Rust / build-linux (linux-aarch64, ARM64, ubuntu-24.04-arm, aarch64-unknown-linux-gnu) (pull_request) Has been cancelled
Rust / build-windows (windows-aarch64, woa64, windows-11-arm, aarch64-pc-windows-msvc) (pull_request) Has been cancelled
Rust / build-windows (windows-x86_64, win64, windows-2025, x86_64-pc-windows-msvc) (pull_request) Has been cancelled
Rust / build-macos (macos-aarch64, ARM64, aarch64-apple-darwin) (pull_request) Has been cancelled
Rust / Collect release artifacts (pull_request) Has been cancelled
After a netplay savestate load, the GGRS session's internal frame counter
must be reset to match the savestate's frame, or desync detection fires
immediately on resume.

Changes:
- Patch vendored ggrs 0.13.0 to expose set_current_frame(frame) on
  P2PSession and SyncTestSession, with internal SyncLayer and InputQueue
  reset methods to clear stale saved states, checksum history, and input
  queues
- Add [patch.crates-io] ggrs = { path = 'vendor/ggrs' } in Cargo.toml
- Add netplay::reset_frame(session, frame) wrapper function
- Record current GGRS frame in Savestate.netplay_frame during
  create_savestate when in netplay context
- Call reset_frame after load_savestate in netplay context
- Add tests: advance 120 frames, reset to 60, verify current_frame()==60
  and clean resume with matching inputs; reset to 0; idempotent reset

Closes #5
2026-08-25 00:37:22 -05:00
Claude
00f918e127 Import gopher64 upstream
Some checks failed
Rust / build-linux (linux-aarch64, ARM64, ubuntu-24.04-arm, aarch64-unknown-linux-gnu) (push) Waiting to run
Rust / build-windows (windows-aarch64, woa64, windows-11-arm, aarch64-pc-windows-msvc) (push) Waiting to run
Rust / build-windows (windows-x86_64, win64, windows-2025, x86_64-pc-windows-msvc) (push) Waiting to run
Rust / build-macos (macos-aarch64, ARM64, aarch64-apple-darwin) (push) Waiting to run
Rust / Collect release artifacts (push) Blocked by required conditions
Rust-lint / lint-linux (push) Failing after 16s
Rust / build-linux (linux-x86_64, X64, ubuntu-24.04, x86_64-unknown-linux-gnu) (push) Failing after 2s
Rust / build-android (29.0.14206865, ubuntu-24.04, 33) (push) Failing after 1s
2026-08-24 23:01:43 -05:00
3b0cd9e0b6 Initial commit 2026-08-25 06:01:30 +02:00
Logan McNaughton
42c44998ff
update quick-xml (#1195) 2026-08-24 13:10:50 +00:00
Logan McNaughton
1957e8a579
use rustls (#1194)
* use rustls

* more

* more

* more

* more

* more
2026-08-24 12:35:05 +00:00
Logan McNaughton
aac8572ee8
bump ver (#1192) 2026-08-21 09:41:11 +00:00
Logan McNaughton
d078c66469
fix libdragon interrupt issue (#1191) 2026-08-21 09:18:38 +00:00
Logan McNaughton
01ad4b5fe4
update rust (#1190) 2026-08-20 18:39:19 +00:00
Logan McNaughton
60582608f1
add VRU word for pirate-sword (#1188) 2026-08-19 13:58:20 +00:00
Logan McNaughton
c2b64adbc7
remove rumble flag, just try to rumble (#1185) 2026-08-12 19:34:42 +00:00
Logan McNaughton
efe78e544a
fix some clippy warnings (#1181) 2026-08-06 23:00:08 +00:00
Logan McNaughton
05fe5b2995
cargo update (#1180) 2026-08-06 14:14:49 +00:00
Logan McNaughton
e9b0915b87
add instructions for input profile (#1179)
* add instructions for input profile

* update translation files

* update translations
2026-08-03 15:43:27 +00:00
Logan McNaughton
7b17343c72
update netplay id (#1171) 2026-08-03 14:11:57 +00:00
Logan McNaughton
bfab42eccd
update rcheevos (#1172) 2026-07-23 22:11:01 +00:00
Logan McNaughton
6bb3487352
use obfstr (#1168)
* use obfstr

* more
2026-07-20 14:30:23 +00:00
Logan McNaughton
c38ae12f0a
update rust (#1167)
* update rust

* remove cache

* more
2026-07-20 08:49:16 +00:00
Logan McNaughton
f113923748
fix spinbox height (#1160)
* fix spinbox height

* more
2026-07-14 07:07:47 +00:00
Logan McNaughton
67b8f472b3
Remove DRI_PRIME (#1159)
Not needed with Vulkan
2026-07-13 10:28:02 +00:00
Logan McNaughton
282ec6c6c7
add gpu hints on windows (#1158) 2026-07-13 07:17:35 +00:00
Logan McNaughton
81cc78ce90
bump crate and rust versions (#1155) 2026-07-09 13:06:49 +00:00
PolygonPrincess
e8a7abffe3
Add cli flag for widescreen (#1152)
* Add cli flag for widescreen and enable config fallback

* Fix else statement brace spacing and trailing whitespace

* Fix trailing whitespace within args.widescreen else statement
2026-07-06 12:54:51 +00:00
dependabot[bot]
f7ad6a4b0d
Bump rust-toolchain from 1.96.0 to 1.96.1 (#1151)
Bumps [rust-toolchain](https://github.com/rust-lang/rust) from 1.96.0 to 1.96.1.
- [Release notes](https://github.com/rust-lang/rust/releases)
- [Changelog](https://github.com/rust-lang/rust/blob/main/RELEASES.md)
- [Commits](https://github.com/rust-lang/rust/compare/1.96.0...1.96.1)

---
updated-dependencies:
- dependency-name: rust-toolchain
  dependency-version: 1.96.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-06 04:34:17 +00:00
Logan McNaughton
1bfb50de8a
re-arrange input profiles (#1150) 2026-07-05 10:43:23 +00:00
Logan McNaughton
3bc7c96191
move input polling (#1145)
* move input polling

* more

* more

* more
2026-07-02 08:04:51 +00:00
Logan McNaughton
032bf1acf3
Update contribution guidelines (#1143) 2026-07-01 07:58:17 +00:00
Logan McNaughton
8bc765c1a3
match RA branding softcore->casual (#1142) 2026-07-01 07:34:48 +00:00
Logan McNaughton
da061240af
normalize no-intro names (#1139) 2026-06-30 10:32:43 +00:00
Logan McNaughton
407a1b967c
Re-arrange settings (#1138)
* update setting locations

* tra
2026-06-30 09:53:03 +00:00
999sian
ad756cd6bd
settings: add a dark/light theme toggle (#1132)
* settings: add dark/light theme toggle

* i18n: translate theme selector strings

* settings: align Resolution and Theme dropdowns in a GridBox
2026-06-30 09:17:12 +00:00
Logan McNaughton
6e11bc18d6
translation tweaks (#1137) 2026-06-30 05:24:48 +00:00
Logan McNaughton
c8eee9f727
don't copy from db (#1136) 2026-06-30 05:23:38 +00:00
Logan McNaughton
01a53ce1c0
use no-intro names in netplay/cheats (#1133)
* use no-intro names in netplay/cheats

* more

* more
2026-06-29 19:37:33 +00:00
Logan McNaughton
0eddf31f92
update contributing guidelines (#1130) 2026-06-29 09:53:00 +00:00
Logan McNaughton
e257ba717b
update ggrs (#1127) 2026-06-27 08:19:14 +00:00
Logan McNaughton
7a797165fd
Fix translation for 'Open Saves Folder' in Portuguese (#1125) 2026-06-26 07:23:50 +00:00
Logan McNaughton
a659413090
bump ver (#1124) 2026-06-25 13:09:55 +00:00
Logan McNaughton
08e7ec71d9
clippy fix (#1123)
* clippy fix

* more
2026-06-25 13:09:18 +00:00
Logan McNaughton
c97f14980b
show proper number of players (#1121) 2026-06-25 12:28:09 +00:00
Logan McNaughton
5d090f496b
update ggrs (#1119) 2026-06-25 06:41:33 +00:00
Logan McNaughton
d6b46037b4
update netplay connection (#1118) 2026-06-24 20:44:38 +00:00
Logan McNaughton
5b5acfdd25
update slint (#1117)
* update slint

* more
2026-06-24 15:04:14 +00:00
Logan McNaughton
926338ba62
fix desync issue (#1116)
* fix desync issue

* more

* more

* more

* more
2026-06-24 12:52:56 +00:00
Logan McNaughton
cc420013f9
add sleep while waiting for state (#1115)
* add sleep while waiting for state

* more

* more
2026-06-23 16:37:14 +00:00
Logan McNaughton
ba0a21feca
register tx early (#1114) 2026-06-23 14:52:27 +00:00
Logan McNaughton
70b9d20c64
fix android build (#1113)
* fix android build

* more

* more
2026-06-23 13:57:52 +00:00
Logan McNaughton
dee2b85daa
use tokio mutex (#1112)
* use tokio mutex

* more
2026-06-23 10:27:15 +00:00
Logan McNaughton
119e9044a8
cargo update (#1111) 2026-06-23 05:35:05 +00:00
dependabot[bot]
e6a260bd6a
Bump actions/checkout from 6 to 7 (#1108)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-22 05:00:57 +00:00