shithub: pokecrystal

Download patch

ref: f676c3d357417c81daa33544536213ae85a5472f
parent: 0b6cb7a3b601875b21f6a2e2a1ab20490eb93921
parent: 7ab8f76117e13a192a1f4f797ee73c48f6154cff
author: Bryan Bishop <[email protected]>
date: Mon Mar 3 18:38:54 EST 2014

Merge pull request #237 from yenatch/incbins

Map triggers and egg hatching.

--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -1884,7 +1884,7 @@
 	ld b, a
 	call GetScriptByte
 	ld c, a
-	call Function2147
+	call GetMapTrigger
 	ld a, d
 	or e
 	jr z, .asm_975e5 ; 0x975de $5
@@ -1923,7 +1923,7 @@
 	; fallthrough
 
 Unknown_975fd: ; 0x975fd
-	call Function2147
+	call GetMapTrigger
 	ld a, d
 	or e
 	jr z, .asm_97608 ; 0x97602 $4
--- a/home.asm
+++ b/home.asm
@@ -1765,13 +1765,14 @@
 	push hl
 	push de
 	push bc
+
 	call Function381e
 	jr c, .asm_37ef
 	ld e, c
 	ld d, b
 	call PlayCryHeader
-
 .asm_37ef
+
 	pop bc
 	pop de
 	pop hl
@@ -1783,10 +1784,10 @@
 	ret c
 	ld a, [hROMBank]
 	push af
-	ld a, $3c
+	ld a, BANK(CryHeaders)
 	rst Bankswitch
 
-	ld hl, $6787
+	ld hl, CryHeaders
 	add hl, bc
 	add hl, bc
 	add hl, bc
@@ -1793,6 +1794,7 @@
 	add hl, bc
 	add hl, bc
 	add hl, bc
+
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -1804,10 +1806,10 @@
 	ld a, [hli]
 	ld [CryLength], a
 	ld a, [hl]
-	ld [$c2b3], a
+	ld [CryLength + 1], a
+
 	pop af
 	rst Bankswitch
-
 	and a
 	ret
 ; 381e
@@ -1815,11 +1817,12 @@
 Function381e:: ; 381e
 	and a
 	jr z, .asm_382b
-	cp $fc
+	cp NUM_POKEMON + 1
 	jr nc, .asm_382b
+
 	dec a
 	ld c, a
-	ld b, $0
+	ld b, 0
 	and a
 	ret
 
@@ -2042,7 +2045,7 @@
 	push bc
 	ld hl, PartyMons
 	ld c, a
-	ld b, $00
+	ld b, 0
 	add hl, bc
 	ld a, [CurPartyMon]
 	call GetPartyLocation
@@ -2061,12 +2064,12 @@
 	push hl
 	ld a, b
 	dec a
-	ld b, $0
+	ld b, 0
 	add hl, bc
-	ld hl, $5424
+	ld hl, BaseData + 0
 	ld bc, $0020
 	call AddNTimes
-	ld a, $14
+	ld a, BANK(BaseData)
 	call GetFarHalfword
 	ld b, l
 	ld c, h
--- a/home/map.asm
+++ b/home/map.asm
@@ -24,7 +24,7 @@
 	ret
 ; 212a
 
-Function212a:: ; 212a
+GetCurrentMapTrigger:: ; 212a
 	ld a, [MapGroup]
 	ld b, a
 	ld a, [MapNumber]
@@ -32,7 +32,7 @@
 	xor a
 	ld [$dbf7], a
 	ld [$dbf8], a
-	call Function2147
+	call GetMapTrigger
 	ret c
 	ld a, e
 	ld [$dbf7], a
@@ -42,14 +42,14 @@
 	ret
 ; 2147
 
-Function2147:: ; 2147
+GetMapTrigger:: ; 2147
 	push bc
 	ld a, [hROMBank]
 	push af
-	ld a, $13
+	ld a, BANK(MapTriggers)
 	rst Bankswitch
 
-	ld hl, $501e
+	ld hl, MapTriggers
 .asm_2151
 	push hl
 	ld a, [hli]
@@ -106,9 +106,9 @@
 	ld bc, TileMapEnd - TileMap
 	call ByteFill
 
-	ld a, $13
+	ld a, BANK(Function4d15b)
 	rst Bankswitch
-	call $515b
+	call Function4d15b
 
 	pop af
 	rst Bankswitch
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -586,10 +586,10 @@
 Function2057:: ; 2057
 	ld a, [hROMBank]
 	push af
-	ld a, $21
+	ld a, BANK(Function842db)
 	rst Bankswitch
 
-	call $42db
+	call Function842db
 	pop af
 	rst Bankswitch
 
--- a/home/text.asm
+++ b/home/text.asm
@@ -209,7 +209,7 @@
 	and a
 	jp z, Function1383
 	cp $4c
-	jp z, $1337
+	jp z, Function1337
 	cp $4b
 	jp z, Char4B
 	cp $51 ; Player name
@@ -249,7 +249,7 @@
 	cp $56
 	jp z, Function11d3
 	cp $57
-	jp z, $137c
+	jp z, Function137c
 	cp $58
 	jp z, Function135a
 	cp $4a
@@ -269,9 +269,9 @@
 	cp $5a
 	jp z, Char5D
 	cp $3f
-	jp z, $121b
+	jp z, Function121b
 	cp $14
