summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--constants/menu_constants.asm5
-rw-r--r--data/text/battle.asm3
-rw-r--r--data/text/common_2.asm2
-rw-r--r--docs/bugs_and_glitches.md59
-rw-r--r--docs/menus.md8
-rw-r--r--engine/events/buena.asm2
-rw-r--r--engine/events/elevator.asm2
-rw-r--r--engine/events/kurt.asm4
-rw-r--r--engine/events/pokecenter_pc.asm7
-rw-r--r--engine/items/mart.asm2
-rw-r--r--engine/items/pack.asm12
-rw-r--r--engine/items/switch_items.asm28
-rw-r--r--engine/math/print_num.asm2
-rw-r--r--engine/menus/scrolling_menu.asm6
-rw-r--r--engine/overworld/decorations.asm2
-rw-r--r--engine/overworld/player_step.asm28
-rw-r--r--engine/pokedex/pokedex_2.asm9
-rw-r--r--engine/pokegear/pokegear.asm8
-rw-r--r--engine/pokemon/bills_pc.asm20
-rw-r--r--engine/pokemon/mail.asm4
-rw-r--r--gfx/slots/slots_1.pngbin446 -> 433 bytes
-rw-r--r--home/map.asm8
-rw-r--r--home/string.asm2
-rw-r--r--mobile/mobile_12.asm22
-rw-r--r--mobile/mobile_22_2.asm4
-rw-r--r--mobile/mobile_46.asm6
-rwxr-xr-xtools/toc.py2
-rw-r--r--wram.asm2
29 files changed, 169 insertions, 91 deletions
diff --git a/Makefile b/Makefile
index 9bd7e17a7..b3a9e8ce9 100644
--- a/Makefile
+++ b/Makefile
@@ -181,6 +181,7 @@ gfx/title/logo.2bpp: rgbgfx += -x 4
gfx/trade/ball.2bpp: tools/gfx += --remove-whitespace
gfx/trade/game_boy_n64.2bpp: tools/gfx += --trim-whitespace
+gfx/slots/slots_1.2bpp: tools/gfx += --trim-whitespace
gfx/slots/slots_2.2bpp: tools/gfx += --interleave --png=$<
gfx/slots/slots_3.2bpp: tools/gfx += --interleave --png=$< --remove-duplicates --keep-whitespace --remove-xflip
diff --git a/constants/menu_constants.asm b/constants/menu_constants.asm
index 4aaf10802..b2249db06 100644
--- a/constants/menu_constants.asm
+++ b/constants/menu_constants.asm
@@ -32,6 +32,11 @@
shift_const SCROLLINGMENU_ENABLE_START
shift_const SCROLLINGMENU_ENABLE_SELECT
+; ScrollingMenu items structure format
+ const_def 1
+ const SCROLLINGMENU_ITEMS_NORMAL
+ const SCROLLINGMENU_ITEMS_QUANTITY
+
; MonMenuOptions indexes (see data/mon_menu.asm)
; used by PokemonActionSubmenu (see engine/pokemon/mon_menu.asm)
const_def 1
diff --git a/data/text/battle.asm b/data/text/battle.asm
index 56a1cb8e1..722c3e289 100644
--- a/data/text/battle.asm
+++ b/data/text/battle.asm
@@ -414,9 +414,8 @@ BecameConfusedText:
text "<TARGET>"
line "became confused!"
prompt
-; ItemHealedConfusion
-BattleText_ItemHealedConfusion: ; ItemHealedConfusion
+BattleText_ItemHealedConfusion:
text "A @"
text_ram wStringBuffer1
text " rid"
diff --git a/data/text/common_2.asm b/data/text/common_2.asm
index 6e2d21800..29f5dc0bb 100644
--- a/data/text/common_2.asm
+++ b/data/text/common_2.asm
@@ -815,7 +815,7 @@ UnknownText_0x1c0df3::
UnknownText_0x1c0e24::
text "It's @"
- text_ram wBreedMon1
+ text_ram wBreedMon1Nick
text_start
line "that was left with"
cont "the DAY-CARE MAN."
diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md
index c9437b3e1..ad6114c77 100644
--- a/docs/bugs_and_glitches.md
+++ b/docs/bugs_and_glitches.md
@@ -55,6 +55,7 @@ Some fixes are mentioned as breaking compatibility with link battles. This can b
- [No bump noise if standing on tile `$3E`](#no-bump-noise-if-standing-on-tile-3e)
- [Playing Entei's Pokédex cry can distort Raikou's and Suicune's](#playing-enteis-pokédex-cry-can-distort-raikous-and-suicunes)
- [In-battle “`…`” ellipsis is too high](#in-battle--ellipsis-is-too-high)
+- [Move selection menu doesn't handle joypad properly](#move-selection-menu-doesnt-handle-joypad-properly)
- [Two tiles in the `port` tileset are drawn incorrectly](#two-tiles-in-the-port-tileset-are-drawn-incorrectly)
- [`LoadMetatiles` wraps around past 128 blocks](#loadmetatiles-wraps-around-past-128-blocks)
- [Surfing directly across a map connection does not load the new map](#surfing-directly-across-a-map-connection-does-not-load-the-new-map)
@@ -915,7 +916,7 @@ This can bring Pokémon straight from level 1 to 100 by gaining just a few exper
+
+.UnsetClairScene:
+ setmapscene DRAGONS_DEN_B1F, SCENE_DRAGONSDENB1F_NOTHING
-+ end
++ return
```
@@ -1334,6 +1335,62 @@ This is a mistake with the “`…`” tile in [gfx/battle/hp_exp_bar_border.png
![image](https://raw.githubusercontent.com/pret/pokecrystal/master/docs/images/hp_exp_bar_border.png)
+## Move selection menu doesn't handle joypad properly
+
+([Video](https://www.youtube.com/watch?v=vjFUo6Jr4po&t=438))
+
+`hInMenu` isn't defined in the menu that handles selecting moves in a battle. Because of this, your cursor is usually rendered unable to keep scrolling when one of the directional keys is being held. It's up for debate whether this behavior was intentional or not, but this value should be defined when in the move selection menu. A value of 1 will allow it to keep scrolling, though it's usually 0 by default.
+There exists one way in which this behaviour would be temporarily changed in-game, and that's when the credits sequence is triggered, `hInMenu` will be set but never unset. This can be fixed with the following:
+
+**Fix:** Edit `Credits` in [engine/movie/credits.asm](https://github.com/pret/pokecrystal/blob/master/engine/movie/credits.asm):
+
+```diff
+ ldh a, [hVBlank]
+ push af
+ ld a, $5
+ ldh [hVBlank], a
++ ldh a, [hInMenu]
++ push af
+ ld a, $1
+ ldh [hInMenu], a
+
+ ...
+
+ ldh [hLCDCPointer], a
+ ldh [hBGMapAddress], a
++ pop af
++ ldh [hInMenu], a
+ pop af
+ ldh [hVBlank], a
+ pop af
+ ldh [rSVBK], a
+```
+
+
+If you want to make sure `hInMenu` always has a defined value in the move selection menu, the following code will set it to 1:
+
+**Fix:** Edit `BattleTurn` in [engine/battle/core.asm](https://github.com/pret/pokecrystal/blob/master/engine/battle/core.asm):
+
+```diff
+ BattleTurn:
++ ldh a, [hInMenu]
++ push af
++ ld a, 1
++ ldh [hInMenu], a
++
+ .loop
+
+ ...
+
+ jp .loop
+
+ .quit
++ pop af
++ ldh [hInMenu], a
+ ret
+```
+
+
## Two tiles in the `port` tileset are drawn incorrectly
This is a mistake with the left-hand warp carpet corner tiles in [gfx/tilesets/port.png](https://github.com/pret/pokecrystal/blob/master/gfx/tilesets/port.png):
diff --git a/docs/menus.md b/docs/menus.md
index 35bb14d3a..cd783290a 100644
--- a/docs/menus.md
+++ b/docs/menus.md
@@ -26,7 +26,7 @@ Structure:
.MenuData:
db 0 ; flags
db 5, 0 ; rows, columns
- db 1 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dba Items
dba Function1
dba Function2
@@ -66,9 +66,9 @@ Function3: Called to display anything else, whenever the cursor is moved.
There is no register of importance that should be preserved in any of these functions.
-The `; horizontal spacing` item in each `MenuData` is a misnomer. It changes how the `Items` struct looks.
+The `; item format` entry in each `MenuData` changes how the `Items` struct looks.
-If it's 1:
+If it's `SCROLLINGMENU_ITEMS_NORMAL` (1):
```
db entries not including cancel
@@ -78,7 +78,7 @@ db -1 ; cancel
...
```
-If it's 2:
+If it's `SCROLLINGMENU_ITEMS_QUANTITY` (2):
```
db entries not including cancel
diff --git a/engine/events/buena.asm b/engine/events/buena.asm
index 97a28549b..3e78dfa91 100644
--- a/engine/events/buena.asm
+++ b/engine/events/buena.asm
@@ -263,7 +263,7 @@ Buena_PrizeMenu:
.MenuData:
db SCROLLINGMENU_DISPLAY_ARROWS ; flags
db 4, 13 ; rows, columns
- db 1 ; spacing
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dba .indices
dba .prizeitem
dba .prizepoints
diff --git a/engine/events/elevator.asm b/engine/events/elevator.asm
index 37de3f1b6..8394cf442 100644
--- a/engine/events/elevator.asm
+++ b/engine/events/elevator.asm
@@ -184,7 +184,7 @@ Elevator_MenuHeader:
Elevator_MenuData:
db SCROLLINGMENU_DISPLAY_ARROWS ; flags
db 4, 0 ; rows, columns
- db 1 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dbw 0, wCurElevator
dba GetElevatorFloorStrings
dba NULL
diff --git a/engine/events/kurt.asm b/engine/events/kurt.asm
index 234e5f424..3dd700dbb 100644
--- a/engine/events/kurt.asm
+++ b/engine/events/kurt.asm
@@ -87,8 +87,8 @@ Kurt_SelectApricorn:
.MenuData:
db SCROLLINGMENU_DISPLAY_ARROWS ; flags
- db 4, 7
- db 1
+ db 4, 7 ; rows, columns
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dbw 0, wBuffer1
dba .Name
dba .Quantity
diff --git a/engine/events/pokecenter_pc.asm b/engine/events/pokecenter_pc.asm
index b899f9323..fa06d971e 100644
--- a/engine/events/pokecenter_pc.asm
+++ b/engine/events/pokecenter_pc.asm
@@ -236,8 +236,7 @@ Function15715:
PlayersPCMenuData:
db MENU_BACKUP_TILES ; flags
- db 0, 0 ; top left corner coords (y, x)
- db 12, 15 ; bottom right corner coords (y, x)
+ menu_coords 0, 0, 15, 12
dw .PlayersPCMenuData
db 1 ; default selected option
@@ -626,8 +625,8 @@ PCItemsJoypad:
.MenuData:
db SCROLLINGMENU_ENABLE_SELECT | SCROLLINGMENU_ENABLE_FUNCTION3 | SCROLLINGMENU_DISPLAY_ARROWS ; flags
- db 4, 8 ; rows/cols?
- db 2 ; horizontal spacing?
+ db 4, 8 ; rows, columns
+ db SCROLLINGMENU_ITEMS_QUANTITY ; item format
dbw 0, wNumPCItems
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
diff --git a/engine/items/mart.asm b/engine/items/mart.asm
index 6341e9e6e..0209aac23 100644
--- a/engine/items/mart.asm
+++ b/engine/items/mart.asm
@@ -600,7 +600,7 @@ MenuHeader_Buy:
.MenuData
db SCROLLINGMENU_DISPLAY_ARROWS | SCROLLINGMENU_ENABLE_FUNCTION3 ; flags
db 4, 8 ; rows, columns
- db 1 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dbw 0, wCurMart
dba PlaceMenuItemName
dba .PrintBCDPrices
diff --git a/engine/items/pack.asm b/engine/items/pack.asm
index 268a013bc..d5d331720 100644
--- a/engine/items/pack.asm
+++ b/engine/items/pack.asm
@@ -1465,7 +1465,7 @@ ItemsPocketMenuHeader:
.MenuData:
db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP | STATICMENU_CURSOR ; flags
db 5, 8 ; rows, columns
- db 2 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_QUANTITY ; item format
dbw 0, wNumItems
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
@@ -1480,7 +1480,7 @@ PC_Mart_ItemsPocketMenuHeader:
.MenuData:
db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP ; flags
db 5, 8 ; rows, columns
- db 2 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_QUANTITY ; item format
dbw 0, wNumItems
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
@@ -1495,7 +1495,7 @@ KeyItemsPocketMenuHeader:
.MenuData:
db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP | STATICMENU_CURSOR ; flags
db 5, 8 ; rows, columns
- db 1 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dbw 0, wNumKeyItems
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
@@ -1510,7 +1510,7 @@ PC_Mart_KeyItemsPocketMenuHeader:
.MenuData:
db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP ; flags
db 5, 8 ; rows, columns
- db 1 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dbw 0, wNumKeyItems
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
@@ -1525,7 +1525,7 @@ BallsPocketMenuHeader:
.MenuData:
db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP | STATICMENU_CURSOR ; flags
db 5, 8 ; rows, columns
- db 2 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_QUANTITY ; item format
dbw 0, wNumBalls
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
@@ -1540,7 +1540,7 @@ PC_Mart_BallsPocketMenuHeader:
.MenuData:
db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP ; flags
db 5, 8 ; rows, columns
- db 2 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_QUANTITY ; item format
dbw 0, wNumBalls
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
diff --git a/engine/items/switch_items.asm b/engine/items/switch_items.asm
index 81b5ac6a5..10fe535b3 100644
--- a/engine/items/switch_items.asm
+++ b/engine/items/switch_items.asm
@@ -48,7 +48,7 @@ SwitchItemsInBag:
call ItemSwitch_GetNthItem
dec hl
push hl
- call ItemSwitch_ConvertSpacingToDW
+ call ItemSwitch_ConvertItemFormatToDW
add hl, bc
ld d, h
ld e, l
@@ -74,7 +74,7 @@ SwitchItemsInBag:
call ItemSwitch_GetNthItem
ld d, h
ld e, l
- call ItemSwitch_ConvertSpacingToDW
+ call ItemSwitch_ConvertItemFormatToDW
add hl, bc
pop bc
call CopyBytes
@@ -162,7 +162,7 @@ Function249d1:
.asm_24a25
dec [hl]
- call ItemSwitch_ConvertSpacingToDW
+ call ItemSwitch_ConvertItemFormatToDW
push bc
ld a, [wSwitchItem]
call ItemSwitch_GetNthItem
@@ -183,7 +183,7 @@ Function249d1:
Function24a40:
call ItemSwitch_GetNthItem
ld de, wd002
- call ItemSwitch_ConvertSpacingToDW
+ call ItemSwitch_ConvertItemFormatToDW
call CopyBytes
ret
@@ -192,13 +192,13 @@ Function24a4d:
ld d, h
ld e, l
ld hl, wd002
- call ItemSwitch_ConvertSpacingToDW
+ call ItemSwitch_ConvertItemFormatToDW
call CopyBytes
ret
ItemSwitch_GetNthItem:
push af
- call ItemSwitch_ConvertSpacingToDW
+ call ItemSwitch_ConvertItemFormatToDW
ld hl, wMenuData_ItemsPointerAddr
ld a, [hli]
ld h, [hl]
@@ -210,7 +210,7 @@ ItemSwitch_GetNthItem:
Function24a6c:
push hl
- call ItemSwitch_ConvertSpacingToDW
+ call ItemSwitch_ConvertItemFormatToDW
ld a, d
sub e
jr nc, .dont_negate
@@ -224,13 +224,13 @@ Function24a6c:
pop hl
ret
-ItemSwitch_ConvertSpacingToDW:
+ItemSwitch_ConvertItemFormatToDW:
; This function is absolutely idiotic.
push hl
- ld a, [wMenuData_ScrollingMenuSpacing]
+ ld a, [wMenuData_ScrollingMenuItemFormat]
ld c, a
ld b, 0
- ld hl, .spacing_dws
+ ld hl, .format_dws
add hl, bc
add hl, bc
ld c, [hl]
@@ -239,12 +239,14 @@ ItemSwitch_ConvertSpacingToDW:
pop hl
ret
-.spacing_dws
- dw 0, 1, 2
+.format_dws
+ dw 0
+ dw 1
+ dw 2
Function24a97:
push af
- call ItemSwitch_ConvertSpacingToDW
+ call ItemSwitch_ConvertItemFormatToDW
ld a, c
cp 2
jr nz, .not_2
diff --git a/engine/math/print_num.asm b/engine/math/print_num.asm
index fce3c9027..62ef97fb3 100644
--- a/engine/math/print_num.asm
+++ b/engine/math/print_num.asm
@@ -2,6 +2,8 @@ _PrintNum::
; Print c digits of the b-byte value from de to hl.
; Allows 2 to 7 digits. For 1-digit numbers, add
; the value to char "0" instead of calling PrintNum.
+; The high nybble of the c register specifies how many of the total amount of
+; digits will be in front of the decimal point.
; Some extra flags can be given in bits 5-7 of b.
; Bit 5: money if set (unless left-aligned without leading zeros)
; Bit 6: right-aligned if set
diff --git a/engine/menus/scrolling_menu.asm b/engine/menus/scrolling_menu.asm
index e47d656bc..b26442dc7 100644
--- a/engine/menus/scrolling_menu.asm
+++ b/engine/menus/scrolling_menu.asm
@@ -497,10 +497,10 @@ ScrollingMenu_GetListItemCoordAndFunctionArgs:
ld h, [hl]
ld l, a
inc hl ; items
- ld a, [wMenuData_ScrollingMenuSpacing]
- cp 1
+ ld a, [wMenuData_ScrollingMenuItemFormat]
+ cp SCROLLINGMENU_ITEMS_NORMAL
jr z, .got_spacing
- cp 2
+ cp SCROLLINGMENU_ITEMS_QUANTITY
jr z, .pointless_jump
.pointless_jump
add hl, de
diff --git a/engine/overworld/decorations.asm b/engine/overworld/decorations.asm
index c601b65c3..3b40641f3 100644
--- a/engine/overworld/decorations.asm
+++ b/engine/overworld/decorations.asm
@@ -409,7 +409,7 @@ PopulateDecoCategoryMenu:
.ScrollingMenuData:
db SCROLLINGMENU_DISPLAY_ARROWS ; flags
db 8, 0 ; rows, columns
- db 1 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dbw 0, wd002 ; text pointer
dba DecorationMenuFunction
dbw 0, 0
diff --git a/engine/overworld/player_step.asm b/engine/overworld/player_step.asm
index eb1e88cf4..b035face1 100644
--- a/engine/overworld/player_step.asm
+++ b/engine/overworld/player_step.asm
@@ -126,25 +126,25 @@ UpdateOverworldMap:
.step_down
call .ScrollOverworldMapDown
call LoadMapPart
- call ScrollMapUp
+ call ScrollMapDown
ret
.step_up
call .ScrollOverworldMapUp
call LoadMapPart
- call ScrollMapDown
+ call ScrollMapUp
ret
.step_left
call .ScrollOverworldMapLeft
call LoadMapPart
- call ScrollMapRight
+ call ScrollMapLeft
ret
.step_right
call .ScrollOverworldMapRight
call LoadMapPart
- call ScrollMapLeft
+ call ScrollMapRight
ret
.ScrollOverworldMapDown:
@@ -164,14 +164,14 @@ UpdateOverworldMap:
cp 2 ; was 1
jr nz, .done_down
ld [hl], 0
- call .Add6ToOverworldMapAnchor
+ call .ScrollMapDataDown
.done_down
ret
-.Add6ToOverworldMapAnchor:
+.ScrollMapDataDown:
ld hl, wOverworldMapAnchor
ld a, [wMapWidth]
- add 6
+ add 3 * 2 ; surrounding tiles
add [hl]
ld [hli], a
ret nc
@@ -195,14 +195,14 @@ UpdateOverworldMap:
cp -1 ; was 0
jr nz, .done_up
ld [hl], $1
- call .Sub6FromOverworldMapAnchor
+ call .ScrollMapDataUp
.done_up
ret
-.Sub6FromOverworldMapAnchor:
+.ScrollMapDataUp:
ld hl, wOverworldMapAnchor
ld a, [wMapWidth]
- add 6
+ add 3 * 2 ; surrounding tiles
ld b, a
ld a, [hl]
sub b
@@ -227,11 +227,11 @@ UpdateOverworldMap:
cp -1
jr nz, .done_left
ld [hl], 1
- call .DecrementwOverworldMapAnchor
+ call .ScrollMapDataLeft
.done_left
ret
-.DecrementwOverworldMapAnchor:
+.ScrollMapDataLeft:
ld hl, wOverworldMapAnchor
ld a, [hl]
sub 1
@@ -256,11 +256,11 @@ UpdateOverworldMap:
cp 2
jr nz, .done_right
ld [hl], 0
- call .IncrementwOverworldMapAnchor
+ call .ScrollMapDataRight
.done_right
ret
-.IncrementwOverworldMapAnchor:
+.ScrollMapDataRight:
ld hl, wOverworldMapAnchor
ld a, [hl]
add 1
diff --git a/engine/pokedex/pokedex_2.asm b/engine/pokedex/pokedex_2.asm
index 62e7e853b..ac47bd484 100644
--- a/engine/pokedex/pokedex_2.asm
+++ b/engine/pokedex/pokedex_2.asm
@@ -124,14 +124,16 @@ DisplayDexEntry:
jr z, .skip_height
push hl
push de
+; Print the height, with two of the four digits in front of the decimal point
ld hl, sp+$0
ld d, h
ld e, l
hlcoord 12, 7
- lb bc, 2, PRINTNUM_MONEY | 4
+ lb bc, 2, (2 << 4) | 4
call PrintNum
+; Replace the decimal point with a ft symbol
hlcoord 14, 7
- ld [hl], $5e ; ft symbol
+ ld [hl], $5e
pop af
pop hl
@@ -148,11 +150,12 @@ DisplayDexEntry:
or d
jr z, .skip_weight
push de
+; Print the weight, with four of the five digits in front of the decimal point
ld hl, sp+$0
ld d, h
ld e, l
hlcoord 11, 9
- lb bc, 2, PRINTNUM_RIGHTALIGN | 5
+ lb bc, 2, (4 << 4) | 5
call PrintNum
pop de
diff --git a/engine/pokegear/pokegear.asm b/engine/pokegear/pokegear.asm
index 13b561d4b..d0e7e8ca0 100644
--- a/engine/pokegear/pokegear.asm
+++ b/engine/pokegear/pokegear.asm
@@ -335,7 +335,7 @@ InitPokegearTilemap:
.ok
farcall PokegearMap
ld a, $07
- ld bc, $12
+ ld bc, SCREEN_WIDTH - 2
hlcoord 1, 2
call ByteFill
hlcoord 0, 2
@@ -2165,7 +2165,7 @@ TownMapBubble:
hlcoord 1, 1
; Middle row
- ld bc, 18
+ ld bc, SCREEN_WIDTH - 2
ld a, " "
call ByteFill
@@ -2481,10 +2481,10 @@ Pokedex_GetArea:
ld a, " "
call ByteFill
hlcoord 0, 1
- ld a, $6
+ ld a, $06
ld [hli], a
ld bc, SCREEN_WIDTH - 2
- ld a, $7
+ ld a, $07
call ByteFill
ld [hl], $17
call GetPokemonName
diff --git a/engine/pokemon/bills_pc.asm b/engine/pokemon/bills_pc.asm
index b63e481f6..162c94887 100644
--- a/engine/pokemon/bills_pc.asm
+++ b/engine/pokemon/bills_pc.asm
@@ -241,16 +241,16 @@ BillsPCDepositMenuHeader:
Unreferenced_BillsPCClearThreeBoxes:
hlcoord 0, 0
- ld b, 4
- ld c, 8
+ ld b, 4
+ ld c, 8
call ClearBox
hlcoord 0, 4
ld b, 10
- ld c, 9
+ ld c, 9
call ClearBox
hlcoord 0, 14
- ld b, 2
- ld c, 8
+ ld b, 2
+ ld c, 8
call ClearBox
ret
@@ -1854,7 +1854,7 @@ TryWithdrawPokemon:
ld h, b
ld de, wStringBuffer1
call PlaceString
- ld a, $e7
+ ld a, "!"
ld [bc], a
ld c, 50
call DelayFrames
@@ -1913,7 +1913,7 @@ ReleasePKMN_ByePKMN:
call PlaceString
ld l, c
ld h, b
- ld [hl], $e7
+ ld [hl], "!"
ld c, 50
call DelayFrames
ret
@@ -2269,9 +2269,9 @@ _ChangeBox_MenuHeader:
db 1 ; default option
.MenuData
- db MENU_UNUSED_1 | MENU_UNUSED_3 ; flags
- db 4, 0
- db 1
+ db SCROLLINGMENU_CALL_FUNCTION3_NO_SWITCH | SCROLLINGMENU_ENABLE_FUNCTION3 ; flags
+ db 4, 0 ; rows, columns
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dba .boxes
dba .boxnames
dba NULL
diff --git a/engine/pokemon/mail.asm b/engine/pokemon/mail.asm
index 04c9a98e2..f89a51944 100644
--- a/engine/pokemon/mail.asm
+++ b/engine/pokemon/mail.asm
@@ -543,8 +543,8 @@ MailboxPC:
.TopMenuData:
db SCROLLINGMENU_DISPLAY_ARROWS ; flags
- db 4, 0 ; rows/columns?
- db 1 ; horizontal spacing?
+ db 4, 0 ; rows, columns
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dbw 0, wMailboxCount ; text pointer
dba MailboxPC_PrintMailAuthor
dba NULL
diff --git a/gfx/slots/slots_1.png b/gfx/slots/slots_1.png
index a10340844..10431e719 100644
--- a/gfx/slots/slots_1.png
+++ b/gfx/slots/slots_1.png
Binary files differ
diff --git a/home/map.asm b/home/map.asm
index 659e5688d..02df97323 100644
--- a/home/map.asm
+++ b/home/map.asm
@@ -1151,7 +1151,7 @@ UnmaskObject::
ld [hl], 0 ; unmasked
ret
-ScrollMapDown::
+ScrollMapUp::
hlcoord 0, 0
ld de, wBGMapBuffer
call BackupBGMapRow
@@ -1166,7 +1166,7 @@ ScrollMapDown::
ldh [hBGMapUpdate], a
ret
-ScrollMapUp::
+ScrollMapDown::
hlcoord 0, SCREEN_HEIGHT - 2
ld de, wBGMapBuffer
call BackupBGMapRow
@@ -1189,7 +1189,7 @@ ScrollMapUp::
ldh [hBGMapUpdate], a
ret
-ScrollMapRight::
+ScrollMapLeft::
hlcoord 0, 0
ld de, wBGMapBuffer
call BackupBGMapColumn
@@ -1204,7 +1204,7 @@ ScrollMapRight::
ldh [hBGMapUpdate], a
ret
-ScrollMapLeft::
+ScrollMapRight::
hlcoord SCREEN_WIDTH - 2, 0
ld de, wBGMapBuffer
call BackupBGMapColumn
diff --git a/home/string.asm b/home/string.asm
index 702ab50ff..86de2e273 100644
--- a/home/string.asm
+++ b/home/string.asm
@@ -6,7 +6,7 @@ InitString::
InitName::
; Intended for names, so this function is limited to ten characters.
push hl
- ld c, 10
+ ld c, NAME_LENGTH - 1
_InitString::
; if the string pointed to by hl is empty (defined as "zero or more spaces
; followed by a null"), then initialize it to the string pointed to by de.
diff --git a/mobile/mobile_12.asm b/mobile/mobile_12.asm
index 2f9041d1f..f3453328b 100644
--- a/mobile/mobile_12.asm
+++ b/mobile/mobile_12.asm
@@ -584,13 +584,21 @@ MenuHeader_0x48513:
MenuData_0x4851b:
db SCROLLINGMENU_DISPLAY_ARROWS | SCROLLINGMENU_ENABLE_RIGHT | SCROLLINGMENU_ENABLE_LEFT | SCROLLINGMENU_CALL_FUNCTION1_CANCEL ; flags
- db 6 ; items
-
-Unknown_4851d:
- db $00, $01, $12, $2b, $45, $12, $e8, $43, $00, $00, $00, $00, $00, $00, $2e, $00, $01, $02, $03, $04
- db $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $10, $11, $12, $13, $14, $15, $16, $17, $18
- db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c
- db $2d, $ff
+ db 6, 0 ; rows, columns
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
+ dba .Items
+ dba Function483e8
+ dba NULL
+ dba NULL
+
+.Items:
+ db 46
+x = 0
+rept 46
+ db x
+x = x + 1
+endr
+ db -1
Prefectures:
Aichi: db "あいちけん@" ; Aichi
diff --git a/mobile/mobile_22_2.asm b/mobile/mobile_22_2.asm
index c86b0711b..0e5b56099 100644
--- a/mobile/mobile_22_2.asm
+++ b/mobile/mobile_22_2.asm
@@ -883,8 +883,8 @@ MenuHeader_0x8b867:
MenuData_0x8b870:
db SCROLLINGMENU_ENABLE_FUNCTION3 | SCROLLINGMENU_DISPLAY_ARROWS | SCROLLINGMENU_ENABLE_RIGHT | SCROLLINGMENU_ENABLE_LEFT ; flags
- db 5 ; items
- db 3, 1
+ db 5, 3 ; rows, columns
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dbw 0, wd002
dba Function8b880
dba Function8b88c
diff --git a/mobile/mobile_46.asm b/mobile/mobile_46.asm
index 78b728e46..e28cb2aeb 100644
--- a/mobile/mobile_46.asm
+++ b/mobile/mobile_46.asm
@@ -3796,9 +3796,9 @@ BattleTowerRoomMenu_WaitForMessage:
call BattleTowerRoomMenu_IncrementJumptable
BattleTowerRoomMenu_DelayRestartMenu:
- ; Loops while (--[wcd50] != 0),
- ; to create some sort of "delay" after the message is written on the screen,
- ; before starting the menu again.
+ ; Loops while (--[wcd50] != 0),
+ ; to create some sort of "delay" after the message is written on the screen,
+ ; before starting the menu again.
ld hl, wcd50
dec [hl]
ret nz
diff --git a/tools/toc.py b/tools/toc.py
index 8ff50be94..13b75ae1c 100755
--- a/tools/toc.py
+++ b/tools/toc.py
@@ -17,6 +17,7 @@ valid_toc_headings = {'## TOC', '##TOC'}
TocItem = namedtuple('TocItem', ['name', 'anchor', 'level'])
punctuation_regexp = re.compile(r'[^\w\- ]+')
+specialchar_regexp = re.compile(r'[⅔]+')
def name_to_anchor(name):
# GitHub's algorithm for generating anchors from headings
@@ -24,6 +25,7 @@ def name_to_anchor(name):
anchor = name.strip().lower() # lowercase
anchor = re.sub(punctuation_regexp, '', anchor) # remove punctuation
anchor = anchor.replace(' ', '-') # replace spaces with dash
+ anchor = re.sub(specialchar_regexp, '', anchor) # remove misc special chars
return anchor
def get_toc_index(lines):
diff --git a/wram.asm b/wram.asm
index 22cc9dca9..3d937aff5 100644
--- a/wram.asm
+++ b/wram.asm
@@ -1481,7 +1481,7 @@ NEXTU ; cf92
; Scrolling Menu
wMenuData_ScrollingMenuHeight:: db ; cf92
wMenuData_ScrollingMenuWidth:: db ; cf93
-wMenuData_ScrollingMenuSpacing:: db ; cf94
+wMenuData_ScrollingMenuItemFormat:: db ; cf94
wMenuData_ItemsPointerBank:: db ; cf95
wMenuData_ItemsPointerAddr:: dw ; cf97
wMenuData_ScrollingMenuFunction1:: ds 3 ; cf98