shithub: pokered

Download patch

ref: 222afb247d592201dc228108232e3347c762db87
parent: c34156c5fb333864c1ae85036ea587c9f615a65a
author: luckytyphlosion <alan.rj.huang@gmail.com>
date: Sun Jul 26 13:04:24 EDT 2015

tmlearn macro.

Also multiple_divide documentation and fix improper wram comment.

--- a/data/baseStats/abra.asm
+++ b/data/baseStats/abra.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10110001
-db %00000011
-db %00001111
-db %11110000
-db %10000111
-db %00111000
-db %01000011
+	tmlearn 1,5,6,8
+	tmlearn 9,10
+	tmlearn 17,18,19,20
+	tmlearn 29,30,31,32
+	tmlearn 33,34,35,40
+	tmlearn 44,45,46
+	tmlearn 49,50,55
 db 0 ; padding
--- a/data/baseStats/aerodactyl.asm
+++ b/data/baseStats/aerodactyl.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %00101010
-db %01000011
-db %01001000
-db %11000000
-db %01100011
-db %00001100
-db %00001010
+	tmlearn 2,4,6
+	tmlearn 9,10,15
+	tmlearn 20,23
+	tmlearn 31,32
+	tmlearn 33,34,38,39
+	tmlearn 43,44
+	tmlearn 50,52
 db 0 ; padding
--- a/data/baseStats/alakazam.asm
+++ b/data/baseStats/alakazam.asm
@@ -24,11 +24,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10110001
-db %01000011
-db %00001111
-db %11111000
-db %10000111
-db %00111000
-db %01000011
+	tmlearn 1,5,6,8
+	tmlearn 9,10,15
+	tmlearn 17,18,19,20
+	tmlearn 28,29,30,31,32
+	tmlearn 33,34,35,40
+	tmlearn 44,45,46
+	tmlearn 49,50,55
 db 0 ; padding
--- a/data/baseStats/arbok.asm
+++ b/data/baseStats/arbok.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %01000011
-db %00011000
-db %11001110
-db %10000010
-db %10001000
-db %00100010
+	tmlearn 6,8
+	tmlearn 9,10,15
+	tmlearn 20,21
+	tmlearn 26,27,28,31,32
+	tmlearn 34,40
+	tmlearn 44,48
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/arcanine.asm
+++ b/data/baseStats/arcanine.asm
@@ -19,11 +19,11 @@
 db TAKE_DOWN
 db 5 ; growth rate
 ; learnset
-db %10100000
-db %01000011
-db %01001000
-db %11101000
-db %11100011
-db %00001000
-db %00000010
+	tmlearn 6,8
+	tmlearn 9,10,15
+	tmlearn 20,23
+	tmlearn 28,30,31,32
+	tmlearn 33,34,38,39,40
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/articuno.asm
+++ b/data/baseStats/articuno.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %00101010
-db %01111111
-db %00001000
-db %11000000
-db %01000011
-db %00001100
-db %00001010
+	tmlearn 2,4,6
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 33,34,39
+	tmlearn 43,44
+	tmlearn 50,52
 db 0 ; padding
--- a/data/baseStats/beedrill.asm
+++ b/data/baseStats/beedrill.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00100100
-db %01000011
-db %00011000
-db %11000000
-db %11000011
-db %00001000
-db %00000110
+	tmlearn 3,6
+	tmlearn 9,10,15
+	tmlearn 20,21
+	tmlearn 31,32
+	tmlearn 33,34,39,40
+	tmlearn 44
+	tmlearn 50,51
 db 0 ; padding
--- a/data/baseStats/bellsprout.asm
+++ b/data/baseStats/bellsprout.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %00100100
-db %00000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+	tmlearn 3,6
+	tmlearn 9,10
+	tmlearn 20,21,22
+	tmlearn 31,32
+	tmlearn 33,34
+	tmlearn 44
+	tmlearn 50,51
 db 0 ; padding
--- a/data/baseStats/blastoise.asm
+++ b/data/baseStats/blastoise.asm
@@ -19,11 +19,11 @@
 db WATER_GUN
 db 3 ; growth rate
 ; learnset
-db %10110001
-db %01111111
-db %00001111
-db %11001110
-db %10000011
-db %00001000
-db %00110010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 17,18,19,20
+	tmlearn 26,27,28,31,32
+	tmlearn 33,34,40
+	tmlearn 44
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/bulbasaur.asm
+++ b/data/baseStats/bulbasaur.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10100100
-db %00000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+	tmlearn 3,6,8
+	tmlearn 9,10
+	tmlearn 20,21,22
+	tmlearn 31,32
+	tmlearn 33,34
+	tmlearn 44
+	tmlearn 50,51
 db 0 ; padding
--- a/data/baseStats/butterfree.asm
+++ b/data/baseStats/butterfree.asm
@@ -19,15 +19,15 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00101010
-db %01000011
-db %00111000
-db %11110000
-db %01000011
-db %00101000
+	tmlearn 2,4,6
+	tmlearn 9,10,15
+	tmlearn 20,21,22
+	tmlearn 29,30,31,32
+	tmlearn 33,34,39
+	tmlearn 44,46
 IF DEF(_YELLOW)
-	db %01000010
+		tmlearn 49,54
 ELSE
-	db %00000010
+		tmlearn 49
 ENDC
 db 0 ; padding
--- a/data/baseStats/caterpie.asm
+++ b/data/baseStats/caterpie.asm
@@ -19,11 +19,12 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
 db 0 ; padding
+b 0 ; padding
--- a/data/baseStats/chansey.asm
+++ b/data/baseStats/chansey.asm
@@ -23,11 +23,11 @@
 db 0
 db 4 ; growth rate
 ; learnset
-db %10110001
-db %01111111
-db %10101111
-db %11110001
-db %10110111
-db %00111001
-db %01100011
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 17,18,19,20,22,24
+	tmlearn 25,29,30,31,32
+	tmlearn 33,34,35,37,38,40
+	tmlearn 41,44,45,46
+	tmlearn 49,50,54,55
 db 0 ; padding
--- a/data/baseStats/charizard.asm
+++ b/data/baseStats/charizard.asm
@@ -19,15 +19,15 @@
 db LEER
 db 3 ; growth rate
 ; learnset
-db %10110101
-db %01000011
-db %01001111
-db %11001110
-db %11100011
-db %00001000
+	tmlearn 1,3,5,6,8
+	tmlearn 9,10,15
+	tmlearn 17,18,19,20,23
+	tmlearn 26,27,28,31,32
+	tmlearn 33,34,38,39,40
+	tmlearn 44
 IF DEF(_YELLOW)
-	db %00101110
+		tmlearn 49,50,51,53
 ELSE
-	db %00100110
+		tmlearn 49,50,53
 ENDC
 db 0 ; padding
--- a/data/baseStats/charmander.asm
+++ b/data/baseStats/charmander.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10110101
-db %00000011
-db %01001111
-db %11001000
-db %11100011
-db %00001000
-db %00100110
+	tmlearn 1,3,5,6,8
+	tmlearn 9,10
+	tmlearn 17,18,19,20,23
+	tmlearn 28,31,32
+	tmlearn 33,34,38,39,40
+	tmlearn 44
+	tmlearn 50,51,54
 db 0 ; padding
--- a/data/baseStats/charmeleon.asm
+++ b/data/baseStats/charmeleon.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10110101
-db %00000011
-db %01001111
-db %11001000
-db %11100011
-db %00001000
-db %00100110
+	tmlearn 1,3,5,6,8
+	tmlearn 9,10
+	tmlearn 17,18,19,20,23
+	tmlearn 28,31,32
+	tmlearn 33,34,38,39,40
+	tmlearn 44
+	tmlearn 50,51,54
 db 0 ; padding
--- a/data/baseStats/clefable.asm
+++ b/data/baseStats/clefable.asm
@@ -19,11 +19,11 @@
 db METRONOME
 db 4 ; growth rate
 ; learnset
-db %10110001
-db %01111111
-db %10101111
-db %11110001
-db %10100111
-db %00111000
-db %01100011
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 17,18,19,20,22,24
+	tmlearn 25,29,30,31,32
+	tmlearn 33,34,35,38,40
+	tmlearn 44,45,46
+	tmlearn 49,50,54,55
 db 0 ; padding
--- a/data/baseStats/clefairy.asm
+++ b/data/baseStats/clefairy.asm
@@ -19,11 +19,11 @@
 db 0
 db 4 ; growth rate
 ; learnset
-db %10110001
-db %00111111
-db %10101111
-db %11110001
-db %10100111
-db %00111000
-db %01100011
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14
+	tmlearn 17,18,19,20,22,24
+	tmlearn 25,29,30,31,32
+	tmlearn 33,34,35,38,40
+	tmlearn 44,45,46
+	tmlearn 49,50,54,55
 db 0 ; padding
--- a/data/baseStats/cloyster.asm
+++ b/data/baseStats/cloyster.asm
@@ -19,11 +19,11 @@
 db AURORA_BEAM
 db 5 ; growth rate
 ; learnset
-db %00100000
-db %01111111
-db %00001000
-db %11100000
-db %01001011
-db %01001000
-db %00010011
+	tmlearn 6
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 20
+	tmlearn 30,31,32
+	tmlearn 33,34,36,39
+	tmlearn 44,47
+	tmlearn 49,50,53
 db 0 ; padding
--- a/data/baseStats/cubone.asm
+++ b/data/baseStats/cubone.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %00111111
-db %00001111
-db %11001110
-db %10100010
-db %00001000
-db %00100010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14
+	tmlearn 17,18,19,20
+	tmlearn 26,27,28,31,32
+	tmlearn 34,38,40
+	tmlearn 44
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/dewgong.asm
+++ b/data/baseStats/dewgong.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %11100000
-db %11111111
-db %00001000
-db %11000000
-db %10000010
-db %00001000
-db %00110010
+	tmlearn 6,7,8
+	tmlearn 9,10,11,12,13,14,15,16
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 34,40
+	tmlearn 44
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/diglett.asm
+++ b/data/baseStats/diglett.asm
@@ -19,15 +19,15 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %00000011
-db %00001000
-db %11001110
-db %00000010
-db %10001000
+	tmlearn 6,8
+	tmlearn 9,10
+	tmlearn 20
+	tmlearn 26,27,28,31,32
+	tmlearn 34
+	tmlearn 44,48
 IF DEF(_YELLOW)
-	db %00000110
+		tmlearn 49,50
 ELSE
-	db %00000010
+		tmlearn 49
 ENDC
 db 0 ; padding
--- a/data/baseStats/ditto.asm
+++ b/data/baseStats/ditto.asm
@@ -19,11 +19,12 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
 db 0 ; padding
+b 0 ; padding
--- a/data/baseStats/dodrio.asm
+++ b/data/baseStats/dodrio.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10101000
-db %01000011
-db %00001000
-db %11000000
-db %10000011
-db %00001100
-db %00001011
+	tmlearn 4,6,8
+	tmlearn 9,10,15
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 33,34,40
+	tmlearn 43,44
+	tmlearn 49,50,52
 db 0 ; padding
--- a/data/baseStats/doduo.asm
+++ b/data/baseStats/doduo.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10101000
-db %00000011
-db %00001000
-db %11000000
-db %10000011
-db %00001100
-db %00001011
+	tmlearn 4,6,8
+	tmlearn 9,10
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 33,34,40
+	tmlearn 43,44
+	tmlearn 49,50,52
 db 0 ; padding
--- a/data/baseStats/dragonair.asm
+++ b/data/baseStats/dragonair.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %11100000
-db %00111111
-db %11001000
-db %11000001
-db %11100011
-db %00011000
-db %00010010
+	tmlearn 6,7,8
+	tmlearn 9,10,11,12,13,14
+	tmlearn 20,23,24
+	tmlearn 25,31,32
+	tmlearn 33,34,38,39,40
+	tmlearn 44,45
+	tmlearn 50,53
 db 0 ; padding
--- a/data/baseStats/dragonite.asm
+++ b/data/baseStats/dragonite.asm
@@ -19,11 +19,11 @@
 db AGILITY
 db 5 ; growth rate
 ; learnset
-db %11100010
-db %01111111
-db %11001000
-db %11000001
-db %11100011
-db %00011000
-db %00110010
+	tmlearn 2,6,7,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 20,23,24
+	tmlearn 25,31,32
+	tmlearn 33,34,38,39,40
+	tmlearn 44,45
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/dratini.asm
+++ b/data/baseStats/dratini.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %10100000
-db %00111111
-db %11001000
-db %11000001
-db %11100011
-db %00011000
-db %00010010
+	tmlearn 6,8
+	tmlearn 9,10,11,12,13,14
+	tmlearn 20,23,24
+	tmlearn 25,31,32
+	tmlearn 33,34,38,39,40
+	tmlearn 44,45
+	tmlearn 50,53
 db 0 ; padding
--- a/data/baseStats/drowzee.asm
+++ b/data/baseStats/drowzee.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %00000011
-db %00001111
-db %11110000
-db %10000111
-db %00111010
-db %01000011
+	tmlearn 1,5,6,8
+	tmlearn 9,10
+	tmlearn 17,18,19,20
+	tmlearn 29,30,31,32
+	tmlearn 33,34,35,40
+	tmlearn 42,44,45,46
+	tmlearn 49,50,55
 db 0 ; padding
--- a/data/baseStats/dugtrio.asm
+++ b/data/baseStats/dugtrio.asm
@@ -19,15 +19,15 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %01000011
-db %00001000
-db %11001110
-db %00000010
-db %10001000
+	tmlearn 6,8
+	tmlearn 9,10,15
+	tmlearn 20
+	tmlearn 26,27,28,31,32
+	tmlearn 34
+	tmlearn 44,48
 IF DEF(_YELLOW)
-	db %00000110
+		tmlearn 49,50
 ELSE
-	db %00000010
+		tmlearn 49
 ENDC
 db 0 ; padding
--- a/data/baseStats/eevee.asm
+++ b/data/baseStats/eevee.asm
@@ -23,11 +23,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %00000011
-db %00001000
-db %11000000
-db %11000011
-db %00001000
-db %00000010
+	tmlearn 6,8
+	tmlearn 9,10
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 33,34,39,40
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/ekans.asm
+++ b/data/baseStats/ekans.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %00000011
-db %00011000
-db %11001110
-db %10000010
-db %10001000
-db %00100010
+	tmlearn 6,8
+	tmlearn 9,10
+	tmlearn 20,21
+	tmlearn 26,27,28,31,32
+	tmlearn 34,40
+	tmlearn 44,48
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/electabuzz.asm
+++ b/data/baseStats/electabuzz.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %01000011
-db %10001111
-db %11110001
-db %11000111
-db %00111000
-db %01100010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,15
+	tmlearn 17,18,19,20,24
+	tmlearn 25,29,30,31,32
+	tmlearn 33,34,35,39,40
+	tmlearn 44,45,46
+	tmlearn 50,54,55
 db 0 ; padding
--- a/data/baseStats/electrode.asm
+++ b/data/baseStats/electrode.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00100000
-db %01000001
-db %10001000
-db %11100001
-db %11001011
-db %01011000
-db %01000010
+	tmlearn 6
+	tmlearn 9,15
+	tmlearn 20,24
+	tmlearn 25,30,31,32
+	tmlearn 33,34,36,39,40
+	tmlearn 44,45,47
+	tmlearn 50,55
 db 0 ; padding
--- a/data/baseStats/exeggcute.asm
+++ b/data/baseStats/exeggcute.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %00100000
-db %00000011
-db %00001000
-db %11110000
-db %00011011
-db %01101000
-db %00000010
+	tmlearn 6
+	tmlearn 9,10
+	tmlearn 20
+	tmlearn 29,30,31,32
+	tmlearn 33,34,36,37
+	tmlearn 44,46,47
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/exeggutor.asm
+++ b/data/baseStats/exeggutor.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %00100000
-db %01000011
-db %00111000
-db %11110000
-db %00011011
-db %01101000
-db %00100010
+	tmlearn 6
+	tmlearn 9,10,15
+	tmlearn 20,21,22
+	tmlearn 29,30,31,32
+	tmlearn 33,34,36,37
+	tmlearn 44,46,47
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/farfetchd.asm
+++ b/data/baseStats/farfetchd.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10101110
-db %00000011
-db %00001000
-db %11000000
-db %11000011
-db %00001000
-db %00001110
+	tmlearn 2,3,4,6,8
+	tmlearn 9,10
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 33,34,39,40
+	tmlearn 44
+	tmlearn 50,51,52
 db 0 ; padding
--- a/data/baseStats/fearow.asm
+++ b/data/baseStats/fearow.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00101010
-db %01000011
-db %00001000
-db %11000000
-db %01000010
-db %00001100
-db %00001010
+	tmlearn 2,4,6
+	tmlearn 9,10,15
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 34,39
+	tmlearn 43,44
+	tmlearn 50,52
 db 0 ; padding
--- a/data/baseStats/flareon.asm
+++ b/data/baseStats/flareon.asm
@@ -23,11 +23,11 @@
 db EMBER
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %01000011
-db %00001000
-db %11000000
-db %11100011
-db %00001000
-db %00000010
+	tmlearn 6,8
+	tmlearn 9,10,15
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 33,34,38,39,40
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/gastly.asm
+++ b/data/baseStats/gastly.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %00100000
-db %00000000
-db %10011000
-db %11010001
-db %00001010
-db %01101010
-db %00000010
+	tmlearn 6
+	tmlearn 0
+	tmlearn 20,21,24
+	tmlearn 25,29,31,32
+	tmlearn 34,36
+	tmlearn 42,44,46,47
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/gengar.asm
+++ b/data/baseStats/gengar.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10110001
-db %01000011
-db %10011111
-db %11010001
-db %10001110
-db %01101010
-db %00100010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,15
+	tmlearn 17,18,19,20,21,24
+	tmlearn 25,29,31,32
+	tmlearn 34,35,36,40
+	tmlearn 42,44,46,47
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/geodude.asm
+++ b/data/baseStats/geodude.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10100001
-db %00000011
-db %00001111
-db %11001110
-db %00101110
-db %11001000
-db %00100010
+	tmlearn 1,6,8
+	tmlearn 9,10
+	tmlearn 17,18,19,20
+	tmlearn 26,27,28,31,32
+	tmlearn 34,35,36,38
+	tmlearn 44,47,48
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/gloom.asm
+++ b/data/baseStats/gloom.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %00100100
-db %00000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+	tmlearn 3,6
+	tmlearn 9,10
+	tmlearn 20,21,22
+	tmlearn 31,32
+	tmlearn 33,34
+	tmlearn 44
+	tmlearn 50,51
 db 0 ; padding
--- a/data/baseStats/golbat.asm
+++ b/data/baseStats/golbat.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00101010
-db %01000011
-db %00011000
-db %11000000
-db %01000010
-db %00001000
-db %00000010
+	tmlearn 2,4,6
+	tmlearn 9,10,15
+	tmlearn 20,21
+	tmlearn 31,32
+	tmlearn 34,39
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/goldeen.asm
+++ b/data/baseStats/goldeen.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %01100000
-db %00111111
-db %00001000
-db %11000000
-db %11000010
-db %00001000
-db %00010010
+	tmlearn 6,7
+	tmlearn 9,10,11,12,13,14
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 34,39,40
+	tmlearn 44
+	tmlearn 50,53
 db 0 ; padding
--- a/data/baseStats/golduck.asm
+++ b/data/baseStats/golduck.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %11111111
-db %00001111
-db %11001000
-db %11000010
-db %00001000
-db %00110010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14,15,16
+	tmlearn 17,18,19,20
+	tmlearn 28,31,32
+	tmlearn 34,39,40
+	tmlearn 44
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/golem.asm
+++ b/data/baseStats/golem.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10110001
-db %01000011
-db %00001111
-db %11001110
-db %00101110
-db %11001000
-db %00100010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,15
+	tmlearn 17,18,19,20
+	tmlearn 26,27,28,31,32
+	tmlearn 34,35,36,38
+	tmlearn 44,47,48
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/graveler.asm
+++ b/data/baseStats/graveler.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10100001
-db %00000011
-db %00001111
-db %11001110
-db %00101110
-db %11001000
-db %00100010
+	tmlearn 1,6,8
+	tmlearn 9,10
+	tmlearn 17,18,19,20
+	tmlearn 26,27,28,31,32
+	tmlearn 34,35,36,38
+	tmlearn 44,47,48
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/grimer.asm
+++ b/data/baseStats/grimer.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %00000000
-db %10011000
-db %11000001
-db %00101010
-db %01001000
-db %00000010
+	tmlearn 6,8
+	tmlearn 0
+	tmlearn 20,21,24
+	tmlearn 25,31,32
+	tmlearn 34,36,38
+	tmlearn 44,47
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/growlithe.asm
+++ b/data/baseStats/growlithe.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %10100000
-db %00000011
-db %01001000
-db %11001000
-db %11100011
-db %00001000
-db %00000010
+	tmlearn 6,8
+	tmlearn 9,10
+	tmlearn 20,23
+	tmlearn 28,31,32
+	tmlearn 33,34,38,39,40
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/gyarados.asm
+++ b/data/baseStats/gyarados.asm
@@ -26,11 +26,11 @@
 ENDC
 db 5 ; growth rate
 ; learnset
-db %10100000
-db %01111111
-db %11001000
-db %11000001
-db %10100011
-db %00001000
-db %00110010
+	tmlearn 6,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 20,23,24
+	tmlearn 25,31,32
+	tmlearn 33,34,38,40
+	tmlearn 44
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/haunter.asm
+++ b/data/baseStats/haunter.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %00100000
-db %00000000
-db %10011000
-db %11010001
-db %00001010
-db %01101010
-db %00000010
+	tmlearn 6
+	tmlearn 0
+	tmlearn 20,21,24
+	tmlearn 25,29,31,32
+	tmlearn 34,36
+	tmlearn 42,44,46,47
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/hitmonchan.asm
+++ b/data/baseStats/hitmonchan.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %00000011
-db %00001111
-db %11000000
-db %11000110
-db %00001000
-db %00100010
+	tmlearn 1,5,6,8
+	tmlearn 9,10
+	tmlearn 17,18,19,20
+	tmlearn 31,32
+	tmlearn 34,35,39,40
+	tmlearn 44
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/hitmonlee.asm
+++ b/data/baseStats/hitmonlee.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %00000011
-db %00001111
-db %11000000
-db %11000110
-db %00001000
-db %00100010
+	tmlearn 1,5,6,8
+	tmlearn 9,10
+	tmlearn 17,18,19,20
+	tmlearn 31,32
+	tmlearn 34,35,39,40
+	tmlearn 44
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/horsea.asm
+++ b/data/baseStats/horsea.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00100000
-db %00111111
-db %00001000
-db %11000000
-db %11000010
-db %00001000
-db %00010010
+	tmlearn 6
+	tmlearn 9,10,11,12,13,14
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 34,39,40
+	tmlearn 44
+	tmlearn 50,53
 db 0 ; padding
--- a/data/baseStats/hypno.asm
+++ b/data/baseStats/hypno.asm
@@ -19,11 +19,11 @@
 db CONFUSION
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %01000011
-db %00001111
-db %11110000
-db %10000111
-db %00111010
-db %01000011
+	tmlearn 1,5,6,8
+	tmlearn 9,10,15
+	tmlearn 17,18,19,20
+	tmlearn 29,30,31,32
+	tmlearn 33,34,35,40
+	tmlearn 42,44,45,46
+	tmlearn 49,50,55
 db 0 ; padding
--- a/data/baseStats/ivysaur.asm
+++ b/data/baseStats/ivysaur.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10100100
-db %00000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+	tmlearn 3,6,8
+	tmlearn 9,10
+	tmlearn 20,21,22
+	tmlearn 31,32
+	tmlearn 33,34
+	tmlearn 44
+	tmlearn 50,51
 db 0 ; padding
--- a/data/baseStats/jigglypuff.asm
+++ b/data/baseStats/jigglypuff.asm
@@ -19,11 +19,11 @@
 db 0
 db 4 ; growth rate
 ; learnset
-db %10110001
-db %00111111
-db %10101111
-db %11110001
-db %10100011
-db %00111000
-db %01100011
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14
+	tmlearn 17,18,19,20,22,24
+	tmlearn 25,29,30,31,32
+	tmlearn 33,34,38,40
+	tmlearn 44,45,46
+	tmlearn 49,50,54,55
 db 0 ; padding
--- a/data/baseStats/jolteon.asm
+++ b/data/baseStats/jolteon.asm
@@ -23,11 +23,11 @@
 db THUNDERSHOCK
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %01000011
-db %10001000
-db %11000001
-db %11000011
-db %00011000
-db %01000010
+	tmlearn 6,8
+	tmlearn 9,10,15
+	tmlearn 20,24
+	tmlearn 25,31,32
+	tmlearn 33,34,39,40
+	tmlearn 44,45
+	tmlearn 50,55
 db 0 ; padding
--- a/data/baseStats/jynx.asm
+++ b/data/baseStats/jynx.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %01111111
-db %00001111
-db %11110000
-db %10000111
-db %00101000
-db %00000010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 17,18,19,20
+	tmlearn 29,30,31,32
+	tmlearn 33,34,35,40
+	tmlearn 44,46
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/kabuto.asm
+++ b/data/baseStats/kabuto.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %00111111
-db %00001000
-db %11000000
-db %00000011
-db %00001000
-db %00010010
+	tmlearn 6,8
+	tmlearn 9,10,11,12,13,14
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 33,34
+	tmlearn 44
+	tmlearn 50,53
 db 0 ; padding
--- a/data/baseStats/kabutops.asm
+++ b/data/baseStats/kabutops.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110110
-db %01111111
-db %00001101
-db %11000000
-db %10000011
-db %00001000
-db %00010010
+	tmlearn 2,3,5,6,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 17,19,20
+	tmlearn 31,32
+	tmlearn 33,34,40
+	tmlearn 44
+	tmlearn 50,53
 db 0 ; padding
--- a/data/baseStats/kadabra.asm
+++ b/data/baseStats/kadabra.asm
@@ -24,11 +24,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10110001
-db %00000011
-db %00001111
-db %11111000
-db %10000111
-db %00111000
-db %01000011
+	tmlearn 1,5,6,8
+	tmlearn 9,10
+	tmlearn 17,18,19,20
+	tmlearn 28,29,30,31,32
+	tmlearn 33,34,35,40
+	tmlearn 44,45,46
+	tmlearn 49,50,55
 db 0 ; padding
--- a/data/baseStats/kakuna.asm
+++ b/data/baseStats/kakuna.asm
@@ -19,11 +19,12 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
 db 0 ; padding
+b 0 ; padding
--- a/data/baseStats/kangaskhan.asm
+++ b/data/baseStats/kangaskhan.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %01111111
-db %10001111
-db %11000111
-db %10100010
-db %10001000
-db %00110010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 17,18,19,20,24
+	tmlearn 25,26,27,31,32
+	tmlearn 34,38,40
+	tmlearn 44,48
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/kingler.asm
+++ b/data/baseStats/kingler.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100100
-db %01111111
-db %00001000
-db %11000000
-db %00000010
-db %00001000
-db %00110110
+	tmlearn 3,6,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 34
+	tmlearn 44
+	tmlearn 50,51,53,54
 db 0 ; padding
--- a/data/baseStats/koffing.asm
+++ b/data/baseStats/koffing.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00100000
-db %00000000
-db %10001000
-db %11000001
-db %00101010
-db %01001000
-db %00000010
+	tmlearn 6
+	tmlearn 0
+	tmlearn 20,24
+	tmlearn 25,31,32
+	tmlearn 34,36,38
+	tmlearn 44,47
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/krabby.asm
+++ b/data/baseStats/krabby.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100100
-db %00111111
-db %00001000
-db %11000000
-db %00000010
-db %00001000
-db %00110110
+	tmlearn 3,6,8
+	tmlearn 9,10,11,12,13,14
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 34
+	tmlearn 44
+	tmlearn 50,51,53,54
 db 0 ; padding