-	jp z, $1252
+	jp z, Function1252
 	cp $e4
 	jr z, .asm_1174 ; 0x113d $35
 	cp $e5
@@ -322,103 +322,103 @@
 Function1186:: ; 1186
 	push de
 	ld de, MomsName
-	jp $126a
+	jp Function126a
 ; 118d
 
 Function118d:: ; 118d
 	push de
 	ld de, PlayerName
-	jp $126a
+	jp Function126a
 ; 1194
 
 Function1194:: ; 1194
 	push de
 	ld de, RivalName
-	jp $126a
+	jp Function126a
 ; 119b
 
 Function119b:: ; 119b
 	push de
 	ld de, RedsName
-	jp $126a
+	jp Function126a
 ; 11a2
 
 Function11a2:: ; 11a2
 	push de
 	ld de, GreensName
-	jp $126a
+	jp Function126a
 ; 11a9
 
 Function11a9:: ; 11a9
 	push de
 	ld de, Char5DText
-	jp $126a
+	jp Function126a
 ; 11b0
 
 Function11b0:: ; 11b0
 	push de
 	ld de, Char5CText
-	jp $126a
+	jp Function126a
 ; 11b7
 
 Function11b7:: ; 11b7
 	push de
 	ld de, Char5BText
-	jp $126a
+	jp Function126a
 ; 11be
 
 Function11be:: ; 11be
 	push de
 	ld de, Char5EText
-	jp $126a
+	jp Function126a
 ; 11c5
 
 Function11c5:: ; 11c5
 	push de
 	ld de, Char54Text
-	jp $126a
+	jp Function126a
 ; 11cc
 
 Function11cc:: ; 11cc
 	push de
 	ld de, Char23Text
-	jp $126a
+	jp Function126a
 ; 11d3
 
 Function11d3:: ; 11d3
 	push de
-	ld de, $1292
-	jp $126a
+	ld de, Char56Text
+	jp Function126a
 ; 11da
 
 Function11da:: ; 11da
 	push de
 	ld de, Char4AText
-	jp $126a
+	jp Function126a
 ; 11e1
 
 Function11e1:: ; 11e1
 	push de
 	ld de, Char24Text
-	jp $126a
+	jp Function126a
 ; 11e8
 
 Function11e8:: ; 11e8
 	push de
 	ld de, Char37Text
-	jp $126a
+	jp Function126a
 ; 11ef
 
 Function11ef:: ; 11ef
 	push de
 	ld de, Char37Text
-	jp $126a
+	jp Function126a
 ; 11f6
 
 Function11f6:: ; 11f6
 	push de
 	ld de, Char37Text
-	jp $126a
+	jp Function126a
 ; 11fd
 
 
@@ -437,7 +437,7 @@
 	and a
 	jr nz, .asm_120e ; 0x1207 $5
 	ld de, BattleMonNick
-	jr .asm_126a ; 0x120c $5c
+	jr Function126a ; 0x120c $5c
 .asm_120e
 	ld de, Char5AText ; Enemy
 	call PlaceString
@@ -444,15 +444,17 @@
 	ld h, b
 	ld l, c
 	ld de, EnemyMonNick
-	jr .asm_126a ; 0x1219 $4f
+	jr Function126a ; 0x1219 $4f
+
+Function121b:: ; 121b
 	push de
 	ld a, [InLinkBattle]
 	and a
 	jr nz, .linkbattle
 	ld a, [TrainerClass]
-	cp $9
+	cp RIVAL1
 	jr z, .asm_1248 ; 0x1227 $1f
-	cp $2a
+	cp RIVAL2
 	jr z, .asm_1248 ; 0x122b $1b
 	ld de, $c656
 	call PlaceString
@@ -464,13 +466,15 @@
 	callab Function39939
 	pop hl
 	ld de, StringBuffer1
-	jr .asm_126a ; 0x1246 $22
+	jr Function126a ; 0x1246 $22
 .asm_1248
 	ld de, RivalName
-	jr .asm_126a ; 0x124b $1d
+	jr Function126a ; 0x124b $1d
 .linkbattle
 	ld de, $c656
-	jr .asm_126a ; 0x1250 $18
+	jr Function126a ; 0x1250 $18
+
+Function1252:: ; 1252
 	push de
 	ld de, PlayerName
 	call PlaceString
@@ -479,10 +483,11 @@
 	ld a, [PlayerGender]
 	bit 0, a
 	ld de, String12a5
-	jr z, .asm_126a ; 0x1263 $5
+	jr z, Function126a ; 0x1263 $5
 	ld de, String12a6
-	jr .asm_126a ; 0x1268 $0
-.asm_126a
+	jr Function126a ; 0x1268 $0
+
+Function126a:: ; 126a
 	call PlaceString
 	ld h, b
 	ld l, c
@@ -629,6 +634,7 @@
 	or a
 	call z, Function13cd
 
+Function1337:: ; 1337
 	push de
 	call Function138c
 	call Function138c
@@ -675,12 +681,12 @@
 	call Functionaaf
 	ld a, [InLinkBattle]
 	cp $3
-	jr z, .asm_137c
+	jr z, Function137c
 	cp $4
-	jr z, .asm_137c
+	jr z, Function137c
 	call Function13cd
 
-.asm_137c
+Function137c:: ; 137c
 	pop hl
 	ld de, .string_1382
 	dec de
