sanjinpepic
d03d2af5f8
Pass data through to ItemEffects.partyAction for Gen 2 pack items
...
Both call sites -- Game2:usePartyItem (the field pack) and
BattleState:useItem (the battle pack) -- asked ItemEffects.partyAction
for an item's family with no `data` argument, even though every other
call in the same functions (useOnMon, usePpItem, applyPartyItem) passed
it through correctly. partyAction resolves through recordFor, which
reads data.gen2ItemEffects when given a dataset and falls back to the
module's own built-in RECORDS table when not -- so with no data, a
mod's own item_effects record was invisible and every mod-defined Gen 2
field or battle item resolved to a nil action, falling straight through
to "isn't going to help here" / "isn't going to help here" without ever
opening the party picker.
Both now pass the live dataset (self.data on Game2, self.game.data on
the battle screen) the same way their sibling calls already did.
2026-08-16 22:48:34 +02:00
sanjinpepic
f62b1268c8
Add an item.use hook around BagMenu's item-use dispatch
...
useOn was a plain Lua local: every result ItemEffects.use returned fell
through to one unconditional showMessages with no seam a mod could
reach, unlike menu.lua/boxmark.lua/formview.lua's screens, which wrap
their own default behavior as a table field or a Runtime hook. A mod
could not suppress a message, delay it behind a screen of its own, or
substitute a different outcome for one item id -- exactly the gap noted
against Ultra Burst's item-driven fusion, which had nowhere left to
attach a bespoke animation once TextBox.new turned out to be the only
other reachable seam.
This wraps the whole dispatch in a Runtime.call("item.use", ...) hook,
the same mechanism "battle.overlay", "ui.party.submenu" and the rest of
src/ui already use, rather than exporting BagMenu.useOn as a table
field. A hook is the smaller commitment: it is additive (a fresh
Runtime.call site needs no schema or manifest change and costs nothing
unsubscribed -- see tests/engine/gate_hooks.lua's null-object case) and
a mod can still run the vanilla flow unchanged by calling the handed-in
vanilla function, whereas a table field would fix useOn's exact
signature as public API the moment it shipped. If the maintainer would
rather match the sibling screens' convention directly, exporting
BagMenu.useOn is the alternative and does not conflict with this hook
existing alongside it.
vanillaUseOn keeps the original function body; useOn is now the thin
wrapper mods observe through, and every internal caller in this file
still goes through useOn so the hook fires on every path into it.
2026-08-16 22:48:33 +02:00
bryanthaboi
0c941cecd4
Merge pull request #1402 from AverageConsumer/codex/mod-field-advanced-actions
2026-08-16 12:08:47 -04:00
bryanthaboi
dd59175c71
Merge pull request #1405 from AverageConsumer/codex/mod-render-viewport
2026-08-16 12:08:03 -04:00
bryanthaboi
fe6a580e20
Merge remote-tracking branch 'origin/main' into dev
...
# Conflicts:
# src/world/gen2/World.lua
2026-08-16 10:11:53 -04:00
bryanthaboi
a910b65434
CLOSES #1231 , CLOSES #1269 , CLOSES #1301
2026-08-16 10:04:54 -04:00
AverageConsumer
1f3d13adaf
mods: add OS-independent game viewport composition
2026-08-16 15:17:35 +02:00
AverageConsumer
a3a20a07e1
feat(mods): expose Fly and Softboiled field actions
2026-08-16 14:57:46 +02:00
bryanthaboi
1151c188a7
CLOSES #1211 , CLOSES #1228 , CLOSES #1229 , CLOSES #1232 , CLOSES #1251 , CLOSES #1265 , CLOSES #1267 , CLOSES #1276 , CLOSES #1279 , CLOSES #1282 , CLOSES #1293 , CLOSES #1296 , CLOSES #1303 , CLOSES #1329 , CLOSES #1338 , CLOSES #1341 , CLOSES #1343 , CLOSES #1344 , CLOSES #1368 , CLOSES #1385 , CLOSES #1388 , CLOSES #1389 , CLOSES #1391
2026-08-16 08:55:40 -04:00
bryanthaboi
5f2b2c616e
CLOSES #1181 , CLOSES #1212 , CLOSES #1214 , CLOSES #1224 , CLOSES #1230 , CLOSES #1249 , CLOSES #1271 , CLOSES #1272 , CLOSES #1273 , CLOSES #1298 , CLOSES #1305 , CLOSES #1307 , CLOSES #1318 , CLOSES #1328 , CLOSES #1330 , CLOSES #1331 , CLOSES #1333 , CLOSES #1334 , CLOSES #1335 , CLOSES #1340 , CLOSES #1345 , CLOSES #1346 , CLOSES #1360 , CLOSES #1362 ( #1395 )
...
* CLOSES #1181 , CLOSES #1212 , CLOSES #1214 , CLOSES #1224 , CLOSES #1230 , CLOSES #1249 , CLOSES #1271 , CLOSES #1272 , CLOSES #1273 , CLOSES #1298 , CLOSES #1305 , CLOSES #1307 , CLOSES #1318 , CLOSES #1328 , CLOSES #1330 , CLOSES #1331 , CLOSES #1333 , CLOSES #1334 , CLOSES #1335 , CLOSES #1340 , CLOSES #1345 , CLOSES #1346 , CLOSES #1360 , CLOSES #1362
* conv
2026-08-16 06:55:09 -04:00
bryanthaboi
fc841f7525
Merge branch 'dev' of https://github.com/bryanthaboi/gen1recomp into dev
2026-08-16 06:41:58 -04:00
bryanthaboi
12fdfa1e88
CLOSES #1181 , CLOSES #1212 , CLOSES #1214 , CLOSES #1224 , CLOSES #1230 , CLOSES #1249 , CLOSES #1271 , CLOSES #1272 , CLOSES #1273 , CLOSES #1298 , CLOSES #1305 , CLOSES #1307 , CLOSES #1318 , CLOSES #1328 , CLOSES #1330 , CLOSES #1331 , CLOSES #1333 , CLOSES #1334 , CLOSES #1335 , CLOSES #1340 , CLOSES #1345 , CLOSES #1346 , CLOSES #1360 , CLOSES #1362
2026-08-16 06:41:56 -04:00
AverageConsumer
c22888a7fd
feat(mods): add validated battle menu intents
2026-08-16 02:56:03 +02:00
bryanthaboi
5198b35945
bazinga
2026-08-15 10:44:20 -04:00
1jamie
8dfbd1daae
fix(save/gen2): auto-recover orphaned save slots and fix PartyMenu field moves
...
- Auto-recover save slots: Scan saves/<version>/ on boot to re-index orphaned slot files if options.lua is reset or loses its slot registry.
- Fix Gen 2 field moves: Make PartyMenu field actions (Strength, Surf, Cut, Flash) generation-aware so they execute safely in Gold.
- Fortify platform stability: Guard native controller/hidapi init against Android 14 receiver exceptions and ensure safe Windows file replacement.
- Add unit test coverage for slot auto-recovery in save_editor_gen2_tests.lua.
2026-08-14 22:16:17 -05:00
bryanthaboi
72f126ae26
Merge pull request #1312 from AverageConsumer/feat/contextual-field-moves
2026-08-14 21:42:22 -04:00
AverageConsumer
2b6473ae03
feat(mods): extend contextual field actions
2026-08-15 02:01:20 +02:00
1jamie
df0be1cba6
Add Gold save-editor support, rearrange the launcher, and ship a patch-notes modal.
...
The save editor now routes Gold vs RBY through a generation adapter so boxes, items, events, and maps write the right fields. The launcher layout is shuffled a bit, and patch notes can come from the updater, a packed file, or the iOS sidecar.
2026-08-14 18:48:06 -05:00
bryanthaboi
052dd26b3e
Merge branch 'dev' of https://github.com/bryanthaboi/gen1recomp into dev
2026-08-14 17:07:08 -04:00
bryanthaboi
c8f6c7241b
i did it for greg
2026-08-14 17:07:06 -04:00
MaxTomahawk
407f649e9d
fix(mod-api): harden deferred trainer preparation
2026-08-14 17:57:59 +02:00
MaxTomahawk
a77210799f
feat(mod-api): add trainer battle party scope
2026-08-14 17:33:17 +02:00
bryanthaboi
a94fecfec8
Closes #919 , closes #982 , closes #1003 , closes #1012 , closes #1022 , closes #1028 , closes #1033
2026-08-14 10:05:51 -04:00
bryanthaboi
fceaa2b54c
Merge pull request #1240 from AverageConsumer/codex/gen2-battle-ui-visibility
2026-08-14 05:54:22 -04:00
ShaneMcGovernIE
1586aec9f6
fix(gen2): sell TMs at Poké Marts instead of opening the teach party
...
Selecting a TM in the mart's SELL pack (and the item PC's DEPOSIT pack) opened the teach-party screen: PackMenu:useSelected taught any item carrying `teaches`, even when the pack was built as a chooser (DepositSellPack, world = {}). On the cart that chooser's jumptable is four ScrollingMenus and never reaches tmhm.asm, so the row must hand back to the caller instead.
Gate the teach and field-NOUSE branches behind world.useFieldItem so only the real field PACK teaches; choosers now hand TMs to onChoose. Selling then prices a TM at half its ItemAttributes price -- exactly half of what the Goldenrod/Celadon TM shelves charge, and half of the hidden price for the rest, the way SelectQuantityToSell -> GetItemPrice -> Sell_HalvePrice does on the cart.
Closes #1243
2026-08-13 23:55:31 +01:00
AverageConsumer
7b8cb127a8
feat(gen2): share battle UI visibility hooks
2026-08-13 22:41:26 +02:00
bryanthaboi
37051a26b5
CLOSES #1206 , CLOSES #1189 , CLOSES #1175 , CLOSES #1129 , CLOSES #1119 , CLOSES #1089 , CLOSES #1073 , CLOSES #1069 , CLOSES #1065 , CLOSES #1010 , CLOSES #990 , CLOSES #989 , CLOSES #988 , CLOSES #978 , CLOSES #944 , CLOSES #936 , CLOSES #1221 , CLOSES #1220 , CLOSES #1193 , CLOSES #1101 , CLOSES #1066 , CLOSES #1056 , CLOSES #1041 , CLOSES #984 , CLOSES #1225 , CLOSES #1214 , CLOSES #1011 , CLOSES #1035 , CLOSES #1219 , CLOSES #1048 , CLOSES #1047 , CLOSES #964 , CLOSES #949 , CLOSES #1149 , CLOSES #1007 , CLOSES #914 , CLOSES #1115 , CLOSES #1146 , CLOSES #999 , CLOSES #1207 , CLOSES #1029 , CLOSES #1120 , CLOSES #987 , CLOSES #983
2026-08-13 13:07:20 -04:00
bryanthaboi
df35193ad3
Merge pull request #1204 from castdrian/ios-improvements
...
feat(ios): improve branding and fix haptic feedback
2026-08-13 06:06:31 -04:00
bryanthaboi
52e36ad7e4
fix testsZ
2026-08-13 06:05:27 -04:00
bryanthaboi
6864173f35
Merge branch 'dev' of https://github.com/bryanthaboi/gen1recomp into dev
2026-08-13 05:30:35 -04:00
bryanthaboi
e9d431b3ff
CLOSES #1091 , CLOSES #1097 , CLOSES #1100 , CLOSES #1104 , CLOSES #1135 , CLOSES #1155 , CLOSES #1157 , CLOSES #1158 , CLOSES #1159 , CLOSES #1160 , CLOSES #1167 , CLOSES #1208
2026-08-13 05:30:33 -04:00
Adrian Castro
d648990a81
feat(ios): brand app and tune haptic feedback
2026-08-13 02:19:45 +02:00
bryanthaboi
517170f1c8
Merge pull request #1068 from anxiousintrovert/agent/fix-disabled-battle-ui-background
...
Fix hidden battle UI overlay backgrounds
2026-08-12 16:56:46 -04:00
bryanthaboi
3320eacc26
Merge pull request #1079 from MaxTomahawk/feat/mod-pokemon-icon
...
feat(mods): expose canonical Pokémon icon presentation
2026-08-12 16:55:55 -04:00
bryanthaboi
6731937841
Pulled every open Gold bug (bodies, comments, screenshots/videos), matched them against the port and ../pokegold, then split them so each fixer owns a disjoint file set. Duplicates collapsed: #1164 and #1188 are the same Radio Tower stair softlock. #1150 and #1190 are the same Gold rebind freeze. Enhancements ( #1161 , #1130 , #1112 , #1100 ) were left out. Battle 1 src/battle/gen2/*, src/ui/gen2/BattleState.lua #1168 multi-hit always 2 #1180 DV / stats #1185 learn-move text order after a trainer fight #1152 no "Use next POKéMON?" / run after a wild faint Overworld 2 src/world/gen2/*, trade anim, hidden items #1184 Kurt blocking Slowpoke Well #1164 / #1188 Radio Tower gentleman on the stairs #1173 Rock Smash rocks walk left each visit #1172 last item name used Rock Smash #1167 Ilex Forest hidden items #1165 trade movie + ledge hop still missing ( #1121 / #1126 ) UI 3 naming, party, mart, pokegear #1166 grey nickname screen #1162 TM/HM missing ABLE / NOT ABLE #1169 underground herb lady whites out the map #1151 Pokegear black player icon + extra A/B on the phone card Platform 4 Gold options, save slots, pack, mod tab #1150 / #1190 controls freeze #1178 no vibration row #1177 cannot move Gold touch controls #1107 SAVE with no launcher slot #1145 Gold mod tab still lists Gen 1-only mods #1192 RGXX missing tools/rom_manifest_gold.json Drivers only for the progress / data-loss ones (faint-run, multi-hit, Kurt, Radio Tower, Rock Smash shift, herb shop, save slot). No new unit tests. New comments are pokegold file.asm:line only. A verifier agent will get this same list once the four finish and check that the diffs actually fix the reports. Verifier checked the batch against pokegold. Almost everything landed. I closed the two leftovers that were still real bugs: #1185 : the active mon no longer reprints GrewToLevel (engine/battle/core.asm:7044). Bench mons still print it, then the stats box, then the learn-move line. #1180 : the party list recalcs stats on open, same as Summary. Gold boot now applies options.touchControls / haptics from the Gold options block, not the shared Red pad. # Verdict 1168 multi-hit FIXED 1180 DVs / stats FIXED 1185 learn-move order FIXED (was partial) 1152 run after faint FIXED 1184 Kurt FIXED 1164 / 1188 Radio Tower FIXED 1173 rocks slide FIXED 1172 Rock Smash name FIXED 1167 Ilex hidden items SKIP-OK (already in the Gold cache) 1165 trade + ledge FIXED 1166 nickname color FIXED 1162 TM ABLE / NOT ABLE FIXED 1169 herb shop white-out FIXED 1151 Pokegear FIXED 1150 / 1190 rebind freeze FIXED 1178 vibration FIXED 1177 touch layout FIXED 1107 save slot FIXED 1145 mod tab filter FIXED 1192 RGXX Gold manifest FIXED Nothing is committed. Drivers, from the repo root: POKEPORT_GAME=gold POKEPORT_TOUCH=0 POKEPORT_DRIVER=tests/drivers/multihit_bug1168_test.lua love . Fury Attack should hit 2-5 times. Always twice is still broken. POKEPORT_GAME=gold POKEPORT_TOUCH=0 POKEPORT_DRIVER=tests/drivers/use_next_mon_bug1152_test.lua love . After the lead faints: "Use next POKéMON?" YES opens the party. NO/B tries to run. POKEPORT_GAME=gold POKEPORT_TOUCH=0 POKEPORT_DRIVER=tests/drivers/kurt_well_bug1184_test.lua love . Kurt at the well entrance (16, 14), not on the inner path. POKEPORT_GAME=gold POKEPORT_TOUCH=0 POKEPORT_DRIVER=tests/drivers/radiotower_softlock_bug1164_test.lua love . Gentleman in the 5F office (3, 6). Stairs at (12, 0) clear. POKEPORT_GAME=gold POKEPORT_TOUCH=0 POKEPORT_DRIVER=tests/drivers/rocksmash_shift_bug1173_test.lua love . Route 40 rocks stay put. A slide one cell left is the old bug. POKEPORT_GAME=gold POKEPORT_TOUCH=0 POKEPORT_DRIVER=tests/drivers/herbshop_bug1169_test.lua love . Herb shop intro over the Underground map, not a white screen. POKEPORT_GAME=gold POKEPORT_IDENTITY=gold-bug1107 POKEPORT_DRIVER=tests/drivers/gold_save_slot_bug1107_test.lua love . Look for PASS and a saves/gold/slot*.lua path. CONTINUE should see it. Worth a hand check with no driver: nickname color, a TM for ABLE/NOT ABLE, Pokegear phone B-to-close, OPTION > CONTROLS, a ledge hop, a trade movie, and on a phone OPTION > TOUCH LAYOUT / VIBRATION. give me CLOSES #93939 , in a comma separated list each saying CLOSES before each issue number that is fixed CLOSES #1107 , CLOSES #1145 , CLOSES #1150 , CLOSES #1151 , CLOSES #1152 , CLOSES #1162 , CLOSES #1164 , CLOSES #1165 , CLOSES #1166 , CLOSES #1168 , CLOSES #1169 , CLOSES #1172 , CLOSES #1173 , CLOSES #1177 , CLOSES #1178 , CLOSES #1180 , CLOSES #1184 , CLOSES #1185 , CLOSES #1188 , CLOSES #1190 , CLOSES #1192
2026-08-12 16:51:27 -04:00
MaxTomahawk
29a2b9a123
Merge remote-tracking branch 'origin/dev' into feat/mod-pokemon-icon
...
# Conflicts:
# docs/modding.md
2026-08-12 09:46:44 +02:00
bryanthaboi
e8eccfd4df
Merge pull request #1080 from MaxTomahawk/feat/device-date-time
...
feat(mods): add shared local date and time formatting
2026-08-11 21:21:51 -04:00
bryanthaboi
0136429d3e
CLOSES #1090 , CLOSES #1093 , CLOSES #1094 , CLOSES #1095 , CLOSES #1098 , CLOSES #1102 , CLOSES #1105 , CLOSES #1106 , CLOSES #1108 , CLOSES #1109 , CLOSES #1110 , CLOSES #1111 , CLOSES #1113 , CLOSES #1114 , CLOSES #1117 , CLOSES #1118 , CLOSES #1121 , CLOSES #1122 , CLOSES #1123 , CLOSES #1124 , CLOSES #1126 , CLOSES #1127 , CLOSES #1128 , CLOSES #1131 , CLOSES #1132 , CLOSES #1134 , CLOSES #1137 , CLOSES #1141
2026-08-11 21:19:36 -04:00
Dorian Burton
3d2d53362d
Add trueColor to Gen 2's BattleState.lua
...
Without the trueColor option from Gen 1's BattleState, custom sprites are rendered with the orignial sprites color pallete.
2026-08-11 17:51:23 -04:00
bryanthaboi
ae6cac89e1
G2 support
2026-08-11 11:53:30 -04:00
MaxTomahawk
2c8c800584
feat: add shared date and time formatting
2026-08-11 11:17:32 +02:00
MaxTomahawk
ccb5358aad
feat: expose public Pokemon icon presentation
2026-08-11 11:16:58 +02:00
anxiousintrovert
d21a0edffc
Fix hidden battle UI overlay backgrounds
2026-08-10 20:03:33 -05:00
bryanthaboi
79ed37699e
Merge pull request #1055 from AverageConsumer/codex/mod-grid-navigation-hooks
...
Mod API: allow alternate battle grids to own navigation
2026-08-10 17:08:24 -04:00
bryanthaboi
c3855cebec
more buggies CLOSES #960 , CLOSES #961 , CLOSES #968 , CLOSES #995 , CLOSES #1006 , CLOSES #1009 , CLOSES #1013 , CLOSES #1021 , CLOSES #1031 , CLOSES #1044 , CLOSES #1049 , CLOSES #1050 , CLOSES #1045,,
2026-08-10 17:06:24 -04:00
AverageConsumer
6a990bf79f
feat(mods): allow alternate battle grids to own navigation
2026-08-10 21:22:09 +02:00
bryanthaboi
9d73ff4110
yellow copyright diff
2026-08-10 14:27:00 -04:00
bryanthaboi
9302bbcbf3
Merge branch 'fix1037' into fix1038
...
# Conflicts:
# docs/modding.md
2026-08-10 14:12:21 -04:00
bryanthaboi
e74beec32d
Merge pull request #970 from swuff-star/modded-evo-item
...
add modding support for custom item effects
2026-08-10 14:09:23 -04:00
bryanthaboi
b52d183dba
Merge pull request #1024 from AverageConsumer/feature/semantic-pc-list-kinds
...
Mod API: expose semantic PC list kinds
2026-08-10 14:09:01 -04:00