aboutsummaryrefslogtreecommitdiffstats
path: root/home (follow)
Commit message (Collapse)AuthorAgeFilesLines
* explore: rewrite as an instant screen-paging cameraAsh Ketchum6 days2-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.
* explore: pivot to noclip free-roam cameraAsh Ketchum7 days1-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).
* menu: SL0P MENU scaffolding with WARP as a submenuAsh Ketchum7 days1-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)
* warp: SELECT opens quick-warp (B1) + relocate intro-skip to PlayIntroAsh Ketchum7 days2-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.
* fastboot: skip intro/title/menu and autoload save if one existsAsh Ketchum7 days1-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.
* Identify `wPikachuSpawnStateFlags` and `wPikachuMapScriptFlags` bits, and ↵Yoann Fievez2026-06-242-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
* Merge branch 'master' of https://github.com/pret/pokereddannye2026-01-1719-120/+124
|\
| * Use macros to enforce "hidden object" constraints, and rename them to ↵Rangi2026-01-072-9/+9
| | | | | | | | "hidden events" (#559)
| * Use macros to enforce "missable/hide/show object" constraints, and rename ↵Rangi2026-01-072-3/+3
| | | | | | | | them to "toggleable objects" (#557)
| * Comment more unreferenced local labels (#550)Narishma-gb2025-12-1512-48/+52
| |
| * Update `StatusScreen`, add `*_STATS_BOX` constants (#546)Narishma-gb2025-12-011-2/+2
| |
| * Use more Pokemon data constants, create MOVE_NAME_LENGTH (#543)Narishma-gb2025-11-272-2/+2
| |
| * Avoid magic numbers for most `CopyData` calls (#542)Rangi2025-11-251-1/+1
| |
| * Use `ld_hli_a_string` macro to make byte-by-byte strings more obvious (#540)Rangi2025-11-231-5/+1
| |
| * Use more hardware and graphics constants (#532)Narishma-gb2025-11-187-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`.
* | Merge branch 'master' of https://github.com/pret/pokereddannye2025-11-1211-88/+88
|\|
| * Use features of RGBDS 1.0.0 (#537)Rangi2025-11-1211-77/+77
| |
| * Clean up home/copy2.asm (#531)PokefanMarcel2025-09-101-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`
* | Misc. naming and cleanup (#139)Narishma-gb2025-09-105-21/+20
| | | | | | | | | | | | | | | | | | * Name some printer/diploma routines * Name `wd434` * Name `NAME_LENGTH_JP` * Rename `callabd`/`calladb` to `farcall`/`callfar`
* | Merge branch 'master' of https://github.com/pret/pokereddannye2025-09-064-22/+9
|\|
| * Label and constant cleanup (#528)Narishma-gb2025-09-035-23/+10
| | | | | | | | | | * Label cleanup, add some constants instead of raw numbers * Rename load/save game functions to be more explicit
* | Fix .tilemap file extension, fix some typos (#138)Narishma-gb2025-09-062-2/+1
| |
* | Merge branch 'master' of https://github.com/pret/pokereddannye2025-07-0230-119/+119
|\|
| * Use combined hardware constantsRangi422025-06-304-9/+9
| |
| * Replace hardware_constants.asm with hardware.inc (#511)Rangi2025-06-3032-149/+149
| |
| * Fix typosdannye2025-06-032-3/+3
| |
* | Improve IsSurfingPikachuInParty documentation (#128)Linus Unnebäck2025-05-101-4/+5
| |
* | Name Func_07c4/StopBikeSurf (#118)Linus Unnebäck2025-05-101-2/+2
| |
* | Merge branch 'master' of https://github.com/pret/pokereddannye2025-05-101-2/+2
|\|
| * Use constants in `PrintBCDNumber` calls (#503)Narishma-gb2025-04-081-2/+2
| |
* | Merge branch 'master' of https://github.com/pret/pokereddannye2025-01-3010-60/+60
|\|
| * Consistently refer to CGB, not GBC (#491)SatoMew2025-01-301-4/+4
| |
| * Consistently capitalize `ASSERT` directives (#489)Rangi2025-01-282-3/+3
| |
| * Miscellaneous cleanup (#488)Rangi2025-01-283-3/+7
| | | | | | Co-authored-by: SatoMew <SatoMew@users.noreply.github.com>
| * Correct wTileMapBackup declared space (#487)Engezerstorung2025-01-281-18/+14
| |
* | Use spaces around operatorsRangi422024-12-251-4/+4
| |
* | Merge branch 'master' of https://github.com/pret/pokeredRangi422024-12-252-5/+5
|\|
| * Remove redundant parenthesesRangi422024-12-162-5/+5
| |
* | Merge branch 'master' of https://github.com/pret/pokereddannye2024-10-092-3/+3
|\|
| * `FreezeEnemyTrainerSprite` -> `SetEnemyTrainerToStayAndFaceAnyDirection`Vortyne2024-10-072-3/+3
| |
* | Rename off-by-one wram labelsdannye2024-09-293-18/+18
| |
* | Identify more bit flags (#119)Sylvie2024-09-292-2/+2
| | | | | | | | | | * Identify more bit flags * Bit serves dual use in debug mode
* | Merge branch 'master' of https://github.com/pret/pokereddannye2024-09-2532-345/+353
|\|
| * Identify `wCurrentMapScriptFlags` bits (#467)Sylvie2024-09-242-6/+6
| |
| * Identify hardware register bits (#469)Sylvie2024-09-243-7/+7
| |
| * Identify more bit flags (#465)Sylvie2024-09-244-10/+15
| | | | | | | | | | * Identify more bit flags * Space
| * Identify more flag bits (#464)Sylvie2024-09-238-38/+38
| |
| * Identify remaining uses of `wd0b5` and `wd11e` (#463)Sylvie2024-09-186-38/+38
| |
| * Split `hSpriteIndexOrTextID` into `hSpriteIndex` and `hTextID` (#462)Sylvie2024-09-186-20/+21
| | | | | | Also identify `wPPUpCountAndMaxPP`
| * Identify wcf91 as wCurPartySpecies, wCurItem, and wCurListMenuItem (#457)Sylvie2024-08-047-19/+21
| |