@@ -770,10 +776,10 @@
 ; 13e0
 
 Function13e0:: ; 13e0
-	ld hl, $13e4
+	ld hl, String_13e4
 	ret
 
-.string_13e4
+String_13e4: ; 13e4
 	db "@"
 ; 13e5
 
--- a/macros.asm
+++ b/macros.asm
@@ -20,6 +20,11 @@
 	dw \2
 	ENDM
 
+dbbw: MACRO
+	db \1, \2
+	dw \3
+	ENDM
+
 dn: MACRO
 	db \1 << 4 + \2
 	ENDM
--- a/main.asm
+++ b/main.asm
@@ -29765,14 +29765,14 @@
 ; 16dc7
 
 Function16dc7: ; 16dc7
-	ld hl, $6e04
+	ld hl, UnknownText_0x16e04
 	call PrintText
 	callba Function50000
 	jr c, .asm_16df8
 	ld a, [CurPartySpecies]
-	cp $fd
+	cp EGG
 	jr z, .asm_16dfd
-	ld hl, $6e09
+	ld hl, UnknownText_0x16e09
 	call PrintText
 	call Function2ed3
 	callba Function8461a
@@ -29780,15 +29780,15 @@
 	ld a, [$ffac]
 	and a
 	jr nz, .asm_16df8
-	ld hl, $6e0e
+	ld hl, UnknownText_0x16e0e
 	jr .asm_16e00
 
 .asm_16df8
-	ld hl, $6e13
+	ld hl, UnknownText_0x16e13
 	jr .asm_16e00
 
 .asm_16dfd
-	ld hl, $6e18
+	ld hl, UnknownText_0x16e18
 
 .asm_16e00
 	call PrintText
@@ -29795,9 +29795,37 @@
 	ret
 ; 16e04
 
-INCBIN "baserom.gbc",$16e04,$16e1d - $16e04
+UnknownText_0x16e04: ; 0x16e04
+	; Which #MON should I photo- graph?
+	text_jump UnknownText_0x1be024
+	db "@"
+; 0x16e09
 
+UnknownText_0x16e09: ; 0x16e09
+	; All righty. Hold still for a bit.
+	text_jump UnknownText_0x1be047
+	db "@"
+; 0x16e0e
 
+UnknownText_0x16e0e: ; 0x16e0e
+	; Presto! All done. Come again, OK?
+	text_jump UnknownText_0x1be06a
+	db "@"
+; 0x16e13
+
+UnknownText_0x16e13: ; 0x16e13
+	; Oh, no picture? Come again, OK?
+	text_jump UnknownText_0x1c0000
+	db "@"
+; 0x16e18
+
+UnknownText_0x16e18: ; 0x16e18
+	; An EGG? My talent is worth more…
+	text_jump UnknownText_0x1c0021
+	db "@"
+; 0x16e1d
+
+
 Function16e1d: ; 16e1d
 	call Function16ed6
 	ld c, $0
@@ -29842,16 +29870,16 @@
 .asm_16e70
 	ld c, $0
 	ld a, [BreedMon1Species]
-	cp $84
+	cp DITTO
 	jr z, .asm_16e82
 	ld a, [BreedMon2Species]
-	cp $84
+	cp DITTO
 	jr nz, .asm_16eb7
 	jr .asm_16e89
 
 .asm_16e82
 	ld a, [BreedMon2Species]
-	cp $84
+	cp DITTO
 	jr z, .asm_16eb7
 
 .asm_16e89
@@ -29920,7 +29948,7 @@
 	cp $ff
 	jr z, .asm_16f3a
 	ld a, [BreedMon2Species]
-	cp $84
+	cp DITTO
 	jr z, .asm_16f3c
 	ld [CurSpecies], a
 	call GetBaseData
@@ -29933,7 +29961,7 @@
 	swap a
 	ld c, a
 	ld a, [BreedMon1Species]
-	cp $84
+	cp DITTO
 	jr z, .asm_16f3c
 	ld [CurSpecies], a
 	push bc
@@ -30016,7 +30044,7 @@
 	jp z, Function1708a
 	push de
 	push hl
-	cp $fd
+	cp EGG
 	jp nz, Function1707d
 	ld a, [hl]
 	and a
@@ -30105,7 +30133,7 @@
 	ld e, l
 	ld hl, PlayerName ; $d47d
 	call CopyBytes
-	ld hl, $708b
+	ld hl, UnknownText_0x1708b
 	call PrintText
 	ld a, [CurPartyMon] ; $d109
 	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname)
@@ -30114,7 +30142,7 @@
 	ld d, h
 	ld e, l
 	push de
-	ld hl, $70ba
+	ld hl, UnknownText_0x170ba
 	call PrintText
 	call YesNoBox
 	pop de
@@ -30150,7 +30178,13 @@
 	ret
 ; 1708b (5:708b)
 
-INCBIN "baserom.gbc",$1708b,$17090 - $1708b
+UnknownText_0x1708b: ; 0x1708b
+	; Huh? @ @
+	text_jump UnknownText_0x1c0db0
+	start_asm
+; 0x17090
+
+Function17090: ; 17090
 	ld hl, VramState ; $d0ed
 	res 0, [hl]
 	push hl
@@ -30159,7 +30193,7 @@
 	ld a, [CurPartySpecies] ; $d108
 	push af
 	call Function1728f
