Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create separate entrypoint logic for in-game invoked mode #765

Open
emukidid opened this issue Jan 10, 2023 · 0 comments
Open

Create separate entrypoint logic for in-game invoked mode #765

emukidid opened this issue Jan 10, 2023 · 0 comments

Comments

@emukidid
Copy link
Owner

emukidid commented Jan 10, 2023

Describe the feature

Create a struct, something like:

struct {
    u32 swissMagic, -- something to make it obvious when we're passed this.
    void* readDevice, -- optional
    void* writeDevice, -- optional
    void* screenData, -- ptr to screen dump, more info can be pulled from viRegs perhaps or stored somewhere
    void* reservedAreaBase -- ptr to all our in-game stuff
} swissGlue

Add it as an optional arg to argv, when found, Swiss can skip traditional init and work in a bare-bones mode more akin to an in-game menu of sorts. This could be a separately built version of Swiss or just a separate code path invoked via IGR, it'd have a menu to:

  • Current Temperature
  • Game Info (time played this session, time played total) (relies on writable device)
  • Return to game (relies on a writeable device being present so we could've dumped things Swiss would've overwritten before it invoked itself)
  • Dump screenshot
  • Save State
  • Load State

This would all be much easier on something like the Wii though where we'd just use spare MEM2 to move/mirror the state in.

Add screenshots

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant