Repository navigation
iris-gui: Save state keeps the machine running; IMPACT keeps its display after a restart - #316
Merged
Merged
Conversation
`stop` stops the IMPACT display engines and the Ultra64 board, but `restart_peripherals` did not start them again. Every path that resumes through it (`machine-start`, `reset`, snapshot loads and rollbacks) left an IMPACT machine without its HQ3, RSS and refresh threads. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
After saving, the GUI resumed with `start`, which starts the whole machine again: a second monitor server on a port already in use, and the peripherals restarted on top of themselves. It now resumes as the monitor's `machine-start` does, through `start_guest`, and only if the machine was running when the save began. The Machine menu closed on any click, including the click that focuses the Save or Restore state name box, so a name could not be typed. It now closes on clicks outside it; its buttons and CPU choices close it themselves. Fixes techomancer#307. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #307.
What was wrong
start, which starts the whole machine again: a second monitor server on a port that is already in use (the warning in the issue), and every peripheral started on top of itself.Machine::stopstops the IMPACT display engines and the Ultra64 board, butrestart_peripheralsnever started them again. Everything that resumes through it (machine-start,reset, snapshot loads and rollbacks, and now iris-gui's Save state) left an IMPACT machine without its HQ3, RSS and refresh threads.The fix
Two commits:
machine: restart the IMPACT display and the Ultra64 board with the rest:restart_peripheralsnow restarts everythingstopstopped, except the CPU. Both starts are idempotent.iris-gui: Save state keeps the machine running: the GUI resumes throughstart_guest, the path the monitor'smachine-startuses, and only if the machine was running when the save began. The Machine menu closes only on clicks outside it; its Save, Restore and CPU choices close it themselves.HAL2 still reopens its audio output after a save, as it does after
save+machine-startfrom the monitor: a save stops the peripherals so their state is consistent.Testing
On this branch's commits (01eb442, rebased onto 64c7fbf):
cargo check --workspace --all-targetswith default features,hostgl,jitv2,tcache,lightning,rex-jit,gr4-jitandjitv2,developer: no new warnings (the two it prints, insrc/net/testnet.rsand the unusedcrossbeam-queuedependency, are on main already).iris/hostgl,iris/jitv2,iris/tcache), an Indy: clicked into the Save state box and typed a name with the Machine menu staying open, saved (Snapshot saved to saves/saved_indy, no monitor-port warning, the machine kept running), then restored it. The side panel's Save state and Restore state buttons send the same commands.On the same two commits before the rebase onto 64c7fbf (only the base below them changed):
machine-stopthenmachine-start, threads listed withsample: before the fix, MC-DMA, both WD33C93A and the SEEQ threads came back but MGRAS-HQ3, MGRAS-RSS and MGRAS-Refresh did not; with it, all of them come back.🤖 Generated with Claude Code