--- a/data/baseStats/lapras.asm
+++ b/data/baseStats/lapras.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %11100000
-db %01111111
-db %11101000
-db %11010001
-db %10000011
-db %00101000
-db %00110010
+	tmlearn 6,7,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 20,22,23,24
+	tmlearn 25,29,31,32
+	tmlearn 33,34,40
+	tmlearn 44,46
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/lickitung.asm
+++ b/data/baseStats/lickitung.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110101
-db %01111111
-db %10001111
-db %11000111
-db %10100010
-db %00001000
-db %00110110
+	tmlearn 1,3,5,6,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 17,18,19,20,24
+	tmlearn 25,26,27,31,32
+	tmlearn 34,38,40
+	tmlearn 44
+	tmlearn 50,51,53,54
 db 0 ; padding
--- a/data/baseStats/machamp.asm
+++ b/data/baseStats/machamp.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10110001
-db %01000011
-db %00001111
-db %11001110
-db %10100110
-db %10001000
-db %00100010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,15
+	tmlearn 17,18,19,20
+	tmlearn 26,27,28,31,32
+	tmlearn 34,35,38,40
+	tmlearn 44,48
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/machoke.asm
+++ b/data/baseStats/machoke.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10110001
-db %00000011
-db %00001111
-db %11001110
-db %10100110
-db %10001000
-db %00100010
+	tmlearn 1,5,6,8
+	tmlearn 9,10
+	tmlearn 17,18,19,20
+	tmlearn 26,27,28,31,32
+	tmlearn 34,35,38,40
+	tmlearn 44,48
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/machop.asm
+++ b/data/baseStats/machop.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10110001
-db %00000011
-db %00001111
-db %11001110
-db %10100110
-db %10001000
-db %00100010
+	tmlearn 1,5,6,8
+	tmlearn 9,10
+	tmlearn 17,18,19,20
+	tmlearn 26,27,28,31,32
+	tmlearn 34,35,38,40
+	tmlearn 44,48
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/magikarp.asm
+++ b/data/baseStats/magikarp.asm
@@ -19,11 +19,12 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
 db 0 ; padding
+b 0 ; padding
--- a/data/baseStats/magmar.asm
+++ b/data/baseStats/magmar.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %01000011
-db %00001111
-db %11110000
-db %10100110
-db %00101000
-db %00100010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,15
+	tmlearn 17,18,19,20
+	tmlearn 29,30,31,32
+	tmlearn 34,35,38,40
+	tmlearn 44,46
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/magnemite.asm
+++ b/data/baseStats/magnemite.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00100000
-db %00000011
-db %10001000
-db %11100001
-db %01000011
-db %00011000
-db %01000010
+	tmlearn 6
+	tmlearn 9,10
+	tmlearn 20,24
+	tmlearn 25,30,31,32
+	tmlearn 33,34,39
+	tmlearn 44,45
+	tmlearn 50,55
 db 0 ; padding
--- a/data/baseStats/magneton.asm
+++ b/data/baseStats/magneton.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00100000
-db %01000011
-db %10001000
-db %11100001
-db %01000011
-db %00011000
-db %01000010
+	tmlearn 6
+	tmlearn 9,10,15
+	tmlearn 20,24
+	tmlearn 25,30,31,32
+	tmlearn 33,34,39
+	tmlearn 44,45
+	tmlearn 50,55
 db 0 ; padding
--- a/data/baseStats/mankey.asm
+++ b/data/baseStats/mankey.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %10000011
-db %10001111
-db %11001001
-db %11000110
-db %10001000
-db %00100010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,16
+	tmlearn 17,18,19,20,24
+	tmlearn 25,28,31,32
+	tmlearn 34,35,39,40
+	tmlearn 44,48
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/marowak.asm
+++ b/data/baseStats/marowak.asm
@@ -25,11 +25,11 @@
 ENDC
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %01111111
-db %00001111
-db %11001110
-db %10100010
-db %00001000
-db %00100010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 17,18,19,20
+	tmlearn 26,27,28,31,32
+	tmlearn 34,38,40
+	tmlearn 44
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/meowth.asm
+++ b/data/baseStats/meowth.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %10001111
-db %10001000
-db %11000001
-db %11000010
-db %00001000
-db %00000010
+	tmlearn 6,8
+	tmlearn 9,10,11,12,16
+	tmlearn 20,24
+	tmlearn 25,31,32
+	tmlearn 34,39,40
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/metapod.asm
+++ b/data/baseStats/metapod.asm
@@ -19,11 +19,12 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
 db 0 ; padding
+b 0 ; padding
--- a/data/baseStats/mew.asm
+++ b/data/baseStats/mew.asm
@@ -18,12 +18,12 @@
 db 0
 db 0
 db 3 ; growth rate
-; include learnset directly
-db %11111111
-db %11111111
-db %11111111
-db %11111111
-db %11111111
-db %11111111
-db %11111111
+; learnset
+	tmlearn 1,2,3,4,5,6,7,8
+	tmlearn 9,10,11,12,13,14,15,16
+	tmlearn 17,18,19,20,21,22,23,24
+	tmlearn 25,26,27,28,29,30,31,32
+	tmlearn 33,34,35,36,37,38,39,40
+	tmlearn 41,42,43,44,45,46,47,48
+	tmlearn 49,50,51,52,53,54,55,56
 db %11111111 ; usually spacing
--- a/data/baseStats/mewtwo.asm
+++ b/data/baseStats/mewtwo.asm
@@ -19,11 +19,11 @@
 db PSYCHIC_M
 db 5 ; growth rate
 ; learnset
-db %10110001
-db %11111111
-db %10101111
-db %11110001
-db %10101111
-db %00111000
-db %01100011
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14,15,16
+	tmlearn 17,18,19,20,22,24
+	tmlearn 25,29,30,31,32
+	tmlearn 33,34,35,36,38,40
+	tmlearn 44,45,46
+	tmlearn 49,50,54,55
 db 0 ; padding
--- a/data/baseStats/moltres.asm
+++ b/data/baseStats/moltres.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %00101010
-db %01000011
-db %00001000
-db %11000000
-db %01100011
-db %00001100
-db %00001010
+	tmlearn 2,4,6
+	tmlearn 9,10,15
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 33,34,38,39
+	tmlearn 43,44
+	tmlearn 50,52
 db 0 ; padding
--- a/data/baseStats/mrmime.asm
+++ b/data/baseStats/mrmime.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %01000011
-db %10101111
-db %11110001
-db %10000111
-db %00111000
-db %01000010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,15
+	tmlearn 17,18,19,20,22,24
+	tmlearn 25,29,30,31,32
+	tmlearn 33,34,35,40
+	tmlearn 44,45,46
+	tmlearn 50,55
 db 0 ; padding
--- a/data/baseStats/muk.asm
+++ b/data/baseStats/muk.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %01000000
-db %10011000
-db %11000001
-db %00101010
-db %01001000
-db %00000010
+	tmlearn 6,8
+	tmlearn 15
+	tmlearn 20,21,24
+	tmlearn 25,31,32
+	tmlearn 34,36,38
+	tmlearn 44,47
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/nidoking.asm
+++ b/data/baseStats/nidoking.asm
@@ -19,11 +19,11 @@
 db THRASH
 db 3 ; growth rate
 ; learnset
-db %11110001
-db %11111111
-db %10001111
-db %11000111
-db %10100011
-db %10001000
-db %00110010
+	tmlearn 1,5,6,7,8
+	tmlearn 9,10,11,12,13,14,15,16
+	tmlearn 17,18,19,20,24
+	tmlearn 25,26,27,31,32
+	tmlearn 33,34,38,40
+	tmlearn 44,48
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/nidoqueen.asm
+++ b/data/baseStats/nidoqueen.asm
@@ -19,11 +19,11 @@
 db BODY_SLAM
 db 3 ; growth rate
 ; learnset
-db %11110001
-db %11111111
-db %10001111
-db %11000111
-db %10100011
-db %10001000
-db %00110010
+	tmlearn 1,5,6,7,8
+	tmlearn 9,10,11,12,13,14,15,16
+	tmlearn 17,18,19,20,24
+	tmlearn 25,26,27,31,32
+	tmlearn 33,34,38,40
+	tmlearn 44,48
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/nidoranf.asm
+++ b/data/baseStats/nidoranf.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10100000
-db %00100011
-db %10001000
-db %11000001
-db %10000011
-db %00001000
-db %00000010
+	tmlearn 6,8
+	tmlearn 9,10,14
+	tmlearn 20,24
+	tmlearn 25,31,32
+	tmlearn 33,34,40
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/nidoranm.asm
+++ b/data/baseStats/nidoranm.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %11100000
-db %00100011
-db %10001000
-db %11000001
-db %10000011
-db %00001000
-db %00000010
+	tmlearn 6,7,8
+	tmlearn 9,10,14
+	tmlearn 20,24
+	tmlearn 25,31,32
+	tmlearn 33,34,40
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/nidorina.asm
+++ b/data/baseStats/nidorina.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %11100000
-db %00111111
-db %10001000
-db %11000001
-db %10000011
-db %00001000
-db %00000010
+	tmlearn 6,7,8
+	tmlearn 9,10,11,12,13,14
+	tmlearn 20,24
+	tmlearn 25,31,32
+	tmlearn 33,34,40
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/nidorino.asm
+++ b/data/baseStats/nidorino.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %11100000
-db %00111111
-db %10001000
-db %11000001
-db %10000011
-db %00001000
-db %00000010
+	tmlearn 6,7,8
+	tmlearn 9,10,11,12,13,14
+	tmlearn 20,24
+	tmlearn 25,31,32
+	tmlearn 33,34,40
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/ninetails.asm
+++ b/data/baseStats/ninetails.asm
@@ -19,11 +19,11 @@
 db ROAR
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %01000011
-db %00001000
-db %11001000
-db %11100011
-db %00001000
-db %00000010
+	tmlearn 6,8
+	tmlearn 9,10,15
+	tmlearn 20
+	tmlearn 28,31,32
+	tmlearn 33,34,38,39,40
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/oddish.asm
+++ b/data/baseStats/oddish.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %00100100
-db %00000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+	tmlearn 3,6
+	tmlearn 9,10
+	tmlearn 20,21,22
+	tmlearn 31,32
+	tmlearn 33,34
+	tmlearn 44
+	tmlearn 50,51
 db 0 ; padding
