shithub: pokecrystal

Download patch

ref: 707020f9be6548b2ea24eda0819c6202b3531571
parent: 5b9ba5d921c7d389edc0a72a520df09d8d3ec3a1
parent: 9ce74b3d2c7b0a6a678e234fd06dd898e1e372d0
author: pikalaxalt <PikalaxALT@gmail.com>
date: Sat Mar 19 15:46:39 EDT 2016

Merge branch 'master' of https://github.com/pret/pokecrystal

--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,7 +1,9 @@
 The source files are assembled into a rom using [**rgbds**](https://github.com/bentley/rgbds).
 These instructions explain how to set up the tools required to build.
 
+If you run into trouble, ask on irc ([**freenode#pret**](https://kiwiirc.com/client/irc.freenode.net/?#pret)).
 
+
 # Linux
 
 Python 2.7 is required.
@@ -50,12 +52,12 @@
 
 # Windows
 
-To build on Windows, use [**Cygwin**](http://cygwin.com/install.html). Use the default settings.
+To build on Windows, install [**Cygwin**](http://cygwin.com/install.html) with the default settings.
 
 In the installer, select the following packages: `make` `git` `python` `gettext`
 
 Then get the most recent version of [**rgbds**](https://github.com/bentley/rgbds/releases/).
-Extract the archive and put `rgbasm.exe`, `rgblink.exe` and `rgbfix.exe` in `C:\cygwin\usr\local\bin`.
+Extract the archive and put `rgbasm.exe`, `rgblink.exe` and `rgbfix.exe` in `C:\cygwin64\usr\local\bin`.
 
 In the **Cygwin terminal**:
 
--- a/Makefile
+++ b/Makefile
@@ -53,11 +53,11 @@
 	rgbasm -o $@ $<
 
 pokecrystal11.gbc: $(crystal11_obj)
-	rgblink -n $*.sym -m $*.map -o $@ $^
+	rgblink -n pokecrystal11.sym -m pokecrystal11.map -o $@ $^
 	rgbfix -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -n 1 -p 0 -r 3 -t PM_CRYSTAL $@
 
 pokecrystal.gbc: $(crystal_obj)
-	rgblink -n $*.sym -m $*.map -o $@ $^
+	rgblink -n pokecrystal.sym -m pokecrystal.map -o $@ $^
 	rgbfix -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@
 
 %.png: ;
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@
 ## See also
 
 * Disassembly of [**Pokémon Red/Blue**][pokered]
-* irc: **irc.freenode.net** [**#pret**][irc]
+* irc: [**freenode#pret**][irc]
 
 [pokered]: https://github.com/iimarckus/pokered
 [irc]: https://kiwiirc.com/client/irc.freenode.net/?#pret
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -212,3 +212,26 @@
 NUM_KANTO_BADGES EQU const_value
 NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES
 NUM_KANA EQU $2d
+
+
+SWARM_DUNSPARCE EQU 0
+SWARM_YANMA     EQU 1
+
+FISHSWARM_QWILFISH EQU 1
+FISHSWARM_REMORAID EQU 2
+
+	const_def
+	const FISHGROUP_NONE
+	const FISHGROUP_SHORE
+	const FISHGROUP_OCEAN
+	const FISHGROUP_LAKE
+	const FISHGROUP_POND
+	const FISHGROUP_DRATINI
+	const FISHGROUP_QWILFISH_SWARM
+	const FISHGROUP_REMORAID_SWARM
+	const FISHGROUP_GYARADOS
+	const FISHGROUP_DRATINI_2
+	const FISHGROUP_WHIRL_ISLANDS
+	const FISHGROUP_QWILFISH
+	const FISHGROUP_REMORAID
+	const FISHGROUP_QWILFISH_NO_SWARM
--- a/data/wild/fish.asm
+++ b/data/wild/fish.asm
@@ -1,494 +1,225 @@
-FishAction: ; 92402
-; Using a fishing rod.
-; Fish for monsters with rod e in encounter group d.
-; Return monster e at level d.
+FishGroups: ; 92488
+	dbwww 50 percent + 1, .Shore_Old,            .Shore_Good,            .Shore_Super
+	dbwww 50 percent + 1, .Ocean_Old,            .Ocean_Good,            .Ocean_Super
+	dbwww 50 percent + 1, .Lake_Old,             .Lake_Good,             .Lake_Super
+	dbwww 50 percent + 1, .Pond_Old,             .Pond_Good,             .Pond_Super
+	dbwww 50 percent + 1, .Dratini_Old,          .Dratini_Good,          .Dratini_Super
+	dbwww 50 percent + 1, .Qwilfish_Swarm_Old,   .Qwilfish_Swarm_Good,   .Qwilfish_Swarm_Super
+	dbwww 50 percent + 1, .Remoraid_Swarm_Old,   .Remoraid_Swarm_Good,   .Remoraid_Swarm_Super
+	dbwww 50 percent + 1, .Gyarados_Old,         .Gyarados_Good,         .Gyarados_Super
+	dbwww 50 percent + 1, .Dratini_2_Old,        .Dratini_2_Good,        .Dratini_2_Super
+	dbwww 50 percent + 1, .WhirlIslands_Old,     .WhirlIslands_Good,     .WhirlIslands_Super
+	dbwww 50 percent + 1, .Qwilfish_Old,         .Qwilfish_Good,         .Qwilfish_Super
+	dbwww 50 percent + 1, .Remoraid_Old,         .Remoraid_Good,         .Remoraid_Super
+	dbwww 50 percent + 1, .Qwilfish_NoSwarm_Old, .Qwilfish_NoSwarm_Good, .Qwilfish_NoSwarm_Super
 
-	push af
-	push bc
-	push hl
+.Shore_Old: ; 924e3
+	db  70 percent + 1, MAGIKARP,   10
+	db  85 percent + 1, MAGIKARP,   10
+	db 100 percent,     KRABBY,     10
+.Shore_Good: ; 924ec
+	db  35 percent,     MAGIKARP,   20
+	db  70 percent,     KRABBY,     20
+	db  90 percent + 1, KRABBY,     20
+	db 100 percent,     0, 0
+.Shore_Super: ; 924f8
+	db  40 percent,     KRABBY,     40
+	db  70 percent,     0, 1
+	db  90 percent + 1, KRABBY,     40
+	db 100 percent,     KINGLER,    40
 
-; Get the fishing group for this map.
-	ld b, e
-	call GetFishGroupHeader
+.Ocean_Old: ; 92504
+	db  70 percent + 1, MAGIKARP,   10
+	db  85 percent + 1, MAGIKARP,   10
+	db 100 percent,     TENTACOOL,  10
+.Ocean_Good: ; 9250d
+	db  35 percent,     MAGIKARP,   20
+	db  70 percent,     TENTACOOL,  20
+	db  90 percent + 1, CHINCHOU,   20
+	db 100 percent,     0, 2
+.Ocean_Super: ; 92519
+	db  40 percent,     CHINCHOU,   40
+	db  70 percent,     0, 3
+	db  90 percent + 1, TENTACRUEL, 40
+	db 100 percent,     LANTURN,    40
 
-	ld hl, FishGroupHeaders
-rept 7
-	add hl, de
-endr
+.Lake_Old: ; 92525
+	db  70 percent + 1, MAGIKARP,   10
+	db  85 percent + 1, MAGIKARP,   10
+	db 100 percent,     GOLDEEN,    10
+.Lake_Good: ; 9252e
+	db  35 percent,     MAGIKARP,   20
+	db  70 percent,     GOLDEEN,    20
+	db  90 percent + 1, GOLDEEN,    20
+	db 100 percent,     0, 4
+.Lake_Super: ; 9253a
+	db  40 percent,     GOLDEEN,    40
+	db  70 percent,     0, 5
+	db  90 percent + 1, MAGIKARP,   40
+	db 100 percent,     SEAKING,    40
 
-	call Fish
+.Pond_Old: ; 92546
+	db  70 percent + 1, MAGIKARP,   10
+	db  85 percent + 1, MAGIKARP,   10
+	db 100 percent,     POLIWAG,    10
+.Pond_Good: ; 9254f
+	db  35 percent,     MAGIKARP,   20
+	db  70 percent,     POLIWAG,    20
+	db  90 percent + 1, POLIWAG,    20
+	db 100 percent,     0, 6
+.Pond_Super: ; 9255b
+	db  40 percent,     POLIWAG,    40
+	db  70 percent,     0, 7
+	db  90 percent + 1, MAGIKARP,   40
+	db 100 percent,     POLIWAG,    40
 
-	pop hl
-	pop bc
-	pop af
-	ret
-; 9241a
+.Dratini_Old: ; 92567
+	db  70 percent + 1, MAGIKARP,   10
+	db  85 percent + 1, MAGIKARP,   10
+	db 100 percent,     MAGIKARP,   10
+.Dratini_Good: ; 92570
+	db  35 percent,     MAGIKARP,   20
+	db  70 percent,     MAGIKARP,   20
+	db  90 percent + 1, MAGIKARP,   20
+	db 100 percent,     0, 8
+.Dratini_Super: ; 9257c
+	db  40 percent,     MAGIKARP,   40
+	db  70 percent,     0, 9
+	db  90 percent + 1, MAGIKARP,   40
+	db 100 percent,     DRAGONAIR,  40
 
-
-Fish: ; 9241a
-; Grandfathered from Red.
-
-; Fish for monsters with rod b from encounter data in FishGroup at hl.
-; Return monster e at level d.
-
-	call Random
-
-; Got a bite?
-	cp [hl]
-	jr nc, .NoBite
-
-; Get encounter data by rod:
-; 	0: Old
-; 	1: Good
-; 	2: Super
-	inc hl
-	ld e, b
-	ld d, 0
-rept 2
-	add hl, de
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-
-; Encounter chance for this monster:
-	call Random
-
-.CheckEncounter
-	cp [hl]
-	jr z, .ReadMon
-	jr c, .ReadMon
-
-; Next monster...
-rept 3
-	inc hl
-endr
-	jr .CheckEncounter
-
-.ReadMon
-; We're done with the encounter chance
-	inc hl
-
-; Species 0 triggers a read from a time-based encounter table.
-	ld a, [hli]
-	ld d, a
-	and a
-	call z, .TimeEncounter
-
-; Level
-	ld e, [hl]
-	ret
-
-.NoBite
-	ld de, 0
-	ret
-
-.TimeEncounter
-
-; The level byte is repurposed as the index for the new table.
-	ld e, [hl]
-	ld d, 0
-	ld hl, TimeFishGroups
-rept 4
-	add hl, de
-endr
-
-; One nightmon, then one daymon
-	ld a, [TimeOfDay]
-	and 3
-	cp NITE
-	jr c, .TimeSpecies
-rept 2
-	inc hl
-endr
-
-.TimeSpecies
-	ld d, [hl]
-	inc hl
-	ret
-; 9245b
-
-
-
-
-GetFishGroupHeader: ; 9245b
-; Return fishing encounter group header d in de.
-
-	push hl
-	ld hl, DailyFlags
-	bit 2, [hl]
-	pop hl
-	jr z, .end
-
-; Groups 11 and 12 have special attributes.
-	ld a, d
-	cp 11
-	jr z, .group11
-	cp 12
-	jr z, .group12
-
-.end
-	dec d
-	ld e, d
-	ld d, 0
-	ret
-
-.group11
-	ld a, [wFishingSwarmFlag]
-	cp 1
-	jr nz, .end
-	ld d, 6
-	jr .end
-
-.group12
-	ld a, [wFishingSwarmFlag]
-	cp 2
-	jr nz, .end
-	ld d, 7
-	jr .end
-; 92488
-
-
-FishGroupHeaders:
-
-FishGroup1Header: ; 92488
-	db $80 ; 50%
-	dw FishGroup1_Old
-	dw FishGroup1_Good
-	dw FishGroup1_Super
-
-FishGroup2Header: ; 9248f
-	db $80 ; 50%
-	dw FishGroup2_Old
-	dw FishGroup2_Good
-	dw FishGroup2_Super
-
-FishGroup3Header: ; 92496
-	db $80 ; 50%
-	dw FishGroup3_Old
-	dw FishGroup3_Good
-	dw FishGroup3_Super
-
-FishGroup4Header: ; 9249d
-	db $80 ; 50%
-	dw FishGroup4_Old
-	dw FishGroup4_Good
-	dw FishGroup4_Super
-
-FishGroup5Header: ; 924a4
-	db $80 ; 50%
-	dw FishGroup5_Old
-	dw FishGroup5_Good
-	dw FishGroup5_Super
-
-FishGroup6Header: ; 924ab
-	db $80 ; 50%
-	dw FishGroup6_Old
-	dw FishGroup6_Good
-	dw FishGroup6_Super
-
-FishGroup7Header: ; 924b2
-	db $80 ; 50%
-	dw FishGroup7_Old
-	dw FishGroup7_Good
-	dw FishGroup7_Super
-
-FishGroup8Header: ; 924b9
-	db $80 ; 50%
-	dw FishGroup8_Old
-	dw FishGroup8_Good
-	dw FishGroup8_Super
-
-FishGroup9Header: ; 924c0
-	db $80 ; 50%
-	dw FishGroup9_Old
-	dw FishGroup9_Good
-	dw FishGroup9_Super
-
-FishGroup10Header: ; 924c7
-	db $80 ; 50%
-	dw FishGroup10_Old
-	dw FishGroup10_Good
-	dw FishGroup10_Super
-
-FishGroup11Header: ; 924ce
-	db $80 ; 50%
-	dw FishGroup11_Old
-	dw FishGroup11_Good
-	dw FishGroup11_Super
-
-FishGroup12Header: ; 924d5
-	db $80 ; 50%
-	dw FishGroup12_Old
-	dw FishGroup12_Good
-	dw FishGroup12_Super
-
-FishGroup13Header: ; 924dc
-	db $80 ; 50%
-	dw FishGroup11_Old
-	dw FishGroup11_Good
-	dw FishGroup11_Super
-
-FishGroup1:
-FishGroup1_Old: ; 924e3
-	db $b3, MAGIKARP,   10
-	db $d9, MAGIKARP,   10
-	db -1, KRABBY,     10
-FishGroup1_Good: ; 924ec
-	db $59, MAGIKARP,   20
-	db $b2, KRABBY,     20
-	db $e6, KRABBY,     20
-	db -1, $0,         0
-FishGroup1_Super: ; 924f8
-	db $66, KRABBY,     40
-	db $b2, $0,         1
-	db $e6, KRABBY,     40
-	db -1, KINGLER,    40
-
-FishGroup2:
-FishGroup2_Old: ; 92504
-	db $b3, MAGIKARP,   10
-	db $d9, MAGIKARP,   10
-	db -1, TENTACOOL,  10
-FishGroup2_Good: ; 9250d
-	db $59, MAGIKARP,   20
-	db $b2, TENTACOOL,  20
-	db $e6, CHINCHOU,   20
-	db -1, $0,         2
-FishGroup2_Super: ; 92519
-	db $66, CHINCHOU,   40
-	db $b2, $0,         3
-	db $e6, TENTACRUEL, 40
-	db -1, LANTURN,    40
-
-FishGroup3:
-FishGroup3_Old: ; 92525
-	db $b3, MAGIKARP,   10
-	db $d9, MAGIKARP,   10
-	db -1, GOLDEEN,    10
-FishGroup3_Good: ; 9252e
-	db $59, MAGIKARP,   20
-	db $b2, GOLDEEN,    20
-	db $e6, GOLDEEN,    20
-	db -1, $0,         4
-FishGroup3_Super: ; 9253a
-	db $66, GOLDEEN,    40
-	db $b2, $0,         5
-	db $e6, MAGIKARP,   40
-	db -1, SEAKING,    40
-
-FishGroup4:
-FishGroup4_Old: ; 92546
-	db $b3, MAGIKARP,   10
-	db $d9, MAGIKARP,   10
-	db -1, POLIWAG,    10
-FishGroup4_Good: ; 9254f
-	db $59, MAGIKARP,   20
-	db $b2, POLIWAG,    20
-	db $e6, POLIWAG,    20
-	db -1, $0,         6
-FishGroup4_Super: ; 9255b
-	db $66, POLIWAG,    40
-	db $b2, $0,         7
-	db $e6, MAGIKARP,   40
-	db -1, POLIWAG,    40
+.Qwilfish_Swarm_Old: ; 92588
+	db  70 percent + 1, MAGIKARP,   5
+	db  85 percent + 1, MAGIKARP,   5
+	db 100 percent,     QWILFISH,   5
+.Qwilfish_Swarm_Good: ; 92591
+	db  35 percent,     MAGIKARP,   20
+	db  70 percent,     QWILFISH,   20
+	db  90 percent + 1, QWILFISH,   20
+	db 100 percent,     0, 10
+.Qwilfish_Swarm_Super: ; 9259d
+	db  40 percent,     QWILFISH,   40
+	db  70 percent,     0, 11
+	db  90 percent + 1, QWILFISH,   40
+	db 100 percent,     QWILFISH,   40
 
-FishGroup5:
-FishGroup5_Old: ; 92567
-	db $b3, MAGIKARP,   10
-	db $d9, MAGIKARP,   10
-	db -1, MAGIKARP,   10
-FishGroup5_Good: ; 92570
-	db $59, MAGIKARP,   20
-	db $b2, MAGIKARP,   20
-	db $e6, MAGIKARP,   20
-	db -1, $0,         8
-FishGroup5_Super: ; 9257c
-	db $66, MAGIKARP,   40
-	db $b2, $0,         9
-	db $e6, MAGIKARP,   40
-	db -1, DRAGONAIR,  40
+.Remoraid_Swarm_Old: ; 925a9
+	db  70 percent + 1, MAGIKARP,   10
+	db  85 percent + 1, MAGIKARP,   10
+	db 100 percent,     REMORAID,   10
+.Remoraid_Swarm_Good: ; 925b2
+	db  35 percent,     MAGIKARP,   20
+	db  70 percent,     REMORAID,   20
+	db  90 percent + 1, REMORAID,   20
+	db 100 percent,     0, 12
+.Remoraid_Swarm_Super: ; 925be
+	db  40 percent,     REMORAID,   40
+	db  70 percent,     0, 13
+	db  90 percent + 1, REMORAID,   40
+	db 100 percent,     REMORAID,   40
 
-FishGroup6:
-FishGroup6_Old: ; 92588
-	db $b3, MAGIKARP,   5
-	db $d9, MAGIKARP,   5
-	db -1, QWILFISH,   5
-FishGroup6_Good: ; 92591
-	db $59, MAGIKARP,   20
-	db $b2, QWILFISH,   20
-	db $e6, QWILFISH,   20
-	db -1, $0,         10
-FishGroup6_Super: ; 9259d
-	db $66, QWILFISH,   40
-	db $b2, $0,         11
-	db $e6, QWILFISH,   40
-	db -1, QWILFISH,   40
+.Gyarados_Old: ; 925ca
+	db  70 percent + 1, MAGIKARP,   10
+	db  85 percent + 1, MAGIKARP,   10
+	db 100 percent,     MAGIKARP,   10
+.Gyarados_Good: ; 925d3
+	db  35 percent,     MAGIKARP,   20
+	db  70 percent,     MAGIKARP,   20
+	db  90 percent + 1, MAGIKARP,   20
+	db 100 percent,     0, 14
+.Gyarados_Super: ; 925df
+	db  40 percent,     MAGIKARP,   40
+	db  70 percent,     0, 15
+	db  90 percent + 1, MAGIKARP,   40
+	db 100 percent,     MAGIKARP,   40
 
-FishGroup7:
-FishGroup7_Old: ; 925a9
-	db $b3, MAGIKARP,   10
-	db $d9, MAGIKARP,   10
-	db -1, REMORAID,   10
-FishGroup7_Good: ; 925b2
-	db $59, MAGIKARP,   20
-	db $b2, REMORAID,   20
-	db $e6, REMORAID,   20
-	db -1, $0,         12
-FishGroup7_Super: ; 925be
-	db $66, REMORAID,   40
-	db $b2, $0,         13
-	db $e6, REMORAID,   40
-	db -1, REMORAID,   40
+.Dratini_2_Old: ; 925eb
+	db  70 percent + 1, MAGIKARP,   10
+	db  85 percent + 1, MAGIKARP,   10
+	db 100 percent,     MAGIKARP,   10
+.Dratini_2_Good: ; 925f4
+	db  35 percent,     MAGIKARP,   10
+	db  70 percent,     MAGIKARP,   10
+	db  90 percent + 1, MAGIKARP,   10
+	db 100 percent,     0, 16
+.Dratini_2_Super: ; 92600
+	db  40 percent,     MAGIKARP,   10
+	db  70 percent,     0, 17
+	db  90 percent + 1, MAGIKARP,   10
+	db 100 percent,     DRAGONAIR,  10
 
-FishGroup8:
-FishGroup8_Old: ; 925ca
-	db $b3, MAGIKARP,   10
-	db $d9, MAGIKARP,   10
-	db -1, MAGIKARP,   10
-FishGroup8_Good: ; 925d3
-	db $59, MAGIKARP,   20
-	db $b2, MAGIKARP,   20
-	db $e6, MAGIKARP,   20
-	db -1, $0,         14
-FishGroup8_Super: ; 925df
-	db $66, MAGIKARP,   40
-	db $b2, $0,         15
-	db $e6, MAGIKARP,   40
-	db -1, MAGIKARP,   40
+.WhirlIslands_Old: ; 9260c
+	db  70 percent + 1, MAGIKARP,   10
+	db  85 percent + 1, MAGIKARP,   10
+	db 100 percent,     KRABBY,     10
+.WhirlIslands_Good: ; 92615
+	db  35 percent,     MAGIKARP,   20
+	db  70 percent,     KRABBY,     20
+	db  90 percent + 1, KRABBY,     20
+	db 100 percent,     0, 18
+.WhirlIslands_Super: ; 92621
+	db  40 percent,     KRABBY,     40
+	db  70 percent,     0, 19
+	db  90 percent + 1, KINGLER,    40
+	db 100 percent,     SEADRA,     40
 
-FishGroup9:
-FishGroup9_Old: ; 925eb
-	db $b3, MAGIKARP,   10
-	db $d9, MAGIKARP,   10
-	db -1, MAGIKARP,   10
-FishGroup9_Good: ; 925f4
-	db $59, MAGIKARP,   10
-	db $b2, MAGIKARP,   10
-	db $e6, MAGIKARP,   10
-	db -1, $0,         16
-FishGroup9_Super: ; 92600
-	db $66, MAGIKARP,   10
-	db $b2, $0,         17
-	db $e6, MAGIKARP,   10
-	db -1, DRAGONAIR,  10
+.Qwilfish_NoSwarm_Old:
+.Qwilfish_Old: ; 9262d
+	db  70 percent + 1, MAGIKARP,   10
+	db  85 percent + 1, MAGIKARP,   10
+	db 100 percent,     TENTACOOL,  10
+.Qwilfish_NoSwarm_Good:
+.Qwilfish_Good: ; 92636
+	db  35 percent,     MAGIKARP,   20
+	db  70 percent,     TENTACOOL,  20
+	db  90 percent + 1, TENTACOOL,  20
+	db 100 percent,     0, 20
+.Qwilfish_NoSwarm_Super:
+.Qwilfish_Super: ; 92642
+	db  40 percent,     TENTACOOL,  40
+	db  70 percent,     0, 21
+	db  90 percent + 1, MAGIKARP,   40
+	db 100 percent,     QWILFISH,   40
 
-FishGroup10:
-FishGroup10_Old: ; 9260c
-	db $b3, MAGIKARP,   10
-	db $d9, MAGIKARP,   10
-	db -1, KRABBY,     10
-FishGroup10_Good: ; 92615
-	db $59, MAGIKARP,   20
-	db $b2, KRABBY,     20
-	db $e6, KRABBY,     20
-	db -1, $0,         18
-FishGroup10_Super: ; 92621
-	db $66, KRABBY,     40
-	db $b2, $0,         19
-	db $e6, KINGLER,    40
-	db -1, SEADRA,     40
-
-FishGroup11:
-FishGroup11_Old: ; 9262d
-	db $b3, MAGIKARP,   10
-	db $d9, MAGIKARP,   10
-	db -1, TENTACOOL,  10
-FishGroup11_Good: ; 92636
-	db $59, MAGIKARP,   20
-	db $b2, TENTACOOL,  20
-	db $e6, TENTACOOL,  20
-	db -1, $0,         20
-FishGroup11_Super: ; 92642
-	db $66, TENTACOOL,  40
-	db $b2, $0,         21
-	db $e6, MAGIKARP,   40
-	db -1, QWILFISH,   40
-
-FishGroup12:
-FishGroup12_Old: ; 9264e
-	db $b3, MAGIKARP,   10
-	db $d9, MAGIKARP,   10
-	db -1, POLIWAG,    10
-FishGroup12_Good: ; 92657
-	db $59, MAGIKARP,   20
-	db $b2, POLIWAG,    20
-	db $e6, POLIWAG,    20
-	db -1, $0,         6
-FishGroup12_Super: ; 92663
-	db $66, POLIWAG,    40
-	db $b2, $0,         7
-	db $e6, MAGIKARP,   40
-	db -1, REMORAID,   40
-
+.Remoraid_Old: ; 9264e
+	db  70 percent + 1, MAGIKARP,   10
+	db  85 percent + 1, MAGIKARP,   10
+	db 100 percent,     POLIWAG,    10
+.Remoraid_Good: ; 92657
+	db  35 percent,     MAGIKARP,   20
+	db  70 percent,     POLIWAG,    20
+	db  90 percent + 1, POLIWAG,    20
+	db 100 percent,     0, 6
+.Remoraid_Super: ; 92663
+	db  40 percent,     POLIWAG,    40
+	db  70 percent,     0, 7
+	db  90 percent + 1, MAGIKARP,   40
+	db 100 percent,     REMORAID,   40
 ; 9266f
 
-TimeFishGroups: ; 9266f
-; 0
-	db CORSOLA,    20 ; nite
-	db STARYU,     20 ; day
-; 1
-	db CORSOLA,    40 ; nite
-	db STARYU,     40 ; day
-; 2
-	db SHELLDER,   20 ; nite
-	db SHELLDER,   20 ; day
-; 3
-	db SHELLDER,   40 ; nite
-	db SHELLDER,   40 ; day
-; 4
-	db GOLDEEN,    20 ; nite
-	db GOLDEEN,    20 ; day
-; 5
-	db GOLDEEN,    40 ; nite
-	db GOLDEEN,    40 ; day
-; 6
-	db POLIWAG,    20 ; nite
-	db POLIWAG,    20 ; day
-; 7
-	db POLIWAG,    40 ; nite
-	db POLIWAG,    40 ; day
-; 8
-	db DRATINI,    20 ; nite
-	db DRATINI,    20 ; day
-; 9
-	db DRATINI,    40 ; nite
-	db DRATINI,    40 ; day
-; 10
-	db QWILFISH,   20 ; nite
-	db QWILFISH,   20 ; day
-; 11
-	db QWILFISH,   40 ; nite
-	db QWILFISH,   40 ; day
-; 12
-	db REMORAID,   20 ; nite
-	db REMORAID,   20 ; day
-; 13
-	db REMORAID,   40 ; nite
-	db REMORAID,   40 ; day
-; 14
-	db GYARADOS,   20 ; nite
-	db GYARADOS,   20 ; day
-; 15
-	db GYARADOS,   40 ; nite
-	db GYARADOS,   40 ; day
-; 16
-	db DRATINI,    10 ; nite
-	db DRATINI,    10 ; day
-; 17
-	db DRATINI,    10 ; nite
-	db DRATINI,    10 ; day
-; 18
-	db HORSEA,     20 ; nite
-	db HORSEA,     20 ; day
-; 19
-	db HORSEA,     40 ; nite
-	db HORSEA,     40 ; day
-; 20
-	db TENTACOOL,  20 ; nite
-	db TENTACOOL,  20 ; day
-; 21
-	db TENTACOOL,  40 ; nite
-	db TENTACOOL,  40 ; day
 
+TimeFishGroups: ; 9266f
+	;  day              nite
+	db CORSOLA,    20,  STARYU,     20
+	db CORSOLA,    40,  STARYU,     40
+	db SHELLDER,   20,  SHELLDER,   20
+	db SHELLDER,   40,  SHELLDER,   40
+	db GOLDEEN,    20,  GOLDEEN,    20
+	db GOLDEEN,    40,  GOLDEEN,    40
+	db POLIWAG,    20,  POLIWAG,    20
+	db POLIWAG,    40,  POLIWAG,    40
+	db DRATINI,    20,  DRATINI,    20
+	db DRATINI,    40,  DRATINI,    40
+	db QWILFISH,   20,  QWILFISH,   20
+	db QWILFISH,   40,  QWILFISH,   40
+	db REMORAID,   20,  REMORAID,   20
+	db REMORAID,   40,  REMORAID,   40
+	db GYARADOS,   20,  GYARADOS,   20
+	db GYARADOS,   40,  GYARADOS,   40
+	db DRATINI,    10,  DRATINI,    10
+	db DRATINI,    10,  DRATINI,    10
+	db HORSEA,     20,  HORSEA,     20
+	db HORSEA,     40,  HORSEA,     40
+	db TENTACOOL,  20,  TENTACOOL,  20
+	db TENTACOOL,  40,  TENTACOOL,  40
 ; 926c7
--- /dev/null
+++ b/engine/fish.asm
@@ -1,0 +1,135 @@
+Fish: ; 92402
+; Using a fishing rod.
+; Fish for monsters with rod e in encounter group d.
+; Return monster e at level d.
+
+	push af
+	push bc
+	push hl
+
+	ld b, e
+	call GetFishGroupIndex
+
+	ld hl, FishGroups
+rept 7
+	add hl, de
+endr
+	call .Fish
+
+	pop hl
+	pop bc
+	pop af
+	ret
+; 9241a
+
+
+.Fish: ; 9241a
+; Fish for monsters with rod b from encounter data in FishGroup at hl.
+; Return monster e at level d.
+
+	call Random
+	cp [hl]
+	jr nc, .no_bite
+
+	; Get encounter data by rod:
+	; 0: Old
+	; 1: Good
+	; 2: Super
+	inc hl
+	ld e, b
+	ld d, 0
+rept 2
+	add hl, de
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+
+	; Compare the encounter chance to select a Pokemon.
+	call Random
+.loop
+	cp [hl]
+	jr z, .ok
+	jr c, .ok
+rept 3
+	inc hl
+endr
+	jr .loop
+.ok
+	inc hl
+
+	; Species 0 reads from a time-based encounter table.
+	ld a, [hli]
+	ld d, a
+	and a
+	call z, .TimeEncounter
+
+	ld e, [hl]
+	ret
+
+.no_bite
+	ld de, 0
+	ret
+
+.TimeEncounter:
+	; The level byte is repurposed as the index for the new table.
+	ld e, [hl]
+	ld d, 0
+	ld hl, TimeFishGroups
+rept 4
+	add hl, de
+endr
+
+	ld a, [TimeOfDay]
+	and 3
+	cp NITE
+	jr c, .time_species
+rept 2
+	inc hl
+endr
+
+.time_species
+	ld d, [hl]
+	inc hl
+	ret
+; 9245b
+
+
+GetFishGroupIndex: ; 9245b
+; Return the index of fishgroup d in de.
+
+	push hl
+	ld hl, DailyFlags
+	bit 2, [hl]
+	pop hl
+	jr z, .done
+
+	ld a, d
+	cp FISHGROUP_QWILFISH
+	jr z, .qwilfish
+	cp FISHGROUP_REMORAID
+	jr z, .remoraid
+
+.done
+	dec d
+	ld e, d
+	ld d, 0
+	ret
+
+.qwilfish
+	ld a, [wFishingSwarmFlag]
+	cp FISHSWARM_QWILFISH
+	jr nz, .done
+	ld d, FISHGROUP_QWILFISH_SWARM
+	jr .done
+
+.remoraid
+	ld a, [wFishingSwarmFlag]
+	cp FISHSWARM_REMORAID
+	jr nz, .done
+	ld d, FISHGROUP_REMORAID_SWARM
+	jr .done
+; 92488
+
+
+INCLUDE "data/wild/fish.asm"
--- a/engine/phone_scripts.asm
+++ b/engine/phone_scripts.asm
@@ -1,6 +1,3 @@
-SWARM_DUNSPARCE EQU 0
-SWARM_YANMA     EQU 1
-
 UnusedPhoneScript: ; 0xbcea5
 	farwritetext UnusedPhoneText
 	end
@@ -832,7 +829,7 @@
 	setflag ENGINE_SPECIAL_WILDDATA
 	pokenamemem QWILFISH, $1
 	landmarktotext ROUTE_32, $2
-	writebyte $1
+	writebyte FISHSWARM_QWILFISH
 	special Special_ActivateFishingSwarm
 	farjump UnknownScript_0xa05d6
 
--- a/main.asm
+++ b/main.asm
@@ -3605,7 +3605,7 @@
 	ld d, a
 	ld a, [Buffer2]
 	ld e, a
-	callba FishAction
+	callba Fish
 	ld a, d
 	and a
 	jr z, .nonibble
@@ -10536,7 +10536,7 @@
 INCLUDE "engine/timeset.asm"
 INCLUDE "engine/pokegear.asm"
 
-INCLUDE "data/wild/fish.asm"
+INCLUDE "engine/fish.asm"
 INCLUDE "engine/slot_machine.asm"
 
 SECTION "Phone Engine", ROMX, BANK[$28]
--- a/maps/map_headers.asm
+++ b/maps/map_headers.asm
@@ -30,466 +30,466 @@
 
 
 MapGroup1:
-	map_header OlivinePokeCenter1F, TILESET_POKECENTER, INDOOR, OLIVINE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header OlivineGym, TILESET_OLIVINE_GYM, INDOOR, OLIVINE_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
-	map_header OlivineVoltorbHouse, TILESET_HOUSE_1, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
-	map_header OlivineHouseBeta, TILESET_HOUSE_1, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
-	map_header OlivinePunishmentSpeechHouse, TILESET_HOUSE_1, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
-	map_header OlivineGoodRodHouse, TILESET_HOUSE_1, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
-	map_header OlivineCafe, TILESET_GAME_CORNER, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
-	map_header OlivineMart, TILESET_MART, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
-	map_header Route38EcruteakGate, TILESET_GATE, GATE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_DAY, 1
-	map_header Route39Barn, TILESET_KURT_HOUSE, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
-	map_header Route39Farmhouse, TILESET_HOUSE_1, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
-	map_header Route38, TILESET_JOHTO_1, ROUTE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1
-	map_header Route39, TILESET_JOHTO_1, ROUTE, ROUTE_39, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1
-	map_header OlivineCity, TILESET_JOHTO_1, TOWN, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 1
+	map_header OlivinePokeCenter1F, TILESET_POKECENTER, INDOOR, OLIVINE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header OlivineGym, TILESET_OLIVINE_GYM, INDOOR, OLIVINE_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header OlivineVoltorbHouse, TILESET_HOUSE_1, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header OlivineHouseBeta, TILESET_HOUSE_1, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header OlivinePunishmentSpeechHouse, TILESET_HOUSE_1, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header OlivineGoodRodHouse, TILESET_HOUSE_1, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header OlivineCafe, TILESET_GAME_CORNER, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header OlivineMart, TILESET_MART, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route38EcruteakGate, TILESET_GATE, GATE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route39Barn, TILESET_KURT_HOUSE, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route39Farmhouse, TILESET_HOUSE_1, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route38, TILESET_JOHTO_1, ROUTE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header Route39, TILESET_JOHTO_1, ROUTE, ROUTE_39, MUSIC_ROUTE_37, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header OlivineCity, TILESET_JOHTO_1, TOWN, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, FISHGROUP_SHORE
 
 
 MapGroup2:
-	map_header MahoganyRedGyaradosSpeechHouse, TILESET_HOUSE_1, INDOOR, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
-	map_header MahoganyGym, TILESET_GYM_1, INDOOR, MAHOGANY_TOWN, MUSIC_GYM, 1, PALETTE_DAY, 1
-	map_header MahoganyPokeCenter1F, TILESET_POKECENTER, INDOOR, MAHOGANY_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header Route42EcruteakGate, TILESET_GATE, GATE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
-	map_header Route42, TILESET_JOHTO_1, ROUTE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 3
-	map_header Route44, TILESET_JOHTO_1, ROUTE, ROUTE_44, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4
-	map_header MahoganyTown, TILESET_JOHTO_1, TOWN, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1
+	map_header MahoganyRedGyaradosSpeechHouse, TILESET_HOUSE_1, INDOOR, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header MahoganyGym, TILESET_GYM_1, INDOOR, MAHOGANY_TOWN, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header MahoganyPokeCenter1F, TILESET_POKECENTER, INDOOR, MAHOGANY_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route42EcruteakGate, TILESET_GATE, GATE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route42, TILESET_JOHTO_1, ROUTE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, FISHGROUP_LAKE
+	map_header Route44, TILESET_JOHTO_1, ROUTE, ROUTE_44, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, FISHGROUP_POND
+	map_header MahoganyTown, TILESET_JOHTO_1, TOWN, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, FISHGROUP_SHORE
 
 
 MapGroup3:
-	map_header SproutTower1F, TILESET_SPROUT_TOWER, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, 1
-	map_header SproutTower2F, TILESET_SPROUT_TOWER, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, 1
-	map_header SproutTower3F, TILESET_SPROUT_TOWER, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, 1
-	map_header TinTower1F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
-	map_header TinTower2F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
-	map_header TinTower3F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
-	map_header TinTower4F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
-	map_header TinTower5F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
-	map_header TinTower6F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
-	map_header TinTower7F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
-	map_header TinTower8F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
-	map_header TinTower9F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
-	map_header BurnedTower1F, TILESET_SPROUT_TOWER, DUNGEON, BURNED_TOWER, MUSIC_BURNED_TOWER, 1, PALETTE_NITE, 1
-	map_header BurnedTowerB1F, TILESET_CAVE, CAVE, BURNED_TOWER, MUSIC_BURNED_TOWER, 1, PALETTE_NITE, 1
-	map_header NationalPark, TILESET_PARK, ROUTE, NATIONAL_PARK, MUSIC_NATIONAL_PARK, 0, PALETTE_AUTO, 1
-	map_header NationalParkBugContest, TILESET_PARK, ROUTE, NATIONAL_PARK, MUSIC_BUG_CATCHING_CONTEST, 0, PALETTE_AUTO, 1
-	map_header RadioTower1F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
-	map_header RadioTower2F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
-	map_header RadioTower3F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
-	map_header RadioTower4F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
-	map_header RadioTower5F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
-	map_header RuinsofAlphOutside, TILESET_JOHTO_1, ROUTE, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_AUTO, 4
-	map_header RuinsofAlphHoOhChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
-	map_header RuinsofAlphKabutoChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
-	map_header RuinsofAlphOmanyteChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
-	map_header RuinsofAlphAerodactylChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
-	map_header RuinsofAlphInnerChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_RUINS_OF_ALPH_INTERIOR, 1, PALETTE_DAY, 1
-	map_header RuinsofAlphResearchCenter, TILESET_POWER_PLANT, INDOOR, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_DAY, 1
-	map_header RuinsofAlphHoOhItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
-	map_header RuinsofAlphKabutoItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
-	map_header RuinsofAlphOmanyteItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
-	map_header RuinsofAlphAerodactylItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
-	map_header RuinsofAlphHoOhWordRoom, TILESET_HO_OH_WORD_ROOM, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
-	map_header RuinsofAlphKabutoWordRoom, TILESET_KABUTO_WORD_ROOM, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
-	map_header RuinsofAlphOmanyteWordRoom, TILESET_OMANYTE_WORD_ROOM, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
-	map_header RuinsofAlphAerodactylWordRoom, TILESET_AERODACTYL_WORD_ROOM, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
-	map_header UnionCave1F, TILESET_CAVE, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
-	map_header UnionCaveB1F, TILESET_CAVE, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
-	map_header UnionCaveB2F, TILESET_CAVE, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 1
-	map_header SlowpokeWellB1F, TILESET_CAVE, CAVE, SLOWPOKE_WELL, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 3
-	map_header SlowpokeWellB2F, TILESET_CAVE, CAVE, SLOWPOKE_WELL, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 3
-	map_header OlivineLighthouse1F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1
-	map_header OlivineLighthouse2F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1
-	map_header OlivineLighthouse3F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1
-	map_header OlivineLighthouse4F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1
-	map_header OlivineLighthouse5F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1
-	map_header OlivineLighthouse6F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
-	map_header MahoganyMart1F, TILESET_KURT_HOUSE, INDOOR, MAHOGANY_TOWN, MUSIC_MAHOGANY_MART, 1, PALETTE_DAY, 1
-	map_header TeamRocketBaseB1F, TILESET_UNDERGROUND, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, 1
-	map_header TeamRocketBaseB2F, TILESET_POWER_PLANT, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, 1
-	map_header TeamRocketBaseB3F, TILESET_POWER_PLANT, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, 1
-	map_header IlexForest, TILESET_ILEX_FOREST, CAVE, ILEX_FOREST, MUSIC_UNION_CAVE, 0, PALETTE_NITE, 4
-	map_header WarehouseEntrance, TILESET_GATE, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
-	map_header UndergroundPathSwitchRoomEntrances, TILESET_GYM_1, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
-	map_header GoldenrodDeptStoreB1F, TILESET_UNDERGROUND, DUNGEON, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
-	map_header UndergroundWarehouse, TILESET_UNDERGROUND, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
-	map_header MountMortar1FOutside, TILESET_WHIRL_ISLANDS, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
-	map_header MountMortar1FInside, TILESET_WHIRL_ISLANDS, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
-	map_header MountMortar2FInside, TILESET_WHIRL_ISLANDS, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
-	map_header MountMortarB1F, TILESET_WHIRL_ISLANDS, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
-	map_header IcePath1F, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5
-	map_header IcePathB1F, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5
-	map_header IcePathB2FMahoganySide, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5
-	map_header IcePathB2FBlackthornSide, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5
-	map_header IcePathB3F, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5
-	map_header WhirlIslandNW, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
-	map_header WhirlIslandNE, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
-	map_header WhirlIslandSW, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
-	map_header WhirlIslandCave, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
-	map_header WhirlIslandSE, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
-	map_header WhirlIslandB1F, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
-	map_header WhirlIslandB2F, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
-	map_header WhirlIslandLugiaChamber, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
-	map_header SilverCaveRoom1, TILESET_WHIRL_ISLANDS, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_DARK, 3
-	map_header SilverCaveRoom2, TILESET_CAVE, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_NITE, 3
-	map_header SilverCaveRoom3, TILESET_CAVE, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_DAY, 3
-	map_header SilverCaveItemRooms, TILESET_CAVE, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_NITE, 3
-	map_header DarkCaveVioletEntrance, TILESET_WHIRL_ISLANDS, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, PALETTE_DARK, 3
-	map_header DarkCaveBlackthornEntrance, TILESET_WHIRL_ISLANDS, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, PALETTE_DARK, 3
-	map_header DragonsDen1F, TILESET_CAVE, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 5
-	map_header DragonsDenB1F, TILESET_JOHTO_1, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 5
-	map_header DragonShrine, TILESET_LAB, INDOOR, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 1
-	map_header TohjoFalls, TILESET_CAVE, CAVE, TOHJO_FALLS, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
-	map_header DiglettsCave, TILESET_CAVE, CAVE, DIGLETTS_CAVE, MUSIC_MT_MOON, 1, PALETTE_NITE, 1
-	map_header MountMoon, TILESET_CAVE, CAVE, MT_MOON, MUSIC_MT_MOON, 1, PALETTE_NITE, 1
-	map_header Underground, TILESET_UNDERGROUND, GATE, UNDERGROUND, MUSIC_MT_MOON, 0, PALETTE_NITE, 1
-	map_header RockTunnel1F, TILESET_WHIRL_ISLANDS, CAVE, ROCK_TUNNEL, MUSIC_MT_MOON, 1, PALETTE_DARK, 1
-	map_header RockTunnelB1F, TILESET_WHIRL_ISLANDS, CAVE, ROCK_TUNNEL, MUSIC_MT_MOON, 1, PALETTE_DARK, 1
-	map_header SafariZoneFuchsiaGateBeta, TILESET_GATE, INDOOR, FUCHSIA_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header SafariZoneBeta, TILESET_PARK, CAVE, FUCHSIA_CITY, MUSIC_EVOLUTION, 0, PALETTE_AUTO, 1
-	map_header VictoryRoad, TILESET_CAVE, CAVE, VICTORY_ROAD, MUSIC_VICTORY_ROAD, 1, PALETTE_NITE, 1
+	map_header SproutTower1F, TILESET_SPROUT_TOWER, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header SproutTower2F, TILESET_SPROUT_TOWER, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header SproutTower3F, TILESET_SPROUT_TOWER, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TinTower1F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TinTower2F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TinTower3F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TinTower4F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TinTower5F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TinTower6F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TinTower7F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TinTower8F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TinTower9F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header BurnedTower1F, TILESET_SPROUT_TOWER, DUNGEON, BURNED_TOWER, MUSIC_BURNED_TOWER, 1, PALETTE_NITE, FISHGROUP_SHORE
+	map_header BurnedTowerB1F, TILESET_CAVE, CAVE, BURNED_TOWER, MUSIC_BURNED_TOWER, 1, PALETTE_NITE, FISHGROUP_SHORE
+	map_header NationalPark, TILESET_PARK, ROUTE, NATIONAL_PARK, MUSIC_NATIONAL_PARK, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header NationalParkBugContest, TILESET_PARK, ROUTE, NATIONAL_PARK, MUSIC_BUG_CATCHING_CONTEST, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header RadioTower1F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RadioTower2F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RadioTower3F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RadioTower4F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RadioTower5F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RuinsofAlphOutside, TILESET_JOHTO_1, ROUTE, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_AUTO, FISHGROUP_POND
+	map_header RuinsofAlphHoOhChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RuinsofAlphKabutoChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RuinsofAlphOmanyteChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RuinsofAlphAerodactylChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RuinsofAlphInnerChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_RUINS_OF_ALPH_INTERIOR, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RuinsofAlphResearchCenter, TILESET_POWER_PLANT, INDOOR, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RuinsofAlphHoOhItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RuinsofAlphKabutoItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RuinsofAlphOmanyteItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RuinsofAlphAerodactylItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RuinsofAlphHoOhWordRoom, TILESET_HO_OH_WORD_ROOM, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RuinsofAlphKabutoWordRoom, TILESET_KABUTO_WORD_ROOM, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RuinsofAlphOmanyteWordRoom, TILESET_OMANYTE_WORD_ROOM, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RuinsofAlphAerodactylWordRoom, TILESET_AERODACTYL_WORD_ROOM, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header UnionCave1F, TILESET_CAVE, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, FISHGROUP_LAKE
+	map_header UnionCaveB1F, TILESET_CAVE, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, FISHGROUP_LAKE
+	map_header UnionCaveB2F, TILESET_CAVE, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, FISHGROUP_SHORE
+	map_header SlowpokeWellB1F, TILESET_CAVE, CAVE, SLOWPOKE_WELL, MUSIC_DARK_CAVE, 1, PALETTE_NITE, FISHGROUP_LAKE
+	map_header SlowpokeWellB2F, TILESET_CAVE, CAVE, SLOWPOKE_WELL, MUSIC_DARK_CAVE, 1, PALETTE_NITE, FISHGROUP_LAKE
+	map_header OlivineLighthouse1F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header OlivineLighthouse2F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header OlivineLighthouse3F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header OlivineLighthouse4F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header OlivineLighthouse5F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header OlivineLighthouse6F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header MahoganyMart1F, TILESET_KURT_HOUSE, INDOOR, MAHOGANY_TOWN, MUSIC_MAHOGANY_MART, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TeamRocketBaseB1F, TILESET_UNDERGROUND, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TeamRocketBaseB2F, TILESET_POWER_PLANT, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TeamRocketBaseB3F, TILESET_POWER_PLANT, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header IlexForest, TILESET_ILEX_FOREST, CAVE, ILEX_FOREST, MUSIC_UNION_CAVE, 0, PALETTE_NITE, FISHGROUP_POND
+	map_header WarehouseEntrance, TILESET_GATE, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header UndergroundPathSwitchRoomEntrances, TILESET_GYM_1, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodDeptStoreB1F, TILESET_UNDERGROUND, DUNGEON, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header UndergroundWarehouse, TILESET_UNDERGROUND, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header MountMortar1FOutside, TILESET_WHIRL_ISLANDS, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, FISHGROUP_LAKE
+	map_header MountMortar1FInside, TILESET_WHIRL_ISLANDS, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, FISHGROUP_LAKE
+	map_header MountMortar2FInside, TILESET_WHIRL_ISLANDS, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, FISHGROUP_LAKE
+	map_header MountMortarB1F, TILESET_WHIRL_ISLANDS, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, FISHGROUP_LAKE
+	map_header IcePath1F, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, FISHGROUP_DRATINI
+	map_header IcePathB1F, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, FISHGROUP_DRATINI
+	map_header IcePathB2FMahoganySide, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, FISHGROUP_DRATINI
+	map_header IcePathB2FBlackthornSide, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, FISHGROUP_DRATINI
+	map_header IcePathB3F, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, FISHGROUP_DRATINI
+	map_header WhirlIslandNW, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
+	map_header WhirlIslandNE, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
+	map_header WhirlIslandSW, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
+	map_header WhirlIslandCave, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
+	map_header WhirlIslandSE, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
+	map_header WhirlIslandB1F, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
+	map_header WhirlIslandB2F, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
+	map_header WhirlIslandLugiaChamber, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
+	map_header SilverCaveRoom1, TILESET_WHIRL_ISLANDS, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_DARK, FISHGROUP_LAKE
+	map_header SilverCaveRoom2, TILESET_CAVE, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_NITE, FISHGROUP_LAKE
+	map_header SilverCaveRoom3, TILESET_CAVE, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_DAY, FISHGROUP_LAKE
+	map_header SilverCaveItemRooms, TILESET_CAVE, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_NITE, FISHGROUP_LAKE
+	map_header DarkCaveVioletEntrance, TILESET_WHIRL_ISLANDS, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, PALETTE_DARK, FISHGROUP_LAKE
+	map_header DarkCaveBlackthornEntrance, TILESET_WHIRL_ISLANDS, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, PALETTE_DARK, FISHGROUP_LAKE
+	map_header DragonsDen1F, TILESET_CAVE, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, FISHGROUP_DRATINI
+	map_header DragonsDenB1F, TILESET_JOHTO_1, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, FISHGROUP_DRATINI
+	map_header DragonShrine, TILESET_LAB, INDOOR, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, FISHGROUP_SHORE
+	map_header TohjoFalls, TILESET_CAVE, CAVE, TOHJO_FALLS, MUSIC_UNION_CAVE, 1, PALETTE_NITE, FISHGROUP_LAKE
+	map_header DiglettsCave, TILESET_CAVE, CAVE, DIGLETTS_CAVE, MUSIC_MT_MOON, 1, PALETTE_NITE, FISHGROUP_SHORE
+	map_header MountMoon, TILESET_CAVE, CAVE, MT_MOON, MUSIC_MT_MOON, 1, PALETTE_NITE, FISHGROUP_SHORE
+	map_header Underground, TILESET_UNDERGROUND, GATE, UNDERGROUND, MUSIC_MT_MOON, 0, PALETTE_NITE, FISHGROUP_SHORE
+	map_header RockTunnel1F, TILESET_WHIRL_ISLANDS, CAVE, ROCK_TUNNEL, MUSIC_MT_MOON, 1, PALETTE_DARK, FISHGROUP_SHORE
+	map_header RockTunnelB1F, TILESET_WHIRL_ISLANDS, CAVE, ROCK_TUNNEL, MUSIC_MT_MOON, 1, PALETTE_DARK, FISHGROUP_SHORE
+	map_header SafariZoneFuchsiaGateBeta, TILESET_GATE, INDOOR, FUCHSIA_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header SafariZoneBeta, TILESET_PARK, CAVE, FUCHSIA_CITY, MUSIC_EVOLUTION, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header VictoryRoad, TILESET_CAVE, CAVE, VICTORY_ROAD, MUSIC_VICTORY_ROAD, 1, PALETTE_NITE, FISHGROUP_SHORE
 
 
 MapGroup4:
-	map_header EcruteakHouse, TILESET_SPROUT_TOWER, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
-	map_header WiseTriosRoom, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 1, PALETTE_DAY, 1
-	map_header EcruteakPokeCenter1F, TILESET_POKECENTER, INDOOR, ECRUTEAK_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header EcruteakLugiaSpeechHouse, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
-	map_header DanceTheatre, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_DANCING_HALL, 0, PALETTE_DAY, 1
-	map_header EcruteakMart, TILESET_MART, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
-	map_header EcruteakGym, TILESET_SPROUT_TOWER, INDOOR, ECRUTEAK_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
-	map_header EcruteakItemfinderHouse, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
-	map_header EcruteakCity, TILESET_JOHTO_1, TOWN, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 4
+	map_header EcruteakHouse, TILESET_SPROUT_TOWER, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header WiseTriosRoom, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header EcruteakPokeCenter1F, TILESET_POKECENTER, INDOOR, ECRUTEAK_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header EcruteakLugiaSpeechHouse, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header DanceTheatre, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_DANCING_HALL, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header EcruteakMart, TILESET_MART, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header EcruteakGym, TILESET_SPROUT_TOWER, INDOOR, ECRUTEAK_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header EcruteakItemfinderHouse, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header EcruteakCity, TILESET_JOHTO_1, TOWN, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, FISHGROUP_POND
 
 
 MapGroup5:
-	map_header BlackthornGym1F, TILESET_GYM_1, INDOOR, BLACKTHORN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
-	map_header BlackthornGym2F, TILESET_GYM_1, INDOOR, BLACKTHORN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
-	map_header BlackthornDragonSpeechHouse, TILESET_HOUSE_1, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
-	map_header BlackthornDodrioTradeHouse, TILESET_HOUSE_1, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
-	map_header BlackthornMart, TILESET_MART, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
-	map_header BlackthornPokeCenter1F, TILESET_POKECENTER, INDOOR, BLACKTHORN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header MoveDeletersHouse, TILESET_HOUSE_1, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
-	map_header Route45, TILESET_JOHTO_1, ROUTE, ROUTE_45, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 9
-	map_header Route46, TILESET_JOHTO_1, ROUTE, ROUTE_46, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
-	map_header BlackthornCity, TILESET_JOHTO_1, TOWN, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 4
+	map_header BlackthornGym1F, TILESET_GYM_1, INDOOR, BLACKTHORN_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header BlackthornGym2F, TILESET_GYM_1, INDOOR, BLACKTHORN_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header BlackthornDragonSpeechHouse, TILESET_HOUSE_1, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header BlackthornDodrioTradeHouse, TILESET_HOUSE_1, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header BlackthornMart, TILESET_MART, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header BlackthornPokeCenter1F, TILESET_POKECENTER, INDOOR, BLACKTHORN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header MoveDeletersHouse, TILESET_HOUSE_1, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route45, TILESET_JOHTO_1, ROUTE, ROUTE_45, MUSIC_ROUTE_36, 0, PALETTE_AUTO, FISHGROUP_DRATINI_2
+	map_header Route46, TILESET_JOHTO_1, ROUTE, ROUTE_46, MUSIC_ROUTE_36, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header BlackthornCity, TILESET_JOHTO_1, TOWN, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, FISHGROUP_POND
 
 
 MapGroup6:
-	map_header CinnabarPokeCenter1F, TILESET_POKECENTER, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header CinnabarPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header Route19FuchsiaGate, TILESET_GATE, GATE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
-	map_header SeafoamGym, TILESET_CAVE, INDOOR, SEAFOAM_ISLANDS, MUSIC_GYM, 1, PALETTE_DAY, 1
-	map_header Route19, TILESET_KANTO, ROUTE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
-	map_header Route20, TILESET_KANTO, ROUTE, ROUTE_20, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2
-	map_header Route21, TILESET_KANTO, ROUTE, ROUTE_21, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2
-	map_header CinnabarIsland, TILESET_KANTO, TOWN, CINNABAR_ISLAND, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 2
+	map_header CinnabarPokeCenter1F, TILESET_POKECENTER, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CinnabarPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route19FuchsiaGate, TILESET_GATE, GATE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header SeafoamGym, TILESET_CAVE, INDOOR, SEAFOAM_ISLANDS, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route19, TILESET_KANTO, ROUTE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header Route20, TILESET_KANTO, ROUTE, ROUTE_20, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_OCEAN
+	map_header Route21, TILESET_KANTO, ROUTE, ROUTE_21, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_OCEAN
+	map_header CinnabarIsland, TILESET_KANTO, TOWN, CINNABAR_ISLAND, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, FISHGROUP_OCEAN
 
 
 MapGroup7:
-	map_header CeruleanGymBadgeSpeechHouse, TILESET_HOUSE_1, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header CeruleanPoliceStation, TILESET_HOUSE_1, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header CeruleanTradeSpeechHouse, TILESET_HOUSE_1, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header CeruleanPokeCenter1F, TILESET_POKECENTER, INDOOR, CERULEAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header CeruleanPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, CERULEAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header CeruleanGym, TILESET_PORT, INDOOR, CERULEAN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 0
-	map_header CeruleanMart, TILESET_MART, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header Route10PokeCenter1F, TILESET_POKECENTER, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header Route10PokeCenter2FBeta, TILESET_POKECENTER, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header PowerPlant, TILESET_POWER_PLANT, INDOOR, POWER_PLANT, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header BillsHouse, TILESET_HOUSE_1, INDOOR, ROUTE_25, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header Route4, TILESET_KANTO, ROUTE, ROUTE_4, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0
-	map_header Route9, TILESET_KANTO, ROUTE, ROUTE_9, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
-	map_header Route10North, TILESET_KANTO, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
-	map_header Route24, TILESET_KANTO, ROUTE, ROUTE_24, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
-	map_header Route25, TILESET_KANTO, ROUTE, ROUTE_25, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
-	map_header CeruleanCity, TILESET_KANTO, TOWN, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 0
+	map_header CeruleanGymBadgeSpeechHouse, TILESET_HOUSE_1, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeruleanPoliceStation, TILESET_HOUSE_1, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeruleanTradeSpeechHouse, TILESET_HOUSE_1, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeruleanPokeCenter1F, TILESET_POKECENTER, INDOOR, CERULEAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeruleanPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, CERULEAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeruleanGym, TILESET_PORT, INDOOR, CERULEAN_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_NONE
+	map_header CeruleanMart, TILESET_MART, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route10PokeCenter1F, TILESET_POKECENTER, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route10PokeCenter2FBeta, TILESET_POKECENTER, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header PowerPlant, TILESET_POWER_PLANT, INDOOR, POWER_PLANT, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header BillsHouse, TILESET_HOUSE_1, INDOOR, ROUTE_25, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route4, TILESET_KANTO, ROUTE, ROUTE_4, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_NONE
+	map_header Route9, TILESET_KANTO, ROUTE, ROUTE_9, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_LAKE
+	map_header Route10North, TILESET_KANTO, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_LAKE
+	map_header Route24, TILESET_KANTO, ROUTE, ROUTE_24, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_LAKE
+	map_header Route25, TILESET_KANTO, ROUTE, ROUTE_25, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_LAKE
+	map_header CeruleanCity, TILESET_KANTO, TOWN, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, FISHGROUP_NONE
 
 
 MapGroup8:
-	map_header AzaleaPokeCenter1F, TILESET_POKECENTER, INDOOR, AZALEA_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header CharcoalKiln, TILESET_HOUSE_1, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
-	map_header AzaleaMart, TILESET_MART, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
-	map_header KurtsHouse, TILESET_KURT_HOUSE, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
-	map_header AzaleaGym, TILESET_GYM_1, INDOOR, AZALEA_TOWN, MUSIC_GYM, 1, PALETTE_DAY, 1
-	map_header Route33, TILESET_JOHTO_2, ROUTE, ROUTE_33, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 1
-	map_header AzaleaTown, TILESET_JOHTO_2, TOWN, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 1
+	map_header AzaleaPokeCenter1F, TILESET_POKECENTER, INDOOR, AZALEA_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CharcoalKiln, TILESET_HOUSE_1, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header AzaleaMart, TILESET_MART, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header KurtsHouse, TILESET_KURT_HOUSE, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header AzaleaGym, TILESET_GYM_1, INDOOR, AZALEA_TOWN, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route33, TILESET_JOHTO_2, ROUTE, ROUTE_33, MUSIC_ROUTE_30, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header AzaleaTown, TILESET_JOHTO_2, TOWN, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, FISHGROUP_SHORE
 
 
 MapGroup9:
-	map_header LakeofRageHiddenPowerHouse, TILESET_HOUSE_1, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
-	map_header LakeofRageMagikarpHouse, TILESET_HOUSE_1, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
-	map_header Route43MahoganyGate, TILESET_GATE, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
-	map_header Route43Gate, TILESET_GATE, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
-	map_header Route43, TILESET_JOHTO_1, ROUTE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4
-	map_header LakeofRage, TILESET_JOHTO_1, TOWN, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 8
+	map_header LakeofRageHiddenPowerHouse, TILESET_HOUSE_1, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header LakeofRageMagikarpHouse, TILESET_HOUSE_1, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route43MahoganyGate, TILESET_GATE, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route43Gate, TILESET_GATE, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route43, TILESET_JOHTO_1, ROUTE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, FISHGROUP_POND
+	map_header LakeofRage, TILESET_JOHTO_1, TOWN, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, FISHGROUP_GYARADOS
 
 
 MapGroup10:
-	map_header Route32, TILESET_JOHTO_1, ROUTE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 11
-	map_header Route35, TILESET_JOHTO_1, ROUTE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 4
-	map_header Route36, TILESET_JOHTO_1, ROUTE, ROUTE_36, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
-	map_header Route37, TILESET_JOHTO_1, ROUTE, ROUTE_37, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
-	map_header VioletCity, TILESET_JOHTO_1, TOWN, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 4
-	map_header VioletMart, TILESET_MART, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
-	map_header VioletGym, TILESET_GYM_1, INDOOR, VIOLET_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
-	map_header EarlsPokemonAcademy, TILESET_LAB, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
-	map_header VioletNicknameSpeechHouse, TILESET_KURT_HOUSE, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
-	map_header VioletPokeCenter1F, TILESET_POKECENTER, INDOOR, VIOLET_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header VioletOnixTradeHouse, TILESET_KURT_HOUSE, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
-	map_header Route32RuinsofAlphGate, TILESET_GATE, GATE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_DAY, 1
-	map_header Route32PokeCenter1F, TILESET_POKECENTER, INDOOR, ROUTE_32, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header Route35Goldenrodgate, TILESET_GATE, GATE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
-	map_header Route35NationalParkgate, TILESET_GATE, INDOOR, ROUTE_35, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
-	map_header Route36RuinsofAlphgate, TILESET_GATE, GATE, ROUTE_36, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
-	map_header Route36NationalParkgate, TILESET_GATE, INDOOR, ROUTE_36, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+	map_header Route32, TILESET_JOHTO_1, ROUTE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_AUTO, FISHGROUP_QWILFISH
+	map_header Route35, TILESET_JOHTO_1, ROUTE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_AUTO, FISHGROUP_POND
+	map_header Route36, TILESET_JOHTO_1, ROUTE, ROUTE_36, MUSIC_ROUTE_36, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header Route37, TILESET_JOHTO_1, ROUTE, ROUTE_37, MUSIC_ROUTE_36, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header VioletCity, TILESET_JOHTO_1, TOWN, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, FISHGROUP_POND
+	map_header VioletMart, TILESET_MART, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header VioletGym, TILESET_GYM_1, INDOOR, VIOLET_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header EarlsPokemonAcademy, TILESET_LAB, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header VioletNicknameSpeechHouse, TILESET_KURT_HOUSE, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header VioletPokeCenter1F, TILESET_POKECENTER, INDOOR, VIOLET_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header VioletOnixTradeHouse, TILESET_KURT_HOUSE, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route32RuinsofAlphGate, TILESET_GATE, GATE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route32PokeCenter1F, TILESET_POKECENTER, INDOOR, ROUTE_32, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route35Goldenrodgate, TILESET_GATE, GATE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route35NationalParkgate, TILESET_GATE, INDOOR, ROUTE_35, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route36RuinsofAlphgate, TILESET_GATE, GATE, ROUTE_36, MUSIC_ROUTE_36, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route36NationalParkgate, TILESET_GATE, INDOOR, ROUTE_36, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
 
 
 MapGroup11:
-	map_header Route34, TILESET_JOHTO_2, ROUTE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
-	map_header GoldenrodCity, TILESET_JOHTO_2, TOWN, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_AUTO, 1
-	map_header GoldenrodGym, TILESET_GYM_1, INDOOR, GOLDENROD_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
-	map_header GoldenrodBikeShop, TILESET_OLIVINE_GYM, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
-	map_header GoldenrodHappinessRater, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
-	map_header GoldenrodBillsHouse, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
-	map_header GoldenrodMagnetTrainStation, TILESET_TRAIN_STATION, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
-	map_header GoldenrodFlowerShop, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
-	map_header GoldenrodPPSpeechHouse, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
-	map_header GoldenrodNameRatersHouse, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
-	map_header GoldenrodDeptStore1F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
-	map_header GoldenrodDeptStore2F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
-	map_header GoldenrodDeptStore3F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
-	map_header GoldenrodDeptStore4F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
-	map_header GoldenrodDeptStore5F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
-	map_header GoldenrodDeptStore6F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
-	map_header GoldenrodDeptStoreElevator, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
-	map_header GoldenrodDeptStoreRoof, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
-	map_header GoldenrodGameCorner, TILESET_GAME_CORNER, INDOOR, GOLDENROD_CITY, MUSIC_GAME_CORNER, 0, PALETTE_DAY, 1
-	map_header GoldenrodPokeCenter1F, TILESET_POKECENTER, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header GoldenrodPokeComCenter2FMobile, TILESET_POKECOM_CENTER, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header IlexForestAzaleaGate, TILESET_GATE, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
-	map_header Route34IlexForestGate, TILESET_GATE, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
-	map_header DayCare, TILESET_HOUSE_1, INDOOR, ROUTE_34, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
+	map_header Route34, TILESET_JOHTO_2, ROUTE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header GoldenrodCity, TILESET_JOHTO_2, TOWN, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header GoldenrodGym, TILESET_GYM_1, INDOOR, GOLDENROD_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodBikeShop, TILESET_OLIVINE_GYM, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodHappinessRater, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodBillsHouse, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodMagnetTrainStation, TILESET_TRAIN_STATION, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodFlowerShop, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodPPSpeechHouse, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodNameRatersHouse, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodDeptStore1F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodDeptStore2F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodDeptStore3F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodDeptStore4F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodDeptStore5F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodDeptStore6F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodDeptStoreElevator, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodDeptStoreRoof, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodGameCorner, TILESET_GAME_CORNER, INDOOR, GOLDENROD_CITY, MUSIC_GAME_CORNER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodPokeCenter1F, TILESET_POKECENTER, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GoldenrodPokeComCenter2FMobile, TILESET_POKECOM_CENTER, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header IlexForestAzaleaGate, TILESET_GATE, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route34IlexForestGate, TILESET_GATE, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header DayCare, TILESET_HOUSE_1, INDOOR, ROUTE_34, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
 
 
 MapGroup12:
-	map_header Route6, TILESET_KANTO, ROUTE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4
-	map_header Route11, TILESET_KANTO, ROUTE, ROUTE_11, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1
-	map_header VermilionCity, TILESET_KANTO, TOWN, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_AUTO, 2
-	map_header VermilionHouseFishingSpeechHouse, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
-	map_header VermilionPokeCenter1F, TILESET_POKECENTER, INDOOR, VERMILION_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header VermilionPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
-	map_header PokemonFanClub, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
-	map_header VermilionMagnetTrainSpeechHouse, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
-	map_header VermilionMart, TILESET_MART, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
-	map_header VermilionHouseDiglettsCaveSpeechHouse, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
-	map_header VermilionGym, TILESET_GAME_CORNER, INDOOR, VERMILION_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
-	map_header Route6SaffronGate, TILESET_GATE, GATE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
-	map_header Route6UndergroundEntrance, TILESET_GATE, GATE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
+	map_header Route6, TILESET_KANTO, ROUTE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_POND
+	map_header Route11, TILESET_KANTO, ROUTE, ROUTE_11, MUSIC_ROUTE_12, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header VermilionCity, TILESET_KANTO, TOWN, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_AUTO, FISHGROUP_OCEAN
+	map_header VermilionHouseFishingSpeechHouse, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header VermilionPokeCenter1F, TILESET_POKECENTER, INDOOR, VERMILION_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header VermilionPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header PokemonFanClub, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header VermilionMagnetTrainSpeechHouse, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header VermilionMart, TILESET_MART, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header VermilionHouseDiglettsCaveSpeechHouse, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header VermilionGym, TILESET_GAME_CORNER, INDOOR, VERMILION_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route6SaffronGate, TILESET_GATE, GATE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route6UndergroundEntrance, TILESET_GATE, GATE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_DAY, FISHGROUP_SHORE
 
 
 MapGroup13:
-	map_header Route1, TILESET_KANTO, ROUTE, ROUTE_1, MUSIC_ROUTE_1, 0, PALETTE_AUTO, 1
-	map_header PalletTown, TILESET_KANTO, TOWN, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_AUTO, 2
-	map_header RedsHouse1F, TILESET_KRISS_HOUSE, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1
-	map_header RedsHouse2F, TILESET_KRISS_HOUSE, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1
-	map_header BluesHouse, TILESET_HOUSE_1, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1
-	map_header OaksLab, TILESET_LAB, INDOOR, PALLET_TOWN, MUSIC_POKEMON_TALK, 0, PALETTE_DAY, 1
+	map_header Route1, TILESET_KANTO, ROUTE, ROUTE_1, MUSIC_ROUTE_1, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header PalletTown, TILESET_KANTO, TOWN, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_AUTO, FISHGROUP_OCEAN
+	map_header RedsHouse1F, TILESET_KRISS_HOUSE, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header RedsHouse2F, TILESET_KRISS_HOUSE, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header BluesHouse, TILESET_HOUSE_1, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header OaksLab, TILESET_LAB, INDOOR, PALLET_TOWN, MUSIC_POKEMON_TALK, 0, PALETTE_DAY, FISHGROUP_SHORE
 
 
 MapGroup14:
-	map_header Route3, TILESET_KANTO, ROUTE, ROUTE_3, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
-	map_header PewterCity, TILESET_KANTO, TOWN, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1
-	map_header PewterNidoranSpeechHouse, TILESET_HOUSE_1, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header PewterGym, TILESET_SPROUT_TOWER, INDOOR, PEWTER_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
-	map_header PewterMart, TILESET_MART, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header PewterPokeCenter1F, TILESET_POKECENTER, INDOOR, PEWTER_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header PewterPokeCEnter2FBeta, TILESET_POKECENTER, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header PewterSnoozeSpeechHouse, TILESET_HOUSE_1, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+	map_header Route3, TILESET_KANTO, ROUTE, ROUTE_3, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header PewterCity, TILESET_KANTO, TOWN, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header PewterNidoranSpeechHouse, TILESET_HOUSE_1, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header PewterGym, TILESET_SPROUT_TOWER, INDOOR, PEWTER_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header PewterMart, TILESET_MART, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header PewterPokeCenter1F, TILESET_POKECENTER, INDOOR, PEWTER_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header PewterPokeCEnter2FBeta, TILESET_POKECENTER, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header PewterSnoozeSpeechHouse, TILESET_HOUSE_1, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
 
 
 MapGroup15:
-	map_header OlivinePort, TILESET_PORT, ROUTE, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 2
-	map_header VermilionPort, TILESET_PORT, ROUTE, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_AUTO, 2
-	map_header FastShip1F, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1
-	map_header FastShipCabins_NNW_NNE_NE, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1
-	map_header FastShipCabins_SW_SSW_NW, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1
-	map_header FastShipCabins_SE_SSE_CaptainsCabin, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1
-	map_header FastShipB1F, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1
-	map_header OlivinePortPassage, TILESET_UNDERGROUND, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
-	map_header VermilionPortPassage, TILESET_UNDERGROUND, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
-	map_header MountMoonSquare, TILESET_KANTO, ROUTE, MT_MOON, MUSIC_MT_MOON_SQUARE, 0, PALETTE_AUTO, 1
-	map_header MountMoonGiftShop, TILESET_KURT_HOUSE, INDOOR, MT_MOON, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header TinTowerRoof, TILESET_SPROUT_TOWER, ROUTE, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_AUTO, 1
+	map_header OlivinePort, TILESET_PORT, ROUTE, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, FISHGROUP_OCEAN
+	map_header VermilionPort, TILESET_PORT, ROUTE, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_AUTO, FISHGROUP_OCEAN
+	map_header FastShip1F, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header FastShipCabins_NNW_NNE_NE, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header FastShipCabins_SW_SSW_NW, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header FastShipCabins_SE_SSE_CaptainsCabin, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header FastShipB1F, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header OlivinePortPassage, TILESET_UNDERGROUND, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header VermilionPortPassage, TILESET_UNDERGROUND, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header MountMoonSquare, TILESET_KANTO, ROUTE, MT_MOON, MUSIC_MT_MOON_SQUARE, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header MountMoonGiftShop, TILESET_KURT_HOUSE, INDOOR, MT_MOON, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TinTowerRoof, TILESET_SPROUT_TOWER, ROUTE, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_AUTO, FISHGROUP_SHORE
 
 
 MapGroup16:
-	map_header Route23, TILESET_KANTO, TOWN, ROUTE_23, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 1
-	map_header IndigoPlateauPokeCenter1F, TILESET_POKECENTER, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 0, PALETTE_DAY, 1
-	map_header WillsRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
-	map_header KogasRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
-	map_header BrunosRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
-	map_header KarensRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
-	map_header LancesRoom, TILESET_OLIVINE_GYM, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
-	map_header HallOfFame, TILESET_ICE_PATH, INDOOR, INDIGO_PLATEAU, MUSIC_NEW_BARK_TOWN, 1, PALETTE_DAY, 1
+	map_header Route23, TILESET_KANTO, TOWN, ROUTE_23, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header IndigoPlateauPokeCenter1F, TILESET_POKECENTER, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header WillsRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header KogasRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header BrunosRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header KarensRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header LancesRoom, TILESET_OLIVINE_GYM, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header HallOfFame, TILESET_ICE_PATH, INDOOR, INDIGO_PLATEAU, MUSIC_NEW_BARK_TOWN, 1, PALETTE_DAY, FISHGROUP_SHORE
 
 
 MapGroup17:
-	map_header Route13, TILESET_KANTO, ROUTE, ROUTE_13, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13
-	map_header Route14, TILESET_KANTO, ROUTE, ROUTE_14, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1
-	map_header Route15, TILESET_KANTO, ROUTE, ROUTE_15, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1
-	map_header Route18, TILESET_KANTO, ROUTE, ROUTE_18, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
-	map_header FuchsiaCity, TILESET_KANTO, TOWN, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 8
-	map_header FuchsiaMart, TILESET_MART, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header SafariZoneMainOffice, TILESET_GAME_CORNER, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header FuchsiaGym, TILESET_LAB, INDOOR, FUCHSIA_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
-	map_header FuchsiaBillSpeechHouse, TILESET_HOUSE_1, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header FuchsiaPokeCenter1F, TILESET_POKECENTER, INDOOR, FUCHSIA_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header FuchsiaPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header SafariZoneWardensHome, TILESET_HOUSE_1, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header Route15FuchsiaGate, TILESET_GATE, GATE, ROUTE_15, MUSIC_ROUTE_12, 0, PALETTE_DAY, 1
+	map_header Route13, TILESET_KANTO, ROUTE, ROUTE_13, MUSIC_ROUTE_12, 0, PALETTE_AUTO, FISHGROUP_QWILFISH_NO_SWARM
+	map_header Route14, TILESET_KANTO, ROUTE, ROUTE_14, MUSIC_ROUTE_12, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header Route15, TILESET_KANTO, ROUTE, ROUTE_15, MUSIC_ROUTE_12, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header Route18, TILESET_KANTO, ROUTE, ROUTE_18, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header FuchsiaCity, TILESET_KANTO, TOWN, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, FISHGROUP_GYARADOS
+	map_header FuchsiaMart, TILESET_MART, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header SafariZoneMainOffice, TILESET_GAME_CORNER, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header FuchsiaGym, TILESET_LAB, INDOOR, FUCHSIA_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header FuchsiaBillSpeechHouse, TILESET_HOUSE_1, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header FuchsiaPokeCenter1F, TILESET_POKECENTER, INDOOR, FUCHSIA_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header FuchsiaPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header SafariZoneWardensHome, TILESET_HOUSE_1, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route15FuchsiaGate, TILESET_GATE, GATE, ROUTE_15, MUSIC_ROUTE_12, 0, PALETTE_DAY, FISHGROUP_SHORE
 
 
 MapGroup18:
-	map_header Route8, TILESET_KANTO, ROUTE, ROUTE_8, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
-	map_header Route12, TILESET_KANTO, ROUTE, ROUTE_12, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13
-	map_header Route10South, TILESET_KANTO, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
-	map_header LavenderTown, TILESET_KANTO, TOWN, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_AUTO, 1
-	map_header LavenderPokeCenter1F, TILESET_POKECENTER, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header LavenderPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header MrFujisHouse, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
-	map_header LavenderTownSpeechHouse, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
-	map_header LavenderNameRater, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
-	map_header LavenderMart, TILESET_MART, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
-	map_header SoulHouse, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
-	map_header LavRadioTower1F, TILESET_RADIO_TOWER, INDOOR, LAV_RADIO_TOWER, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
-	map_header Route8SaffronGate, TILESET_GATE, GATE, ROUTE_8, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
-	map_header Route12SuperRodHouse, TILESET_HOUSE_1, INDOOR, ROUTE_12, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+	map_header Route8, TILESET_KANTO, ROUTE, ROUTE_8, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header Route12, TILESET_KANTO, ROUTE, ROUTE_12, MUSIC_ROUTE_12, 0, PALETTE_AUTO, FISHGROUP_QWILFISH_NO_SWARM
+	map_header Route10South, TILESET_KANTO, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_LAKE
+	map_header LavenderTown, TILESET_KANTO, TOWN, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header LavenderPokeCenter1F, TILESET_POKECENTER, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header LavenderPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header MrFujisHouse, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header LavenderTownSpeechHouse, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header LavenderNameRater, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header LavenderMart, TILESET_MART, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header SoulHouse, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header LavRadioTower1F, TILESET_RADIO_TOWER, INDOOR, LAV_RADIO_TOWER, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route8SaffronGate, TILESET_GATE, GATE, ROUTE_8, MUSIC_ROUTE_3, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route12SuperRodHouse, TILESET_HOUSE_1, INDOOR, ROUTE_12, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
 
 
 MapGroup19:
-	map_header Route28, TILESET_KANTO, ROUTE, ROUTE_28, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4
-	map_header SilverCaveOutside, TILESET_KANTO, TOWN, SILVER_CAVE, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4
-	map_header SilverCavePokeCenter1F, TILESET_POKECENTER, INDOOR, SILVER_CAVE, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header Route28FamousSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_28, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
+	map_header Route28, TILESET_KANTO, ROUTE, ROUTE_28, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, FISHGROUP_POND
+	map_header SilverCaveOutside, TILESET_KANTO, TOWN, SILVER_CAVE, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, FISHGROUP_POND
+	map_header SilverCavePokeCenter1F, TILESET_POKECENTER, INDOOR, SILVER_CAVE, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route28FamousSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_28, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
 
 
 MapGroup20:
-	map_header PokeCenter2F, TILESET_POKECENTER, INDOOR, SPECIAL_MAP, MUSIC_POKEMON_CENTER, 1, PALETTE_DAY, 1
-	map_header TradeCenter, TILESET_GATE, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1
-	map_header Colosseum, TILESET_GATE, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1
-	map_header TimeCapsule, TILESET_GATE, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1
-	map_header MobileTradeRoomMobile, TILESET_CELADON_MANSION, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1
-	map_header MobileBattleRoom, TILESET_CELADON_MANSION, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1
+	map_header PokeCenter2F, TILESET_POKECENTER, INDOOR, SPECIAL_MAP, MUSIC_POKEMON_CENTER, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TradeCenter, TILESET_GATE, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Colosseum, TILESET_GATE, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TimeCapsule, TILESET_GATE, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header MobileTradeRoomMobile, TILESET_CELADON_MANSION, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header MobileBattleRoom, TILESET_CELADON_MANSION, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
 
 
 MapGroup21:
-	map_header Route7, TILESET_KANTO, ROUTE, ROUTE_7, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
-	map_header Route16, TILESET_KANTO, ROUTE, ROUTE_16, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
-	map_header Route17, TILESET_KANTO, ROUTE, ROUTE_17, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0
-	map_header CeladonCity, TILESET_KANTO, TOWN, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 0
-	map_header CeladonDeptStore1F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header CeladonDeptStore2F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header CeladonDeptStore3F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header CeladonDeptStore4F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header CeladonDeptStore5F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header CeladonDeptStore6F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header CeladonDeptStoreElevator, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header CeladonMansion1F, TILESET_CELADON_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header CeladonMansion2F, TILESET_CELADON_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header CeladonMansion3F, TILESET_CELADON_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header CeladonMansionRoof, TILESET_CELADON_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header CeladonMansionRoofHouse, TILESET_HOUSE_1, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header CeladonPokeCenter1F, TILESET_POKECENTER, INDOOR, CELADON_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header CeladonPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header CeladonGameCorner, TILESET_GAME_CORNER, INDOOR, CELADON_CITY, MUSIC_GAME_CORNER, 0, PALETTE_DAY, 1
-	map_header CeladonGameCornerPrizeRoom, TILESET_GAME_CORNER, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header CeladonGym, TILESET_TRAIN_STATION, INDOOR, CELADON_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
-	map_header CeladonCafe, TILESET_GAME_CORNER, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header Route16FuchsiaSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_16, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
-	map_header Route16Gate, TILESET_GATE, GATE, ROUTE_16, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
-	map_header Route7SaffronGate, TILESET_GATE, GATE, ROUTE_7, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
-	map_header Route1718Gate, TILESET_GATE, GATE, ROUTE_17, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
+	map_header Route7, TILESET_KANTO, ROUTE, ROUTE_7, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header Route16, TILESET_KANTO, ROUTE, ROUTE_16, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header Route17, TILESET_KANTO, ROUTE, ROUTE_17, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_NONE
+	map_header CeladonCity, TILESET_KANTO, TOWN, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, FISHGROUP_NONE
+	map_header CeladonDeptStore1F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonDeptStore2F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonDeptStore3F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonDeptStore4F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonDeptStore5F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonDeptStore6F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonDeptStoreElevator, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonMansion1F, TILESET_CELADON_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonMansion2F, TILESET_CELADON_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonMansion3F, TILESET_CELADON_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonMansionRoof, TILESET_CELADON_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonMansionRoofHouse, TILESET_HOUSE_1, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonPokeCenter1F, TILESET_POKECENTER, INDOOR, CELADON_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonGameCorner, TILESET_GAME_CORNER, INDOOR, CELADON_CITY, MUSIC_GAME_CORNER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonGameCornerPrizeRoom, TILESET_GAME_CORNER, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonGym, TILESET_TRAIN_STATION, INDOOR, CELADON_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CeladonCafe, TILESET_GAME_CORNER, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route16FuchsiaSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_16, MUSIC_CELADON_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route16Gate, TILESET_GATE, GATE, ROUTE_16, MUSIC_ROUTE_3, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route7SaffronGate, TILESET_GATE, GATE, ROUTE_7, MUSIC_ROUTE_3, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route1718Gate, TILESET_GATE, GATE, ROUTE_17, MUSIC_ROUTE_3, 0, PALETTE_DAY, FISHGROUP_SHORE
 
 
 MapGroup22:
-	map_header Route40, TILESET_JOHTO_1, ROUTE, ROUTE_40, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
-	map_header Route41, TILESET_JOHTO_1, ROUTE, ROUTE_41, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 2
-	map_header CianwoodCity, TILESET_JOHTO_1, TOWN, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 1
-	map_header ManiasHouse, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
-	map_header CianwoodGym, TILESET_SPROUT_TOWER, INDOOR, CIANWOOD_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
-	map_header CianwoodPokeCenter1F, TILESET_POKECENTER, INDOOR, CIANWOOD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header CianwoodPharmacy, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
-	map_header CianwoodCityPhotoStudio, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
-	map_header CianwoodLugiaSpeechHouse, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
-	map_header PokeSeersHouse, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
-	map_header BattleTower1F, TILESET_BATTLE_TOWER, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_LOBBY, 1, PALETTE_DAY, 1
-	map_header BattleTowerBattleRoom, TILESET_BATTLE_TOWER, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 1, PALETTE_DAY, 1
-	map_header BattleTowerElevator, TILESET_BATTLE_TOWER, INDOOR, BATTLE_TOWER, MUSIC_NONE, 1, PALETTE_DAY, 1
-	map_header BattleTowerHallway, TILESET_BATTLE_TOWER, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 1, PALETTE_DAY, 1
-	map_header Route40BattleTowerGate, TILESET_GATE, GATE, BATTLE_TOWER, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
-	map_header BattleTowerOutside, TILESET_BATTLE_TOWER_OUTSIDE, ROUTE, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 0, PALETTE_AUTO, 1
+	map_header Route40, TILESET_JOHTO_1, ROUTE, ROUTE_40, MUSIC_ROUTE_36, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header Route41, TILESET_JOHTO_1, ROUTE, ROUTE_41, MUSIC_ROUTE_36, 0, PALETTE_AUTO, FISHGROUP_OCEAN
+	map_header CianwoodCity, TILESET_JOHTO_1, TOWN, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header ManiasHouse, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CianwoodGym, TILESET_SPROUT_TOWER, INDOOR, CIANWOOD_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CianwoodPokeCenter1F, TILESET_POKECENTER, INDOOR, CIANWOOD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CianwoodPharmacy, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CianwoodCityPhotoStudio, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CianwoodLugiaSpeechHouse, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header PokeSeersHouse, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header BattleTower1F, TILESET_BATTLE_TOWER, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_LOBBY, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header BattleTowerBattleRoom, TILESET_BATTLE_TOWER, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header BattleTowerElevator, TILESET_BATTLE_TOWER, INDOOR, BATTLE_TOWER, MUSIC_NONE, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header BattleTowerHallway, TILESET_BATTLE_TOWER, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route40BattleTowerGate, TILESET_GATE, GATE, BATTLE_TOWER, MUSIC_ROUTE_36, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header BattleTowerOutside, TILESET_BATTLE_TOWER_OUTSIDE, ROUTE, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 0, PALETTE_AUTO, FISHGROUP_SHORE
 
 
 MapGroup23:
-	map_header Route2, TILESET_KANTO, ROUTE, ROUTE_2, MUSIC_ROUTE_2, 0, PALETTE_AUTO, 1
-	map_header Route22, TILESET_KANTO, ROUTE, ROUTE_22, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4
-	map_header ViridianCity, TILESET_KANTO, TOWN, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 4
-	map_header ViridianGym, TILESET_TRAIN_STATION, INDOOR, VIRIDIAN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
-	map_header ViridianNicknameSpeechHouse, TILESET_HOUSE_1, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header TrainerHouse1F, TILESET_HOUSE_1, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header TrainerHouseB1F, TILESET_POWER_PLANT, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header ViridianMart, TILESET_MART, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header ViridianPokeCenter1F, TILESET_POKECENTER, INDOOR, VIRIDIAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header ViridianPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header Route2NuggetSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_2, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header Route2Gate, TILESET_GATE, GATE, ROUTE_2, MUSIC_ROUTE_2, 0, PALETTE_DAY, 1
-	map_header VictoryRoadGate, TILESET_GATE, GATE, ROUTE_26, MUSIC_INDIGO_PLATEAU, 0, PALETTE_DAY, 1
+	map_header Route2, TILESET_KANTO, ROUTE, ROUTE_2, MUSIC_ROUTE_2, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header Route22, TILESET_KANTO, ROUTE, ROUTE_22, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_POND
+	map_header ViridianCity, TILESET_KANTO, TOWN, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, FISHGROUP_POND
+	map_header ViridianGym, TILESET_TRAIN_STATION, INDOOR, VIRIDIAN_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header ViridianNicknameSpeechHouse, TILESET_HOUSE_1, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TrainerHouse1F, TILESET_HOUSE_1, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header TrainerHouseB1F, TILESET_POWER_PLANT, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header ViridianMart, TILESET_MART, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header ViridianPokeCenter1F, TILESET_POKECENTER, INDOOR, VIRIDIAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header ViridianPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route2NuggetSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_2, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route2Gate, TILESET_GATE, GATE, ROUTE_2, MUSIC_ROUTE_2, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header VictoryRoadGate, TILESET_GATE, GATE, ROUTE_26, MUSIC_INDIGO_PLATEAU, 0, PALETTE_DAY, FISHGROUP_SHORE
 
 
 MapGroup24:
-	map_header Route26, TILESET_JOHTO_1, ROUTE, ROUTE_26, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2
-	map_header Route27, TILESET_JOHTO_1, ROUTE, ROUTE_27, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2
-	map_header Route29, TILESET_JOHTO_1, ROUTE, ROUTE_29, MUSIC_ROUTE_29, 0, PALETTE_AUTO, 1
-	map_header NewBarkTown, TILESET_JOHTO_1, TOWN, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_AUTO, 2
-	map_header ElmsLab, TILESET_LAB, INDOOR, NEW_BARK_TOWN, MUSIC_PROF_ELM, 0, PALETTE_DAY, 1
-	map_header KrissHouse1F, TILESET_KRISS_HOUSE, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1
-	map_header KrissHouse2F, TILESET_KRISS_HOUSE_2F, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1
-	map_header KrissNeighborsHouse, TILESET_HOUSE_1, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1
-	map_header ElmsHouse, TILESET_KRISS_HOUSE, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1
-	map_header Route26HealSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_26, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
-	map_header Route26DayofWeekSiblingsHouse, TILESET_HOUSE_1, INDOOR, ROUTE_26, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
-	map_header Route27SandstormHouse, TILESET_HOUSE_1, INDOOR, ROUTE_27, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
-	map_header Route2946Gate, TILESET_GATE, GATE, ROUTE_29, MUSIC_ROUTE_29, 0, PALETTE_DAY, 1
+	map_header Route26, TILESET_JOHTO_1, ROUTE, ROUTE_26, MUSIC_ROUTE_26, 0, PALETTE_AUTO, FISHGROUP_OCEAN
+	map_header Route27, TILESET_JOHTO_1, ROUTE, ROUTE_27, MUSIC_ROUTE_26, 0, PALETTE_AUTO, FISHGROUP_OCEAN
+	map_header Route29, TILESET_JOHTO_1, ROUTE, ROUTE_29, MUSIC_ROUTE_29, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header NewBarkTown, TILESET_JOHTO_1, TOWN, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_AUTO, FISHGROUP_OCEAN
+	map_header ElmsLab, TILESET_LAB, INDOOR, NEW_BARK_TOWN, MUSIC_PROF_ELM, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header KrissHouse1F, TILESET_KRISS_HOUSE, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header KrissHouse2F, TILESET_KRISS_HOUSE_2F, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header KrissNeighborsHouse, TILESET_HOUSE_1, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header ElmsHouse, TILESET_KRISS_HOUSE, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route26HealSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_26, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route26DayofWeekSiblingsHouse, TILESET_HOUSE_1, INDOOR, ROUTE_26, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route27SandstormHouse, TILESET_HOUSE_1, INDOOR, ROUTE_27, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route2946Gate, TILESET_GATE, GATE, ROUTE_29, MUSIC_ROUTE_29, 0, PALETTE_DAY, FISHGROUP_SHORE
 
 
 MapGroup25:
-	map_header Route5, TILESET_KANTO, ROUTE, ROUTE_5, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
-	map_header SaffronCity, TILESET_KANTO, TOWN, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1
-	map_header FightingDojo, TILESET_TRAIN_STATION, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header SaffronGym, TILESET_UNDERGROUND, INDOOR, SAFFRON_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
-	map_header SaffronMart, TILESET_MART, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header SaffronPokeCenter1F, TILESET_POKECENTER, INDOOR, SAFFRON_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header SaffronPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header MrPsychicsHouse, TILESET_HOUSE_1, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header SaffronTrainStation, TILESET_TRAIN_STATION, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header SilphCo1F, TILESET_POWER_PLANT, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header CopycatsHouse1F, TILESET_KRISS_HOUSE, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header CopycatsHouse2F, TILESET_KRISS_HOUSE, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header Route5UndergroundEntrance, TILESET_GATE, GATE, ROUTE_5, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
-	map_header Route5SaffronCityGate, TILESET_GATE, GATE, ROUTE_5, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
-	map_header Route5CleanseTagSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_5, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+	map_header Route5, TILESET_KANTO, ROUTE, ROUTE_5, MUSIC_ROUTE_3, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header SaffronCity, TILESET_KANTO, TOWN, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header FightingDojo, TILESET_TRAIN_STATION, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header SaffronGym, TILESET_UNDERGROUND, INDOOR, SAFFRON_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
+	map_header SaffronMart, TILESET_MART, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header SaffronPokeCenter1F, TILESET_POKECENTER, INDOOR, SAFFRON_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header SaffronPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header MrPsychicsHouse, TILESET_HOUSE_1, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header SaffronTrainStation, TILESET_TRAIN_STATION, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header SilphCo1F, TILESET_POWER_PLANT, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CopycatsHouse1F, TILESET_KRISS_HOUSE, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CopycatsHouse2F, TILESET_KRISS_HOUSE, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route5UndergroundEntrance, TILESET_GATE, GATE, ROUTE_5, MUSIC_ROUTE_3, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route5SaffronCityGate, TILESET_GATE, GATE, ROUTE_5, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route5CleanseTagSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_5, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
 
 
 MapGroup26:
-	map_header Route30, TILESET_JOHTO_1, ROUTE, ROUTE_30, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4
-	map_header Route31, TILESET_JOHTO_1, ROUTE, ROUTE_31, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4
-	map_header CherrygroveCity, TILESET_JOHTO_1, TOWN, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1
-	map_header CherrygroveMart, TILESET_MART, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
-	map_header CherrygrovePokeCenter1F, TILESET_POKECENTER, INDOOR, CHERRYGROVE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
-	map_header CherrygroveGymSpeechHouse, TILESET_HOUSE_1, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
-	map_header GuideGentsHouse, TILESET_HOUSE_1, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
-	map_header CherrygroveEvolutionSpeechHouse, TILESET_HOUSE_1, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
-	map_header Route30BerrySpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_30, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
-	map_header MrPokemonsHouse, TILESET_POWER_PLANT, INDOOR, ROUTE_30, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
-	map_header Route31VioletGate, TILESET_GATE, GATE, ROUTE_31, MUSIC_ROUTE_30, 0, PALETTE_DAY, 1
+	map_header Route30, TILESET_JOHTO_1, ROUTE, ROUTE_30, MUSIC_ROUTE_30, 0, PALETTE_AUTO, FISHGROUP_POND
+	map_header Route31, TILESET_JOHTO_1, ROUTE, ROUTE_31, MUSIC_ROUTE_30, 0, PALETTE_AUTO, FISHGROUP_POND
+	map_header CherrygroveCity, TILESET_JOHTO_1, TOWN, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, FISHGROUP_SHORE
+	map_header CherrygroveMart, TILESET_MART, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CherrygrovePokeCenter1F, TILESET_POKECENTER, INDOOR, CHERRYGROVE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CherrygroveGymSpeechHouse, TILESET_HOUSE_1, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header GuideGentsHouse, TILESET_HOUSE_1, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header CherrygroveEvolutionSpeechHouse, TILESET_HOUSE_1, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route30BerrySpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_30, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header MrPokemonsHouse, TILESET_POWER_PLANT, INDOOR, ROUTE_30, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+	map_header Route31VioletGate, TILESET_GATE, GATE, ROUTE_31, MUSIC_ROUTE_30, 0, PALETTE_DAY, FISHGROUP_SHORE
--