-	ld hl, $70b0
+	ld hl, UnknownText_0x170b0
 	call PrintText
 	pop af
 	ld [CurPartySpecies], a ; $d108
@@ -30166,12 +30200,28 @@
 	pop bc
 	pop de
 	pop hl
-	ld hl, $70b5
+	ld hl, UnknownText_0x170b5
 	ret
 ; 170b0 (5:70b0)
 
-INCBIN "baserom.gbc",$170b0,$170bf - $170b0
+UnknownText_0x170b0: ; 0x170b0
+	; 
+	text_jump UnknownText_0x1c0db8
+	db "@"
+; 0x170b5
 
+UnknownText_0x170b5: ; 0x170b5
+	; came out of its EGG!@ @
+	text_jump UnknownText_0x1c0dba
+	db "@"
+; 0x170ba
+
+UnknownText_0x170ba: ; 0x170ba
+	; Give a nickname to @ ?
+	text_jump UnknownText_0x1c0dd8
+	db "@"
+; 0x170bf
+
 Function170bf: ; 170bf
 	call Function17197
 	ld d, h
@@ -30204,18 +30254,20 @@
 ; 170e4
 
 Function170e4: ; 170e4
+GLOBAL EggMoves
+
 	push bc
 	ld a, [EggSpecies]
 	dec a
 	ld c, a
-	ld b, $0
-	ld hl, $7b11
+	ld b, 0
+	ld hl, EggMovePointers
 	add hl, bc
 	add hl, bc
-	ld a, $8
+	ld a, BANK(EggMovePointers)
 	call GetFarHalfword
 .asm_170f6
-	ld a, $8
+	ld a, BANK(EggMoves)
 	call GetFarByte
 	cp $ff
 	jr z, .asm_17107
@@ -30228,7 +30280,7 @@
 
 .asm_17107
 	call Function1720b
-	ld b, $4
+	ld b, NUM_MOVES
 .asm_1710c
 	ld a, [de]
 	cp [hl]
@@ -30242,25 +30294,25 @@
 	ld a, [EggSpecies]
 	dec a
 	ld c, a
-	ld b, $0
-	ld hl, $65b1
+	ld b, 0
+	ld hl, EvosAttacksPointers
 	add hl, bc
 	add hl, bc
-	ld a, $10
+	ld a, BANK(EvosAttacksPointers)
 	call GetFarHalfword
 .asm_17127
-	ld a, $10
+	ld a, BANK(EvosAttacks)
 	call GetFarByte
 	inc hl
 	and a
 	jr nz, .asm_17127
 .asm_17130
-	ld a, $10
+	ld a, BANK(EvosAttacks)
 	call GetFarByte
 	and a
 	jr z, .asm_17146
 	inc hl
-	ld a, $10
+	ld a, BANK(EvosAttacks)
 	call GetFarByte
 	ld b, a
 	ld a, [de]
@@ -30270,9 +30322,9 @@
 	jr .asm_17130
 
 .asm_17146
-	ld hl, $567a
+	ld hl, TMHMMoves
 .asm_17149
-	ld a, $4
+	ld a, BANK(TMHMMoves)
 	call GetFarByte
 	inc hl
 	and a
@@ -30305,7 +30357,7 @@
 	ld a, [de]
 	ld b, a
 	ld hl, $df7d
-	ld c, $4
+	ld c, NUM_MOVES
 .asm_17172
 	ld a, [hli]
 	and a
@@ -30338,10 +30390,10 @@
 Function17197: ; 17197
 	ld hl, $df47
 	ld a, [BreedMon1Species]
-	cp $84
+	cp DITTO
 	jr z, .asm_171b1
 	ld a, [BreedMon2Species]
-	cp $84
+	cp DITTO
 	jr z, .asm_171d7
 	ld a, [DittoInDaycare]
 	and a
@@ -30398,10 +30450,10 @@
 Function1720b: ; 1720b
 	ld hl, $df0e
 	ld a, [BreedMon1Species]
-	cp $84
+	cp DITTO
 	ret z
 	ld a, [BreedMon2Species]
-	cp $84
+	cp DITTO
 	jr z, .asm_17220
 	ld a, [DittoInDaycare]
 	and a
@@ -30452,9 +30504,9 @@
 	pop bc
 	pop hl
 	ld a, b
-	ld [$FF00+$d7], a
+	ld [$ffd7], a
 	ld a, c
-	ld [$FF00+$ad], a
+	ld [$ffad], a
 	ld bc, $707
 	ld a, $13
 	call Predef
@@ -30481,14 +30533,14 @@
 	ld [$cf63], a
 	ld a, [CurSpecies] ; $cf60
 	push af
-	ld de, $0
+	ld de, MUSIC_NONE
 	call PlayMusic
 	callba Function8000
 	call DisableLCD
-	ld hl, $7393
+	ld hl, EggHatchGFX
 	ld de, $8000
 	ld bc, $20
-	ld a, $5
+	ld a, BANK(EggHatchGFX)
 	call FarCopyBytes
 	callba Function8cf53
 	ld de, $9000
@@ -30495,15 +30547,15 @@
 	ld a, [$cf63]
 	call Function1723c
 	ld de, $9310
-	ld a, $fd
+	ld a, EGG
 	call Function17224
