Commit Graph

626 Commits

Author SHA1 Message Date
bryanthaboi dd5d394f84 Merge pull request #2680 from thibautbus/fix/game3-name-order-in-cart-text
Join names to translated cart text the way the European carts do
2026-10-05 11:33:59 -04:00
bryanthaboi c4a7d2e114 Merge pull request #2679 from thibautbus/fix/frlg-honorific-placeholder
Print FireRed's honorific after the player's name
2026-10-05 11:23:37 -04:00
bryanthaboi 4d41d4b9a6 Merge pull request #2681 from thibautbus/fix/menu-labels-black-without-title
Draw a menu's choices in black when it has no title
2026-10-05 11:23:34 -04:00
bryanthaboi 72f2294d8d CLOSES #2649, CLOSES #2650, CLOSES #2652, CLOSES #2653, CLOSES #2654, CLOSES #2657, CLOSES #2658, CLOSES #2659, CLOSES #2660, CLOSES #2662, CLOSES #2664, CLOSES #2665, CLOSES #2666, CLOSES #2669, CLOSES #2671, CLOSES #2672, CLOSES #2674, CLOSES #2676, CLOSES #2682, CLOSES #2683, CLOSES #2684, CLOSES #2685, CLOSES #2686, CLOSES #2687, CLOSES #2688, CLOSES #2689
CLOSES #2649, CLOSES #2650, CLOSES #2652, CLOSES #2653, CLOSES #2654, CLOSES #2657, CLOSES #2658, CLOSES #2659, CLOSES #2660, CLOSES #2662, CLOSES #2664, CLOSES #2665, CLOSES #2666, CLOSES #2669, CLOSES #2671, CLOSES #2672, CLOSES #2674, CLOSES #2676, CLOSES #2682, CLOSES #2683, CLOSES #2684, CLOSES #2685, CLOSES #2686, CLOSES #2687, CLOSES #2688, CLOSES #2689
2026-10-05 11:06:01 -04:00
bryanthaboi 4e56874725 Make test.sh --quick a sub-minute smoke run and move the old pass to --standard 2026-10-05 08:07:00 -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 5bee513600 Keep scripted player steps at walking speed while biking so Mr. Briney's boat stays on camera 2026-10-05 06:28:37 -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 586d56e6c7 Merge remote-tracking branch 'origin/dev' into dev 2026-10-05 05:07:47 -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
thibautbus 5528a92a59 Draw a menu's choices in black when it has no title
Since v0.3.29, Menu:draw sets the black text color only inside its title branch, where the title's white backing is drawn. A menu without a title, such as the Red/Blue/Yellow main menu (CONTINUE, NEW GAME, OPTION), printed its choices in whatever color was current: the white the box's fill and the previous frame leave behind. Tile glyphs are black on transparent and come out black whatever the color, so English never showed it, but a translation's TTF font draws in the current color and printed every choice white on white; only the tile cursor stayed visible.

The choices are now drawn after an unconditional black, as before v0.3.29, with or without a title.
2026-10-04 21:56:46 +02:00
thibautbus f26fe452e5 Fill a European row's name placeholder instead of prepending the name
Two screens print a name followed by a cart string, the way the US code builds them: the nickname screen's title (the species and gText_PkmnsNickname) and a secret base's name (the owner and gText_ApostropheSBase). The French, Italian and Spanish rows name it where their language puts it, through STR_VAR_1 ("Surnom de [STR_VAR_1]?", "BASE DE [STR_VAR_1]"), and their code fills the placeholder (pret pokeemerald multi-language, src/naming_screen.c:1746, src/secret_base.c:732); the German rows do the same ("Kosename f. [STR_VAR_1]"). A French nickname screen read "POUSSIFEUSurnom de ?".