--- a/data/baseStats/omanyte.asm
+++ b/data/baseStats/omanyte.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %00111111
-db %00001000
-db %11000000
-db %00000011
-db %00001000
-db %00010010
+	tmlearn 6,8
+	tmlearn 9,10,11,12,13,14
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 33,34
+	tmlearn 44
+	tmlearn 50,53
 db 0 ; padding
--- a/data/baseStats/omastar.asm
+++ b/data/baseStats/omastar.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %11100000
-db %01111111
-db %00001101
-db %11000000
-db %10000011
-db %00001000
-db %00010010
+	tmlearn 6,7,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 17,19,20
+	tmlearn 31,32
+	tmlearn 33,34,40
+	tmlearn 44
+	tmlearn 50,53
 db 0 ; padding
--- a/data/baseStats/onix.asm
+++ b/data/baseStats/onix.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %00000011
-db %00001000
-db %11001110
-db %10001010
-db %11001000
-db %00100010
+	tmlearn 6,8
+	tmlearn 9,10
+	tmlearn 20
+	tmlearn 26,27,28,31,32
+	tmlearn 34,36,40
+	tmlearn 44,47,48
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/paras.asm
+++ b/data/baseStats/paras.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100100
-db %00000011
-db %00111000
-db %11001000
-db %10000011
-db %00001000
-db %00000110
+	tmlearn 3,6,8
+	tmlearn 9,10
+	tmlearn 20,21,22
+	tmlearn 28,31,32
+	tmlearn 33,34,40
+	tmlearn 44
+	tmlearn 50,51
 db 0 ; padding
--- a/data/baseStats/parasect.asm
+++ b/data/baseStats/parasect.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100100
-db %01000011
-db %00111000
-db %11001000
-db %10000011
-db %00001000
-db %00000110
+	tmlearn 3,6,8
+	tmlearn 9,10,15
+	tmlearn 20,21,22
+	tmlearn 28,31,32
+	tmlearn 33,34,40
+	tmlearn 44
+	tmlearn 50,51
 db 0 ; padding
--- a/data/baseStats/persian.asm
+++ b/data/baseStats/persian.asm
@@ -19,11 +19,11 @@
 db SCREECH
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %11001111
-db %10001000
-db %11000001
-db %11000010
-db %00001000
-db %00000010
+	tmlearn 6,8
+	tmlearn 9,10,11,12,15,16
+	tmlearn 20,24
+	tmlearn 25,31,32
+	tmlearn 34,39,40
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/pidgeot.asm
+++ b/data/baseStats/pidgeot.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %00101010
-db %01000011
-db %00001000
-db %11000000
-db %01000011
-db %00001100
-db %00001010
+	tmlearn 2,4,6
+	tmlearn 9,10,15
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 33,34,39
+	tmlearn 43,44
+	tmlearn 50,52
 db 0 ; padding
--- a/data/baseStats/pidgeotto.asm
+++ b/data/baseStats/pidgeotto.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %00101010
-db %00000011
-db %00001000
-db %11000000
-db %01000011
-db %00001100
-db %00001010
+	tmlearn 2,4,6
+	tmlearn 9,10
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 33,34,39
+	tmlearn 43,44
+	tmlearn 50,52
 db 0 ; padding
--- a/data/baseStats/pidgey.asm
+++ b/data/baseStats/pidgey.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %00101010
-db %00000011
-db %00001000
-db %11000000
-db %01000011
-db %00001100
-db %00001010
+	tmlearn 2,4,6
+	tmlearn 9,10
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 33,34,39
+	tmlearn 43,44
+	tmlearn 50,52
 db 0 ; padding
--- a/data/baseStats/pikachu.asm
+++ b/data/baseStats/pikachu.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %10000011
-db %10001101
-db %11000001
-db %11000011
-db %00011000
-db %01000010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,16
+	tmlearn 17,19,20,24
+	tmlearn 25,31,32
+	tmlearn 33,34,39,40
+	tmlearn 44,45
+	tmlearn 50,55
 db 0 ; padding
--- a/data/baseStats/pinsir.asm
+++ b/data/baseStats/pinsir.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %10100100
-db %01000011
-db %00001101
-db %11000000
-db %00000010
-db %00001000
-db %00100110
+	tmlearn 3,6,8
+	tmlearn 9,10,15
+	tmlearn 17,19,20
+	tmlearn 31,32
+	tmlearn 34
+	tmlearn 44
+	tmlearn 50,51,54
 db 0 ; padding
--- a/data/baseStats/poliwag.asm
+++ b/data/baseStats/poliwag.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10100000
-db %00111111
-db %00001000
-db %11010000
-db %10000010
-db %00101000
-db %00010010
+	tmlearn 6,8
+	tmlearn 9,10,11,12,13,14
+	tmlearn 20
+	tmlearn 29,31,32
+	tmlearn 34,40
+	tmlearn 44,46
+	tmlearn 50,53
 db 0 ; padding
--- a/data/baseStats/poliwhirl.asm
+++ b/data/baseStats/poliwhirl.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10110001
-db %00111111
-db %00001111
-db %11010110
-db %10000110
-db %00101000
-db %00110010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14
+	tmlearn 17,18,19,20
+	tmlearn 26,27,29,31,32
+	tmlearn 34,35,40
+	tmlearn 44,46
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/poliwrath.asm
+++ b/data/baseStats/poliwrath.asm
@@ -19,11 +19,11 @@
 db BODY_SLAM
 db 3 ; growth rate
 ; learnset
-db %10110001
-db %01111111
-db %00001111
-db %11010110
-db %10000110
-db %00101000
-db %00110010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 17,18,19,20
+	tmlearn 26,27,29,31,32
+	tmlearn 34,35,40
+	tmlearn 44,46
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/ponyta.asm
+++ b/data/baseStats/ponyta.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %11100000
-db %00000011
-db %00001000
-db %11000000
-db %11100011
-db %00001000
-db %00000010
+	tmlearn 6,7,8
+	tmlearn 9,10
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 33,34,38,39,40
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/porygon.asm
+++ b/data/baseStats/porygon.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00100000
-db %01110011
-db %10001000
-db %11110001
-db %11000011
-db %00111000
-db %01000011
+	tmlearn 6
+	tmlearn 9,10,13,14,15
+	tmlearn 20,24
+	tmlearn 25,29,30,31,32
+	tmlearn 33,34,39,40
+	tmlearn 44,45,46
+	tmlearn 49,50,55
 db 0 ; padding
--- a/data/baseStats/primeape.asm
+++ b/data/baseStats/primeape.asm
@@ -24,11 +24,11 @@
 ENDC
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %11000011
-db %10001111
-db %11001001
-db %11000110
-db %10001000
-db %00100010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,15,16
+	tmlearn 17,18,19,20,24
+	tmlearn 25,28,31,32
+	tmlearn 34,35,39,40
+	tmlearn 44,48
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/psyduck.asm
+++ b/data/baseStats/psyduck.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %10111111
-db %00001111
-db %11001000
-db %11000010
-db %00001000
-db %00110010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14,16
+	tmlearn 17,18,19,20
+	tmlearn 28,31,32
+	tmlearn 34,39,40
+	tmlearn 44
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/raichu.asm
+++ b/data/baseStats/raichu.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %11000011
-db %10001101
-db %11000001
-db %11000011
-db %00011000
-db %01000010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,15,16
+	tmlearn 17,19,20,24
+	tmlearn 25,31,32
+	tmlearn 33,34,39,40
+	tmlearn 44,45
+	tmlearn 50,55
 db 0 ; padding
--- a/data/baseStats/rapidash.asm
+++ b/data/baseStats/rapidash.asm
@@ -19,11 +19,11 @@
 db GROWL
 db 0 ; growth rate
 ; learnset
-db %11100000
-db %01000011
-db %00001000
-db %11000000
-db %11100011
-db %00001000
-db %00000010
+	tmlearn 6,7,8
+	tmlearn 9,10,15
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 33,34,38,39,40
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/raticate.asm
+++ b/data/baseStats/raticate.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %01111111
-db %10001000
-db %11001001
-db %11000010
-db %00001000
-db %00000010
+	tmlearn 6,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 20,24
+	tmlearn 25,28,31,32
+	tmlearn 34,39,40
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/rattata.asm
+++ b/data/baseStats/rattata.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %00101111
-db %10001000
-db %11001001
-db %11000010
-db %00001000
-db %00000010
+	tmlearn 6,8
+	tmlearn 9,10,11,12,14
+	tmlearn 20,24
+	tmlearn 25,28,31,32
+	tmlearn 34,39,40
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/rhydon.asm
+++ b/data/baseStats/rhydon.asm
@@ -19,11 +19,11 @@
 db FURY_ATTACK
 db 5 ; growth rate
 ; learnset
