Skip to content

feat: record human play and replay input movies - #126

Closed
AloysHF wants to merge 1 commit into
masterfrom
bot-record
Closed

AloysHF wants to merge 1 commit into
masterfrom
bot-record

Conversation

@AloysHF

@AloysHF AloysHF commented Sep 19, 2026 •

Copy link
Copy Markdown
Owner

Summary

Record human play as a plain-text input movie, then replay it headlessly to produce a playthrough video (optional frames + audio).

This PR is master + one focused commit. AI auto-play / assist / auto-clear code is not included.

How to use

Record while playing

Standalone (windowed):

native32-emu --record-input runs\clear.nmov path\to\game.smf

RetroArch core:

  • Core Options → Record input movie (text) → enabled
    → <system>/Native32Emu/inputs/<content>-<timestamp>.nmov
  • Or set env NATIVE32_RECORD_INPUT=D:\runs\clear.nmov before launch

Unload content / quit the emulator to finalize the movie.

Replay / encode video

powershell -File scripts\replay-movie.ps1 -Movie runs\clear.nmov

Direct CLI:

native32-emu --replay runs\clear.nmov `
  --dump-frames out\frames --dump-every 2 --record-audio out\audio.wav `
  path\to\game.smf

replay-movie.ps1 encodes replay.mp4 (H.264 + AAC) when FFmpeg is on PATH.

Movie format

Plain text .nmov (JSON if the path ends in .json):

# Native32 input movie v1
game: path/to/game.smf
fps: 30
auto_skip_cutscenes: true
# frame keys... [hold N]   keys: L R U D A B or 0xNNNN
0 hold 30
30 A hold 5
80 R A hold 15

Events are compressed key-change holds (readable and easy to hand-edit).

Changes

Area Files
Core movie.rs (format + recorder + live log), headless.rs (replay), audio capture for WAV during replay
Standalone --record-input, --replay, --dump-frames, --dump-every, --record-audio, --max-frames
RetroArch Core option native32emu_record_input, env NATIVE32_RECORD_INPUT
Scripts scripts/replay-movie.ps1
Docs docs/Input-Movies.md, CLI table in Standalone-Emulator.md

Checks

  • cargo test --workspace
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • Demo text movie replay produced video + audio locally

@AloysHF AloysHF changed the title feat: headless auto-bot playthrough recording (bot-record) feat: unattended Bloody Blade clear recording (headless auto-bot + movie + FFmpeg) Sep 19, 2026
Standalone --record-input, RetroArch core option / NATIVE32_RECORD_INPUT,
plain-text .nmov movies, headless --replay with optional PNG/WAV dump,
and scripts/replay-movie.ps1 for MP4 encode.
@AloysHF AloysHF changed the title feat: unattended Bloody Blade clear recording (headless auto-bot + movie + FFmpeg) feat: record human play and replay input movies Sep 19, 2026
@sonarqubecloud

Copy link
Copy Markdown

@AloysHF AloysHF closed this Sep 19, 2026
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.

1 participant