Both now render the row with the name as STR_VAR_1 and use that text when the row prints it, a mod's catalog entry for the English source included; a row without the placeholder (FireRed's US and Japanese titles, the Japanese secret base row) keeps the name in front. English and Japanese text is unchanged.
2026-10-04 20:32:22 +02:00
thibautbus 6b8e275908 Print a European two-stage stat change once
A stat that rises or falls by two stages prints the cart's "sharply" or "harshly" row followed by its "rose!" or "fell!" row, as the US code buffers them. The French, Italian and Spanish rows for the two-stage change are the whole change ("monte beaucoup!", "sale di molto!", "subió mucho"), and their code skips the string that follows (pret pokeemerald multi-language, src/battle_message.c:4617); the German rows have the same shape ("steigt stark!"). A French battle printed "monte beaucoup!augmente!".

Secondary.sharpChange keeps the plain row only after a "sharply" or "harshly" row that ends with a space, as the US and Japanese ones do ("sharply ", "ぐーんと "). The move effects and the held items that raise a stat by two use it.
2026-10-04 20:32:21 +02:00
thibautbus f68358fdce Put a translated wild or foe word after the name when the cart does
The battle text joins a foe's name to the cart's sText_WildPkmnPrefix or sText_FoePkmnPrefix the way the US code does, word first. The French, Italian and Spanish carts write those rows to follow the name (" sauvage", " salvaje", " selvatico") and append them (pret pokeemerald multi-language, src/battle_message.c:4042 and :4649), and the German row has the same shape (" (Wild)"), so a French battle read " sauvageZIGZATON utilise RUGISSEMENT!".

BattleText.withMonPrefix joins the two in the row's order: a row that starts with a space follows the name, and the US and Japanese rows ("Wild ", "やせいの ") still go first. Both the battle string placeholder (B_ATK_NAME_WITH_PREFIX and the other WITH_PREFIX codes) and the buffered name (State.prefixedName) use it, in FireRed/LeafGreen and Emerald alike.
2026-10-04 20:32:21 +02:00
thibautbus d639aa0cd3 Print FireRed's honorific after the player's name
FireRed's {KUN} placeholder always expanded to nothing: the frlg dialect has no placeholder source, so the text IR dropped it. On the cart it is gExpandedPlaceholder_Kun or _Chan by the player's gender (pokefirered/src/string_util.c:386), empty on the US cart and くん/ちゃん on the Japanese one.

The frlg dialect now names those two labels, and {KUN} prints the script cache's string for the player's gender, so a translation's text override for either label reaches every line that uses the placeholder. With the cache not loaded, or both strings empty as on the US cart, it still prints nothing and never asks for the gender. A label whose own text holds {KUN} expands it to nothing rather than recursing. Emerald keeps reading {KUN} from its placeholders.
2026-10-04 13:00:46 +02:00
1jamie a39efc30f4 feat(game3): add GBA shoulder buttons, touch overlay editor support, and bundled gba_purple skin 2026-10-03 15:50:39 -05:00
bryanthaboi 340e2567ec CLOSES #2644, CLOSES #2645 2026-10-03 06:57:16 -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 cb02aebd01 Update launch_update_mods_bug2037.lua 2026-10-02 16:09:07 -04:00
bryanthaboi a2b22e7190 Merge branch 'dev' of https://github.com/bryanthaboi/gen1recomp into dev 2026-10-02 16:03:51 -04:00
bryanthaboi 362df3ee2a chopped heads 2026-10-02 16:03:49 -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 09445ab6b8 CLOSES #2588 2026-10-02 13:58:59 -04:00
bryanthaboi 178cbf1bc4 CLOSES #2578, CLOSES #2617, CLOSES #2623 2026-10-02 13:52:21 -04:00
bryanthaboi 22586020ff maybe windows fix 2026-10-02 11:36:59 -04:00
bryanthaboi c079233819 major enhancement 2026-10-02 09:48:20 -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 7d5fbd5754 CLOSES #2604, CLOSES #2605, CLOSES #2607, CLOSES #2608, CLOSES #2610, CLOSES #2611, CLOSES #2612, CLOSES #2613 2026-10-01 18:50:48 -04:00
bryanthaboi 9b7f3188b1 big save fix energy 2026-10-01 17:30:52 -04:00
bryanthaboi 78916ef416 CLOSES #2561, CLOSES #2593, CLOSES #2596, CLOSES #2597 2026-10-01 08:27:27 -04:00
bryanthaboi 44723376b8 CLOSES #2555, CLOSES #2558, CLOSES #2560, CLOSES #2562, CLOSES #2563, CLOSES #2581, CLOSES #2583, CLOSES #2584, CLOSES #2585, CLOSES #2589, CLOSES #2590, CLOSES #2592 2026-10-01 07:26:48 -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 370aaf4e1f Merge branch 'dev' of https://github.com/bryanthaboi/gen1recomp into dev 2026-09-30 12:18:25 -04:00
bryanthaboi 932a075496 CLOSES #2564, CLOSES #2570 2026-09-30 12:18:24 -04:00
Shane McGovern 795276935c Performance pass: cut per-frame allocations and draw calls, fix frame-rate and batch bugs
- Shared render: cache Font encode/width, skip unchanged palette/ShaderFX
  uniform sends, reuse quads and scratch tables, cheaper sprite palettes