-db %11110001
-db %11111111
-db %10001111
-db %11001111
-db %10100010
-db %10001000
-db %00110010
+	tmlearn 1,5,6,7,8
+	tmlearn 9,10,11,12,13,14,15,16
+	tmlearn 17,18,19,20,24
+	tmlearn 25,26,27,28,31,32
+	tmlearn 34,38,40
+	tmlearn 44,48
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/rhyhorn.asm
+++ b/data/baseStats/rhyhorn.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %11100000
-db %00000011
-db %10001000
-db %11001111
-db %10100010
-db %10001000
-db %00100010
+	tmlearn 6,7,8
+	tmlearn 9,10
+	tmlearn 20,24
+	tmlearn 25,26,27,28,31,32
+	tmlearn 34,38,40
+	tmlearn 44,48
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/sandshrew.asm
+++ b/data/baseStats/sandshrew.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100100
-db %00000011
-db %00001101
-db %11001110
-db %11000010
-db %10001000
-db %00100110
+	tmlearn 3,6,8
+	tmlearn 9,10
+	tmlearn 17,19,20
+	tmlearn 26,27,28,31,32
+	tmlearn 34,39,40
+	tmlearn 44,48
+	tmlearn 50,51,54
 db 0 ; padding
--- a/data/baseStats/sandslash.asm
+++ b/data/baseStats/sandslash.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100100
-db %01000011
-db %00001101
-db %11001110
-db %11000010
-db %10001000
-db %00100110
+	tmlearn 3,6,8
+	tmlearn 9,10,15
+	tmlearn 17,19,20
+	tmlearn 26,27,28,31,32
+	tmlearn 34,39,40
+	tmlearn 44,48
+	tmlearn 50,51,54
 db 0 ; padding
--- a/data/baseStats/scyther.asm
+++ b/data/baseStats/scyther.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00100100
-db %01000011
-db %00001000
-db %11000000
-db %11000010
-db %00001000
-db %00000110
+	tmlearn 3,6
+	tmlearn 9,10,15
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 34,39,40
+	tmlearn 44
+	tmlearn 50,51
 db 0 ; padding
--- a/data/baseStats/seadra.asm
+++ b/data/baseStats/seadra.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00100000
-db %01111111
-db %00001000
-db %11000000
-db %11000010
-db %00001000
-db %00010010
+	tmlearn 6
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 34,39,40
+	tmlearn 44
+	tmlearn 50,53
 db 0 ; padding
--- a/data/baseStats/seaking.asm
+++ b/data/baseStats/seaking.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %01100000
-db %01111111
-db %00001000
-db %11000000
-db %11000010
-db %00001000
-db %00010010
+	tmlearn 6,7
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 34,39,40
+	tmlearn 44
+	tmlearn 50,53
 db 0 ; padding
--- a/data/baseStats/seel.asm
+++ b/data/baseStats/seel.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %11100000
-db %10111111
-db %00001000
-db %11000000
-db %10000010
-db %00001000
-db %00110010
+	tmlearn 6,7,8
+	tmlearn 9,10,11,12,13,14,16
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 34,40
+	tmlearn 44
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/shellder.asm
+++ b/data/baseStats/shellder.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %00100000
-db %00111111
-db %00001000
-db %11100000
-db %01001011
-db %01001000
-db %00010011
+	tmlearn 6
+	tmlearn 9,10,11,12,13,14
+	tmlearn 20
+	tmlearn 30,31,32
+	tmlearn 33,34,36,39
+	tmlearn 44,47
+	tmlearn 49,50,53
 db 0 ; padding
--- a/data/baseStats/slowbro.asm
+++ b/data/baseStats/slowbro.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10110001
-db %11111111
-db %00001111
-db %11111110
-db %11100011
-db %00111000
-db %01110011
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14,15,16
+	tmlearn 17,18,19,20
+	tmlearn 26,27,28,29,30,31,32
+	tmlearn 33,34,38,39,40
+	tmlearn 44,45,46
+	tmlearn 49,50,53,54,55
 db 0 ; padding
--- a/data/baseStats/slowpoke.asm
+++ b/data/baseStats/slowpoke.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %10111111
-db %00001000
-db %11111110
-db %11100011
-db %00111000
-db %01110011
+	tmlearn 6,8
+	tmlearn 9,10,11,12,13,14,16
+	tmlearn 20
+	tmlearn 26,27,28,29,30,31,32
+	tmlearn 33,34,38,39,40
+	tmlearn 44,45,46
+	tmlearn 49,50,53,54,55
 db 0 ; padding
--- a/data/baseStats/snorlax.asm
+++ b/data/baseStats/snorlax.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %10110001
-db %11111111
-db %10101111
-db %11010111
-db %10101111
-db %10101000
-db %00110010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14,15,16
+	tmlearn 17,18,19,20,22,24
+	tmlearn 25,26,27,29,31,32
+	tmlearn 33,34,35,36,38,40
+	tmlearn 44,46,48
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/spearow.asm
+++ b/data/baseStats/spearow.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00101010
-db %00000011
-db %00001000
-db %11000000
-db %01000010
-db %00001100
-db %00001010
+	tmlearn 2,4,6
+	tmlearn 9,10
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 34,39
+	tmlearn 43,44
+	tmlearn 50,52
 db 0 ; padding
--- a/data/baseStats/squirtle.asm
+++ b/data/baseStats/squirtle.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10110001
-db %00111111
-db %00001111
-db %11001000
-db %10000011
-db %00001000
-db %00110010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14
+	tmlearn 17,18,19,20
+	tmlearn 28,31,32
+	tmlearn 33,34,40
+	tmlearn 44
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/starmie.asm
+++ b/data/baseStats/starmie.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %00100000
-db %01111111
-db %10001000
-db %11110001
-db %11000011
-db %00111000
-db %01010011
+	tmlearn 6
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 20,24
+	tmlearn 25,29,30,31,32
+	tmlearn 33,34,39,40
+	tmlearn 44,45,46
+	tmlearn 49,50,53,55
 db 0 ; padding
--- a/data/baseStats/staryu.asm
+++ b/data/baseStats/staryu.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %00100000
-db %00111111
-db %10001000
-db %11110001
-db %11000011
-db %00111000
-db %01010011
+	tmlearn 6
+	tmlearn 9,10,11,12,13,14
+	tmlearn 20,24
+	tmlearn 25,29,30,31,32
+	tmlearn 33,34,39,40
+	tmlearn 44,45,46
+	tmlearn 49,50,53,55
 db 0 ; padding
--- a/data/baseStats/tangela.asm
+++ b/data/baseStats/tangela.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100100
-db %01000011
-db %00111000
-db %11000000
-db %10000010
-db %00001000
-db %00000110
+	tmlearn 3,6,8
+	tmlearn 9,10,15
+	tmlearn 20,21,22
+	tmlearn 31,32
+	tmlearn 34,40
+	tmlearn 44
+	tmlearn 50,51
 db 0 ; padding
--- a/data/baseStats/tauros.asm
+++ b/data/baseStats/tauros.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %11100000
-db %01110011
-db %10001000
-db %11000111
-db %10100010
-db %00001000
-db %00100010
+	tmlearn 6,7,8
+	tmlearn 9,10,13,14,15
+	tmlearn 20,24
+	tmlearn 25,26,27,31,32
+	tmlearn 34,38,40
+	tmlearn 44
+	tmlearn 50,54
 db 0 ; padding
--- a/data/baseStats/tentacool.asm
+++ b/data/baseStats/tentacool.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %00100100
-db %00111111
-db %00011000
-db %11000000
-db %10000011
-db %00001000
-db %00010110
+	tmlearn 3,6
+	tmlearn 9,10,11,12,13,14
+	tmlearn 20,21
+	tmlearn 31,32
+	tmlearn 33,34,40
+	tmlearn 44
+	tmlearn 50,51,53
 db 0 ; padding
--- a/data/baseStats/tentacruel.asm
+++ b/data/baseStats/tentacruel.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %00100100
-db %01111111
-db %00011000
-db %11000000
-db %10000011
-db %00001000
-db %00010110
+	tmlearn 3,6
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 20,21
+	tmlearn 31,32
+	tmlearn 33,34,40
+	tmlearn 44
+	tmlearn 50,51,53
 db 0 ; padding
--- a/data/baseStats/vaporeon.asm
+++ b/data/baseStats/vaporeon.asm
@@ -23,11 +23,11 @@
 db WATER_GUN
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %01111111
-db %00001000
-db %11000000
-db %11000011
-db %00001000
-db %00010010
+	tmlearn 6,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 20
+	tmlearn 31,32
+	tmlearn 33,34,39,40
+	tmlearn 44
+	tmlearn 50,53
 db 0 ; padding
--- a/data/baseStats/venomoth.asm
+++ b/data/baseStats/venomoth.asm
@@ -24,11 +24,11 @@
 ENDC
 db 0 ; growth rate
 ; learnset
-db %00101010
-db %01000011
-db %00111000
-db %11110000
-db %01000011
-db %00101000
-db %00000010
+	tmlearn 2,4,6
+	tmlearn 9,10,15
+	tmlearn 20,21,22
+	tmlearn 29,30,31,32
+	tmlearn 33,34,39
+	tmlearn 44,46
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/venonat.asm
+++ b/data/baseStats/venonat.asm
@@ -19,19 +19,18 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00100000
-db %00000011
-db %00111000
+	tmlearn 6
+	tmlearn 9,10
+	tmlearn 20,21,22
 IF DEF(_YELLOW)
