TASEmulators / TASEmulators/BizHawk

TAStudio: allow persistent frame-bound RAM pokes

Open
#4,571 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

App: EmuHawk Request: Feature/Enhancement
Dominant language
C#
Stars
2.8k
Forks
468
PR merge metrics
No merged PRs in 30d

Description

See also: #4570

If RAM-poked frames had a different color, it would be useful to have an explicit way to add persistent frame-bound RAM pokes. The idea is that each frame has an associated RAM poke changes table with a list of addresses and their values, and these get applied each time that range of frames is played back in TAStudio. For RAM freezes, the frame could perhaps instead be stored as an interval of frames (though this doesn't really play nicely once you start throwing branches into the mix).

Benefits: it allows RAM pokes to be more explicitly managed, instead of having to re-create or carefully remember them each time you want to experiment with nearby frames.

Downsides: this feature probably adds a lot of complexity for one somewhat niche situation, and the UI would need some care to clearly communicate what's going on.

Maybe this sort of thing is better demo'd as an external tool before/instead of incorporating into BizHawk itself.


One useful conceptual model for both users and for the design generally suggested on Discord is treating RAM pokes similar to inputs: this preserves useful intuition for the user, and also informs the implementation. They could actually be rendered in their own column on the input log itself. I envision something akin to markers, with an additional number corresponding to the number of RAM pokes.

One vital caveat: if memory pokes/cheats become allowed movie "inputs", the movie must clearly communicate it's cheated when it loads.

Contributor guide

Open the contributing guide

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 reviewing TAStudio's existing RAM-poke behavior, input-log model, and movie-loading path; the issue names no files or tests. A complete design would need persistent frame-bound poke management, clear UI communication, branch behavior, and an indication that movies containing memory pokes are cheated.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
desktop, tooling
Issue type
Feature
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.