Skip to content

Expose shared API-3 GBA native move records - #194

Closed
Roxas2712 wants to merge 18 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/portable-enemy-move-records
Closed

Roxas2712 wants to merge 18 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/portable-enemy-move-records

Conversation

@Roxas2712

@Roxas2712 Roxas2712 commented Oct 24, 2026 •

Copy link
Copy Markdown

API-3 mods inspecting next() inside battle.enemy_action currently receive Gen2's id-only move handle instead of Gen1's native move fields. Conditions such as action.kind == "move" and edits of action.move therefore require engine-specific branches.

Expose the shared GBA native move fields for API 3: kind, native move ID, selected slot, user, positional battler and double-battle targetType. Retain the reference's symbolic STRUGGLE fallback. These are call-local views; unchanged native handles and learned move data retain their identity/state.

Authored numeric/name references remain intact between public hooks. Native hook links retain their physical Gen2 representations; a later native rewrite invalidates the older public reference snapshot. Existing canonical id edits, API-1/2 views, detached native actor queries and selected-slot PP semantics remain supported.

Stacked on #191. Review feature commit 3f01f29e relative to that prerequisite (12 files).

Validation:

  • 254/254 new focused checks for FireRed/Emerald: actual public SDK, native record fields, mutation versus replacement, independent move/id references, nested hooks, actual battle.move_used events, HP/PP, charge continuations, Struggle, native cloned actors and mixed public/native representations and rewrites.
  • Existing 1,252/1,252 move-choice checks and 438/438 selector checks remain green.
  • Pinned unchanged read-only Gen1Recomp 535a5ec088c1ae1bf4d91dd3e35a56f64cf46d91: 16 isolated engine runs / 220 paired observations pass, combining move choices, selectors and native move-record cases.
  • Full local quick run: 79/89 engine suites versus 78/88 on clean Align API-3 GBA enemy-action battler selectors #191. The exact Counter of all 27 inherited FAIL lines across ten suites matches; no new failures. SDK 3/3 and B30 pass.
  • actionlint and git diff --check pass.

Scope: native move records for API-3 GBA. No AI scores or target-selection result are fabricated. Item/switch/watch records, chosen double targets, other native fields, damage amounts, RNG traces and complete gameplay parity remain separate. No Gen1 source change or publication is required. Hosted CI is reported separately from local acceptance.

Combined-fork validation: integrated into Roxas2712:codex/portability-testing, production runtime 679b549. All 210/210 engine suites, 3/3 SDK suites and B30 pass. The same 16-worker / 220-observation reference comparison passes on this runtime. Integration preserves the existing identity-roll boundary.

Hosted CI: all three workflows report action_required pending maintainer approval. The dedicated contract workflow has zero executed jobs. These are separate from local acceptance.

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