-	ld de, $22
+	ld de, MUSIC_EVOLUTION
 	call PlayMusic
 	call EnableLCD
 	ld hl, $c4f7
 	ld b, $98
 	ld c, $31
-	ld a, $fd
+	ld a, EGG
 	call Function17254
 	ld c, $50
 	call DelayFrames
@@ -30540,7 +30592,7 @@
 	call Function1736d
 	jr .asm_172ee
 .asm_17327
-	ld de, $a6
+	ld de, SFX_EGG_HATCH
 	call PlaySFX
 	xor a
 	ld [hSCX], a ; $ff00+$cf
@@ -30591,16 +30643,18 @@
 	ld hl, $3
 	add hl, bc
 	ld [hl], $0
-	ld de, $9e
+	ld de, SFX_EGG_CRACK
 	jp PlaySFX
 ; 17393 (5:7393)
 
+EggHatchGFX: ; 17393
 INCBIN "baserom.gbc",$17393,$173b3 - $17393
+; 173b3
 
 ; known jump sources: 17336 (5:7336)
 Function173b3: ; 173b3 (5:73b3)
 	callba Function8cf53
-	ld hl, $73ef
+	ld hl, Unknown_173ef
 .asm_173bc
 	ld a, [hli]
 	cp $ff
@@ -30631,13 +30685,26 @@
 	pop hl
 	jr .asm_173bc
 .asm_173e5
-	ld de, $a6
+	ld de, SFX_EGG_HATCH
 	call PlaySFX
 	call Function1727f
 	ret
 ; 173ef (5:73ef)
 
-INCBIN "baserom.gbc",$173ef,$17418 - $173ef
+Unknown_173ef: ; 173ef
+; Probably OAM.
+	db $54, $48, $00, $3c
+	db $5c, $48, $01, $04
+	db $54, $50, $00, $30
+	db $5c, $50, $01, $10
+	db $54, $58, $02, $24
+	db $5c, $58, $03, $1c
+	db $50, $4c, $00, $36
+	db $60, $4c, $01, $0a
+	db $50, $54, $02, $2a
+	db $60, $54, $03, $16
+	db $ff
+; 17418
 
 ; known jump sources: 17346 (5:7346)
 Function17418: ; 17418 (5:7418)
@@ -30649,7 +30716,7 @@
 	ret
 
 Function17421: ; 17421
-	ld hl, $7467
+	ld hl, UnknownText_0x17467
 	call PrintText
 	ld a, [BreedMon1Species]
 	call Function37ce
@@ -30662,7 +30729,7 @@
 	jp PrintText
 
 Function17440: ; 17440
-	ld hl, $7462
+	ld hl, UnknownText_0x17462
 	call PrintText
 	ld a, [BreedMon2Species]
 	call Function37ce
@@ -30678,8 +30745,18 @@
 	jp Functiona80
 ; 17462
 
-INCBIN "baserom.gbc",$17462,$1746c - $17462
+UnknownText_0x17462: ; 0x17462
+	; It's @ that was left with the DAY-CARE LADY.
+	text_jump UnknownText_0x1c0df3
+	db "@"
+; 0x17467
 
+UnknownText_0x17467: ; 0x17467
+	; It's @ that was left with the DAY-CARE MAN.
+	text_jump UnknownText_0x1c0e24
+	db "@"
+; 0x1746c
+
 Function1746c: ; 1746c
 	push bc
 	ld de, StringBuffer1
@@ -30688,27 +30765,64 @@
 	call Function16e1d
 	pop bc
 	ld a, [$d265]
-	ld hl, $749c
+	ld hl, UnknownText_0x1749c
 	cp $ff
 	jr z, .asm_1749b
-	ld hl, $74a1
+	ld hl, UnknownText_0x174a1
 	and a
 	jr z, .asm_1749b
-	ld hl, $74a6
-	cp $e6
+	ld hl, UnknownText_0x174a6
+	cp 230
 	jr nc, .asm_1749b
-	cp $46
-	ld hl, $74ab
+	cp 70
+	ld hl, UnknownText_0x174ab
 	jr nc, .asm_1749b
-	ld hl, $74b0
+	ld hl, UnknownText_0x174b0
 
 .asm_1749b
 	ret
 ; 1749c
 
-INCBIN "baserom.gbc",$1749c,$174ba - $1749c
+UnknownText_0x1749c: ; 0x1749c
+	; It's brimming with energy.
+	text_jump UnknownText_0x1c0e54
+	db "@"
+; 0x174a1
 
+UnknownText_0x174a1: ; 0x174a1
+	; It has no interest in @ .
+	text_jump UnknownText_0x1c0e6f
+	db "@"
+; 0x174a6
 
+UnknownText_0x174a6: ; 0x174a6
+	; It appears to care for @ .
+	text_jump UnknownText_0x1c0e8d
+	db "@"
+; 0x174ab
+
+UnknownText_0x174ab: ; 0x174ab
+	; It's friendly with @ .
+	text_jump UnknownText_0x1c0eac
+	db "@"
+; 0x174b0
+
+UnknownText_0x174b0: ; 0x174b0
+	; It shows interest in @ .
+	text_jump UnknownText_0x1c0ec6
+	db "@"
+; 0x174b5
+
+Function_174b5: ; 174b5
+	ld hl, String_174b9
+	ret
+; 174b9
+
+String_174b9: ; 174b9
+	db "@"
+; 174ba
+
+
 SECTION "Tileset Data 1", ROMX, BANK[TILESETS_1]
 
 INCLUDE "tilesets/data_1.asm"