-	db %11110000
-	db %01000011
-	db %00101000
-	db %00100010
+		tmlearn 28,29,30,31
+		tmlearn 32,33,38
+		tmlearn 43,45
+		tmlearn 49,53
 ELSE
-	db %11010000
-	db %00000011
-	db %00101000
-	db %00000010
+		tmlearn 28,30,31
+		tmlearn 32,33
+		tmlearn 43,45
+		tmlearn 49
 ENDC
-
 db 0 ; padding
--- a/data/baseStats/venusaur.asm
+++ b/data/baseStats/venusaur.asm
@@ -19,11 +19,11 @@
 db VINE_WHIP
 db 3 ; growth rate
 ; learnset
-db %10100100
-db %01000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+	tmlearn 3,6,8
+	tmlearn 9,10,15
+	tmlearn 20,21,22
+	tmlearn 31,32
+	tmlearn 33,34
+	tmlearn 44
+	tmlearn 50,51
 db 0 ; padding
--- a/data/baseStats/victreebel.asm
+++ b/data/baseStats/victreebel.asm
@@ -19,11 +19,11 @@
 db RAZOR_LEAF
 db 3 ; growth rate
 ; learnset
-db %10100100
-db %01000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+	tmlearn 3,6,8
+	tmlearn 9,10,15
+	tmlearn 20,21,22
+	tmlearn 31,32
+	tmlearn 33,34
+	tmlearn 44
+	tmlearn 50,51
 db 0 ; padding
--- a/data/baseStats/vileplume.asm
+++ b/data/baseStats/vileplume.asm
@@ -19,11 +19,11 @@
 db PETAL_DANCE
 db 3 ; growth rate
 ; learnset
-db %10100100
-db %01000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+	tmlearn 3,6,8
+	tmlearn 9,10,15
+	tmlearn 20,21,22
+	tmlearn 31,32
+	tmlearn 33,34
+	tmlearn 44
+	tmlearn 50,51
 db 0 ; padding
--- a/data/baseStats/voltorb.asm
+++ b/data/baseStats/voltorb.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00100000
-db %00000001
-db %10001000
-db %11100001
-db %01001011
-db %01011000
-db %01000010
+	tmlearn 6
+	tmlearn 9
+	tmlearn 20,24
+	tmlearn 25,30,31,32
+	tmlearn 33,34,36,39
+	tmlearn 44,45,47
+	tmlearn 50,55
 db 0 ; padding
--- a/data/baseStats/vulpix.asm
+++ b/data/baseStats/vulpix.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %10100000
-db %00000011
-db %00001000
-db %11001000
-db %11100011
-db %00001000
-db %00000010
+	tmlearn 6,8
+	tmlearn 9,10
+	tmlearn 20
+	tmlearn 28,31,32
+	tmlearn 33,34,38,39,40
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/wartortle.asm
+++ b/data/baseStats/wartortle.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %10110001
-db %00111111
-db %00001111
-db %11001000
-db %10000011
-db %00001000
-db %00110010
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14
+	tmlearn 17,18,19,20
+	tmlearn 28,31,32
+	tmlearn 33,34,40
+	tmlearn 44
+	tmlearn 50,53,54
 db 0 ; padding
--- a/data/baseStats/weedle.asm
+++ b/data/baseStats/weedle.asm
@@ -19,11 +19,12 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
+	tmlearn 0
 db 0 ; padding
+b 0 ; padding
--- a/data/baseStats/weepinbell.asm
+++ b/data/baseStats/weepinbell.asm
@@ -19,11 +19,11 @@
 db 0
 db 3 ; growth rate
 ; learnset
-db %00100100
-db %00000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+	tmlearn 3,6
+	tmlearn 9,10
+	tmlearn 20,21,22
+	tmlearn 31,32
+	tmlearn 33,34
+	tmlearn 44
+	tmlearn 50,51
 db 0 ; padding
--- a/data/baseStats/weezing.asm
+++ b/data/baseStats/weezing.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00100000
-db %01000000
-db %10001000
-db %11000001
-db %00101010
-db %01001000
-db %00000010
+	tmlearn 6
+	tmlearn 15
+	tmlearn 20,24
+	tmlearn 25,31,32
+	tmlearn 34,36,38
+	tmlearn 44,47
+	tmlearn 50
 db 0 ; padding
--- a/data/baseStats/wigglytuff.asm
+++ b/data/baseStats/wigglytuff.asm
@@ -19,11 +19,11 @@
 db DOUBLESLAP
 db 4 ; growth rate
 ; learnset
-db %10110001
-db %01111111
-db %10101111
-db %11110001
-db %10100011
-db %00111000
-db %01100011
+	tmlearn 1,5,6,8
+	tmlearn 9,10,11,12,13,14,15
+	tmlearn 17,18,19,20,22,24
+	tmlearn 25,29,30,31,32
+	tmlearn 33,34,38,40
+	tmlearn 44,45,46
+	tmlearn 49,50,54,55
 db 0 ; padding
--- a/data/baseStats/zapdos.asm
+++ b/data/baseStats/zapdos.asm
@@ -19,11 +19,11 @@
 db 0
 db 5 ; growth rate
 ; learnset
-db %00101010
-db %01000011
-db %10001000
-db %11000001
-db %01000011
-db %00011100
-db %01001010
+	tmlearn 2,4,6
+	tmlearn 9,10,15
+	tmlearn 20,24
+	tmlearn 25,31,32
+	tmlearn 33,34,39
+	tmlearn 43,44,45
+	tmlearn 50,52,55
 db 0 ; padding
--- a/data/baseStats/zubat.asm
+++ b/data/baseStats/zubat.asm
@@ -19,11 +19,11 @@
 db 0
 db 0 ; growth rate
 ; learnset
-db %00101010
-db %00000011
-db %00011000
-db %11000000
-db %01000010
-db %00001000
-db %00000010
+	tmlearn 2,4,6
+	tmlearn 9,10
+	tmlearn 20,21
+	tmlearn 31,32
+	tmlearn 34,39
+	tmlearn 44
+	tmlearn 50
 db 0 ; padding
--- a/engine/multiply_divide.asm
+++ b/engine/multiply_divide.asm
@@ -2,120 +2,120 @@
 	ld a, $8
 	ld b, a
 	xor a
