Commit Graph

424 Commits

Author SHA1 Message Date
thibautbus bb568d3283 Read Ruby and Sapphire's Pokédex text from the cart
The native Ruby/Sapphire Pokédex printed the entry's two description
pages from the entries pack, and its labels (?????POKéMON, CRY OF,
REGISTRATION COMPLETE...) and search screen from the chrome packs'
English copies, so a translation never reached them: the Emerald path's
Strings() lookup does not cover the native one, and the search screen's
labels are Emerald's (gText_Dex*), which Ruby and Sapphire's cache does
not have.

The entries pack now keeps the pret label of each description pointer
(DexDescription_Treecko_1 and _2; each edition words its entries in its
own way under the same labels), and the Ruby/Sapphire Pokédex pack the
DexText_ label of each search title and description (DexText_ABC...);
the pack's version moves to 1 and the entries are ready on Ruby and
Sapphire only with their labels, so a cache imported without them is
imported again. The screen reads them from the script cache by those
labels, its own labels by their gDexText_* labels and the category
through Strings(), as Emerald's does, with the pack's copy as the
fallback.

The category is followed by what the unknown-category string has after
its question marks, as only the English cart does
(pokeruby/src/pokedex.c:4228): " POKéMON" in English, "ポケモン" in
Japanese, nothing in the European strings ("?????", "POKéMON ?????"),
whose carts print the category alone.

The Japanese size comparison row is a suffix ("の おおきさくらべ"), so
the screen prints the player's name before it.
2026-10-06 22:27:57 +02:00
thibautbus b5988d4654 Expand Ruby and Sapphire's placeholders from the script cache
The runtime expanded Ruby and Sapphire's {EVIL_TEAM}, {GOOD_LEADER},
{VERSION}, {RIVAL} and {KUN} (and the other version-dependent names)
from text/placeholders.lua, the values the extractor reads from the US
cart, so a translation never reached them: the team leaders stayed MAXIE
and ARCHIE, the rival MAY or BRENDAN, the version RUBY or SAPPHIRE, and
the Japanese honorific empty. Each value is a cart string the script
cache also holds under its pokeruby label (gExpandedPlaceholder_Maxie,
_May, _Ruby, _Kun...); the placeholders now read it from there, with the
extract's value as the fallback, the way Emerald's do.

The labels are defined once, in text_placeholders_extract.lua
(rsSymbols, the evil and good teams swapped by edition), and both the
Ruby/Sapphire import and the message box read them from there.
2026-10-06 22:27:41 +02:00
bryanthaboi 6c9e395a06 CLOSES #2693, CLOSES #2697, CLOSES #2698, CLOSES #2699, CLOSES #2701, CLOSES #2702, CLOSES #2703, CLOSES #2705, CLOSES #2706, CLOSES #2707, CLOSES #2709, CLOSES #2710, CLOSES #2711, CLOSES #2712, CLOSES #2714
CLOSES #2693, CLOSES #2697, CLOSES #2698, CLOSES #2699, CLOSES #2701, CLOSES #2702, CLOSES #2703, CLOSES #2705, CLOSES #2706, CLOSES #2707, CLOSES #2709, CLOSES #2710, CLOSES #2711, CLOSES #2712, CLOSES #2714
2026-10-06 13:43:11 -04:00
bryanthaboi 927f3ecc6c fixes to id sync and also box 2026-10-06 11:00:16 -04:00
bryanthaboi 5434569119 ID sync 2026-10-05 20:46:08 -04:00
bryanthaboi b305652fdb Store Gen 3 cache pixel data deflated and write compressed PNGs
Same decoded pixels, about 60 percent smaller caches. Bumps the FireRed/LeafGreen, Emerald and Ruby/Sapphire cache versions.
2026-10-05 08:00:07 -04:00
bryanthaboi c6ea960ed2 Place object sprites by their ROM subsprite offsets and drop the sailor stand-ins for the Seagallop and SS Anne 2026-10-05 05:43:14 -04:00
bryanthaboi 6774889505 Add Pokemon Ruby and Sapphire
Ruby and Sapphire 1.0/1.1/1.2 import, play, save, convert and link. Gen 3 shaders, braille, weather and reflection parity, link room players, RS custom carts and launcher support, Gen 3 link fixes for Emerald and FireRed/LeafGreen.
2026-10-05 05:07:42 -04:00
bryanthaboi 46d255d18c CLOSES #2639, CLOSES #2640, CLOSES #2642, CLOSES #2643 2026-10-03 05:49:13 -04:00
bryanthaboi dc0756c236 CLOSES #2632, CLOSES #2634, CLOSES #2637, CLOSES #2638 2026-10-02 22:57:54 -04:00
bryanthaboi a2b22e7190 Merge branch 'dev' of https://github.com/bryanthaboi/gen1recomp into dev 2026-10-02 16:03:51 -04:00
bryanthaboi 211f09ff00 launcher auto index 2026-10-02 15:19:41 -04:00
Code-Grub 8899f4dca6 fix(launcher): dead rows no longer starve FIND MODS thumbnails
_queueFindEnrichment allows two thumbnail starts per frame, but it counted a
row against that allowance even when _startFindThumb ignored it. A row already
resolved to "failed", or with no thumbnail at all, is ignored there, so two such
rows above a card spent the allowance every frame and the card never got a
download. It stayed on its MOD placeholder (no spinner) for the whole session.

