aboutsummaryrefslogtreecommitdiffstats
path: root/home (unfollow)
Commit message (Collapse)AuthorFilesLines
12 daysexplore: rewrite as an instant screen-paging cameraAsh Ketchum2-15/+2
Per feedback, EXPLORE should page whole screens on button presses (instant redraw), not move/walk the character. Ripped out the walk-engine approach entirely -- reverted the CollisionCheckOnLand noclip hook and the OverworldLoop simulated-joypad paging hook, and removed both helpers. EXPLORE is now a self-contained camera loop that renders straight from the map block buffer: - view pointer = wOverworldMap + (by+1)*stride + bx (LoadCurrentMapView) - a d-pad press shifts the camera coords by ~one screen and re-renders - at a map edge it crosses to the connected map using that connection's alignment offset (or clamps if none), LoadMapData + re-render - B restores the origin view + returns to the SL0P menu No character walking, sprites hidden for a clean camera. Verified: within-map paging steps a screen at a time, seams cross with correct offsets (Pallet -> Route1 -> Viridian), 25-page random stress with no corruption, and normal gameplay resumes after exit.
12 daysexplore: pivot to noclip free-roam cameraAsh Ketchum1-4/+5
Ground-truth from render_overworld.py showed Kanto is ONE seamless world joined along shared edges with per-connection offsets -- so a map-by-map browser is the wrong model. Replaced it with noclip free-roam that leans on the engine's own player-walk + connection-crossing machinery (which already handles seams/offsets correctly): - wSlopNoclip flag (reused the dead wUnusedObtainedBadges byte at D356, 0 r/w, not unioned, in the saved region -> safe). - CollisionCheckOnLand: 5-byte hook at the top -> when noclip is set, return no-collision. Freed the room in ROM0 by deleting the unreferenced Func_0db5 (dead farcall LoadToggleableObjectData) in LoadMapHeader. - EXPLORE menu entry now just toggles wSlopNoclip and closes the menu, dropping you into the overworld to glide through walls/NPCs/ledges and walk across map connections exactly as the world data defines them. Verified: Pallet -> (walk north through the fences) -> seam-cross into Route 1 at y=35 -> continue north; toggle off restores collision (player blocked).
12 daysmenu: SL0P MENU scaffolding with WARP as a submenuAsh Ketchum1-2/+2
Refactor the flat warp menu into a table-driven top-level SL0P MENU opened by SELECT. Each entry = a name in SlopMenuText + a routine in SlopMenuHandlers; handlers return carry set (a warp was started, exit) or clear (back to the menu). Ships two entries: WARP -> WarpSubmenu (the 13-destination town list) HEAL -> SlopHealParty (restore party HP + clear status), demoing an action Shared open/close display handling (hide sprites, single-space flags, wTileMap push, restore). Add an entry by appending a name+handler and bumping SLOP_MENU_COUNT. (renamed engine/warp_menu.asm -> engine/slop_menu.asm)
12 dayswarp: SELECT opens quick-warp (B1) + relocate intro-skip to PlayIntroAsh Ketchum2-4/+5
- home/overworld.asm: SELECT in the overworld farcalls WarpMenu, then restarts the overworld loop so the fly-warp flags get processed. - engine/warp_menu.asm (new): WarpMenu reuses the fly-warp machinery (wDestinationMap + BIT_FLY_WARP/BIT_USED_FLY). B1 warps to Pallet unconditionally to validate the hook; the real destination menu is next. - Moved the fastboot intro-skip out of home/init.asm into PlayIntro (bank 10) to reclaim ~10 bytes of home ROM0 for the overworld hook. Net boot behavior is unchanged; new-game path still shows the intro.
12 daysfastboot: skip intro/title/menu and autoload save if one existsAsh Ketchum1-0/+4
Three small hooks, all gated on CheckForPlayerNameInSRAM (carry = save present): - home/init.asm: skip 'predef PlayIntro' when a save exists - engine/movie/title.asm (PrepareTitleScreen): jp MainMenu, skipping the title screen (only the boot path hits PrepareTitleScreen; return-to-title paths jp DisplayTitleScreen directly, so they're unaffected) - engine/menus/main_menu.asm (MainMenu): after TryLoadSaveFile, if wSaveFileStatus==2 jp SpecialEnterMap, skipping the CONTINUE menu Exported CheckForPlayerNameInSRAM (:: ) so home/init.asm can farcall it. New game (no save) path is fully preserved. Ship pokeyellow.gbc only; the _DEBUG build overflows home ROM0 by 8 bytes with the init hook.
2026-06-24Identify `wPikachuSpawnStateFlags` and `wPikachuMapScriptFlags` bits, and ↵Yoann Fievez2-13/+13
`PIKAMOVEMENT_*` constants (#158) - Rename `wd471` to` wPikachuSpawnStateFlags`, with `BIT_PIKACHU_SPAWN_*` bits - Rename `wd492` to `wPikachuMapScriptFlags`, with `BIT_PIKACHU_MAP_*` bits - Introduce `PIKAMOVEMENT_*` constants for `ApplyPikachuMovementData` - Refactor `BillsHouse` scripts and Pikachu/Bill movement data
2026-01-07Use macros to enforce "hidden object" constraints, and rename them to ↵Rangi2-9/+9
"hidden events" (#559)
2026-01-07Use macros to enforce "missable/hide/show object" constraints, and rename ↵Rangi2-3/+3
them to "toggleable objects" (#557)
2025-12-15Comment more unreferenced local labels (#550)Narishma-gb12-48/+52
2025-12-01Update `StatusScreen`, add `*_STATS_BOX` constants (#546)Narishma-gb1-2/+2
2025-11-27Use more Pokemon data constants, create MOVE_NAME_LENGTH (#543)Narishma-gb2-2/+2
2025-11-25Avoid magic numbers for most `CopyData` calls (#542)Rangi1-1/+1
2025-11-23Use `ld_hli_a_string` macro to make byte-by-byte strings more obvious (#540)Rangi1-5/+1
2025-11-18Use more hardware and graphics constants (#532)Narishma-gb7-46/+52
- Use `OBJ_SIZE` and `TILE_SIZE` from hardware.inc. - `SPRITESTATEDATA1_LENGTH`, `NUM_SPRITESTATEDATA_STRUCTS` and `TILE_1BPP_SIZE` are used in some places. - Highlight an oversight in `OakSpeech` where several direct MBC bank switches are requested. - Remove redundant comments in home/overworld.asm. - Add unreferenced `FillBgMap` function to avoid a byte of dead code. - Some constants added in wram.asm. - Correctly separate the commented code in `SaveMainData`.
2025-11-12Use features of RGBDS 1.0.0 (#537)Rangi11-77/+77
2025-09-10Clean up home/copy2.asm (#531)PokefanMarcel1-11/+11
* Use `SCREEN_WIDTH`, rename loop, and remove obsolete comment in `ClearScreenArea` * Use `SCREEN_HEIGHT` and `lb` in `CopyScreenTileBufferToVRAM` * Use `SCREEN_AREA` in `ClearScreen`
2025-09-10Misc. naming and cleanup (#139)Narishma-gb5-21/+20
* Name some printer/diploma routines * Name `wd434` * Name `NAME_LENGTH_JP` * Rename `callabd`/`calladb` to `farcall`/`callfar`
2025-09-06Fix .tilemap file extension, fix some typos (#138)Narishma-gb2-2/+1
2025-09-03Label and constant cleanup (#528)Narishma-gb5-23/+10
* Label cleanup, add some constants instead of raw numbers * Rename load/save game functions to be more explicit
2025-06-30Use combined hardware constantsRangi424-9/+9
2025-06-30Replace hardware_constants.asm with hardware.inc (#511)Rangi32-149/+149
2025-06-03Fix typosdannye2-3/+3
2025-05-10Improve IsSurfingPikachuInParty documentation (#128)Linus Unnebäck1-4/+5
2025-05-10Name Func_07c4/StopBikeSurf (#118)Linus Unnebäck1-2/+2
2025-04-08Use constants in `PrintBCDNumber` calls (#503)Narishma-gb1-2/+2
2025-01-30Consistently refer to CGB, not GBC (#491)SatoMew1-4/+4
2025-01-28Consistently capitalize `ASSERT` directives (#489)Rangi2-3/+3
2025-01-28Miscellaneous cleanup (#488)Rangi3-3/+7
Co-authored-by: SatoMew <SatoMew@users.noreply.github.com>
2025-01-28Correct wTileMapBackup declared space (#487)Engezerstorung1-18/+14
2024-12-25Use spaces around operatorsRangi421-4/+4
2024-12-16Remove redundant parenthesesRangi422-5/+5
2024-10-07`FreezeEnemyTrainerSprite` -> `SetEnemyTrainerToStayAndFaceAnyDirection`Vortyne2-3/+3
2024-09-29Rename off-by-one wram labelsdannye3-18/+18
2024-09-29Identify more bit flags (#119)Sylvie2-2/+2
* Identify more bit flags * Bit serves dual use in debug mode
2024-09-24Identify `wCurrentMapScriptFlags` bits (#467)Sylvie2-6/+6
2024-09-24Identify hardware register bits (#469)Sylvie3-7/+7
2024-09-24Identify more bit flags (#465)Sylvie4-10/+15
* Identify more bit flags * Space
2024-09-23Identify more flag bits (#464)Sylvie8-38/+38
2024-09-18Identify remaining uses of `wd0b5` and `wd11e` (#463)Sylvie6-38/+38
2024-09-18Split `hSpriteIndexOrTextID` into `hSpriteIndex` and `hTextID` (#462)Sylvie6-20/+21
Also identify `wPPUpCountAndMaxPP`
2024-08-04Identify wcf91 as wCurPartySpecies, wCurItem, and wCurListMenuItem (#457)Sylvie7-19/+21
2024-07-24Identify wcd6d as wNameBuffer and others (#455)Sylvie4-14/+13
2024-07-16Identify various flag labels and bit constants (#454)Sylvie16-172/+171
2024-06-26Improve documentation of some SRAM routines (#114)SatoMew3-10/+10
2024-06-15Identify some unused WRAM variables (#453)Sylvie3-7/+7
2024-01-03Update to RGBDS 0.7.0 (#447)Rangi2-6/+8
2023-12-23Use BANK("Trainer Sight") to apply to all four possible functions in the ↵Vortyne1-1/+1
"Trainer Sight" section (#444)
2023-11-21Rename pikachu palette packetsdannye1-1/+1
2023-11-20Identify `wSavedCoordIndex` and its other usagesRangi422-2/+2
2023-11-20Add `bigdw` and `dc` data macrosRangi421-9/+9