libretro / libretro/parallel-n64

BSV recording/playback broken

Open
#503 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
407
Forks
151
Avg merge
11h 53m
Merged PRs (30d)
11

Description

.bsv files recorded with the hotkey during gameplay aren't replayable from CLI because the retro_unserialize refuses to load savestates while it's still not initialized.

But even doing a from-the-beginning recording results in erratic behavior, where clearly the values being replayed don't correspond to the buttons being pressed. e.g...

retroarch -L ./parallel_n64_libretro.so -R foo.bsv majora.n64
retroarch -L ./parallel_n64_libretro.so -P foo.bsv majora.n64

as a test, I opened the first save file, walked to the owl statue in clock town, and talked to it.
when i replayed the string, it opened the first save file, then paused, shuffled around in the subscreens, and unpaused repeatedly.

is this something we could ever expect to work? i didn't dig deeper just yet, but my assumption is that perhaps mupen may not call input_state in a deterministic order like the .bsv format assumes (by nature of being a raw dump of input_state return values)?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the CLI commands with parallel_n64_libretro.so and foo.bsv, then inspect the retro_unserialize and input_state paths mentioned in the report. Done means determining whether recording and playback can be made deterministic, including loading a savestate before initialization, and confirming that replayed inputs match the recorded actions.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
game-dev
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.