Skip rows that have already resolved, so only a row that actually starts a
download is counted. Adds a regression test that fails without the change.
2026-10-02 14:36:40 -04:00
bryanthaboi 178cbf1bc4 CLOSES #2578, CLOSES #2617, CLOSES #2623 2026-10-02 13:52:21 -04:00
bryanthaboi d5ac9d623e new intro spooko 2026-10-02 11:04:23 -04:00
bryanthaboi 093f2fe0da performance enhancements 1 and decoration names 2026-10-02 08:54:15 -04:00
bryanthaboi d555a24693 further save editor yum 2026-10-02 06:21:06 -04:00
bryanthaboi d0e66aebd7 follow up 2026-10-01 19:14:51 -04:00
bryanthaboi 9b7f3188b1 big save fix energy 2026-10-01 17:30:52 -04:00
bryanthaboi 91dcc62324 Update RomImporter.lua 2026-10-01 11:58:16 -04:00
bryanthaboi 19df78292a tiny update 2026-09-30 17:59:39 -04:00
bryanthaboi 690b5a61e6 more 2026-09-30 17:33:36 -04:00
bryanthaboi 1de631d123 Update LauncherView.lua 2026-09-30 16:50:03 -04:00
bryanthaboi 8c5d877bb9 various fixes 2026-09-30 15:47:06 -04:00
bryanthaboi 6806d5a235 CLOSES #2577, CLOSES #2573, CLOSES #2572 2026-09-30 13:54:23 -04:00
bryanthaboi 932a075496 CLOSES #2564, CLOSES #2570 2026-09-30 12:18:24 -04:00
bryanthaboi a5094c8264 Merge pull request #2565 from 1Jamie/grandpas-garage 2026-09-29 20:28:55 -04:00
bryanthaboi f409866cc0 fix mod update failing to write files after old tree is removed 2026-09-29 20:07:37 -04:00
1jamie 655000bfac fix(emerald): OAM software subpriority, duplicate boat cleanup, and start menu size 2026-09-29 17:44:38 -05:00
bryanthaboi d8bce958ec spooky 2026-09-29 11:14:08 -04:00
bryanthaboi ebd4985cc0 CLOSES #2524, CLOSES #2540, CLOSES #2541, CLOSES #2542 2026-09-29 10:08:21 -04:00
bryanthaboi a739e70c9e update 2026-09-28 20:37:29 -04:00
bryanthaboi 8450c8f107 CLOSES #2515, CLOSES #2516, CLOSES #2518, CLOSES #2519, CLOSES #2521, CLOSES #2522, CLOSES #2523, CLOSES #2525, CLOSES #2526
CLOSES #2515, CLOSES #2516, CLOSES #2518, CLOSES #2519, CLOSES #2521, CLOSES #2522, CLOSES #2523, CLOSES #2525, CLOSES #2526
2026-09-28 14:33:06 -04:00
bryanthaboi 3d58e7bfe3 allow preses through video, and reimport while playing 2026-09-28 11:07:11 -04:00
bryanthaboi 193f350db0 more perf updates 2026-09-28 10:18:27 -04:00
bryanthaboi d4899e48b0 ok o ok 2026-09-28 09:13:34 -04:00
bryanthaboi cfc9bcb460 Update RomExtractorGen3.lua 2026-09-28 08:09:24 -04:00
bryanthaboi 706a025222 AUDIBLE 2026-09-28 06:57:18 -04:00
bryanthaboi ff9cc6d172 YELLOWCARD 2026-09-28 06:45:52 -04:00
bryanthaboi 690f0cd9a1 TOUCHDOWN 2026-09-27 16:07:31 -04:00
bryanthaboi fab224458f minor fixes 2026-09-26 11:24:24 -04:00
1jamie 76ede1171e feat: Gen 3 save editor, GBA extraction resilience, and UI/asset polish
- Save Editor (Gen 3):
  - Added full support for EV, IV, Nature, Ability, and Ribbons editing for Gen 3 Pokémon.
  - Implemented stat calculations, personality-based nature derivation, and Gen 3 save data structures.
  - Added comprehensive unit test suite in tests/save_editor_gen3_ev_iv_tests.lua.

- GBA Extraction & Graphics:
  - Added zero-copy ARM-safe ROM accessor and fast LZ77 string decompression.
  - Fixed bag chrome decompression string-buffer indexing preventing solid-color renders.
  - Fixed TM Case HM badge tile offset and palette mapping.
  - Added builtin moves fallback in src/core/game3/battle/builtin_moves.lua.
  - Improved parallel extraction resilience, desktop fallback search paths, and prefix handling.

- Android & Launchers:
  - Added dynamic high-res app launcher shortcuts and color palettes for all supported games.
  - Updated Android icon generator and intent dispatch handlers.
2026-09-25 16:20:40 -05:00
bryanthaboi c65fcf939d battle speed 2026-09-25 14:20:34 -04:00
bryanthaboi 389184789f import picker for custom cart 2026-09-25 13:18:59 -04:00
bryanthaboi 26a7979ac1 splash 2026-09-25 11:32:35 -04:00
bryanthaboi b1216ad68a splash screen 2026-09-25 10:40:32 -04:00
bryanthaboi a685f16e00 updates to online 2026-09-25 10:28:21 -04:00
bryanthaboi f8c95b8e8a CLOSES #2347, CLOSES #2384, CLOSES #2456, CLOSES #2460, CLOSES #2461, CLOSES #2468, CLOSES #2470, CLOSES #2471, CLOSES #2472, CLOSES #2473 2026-09-25 07:11:46 -04:00
bryanthaboi 72a17b27dd CLOSES #2444 2026-09-24 08:39:43 -04:00
bryanthaboi d51bdaff72 CLOSES #2441, CLOSES #2445, CLOSES #2448, CLOSES #2450 2026-09-24 06:24:54 -04:00