- Mods: fast path for loaded requires, memoized sandbox verdicts, fewer
  Hooks:call allocations, drop emptied hook chains
- Audio: bulk PCM writes, cry/SFX prewarm on the worker, sliced sync
  fallback, cached Gen 3 SE sources
- Gen 1: per-frame SGB battle palettes, hoisted overworld FX, cached menus
- Gen 2: numeric attr grid, indexed anim cells, entity culling, memoized
  cache keys, palette shader set once per tile run
- Gen 3: reuse native tile batches, per-cell metatile rebuilds, partial
  FRLG tile anim uploads, near-view ghost ticking, packed FRLG font atlas
- Fixes: emergency quit timer, Gen 3 batch regression and stale sprite
  index, trainer card texture leak, missing pic re-reads, anim tint cache,
  Crystal ghost grass overdraw, refresh-rate dependent counters, pad swap
2026-09-30 14:53:18 +00:00
bryanthaboi a5094c8264 Merge pull request #2565 from 1Jamie/grandpas-garage 2026-09-29 20:28:55 -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 bf45bb51d6 CLOSES #2557 2026-09-29 16:00:57 -04:00
bryanthaboi f99d59f8f6 CLOSES #2548 2026-09-29 13:30:13 -04:00
bryanthaboi 8d60fe8c02 Update launcher_patch_notes.lua 2026-09-29 11:28:21 -04:00
bryanthaboi 9fb3c529e7 couple tiny fixes 2026-09-29 10:38:20 -04:00
bryanthaboi ebd4985cc0 CLOSES #2524, CLOSES #2540, CLOSES #2541, CLOSES #2542 2026-09-29 10:08:21 -04:00
bryanthaboi 6d224e7d89 Merge pull request #2545 from 1Jamie/grandpas-garage 2026-09-28 23:21:08 -04:00
1jamie fad767ffc0 test: remove redundant generic test bundle in favor of modular test suites 2026-09-28 22:09:06 -05:00
1jamie 26506b0677 fix(emerald): fix party TM descriptions, summary 5th move, and UI issues
- Fix Emerald party menu TM learnability descriptions (sDescriptionStringTable indexing)
- Fix summary menu 5th move slot display and move learning in RSE
- Fix pause/start menu viewport scrolling and scroll arrow indicators
- Fix berry planting bag pocket routing and screen veil fading in Emerald
- Fix Route 101 Birch rescue positioning and truck sequence unfreeze
- Add comprehensive regression tests for all fixes
2026-09-28 22:03:03 -05:00
bryanthaboi a739e70c9e update 2026-09-28 20:37:29 -04:00