105 Commits

Author SHA1 Message Date
Retnuhytnuob c1818185d6 Memory consts, Arrow Ref Naming, BgLayer tilemap correction, Misc fixes (#268)
Adds constants for the address and memory size of the VRAM data for various modes.

Redumped/named some graphics. (pika kickbacks, 1 up delivery/life digit/kyogre)

BG tilemaps (and files) to match their correct layer, rather than their sequence in the board file.
files/variables related to the pika kickback tiles.
se_ruby_bumper_hit -> se_bumper_hit (used for bumpers on both boards)
scoreOverlayActive -> cutsceneBackdropBarActive (context correction)
ballLaunchSpeed -> prevScrollYTileIx (usage has been traced)
scrollEffectY - scrollEffectYpx (defines precision scale)
shopSignFrame -> sapphireShopSignFrame (narrowing scope)
catchHoleTileVariant -> sharpedoNextTilelIx (clarity for which catch hole)
bossVulnerable -> bossNextFrameId (not just vulnerability related; general animation)
pauseScoreOverlayActive -> pauseCutsceneBackdropBarActive. (Whether or not there is a cutscene bar active when the pause button is pressed - That bar blacks out)
savedScoreOverlayActive -> savedcutsceneBackdropBarActive (as with previous entry)
gPokemonNameDisplayGfx -> gMartEvoForegroundMenuUx_Gfx (Name does end up drawn on that display, but it has a larger context than just the name)
2026-09-27 00:58:24 -05:00
Retnuhytnuob 274ab00a8b Convert the 0x06... range to practical forms; mode lamp naming (#265)
Adds some define macro for specifying an address in the Board/Object VRAM space, indexed by the Block, Row, Col
Documents the usage of the block 2 + 6 lines of block 3, with a 'modulused crosssection of the board', and a tilemap that draws those in the correct color, for the section where the camera is. (this also explains the 'wrapping, with wrong colors' if viewing the BG layer 3.)
Adds a define macro for addressing with the 'board wrapped' memory content, so that the tile reads as its board relative position, rather than its vram memory position.
Applies macro in place of memory address, when working with the VRAM data.

Resolves #224
2026-09-17 00:21:56 -05:00
Retnuhytnuob d55c2eb214 Consts for Bonus Loop, remaining board element states (#263)
Helper macros:
* BoardIn/NotInActivityMobe
* Start Of Even Bonus loop & RayquazaCatchChanceTrip

States:
* Bonus stage loop
* Sapphire Shop Gate (plusle/minun) & index consts + shock wall anim state
* Spoink Launcher
* Makuhita
* Seedot
* Zigzagoon
* Pelipper
* Nuzleaf
2026-09-11 21:19:07 -05:00
Retnuhytnuob 465d69bdac BoardProc naming, EOB summary consts, Collision type consts / params (#261)
Adds switch consts for Collision:

BoardCollisionType, CollisionBounceBehaviorType, CollisionResolutionState
Also names some input/output params for collision functions.
Renames BoardProcess#[a/b] functions, to reflect what that phase does.
Adds enum vals for the CurrentBoardProcPairs array indexing

Adds switch consts for End of Ball Bonus phases, debug modes, Tilt Direction handling, Return location from bonus boards, demo variants

Now uses consts for the number of dex lines/characters per line.
2026-09-11 21:10:14 -05:00
Retnuhytnuob c9335f5e6e Hatch state cleanup (enums, var naming), CatchTileBurst Phases (#262)
State Enums for:
* CatchTileBurstPhase
* EggAnimationPhase
* CyndaquilPositions
* HatchMachineStates
2026-09-11 21:08:29 -05:00
Retnuhytnuob 28248ed6a4 Resplit Spheal Results graphic, helper for summary tile lookup, and magic number const replacement (#260)
* active fx type

* flipper and proc step documentation

* resplit spheal summary graphics

* helper function
2026-09-08 21:09:29 -05:00
Retnuhytnuob 95fdbfaeea Flipper consts, FX sequence consts, document the per frame proc indexes (#259)
* active fx type
* flipper and proc step documentation
2026-09-05 21:26:29 -05:00
Retnuhytnuob f263794b19 Palette_Mappings in Rom file 2026-09-04 22:06:27 -05:00
Retnuhytnuob 4f1c19c7ce Pal IX consts for main boards 2026-09-04 01:35:42 -05:00
Retnuhytnuob 5b1b8d9c08 Add consts for pal_IX 2026-09-03 21:37:58 -05:00
Retnuhytnuob d44a615136 Naming for Sprite Groups / sprite sets for bonus field select and ereader 2026-08-15 02:48:31 -05:00
Retnuhytnuob edbfcb221e Merge branch 'master' into match-render-high-score-sprites 2026-08-09 14:57:00 -05:00
Retnuhytnuob adc7a106ae Ereader text, overlapping array cleanup/finish dump, moved graphic optimizations back out from graphics_rules.mk files. 2026-08-08 02:13:57 -05:00
Cyphgirl 14adedccac Simplify RenderHighScoreSprites match: 5 asm barriers -> 3
Pin spriteGroup1_ to r4 with an explicit register variable, which lets two
of the five asm("") barriers go. The target keeps two redundant pointer
copies in its entry block (adds r4, r6, #0 and mov r5, sl); the pin is
enough to keep the first one alive, so the alias1 launder and the oamData
launder are no longer needed. The remaining three barriers protect the
spriteGroup2_ copy, which cannot also be pinned -- the target reuses r5 as
a scratch register once that alias dies, and a pin would reserve it for the
whole function. Three is a hard floor: no configuration with two or fewer
barriers matches.

Also drop the contrived independent re-derivation. spriteGroup2_ =
spriteGroup2 now matches, where it previously required
= &gMain.spriteGroups[1], so the function no longer re-derives a pointer it
already has. Declarations follow RenderPokedexSprites' house style: int i
first, function-scope oamData and spriteSet temps rather than per-branch
copies, and the group pointer as LoadSpriteSets' third argument, as
pokedex.c and field_select.c both do.

Name the sprite group indices via constants/sprite_groups.h, adding the
missing SG_HIGH_SCORE_PRESS_START_0/1. spriteGroup1 and spriteGroup2 are
the page navigation arrows, not page icons -- confirmed by their positions
at baseX 220 and 4, and matching the right/left arrows in the GBC
predecessor's high score screen.

make compare OK; RenderHighScoreSprites stays instruction-exact
(words=0, insns=477, 18-word literal pool).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 21:38:43 -04:00
Retnuhytnuob 8da1fa1551 bonus score 2026-07-31 21:32:01 -05:00
Retnuhytnuob ef6e7be016 remaining score consts 2026-07-31 21:32:00 -05:00
Retnuhytnuob ba08a59a21 score checkpoint 2 2026-07-31 21:31:59 -05:00
Retnuhytnuob 3be8f808e5 timer defines 2026-07-31 21:28:19 -05:00
Retnuhytnuob 1e49e2f3e0 score display 2026-07-31 21:28:18 -05:00
Retnuhytnuob c37847b6a9 remaining bool true/false consts 2026-07-21 02:20:11 -05:00
Retnuhytnuob 15fe55e04b area portrait base 2026-07-18 20:26:29 -05:00
Retnuhytnuob 99bbbcb580 Merge branch 'spriteGroups' into combined_prs 2026-07-04 01:59:51 -05:00
Retnuhytnuob 4cb3fccc52 Merge branch 'fieldCollision' into combined_prs 2026-07-04 00:34:37 -05:00
Retnuhytnuob 3a742399e4 name remaining sounds 2026-07-04 00:10:52 -05:00
Retnuhytnuob 4b13fa85dd gShopItemData usage 2026-07-01 03:09:40 -05:00
Retnuhytnuob a447ac0dd0 30 SE remaining 2026-07-01 02:04:40 -05:00
Retnuhytnuob 237b742126 additional SE naming 2026-07-01 01:31:21 -05:00
Retnuhytnuob e3555b3cad unused SEs 2026-06-06 23:28:13 -05:00
Retnuhytnuob 524b2f1751 remaining spheal, totodile egg delivery, high score 2026-06-06 22:54:46 -05:00
Retnuhytnuob fa0c71203f spheal and rayquaza SE naming 2026-06-06 21:58:53 -05:00
Retnuhytnuob 8e76fd65e0 emptys 2026-06-05 02:59:57 -05:00
Retnuhytnuob 7e64aa1fb9 kecleon, groudon, kyogre SEs 2026-06-05 02:36:44 -05:00
Retnuhytnuob bce9d8501e sapphire/kecleon trigger consts 2026-06-01 03:49:53 -05:00
Retnuhytnuob 1d633482cf big checkpoint 2026-06-01 02:31:46 -05:00
Retnuhytnuob 4d87510ada board collision var names 2026-05-31 21:20:50 -05:00
Retnuhytnuob fc9d2e8f0f timerMode 2026-05-30 05:21:30 -05:00
Retnuhytnuob cefc7d2026 input array and pika coverage consts 2026-05-30 04:32:28 -05:00
Retnuhytnuob c0b3b6c35b remaining sapphire SGs 2026-05-30 02:07:05 -05:00
Retnuhytnuob 75b9f585bd Remaining Ruby Board SGs 2026-05-30 00:41:10 -05:00
Retnuhytnuob 8fe5ec5f37 placeholders for board specific graphic consts 2026-05-29 02:15:35 -05:00
Retnuhytnuob 1b3cb90a43 remaining field sprite groups 2026-05-29 01:13:12 -05:00
Retnuhytnuob e77f216190 SpriteGroups through 42 2026-05-28 22:54:30 -05:00
Retnuhytnuob b5a4a5b117 Ruby Board through 22 2026-05-27 02:35:32 -05:00
Retnuhytnuob 2b69474046 checkpoint 2026-05-27 00:59:46 -05:00
Retnuhytnuob 92f06b1562 checkpoint 2 2026-05-25 22:01:35 -05:00
Retnuhytnuob bbb9ba26fd checkpoint 1 2026-05-25 19:33:37 -05:00
Retnuhytnuob 5f1dbc13b0 pokedex SG 2026-05-25 00:50:59 -05:00
Retnuhytnuob 6e7ea3cf26 bonus spriteset naming, high score spritegroup consts 2026-05-23 01:12:52 -05:00
Retnuhytnuob 6966706e3c title screen sprite groups 2026-05-15 02:00:44 -05:00
Retnuhytnuob e2f0444a67 field select screen 2026-05-15 00:53:19 -05:00