aboutsummaryrefslogtreecommitdiffstats
path: root/home (follow)
Commit message (Collapse)AuthorAge
* explore: rewrite as an instant screen-paging cameraAsh Ketchum2026-07-15
| | | | | | | | | | | | | | | | | | | 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 Ketchum2026-07-15
| | | | | | | | | | | | | | | | | | | | 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 Ketchum2026-07-15
| | | | | | | | | | | | 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 Ketchum2026-07-15
| | | | | | | | | | | - 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 Ketchum2026-07-15
| | | | | | | | | | | | | | 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-24
| | | | | | | | `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-17
|\
| * Use macros to enforce "hidden object" constraints, and rename them to ↵Rangi2026-01-07
| | | | | | | | "hidden events" (#559)
| * Use macros to enforce "missable/hide/show object" constraints, and rename ↵Rangi2026-01-07
| | | | | | | | them to "toggleable objects" (#557)
| * Comment more unreferenced local labels (#550)Narishma-gb2025-12-15
| |
| * Update `StatusScreen`, add `*_STATS_BOX` constants (#546)Narishma-gb2025-12-01
| |
| * Use more Pokemon data constants, create MOVE_NAME_LENGTH (#543)Narishma-gb2025-11-27
| |
| * Avoid magic numbers for most `CopyData` calls (#542)Rangi2025-11-25
| |
| * Use `ld_hli_a_string` macro to make byte-by-byte strings more obvious (#540)Rangi2025-11-23
| |
| * Use more hardware and graphics constants (#532)Narishma-gb2025-11-18
| | | | | | | | | | | | | | | | | | | | | | | | - 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-12
|\|
| * Use features of RGBDS 1.0.0 (#537)Rangi2025-11-12
| |
| * Clean up home/copy2.asm (#531)PokefanMarcel2025-09-10
| | | | | | | | | | | | | | * 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-10
| | | | | | | | | | | | | | | | | | * 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-06
|\|
| * Label and constant cleanup (#528)Narishma-gb2025-09-03
| | | | | | | | | | * 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-06
| |
* | Merge branch 'master' of https://github.com/pret/pokereddannye2025-07-02
|\|
| * Use combined hardware constantsRangi422025-06-30
| |
| * Replace hardware_constants.asm with hardware.inc (#511)Rangi2025-06-30
| |
| * Fix typosdannye2025-06-03
| |
* | Improve IsSurfingPikachuInParty documentation (#128)Linus Unnebäck2025-05-10
| |
* | Name Func_07c4/StopBikeSurf (#118)Linus Unnebäck2025-05-10
| |
* | Merge branch 'master' of https://github.com/pret/pokereddannye2025-05-10
|\|
| * Use constants in `PrintBCDNumber` calls (#503)Narishma-gb2025-04-08
| |
* | Merge branch 'master' of https://github.com/pret/pokereddannye2025-01-30
|\|
| * Consistently refer to CGB, not GBC (#491)SatoMew2025-01-30
| |
| * Consistently capitalize `ASSERT` directives (#489)Rangi2025-01-28
| |
| * Miscellaneous cleanup (#488)Rangi2025-01-28
| | | | | | Co-authored-by: SatoMew <SatoMew@users.noreply.github.com>
| * Correct wTileMapBackup declared space (#487)Engezerstorung2025-01-28
| |
* | Use spaces around operatorsRangi422024-12-25
| |
* | Merge branch 'master' of https://github.com/pret/pokeredRangi422024-12-25
|\|
| * Remove redundant parenthesesRangi422024-12-16
| |
* | Merge branch 'master' of https://github.com/pret/pokereddannye2024-10-09
|\|
| * `FreezeEnemyTrainerSprite` -> `SetEnemyTrainerToStayAndFaceAnyDirection`Vortyne2024-10-07
| |
* | Rename off-by-one wram labelsdannye2024-09-29
| |
* | Identify more bit flags (#119)Sylvie2024-09-29
| | | | | | | | | | * Identify more bit flags * Bit serves dual use in debug mode
* | Merge branch 'master' of https://github.com/pret/pokereddannye2024-09-25
|\|
| * Identify `wCurrentMapScriptFlags` bits (#467)Sylvie2024-09-24
| |
| * Identify hardware register bits (#469)Sylvie2024-09-24
| |
| * Identify more bit flags (#465)Sylvie2024-09-24
| | | | | | | | | | * Identify more bit flags * Space
| * Identify more flag bits (#464)Sylvie2024-09-23
| |
| * Identify remaining uses of `wd0b5` and `wd11e` (#463)Sylvie2024-09-18
| |
| * Split `hSpriteIndexOrTextID` into `hSpriteIndex` and `hTextID` (#462)Sylvie2024-09-18
| | | | | | Also identify `wPPUpCountAndMaxPP`
| * Identify wcf91 as wCurPartySpecies, wCurItem, and wCurListMenuItem (#457)Sylvie2024-08-04
| |