@@ -53701,10 +53815,100 @@
 	ret
 ; 4d01e
 
-INCBIN "baserom.gbc",$4d01e,$4d15b - $4d01e
+MapTriggers:: ; 4d01e
+; Map triggers
 
+trigger_def: MACRO
+; db group, map
+; dw address
+	map \1
+	dw \2
+ENDM
 
-Function4d15b: ; 4d15b
+	trigger_def POKECENTER_2F,                          wPokecenter2FTrigger
+	trigger_def TRADE_CENTER,                           wTradeCenterTrigger
+	trigger_def COLOSSEUM,                              wColosseumTrigger
+	trigger_def TIME_CAPSULE,                           wTimeCapsuleTrigger
+	trigger_def POWER_PLANT,                            wPowerPlantTrigger
+	trigger_def CERULEAN_GYM,                           wCeruleanGymTrigger
+	trigger_def ROUTE_25,                               wRoute25Trigger
+	trigger_def TRAINER_HOUSE_B1F,                      wTrainerHouseB1FTrigger
+	trigger_def VICTORY_ROAD_GATE,                      wVictoryRoadGateTrigger
+	trigger_def SAFFRON_TRAIN_STATION,                  wSaffronTrainStationTrigger
+	trigger_def ROUTE_16_GATE,                          wRoute16GateTrigger
+	trigger_def ROUTE_17_18_GATE,                       wRoute1718GateTrigger
+	trigger_def INDIGO_PLATEAU_POKECENTER_1F,           wIndigoPlateauPokecenter1FTrigger
+	trigger_def WILLS_ROOM,                             wWillsRoomTrigger
+	trigger_def KOGAS_ROOM,                             wKogasRoomTrigger
+	trigger_def BRUNOS_ROOM,                            wBrunosRoomTrigger
+	trigger_def KARENS_ROOM,                            wKarensRoomTrigger
+	trigger_def LANCES_ROOM,                            wLancesRoomTrigger
+	trigger_def HALL_OF_FAME,                           wHallOfFameTrigger
+	trigger_def ROUTE_27,                               wRoute27Trigger
+	trigger_def NEW_BARK_TOWN,                          wNewBarkTownTrigger
+	trigger_def ELMS_LAB,                               wElmsLabTrigger
+	trigger_def KRISS_HOUSE_1F,                         wKrissHouse1FTrigger
+	trigger_def ROUTE_29,                               wRoute29Trigger
+	trigger_def CHERRYGROVE_CITY,                       wCherrygroveCityTrigger
+	trigger_def MR_POKEMONS_HOUSE,                      wMrPokemonsHouseTrigger
+	trigger_def ROUTE_32,                               wRoute32Trigger
+	trigger_def ROUTE_35_NATIONAL_PARK_GATE,            wRoute35NationalParkGateTrigger
+	trigger_def ROUTE_36,                               wRoute36Trigger
+	trigger_def ROUTE_36_NATIONAL_PARK_GATE,            wRoute36NationalParkGateTrigger
+	trigger_def AZALEA_TOWN,                            wAzaleaTownTrigger
+	trigger_def GOLDENROD_GYM,                          wGoldenrodGymTrigger
+	trigger_def GOLDENROD_MAGNET_TRAIN_STATION,         wGoldenrodMagnetTrainStationTrigger
+	trigger_def GOLDENROD_POKECENTER_1F,                wGoldenrodPokecenter1FTrigger
+	trigger_def OLIVINE_CITY,                           wOlivineCityTrigger
+	trigger_def ROUTE_34,                               wRoute34Trigger
+	trigger_def ROUTE_34_ILEX_FOREST_GATE,              wRoute34IlexForestGateTrigger
+	trigger_def ECRUTEAK_HOUSE,                         wEcruteakHouseTrigger
+	trigger_def WISE_TRIOS_ROOM,                        wWiseTriosRoomTrigger
+	trigger_def ECRUTEAK_POKECENTER_1F,                 wEcruteakPokecenter1FTrigger
+	trigger_def ECRUTEAK_GYM,                           wEcruteakGymTrigger
+	trigger_def MAHOGANY_TOWN,                          wMahoganyTownTrigger
+	trigger_def ROUTE_42,                               wRoute42Trigger
+	trigger_def CIANWOOD_CITY,                          wCianwoodCityTrigger
+	trigger_def BATTLE_TOWER_1F,                        wBattleTower1FTrigger
+	trigger_def BATTLE_TOWER_BATTLE_ROOM,               wBattleTowerBattleRoomTrigger
+	trigger_def BATTLE_TOWER_ELEVATOR,                  wBattleTowerElevatorTrigger
+	trigger_def BATTLE_TOWER_HALLWAY,                   wBattleTowerHallwayTrigger
+	trigger_def BATTLE_TOWER_OUTSIDE,                   wBattleTowerOutsideTrigger
+	trigger_def ROUTE_43_GATE,                          wRoute43GateTrigger
+	trigger_def MOUNT_MOON,                             wMountMoonTrigger
+	trigger_def SPROUT_TOWER_3F,                        wSproutTower3FTrigger
+	trigger_def TIN_TOWER_1F,                           wTinTower1FTrigger
+	trigger_def BURNED_TOWER_1F,                        wBurnedTower1FTrigger
+	trigger_def BURNED_TOWER_B1F,                       wBurnedTowerB1FTrigger
+	trigger_def RADIO_TOWER_5F,                         wRadioTower5FTrigger
+	trigger_def RUINS_OF_ALPH_OUTSIDE,                  wRuinsOfAlphOutsideTrigger
+	trigger_def RUINS_OF_ALPH_RESEARCH_CENTER,          wRuinsOfAlphResearchCenterTrigger
+	trigger_def RUINS_OF_ALPH_HO_OH_CHAMBER,            wRuinsOfAlphHoOhChamberTrigger
+	trigger_def RUINS_OF_ALPH_KABUTO_CHAMBER,           wRuinsOfAlphKabutoChamberTrigger
+	trigger_def RUINS_OF_ALPH_OMANYTE_CHAMBER,          wRuinsOfAlphOmanyteChamberTrigger
+	trigger_def RUINS_OF_ALPH_AERODACTYL_CHAMBER,       wRuinsOfAlphAerodactylChamberTrigger
+	trigger_def RUINS_OF_ALPH_INNER_CHAMBER,            wRuinsOfAlphInnerChamberTrigger
+	trigger_def MAHOGANY_MART_1F,                       wMahoganyMart1FTrigger
+	trigger_def TEAM_ROCKET_BASE_B1F,                   wTeamRocketBaseB1FTrigger
+	trigger_def TEAM_ROCKET_BASE_B2F,                   wTeamRocketBaseB2FTrigger
+	trigger_def TEAM_ROCKET_BASE_B3F,                   wTeamRocketBaseB3FTrigger
+	trigger_def UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, wUndergroundPathSwitchRoomEntrancesTrigger
+	trigger_def SILVER_CAVE_ROOM_3,                     wSilverCaveRoom3Trigger
+	trigger_def VICTORY_ROAD,                           wVictoryRoadTrigger
+	trigger_def DRAGONS_DEN_B1F,                        wDragonsDenB1FTrigger
+	trigger_def DRAGON_SHRINE,                          wDragonShrineTrigger
+	trigger_def OLIVINE_PORT,                           wOlivinePortTrigger
+	trigger_def VERMILION_PORT,                         wVermilionPortTrigger
+	trigger_def FAST_SHIP_1F,                           wFastShip1FTrigger
+	trigger_def FAST_SHIP_B1F,                          wFastShipB1FTrigger
+	trigger_def MOUNT_MOON_SQUARE,                      wMountMoonSquareTrigger
+	trigger_def MOBILE_TRADE_ROOM_MOBILE,               wMobileTradeRoomMobileTrigger
+	trigger_def MOBILE_BATTLE_ROOM,                     wMobileBattleRoomTrigger
+	db $ff
+; 4d15b
+
+
+Function4d15b:: ; 4d15b
 	ld hl, EnemyMoveAnimation
 	ld a, [$d196]
 	and a
