Skip to content

Restore Gen1 touch skins and haptics on the native viewport owner - #383

Closed
Roxas2712 wants to merge 54 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/upstream-touch-skin-stack
Closed

Roxas2712 wants to merge 54 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/upstream-touch-skin-stack

Conversation

@Roxas2712

@Roxas2712 Roxas2712 commented Oct 28, 2026 •

Copy link
Copy Markdown

Restore the actual Gen1 TouchSkin service in the shared native engine: native/RetroArch/Delta parsing and library operations, custom control geometry and ownership, native skin selection in OPTIONS, cutout placement and coordinate mapping, image/PDF-raster handling, and native/RetroArch/Delta exports. Existing native default controls and Gen4 camera/stick paths are retained. Optional mod consumers can use the real service without mod changes. Also restore the five Gen1 haptic helpers, actual first-owner feedback and a normal mobile OPTIONS intensity preference, shared across cartridges. Exact c25a8ab native upstream haptics pass37 assertions; no physical phone vibration acceptance is claimed.

Depends on #124 and its prerequisites; merge those first. This draft is intentionally based on the offered viewport/window owner (ce4a825), not an unimplemented replacement. Focused diff: https://github.com/Roxas2712/Gen2Recomped/compare/ce4a825a961d35df2e6748b22632843f77d5c671...codex/upstream-touch-skin-stack . The prerequisite stack has not been merged into current upstream main; no current-main mergeability or full upstream CI pass is claimed.

Validation: 527 focused assertions on 9e51cd0 across format parsing/import/export, actual mod require, normal flat upstream OPTIONS input and native persistence, overlapping contacts, focus reset, viewport hooks, default touch layouts and pointer ownership. Subsequent changes retain licensing notices and fix a real PhysFS refresh defect: duplicate mount calls returned false and hid installed archives. The runtime now retains live mounts, releases them before replacement/removal and preserves a busy archive; the memory fixture now models these cases. Exact dc29c16 targeted tests pass: archive formats242, native skin/options/input59 and viewport/window56. Archive unit tests explicitly use a memory PhysFS fixture. Separately, the fork integration passes actual ZIP/PNG/input/orientation and six framebuffer comparisons per Metal/OpenGL backend against pinned Gen1. Gen1 itself fails repeated mount under the same LÖVE12; its actual loader/setActive loads the already-mounted ZIP directly for pixel comparison only. Those fork runs do not qualify this pending upstream stack or OS-window/mobile behavior. SkinStudio and launcher integration remain a separate open parity requirement; real runtime/rotation/packaged acceptance remains pending.

Provenance and permission: TouchSkin/DeltaSkin/SkinZip/PdfImage, identified custom-controller sections and adapted format tests come from Gen1Recomp 535a5ec0, Copyright (C) 2026 BOIS CLUB GAMES, LLC. Original GPLv3/Section 7 terms are preserved in licenses/GEN1RECOMP-TOUCH-SKINS.md and packaged with the runtime. No proprietary Gen1 launcher code or third-party bundled skin art is included. Existing author rights and grants remain effective.

Independently owned native integration contributions by Roxas2712 are expressly offered to Cedric / UNDERdecoded under LICENSE-ROXAS2712.md, including project/commercial integration with visible credit. This does not relicense existing GPL-covered code or assign other authors' work to Roxas2712. Please preserve the licence/provenance notices and existing contributor credits.

Follow-up real-host tests found and fixed a missing speedLocked owner on this older offered base (previous narrow fixtures used a test double). The real native method now protects fixed-speed overlays and link sessions, including the actual logic multiplier under held acceleration. The expanded actual-stack skin contract passes65 on the composed offered stack; the default-hotbar follow-up is offered separately.

Current offered runtime head a3f0d34 also preserves required README and visible native-launcher credits, measured and wrapped without replacing existing author bylines. The full composed studio-stack run c23c662 is not accepted as green:117/127 engine suites,3/3 SDK; ten failures require trace/baseline attribution. Focused actual runtime65 and haptics37 remain passing evidence for their stated scopes.

# Conflicts:
#	src/mods/Loader.lua
# Conflicts:
#	docs/modding.md
#	src/mods/Loader.lua
#	src/world/WorldAPI.lua
@Roxas2712 Roxas2712 changed the title Restore Gen1 custom skins on the native viewport owner Restore Gen1 touch skins and haptics on the native viewport owner Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant