Repository navigation
Conversation
# Conflicts: # src/mods/Loader.lua
# Conflicts: # docs/modding.md # src/mods/Loader.lua # src/world/WorldAPI.lua
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Gen1Recomp mods can replace native Gen-2 mart shelves through
mod.content.marts. Gen2Recomped lacks that registry, and its ROM-script lowering also discards the shop type needed to select independent bargain prices.Add the native API-1/2 and unified API-2/3 contract for IDs
"0"–"33"and"bargain": get/each/register/override/patch/remove, whole-list patches including empty lists, ordered contributions, frozen writes, detached public reads, rollback and reload retirement. Resolve common item IDs through mounted data to actual importedITEM_*keys, including forward references after ordinary item merges. Keep this a virtual projection over the existing script pool.Preserve the native shop type when lowering
pokemart. Type 2 uses independent 16-bit bargain prices, sells one of each item and retains sold state when reopened; ordinary shops still use item prices. Read optional ROM bargain rows on fresh imports and retain IDs/types on fallback clerk markers so those markers can resolve live shelves. A mod can supply bargain rows to an older cache.The registry is honestly unavailable on GB/GBA/DS, matching the reference. Legacy marker-only cache fallbacks need reimport for the new ID annotations; the normal ROM-script path uses the live pool directly. Daily bargain reset and special-shop pixel/presentation equivalence are outside this contract. Includes a public consumer, docs, pinned cross-engine CI and an isolated native driver.
Validation
Feature
fbb21ba43e64e35562a30d9f1f1aff8ba22d6aa6; combined testforkeaf9882ddd54fd2139d99e51bddaaf5ecfe941e8:535a5ec088c1ae1bf4d91dd3e35a56f64cf46d91, which contains the mart contract. Earlier contract families retain their own reference pins.89fc602240a607a9cee3b2c575828c17970842ee: unchanged installed consumer, actual ROM-IR lowering, real script coroutines and UI input, ordinary purchase/item price, bargain purchase/independent price, sold-out and reopen protection, close/resume, detached reads and frozen writes. Production code, example and driver are unchanged at the final combined ref; its later commit only corrects a shared test to use reads available in native API 1/2.Stack
Depends on #167 and the prerequisite portability series. Incremental comparison against #167. The combined testing branch also includes the independent baseline repairs. All 28 hosted PR workflows report
action_requiredpending maintainer approval. The mart workflow has no jobs; the local passing results above do not imply hosted CI passed.