TASEmulators / TASEmulators/BizHawk

Offer a co-ordinate normalisation function (invariant to core's display settings)

Open
#3,772 11 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Core: Encore Core: melonDS re: APIHawk re: Lua API/scripting Request: Feature/Enhancement
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

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.