GamePad Clone Layout
BW-198  /  cemu-ios-muffin  /  ios-gamepad-clone-layout

The pad, measured off the GamePad itself

The shipping layout is measured from a screenshot of an on-screen pad. This one is measured from the hardware — the official controller illustration at 0.425 mm/px. That scale isn't assumed; it's checked against Nintendo's published dimensions and agrees on all three.

Body width600 px × 0.425 = 255.0 mmNintendo: 255 mm
Body height314 px × 0.425 = 133.5 mmNintendo: 134 mm
Screen diagonal324 × 185 px = 158 mmNintendo: 6.2 in = 157.5 mm

So “life-size” is a literal claim here. Everything below is in D, one face-button diameter = 10.625 mm — the unit ControllerGeometry already uses. The body turns out to be exactly 24 D wide.

Every configuration, resolved

Pick a device. The drawing is generated from the same numbers the Swift resolver produces — both were checked against each other on five configurations, zero discrepancies.

face buttons · picture d-pad, sticks, shoulders + / − when relocated HOME

The four laws

Ordered, because each one only runs on what the one before it left undecided.

01

Size — life-size unless the height can't hold it

D = 10.625 mm expressed in points. A point is 0.166 mm on an iPhone and 0.192 mm on an iPad, so this needs points-per-inch, which UIKit doesn't expose — hence the small model table in DeviceMetrics. The result is the headline: the clusters are only 61 mm tall, so life-size fits nearly everywhere. It's the 255 mm body that never fits, not the controls.

02

Arrangement — the geometry outranks the button size

The stick sits 29.65 mm at 69.87° from the cluster centre, and both halves agree on that to within 0.1 mm. When height is short, D shrinks first; only if D would fall under the 44 pt touch floor does the arm rake outboard, which buys height without changing the stick-to-cluster distance a thumb actually learns. No shipping device needs the rake.

03

Placement — clusters are rigid, the bezel stretches

Clusters pin to the safe-area edges and never deform. What moves is the low-priority hardware: + and − keep their real slot under A/B/X/Y wherever 4.0 D of room exists below the cluster centre — every iPad — and otherwise move to the elbow, the empty diagonal between stick and cluster that a thumb already sweeps across. TV and POWER keep their bottom-rail place in framed mode and otherwise belong to the pause menu.

04

Mode — one question decides it

Would a framed picture be at least as big as the GamePad's own 6.2 in screen (137.3 mm)? Below that, the shell is nostalgia bought with a smaller picture than the real hardware had — the wrong trade. Above it you get the GamePad, bezel and all, with nothing overlapping the picture.

Where every device lands

DeviceModeDvs life-sizeButton+ / −Picture

Every iPad is life-size, the mini included — a 1:1 physical replica of the GamePad's controls with + and − in their real place. iPad Pro 13″ framed gives a 175 mm picture against the hardware's 137 mm: a GamePad with a screen 28% bigger than the real one. iPhones land at 81–96%, all clear of the touch floor.

The hardware, in D

Every front-face number is measured. L / R / ZL / ZR are on the top edge and don't appear in a front view — their pill size is kept from the old measurement and their position is placed, centred above their own stick. They're the only placed geometry in the file.

ElementDmmNote
Face button diameter1.00010.625the unit
Y ↔ A half pitch0.96010.20tighter than the screenshot's 1.240
X ↔ B half pitch0.95010.09
D-pad width × height2.280 × 2.24024.23 × 23.80a solid cross, not four circles
D-pad arm width0.7608.08
Stick dish / cap1.960 / 1.12020.83 / 11.90
Stick arm2.79029.65at 69.87°, up and outboard
+ / − diameter0.6807.23both on the right, + above −
HOME diameter1.04011.05
Body24.000 × 12.560255.0 × 133.5exactly 24 face buttons wide
Screen12.922 × 7.266137.3 × 77.2normalised to exactly 16:9

Two things to decide

The d-pad becomes a cross, and the iPad + / − both move right

Both are the hardware being right, and both are visible changes to a pad people have already learned. Worth a settings toggle if either turns out to be unpopular.

The shipping pad anchors to proxy.size, not the safe area

So on every notched iPhone in landscape, the outer controls sit under the Dynamic Island. The resolver here takes a safe rect instead. That's a fix that stands on its own, whatever happens to the rest of this.