TASEmulators / TASEmulators/BizHawk
Offer a co-ordinate normalisation function (invariant to core's display settings)
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 2.8k
- Forks
- 468
- PR merge metrics
- No merged PRs in 30d
Description
client.bufferheight() is a constant 384 regardless of screen gap, yet trying to draw on the bottom screen (EmuCore surface) with y values in 192..<384 draws that distance below the origin, not taking the screen gap into account.
If you were wondering why the bundled Lua script draws on the Client surface, this is why. If you were wondering why it reads the current rotation/gap settings only to force a preset I have no idea.
I bet this affects Citra too. If only we'd thought to write a robust multi-screen API (parent issue) instead of hacking stuff into the existing one. (This is where I'd say "I told you so," if I could find a link to that.)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing client.bufferheight() and coordinate handling for the EmuCore surface, including the bundled Lua script's use of the Client surface. Compare behavior across current rotation and screen-gap settings, and check whether Citra follows the same path. Done means a normalization function exists for drawing on the bottom screen without depending on core display settings, with behavior verified across relevant gap configurations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- computer-graphics, desktop
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100