-	ld [H_DIVIDEND], a ; (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
-	ld [$ff9b], a
-	ld [H_SAVEDNUMTOPRINT], a
-	ld [$ff9d], a
-	ld [$ff9e], a
-.asm_37d4f
-	ld a, [H_REMAINDER] ; (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
+	ld [H_PRODUCT], a          ; $ff95
+	ld [H_MULTIPLYBUFFER], a   ; $ff9b
+	ld [H_MULTIPLYBUFFER+1], a ; $ff9c
+	ld [H_MULTIPLYBUFFER+2], a ; $ff9d
+	ld [H_MULTIPLYBUFFER+3], a ; $ff9e
+.multiplyLoop
+	ld a, [H_MULTIPLIER] ; $ff99
 	srl a
-	ld [H_REMAINDER], a ; (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
-	jr nc, .asm_37d77
-	ld a, [$ff9e]
+	ld [H_MULTIPLIER], a ; $ff99
+	jr nc, .smallMultiplier ; less than $80
+; code to possibly multiply the multiplicand by 2 and divide the multiplier by 2?
+	ld a, [H_MULTIPLYBUFFER+3]
 	ld c, a
-	ld a, [$ff98]
+	ld a, [H_MULTIPLICAND+2]
 	add c
-	ld [$ff9e], a
-	ld a, [$ff9d]
+	ld [H_MULTIPLYBUFFER+3], a
+	ld a, [H_MULTIPLYBUFFER+2]
 	ld c, a
-	ld a, [$ff97]
+	ld a, [H_MULTIPLICAND+1]
 	adc c
-	ld [$ff9d], a
-	ld a, [H_SAVEDNUMTOPRINT]
+	ld [H_MULTIPLYBUFFER+2], a
+	ld a, [H_MULTIPLYBUFFER+1] ; $ff9c
 	ld c, a
-	ld a, [H_NUMTOPRINT] ; (aliases: H_MULTIPLICAND)
+	ld a, [H_MULTIPLICAND] ; $ff96
 	adc c
-	ld [H_SAVEDNUMTOPRINT], a
-	ld a, [$ff9b]
+	ld [H_MULTIPLYDBUFFER+1], a ; $ff9c
+	ld a, [H_MULTIPLYBUFFER]
 	ld c, a
-	ld a, [H_DIVIDEND] ; (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
+	ld a, [H_PRODUCT] ; $ff95
 	adc c
-	ld [$ff9b], a
-.asm_37d77
+	ld [H_MULTIPLYBUFFER], a
+.smallMultiplier
 	dec b
-	jr z, .asm_37d94
-	ld a, [$ff98]
+	jr z, .done
+	ld a, [H_MULTIPLICAND]
 	sla a
-	ld [$ff98], a
-	ld a, [$ff97]
+	ld [H_MULTIPLICAND+2], a
+	ld a, [H_MULTIPLICAND+1]
 	rl a
-	ld [$ff97], a
-	ld a, [H_NUMTOPRINT] ; (aliases: H_MULTIPLICAND)
+	ld [H_MULTIPLICAND+1], a
+	ld a, [H_MULTIPLICAND] ; $ff96
 	rl a
-	ld [H_NUMTOPRINT], a ; (aliases: H_MULTIPLICAND)
-	ld a, [H_DIVIDEND] ; (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
+	ld [H_MULTIPLICAND], a ; $ff96
+	ld a, [H_PRODUCT] ; $ff95
 	rl a
-	ld [H_DIVIDEND], a ; (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
-	jr .asm_37d4f
-.asm_37d94
-	ld a, [$ff9e]
-	ld [$ff98], a
-	ld a, [$ff9d]
-	ld [$ff97], a
-	ld a, [H_SAVEDNUMTOPRINT]
-	ld [H_NUMTOPRINT], a ; (aliases: H_MULTIPLICAND)
-	ld a, [$ff9b]
-	ld [H_DIVIDEND], a ; (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
+	ld [H_PRODUCT], a ; $ff95
+	jr .multiplyLoop
+.done
+	ld a, [H_MULTIPLYBUFFER+3]
+	ld [H_PRODUCT+3], a
+	ld a, [H_MULTIPLYBUFFER+2]
+	ld [H_PRODUCT+2], a
+	ld a, [H_MULTIPLYBUFFER+1] ; $ff9c
+	ld [H_PRODUCT+1], a ; $ff96
+	ld [H_PRODUCT], a ; $ff95
 	ret
 
 _Divide: ; 37da5 (d:7da5)
 	xor a
-	ld [$ff9a], a
-	ld [$ff9b], a
-	ld [H_SAVEDNUMTOPRINT], a
-	ld [$ff9d], a
-	ld [$ff9e], a
+	ld [H_DIVIDEBUFFER], a   ; ff9a
+	ld [H_DIVIDEBUFFER+1], a ; ff9b
+	ld [H_DIVIDEBUFFER+2], a ; ff9c
+	ld [H_DIVIDEBUFFER+3], a ; ff9d
+	ld [H_DIVIDEBUFFER+4], a ; ff9e
 	ld a, $9
 	ld e, a
 .asm_37db3
-	ld a, [$ff9a]
+	ld a, [H_DIVIDEBUFFER]
 	ld c, a
-	ld a, [H_NUMTOPRINT] ; (aliases: H_MULTIPLICAND)
+	ld a, [H_DIVIDEND+1] ; $ff96
 	sub c
 	ld d, a
-	ld a, [H_REMAINDER] ; (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
+	ld a, [H_DIVISOR] ; $ff99
 	ld c, a
-	ld a, [H_DIVIDEND] ; (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
+	ld a, [H_DIVIDEND] ; $ff95
 	sbc c
 	jr c, .asm_37dce
-	ld [H_DIVIDEND], a ; (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
+	ld [H_DIVIDEND], a ; $ff95
 	ld a, d
-	ld [H_NUMTOPRINT], a ; (aliases: H_MULTIPLICAND)
-	ld a, [$ff9e]
+	ld [H_DIVIDEND+1], a ; $ff96
+	ld a, [H_DIVIDEBUFFER+4]
 	inc a
-	ld [$ff9e], a
+	ld [H_DIVIDEBUFFER+4], a
 	jr .asm_37db3
 .asm_37dce
-	ld a, b
+		ld a, b
 	cp $1
-	jr z, .asm_37e18
-	ld a, [$ff9e]
+	jr z, .done
+	ld a, [H_DIVIDEBUFFER+4]
 	sla a
-	ld [$ff9e], a
-	ld a, [$ff9d]
+	ld [H_DIVIDEBUFFER+4], a
+	ld a, [H_DIVIDEBUFFER+3]
 	rl a
-	ld [$ff9d], a
-	ld a, [H_SAVEDNUMTOPRINT]
+	ld [H_DIVIDEBUFFER+3], a
+	ld a, [H_DIVIDEBUFFER+2] ; $ff9c
 	rl a
-	ld [H_SAVEDNUMTOPRINT], a
-	ld a, [$ff9b]
+	ld [H_DIVIDEBUFFER+2], a ; $ff9c
+	ld a, [H_DIVIDEBUFFER+1]
 	rl a
-	ld [$ff9b], a
+	ld [H_DIVIDEBUFFER+1], a
 	dec e
 	jr nz, .asm_37e04
 	ld a, $8
 	ld e, a
-	ld a, [$ff9a]
-	ld [H_REMAINDER], a ; (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
+	ld a, [H_DIVIDEBUFFER]
+	ld [H_DIVISOR], a ; $ff99
 	xor a
-	ld [$ff9a], a
-	ld a, [H_NUMTOPRINT] ; (aliases: H_MULTIPLICAND)
-	ld [H_DIVIDEND], a ; (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
-	ld a, [$ff97]
-	ld [H_NUMTOPRINT], a ; (aliases: H_MULTIPLICAND)
-	ld a, [$ff98]
-	ld [$ff97], a
+	ld [H_DIVIDEBUFFER], a
+	ld a, [H_DIVIDEND+1] ; $ff96
+	ld [H_DIVIDEND], a ; $ff95
+	ld a, [H_DIVIDEND+2]
+	ld [H_DIVIDEND+1], a ; $ff96
+	ld a, [H_DIVIDEND+3]
+	ld [H_DIVIDEND+2], a
 .asm_37e04
 	ld a, e
 	cp $1
@@ -122,22 +122,22 @@
 	jr nz, .asm_37e0a
 	dec b
 .asm_37e0a
-	ld a, [H_REMAINDER] ; (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
+	ld a, [H_DIVIDEND+4] ; $ff99
 	srl a
-	ld [H_REMAINDER], a ; (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
-	ld a, [$ff9a]
+	ld [H_REMAINDER], a ; $ff99
+	ld a, [H_DIVIDEBUFFER]
 	rr a
-	ld [$ff9a], a
+	ld [H_DIVIDEBUFFER], a
 	jr .asm_37db3
-.asm_37e18
-	ld a, [H_NUMTOPRINT] ; (aliases: H_MULTIPLICAND)
-	ld [H_REMAINDER], a ; (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
-	ld a, [$ff9e]
-	ld [$ff98], a
-	ld a, [$ff9d]
-	ld [$ff97], a
-	ld a, [H_SAVEDNUMTOPRINT]
-	ld [H_NUMTOPRINT], a ; (aliases: H_MULTIPLICAND)
-	ld a, [$ff9b]
-	ld [H_DIVIDEND], a ; (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
+.done
+	ld a, [H_DIVIDEND+1] ; $ff96
+	ld [H_REMAINDER], a ; $ff99
+	ld a, [H_DIVIDEBUFFER+4]
+	ld [H_QUOTIENT+3], a
+	ld a, [H_DIVIDEBUFFER+3]
+	ld [H_QUOTIENT+2], a
+	ld a, [H_DIVIDEBUFFER+2] ; $ff9c
+	ld [H_QUOTIENT+1], a ; $ff96
+	ld a, [H_DIVIDEBUFFER+1]
+	ld [H_QUOTIENT], a ; $ff95
 	ret
--- a/hram.asm
+++ b/hram.asm
@@ -107,6 +107,10 @@
 H_QUOTIENT     EQU $FF95 ; 4 bytes
 H_REMAINDER    EQU $FF99 ; 1 byte
 
+H_DIVIDEBUFFER EQU $FF9A
+
+H_MULTIPLYBUFFER EQU $FF9B
+
 ; PrintNumber (big endian).
 H_PASTLEADINGZEROES EQU $FF95 ; last char printed
 H_NUMTOPRINT        EQU $FF96 ; 3 bytes
--- a/macros.asm
+++ b/macros.asm
@@ -633,3 +633,63 @@
 	db 0 ; x alignment
 	dw wOverworldMap + 7 + \2_WIDTH ; window (position of the upper left block after entering the map)
 ENDM
+
+tmlearn: MACRO
+if 0 == \1
+tm1 = 0
+tm1_ = 0
+else
+tm1 = %111 & (\1 - 1)
+tm1_ = 1
+endc
+if 2 <= _NARG
+tm2 = %111 & (\2 - 1)
+tm2_ = 1
+else
+tm2 = 0
+tm2_ = 0
+endc
+if 3 <= _NARG
+tm3 = %111 & (\3 - 1)
+tm3_ = 1
+else
+tm3 = 0
+tm3_ = 0
+endc
+if 4 <= _NARG
+tm4 = %111 & (\4 - 1)
+tm4_ = 1
+else
+tm4 = 0
+tm4_ = 0
+endc
+if 5 <= _NARG
+tm5 = %111 & (\5 - 1)
+tm5_ = 1
+else
+tm5 = 0
+tm5_ = 0
+endc
+if 6 <= _NARG
+tm6 = %111 & (\6 - 1)
+tm6_ = 1
+else
+tm6 = 0
+tm6_ = 0
+endc
+if 7 <= _NARG
+tm7 = %111 & (\7 - 1)
+tm7_ = 1
+else
+tm7 = 0
+tm7_ = 0
+endc
+if 8 <= _NARG
+tm8 = %111 & (\8 - 1)
+tm8_ = 1
+else
+tm8 = 0
+tm8_ = 0
+endc
+db tm8_ << tm8 | tm7_ << tm7 | tm6_ << tm6 | tm5_ << tm5 | tm4_ << tm4 | tm3_ << tm3 | tm2_ << tm2 | tm1_ << tm1
+ENDM
\ No newline at end of file
--- a/wram.asm
+++ b/wram.asm
@@ -313,7 +313,7 @@
 ; two byte buffer
 ; the received menu selection is stored twice
 
-wcc3d:: ds 1 ; not used for anything other than mentioned above (haha link function)
+wcc3d:: ds 1 ; not used for anything other than mentioned above
 
 wSerialExchangeNybbleReceiveData:: ; cc3e
 ; the final received nybble is stored here by Serial_ExchangeNybble