TASEmulators / TASEmulators/BizHawk

Representing screen layout of virtual systems

Open
#4,221 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

App: EmuHawk Core: Encore Core: Gambatte Core: GBHawk Core: MAME Core: melonDS Core: SMSHawk Meta Request: Feature/Enhancement
Dominant language
C#
Stars
2.8k
Forks
468
PR merge metrics
No merged PRs in 30d

Description

At the very least, we need a new service which accommodates multi-screen systems (perhaps as simple as a list of IVideoProviders).

  • This includes DS/i, 3DS, Virtual Boy, and I think 1 other edge case we should be emulating atm that I've forgotten. Plus all our linked handhelds and maybe some of MAME's systems.
  • In the future it could include DOOM, linked GBA, and the Dreamcast's VMU.

The service would need to facilitate at least the relative positioning of the screens.

  • What about separate windows? #4018
    • And hey, what about XR? If you have binocular displays, you could do cool things like drawing an OSD or ApiHawk layer as a separate plane, or only in one eye.

melonDS and Encore (and VirtualBoyee) currently combine 2 framebuffers into 1 within the core, which I've complained about at length, including in #3772.

It would be nice if the solution we come up with also covered screen rotation, as is currently handled in melonDS/Encore with non-sync settings.

  • This would presumably be useful for most handhelds.
  • Titles like GBA WarioWare: Twisted! and WonderSwan Rhyme Rider Kerorican could benefit from arbitrary rotations, not just quarter-turns.
    • And for GBC Kirby Tilt 'n' Tumble or NDS Tony Hawk's Motion I guess it would have to be 3D?

see also my notes #124

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 the existing multi-screen and framebuffer handling in melonDS and Encore, along with issue #3772 and the linked discussion. The proposed design should account for relative screen positioning and screen rotation across the listed systems; the issue does not identify specific BizHawk files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
computer-graphics, desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.