@@ -61275,12 +61479,12 @@
 INCBIN "baserom.gbc",$842b7,$842db - $842b7
 
 
-Function842db: ; 842db
+Function842db:: ; 842db
 	ld a, [$c2d5]
 	add a
 	ld e, a
-	ld d, $0
-	ld hl, $42ea
+	ld d, 0
+	ld hl, Jumptable_842ea
 	add hl, de
 	ld a, [hli]
 	ld h, [hl]
@@ -91894,7 +92098,7 @@
 	call Function210f
 	call Function2e50
 	call Function2e5d
-	call Function212a
+	call GetCurrentMapTrigger
 	call Function2e56
 	ld a, $5
 	call Function263b
@@ -98548,7 +98752,7 @@
 	ld b, a
 	ld a, [MapNumber]
 	ld c, a
-	call Function2147
+	call GetMapTrigger
 	ld a, d
 	or e
 	jr z, .asm_11b872
--- a/stats/egg_move_pointers.asm
+++ b/stats/egg_move_pointers.asm
@@ -1,4 +1,4 @@
-EggMovePointers: ; 0x23b11
+EggMovePointers:: ; 0x23b11
 	dw BulbasaurEggMoves
 	dw NoEggMoves
 	dw NoEggMoves
--- a/stats/egg_moves.asm
+++ b/stats/egg_moves.asm
@@ -13,6 +13,8 @@
 INCLUDE "stats/egg_move_pointers.asm"
 
 
+EggMoves::
+
 BulbasaurEggMoves:
 	db LIGHT_SCREEN
 	db SKULL_BASH
--- a/wram.asm
+++ b/wram.asm
@@ -1782,6 +1782,89 @@
 FarfetchdPosition:: ; d964
 	ds 1 ; which position the ilex farfetch'd is in
 
+SECTION "Map Triggers", WRAMX[$d972], BANK[1]
+
+wPokecenter2FTrigger::                       ds 1 ; d972
+wTradeCenterTrigger::                        ds 1 ; d973
+wColosseumTrigger::                          ds 1 ; d974
+wTimeCapsuleTrigger::                        ds 1 ; d975
+wPowerPlantTrigger::                         ds 1 ; d976
+wCeruleanGymTrigger::                        ds 1 ; d977
+wRoute25Trigger::                            ds 1 ; d978
+wTrainerHouseB1FTrigger::                    ds 1 ; d979
+wVictoryRoadGateTrigger::                    ds 1 ; d97a
+wSaffronTrainStationTrigger::                ds 1 ; d97b
+wRoute16GateTrigger::                        ds 1 ; d97c
+wRoute1718GateTrigger::                      ds 1 ; d97d
+wIndigoPlateauPokecenter1FTrigger::          ds 1 ; d97e
+wWillsRoomTrigger::                          ds 1 ; d97f
+wKogasRoomTrigger::                          ds 1 ; d980
+wBrunosRoomTrigger::                         ds 1 ; d981
+wKarensRoomTrigger::                         ds 1 ; d982
+wLancesRoomTrigger::                         ds 1 ; d983
+wHallOfFameTrigger::                         ds 1 ; d984
+wRoute27Trigger::                            ds 1 ; d985
+wNewBarkTownTrigger::                        ds 1 ; d986
+wElmsLabTrigger::                            ds 1 ; d987
+wKrissHouse1FTrigger::                       ds 1 ; d988
+wRoute29Trigger::                            ds 1 ; d989
+wCherrygroveCityTrigger::                    ds 1 ; d98a
+wMrPokemonsHouseTrigger::                    ds 1 ; d98b
+wRoute32Trigger::                            ds 1 ; d98c
+wRoute35NationalParkGateTrigger::            ds 1 ; d98d
+wRoute36Trigger::                            ds 1 ; d98e
+wRoute36NationalParkGateTrigger::            ds 1 ; d98f
+wAzaleaTownTrigger::                         ds 1 ; d990
+wGoldenrodGymTrigger::                       ds 1 ; d991
+wGoldenrodMagnetTrainStationTrigger::        ds 1 ; d992
+wGoldenrodPokecenter1FTrigger::              ds 1 ; d993
+wOlivineCityTrigger::                        ds 1 ; d994
+wRoute34Trigger::                            ds 1 ; d995
+wRoute34IlexForestGateTrigger::              ds 1 ; d996
+wEcruteakHouseTrigger::                      ds 1 ; d997
+wWiseTriosRoomTrigger::                      ds 1 ; d998
+wEcruteakPokecenter1FTrigger::               ds 1 ; d999
+wEcruteakGymTrigger::                        ds 1 ; d99a
+wMahoganyTownTrigger::                       ds 1 ; d99b
+wRoute42Trigger::                            ds 1 ; d99c
+wCianwoodCityTrigger::                       ds 1 ; d99d
+wBattleTower1FTrigger::                      ds 1 ; d99e
+wBattleTowerBattleRoomTrigger::              ds 1 ; d99f
+wBattleTowerElevatorTrigger::                ds 1 ; d9a0
+wBattleTowerHallwayTrigger::                 ds 1 ; d9a1
+wBattleTowerOutsideTrigger::                 ds 1 ; d9a2
+wRoute43GateTrigger::                        ds 1 ; d9a3
+wMountMoonTrigger::                          ds 1 ; d9a4
+wSproutTower3FTrigger::                      ds 1 ; d9a5
+wTinTower1FTrigger::                         ds 1 ; d9a6
+wBurnedTower1FTrigger::                      ds 1 ; d9a7
+wBurnedTowerB1FTrigger::                     ds 1 ; d9a8
+wRadioTower5FTrigger::                       ds 1 ; d9a9
+wRuinsOfAlphOutsideTrigger::                 ds 1 ; d9aa
+wRuinsOfAlphResearchCenterTrigger::          ds 1 ; d9ab
+wRuinsOfAlphHoOhChamberTrigger::             ds 1 ; d9ac
+wRuinsOfAlphKabutoChamberTrigger::           ds 1 ; d9ad
+wRuinsOfAlphOmanyteChamberTrigger::          ds 1 ; d9ae
+wRuinsOfAlphAerodactylChamberTrigger::       ds 1 ; d9af
+wRuinsOfAlphInnerChamberTrigger::            ds 1 ; d9b0
+wMahoganyMart1FTrigger::                     ds 1 ; d9b1
+wTeamRocketBaseB1FTrigger::                  ds 1 ; d9b2
+wTeamRocketBaseB2FTrigger::                  ds 1 ; d9b3
+wTeamRocketBaseB3FTrigger::                  ds 1 ; d9b4
+wUndergroundPathSwitchRoomEntrancesTrigger:: ds 1 ; d9b5
+wSilverCaveRoom3Trigger::                    ds 1 ; d9b6
+wVictoryRoadTrigger::                        ds 1 ; d9b7
+wDragonsDenB1FTrigger::                      ds 1 ; d9b8
+wDragonShrineTrigger::                       ds 1 ; d9b9
+wOlivinePortTrigger::                        ds 1 ; d9ba
+wVermilionPortTrigger::                      ds 1 ; d9bb
+wFastShip1FTrigger::                         ds 1 ; d9bc
+wFastShipB1FTrigger::                        ds 1 ; d9bd
+wMountMoonSquareTrigger::                    ds 1 ; d9be
+wMobileTradeRoomMobileTrigger::              ds 1 ; d9bf
+wMobileBattleRoomTrigger::                   ds 1 ; d9c0
+
+
 SECTION "Events",WRAMX[$da72],BANK[1]
 
 EventFlags:: ; da72