diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2019-01-03 21:05:13 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-03 21:05:13 -0500 |
commit | 3a4f44ef36c1f0eb6a25bd86234cb94ef73a0c59 (patch) | |
tree | 3fdb692dd75014069d0ec086568844b570098bf2 | |
parent | 84e22a9ecf52bb73993feadce91524355f1bb70f (diff) | |
parent | 1de4e55185f4f3e6e5f59541236abc10b69d51aa (diff) |
Merge pull request #36 from PikalaxALT/trainer_tower
Trainer tower (phase 1)
44 files changed, 8951 insertions, 1524 deletions
@@ -121,6 +121,8 @@ $(C_BUILDDIR)/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc $(C_BUILDDIR)/isagbprn.o: CC1 := tools/agbcc/bin/old_agbcc $(C_BUILDDIR)/isagbprn.o: CFLAGS := -mthumb-interwork +#$(C_BUILDDIR)/trainer_tower.o: CFLAGS += -ffreestanding + ifeq ($(NODEP),1) $(C_BUILDDIR)/%.o: c_dep := else @@ -149,7 +151,7 @@ $(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) $(DATA_ASM_SUBDIR)/$*.s) endif $(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep) - $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(AS) $(ASFLAGS) -o $@ + $(PREPROC) $< charmap.txt | $(CPP) -I include -nostdinc -undef - | $(AS) $(ASFLAGS) -o $@ $(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s $(AS) $(ASFLAGS) -I sound -o $@ $< diff --git a/asm/region_map.s b/asm/region_map.s index f860c6065..168ca47c3 100644 --- a/asm/region_map.s +++ b/asm/region_map.s @@ -9706,11 +9706,11 @@ sub_80C4D78: @ 80C4D78 bl sub_80C4D40 cmp r0, 0x1 bne _080C4DA4 - ldr r1, _080C4DA0 @ =gUnknown_83EF22E + ldr r1, _080C4DA0 @ =gMapSecName_CeladonDept b _080C4DAC .align 2, 0 _080C4D9C: .4byte 0xffa80000 -_080C4DA0: .4byte gUnknown_83EF22E +_080C4DA0: .4byte gMapSecName_CeladonDept _080C4DA4: ldr r0, _080C4DB8 @ =gUnknown_83F1CAC lsls r1, r5, 2 diff --git a/asm/trainer_tower.s b/asm/trainer_tower.s index 5b65927d5..c1da74a98 100644 --- a/asm/trainer_tower.s +++ b/asm/trainer_tower.s @@ -5,1152 +5,6 @@ .text - thumb_func_start sub_815D7BC -sub_815D7BC: @ 815D7BC - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r0, 0x1E - bl TryCopySpecialSaveSection - cmp r0, 0x1 - bne _0815D804 - ldr r2, _0815D800 @ =0x00000f88 - adds r0, r5, 0 - adds r1, r4, 0 - bl memcpy - movs r0, 0x1F - adds r1, r4, 0 - bl TryCopySpecialSaveSection - cmp r0, 0x1 - bne _0815D804 - ldr r1, _0815D800 @ =0x00000f88 - adds r0, r5, r1 - movs r2, 0xF8 - lsls r2, 4 - adds r1, r4, 0 - bl memcpy - adds r0, r5, 0 - bl sub_815D6B4 - cmp r0, 0 - beq _0815D804 - movs r0, 0x1 - b _0815D806 - .align 2, 0 -_0815D800: .4byte 0x00000f88 -_0815D804: - movs r0, 0 -_0815D806: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_815D7BC - - thumb_func_start sub_815D80C -sub_815D80C: @ 815D80C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x80 - lsls r0, 5 - bl AllocZeroed - adds r5, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_815D7BC - adds r4, r0, 0 - adds r0, r5, 0 - bl Free - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_815D80C - - thumb_func_start sub_815D834 -sub_815D834: @ 815D834 - movs r0, 0 - bx lr - thumb_func_end sub_815D834 - - thumb_func_start sub_815D838 -sub_815D838: @ 815D838 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r2, 0 - ldr r0, _0815D8C0 @ =gUnknown_8479D38 - mov r10, r0 - movs r1, 0xFA - lsls r1, 2 - adds r5, r1, 0 -_0815D84E: - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r1, r0, 0 - add r1, r10 - mov r8, r1 - mov r1, r10 - adds r1, 0x8 - adds r7, r0, r1 - ldr r1, _0815D8C4 @ =gUnknown_8479D48 - adds r6, r0, r1 - movs r4, 0 - adds r2, 0x1 - mov r9, r2 -_0815D86A: - mov r0, r8 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0815D87C - ldrb r1, [r1] - adds r0, r5, r1 - bl FlagSet -_0815D87C: - adds r1, r7, r4 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0815D88C - ldrb r1, [r1] - adds r0, r5, r1 - bl FlagSet -_0815D88C: - adds r1, r6, r4 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0815D89C - ldrb r1, [r1] - adds r0, r5, r1 - bl FlagSet -_0815D89C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _0815D86A - mov r1, r9 - lsls r0, r1, 24 - lsrs r2, r0, 24 - cmp r2, 0xE - bls _0815D84E - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815D8C0: .4byte gUnknown_8479D38 -_0815D8C4: .4byte gUnknown_8479D48 - thumb_func_end sub_815D838 - - thumb_func_start sub_815D8C8 -sub_815D8C8: @ 815D8C8 - push {r4,lr} - ldr r4, _0815D8F0 @ =0x00004023 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _0815D8F4 @ =0x000005db - cmp r1, r0 - bhi _0815D8E8 - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl VarSet -_0815D8E8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815D8F0: .4byte 0x00004023 -_0815D8F4: .4byte 0x000005db - thumb_func_end sub_815D8C8 - - thumb_func_start sub_815D8F8 -sub_815D8F8: @ 815D8F8 - push {r4-r6,lr} - movs r4, 0xFF - movs r2, 0 - ldr r6, _0815D95C @ =gUnknown_8479D34 - ldr r0, _0815D960 @ =gSaveBlock1Ptr - ldr r3, [r0] - movs r5, 0x4 - ldrsb r5, [r3, r5] -_0815D908: - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r1, r0, r6 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, r5 - bne _0815D928 - ldrb r1, [r1, 0x1] - lsls r1, 24 - asrs r1, 24 - movs r0, 0x5 - ldrsb r0, [r3, r0] - cmp r1, r0 - bne _0815D928 - adds r4, r2, 0 -_0815D928: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xE - bls _0815D908 - cmp r4, 0xFF - beq _0815D956 - ldr r4, _0815D964 @ =0x00004023 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - ldr r1, _0815D968 @ =0x05db0000 - cmp r0, r1 - bls _0815D956 - adds r0, r4, 0 - movs r1, 0 - bl VarSet - bl sub_815D838 - bl sub_815D96C -_0815D956: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815D95C: .4byte gUnknown_8479D34 -_0815D960: .4byte gSaveBlock1Ptr -_0815D964: .4byte 0x00004023 -_0815D968: .4byte 0x05db0000 - thumb_func_end sub_815D8F8 - - thumb_func_start sub_815D96C -sub_815D96C: @ 815D96C - push {r4-r6,lr} - movs r6, 0 -_0815D970: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x59 - bls _0815D994 - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - ldr r1, _0815D990 @ =gUnknown_8479D38 - b _0815D9B0 - .align 2, 0 -_0815D990: .4byte gUnknown_8479D38 -_0815D994: - cmp r0, 0x3B - bls _0815D9A8 - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - ldr r1, _0815D9A4 @ =gUnknown_8479D40 - b _0815D9B0 - .align 2, 0 -_0815D9A4: .4byte gUnknown_8479D40 -_0815D9A8: - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - ldr r1, _0815D9E4 @ =gUnknown_8479D48 -_0815D9B0: - adds r5, r0, r1 - movs r4, 0 - adds r6, 0x1 -_0815D9B6: - adds r1, r5, r4 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0815D9CC - movs r2, 0xFA - lsls r2, 2 - adds r0, r2, 0 - ldrb r1, [r1] - adds r0, r1 - bl FlagClear -_0815D9CC: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _0815D9B6 - lsls r0, r6, 24 - lsrs r6, r0, 24 - cmp r6, 0xE - bls _0815D970 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815D9E4: .4byte gUnknown_8479D48 - thumb_func_end sub_815D96C - - thumb_func_start sub_815D9E8 -sub_815D9E8: @ 815D9E8 - push {lr} - bl sub_815DC8C - ldr r1, _0815DA08 @ =gUnknown_847A230 - ldr r0, _0815DA0C @ =gSpecialVar_0x8004 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl sub_815DD2C - pop {r0} - bx r0 - .align 2, 0 -_0815DA08: .4byte gUnknown_847A230 -_0815DA0C: .4byte gSpecialVar_0x8004 - thumb_func_end sub_815D9E8 - - thumb_func_start sub_815DA10 -sub_815DA10: @ 815DA10 - ldr r1, _0815DA20 @ =gFacilityClassToTrainerClass - ldr r0, _0815DA24 @ =gUnknown_203F45C - ldr r0, [r0] - adds r0, 0x3D - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0815DA20: .4byte gFacilityClassToTrainerClass -_0815DA24: .4byte gUnknown_203F45C - thumb_func_end sub_815DA10 - - thumb_func_start sub_815DA28 -sub_815DA28: @ 815DA28 - push {lr} - ldr r1, _0815DA38 @ =gUnknown_203F45C - ldr r1, [r1] - movs r2, 0xB - bl StringCopyN - pop {r0} - bx r0 - .align 2, 0 -_0815DA38: .4byte gUnknown_203F45C - thumb_func_end sub_815DA28 - - thumb_func_start sub_815DA3C -sub_815DA3C: @ 815DA3C - ldr r1, _0815DA4C @ =gFacilityClassToPicIndex - ldr r0, _0815DA50 @ =gUnknown_203F45C - ldr r0, [r0] - adds r0, 0x3D - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0815DA4C: .4byte gFacilityClassToPicIndex -_0815DA50: .4byte gUnknown_203F45C - thumb_func_end sub_815DA3C - - thumb_func_start sub_815DA54 -sub_815DA54: @ 815DA54 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - bl sub_815DC8C - ldr r5, _0815DBC4 @ =gUnknown_203F45C - movs r0, 0x40 - bl AllocZeroed - str r0, [r5] - ldr r0, _0815DBC8 @ =0x00004001 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - ldr r0, [r5] - ldr r1, _0815DBCC @ =gUnknown_203F458 - ldr r1, [r1] - ldrb r3, [r1] - lsls r2, r3, 5 - subs r2, r3 - lsls r2, 5 - adds r2, 0xC - adds r1, r2 - mov r2, r10 - lsls r6, r2, 2 - adds r4, r6, r2 - lsls r4, 3 - add r4, r10 - lsls r4, 3 - adds r2, r4, 0x4 - adds r1, r2 - movs r2, 0xB - bl StringCopyN - movs r0, 0 - mov r9, r0 - str r6, [sp] - mov r12, r4 - mov r1, r10 - adds r1, 0x1 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r1 - lsls r5, r0, 3 -_0815DAB8: - ldr r0, _0815DBC4 @ =gUnknown_203F45C - ldr r0, [r0] - mov r8, r0 - mov r1, r9 - lsls r4, r1, 1 - mov r2, r8 - adds r2, 0xC - adds r2, r4 - ldr r0, _0815DBCC @ =gUnknown_203F458 - ldr r3, [r0] - ldrb r1, [r3] - lsls r0, r1, 5 - subs r0, r1 - lsls r0, 5 - add r0, r12 - adds r7, r3, 0 - adds r7, 0x2A - adds r0, r7, r0 - ldrh r0, [r0] - strh r0, [r2] - mov r2, r8 - adds r2, 0x18 - adds r2, r4 - ldrb r1, [r3] - lsls r0, r1, 5 - subs r0, r1 - lsls r0, 5 - add r0, r12 - adds r6, r3, 0 - adds r6, 0x36 - adds r0, r6, r0 - ldrh r0, [r0] - strh r0, [r2] - ldrb r1, [r3] - lsls r0, r1, 5 - subs r0, r1 - lsls r2, r0, 5 - adds r0, r3, r2 - ldrb r0, [r0, 0xE] - cmp r0, 0x1 - bne _0815DB2E - mov r1, r8 - adds r1, 0x24 - adds r1, r4 - adds r0, r5, r2 - adds r0, r7, r0 - ldrh r0, [r0] - strh r0, [r1] - mov r2, r8 - adds r2, 0x30 - adds r2, r4 - ldrb r1, [r3] - lsls r0, r1, 5 - subs r0, r1 - lsls r0, 5 - adds r0, r5, r0 - adds r0, r6, r0 - ldrh r0, [r0] - strh r0, [r2] -_0815DB2E: - movs r2, 0x2 - add r12, r2 - adds r5, 0x2 - movs r0, 0x1 - add r9, r0 - mov r1, r9 - cmp r1, 0x5 - ble _0815DAB8 - ldr r2, _0815DBC4 @ =gUnknown_203F45C - ldr r3, [r2] - ldr r0, _0815DBCC @ =gUnknown_203F458 - ldr r1, [r0] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - ldrb r0, [r1, 0xE] - adds r3, 0x3C - strb r0, [r3] - ldr r1, _0815DBC4 @ =gUnknown_203F45C - ldr r4, [r1] - ldr r2, _0815DBCC @ =gUnknown_203F458 - ldr r3, [r2] - ldr r1, [sp] - add r1, r10 - lsls r1, 3 - add r1, r10 - lsls r1, 3 - ldrb r2, [r3] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r0, r1, r0 - adds r3, r0 - ldrb r0, [r3, 0x1B] - adds r4, 0x3D - strb r0, [r4] - ldr r0, _0815DBC4 @ =gUnknown_203F45C - ldr r4, [r0] - ldr r2, _0815DBCC @ =gUnknown_203F458 - ldr r3, [r2] - ldrb r2, [r3] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - adds r3, r1 - ldrb r0, [r3, 0x1C] - adds r4, 0x3E - strb r0, [r4] - ldr r0, _0815DBD0 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, _0815DBD4 @ =0x00003d34 - adds r1, r0, r2 - ldr r2, [r1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - ldr r2, _0815DBD8 @ =0x00003d38 - adds r1, r2 - adds r0, r1 - bl SetVBlankCounter1Ptr - bl sub_815DD2C - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815DBC4: .4byte gUnknown_203F45C -_0815DBC8: .4byte 0x00004001 -_0815DBCC: .4byte gUnknown_203F458 -_0815DBD0: .4byte gSaveBlock1Ptr -_0815DBD4: .4byte 0x00003d34 -_0815DBD8: .4byte 0x00003d38 - thumb_func_end sub_815DA54 - - thumb_func_start sub_815DBDC -sub_815DBDC: @ 815DBDC - push {r4,lr} - ldr r4, _0815DBF0 @ =gUnknown_203F45C - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815DBF0: .4byte gUnknown_203F45C - thumb_func_end sub_815DBDC - - thumb_func_start sub_815DBF4 -sub_815DBF4: @ 815DBF4 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - ldr r0, _0815DC28 @ =0x00004003 - adds r1, r4, 0 - bl VarSet - ldr r5, _0815DC2C @ =gUnknown_203F45C - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x3C - ldrb r0, [r0] - adds r1, 0x3D - ldrb r1, [r1] - bl sub_815E068 - cmp r4, 0 - bne _0815DC30 - ldr r0, [r5] - adds r0, 0xC - adds r1, r6, 0 - bl sub_815DEFC - b _0815DC3A - .align 2, 0 -_0815DC28: .4byte 0x00004003 -_0815DC2C: .4byte gUnknown_203F45C -_0815DC30: - ldr r0, [r5] - adds r0, 0x24 - adds r1, r6, 0 - bl sub_815DEFC -_0815DC3A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_815DBF4 - - thumb_func_start sub_815DC40 -sub_815DC40: @ 815DC40 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - ldr r0, _0815DC74 @ =0x00004003 - adds r1, r4, 0 - bl VarSet - ldr r5, _0815DC78 @ =gUnknown_203F45C - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x3C - ldrb r0, [r0] - adds r1, 0x3D - ldrb r1, [r1] - bl sub_815E068 - cmp r4, 0 - bne _0815DC7C - ldr r0, [r5] - adds r0, 0x18 - adds r1, r6, 0 - bl sub_815DEFC - b _0815DC86 - .align 2, 0 -_0815DC74: .4byte 0x00004003 -_0815DC78: .4byte gUnknown_203F45C -_0815DC7C: - ldr r0, [r5] - adds r0, 0x30 - adds r1, r6, 0 - bl sub_815DEFC -_0815DC86: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_815DC40 - - thumb_func_start sub_815DC8C -sub_815DC8C: @ 815DC8C - push {r4-r7,lr} - ldr r0, _0815DCBC @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _0815DCC0 @ =0x00003d34 - adds r0, r1 - ldr r5, [r0] - ldr r4, _0815DCC4 @ =gUnknown_203F458 - ldr r0, _0815DCC8 @ =0x00001f0c - bl AllocZeroed - str r0, [r4] - ldr r1, _0815DCCC @ =gMapHeader - ldrb r1, [r1, 0x12] - subs r1, 0x2A - strb r1, [r0] - bl sub_815D834 - cmp r0, 0x1 - bne _0815DCD0 - ldr r0, [r4] - adds r0, 0x4 - bl sub_815D80C - b _0815DD18 - .align 2, 0 -_0815DCBC: .4byte gSaveBlock1Ptr -_0815DCC0: .4byte 0x00003d34 -_0815DCC4: .4byte gUnknown_203F458 -_0815DCC8: .4byte 0x00001f0c -_0815DCCC: .4byte gMapHeader -_0815DCD0: - ldr r0, [r4] - ldr r1, _0815DD20 @ =gUnknown_84827AC - adds r0, 0x4 - movs r2, 0x8 - bl memcpy - lsls r1, r5, 5 - ldr r0, _0815DD24 @ =gUnknown_84827B4 - adds r7, r1, r0 - movs r5, 0 - movs r4, 0x7 -_0815DCE6: - ldr r6, _0815DD28 @ =gUnknown_203F458 - ldr r0, [r6] - adds r0, r5, r0 - adds r0, 0xC - ldm r7!, {r1} - movs r2, 0xF8 - lsls r2, 2 - bl memcpy - movs r0, 0xF8 - lsls r0, 2 - adds r5, r0 - subs r4, 0x1 - cmp r4, 0 - bge _0815DCE6 - ldr r0, [r6] - adds r0, 0xC - movs r1, 0xF8 - lsls r1, 5 - bl CalcByteArraySum - ldr r1, [r6] - str r0, [r1, 0x8] - bl sub_815EC0C -_0815DD18: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815DD20: .4byte gUnknown_84827AC -_0815DD24: .4byte gUnknown_84827B4 -_0815DD28: .4byte gUnknown_203F458 - thumb_func_end sub_815DC8C - - thumb_func_start sub_815DD2C -sub_815DD2C: @ 815DD2C - push {r4,lr} - ldr r4, _0815DD40 @ =gUnknown_203F458 - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815DD40: .4byte gUnknown_203F458 - thumb_func_end sub_815DD2C - - thumb_func_start sub_815DD44 -sub_815DD44: @ 815DD44 - push {r4,lr} - ldr r0, _0815DD68 @ =gMapHeader - ldrh r0, [r0, 0x12] - ldr r1, _0815DD6C @ =0xfffffed7 - adds r0, r1 - ldr r1, _0815DD70 @ =gUnknown_203F458 - ldr r4, [r1] - ldrb r1, [r4, 0x4] - cmp r0, r1 - ble _0815DD78 - ldr r0, _0815DD74 @ =gSpecialVar_Result - movs r1, 0x3 - strh r1, [r0] - movs r0, 0x99 - lsls r0, 1 - bl sub_8055D40 - b _0815DDA2 - .align 2, 0 -_0815DD68: .4byte gMapHeader -_0815DD6C: .4byte 0xfffffed7 -_0815DD70: .4byte gUnknown_203F458 -_0815DD74: .4byte gSpecialVar_Result -_0815DD78: - ldr r3, _0815DDA8 @ =gSpecialVar_Result - ldrb r1, [r4] - lsls r0, r1, 5 - subs r0, r1 - lsls r0, 5 - adds r0, r4, r0 - ldrb r0, [r0, 0xE] - strh r0, [r3] - ldr r2, _0815DDAC @ =gUnknown_847A284 - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - ldrh r3, [r3] - adds r0, r3 - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - bl sub_8055D40 - bl sub_815DDB0 -_0815DDA2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815DDA8: .4byte gSpecialVar_Result -_0815DDAC: .4byte gUnknown_847A284 - thumb_func_end sub_815DD44 - - thumb_func_start sub_815DDB0 -sub_815DDB0: @ 815DDB0 - push {r4-r6,lr} - ldr r0, _0815DDD0 @ =gUnknown_203F458 - ldr r2, [r0] - ldrb r1, [r2] - lsls r0, r1, 5 - subs r0, r1 - lsls r0, 5 - adds r2, r0 - ldrb r0, [r2, 0xE] - cmp r0, 0x1 - beq _0815DE18 - cmp r0, 0x1 - bgt _0815DDD4 - cmp r0, 0 - beq _0815DDDA - b _0815DEF0 - .align 2, 0 -_0815DDD0: .4byte gUnknown_203F458 -_0815DDD4: - cmp r0, 0x2 - beq _0815DE64 - b _0815DEF0 -_0815DDDA: - ldrb r2, [r2, 0x1B] - movs r3, 0 - ldr r0, _0815DE04 @ =gUnknown_8479ED8 - ldrb r1, [r0, 0x1] - adds r6, r0, 0 - cmp r1, r2 - beq _0815DDF8 - adds r1, r6, 0 -_0815DDEA: - adds r1, 0x4 - adds r3, 0x1 - cmp r3, 0x52 - bhi _0815DDF8 - ldrb r0, [r1, 0x1] - cmp r0, r2 - bne _0815DDEA -_0815DDF8: - cmp r3, 0x53 - beq _0815DE08 - lsls r0, r3, 2 - adds r0, r6 - ldrb r1, [r0] - b _0815DE0A - .align 2, 0 -_0815DE04: .4byte gUnknown_8479ED8 -_0815DE08: - movs r1, 0x12 -_0815DE0A: - ldr r0, _0815DE14 @ =0x00004011 - bl VarSet - b _0815DEF0 - .align 2, 0 -_0815DE14: .4byte 0x00004011 -_0815DE18: - ldrb r2, [r2, 0x1B] - movs r3, 0 - ldr r0, _0815DE44 @ =gUnknown_847A024 - ldrb r1, [r0, 0x2] - adds r4, r0, 0 - cmp r1, r2 - beq _0815DE36 - adds r1, r4, 0 -_0815DE28: - adds r1, 0x8 - adds r3, 0x1 - cmp r3, 0x9 - bhi _0815DE36 - ldrb r0, [r1, 0x2] - cmp r0, r2 - bne _0815DE28 -_0815DE36: - cmp r3, 0xA - beq _0815DE48 - lsls r0, r3, 3 - adds r0, r4 - ldrb r1, [r0] - ldrb r4, [r0, 0x1] - b _0815DE4C - .align 2, 0 -_0815DE44: .4byte gUnknown_847A024 -_0815DE48: - movs r1, 0x12 - movs r4, 0x12 -_0815DE4C: - ldr r0, _0815DE5C @ =0x00004010 - bl VarSet - ldr r0, _0815DE60 @ =0x00004013 - adds r1, r4, 0 - bl VarSet - b _0815DEF0 - .align 2, 0 -_0815DE5C: .4byte 0x00004010 -_0815DE60: .4byte 0x00004013 -_0815DE64: - movs r4, 0 - ldr r6, _0815DEAC @ =gUnknown_8479ED8 -_0815DE68: - ldr r0, _0815DEB0 @ =gUnknown_203F458 - ldr r3, [r0] - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r4 - lsls r1, 3 - ldrb r2, [r3] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - adds r3, r1 - ldrb r2, [r3, 0x1B] - movs r3, 0 - ldr r1, _0815DEAC @ =gUnknown_8479ED8 - ldrb r0, [r1, 0x1] - adds r5, r4, 0x1 - cmp r0, r2 - beq _0815DE9E -_0815DE90: - adds r1, 0x4 - adds r3, 0x1 - cmp r3, 0x52 - bhi _0815DE9E - ldrb r0, [r1, 0x1] - cmp r0, r2 - bne _0815DE90 -_0815DE9E: - cmp r3, 0x53 - beq _0815DEB4 - lsls r0, r3, 2 - adds r0, r6 - ldrb r1, [r0] - b _0815DEB6 - .align 2, 0 -_0815DEAC: .4byte gUnknown_8479ED8 -_0815DEB0: .4byte gUnknown_203F458 -_0815DEB4: - movs r1, 0x12 -_0815DEB6: - cmp r4, 0x1 - beq _0815DED8 - cmp r4, 0x1 - bgt _0815DEC4 - cmp r4, 0 - beq _0815DECA - b _0815DEEA -_0815DEC4: - cmp r4, 0x2 - beq _0815DEE4 - b _0815DEEA -_0815DECA: - ldr r0, _0815DED4 @ =0x00004012 - bl VarSet - b _0815DEEA - .align 2, 0 -_0815DED4: .4byte 0x00004012 -_0815DED8: - ldr r0, _0815DEE0 @ =0x00004010 - bl VarSet - b _0815DEEA - .align 2, 0 -_0815DEE0: .4byte 0x00004010 -_0815DEE4: - ldr r0, _0815DEF8 @ =0x00004011 - bl VarSet -_0815DEEA: - adds r4, r5, 0 - cmp r4, 0x2 - ble _0815DE68 -_0815DEF0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815DEF8: .4byte 0x00004011 - thumb_func_end sub_815DDB0 - - thumb_func_start sub_815DEFC -sub_815DEFC: @ 815DEFC - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - movs r3, 0x2 - bl ConvertEasyChatWordsToString - movs r2, 0x1 - negs r2, r2 - movs r0, 0x2 - adds r1, r4, 0 - bl GetStringWidth - cmp r0, 0xC4 - bls _0815DF4E - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - movs r3, 0x3 - bl ConvertEasyChatWordsToString - ldrb r0, [r4] - movs r1, 0x1 - cmp r0, 0xFE - beq _0815DF40 -_0815DF32: - adds r0, r4, r1 - ldrb r0, [r0] - adds r1, 0x1 - cmp r0, 0xFE - bne _0815DF32 - b _0815DF40 -_0815DF3E: - adds r1, 0x1 -_0815DF40: - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0xFE - bne _0815DF3E - adds r1, r4, r1 - movs r0, 0xFA - strb r0, [r1] -_0815DF4E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_815DEFC - - thumb_func_start sub_815DF54 -sub_815DF54: @ 815DF54 - push {r4,r5,lr} - ldr r0, _0815DF90 @ =gSpecialVar_0x8006 - ldrh r4, [r0] - ldr r2, _0815DF94 @ =gUnknown_203F458 - ldr r3, [r2] - ldrb r1, [r3] - lsls r0, r1, 5 - subs r0, r1 - lsls r1, r0, 5 - adds r0, r3, r1 - ldrb r5, [r0, 0xE] - cmp r5, 0x1 - beq _0815DF7C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - adds r0, r3, r0 -_0815DF7C: - ldrb r1, [r0, 0x1B] - ldr r0, _0815DF98 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0x3 - beq _0815DFD4 - cmp r0, 0x3 - bgt _0815DF9C - cmp r0, 0x2 - beq _0815DFA6 - b _0815E05C - .align 2, 0 -_0815DF90: .4byte gSpecialVar_0x8006 -_0815DF94: .4byte gUnknown_203F458 -_0815DF98: .4byte gSpecialVar_0x8005 -_0815DF9C: - cmp r0, 0x4 - beq _0815E000 - cmp r0, 0x5 - beq _0815E038 - b _0815E05C -_0815DFA6: - adds r0, r5, 0 - bl sub_815E068 - ldr r0, _0815DFD0 @ =gUnknown_203F458 - ldr r0, [r0] - ldrb r2, [r0] - lsls r1, r2, 5 - subs r1, r2 - lsls r1, 5 - adds r1, 0xC - adds r0, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r4 - lsls r1, 3 - adds r1, 0x4 - adds r0, r1 - adds r0, 0xE - b _0815E026 - .align 2, 0 -_0815DFD0: .4byte gUnknown_203F458 -_0815DFD4: - adds r0, r5, 0 - bl sub_815E068 - ldr r0, _0815DFFC @ =gUnknown_203F458 - ldr r0, [r0] - ldrb r2, [r0] - lsls r1, r2, 5 - subs r1, r2 - lsls r1, 5 - adds r1, 0xC - adds r0, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r4 - lsls r1, 3 - adds r1, 0x4 - adds r0, r1 - adds r0, 0x1A - b _0815E026 - .align 2, 0 -_0815DFFC: .4byte gUnknown_203F458 -_0815E000: - adds r0, r5, 0 - bl sub_815E068 - ldr r0, _0815E030 @ =gUnknown_203F458 - ldr r0, [r0] - ldrb r2, [r0] - lsls r1, r2, 5 - subs r1, r2 - lsls r1, 5 - adds r1, 0xC - adds r0, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r4 - lsls r1, 3 - adds r1, 0x4 - adds r0, r1 - adds r0, 0x26 -_0815E026: - ldr r1, _0815E034 @ =gStringVar4 - bl sub_815DEFC - b _0815E05C - .align 2, 0 -_0815E030: .4byte gUnknown_203F458 -_0815E034: .4byte gStringVar4 -_0815E038: - ldr r0, [r2] - ldrb r2, [r0] - lsls r1, r2, 5 - subs r1, r2 - lsls r1, 5 - adds r1, 0xC - adds r0, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r4 - lsls r1, 3 - adds r1, 0x4 - adds r0, r1 - adds r0, 0x32 - ldr r1, _0815E064 @ =gStringVar4 - bl sub_815DEFC -_0815E05C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815E064: .4byte gStringVar4 - thumb_func_end sub_815DF54 - thumb_func_start sub_815E068 sub_815E068: @ 815E068 push {r4,r5,lr} diff --git a/data/data.s b/data/data.s index 01587d3c6..505dde2c1 100644 --- a/data/data.s +++ b/data/data.s @@ -1,3 +1,6 @@ +#include "constants/region_map.h" +#include "constants/trainer_classes.h" + .section .rodata .align 2 @@ -327,7 +330,156 @@ gFacilityClassToPicIndex:: @ 82538A8 .incbin "baserom.gba", 0x2538A8, 0x96 gFacilityClassToTrainerClass:: @ 825393E - .incbin "baserom.gba", 0x25393E, 0x96 + .byte CLASS_AQUA_LEADER + .byte CLASS_TEAM_AQUA + .byte CLASS_TEAM_AQUA + .byte CLASS_AROMA_LADY + .byte CLASS_RUIN_MANIAC + .byte CLASS_INTERVIEWER + .byte CLASS_TUBER + .byte CLASS_TUBER_2 + .byte CLASS_COOLTRAINER + .byte CLASS_COOLTRAINER + .byte CLASS_HEX_MANIAC + .byte CLASS_LADY + .byte CLASS_BEAUTY + .byte CLASS_RICH_BOY + .byte CLASS_POKEMANIAC + .byte CLASS_SWIMMER_MALE + .byte CLASS_BLACK_BELT + .byte CLASS_GUITARIST + .byte CLASS_KINDLER + .byte CLASS_CAMPER + .byte CLASS_BUG_MANIAC + .byte CLASS_PSYCHIC + .byte CLASS_PSYCHIC + .byte CLASS_GENTLEMAN + .byte CLASS_ELITE_FOUR + .byte CLASS_ELITE_FOUR + .byte CLASS_LEADER + .byte CLASS_LEADER + .byte CLASS_LEADER + .byte CLASS_SCHOOL_KID + .byte CLASS_SCHOOL_KID + .byte CLASS_SR_AND_JR + .byte CLASS_POKEFAN + .byte CLASS_POKEFAN + .byte CLASS_EXPERT + .byte CLASS_EXPERT + .byte CLASS_YOUNGSTER + .byte CLASS_CHAMPION + .byte CLASS_FISHERMAN + .byte CLASS_TRIATHLETE + .byte CLASS_TRIATHLETE + .byte CLASS_TRIATHLETE + .byte CLASS_TRIATHLETE + .byte CLASS_TRIATHLETE + .byte CLASS_TRIATHLETE + .byte CLASS_DRAGON_TAMER + .byte CLASS_BIRD_KEEPER + .byte CLASS_NINJA_BOY + .byte CLASS_BATTLE_GIRL + .byte CLASS_PARASOL_LADY + .byte CLASS_SWIMMER_FEMALE + .byte CLASS_PICNICKER + .byte CLASS_TWINS + .byte CLASS_SAILOR + .byte CLASS_BOARDER + .byte CLASS_BOARDER + .byte CLASS_COLLECTOR + .byte CLASS_PKMN_TRAINER_3 + .byte CLASS_PKMN_TRAINER_3 + .byte CLASS_PKMN_TRAINER_3 + .byte CLASS_PKMN_TRAINER_3 + .byte CLASS_PKMN_TRAINER_3 + .byte CLASS_PKMN_TRAINER_3 + .byte CLASS_PKMN_TRAINER_3 + .byte CLASS_PKMN_BREEDER + .byte CLASS_PKMN_BREEDER + .byte CLASS_PKMN_RANGER + .byte CLASS_PKMN_RANGER + .byte CLASS_MAGMA_LEADER + .byte CLASS_TEAM_MAGMA + .byte CLASS_TEAM_MAGMA + .byte CLASS_LASS + .byte CLASS_BUG_CATCHER + .byte CLASS_HIKER + .byte CLASS_YOUNG_COUPLE + .byte CLASS_OLD_COUPLE + .byte CLASS_SIS_AND_BRO + .byte CLASS_AQUA_ADMIN + .byte CLASS_AQUA_ADMIN + .byte CLASS_MAGMA_ADMIN + .byte CLASS_MAGMA_ADMIN + .byte CLASS_LEADER + .byte CLASS_LEADER + .byte CLASS_LEADER + .byte CLASS_LEADER + .byte CLASS_LEADER + .byte CLASS_ELITE_FOUR + .byte CLASS_ELITE_FOUR + .byte CLASS_YOUNGSTER_2 + .byte CLASS_BUG_CATCHER_2 + .byte CLASS_LASS_2 + .byte CLASS_SAILOR_2 + .byte CLASS_CAMPER_2 + .byte CLASS_PICNICKER_2 + .byte CLASS_POKEMANIAC_2 + .byte CLASS_SUPER_NERD + .byte CLASS_HIKER_2 + .byte CLASS_BIKER + .byte CLASS_BURGLAR + .byte CLASS_ENGINEER + .byte CLASS_FISHERMAN_2 + .byte CLASS_SWIMMER_MALE_2 + .byte CLASS_CUE_BALL + .byte CLASS_GAMER + .byte CLASS_BEAUTY_2 + .byte CLASS_SWIMMER_FEMALE_2 + .byte CLASS_PSYCHIC_2 + .byte CLASS_ROCKER + .byte CLASS_JUGGLER + .byte CLASS_TAMER + .byte CLASS_BIRD_KEEPER_2 + .byte CLASS_BLACK_BELT_2 + .byte CLASS_RIVAL + .byte CLASS_SCIENTIST + .byte CLASS_BOSS + .byte CLASS_TEAM_ROCKET + .byte CLASS_COOLTRAINER_2 + .byte CLASS_COOLTRAINER_2 + .byte CLASS_ELITE_FOUR_2 + .byte CLASS_ELITE_FOUR_2 + .byte CLASS_LEADER_2 + .byte CLASS_LEADER_2 + .byte CLASS_GENTLEMAN_2 + .byte CLASS_RIVAL_2 + .byte CLASS_CHAMPION_2 + .byte CLASS_CHANNELER + .byte CLASS_TWINS_2 + .byte CLASS_COOL_COUPLE + .byte CLASS_YOUNG_COUPLE_2 + .byte CLASS_CRUSH_KIN + .byte CLASS_SIS_AND_BRO_2 + .byte CLASS_PKMN_PROF + .byte CLASS_PLAYER + .byte CLASS_PLAYER + .byte CLASS_PLAYER + .byte CLASS_PLAYER + .byte CLASS_TEAM_ROCKET + .byte CLASS_PSYCHIC_2 + .byte CLASS_CRUSH_GIRL + .byte CLASS_TUBER_3 + .byte CLASS_PKMN_BREEDER_2 + .byte CLASS_PKMN_RANGER_2 + .byte CLASS_PKMN_RANGER_2 + .byte CLASS_AROMA_LADY_2 + .byte CLASS_RUIN_MANIAC_2 + .byte CLASS_LADY_2 + .byte CLASS_PAINTER + .byte CLASS_ELITE_FOUR_2 + .byte CLASS_ELITE_FOUR_2 + .byte CLASS_CHAMPION_2 gUnknown_82539D4:: @ 82539D4 .incbin "baserom.gba", 0x2539D4, 0x110 diff --git a/data/data_835B488.s b/data/data_835B488.s index 44e4fe725..8d2183672 100644 --- a/data/data_835B488.s +++ b/data/data_835B488.s @@ -2002,10 +2002,9 @@ gUnknown_83EEC98:: @ 83EEC98 .incbin "baserom.gba", 0x3EEC98, 0x50 gUnknown_83EECE8:: @ 83EECE8 - .incbin "baserom.gba", 0x3EECE8, 0x546 + .incbin "baserom.gba", 0x3EECE8, 0x14 -gUnknown_83EF22E:: @ 83EF22E - .incbin "baserom.gba", 0x3EF22E, 0xE + .include "data/text/map_section_names.inc" gUnknown_83EF23C:: @ 83EF23C .incbin "baserom.gba", 0x3EF23C, 0x1E @@ -2197,7 +2196,115 @@ gUnknown_83F1CA8:: @ 83F1CA8 .incbin "baserom.gba", 0x3F1CA8, 0x4 gUnknown_83F1CAC:: @ 83F1CAC - .incbin "baserom.gba", 0x3F1CAC, 0x1B4 + .4byte gMapSecName_PalletTown + .4byte gMapSecName_ViridianCity + .4byte gMapSecName_PewterCity + .4byte gMapSecName_CeruleanCity + .4byte gMapSecName_LavenderTown + .4byte gMapSecName_VermilionCity + .4byte gMapSecName_CeladonCity + .4byte gMapSecName_FuchsiaCity + .4byte gMapSecName_CinnabarIsland + .4byte gMapSecName_IndigoPlateau + .4byte gMapSecName_SaffronCity + .4byte gMapSecName_Route4 + .4byte gMapSecName_Route10 + .4byte gMapSecName_Route1 + .4byte gMapSecName_Route2 + .4byte gMapSecName_Route3 + .4byte gMapSecName_Route4_2 + .4byte gMapSecName_Route5 + .4byte gMapSecName_Route6 + .4byte gMapSecName_Route7 + .4byte gMapSecName_Route8 + .4byte gMapSecName_Route9 + .4byte gMapSecName_Route10_2 + .4byte gMapSecName_Route11 + .4byte gMapSecName_Route12 + .4byte gMapSecName_Route13 + .4byte gMapSecName_Route14 + .4byte gMapSecName_Route15 + .4byte gMapSecName_Route16 + .4byte gMapSecName_Route17 + .4byte gMapSecName_Route18 + .4byte gMapSecName_Route19 + .4byte gMapSecName_Route20 + .4byte gMapSecName_Route21 + .4byte gMapSecName_Route22 + .4byte gMapSecName_Route23 + .4byte gMapSecName_Route24 + .4byte gMapSecName_Route25 + .4byte gMapSecName_ViridianForest + .4byte gMapSecName_MtMoon + .4byte gMapSecName_SSAnne + .4byte gMapSecName_UndergroundPath + .4byte gMapSecName_UndergroundPath_2 + .4byte gMapSecName_DiglettsCave + .4byte gMapSecName_VictoryRoad + .4byte gMapSecName_RocketHideout + .4byte gMapSecName_SilphCo + .4byte gMapSecName_PokemonMansion + .4byte gMapSecName_SafariZone + .4byte gMapSecName_PokemonLeague + .4byte gMapSecName_RockTunnel + .4byte gMapSecName_SeafoamIslands + .4byte gMapSecName_PokemonTower + .4byte gMapSecName_CeruleanCave + .4byte gMapSecName_PowerPlant + .4byte gMapSecName_OneIsland + .4byte gMapSecName_TwoIsland + .4byte gMapSecName_ThreeIsland + .4byte gMapSecName_FourIsland + .4byte gMapSecName_FiveIsland + .4byte gMapSecName_SevenIsland + .4byte gMapSecName_SixIsland + .4byte gMapSecName_KindleRoad + .4byte gMapSecName_TreasureBeach + .4byte gMapSecName_CapeBrink + .4byte gMapSecName_BondBridge + .4byte gMapSecName_ThreeIslePort + .4byte gMapSecName_SeviiIsle6 + .4byte gMapSecName_SeviiIsle7 + .4byte gMapSecName_SeviiIsle8 + .4byte gMapSecName_SeviiIsle9 + .4byte gMapSecName_ResortGorgeous + .4byte gMapSecName_WaterLabyrinth + .4byte gMapSecName_FiveIsleMeadow + .4byte gMapSecName_MemorialPillar + .4byte gMapSecName_OutcastIsland + .4byte gMapSecName_GreenPath + .4byte gMapSecName_WaterPath + .4byte gMapSecName_RuinValley + .4byte gMapSecName_TrainerTower + .4byte gMapSecName_CanyonEntrance + .4byte gMapSecName_SevaultCanyon + .4byte gMapSecName_TanobyRuins + .4byte gMapSecName_SeviiIsle22 + .4byte gMapSecName_SeviiIsle23 + .4byte gMapSecName_SeviiIsle24 + .4byte gMapSecName_NavelRock + .4byte gMapSecName_MtEmber + .4byte gMapSecName_BerryForest + .4byte gMapSecName_IcefallCave + .4byte gMapSecName_RocketWarehouse + .4byte gMapSecName_TrainerTower_2 + .4byte gMapSecName_DottedHole + .4byte gMapSecName_LostCave + .4byte gMapSecName_PatternBush + .4byte gMapSecName_AlteringCave + .4byte gMapSecName_TanobyChambers + .4byte gMapSecName_ThreeIslePath + .4byte gMapSecName_TanobyKey + .4byte gMapSecName_BirthIsland + .4byte gMapSecName_MoneanChamber + .4byte gMapSecName_LiptooChamber + .4byte gMapSecName_WeepthChamber + .4byte gMapSecName_DilfordChamber + .4byte gMapSecName_ScufibChamber + .4byte gMapSecName_RixyChamber + .4byte gMapSecName_ViapoisChamber + .4byte gMapSecName_EmberSpa + .4byte gMapSecName_CeladonDept gUnknown_83F1E60:: @ 83F1E60 .incbin "baserom.gba", 0x3F1E60, 0x318 diff --git a/data/data_8471F00.s b/data/data_8471F00.s index 28454ac2d..6733b3f4d 100644 --- a/data/data_8471F00.s +++ b/data/data_8471F00.s @@ -1,3 +1,13 @@ +#include "constants/species.h" +#include "constants/items.h" +#include "constants/moves.h" +#include "constants/easy_chat.h" +#include "constants/facility_trainer_classes.h" + +#define NULL 0 + + .include "asm/macros.inc" + .section .rodata .align 2 @@ -265,74 +275,148 @@ gUnknown_8479D10:: @ 8479D10 gUnknown_8479D24:: @ 8479D24 .asciz "ttdata->id == 0" -gUnknown_8479D34:: @ 8479D34 - .incbin "baserom.gba", 0x479D34, 0x4 + // trainer_tower + + .section .rodata.after_trainer_tower -gUnknown_8479D38:: @ 8479D38 - .incbin "baserom.gba", 0x479D38, 0x8 + // unk_815F138 -gUnknown_8479D40:: @ 8479D40 - .incbin "baserom.gba", 0x479D40, 0x8 +gUnknown_847A328:: + .incbin "data/graphics/unk_847a348.gbapal" -gUnknown_8479D48:: @ 8479D48 - .incbin "baserom.gba", 0x479D48, 0x190 +gUnknown_847A348:: + .incbin "data/graphics/unk_847a348.4bpp.lz" -gUnknown_8479ED8:: @ 8479ED8 - .incbin "baserom.gba", 0x479ED8, 0x14C +gUnknown_847A79C:: @ 847A79C + obj_tiles gUnknown_847A348, 0xE00, 0 -gUnknown_847A024:: @ 847A024 - .incbin "baserom.gba", 0x47A024, 0x50 +gUnknown_847A7A4:: @ 847A7A4 + obj_pal gUnknown_847A328, 0 -gUnknown_847A074:: @ 847A074 - .incbin "baserom.gba", 0x47A074, 0x1A4 +gOamData_847A7AC:: + .4byte 0x80000300, 0x00000000 -gUnknown_847A218:: @ 847A218 - .incbin "baserom.gba", 0x47A218, 0x14 +gOamData_847A7B4:: + .4byte 0xc0004000, 0x00000000 -gUnknown_847A22C:: @ 847A22C - .incbin "baserom.gba", 0x47A22C, 0x4 +gUnknown_847A7BC:: + obj_image_anim_frame 0, 1 + obj_image_anim_end -gUnknown_847A230:: @ 847A230 - .incbin "baserom.gba", 0x47A230, 0x54 +gUnknown_847A7C4:: + obj_image_anim_frame 16, 1 + obj_image_anim_end -gUnknown_847A284:: @ 847A284 - .incbin "baserom.gba", 0x47A284, 0x30 +gUnknown_847A7CC:: + obj_image_anim_frame 32, 1 + obj_image_anim_end -gUnknown_847A2B4:: @ 847A2B4 - .incbin "baserom.gba", 0x47A2B4, 0x1E +gUnknown_847A7D4:: + .4byte gUnknown_847A7BC + .4byte gUnknown_847A7C4 + .4byte gUnknown_847A7CC -gUnknown_847A2D2:: @ 847A2D2 - .incbin "baserom.gba", 0x47A2D2, 0x1C +gUnknown_847A7E0:: + obj_image_anim_frame 48, 1 + obj_image_anim_end -gUnknown_847A2EE:: @ 847A2EE - .incbin "baserom.gba", 0x47A2EE, 0x10 +gUnknown_847A7E8:: + obj_image_anim_frame 80, 1 + obj_image_anim_end -gUnknown_847A2FE:: @ 847A2FE - .incbin "baserom.gba", 0x47A2FE, 0x10 +gUnknown_847A7F0:: + .4byte gUnknown_847A7E0 + .4byte gUnknown_847A7E8 -gUnknown_847A30E:: @ 847A30E - .incbin "baserom.gba", 0x47A30E, 0x48E +gUnknown_847A7F8:: + obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 + obj_rot_scal_anim_end -gUnknown_847A79C:: @ 847A79C - .incbin "baserom.gba", 0x47A79C, 0x8 +gUnknown_847A808:: + obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 + obj_rot_scal_anim_frame 0x10, -0x10, 0, 8 + obj_rot_scal_anim_end -gUnknown_847A7A4:: @ 847A7A4 - .incbin "baserom.gba", 0x47A7A4, 0xBC +gUnknown_847A820:: + obj_rot_scal_anim_frame -0x12, 0x12, 0, 8 + obj_rot_scal_anim_end + +gUnknown_847A830:: + obj_rot_scal_anim_frame 0x6, -0x6, 0, 8 + obj_rot_scal_anim_frame -0x4, 0x4, 0, 8 + obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 + obj_rot_scal_anim_end + +gUnknown_847A850:: + .4byte gUnknown_847A7F8 + .4byte gUnknown_847A808 + .4byte gUnknown_847A820 + .4byte gUnknown_847A830 gUnknown_847A860:: @ 847A860 - .incbin "baserom.gba", 0x47A860, 0x18 + spr_template 0, 0, gOamData_847A7AC, gUnknown_847A7D4, NULL, gUnknown_847A850, SpriteCallbackDummy gUnknown_847A878:: @ 847A878 - .incbin "baserom.gba", 0x47A878, 0x18 + spr_template 0, 0, gOamData_847A7B4, gUnknown_847A7F0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + // berry_fix_program gUnknown_847A890:: @ 847A890 - .incbin "baserom.gba", 0x47A890, 0x7F1C + .4byte gUnknown_8EA467C, gUnknown_8EA52B8, gUnknown_8EA463C + .4byte gUnknown_8EA5664, gUnknown_8EA60C8, gUnknown_8EA5604 + .4byte gUnknown_8EA6408, gUnknown_8EA7028, gUnknown_8EA63C8 + .4byte gUnknown_8EA7320, gUnknown_8EA8118, gUnknown_8EA72E0 + .4byte gUnknown_8EA8408, gUnknown_8EA8CC8, gUnknown_8EA83C8 + .4byte gUnknown_8EA8F40, gUnknown_8EA9588, gUnknown_8EA8F00 + + .incbin "baserom.gba", 0x47A8D8, 0x2D4 + // trainer_tower (again?) + + @ 847ABAC + .include "data/trainer_tower/trainers.inc" + + .align 2 gUnknown_84827AC:: @ 84827AC - .incbin "baserom.gba", 0x4827AC, 0x8 + .byte 0x08, 0x01 + .align 2 + .4byte 0 gUnknown_84827B4:: @ 84827B4 - .incbin "baserom.gba", 0x4827B4, 0x5F34 + .4byte gUnknown_847F16C + .4byte gUnknown_847D26C + .4byte gUnknown_84808AC + .4byte gUnknown_847ABAC + .4byte gUnknown_847CAAC + .4byte gUnknown_847E9AC + .4byte gUnknown_847AF8C + .4byte gUnknown_847CE8C + .4byte gUnknown_847DA2C + .4byte gUnknown_847BF0C + .4byte gUnknown_847D64C + .4byte gUnknown_847DE0C + .4byte gUnknown_847B74C + .4byte gUnknown_847BB2C + .4byte gUnknown_848182C + .4byte gUnknown_847F92C + .4byte gUnknown_847C2EC + .4byte gUnknown_847C6CC + .4byte gUnknown_847E5CC + .4byte gUnknown_84804CC + .4byte gUnknown_84823CC + .4byte gUnknown_8481FEC + .4byte gUnknown_84800EC + .4byte gUnknown_847E1EC + .4byte gUnknown_847ED8C + .4byte gUnknown_848106C + .4byte gUnknown_8480C8C + .4byte gUnknown_847F92C + .4byte gUnknown_847F54C + .4byte gUnknown_847E1EC + .4byte gUnknown_847D64C + .4byte gUnknown_847C6CC + + .include "data/text/move_descriptions.inc" gUnknown_84886E8:: @ 84886E8 .incbin "baserom.gba", 0x4886E8, 0x588 diff --git a/data/graphics.s b/data/graphics.s index 990a3dd9c..a1e421f2c 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -16222,58 +16222,58 @@ gUnknown_8EA1D68:: @ 8EA1D68 .incbin "baserom.gba", 0xEA1D68, 0x28D4 gUnknown_8EA463C:: @ 8EA463C - .incbin "baserom.gba", 0xEA463C, 0x40 @UNKNOWN + .incbin "graphics/berry_fix/gba_small.gbapal" gUnknown_8EA467C:: @ 8EA467C - .incbin "baserom.gba", 0xEA467C, 0xC3C + .incbin "graphics/berry_fix/gba_small.4bpp.lz" gUnknown_8EA52B8:: @ 8EA52B8 - .incbin "baserom.gba", 0xEA52B8, 0x34C + .incbin "graphics/berry_fix/gba_small.bin.lz" gUnknown_8EA5604:: @ 8EA5604 - .incbin "baserom.gba", 0xEA5604, 0x60 @UNKNOWN + .incbin "graphics/berry_fix/logo.gbapal" gUnknown_8EA5664:: @ 8EA5664 - .incbin "baserom.gba", 0xEA5664, 0xA64 + .incbin "graphics/berry_fix/logo.4bpp.lz" gUnknown_8EA60C8:: @ 8EA60C8 - .incbin "baserom.gba", 0xEA60C8, 0x300 + .incbin "graphics/berry_fix/logo.bin.lz" gUnknown_8EA63C8:: @ 8EA63C8 - .incbin "baserom.gba", 0xEA63C8, 0x40 @UNKNOWN + .incbin "graphics/berry_fix/gba_transfer.gbapal" gUnknown_8EA6408:: @ 8EA6408 - .incbin "baserom.gba", 0xEA6408, 0xC20 + .incbin "graphics/berry_fix/gba_transfer.4bpp.lz" gUnknown_8EA7028:: @ 8EA7028 - .incbin "baserom.gba", 0xEA7028, 0x2B8 + .incbin "graphics/berry_fix/gba_transfer.bin.lz" gUnknown_8EA72E0:: @ 8EA72E0 - .incbin "baserom.gba", 0xEA72E0, 0x40 @UNKNOWN + .incbin "graphics/berry_fix/gba_transfer_highlight.gbapal" gUnknown_8EA7320:: @ 8EA7320 - .incbin "baserom.gba", 0xEA7320, 0xDF8 + .incbin "graphics/berry_fix/gba_transfer_highlight.4bpp.lz" gUnknown_8EA8118:: @ 8EA8118 - .incbin "baserom.gba", 0xEA8118, 0x2B0 + .incbin "graphics/berry_fix/gba_transfer_highlight.bin.lz" gUnknown_8EA83C8:: @ 8EA83C8 - .incbin "baserom.gba", 0xEA83C8, 0x40 @UNKNOWN + .incbin "graphics/berry_fix/gba_transfer_error.gbapal" gUnknown_8EA8408:: @ 8EA8408 - .incbin "baserom.gba", 0xEA8408, 0x8C0 + .incbin "graphics/berry_fix/gba_transfer_error.4bpp.lz" gUnknown_8EA8CC8:: @ 8EA8CC8 - .incbin "baserom.gba", 0xEA8CC8, 0x238 + .incbin "graphics/berry_fix/gba_transfer_error.bin.lz" gUnknown_8EA8F00:: @ 8EA8F00 - .incbin "baserom.gba", 0xEA8F00, 0x40 @UNKNOWN + .incbin "graphics/berry_fix/window.gbapal" gUnknown_8EA8F40:: @ 8EA8F40 - .incbin "baserom.gba", 0xEA8F40, 0x648 + .incbin "graphics/berry_fix/window.4bpp.lz" gUnknown_8EA9588:: @ 8EA9588 - .incbin "baserom.gba", 0xEA9588, 0x26C + .incbin "graphics/berry_fix/window.bin.lz" gUnknown_8EA97F4:: @ 8EA97F4 .incbin "baserom.gba", 0xEA97F4, 0x120 @UNKNOWN diff --git a/data/graphics/unk_847a348.png b/data/graphics/unk_847a348.png Binary files differnew file mode 100644 index 000000000..9897a6d36 --- /dev/null +++ b/data/graphics/unk_847a348.png diff --git a/data/text/map_section_names.inc b/data/text/map_section_names.inc new file mode 100644 index 000000000..e91368a40 --- /dev/null +++ b/data/text/map_section_names.inc @@ -0,0 +1,327 @@ +gMapSecName_PalletTown:: + .string "PALLET TOWN$" + +gMapSecName_ViridianCity:: + .string "VIRIDIAN CITY$" + +gMapSecName_PewterCity:: + .string "PEWTER CITY$" + +gMapSecName_CeruleanCity:: + .string "CERULEAN CITY$" + +gMapSecName_LavenderTown:: + .string "LAVENDER TOWN$" + +gMapSecName_VermilionCity:: + .string "VERMILION CITY$" + +gMapSecName_CeladonCity:: + .string "CELADON CITY$" + +gMapSecName_FuchsiaCity:: + .string "FUCHSIA CITY$" + +gMapSecName_CinnabarIsland:: + .string "CINNABAR ISLAND$" + +gMapSecName_IndigoPlateau:: + .string "INDIGO PLATEAU$" + +gMapSecName_SaffronCity:: + .string "SAFFRON CITY$" + +gMapSecName_Route4:: + .string "ROUTE 4$" + +gMapSecName_Route10:: + .string "ROUTE 10$" + +gMapSecName_Route1:: + .string "ROUTE 1$" + +gMapSecName_Route2:: + .string "ROUTE 2$" + +gMapSecName_Route3:: + .string "ROUTE 3$" + +gMapSecName_Route4_2:: + .string "ROUTE 4$" + +gMapSecName_Route5:: + .string "ROUTE 5$" + +gMapSecName_Route6:: + .string "ROUTE 6$" + +gMapSecName_Route7:: + .string "ROUTE 7$" + +gMapSecName_Route8:: + .string "ROUTE 8$" + +gMapSecName_Route9:: + .string "ROUTE 9$" + +gMapSecName_Route10_2:: + .string "ROUTE 10$" + +gMapSecName_Route11:: + .string "ROUTE 11$" + +gMapSecName_Route12:: + .string "ROUTE 12$" + +gMapSecName_Route13:: + .string "ROUTE 13$" + +gMapSecName_Route14:: + .string "ROUTE 14$" + +gMapSecName_Route15:: + .string "ROUTE 15$" + +gMapSecName_Route16:: + .string "ROUTE 16$" + +gMapSecName_Route17:: + .string "ROUTE 17$" + +gMapSecName_Route18:: + .string "ROUTE 18$" + +gMapSecName_Route19:: + .string "ROUTE 19$" + +gMapSecName_Route20:: + .string "ROUTE 20$" + +gMapSecName_Route21:: + .string "ROUTE 21$" + +gMapSecName_Route22:: + .string "ROUTE 22$" + +gMapSecName_Route23:: + .string "ROUTE 23$" + +gMapSecName_Route24:: + .string "ROUTE 24$" + +gMapSecName_Route25:: + .string "ROUTE 25$" + +gMapSecName_ViridianForest:: + .string "VIRIDIAN FOREST$" + +gMapSecName_MtMoon:: + .string "MT. MOON$" + +gMapSecName_SSAnne:: + .string "S.S. ANNE$" + +gMapSecName_UndergroundPath:: + .string "UNDERGROUND PATH$" + +gMapSecName_UndergroundPath_2:: + .string "UNDERGROUND PATH$" + +gMapSecName_DiglettsCave:: + .string "DIGLETT’S CAVE$" + +gMapSecName_VictoryRoad:: + .string "VICTORY ROAD$" + +gMapSecName_RocketHideout:: + .string "ROCKET HIDEOUT$" + +gMapSecName_SilphCo:: + .string "SILPH CO.$" + +gMapSecName_PokemonMansion:: + .string "POKéMON MANSION$" + +gMapSecName_SafariZone:: + .string "SAFARI ZONE$" + +gMapSecName_PokemonLeague:: + .string "POKéMON LEAGUE$" + +gMapSecName_RockTunnel:: + .string "ROCK TUNNEL$" + +gMapSecName_SeafoamIslands:: + .string "SEAFOAM ISLANDS$" + +gMapSecName_PokemonTower:: + .string "POKéMON TOWER$" + +gMapSecName_CeruleanCave:: + .string "CERULEAN CAVE$" + +gMapSecName_PowerPlant:: + .string "POWER PLANT$" + +gMapSecName_OneIsland:: + .string "ONE ISLAND$" + +gMapSecName_TwoIsland:: + .string "TWO ISLAND$" + +gMapSecName_ThreeIsland:: + .string "THREE ISLAND$" + +gMapSecName_FourIsland:: + .string "FOUR ISLAND$" + +gMapSecName_FiveIsland:: + .string "FIVE ISLAND$" + +gMapSecName_SevenIsland:: + .string "SEVEN ISLAND$" + +gMapSecName_SixIsland:: + .string "SIX ISLAND$" + +gMapSecName_KindleRoad:: + .string "KINDLE ROAD$" + +gMapSecName_TreasureBeach:: + .string "TREASURE BEACH$" + +gMapSecName_CapeBrink:: + .string "CAPE BRINK$" + +gMapSecName_BondBridge:: + .string "BOND BRIDGE$" + +gMapSecName_ThreeIslePort:: + .string "THREE ISLE PORT$" + +gMapSecName_SeviiIsle6:: + .string "SEVII ISLE 6$" + +gMapSecName_SeviiIsle7:: + .string "SEVII ISLE 7$" + +gMapSecName_SeviiIsle8:: + .string "SEVII ISLE 8$" + +gMapSecName_SeviiIsle9:: + .string "SEVII ISLE 9$" + +gMapSecName_ResortGorgeous:: + .string "RESORT GORGEOUS$" + +gMapSecName_WaterLabyrinth:: + .string "WATER LABYRINTH$" + +gMapSecName_FiveIsleMeadow:: + .string "FIVE ISLE MEADOW$" + +gMapSecName_MemorialPillar:: + .string "MEMORIAL PILLAR$" + +gMapSecName_OutcastIsland:: + .string "OUTCAST ISLAND$" + +gMapSecName_GreenPath:: + .string "GREEN PATH$" + +gMapSecName_WaterPath:: + .string "WATER PATH$" + +gMapSecName_RuinValley:: + .string "RUIN VALLEY$" + +gMapSecName_TrainerTower:: + .string "TRAINER TOWER$" + +gMapSecName_CanyonEntrance:: + .string "CANYON ENTRANCE$" + +gMapSecName_SevaultCanyon:: + .string "SEVAULT CANYON$" + +gMapSecName_TanobyRuins:: + .string "TANOBY RUINS$" + +gMapSecName_SeviiIsle22:: + .string "SEVII ISLE 22$" + +gMapSecName_SeviiIsle23:: + .string "SEVII ISLE 23$" + +gMapSecName_SeviiIsle24:: + .string "SEVII ISLE 24$" + +gMapSecName_NavelRock:: + .string "NAVEL ROCK$" + +gMapSecName_MtEmber:: + .string "MT. EMBER$" + +gMapSecName_BerryForest:: + .string "BERRY FOREST$" + +gMapSecName_IcefallCave:: + .string "ICEFALL CAVE$" + +gMapSecName_RocketWarehouse:: + .string "ROCKET WAREHOUSE$" + +gMapSecName_TrainerTower_2:: + .string "TRAINER TOWER$" + +gMapSecName_DottedHole:: + .string "DOTTED HOLE$" + +gMapSecName_LostCave:: + .string "LOST CAVE$" + +gMapSecName_PatternBush:: + .string "PATTERN BUSH$" + +gMapSecName_AlteringCave:: + .string "ALTERING CAVE$" + +gMapSecName_TanobyChambers:: + .string "TANOBY CHAMBERS$" + +gMapSecName_ThreeIslePath:: + .string "THREE ISLE PATH$" + +gMapSecName_TanobyKey:: + .string "TANOBY KEY$" + +gMapSecName_BirthIsland:: + .string "BIRTH ISLAND$" + +gMapSecName_MoneanChamber:: + .string "MONEAN CHAMBER$" + +gMapSecName_LiptooChamber:: + .string "LIPTOO CHAMBER$" + +gMapSecName_WeepthChamber:: + .string "WEEPTH CHAMBER$" + +gMapSecName_DilfordChamber:: + .string "DILFORD CHAMBER$" + +gMapSecName_ScufibChamber:: + .string "SCUFIB CHAMBER$" + +gMapSecName_RixyChamber:: + .string "RIXY CHAMBER$" + +gMapSecName_ViapoisChamber:: + .string "VIAPOIS CHAMBER$" + +gMapSecName_EmberSpa:: + .string "EMBER SPA$" + +gMapSecName_CeladonDept:: + .string "CELADON DEPT.$" + diff --git a/data/text/move_descriptions.inc b/data/text/move_descriptions.inc new file mode 100644 index 000000000..78822e1d8 --- /dev/null +++ b/data/text/move_descriptions.inc @@ -0,0 +1,1065 @@ +gUnknown_8482834:: + .string "A physical attack\ndelivered with a\nlong tail or a\nforeleg, etc.$" + +gUnknown_8482874:: @ 8482874 + .string "The foe is attacked\nwith a sharp chop.\nIt has a high\ncritical-hit ratio.$" + +gUnknown_84828BD:: @ 84828BD + .string "The foe is slapped\nrepeatedly, back\nand forth, two to\nfive times.$" + +gUnknown_84828FF:: @ 84828FF + .string "The foe is hit with\na flurry of punches\nthat strike two to\nfive times.$" + +gUnknown_8482946:: @ 8482946 + .string "The foe is slugged\nby a punch thrown\nwith muscle-packed\npower.$" + +gUnknown_8482985:: @ 8482985 + .string "Numerous coins are\nhurled at the foe.\nMoney is earned\nafter battle.$" + +gUnknown_84829C9:: @ 84829C9 + .string "The foe is punched\nwith a fiery fist.\nIt may leave the\nfoe with a burn.$" + +gUnknown_8482A11:: @ 8482A11 + .string "The foe is punched\nwith an icy fist.\nIt may leave the\nfoe frozen.$" + +gUnknown_8482A53:: @ 8482A53 + .string "The foe is punched\nwith an electrified\nfist. It may leave\nthe foe paralyzed.$" + +gUnknown_8482AA0:: @ 8482AA0 + .string "Hard, pointed, and\nsharp claws rake\nthe foe.$" + +gUnknown_8482ACD:: @ 8482ACD + .string "Huge, impressive\npincers grip and\nsqueeze the foe.$" + +gUnknown_8482B00:: @ 8482B00 + .string "A vicious tearing\nattack with pincers.\nThe foe will faint\nif it hits.$" + +gUnknown_8482B46:: @ 8482B46 + .string "Blades of wind hit\nthe foe on the 2nd\nturn. It has a high\ncritical-hit ratio.$" + +gUnknown_8482B94:: @ 8482B94 + .string "A frenetic dance of\nfighting. It sharply\nraises the ATTACK\nstat.$" + +gUnknown_8482BD5:: @ 8482BD5 + .string "A basic attack.\nIt can be used to\ncut down thin trees\nand grass.$" + +gUnknown_8482C16:: @ 8482C16 + .string "Strikes the foe\nwith a gust of wind\nwhipped up by\nwings.$" + +gUnknown_8482C4F:: @ 8482C4F + .string "The foe is struck\nwith large, imposing\nwings spread wide.$" + +gUnknown_8482C89:: @ 8482C89 + .string "The foe is made to\nswitch out with an\nally. In the wild,\nthe battle ends.$" + +gUnknown_8482CD3:: @ 8482CD3 + .string "A 2-turn move that\nhits on the 2nd\nturn. Use it to fly\nto any known town.$" + +gUnknown_8482D1D:: @ 8482D1D + .string "A long body or\ntentacles are used\nto bind the foe for\ntwo to five turns.$" + +gUnknown_8482D66:: @ 8482D66 + .string "The foe is struck\nwith a long tail,\nvines, etc.$" + +gUnknown_8482D96:: @ 8482D96 + .string "The foe is struck\nwith slender, whip-\nlike vines.$" + +gUnknown_8482DC8:: @ 8482DC8 + .string "The foe is stomped\nwith a big foot.\nIt may make the\nfoe flinch.$" + +gUnknown_8482E08:: @ 8482E08 + .string "Two legs are used\nto quickly kick the\nfoe twice in one\nturn.$" + +gUnknown_8482E45:: @ 8482E45 + .string "The foe is attacked\nby a kick fired\nwith muscle-packed\npower.$" + +gUnknown_8482E83:: @ 8482E83 + .string "The user jumps up\nhigh, then kicks.\nIf it misses, the\nuser hurts itself.$" + +gUnknown_8482ECC:: @ 8482ECC + .string "A quick kick from a\nrolling spin.\nIt may make the\nfoe flinch.$" + +gUnknown_8482F0A:: @ 8482F0A + .string "A lot of sand is\nhurled in the foe’s\nface, reducing its\naccuracy.$" + +gUnknown_8482F4C:: @ 8482F4C + .string "The user sticks its\nhead out and rams.\nIt may make the\nfoe flinch.$" + +gUnknown_8482F8F:: @ 8482F8F + .string "The foe is jabbed\nwith a sharply\npointed horn to\ninflict damage.$" + +gUnknown_8482FD0:: @ 8482FD0 + .string "The foe is jabbed\nrepeatedly with a\nhorn or beak two to\nfive times.$" + +gUnknown_8483014:: @ 8483014 + .string "The horn is rotated\nlike a drill to ram.\nThe foe will faint\nif it hits.$" + +gUnknown_848305C:: @ 848305C + .string "A physical attack\nin which the user\ncharges, full body,\ninto the foe.$" + +gUnknown_84830A2:: @ 84830A2 + .string "The user drops its\nfull body on the\nfoe. It may leave\nthe foe paralyzed.$" + +gUnknown_84830EB:: @ 84830EB + .string "A long body or\nvines are used to\nwrap the foe for\ntwo to five turns.$" + +gUnknown_8483130:: @ 8483130 + .string "A reckless, full-\nbody charge attack\nthat also hurts the\nuser a little.$" + +gUnknown_8483178:: @ 8483178 + .string "The user rampages\nabout for two to\nthree turns, then\nbecomes confused.$" + +gUnknown_84831BF:: @ 84831BF + .string "A reckless, life-\nrisking tackle that\nalso hurts the user\na little.$" + +gUnknown_8483203:: @ 8483203 + .string "The user wags its\ntail cutely, making\nthe foe lower its\nDEFENSE stat.$" + +gUnknown_8483249:: @ 8483249 + .string "The foe is stabbed\nwith a toxic barb,\netc. It may poison\nthe foe.$" + +gUnknown_848328B:: @ 848328B + .string "The foe is stabbed\ntwice with foreleg\nstingers. It may\npoison the foe.$" + +gUnknown_84832D2:: @ 84832D2 + .string "Sharp pins are shot\nat the foe and hit\ntwo to five times\nat once.$" + +gUnknown_8483314:: @ 8483314 + .string "The foe is given an\nintimidating look\nthat lowers its\nDEFENSE stat.$" + +gUnknown_8483358:: @ 8483358 + .string "The user bites with\nvicious fangs.\nIt may make the\nfoe flinch.$" + +gUnknown_8483397:: @ 8483397 + .string "The user growls in\na cute way, making\nthe foe lower its\nATTACK stat.$" + +gUnknown_84833DC:: @ 84833DC + .string "The foe is made to\nswitch out with an\nally. In the wild,\nthe battle ends.$" + +gUnknown_8483426:: @ 8483426 + .string "A soothing song\nin a calming voice\nlulls the foe into\na deep slumber.$" + +gUnknown_848346C:: @ 848346C + .string "The user generates\nodd sound waves.\nIt may confuse the\nfoe.$" + +gUnknown_84834A8:: @ 84834A8 + .string "The foe is hit with\na shock wave that\nalways inflicts 20-\nHP damage.$" + +gUnknown_84834ED:: @ 84834ED + .string "For a few turns,\nit prevents the foe\nfrom using the move\nit last used.$" + +gUnknown_8483534:: @ 8483534 + .string "The foe is sprayed\nwith a harsh, hide-\nmelting acid that\nmay lower DEFENSE.$" + +gUnknown_8483580:: @ 8483580 + .string "The foe is attacked\nwith small flames.\nThe foe may suffer\na burn.$" + +gUnknown_84835C2:: @ 84835C2 + .string "The foe is scorched\nwith intense flames.\nThe foe may suffer\na burn.$" + +gUnknown_8483606:: @ 8483606 + .string "The ally party is\nprotected by a\nmist that prevents\nstat reductions.$" + +gUnknown_848364B:: @ 848364B + .string "The foe is struck\nwith a lot of water\nexpelled forcibly\nfrom the mouth.$" + +gUnknown_8483693:: @ 8483693 + .string "A high volume of\nwater is blasted at\nthe foe under great\npressure.$" + +gUnknown_84836D6:: @ 84836D6 + .string "A big wave crashes\ndown on the foe.\nCan also be used\nfor crossing water.$" + +gUnknown_848371F:: @ 848371F + .string "The foe is struck\nwith an icy beam.\nIt may freeze the\nfoe solid.$" + +gUnknown_8483760:: @ 8483760 + .string "The foe is blasted\nwith a blizzard.\nIt may freeze the\nfoe solid.$" + +gUnknown_84837A1:: @ 84837A1 + .string "A peculiar ray is\nshot at the foe.\nIt may leave the\nfoe confused.$" + +gUnknown_84837E3:: @ 84837E3 + .string "A spray of bubbles\nstrikes the foe.\nIt may lower the\nfoe’s SPEED stat.$" + +gUnknown_848382A:: @ 848382A + .string "A rainbow-colored\nattack beam.\nIt may lower the\nfoe’s ATTACK stat.$" + +gUnknown_848386D:: @ 848386D + .string "A severely damaging\nattack that makes\nthe user rest on\nthe next turn.$" + +gUnknown_84838B3:: @ 84838B3 + .string "The foe is jabbed\nwith a sharply\npointed beak or\nhorn.$" + +gUnknown_84838EA:: @ 84838EA + .string "A corkscrewing\nattack with the\nsharp beak acting\nas a drill.$" + +gUnknown_8483927:: @ 8483927 + .string "A reckless, full-\nbody throw attack\nthat also hurts the\nuser a little.$" + +gUnknown_848396E:: @ 848396E + .string "A low, tripping kick\nthat inflicts more\ndamage on heavier\nfoes.$" + +gUnknown_84839AE:: @ 84839AE + .string "A retaliation move\nthat counters any\nphysical hit with\ndouble the damage.$" + +gUnknown_84839F8:: @ 84839F8 + .string "A gravity-fed throw\nthat causes damage\nmatching the user’s\nlevel.$" + +gUnknown_8483A3A:: @ 8483A3A + .string "The foe is slugged\nat maximum power.\nCan also be used\nto move boulders.$" + +gUnknown_8483A82:: @ 8483A82 + .string "An attack that\nabsorbs half the\ndamage it inflicted\nto restore HP.$" + +gUnknown_8483AC5:: @ 8483AC5 + .string "A tough attack that\ndrains half the\ndamage it inflicted\nto restore HP.$" + +gUnknown_8483B0C:: @ 8483B0C + .string "A seed is planted\non the foe to steal\nsome HP for the \nuser on every turn.$" + +gUnknown_8483B57:: @ 8483B57 + .string "The user’s body is\nforced to grow,\nraising the SP.\nATK stat.$" + +gUnknown_8483B94:: @ 8483B94 + .string "The foe is hit with\na cutting leaf.\nIt has a high\ncritical-hit ratio.$" + +gUnknown_8483BDA:: @ 8483BDA + .string "A 2-turn move that\nblasts the foe with\nabsorbed energy in\nthe 2nd turn.$" + +gUnknown_8483C22:: @ 8483C22 + .string "A cloud of toxic\ndust is scattered.\nIt may poison the\nfoe.$" + +gUnknown_8483C5D:: @ 8483C5D + .string "Paralyzing dust is\nscattered wildly.\nIt may paralyze\nthe foe.$" + +gUnknown_8483C9B:: @ 8483C9B + .string "A sleep-inducing\ndust is scattered\nin high volume\naround a foe.$" + +gUnknown_8483CDB:: @ 8483CDB + .string "The user attacks\nwith petals for two\nto three turns,\nthen gets confused.$" + +gUnknown_8483D24:: @ 8483D24 + .string "The foe is bound\nwith strings shot\nfrom the mouth to\nreduce its SPEED.$" + +gUnknown_8483D6B:: @ 8483D6B + .string "The foe is hit with\na shock wave that\nalways inflicts 40-\nHP damage.$" + +gUnknown_8483DB0:: @ 8483DB0 + .string "The foe is trapped\nin an intense spiral\nof fire that rages\ntwo to five turns.$" + +gUnknown_8483DFE:: @ 8483DFE + .string "An electric shock\nattack that may\nalso leave the foe\nparalyzed.$" + +gUnknown_8483E3E:: @ 8483E3E + .string "A strong electrical\nattack that may\nalso leave the foe\nparalyzed.$" + +gUnknown_8483E80:: @ 8483E80 + .string "A weak electric\nshock that is sure\nto cause paralysis\nif it hits.$" + +gUnknown_8483EC2:: @ 8483EC2 + .string "A brutal lightning\nattack that may\nalso leave the foe\nparalyzed.$" + +gUnknown_8483F03:: @ 8483F03 + .string "The foe is attacked\nwith a shower of\nsmall, easily\nthrown rocks.$" + +gUnknown_8483F44:: @ 8483F44 + .string "An earthquake that\nstrikes all POKéMON\nin battle excluding\nthe user.$" + +gUnknown_8483F89:: @ 8483F89 + .string "The foe is dropped\ninto a fissure.\nThe foe faints if it\nhits.$" + +gUnknown_8483FC7:: @ 8483FC7 + .string "An attack that hits\non the 2nd turn.\nCan also be used\nto exit dungeons.$" + +gUnknown_848400F:: @ 848400F + .string "A move that badly\npoisons the foe.\nIts poison damage\nworsens every turn.$" + +gUnknown_8484058:: @ 8484058 + .string "A weak telekinetic\nattack that may\nalso leave the foe\nconfused.$" + +gUnknown_8484098:: @ 8484098 + .string "A strong telekinetic\nattack. It may also\nlower the foe’s\nSP. DEF stat.$" + +gUnknown_84840DF:: @ 84840DF + .string "Hypnotic suggestion\nis used to make the\nfoe fall into a\ndeep sleep.$" + +gUnknown_8484123:: @ 8484123 + .string "The user meditates\nto awaken its power\nand raise its\nATTACK stat.$" + +gUnknown_8484165:: @ 8484165 + .string "The user relaxes\nand lightens its\nbody to sharply\nboost its SPEED.$" + +gUnknown_84841A8:: @ 84841A8 + .string "An almost invisibly\nfast attack that\nis certain to strike\nfirst.$" + +gUnknown_84841E9:: @ 84841E9 + .string "An attack that\nbecomes stronger\neach time the user\nis hit in battle.$" + +gUnknown_848422E:: @ 848422E + .string "Use it to flee from\nany wild POKéMON.\nAlso warps to the\nlast POKé CENTER.$" + +gUnknown_8484278:: @ 8484278 + .string "An attack with a\nmirage that inflicts\ndamage matching\nthe user’s level.$" + +gUnknown_84842C0:: @ 84842C0 + .string "The user copies the\nmove last used by\nthe foe for the\nrest of the battle.$" + +gUnknown_848430A:: @ 848430A + .string "An ear-splitting\nscreech is emitted\nto sharply reduce\nthe foe’s DEFENSE.$" + +gUnknown_8484353:: @ 8484353 + .string "The user creates\nillusory copies of\nitself to raise its\nevasiveness.$" + +gUnknown_8484398:: @ 8484398 + .string "A self-healing move\nthat restores HP by\nup to half of the\nuser’s maximum HP.$" + +gUnknown_84843E5:: @ 84843E5 + .string "The user stiffens\nall the muscles in\nits body to raise\nits DEFENSE stat.$" + +gUnknown_848442E:: @ 848442E + .string "The user compresses\nall the cells in its\nbody to raise its\nevasiveness.$" + +gUnknown_8484476:: @ 8484476 + .string "An obscuring cloud\nof smoke or ink\nreduces the foe’s\naccuracy.$" + +gUnknown_84844B5:: @ 84844B5 + .string "The foe is exposed\nto a sinister ray\nthat triggers\nconfusion.$" + +gUnknown_84844F3:: @ 84844F3 + .string "The user withdraws\nits body in its hard\nshell, raising its\nDEFENSE stat.$" + +gUnknown_848453C:: @ 848453C + .string "The user curls up\nto conceal weak\nspots and raise its\nDEFENSE stat.$" + +gUnknown_8484580:: @ 8484580 + .string "The user creates a\nsturdy wall that\nsharply raises its\nDEFENSE stat.$" + +gUnknown_84845C5:: @ 84845C5 + .string "A wall of light\ncuts damage from\nSP. ATK attacks\nfor five turns.$" + +gUnknown_8484606:: @ 8484606 + .string "Eliminates all stat\nchanges among all\nPOKéMON engaged in\nbattle.$" + +gUnknown_8484647:: @ 8484647 + .string "A wall of light\ncuts damage from\nphysical attacks\nfor five turns.$" + +gUnknown_8484689:: @ 8484689 + .string "The user takes a\ndeep breath and\nfocuses to raise its\ncritical-hit ratio.$" + +gUnknown_84846D3:: @ 84846D3 + .string "The user endures\nattacks for two\nturns, then strikes\nback double.$" + +gUnknown_8484715:: @ 8484715 + .string "Waggles a finger\nand stimulates the\nbrain into using any\nmove at random.$" + +gUnknown_848475E:: @ 848475E + .string "The user counters\nthe move last used\nby the foe with the\nsame move.$" + +gUnknown_84847A2:: @ 84847A2 + .string "The user blows up\nto inflict severe\ndamage, even\nmaking itself faint.$" + +gUnknown_84847E8:: @ 84847E8 + .string "A large egg is\nhurled with great\nforce at the foe to\ninflict damage.$" + +gUnknown_848482D:: @ 848482D + .string "The foe is licked\nand hit with a long\ntongue. It may\nalso paralyze.$" + +gUnknown_8484871:: @ 8484871 + .string "The foe is attacked\nwith exhaust gases.\nIt may also poison\nthe foe.$" + +gUnknown_84848B5:: @ 84848B5 + .string "Toxic sludge is\nhurled at the foe.\nIt may poison the\ntarget.$" + +gUnknown_84848F2:: @ 84848F2 + .string "The foe is clubbed\nwith a bone held in\nhand. It may make\nthe foe flinch.$" + +gUnknown_848493B:: @ 848493B + .string "The foe is hit with\nan intense flame.\nIt may leave the\ntarget with a burn.$" + +gUnknown_8484986:: @ 8484986 + .string "A powerful charge\nattack. It can also\nbe used to climb\na waterfall.$" + +gUnknown_84849CA:: @ 84849CA + .string "The foe is clamped\nand squeezed by\nthe user’s shell for\ntwo to five turns.$" + +gUnknown_8484A15:: @ 8484A15 + .string "Star-shaped rays\nthat never miss are\nfired at all foes in\nbattle.$" + +gUnknown_8484A57:: @ 8484A57 + .string "The user raises its\nDEFENSE in the 1st\nturn, then attacks\nin the 2nd turn.$" + +gUnknown_8484AA2:: @ 8484AA2 + .string "Sharp spikes are\nfired at the foe to\nstrike two to five\ntimes.$" + +gUnknown_8484AE1:: @ 8484AE1 + .string "The foe is attacked\nwith long tentacles\nor vines. It may\nlower SPEED.$" + +gUnknown_8484B27:: @ 8484B27 + .string "Forgets about\nsomething and\nsharply raises\nSP. DEF.$" + +gUnknown_8484B5B:: @ 8484B5B + .string "The user distracts\nthe foe by bending\na spoon. It may\nlower accuracy.$" + +gUnknown_8484BA1:: @ 8484BA1 + .string "Heals the user by\nup to half its full\nHP. It can be used\nto heal an ally.$" + +gUnknown_8484BEB:: @ 8484BEB + .string "A strong jumping\nknee kick. If it\nmisses, the user is\nhurt.$" + +gUnknown_8484C27:: @ 8484C27 + .string "The user intimidates\nthe foe with the\ndesign on its belly\nto cause paralysis.$" + +gUnknown_8484C75:: @ 8484C75 + .string "Absorbs half the\ndamage it inflicted\non a sleeping foe\nto restore HP.$" + +gUnknown_8484CBB:: @ 8484CBB + .string "The foe is sprayed\nwith a cloud of\ntoxic gas that may\npoison the foe.$" + +gUnknown_8484D01:: @ 8484D01 + .string "Round objects are\nhurled at the foe\nto strike two to\nfive times.$" + +gUnknown_8484D42:: @ 8484D42 + .string "An attack that\nabsorbs half the\ndamage it inflicted\nto restore HP.$" + +gUnknown_8484D85:: @ 8484D85 + .string "The user forces a\nkiss on the foe\nwith a scary face\nthat induces sleep.$" + +gUnknown_8484DCD:: @ 8484DCD + .string "A 2nd-turn attack\nmove with a high\ncritical-hit ratio.\nThe foe may flinch.$" + +gUnknown_8484E18:: @ 8484E18 + .string "The user transforms\ninto a copy of the\nfoe with even the\nsame move set.$" + +gUnknown_8484E60:: @ 8484E60 + .string "A spray of bubbles\nhits the foe.\nIt may lower the\nfoe’s SPEED stat.$" + +gUnknown_8484EA4:: @ 8484EA4 + .string "The foe is hit with\na rhythmic punch\nthat may leave it\nconfused.$" + +gUnknown_8484EE5:: @ 8484EE5 + .string "The user scatters\nbursts of fine\nspores that induce\nsleep.$" + +gUnknown_8484F20:: @ 8484F20 + .string "A blast of light\nthat cuts the foe’s\naccuracy. It also\nilluminates caves.$" + +gUnknown_8484F6A:: @ 8484F6A + .string "The foe is attacked\nwith an odd, hot\nenergy wave that\nvaries in intensity.$" + +gUnknown_8484FB5:: @ 8484FB5 + .string "The user just flops\nand splashes around\nwithout having any\neffect.$" + +gUnknown_8484FF8:: @ 8484FF8 + .string "The user alters its\ncells to liquefy\nitself and sharply\nraise DEFENSE.$" + +gUnknown_848503F:: @ 848503F + .string "A large pincer is\nused to hammer the\nfoe. It has a high\ncritical-hit ratio.$" + +gUnknown_848508B:: @ 848508B + .string "The user explodes\nto inflict terrible\ndamage even while\nfainting itself.$" + +gUnknown_84850D4:: @ 84850D4 + .string "The foe is raked\nwith sharp claws or\nscythes two to five\ntimes.$" + +gUnknown_8485114:: @ 8485114 + .string "The user throws a\nbone that hits the\nfoe once, then once\nagain on return.$" + +gUnknown_848515E:: @ 848515E + .string "The user sleeps for\ntwo turns to fully\nrestore HP and heal\nany status problem.$" + +gUnknown_84851AD:: @ 84851AD + .string "Large boulders are\nhurled at the foe.\nIt may make the\nfoe flinch.$" + +gUnknown_84851EF:: @ 84851EF + .string "The foe is attacked\nwith sharp fangs.\nIt may make the\nfoe flinch.$" + +gUnknown_8485231:: @ 8485231 + .string "The user reduces\nits polygon count\nto sharpen edges\nand raise ATTACK.$" + +gUnknown_8485277:: @ 8485277 + .string "The user changes\nits type to match\nthe type of one of\nits moves.$" + +gUnknown_84852B8:: @ 84852B8 + .string "A simultaneous\n3-beam attack that\nmay paralyze, burn,\nor freeze the foe.$" + +gUnknown_8485301:: @ 8485301 + .string "The user attacks\nwith sharp fangs\nand halves the\nfoe’s HP.$" + +gUnknown_848533C:: @ 848533C + .string "The foe is slashed\nwith claws, etc.\nIt has a high\ncritical-hit ratio.$" + +gUnknown_8485382:: @ 8485382 + .string "The user creates a\ndecoy using one-\nquarter of its full\nHP.$" + +gUnknown_84853BE:: @ 84853BE + .string "An attack that is\nused only if there\nis no PP. It also\nhurts the user.$" + +gUnknown_8485405:: @ 8485405 + .string "This move copies\nthe move last used\nby the foe, then\ndisappears.$" + +gUnknown_8485446:: @ 8485446 + .string "A 3-kick attack\nthat becomes more\npowerful with each\nsuccessive hit.$" + +gUnknown_848548B:: @ 848548B + .string "An attack that may\ntake the foe’s held\nitem if the user\nisn’t holding one.$" + +gUnknown_84854D6:: @ 84854D6 + .string "Ensnares the foe \nwith sticky string\nso it doesn’t flee\nor switch out.$" + +gUnknown_848551D:: @ 848551D + .string "The user predicts\nthe foe’s action to\nensure its next\nattack hits.$" + +gUnknown_8485560:: @ 8485560 + .string "A sleeping foe is\nshown a nightmare\nthat inflicts some\ndamage every turn.$" + +gUnknown_84855AA:: @ 84855AA + .string "The user makes a\nfiery charge at the\nfoe. It may cause\na burn.$" + +gUnknown_84855E9:: @ 84855E9 + .string "An attack that can\nbe used only while\nasleep. It may\ncause flinching.$" + +gUnknown_848562F:: @ 848562F + .string "A move that works\ndifferently for the\nGHOST-type and all\nthe other types.$" + +gUnknown_8485679:: @ 8485679 + .string "A desperate attack\nthat becomes more\npowerful the less\nHP the user has.$" + +gUnknown_84856C1:: @ 84856C1 + .string "The user changes\ntype to make itself\nresistant to the\nlast attack it took.$" + +gUnknown_848570C:: @ 848570C + .string "A vortex of air is\nshot at the foe.\nIt has a high\ncritical-hit ratio.$" + +gUnknown_8485752:: @ 8485752 + .string "Cotton-like spores\ncling to the foe,\nsharply reducing\nits SPEED stat.$" + +gUnknown_8485798:: @ 8485798 + .string "An all-out attack\nthat becomes more\npowerful the less\nHP the user has.$" + +gUnknown_84857DF:: @ 84857DF + .string "A move that cuts\n2 to 5 PP from the\nmove last used by\nthe foe.$" + +gUnknown_848581E:: @ 848581E + .string "Blasts the foe with\na snowy gust.\nIt may cause\nfreezing.$" + +gUnknown_8485857:: @ 8485857 + .string "Enables the user to\nevade all attacks.\nIt may fail if used\nin succession.$" + +gUnknown_84858A1:: @ 84858A1 + .string "A punch thrown at\nblinding speed.\nIt is certain to\nstrike first.$" + +gUnknown_84858E2:: @ 84858E2 + .string "Frightens the foe\nwith a scary face\nto sharply reduce\nits SPEED.$" + +gUnknown_8485923:: @ 8485923 + .string "The user draws up\nclose to the foe\ndisarmingly, then\nhits without fail.$" + +gUnknown_848596B:: @ 848596B + .string "The user kisses\nthe foe with sweet\ncuteness that\ncauses confusion.$" + +gUnknown_84859AE:: @ 84859AE + .string "The user maximizes\nits ATTACK stat at\nthe cost of half\nits full HP.$" + +gUnknown_84859F2:: @ 84859F2 + .string "Filthy sludge is\nhurled at the foe.\nIt may poison the\ntarget.$" + +gUnknown_8485A30:: @ 8485A30 + .string "Mud is hurled in\nthe foe’s face to\ninflict damage and\nlower its accuracy.$" + +gUnknown_8485A7A:: @ 8485A7A + .string "Ink is blasted in\nthe foe’s face or\neyes to damage and\nlower accuracy.$" + +gUnknown_8485AC1:: @ 8485AC1 + .string "A trap of spikes is\nlaid around the\nfoe’s party to hurt\nfoes switching in.$" + +gUnknown_8485B0C:: @ 8485B0C + .string "An electric blast is\nfired like a cannon\nto inflict damage\nand paralyze.$" + +gUnknown_8485B55:: @ 8485B55 + .string "Completely negates\nthe foe’s efforts to\nheighten its ability\nto evade.$" + +gUnknown_8485B9C:: @ 8485B9C + .string "If the user faints,\nthe foe delivering\nthe final hit also\nfaints.$" + +gUnknown_8485BDE:: @ 8485BDE + .string "Any battler that\nhears this faints\nin three turns\nunless it switches.$" + +gUnknown_8485C24:: @ 8485C24 + .string "A chilling wind is\nused to attack.\nIt also lowers the\nSPEED stat.$" + +gUnknown_8485C66:: @ 8485C66 + .string "Enables the user to\nevade all attacks.\nIt may fail if used\nin succession.$" + +gUnknown_8485CB0:: @ 8485CB0 + .string "The user strikes\nthe foe with a bone\nin hand two to five\ntimes.$" + +gUnknown_8485CF0:: @ 8485CF0 + .string "The user locks on\nto the foe, making\nthe next move sure\nto hit.$" + +gUnknown_8485D30:: @ 8485D30 + .string "The user thrashes\nabout for two to\nthree turns, then\nbecomes confused.$" + +gUnknown_8485D77:: @ 8485D77 + .string "A 5-turn sandstorm\nthat damages all\ntypes except ROCK,\nGROUND, and STEEL.$" + +gUnknown_8485DC1:: @ 8485DC1 + .string "A harsh attack that\nabsorbs half the\ndamage it inflicted\nto restore HP.$" + +gUnknown_8485E09:: @ 8485E09 + .string "The user endures\nany hit with 1 HP\nleft. It may fail if\nused in succession.$" + +gUnknown_8485E55:: @ 8485E55 + .string "The foe is charmed\nby the user’s cute\nappeals, sharply\ncutting its ATTACK.$" + +gUnknown_8485EA0:: @ 8485EA0 + .string "A 5-turn rolling\nattack that becomes\nstronger each time\nit hits.$" + +gUnknown_8485EE1:: @ 8485EE1 + .string "A restrained attack\nthat always leaves\nthe foe with at\nleast 1 HP.$" + +gUnknown_8485F24:: @ 8485F24 + .string "A move that makes\nthe foe confused,\nbut also sharply\nraises its ATTACK.$" + +gUnknown_8485F6C:: @ 8485F6C + .string "Heals the user by\nup to half its full\nHP. It can be used\nto heal an ally.$" + +gUnknown_8485FB6:: @ 8485FB6 + .string "An electrically\ncharged tackle that\nmay also paralyze\nthe foe.$" + +gUnknown_8485FF5:: @ 8485FF5 + .string "An attack that\ngrows stronger on\neach successive\nhit.$" + +gUnknown_848602B:: @ 848602B + .string "The foe is hit with\nwings of steel.\nIt may also raise\nthe user’s DEFENSE.$" + +gUnknown_8486075:: @ 8486075 + .string "The foe is fixed\nwith a mean look\nthat prevents it\nfrom escaping.$" + +gUnknown_84860B7:: @ 84860B7 + .string "If it is the other\ngender, the foe is\nmade infatuated and\nunlikely to attack.$" + +gUnknown_8486105:: @ 8486105 + .string "While asleep, the\nuser randomly uses\none of the moves it\nknows.$" + +gUnknown_8486145:: @ 8486145 + .string "A soothing bell\nchimes to heal the\nstatus problems of\nall allies.$" + +gUnknown_8486187:: @ 8486187 + .string "This attack move\ngrows more powerful\nthe more the user\nlikes its TRAINER.$" + +gUnknown_84861D1:: @ 84861D1 + .string "The foe is given a\nbooby-trapped gift.\nIt restores HP\nsometimes, however.$" + +gUnknown_848621B:: @ 848621B + .string "This attack move\ngrows more powerful\nthe less the user\nlikes its TRAINER.$" + +gUnknown_8486265:: @ 8486265 + .string "It protects the\nuser’s party from\nall status problems\nfor five turns.$" + +gUnknown_84862AB:: @ 84862AB + .string "The user adds its\nHP to the foe’s HP,\nthen equally shares\nthe total HP.$" + +gUnknown_84862F3:: @ 84862F3 + .string "A mystical and\npowerful fire\nattack that may\ninflict a burn.$" + +gUnknown_8486330:: @ 8486330 + .string "A ground-shaking\nattack against all\nstanding POKéMON.\nIts power varies.$" + +gUnknown_8486378:: @ 8486378 + .string "The foe is punched\nwith the user’s full\npower. It confuses\nthe foe if it hits.$" + +gUnknown_84863C7:: @ 84863C7 + .string "A brutal ramming\nattack delivered\nwith a tough and\nimpressive horn.$" + +gUnknown_848640B:: @ 848640B + .string "The foe is hit with\nan incredible blast\nof breath that may\nalso paralyze.$" + +gUnknown_8486455:: @ 8486455 + .string "The user switches\nout, passing along\nany stat changes\nto the new battler.$" + +gUnknown_848649F:: @ 848649F + .string "Makes the foe use\nthe move it last\nused repeatedly for\ntwo to six turns.$" + +gUnknown_84864E8:: @ 84864E8 + .string "An attack move that\nworks especially\nwell on a foe that\nis switching out.$" + +gUnknown_8486532:: @ 8486532 + .string "An attack that\nfrees the user from\nBIND, WRAP, LEECH\nSEED, and SPIKES.$" + +gUnknown_8486579:: @ 8486579 + .string "Allures the foe to\nreduce evasiveness.\nIt also attracts\nwild POKéMON.$" + +gUnknown_84865BF:: @ 84865BF + .string "An attack with a\nsteel-hard tail.\nIt may lower the\nfoe’s DEFENSE stat.$" + +gUnknown_8486606:: @ 8486606 + .string "The foe is attacked\nwith steel claws.\nIt may also raise\nthe user’s ATTACK.$" + +gUnknown_8486651:: @ 8486651 + .string "Makes the user\nattack after the\nfoe. In return,\nit will not miss.$" + +gUnknown_8486693:: @ 8486693 + .string "Restores the user’s\nHP. The amount of\nHP regained varies\nwith the weather.$" + +gUnknown_84866DE:: @ 84866DE + .string "Restores the user’s\nHP. The amount of\nHP regained varies\nwith the weather.$" + +gUnknown_8486729:: @ 8486729 + .string "Restores the user’s\nHP. The amount of\nHP regained varies\nwith the weather.$" + +gUnknown_8486774:: @ 8486774 + .string "An attack that\nvaries in type and\nintensity depending\non the user.$" + +gUnknown_84867B7:: @ 84867B7 + .string "The foe is hit with\ndouble chops.\nIt has a high\ncritical-hit ratio.$" + +gUnknown_84867FB:: @ 84867FB + .string "A vicious twister\nattacks the foe.\nIt may make the\nfoe flinch.$" + +gUnknown_848683A:: @ 848683A + .string "A heavy rain falls\nfor five turns,\npowering up WATER-\ntype moves.$" + +gUnknown_848687C:: @ 848687C + .string "The sun blazes for\nfive turns, powering\nup FIRE-type\nmoves.$" + +gUnknown_84868B8:: @ 84868B8 + .string "The foe is crunched\nwith sharp fangs.\nIt may lower the\nfoe’s SP. DEF.$" + +gUnknown_84868FE:: @ 84868FE + .string "A retaliation move\nthat pays back the\nfoe’s special attack\ndouble.$" + +gUnknown_8486941:: @ 8486941 + .string "The user hypnotizes\nitself into copying\nany stat change\nmade by the foe.$" + +gUnknown_848698A:: @ 848698A + .string "A blindingly speedy\ncharge attack that\nalways goes before\nany other.$" + +gUnknown_84869CF:: @ 84869CF + .string "An ancient power is\nused to attack. It\nmay also raise all\nthe user’s stats.$" + +gUnknown_8486A1B:: @ 8486A1B + .string "A shadowy blob is\nhurled at the foe.\nMay also lower the\nfoe’s SP. DEF.$" + +gUnknown_8486A62:: @ 8486A62 + .string "Two turns after\nthis move is used,\nthe foe is attacked\npsychically.$" + +gUnknown_8486AA6:: @ 8486AA6 + .string "An attack that may\nalso cut DEFENSE.\nIt can also smash\ncracked boulders.$" + +gUnknown_8486AEF:: @ 8486AEF + .string "The foe is trapped\nin a fast, vicious\nwhirlpool for two\nto five turns.$" + +gUnknown_8486B36:: @ 8486B36 + .string "All party POKéMON\njoin in the attack.\nThe more allies,\nthe more damage.$" + +gUnknown_8486B7E:: @ 8486B7E + .string "An attack that hits\nfirst and causes\nflinching. Usable\nonly on 1st turn.$" + +gUnknown_8486BC7:: @ 8486BC7 + .string "The user attacks in\nan uproar that\nprevents sleep for\ntwo to five turns.$" + +gUnknown_8486C10:: @ 8486C10 + .string "The user charges\nup power for use\nlater. It can be\nused three times.$" + +gUnknown_8486C55:: @ 8486C55 + .string "The power built\nusing STOCKPILE is\nreleased at once\nfor attack.$" + +gUnknown_8486C95:: @ 8486C95 + .string "The energy it built\nusing STOCKPILE is\nabsorbed to restore\nHP.$" + +gUnknown_8486CD4:: @ 8486CD4 + .string "The user exhales a\nheated breath to\nattack. It may also\ninflict a burn.$" + +gUnknown_8486D1C:: @ 8486D1C + .string "A hailstorm lasting\nfive turns damages\nall POKéMON except\nthe ICE-type.$" + +gUnknown_8486D64:: @ 8486D64 + .string "It enrages the foe,\nmaking it incapable\nof using the same\nmove successively.$" + +gUnknown_8486DB1:: @ 8486DB1 + .string "Flattery is used to\nconfuse the foe,\nbut its SP. ATK\nalso rises.$" + +gUnknown_8486DF2:: @ 8486DF2 + .string "A sinister, bluish\nwhite flame is shot\nat the foe to\ninflict a burn.$" + +gUnknown_8486E37:: @ 8486E37 + .string "The user faints,\nbut sharply lowers\nthe foe’s ATTACK\nand SP. ATK.$" + +gUnknown_8486E79:: @ 8486E79 + .string "An attack that is\nboosted if user is\nburned, poisoned,\nor paralyzed.$" + +gUnknown_8486EBE:: @ 8486EBE + .string "An attack that is\nexecuted last.\nThe user flinches\nif hit beforehand.$" + +gUnknown_8486F04:: @ 8486F04 + .string "Doubly effective on\na paralyzed foe,\nbut it also cures\nthe foe’s paralysis.$" + +gUnknown_8486F50:: @ 8486F50 + .string "The user draws\nattention to itself,\nmaking foes attack\nonly the user.$" + +gUnknown_8486F96:: @ 8486F96 + .string "An attack that\nchanges type\ndepending on the\nuser’s location.$" + +gUnknown_8486FD4:: @ 8486FD4 + .string "The user charges\npower to boost the\nELECTRIC move it\nuses next.$" + +gUnknown_8487014:: @ 8487014 + .string "The foe is taunted\ninto a rage that\nallows it to use\nonly attack moves.$" + +gUnknown_848705C:: @ 848705C + .string "A move that boosts\nthe power of the\nally’s attack in a\nbattle.$" + +gUnknown_848709B:: @ 848709B + .string "A move that tricks\nthe foe into\ntrading held items\nwith the user.$" + +gUnknown_84870DD:: @ 84870DD + .string "The user mimics the\nfoe completely and\ncopies the foe’s\nability.$" + +gUnknown_848711E:: @ 848711E + .string "A self-healing move\nthat restores half\nthe full HP on the\nnext turn.$" + +gUnknown_8487163:: @ 8487163 + .string "The user randomly\npicks and uses a\nmove of an allied\nPOKéMON.$" + +gUnknown_84871A1:: @ 84871A1 + .string "The user lays roots\nthat restore HP on\nevery turn.\nIt can’t switch out.$" + +gUnknown_84871E9:: @ 84871E9 + .string "A powerful attack,\nbut it also lowers\nthe user’s ATTACK\nand DEFENSE stats.$" + +gUnknown_8487234:: @ 8487234 + .string "Reflects back the\nfoe’s LEECH SEED\nand any status-\ndamaging move.$" + +gUnknown_8487276:: @ 8487276 + .string "A move that\nrecycles a used\nitem for use once\nmore.$" + +gUnknown_84872AA:: @ 84872AA + .string "An attack move that\ngains in intensity if\nthe target has hurt\nthe user.$" + +gUnknown_84872F2:: @ 84872F2 + .string "An attack that also\nbreaks any barrier\nlike LIGHT SCREEN\nand REFLECT.$" + +gUnknown_8487338:: @ 8487338 + .string "A huge yawn lulls\nthe foe into falling\nasleep on the next\nturn.$" + +gUnknown_8487378:: @ 8487378 + .string "Knocks down the\nfoe’s held item to\nprevent its use\nduring the battle.$" + +gUnknown_84873BE:: @ 84873BE + .string "Gains power the\nfewer HP the user\nhas compared with\nthe foe.$" + +gUnknown_84873FB:: @ 84873FB + .string "The higher the\nuser’s HP, the more\npowerful this\nattack becomes.$" + +gUnknown_848743C:: @ 848743C + .string "The user employs\nits psychic power\nto swap abilities\nwith the foe.$" + +gUnknown_848747F:: @ 848747F + .string "Prevents foes from\nusing any move\nthat is also known\nby the user.$" + +gUnknown_84874C1:: @ 84874C1 + .string "A self-healing move\nthat cures the user\nof a poisoning,\nburn, or paralysis.$" + +gUnknown_848750D:: @ 848750D + .string "If the user faints,\nthis move deletes\nthe PP of the move\nthat finished it.$" + +gUnknown_8487558:: @ 8487558 + .string "Steals the effects\nof the foe’s\nhealing or status-\nchanging move.$" + +gUnknown_848759A:: @ 848759A + .string "An attack that may\nhave an additional\neffect that varies\nwith the terrain.$" + +gUnknown_84875E5:: @ 84875E5 + .string "The user dives\nunderwater on the\nfirst turn and\nstrikes next turn.$" + +gUnknown_8487628:: @ 8487628 + .string "A quick flurry of\nstraight-arm\npunches that hit\ntwo to five times.$" + +gUnknown_848766B:: @ 848766B + .string "Alters the user’s\ntype depending on\nthe location’s\nterrain.$" + +gUnknown_84876A7:: @ 84876A7 + .string "The user flashes a\nlight that sharply\nraises its SP. ATK\nstat.$" + +gUnknown_84876E6:: @ 84876E6 + .string "A burst of light\ninjures the foe. It\nmay also lower the\nfoe’s SP. DEF.$" + +gUnknown_848772D:: @ 848772D + .string "A flurry of down\nhits the foe. It\nmay also lower the\nfoe’s SP. ATK.$" + +gUnknown_8487771:: @ 8487771 + .string "The foe is covered\nwith a mass of down\nthat sharply cuts\nthe ATTACK stat.$" + +gUnknown_84877BB:: @ 84877BB + .string "A wobbly dance\nthat confuses all\nthe POKéMON in\nbattle.$" + +gUnknown_84877F3:: @ 84877F3 + .string "A fiery kick with a\nhigh critical-hit\nratio. It may also\nburn the foe.$" + +gUnknown_848783A:: @ 848783A + .string "Weakens ELECTRIC-\ntype attacks while\nthe user is in the\nbattle.$" + +gUnknown_848787A:: @ 848787A + .string "A 5-turn rolling\nattack that becomes\nstronger each time\nit rolls.$" + +gUnknown_84878BC:: @ 84878BC + .string "An attack using\nthorny arms.\nIt may make the\nfoe flinch.$" + +gUnknown_84878F5:: @ 84878F5 + .string "The user slacks off\nand restores its HP\nby half its full\nHP.$" + +gUnknown_8487932:: @ 8487932 + .string "The user lets loose\na horribly loud\nshout with the\npower to damage.$" + +gUnknown_8487976:: @ 8487976 + .string "The foe is bitten\nwith toxic fangs.\nIt may also badly\npoison the foe.$" + +gUnknown_84879BC:: @ 84879BC + .string "The foe is attacked\nwith sharp claws.\nIt may also lower\nthe foe’s DEFENSE.$" + +gUnknown_8487A07:: @ 8487A07 + .string "The foe is hit with\na huge explosion.\nThe user can’t move\non the next turn.$" + +gUnknown_8487A53:: @ 8487A53 + .string "The foe is hit with\na watery cannon.\nThe user can’t move\non the next turn.$" + +gUnknown_8487A9E:: @ 8487A9E + .string "The foe is hit with\na hard, fast punch.\nIt may also raise\nthe user’s ATTACK.$" + +gUnknown_8487AEB:: @ 8487AEB + .string "An attack using a\nstartling shout.\nIt also may make\nthe foe flinch.$" + +gUnknown_8487B2F:: @ 8487B2F + .string "An attack that\nvaries in power and\ntype depending on\nthe weather.$" + +gUnknown_8487B71:: @ 8487B71 + .string "A soothing scent is\nreleased to heal\nall status problems\nin the user’s party.$" + +gUnknown_8487BBF:: @ 8487BBF + .string "The user feigns\ncrying to sharply\nlower the foe’s\nSP. DEF stat.$" + +gUnknown_8487BFF:: @ 8487BFF + .string "The foe is hit with\nrazor-like wind.\nIt has a high\ncritical-hit ratio.$" + +gUnknown_8487C46:: @ 8487C46 + .string "An intense attack\nthat also sharply\nreduces the user’s\nSP. ATK stat.$" + +gUnknown_8487C8B:: @ 8487C8B + .string "Completely negates\nthe foe’s efforts to\nheighten its ability\nto evade.$" + +gUnknown_8487CD2:: @ 8487CD2 + .string "Boulders are hurled\nat the foe. It also\nlowers the foe’s\nSPEED if it hits.$" + +gUnknown_8487D1D:: @ 8487D1D + .string "The foe is attacked\nwith a silver dust.\nIt may raise all\nthe user’s stats.$" + +gUnknown_8487D68:: @ 8487D68 + .string "A horrible metallic\nscreech is used to\nsharply lower the\nfoe’s SP. DEF.$" + +gUnknown_8487DB0:: @ 8487DB0 + .string "A pleasant melody\nis played to lull\nthe foe into a deep\nsleep.$" + +gUnknown_8487DEF:: @ 8487DEF + .string "The foe is made to\nlaugh, reducing its\nATTACK and DEFENSE\nstats.$" + +gUnknown_8487E30:: @ 8487E30 + .string "The user absorbs a\nmystic power to\nraise its DEFENSE\nand SP. DEF.$" + +gUnknown_8487E72:: @ 8487E72 + .string "The higher the\nuser’s HP, the more\npowerful this\nattack becomes.$" + +gUnknown_8487EB3:: @ 8487EB3 + .string "The foe is hit with\na flashing beam\nthat may also\ncause confusion.$" + +gUnknown_8487EF6:: @ 8487EF6 + .string "The user throws a\npunch from the\nshadows. It cannot\nbe evaded.$" + +gUnknown_8487F35:: @ 8487F35 + .string "The user attacks\nwith an odd power\nthat may make the\nfoe flinch.$" + +gUnknown_8487F76:: @ 8487F76 + .string "The user attacks\nwith an uppercut\nthrown skywards\nwith force.$" + +gUnknown_8487FB4:: @ 8487FB4 + .string "The foe is trapped\ninside a painful\nsandstorm for two\nto five turns.$" + +gUnknown_8487FF9:: @ 8487FF9 + .string "The foe is attacked\nwith ultimate cold\nthat causes fainting\nif it hits.$" + +gUnknown_8488041:: @ 8488041 + .string "The user attacks\nwith muddy water.\nIt may also lower\nthe foe’s accuracy.$" + +gUnknown_848808A:: @ 848808A + .string "The user shoots\nseeds at the foe.\nTwo to five seeds\nare shot at once.$" + +gUnknown_84880D0:: @ 84880D0 + .string "An extremely fast\nattack against one\ntarget. It can’t be\nevaded.$" + +gUnknown_8488111:: @ 8488111 + .string "Sharp icicles are\nfired at the foe.\nIt strikes two to\nfive times.$" + +gUnknown_8488153:: @ 8488153 + .string "The user hardens\nits body’s surface\nto sharply raise its\nDEFENSE stat.$" + +gUnknown_848819A:: @ 848819A + .string "The user blocks the\nfoe’s way with arms\nspread wide to\nprevent escape.$" + +gUnknown_84881E1:: @ 84881E1 + .string "The user howls to\nraise its spirit and\nboost its ATTACK\nstat.$" + +gUnknown_848821F:: @ 848821F + .string "Sharp, huge claws\nhook and slash the\nfoe quickly and\nwith great power.$" + +gUnknown_8488266:: @ 8488266 + .string "The foe is hit with\nan enormous branch.\nThe user can’t move\non the next turn.$" + +gUnknown_84882B4:: @ 84882B4 + .string "The user bulks up\nits body to boost\nboth its ATTACK and\nDEFENSE stats.$" + +gUnknown_84882FB:: @ 84882FB + .string "The user bounces\non the foe on the\n2nd turn. It may\nparalyze the foe.$" + +gUnknown_8488341:: @ 8488341 + .string "The user attacks by\nhurling mud.\nIt also reduces the\nfoe’s SPEED.$" + +gUnknown_8488383:: @ 8488383 + .string "An attack with a\nhigh critical-hit\nratio. It may also\npoison the foe.$" + +gUnknown_84883C9:: @ 84883C9 + .string "A cutely executed\nattack that also\nsteals the foe’s\nhold item.$" + +gUnknown_8488408:: @ 8488408 + .string "The user throws an\nelectrified tackle.\nIt hurts the user\na little.$" + +gUnknown_848844B:: @ 848844B + .string "The foe is attacked\nwith a strange leaf\nthat cannot be\nevaded.$" + +gUnknown_848848A:: @ 848848A + .string "Weakens FIRE-type\nattacks while the\nuser is in the\nbattle.$" + +gUnknown_84884C5:: @ 84884C5 + .string "The user focuses\nits mind to raise\nthe SP. ATK and\nSP. DEF stats.$" + +gUnknown_8488507:: @ 8488507 + .string "The foe is slashed\nwith a sharp leaf.\nIt has a high\ncritical-hit ratio.$" + +gUnknown_848854F:: @ 848854F + .string "A mystic, powerful\ndance that boosts\nthe user’s ATTACK\nand SPEED stats.$" + +gUnknown_8488597:: @ 8488597 + .string "The user hurls two\nto five hard rocks\nat the foe to\nattack.$" + +gUnknown_84885D3:: @ 84885D3 + .string "A rapid jolt of\nelectricity strikes\nthe foe. It can’t\nbe evaded.$" + +gUnknown_8488614:: @ 8488614 + .string "An attack with a\npulsing blast of\nwater. It may also\nconfuse the foe.$" + +gUnknown_848865A:: @ 848865A + .string "A move that attacks\nthe foe with a\nblast of light two\nturns after use.$" + +gUnknown_84886A1:: @ 84886A1 + .string "An intense attack\nthat also sharply\nreduces the user’s\nSP. ATK stat.$" + +gUnknown_84886E6:: @ 84886E6 + .string " " + diff --git a/data/trainer_tower.s b/data/trainer_tower.s new file mode 100644 index 000000000..f90d1dd2b --- /dev/null +++ b/data/trainer_tower.s @@ -0,0 +1,616 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .align 2 +gUnknown_8479D34:: + .byte 0x03, 0x26 + .align 2 + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0x99, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + + .align 2 + .byte 0x03, 0x27 + .align 2 + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0x9a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + + .align 2 + .byte 0x01, 0x1f + .align 2 + .byte 0x4c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0xff, 0xff + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + + .align 2 + .byte 0x01, 0x22 + .align 2 + .byte 0x53, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0xff, 0xff + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + + .align 2 + .byte 0x03, 0x41 + .align 2 + .byte 0x40, 0x41, 0x42, 0x43, 0xff, 0xff, 0xff, 0xff + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + + .align 2 + .byte 0x01, 0x02 + .align 2 + .byte 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0xff, 0xff + .byte 0x54, 0x55, 0x56, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + + .align 2 + .byte 0x01, 0x6d + .align 2 + .byte 0x5b, 0x5d, 0x5e, 0x5f, 0x63, 0x64, 0x65, 0x66 + .byte 0x5b, 0x5d, 0x5e, 0x5f, 0x63, 0x64, 0x65, 0xff + .byte 0x5a, 0x5c, 0x60, 0x61, 0x62, 0xff, 0xff, 0xff + + .align 2 + .byte 0x03, 0x2e + .align 2 + .byte 0x6b, 0x6c, 0x6d, 0x6e, 0xff, 0xff, 0xff, 0xff + .byte 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0xff, 0xff + .byte 0x6b, 0x6c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + + .align 2 + .byte 0x03, 0x30 + .align 2 + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xa6, 0xa7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + + .align 2 + .byte 0x03, 0x0f + .align 2 + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xa8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xa9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + + .align 2 + .byte 0x03, 0x39 + .align 2 + .byte 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + + .align 2 + .byte 0x03, 0x36 + .align 2 + .byte 0xae, 0xb0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xaf, 0xb1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + + .align 2 + .byte 0x03, 0x3a + .align 2 + .byte 0xb2, 0xb3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + + .align 2 + .byte 0x03, 0x3b + .align 2 + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xb4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + + .align 2 + .byte 0x03, 0x3e + .align 2 + .byte 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + +gUnknown_8479ED8:: @ 8479ED8 + .align 2 + .byte 0x1c, 0x03, 0x01 + .align 2 + .byte 0x38, 0x04, 0x00 + .align 2 + .byte 0x25, 0x06, 0x01 + .align 2 + .byte 0x26, 0x07, 0x00 + .align 2 + .byte 0x29, 0x08, 0x00 + .align 2 + .byte 0x2a, 0x09, 0x01 + .align 2 + .byte 0x34, 0x0a, 0x00 + .align 2 + .byte 0x1c, 0x0b, 0x01 + .align 2 + .byte 0x1d, 0x0c, 0x01 + .align 2 + .byte 0x13, 0x0d, 0x00 + .align 2 + .byte 0x34, 0x0e, 0x00 + .align 2 + .byte 0x2d, 0x0f, 0x00 + .align 2 + .byte 0x36, 0x10, 0x00 + .align 2 + .byte 0x1a, 0x11, 0x00 + .align 2 + .byte 0x1a, 0x12, 0x00 + .align 2 + .byte 0x27, 0x13, 0x00 + .align 2 + .byte 0x34, 0x14, 0x00 + .align 2 + .byte 0x13, 0x15, 0x00 + .align 2 + .byte 0x17, 0x16, 0x01 + .align 2 + .byte 0x3d, 0x17, 0x00 + .align 2 + .byte 0x13, 0x1d, 0x00 + .align 2 + .byte 0x17, 0x1e, 0x01 + .align 2 + .byte 0x1e, 0x20, 0x00 + .align 2 + .byte 0x1f, 0x21, 0x01 + .align 2 + .byte 0x20, 0x22, 0x00 + .align 2 + .byte 0x23, 0x23, 0x01 + .align 2 + .byte 0x12, 0x24, 0x00 + .align 2 + .byte 0x39, 0x26, 0x00 + .align 2 + .byte 0x29, 0x2d, 0x00 + .align 2 + .byte 0x1a, 0x2e, 0x00 + .align 2 + .byte 0x10, 0x2f, 0x00 + .align 2 + .byte 0x18, 0x30, 0x01 + .align 2 + .byte 0x1d, 0x31, 0x01 + .align 2 + .byte 0x2e, 0x32, 0x01 + .align 2 + .byte 0x28, 0x33, 0x01 + .align 2 + .byte 0x3e, 0x35, 0x00 + .align 2 + .byte 0x1b, 0x38, 0x00 + .align 2 + .byte 0x19, 0x40, 0x00 + .align 2 + .byte 0x1c, 0x41, 0x01 + .align 2 + .byte 0x27, 0x42, 0x00 + .align 2 + .byte 0x28, 0x43, 0x01 + .align 2 + .byte 0x16, 0x47, 0x01 + .align 2 + .byte 0x14, 0x48, 0x00 + .align 2 + .byte 0x38, 0x49, 0x00 + .align 2 + .byte 0x12, 0x58, 0x00 + .align 2 + .byte 0x14, 0x59, 0x00 + .align 2 + .byte 0x16, 0x5a, 0x01 + .align 2 + .byte 0x3e, 0x5b, 0x00 + .align 2 + .byte 0x27, 0x5c, 0x00 + .align 2 + .byte 0x28, 0x5d, 0x01 + .align 2 + .byte 0x34, 0x5e, 0x00 + .align 2 + .byte 0x34, 0x5f, 0x00 + .align 2 + .byte 0x38, 0x60, 0x00 + .align 2 + .byte 0x35, 0x61, 0x00 + .align 2 + .byte 0x34, 0x62, 0x00 + .align 2 + .byte 0x1e, 0x63, 0x00 + .align 2 + .byte 0x39, 0x64, 0x00 + .align 2 + .byte 0x2d, 0x65, 0x00 + .align 2 + .byte 0x35, 0x66, 0x00 + .align 2 + .byte 0x20, 0x67, 0x00 + .align 2 + .byte 0x1d, 0x68, 0x01 + .align 2 + .byte 0x2e, 0x69, 0x01 + .align 2 + .byte 0x13, 0x6a, 0x00 + .align 2 + .byte 0x1a, 0x6b, 0x00 + .align 2 + .byte 0x1a, 0x6c, 0x00 + .align 2 + .byte 0x19, 0x6d, 0x00 + .align 2 + .byte 0x1a, 0x6e, 0x00 + .align 2 + .byte 0x36, 0x6f, 0x00 + .align 2 + .byte 0x37, 0x71, 0x00 + .align 2 + .byte 0x29, 0x74, 0x00 + .align 2 + .byte 0x2a, 0x75, 0x01 + .align 2 + .byte 0x3d, 0x7a, 0x00 + .align 2 + .byte 0x3a, 0x7d, 0x01 + .align 2 + .byte 0x17, 0x89, 0x01 + .align 2 + .byte 0x18, 0x8a, 0x01 + .align 2 + .byte 0x25, 0x8b, 0x01 + .align 2 + .byte 0x1c, 0x8c, 0x01 + .align 2 + .byte 0x27, 0x8d, 0x00 + .align 2 + .byte 0x28, 0x8e, 0x01 + .align 2 + .byte 0x1c, 0x8f, 0x01 + .align 2 + .byte 0x38, 0x90, 0x00 + .align 2 + .byte 0x1c, 0x91, 0x01 + .align 2 + .byte 0x16, 0x92, 0x01 + .align 2 + +gUnknown_847A024:: @ 847A024 + .byte 0x1d, 0x17, 0x1f, 0x01, 0x01 + .align 2 + .byte 0x11, 0x11, 0x34, 0x01, 0x01 + .align 2 + .byte 0x1d, 0x19, 0x4a, 0x01, 0x00 + .align 2 + .byte 0x20, 0x23, 0x4b, 0x00, 0x01 + .align 2 + .byte 0x26, 0x2e, 0x4c, 0x00, 0x01 + .align 2 + .byte 0x11, 0x11, 0x7e, 0x01, 0x01 + .align 2 + .byte 0x29, 0x2a, 0x7f, 0x00, 0x01 + .align 2 + .byte 0x1d, 0x19, 0x80, 0x01, 0x00 + .align 2 + .byte 0x18, 0x36, 0x81, 0x01, 0x00 + .align 2 + .byte 0x2e, 0x26, 0x82, 0x01, 0x00 + + .align 2 +gUnknown_847A074:: @ 847A074 + .byte 0x03, 0x06 + .align 2 + .byte 0x37, 0x06 + .align 2 + .byte 0x02, 0x06 + .align 2 + .byte 0x67, 0x01 + .align 2 + .byte 0x04, 0x01 + .align 2 + .byte 0x24, 0x04 + .align 2 + .byte 0x4a, 0x01 + .align 2 + .byte 0x26, 0x01 + .align 2 + .byte 0x2a, 0x00 + .align 2 + .byte 0x42, 0x03 + .align 2 + .byte 0x1b, 0x09 + .align 2 + .byte 0x4c, 0x03 + .align 2 + .byte 0x44, 0x03 + .align 2 + .byte 0x21, 0x04 + .align 2 + .byte 0x43, 0x03 + .align 2 + .byte 0x6a, 0x01 + .align 2 + .byte 0x5d, 0x05 + .align 2 + .byte 0x56, 0x05 + .align 2 + .byte 0x09, 0x05 + .align 2 + .byte 0x11, 0x04 + .align 2 + .byte 0x48, 0x03 + .align 2 + .byte 0x3c, 0x00 + .align 2 + .byte 0x29, 0x00 + .align 2 + .byte 0x5c, 0x09 + .align 2 + .byte 0x28, 0x09 + .align 2 + .byte 0x06, 0x0c + .align 2 + .byte 0x68, 0x0b + .align 2 + .byte 0x05, 0x0b + .align 2 + .byte 0x58, 0x0d + .align 2 + .byte 0x16, 0x0d + .align 2 + .byte 0x46, 0x08 + .align 2 + .byte 0x0f, 0x01 + .align 2 + .byte 0x3f, 0x03 + .align 2 + .byte 0x0e, 0x03 + .align 2 + .byte 0x5f, 0x04 + .align 2 + .byte 0x63, 0x04 + .align 2 + .byte 0x50, 0x04 + .align 2 + .byte 0x10, 0x04 + .align 2 + .byte 0x52, 0x03 + .align 2 + .byte 0x35, 0x04 + .align 2 + .byte 0x5b, 0x03 + .align 2 + .byte 0x14, 0x03 + .align 2 + .byte 0x3d, 0x00 + .align 2 + .byte 0x13, 0x00 + .align 2 + .byte 0x12, 0x0b + .align 2 + .byte 0x30, 0x07 + .align 2 + .byte 0x38, 0x07 + .align 2 + .byte 0x2f, 0x07 + .align 2 + .byte 0x3b, 0x01 + .align 2 + .byte 0x31, 0x01 + .align 2 + .byte 0x4e, 0x0b + .align 2 + .byte 0x3a, 0x00 + .align 2 + .byte 0x32, 0x00 + .align 2 + .byte 0x23, 0x03 + .align 2 + .byte 0x0d, 0x0d + .align 2 + .byte 0x0a, 0x03 + .align 2 + .byte 0x49, 0x01 + .align 2 + .byte 0x0c, 0x01 + .align 2 + .byte 0x69, 0x01 + .align 2 + .byte 0x0b, 0x01 + .align 2 + .byte 0x25, 0x01 + .align 2 + .byte 0x3e, 0x02 + .align 2 + .byte 0x27, 0x02 + .align 2 + .byte 0x65, 0x01 + .align 2 + .byte 0x2d, 0x01 + .align 2 + .byte 0x61, 0x01 + .align 2 + .byte 0x2b, 0x03 + .align 2 + .byte 0x66, 0x05 + .align 2 + .byte 0x2e, 0x05 + .align 2 + .byte 0x2c, 0x00 + .align 2 + .byte 0x5e, 0x02 + .align 2 + .byte 0x34, 0x02 + .align 2 + .byte 0x51, 0x00 + .align 2 + .byte 0x59, 0x00 + .align 2 + .byte 0x40, 0x03 + .align 2 + .byte 0x55, 0x06 + .align 2 + .byte 0x53, 0x06 + .align 2 + .byte 0x4b, 0x04 + .align 2 + .byte 0x15, 0x04 + .align 2 + .byte 0x1a, 0x09 + .align 2 + .byte 0x57, 0x0a + .align 2 + .byte 0x17, 0x01 + .align 2 + .byte 0x47, 0x03 + .align 2 + .byte 0x62, 0x01 + .align 2 + .byte 0x39, 0x00 + .align 2 + .byte 0x1d, 0x00 + .align 2 + .byte 0x1c, 0x04 + .align 2 + .byte 0x20, 0x00 + .align 2 + .byte 0x4f, 0x05 + .align 2 + .byte 0x22, 0x05 + .align 2 + .byte 0x45, 0x0b + .align 2 + .byte 0x1f, 0x0b + .align 2 + .byte 0x5a, 0x00 + .align 2 + .byte 0x1e, 0x00 + .align 2 + .byte 0x08, 0x00 + .align 2 + .byte 0x64, 0x02 + .align 2 + .byte 0x07, 0x02 + .align 2 + .byte 0x60, 0x08 + .align 2 + .byte 0x36, 0x08 + .align 2 + .byte 0x41, 0x0b + .align 2 + .byte 0x33, 0x0b + .align 2 + .byte 0x54, 0x00 + .align 2 + .byte 0x18, 0x01 + .align 2 + .byte 0x4d, 0x0b + .align 2 + .byte 0x19, 0x00 + + .align 2 +gUnknown_847A218:: @ 847A218 + @ window template + .byte 0x00, 0x03, 0x01, 0x1b, 0x12, 0x0f + .2byte 0x0001 + +gUnknown_847A220:: @ 847A220 + .byte 0xFF, 0, 0, 0, 0, 0 + .2byte 0 + +gUnknown_847A228:: + .4byte 0x70 + +gUnknown_847A22C:: @ 847A22C + .byte 0x00, 0x02, 0x03 + + .align 2 +gUnknown_847A230:: @ 847A230 + .4byte sub_815DD44 + .4byte sub_815DF54 + .4byte sub_815E160 + .4byte sub_815E1C0 + .4byte sub_815E1F0 + .4byte sub_815E218 + .4byte sub_815E28C + .4byte sub_815E394 + .4byte sub_815E408 + .4byte sub_815E4B0 + .4byte sub_815E56C + .4byte sub_815E5C4 + .4byte sub_815E5F0 + .4byte sub_815E658 + .4byte sub_815E720 + .4byte sub_815E88C + .4byte sub_815E8B4 + .4byte sub_815E8CC + .4byte sub_815E908 + .4byte sub_815E948 + .4byte sub_815E9C8 + +gUnknown_847A284:: @ 847A284 + .2byte 0x012a, 0x016e, 0x0176 + .2byte 0x012b, 0x016f, 0x0177 + .2byte 0x012c, 0x0170, 0x0178 + .2byte 0x012d, 0x0171, 0x0179 + .2byte 0x012e, 0x0172, 0x017a + .2byte 0x012f, 0x0173, 0x017b + .2byte 0x0130, 0x0174, 0x017c + .2byte 0x0131, 0x0175, 0x017d + +gUnknown_847A2B4:: @ 847A2B4 + .2byte 0x3f, 0x40, 0x41, 0x42, 0x43, 0x46, 0xb3, 0xb4, 0xb9, 0xba, 0xbb, 0xc6, 0xc7, 0xc9, 0xda + +gUnknown_847A2D2:: @ 847A2D2 + .2byte 0x011d + .2byte 0x011c + .2byte 0x011c + .2byte 0x011b + .2byte 0x011d + .2byte 0x011d + .2byte 0x011b + .2byte 0x011b + .2byte 0x011d + .2byte 0x011c + .2byte 0x011d + .2byte 0x011d + .2byte 0x011d + .2byte 0x011d + +gUnknown_847A2EE:: @ 847A2EE + .byte 0x00, 0x02 + .byte 0x01, 0x03 + .byte 0x02, 0x04 + .byte 0x03, 0x05 + .byte 0x04, 0x01 + .byte 0x05, 0x02 + .byte 0x00, 0x03 + .byte 0x01, 0x04 + +gUnknown_847A2FE:: @ 847A2FE + .byte 0x00, 0x01 + .byte 0x01, 0x03 + .byte 0x02, 0x00 + .byte 0x03, 0x04 + .byte 0x04, 0x02 + .byte 0x05, 0x02 + .byte 0x00, 0x03 + .byte 0x01, 0x05 + +gUnknown_847A30E:: @ 847A30E + .byte 0x00, 0x02 + .byte 0x04, 0x01 + .byte 0x03, 0x05 + .byte 0x02, 0x03 + .byte 0x01, 0x03 + .byte 0x04, 0x00 + .byte 0x04, 0x01 + .byte 0x02, 0x05 + .byte 0x00, 0x03 + .byte 0x00, 0x05 + .byte 0x02, 0x01 + .byte 0x04, 0x05 + .byte 0x00, 0x00 diff --git a/data/trainer_tower/trainers.inc b/data/trainer_tower/trainers.inc new file mode 100644 index 000000000..e2f7dd121 --- /dev/null +++ b/data/trainer_tower/trainers.inc @@ -0,0 +1,5113 @@ + .macro ivs hp, atk, def, speed, spatk, spdef, altability + .4byte \hp | (\atk << 5) | (\def << 10) | (\speed << 15) | (\spatk << 20) | (\spdef << 25) | (\altability << 31) + .endm + + .macro trainerid id, secret + .4byte \id | (\secret << 16) + .endm + + .macro dummy_tower_mon + .align 2 + .2byte SPECIES_NONE, ITEM_NONE + .2byte MOVE_NONE, MOVE_NONE, MOVE_NONE, MOVE_NONE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 0 @ OT ID + ivs 0, 0, 0, 0, 0, 0, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "$$$$$$$$$$$", 11 + .byte 0 @ friendship + .endm + + .macro dummy_tower_team + .string "$", 11 + .byte FACILITY_CLASS_AQUA_LEADER, 0x01, 0x00 + + .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + + dummy_tower_mon + dummy_tower_mon + dummy_tower_mon + dummy_tower_mon + dummy_tower_mon + dummy_tower_mon + .endm + + .align 2 +gUnknown_847ABAC:: + .byte 0x01, 0x08, 0x00, 0x07 + .string "COLE$", 11 + .byte FACILITY_CLASS_YOUNGSTER_2, 0x01, 0x00 + + .2byte EC_WORD_AHAHA, EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_GOING, EC_WORD_ANYWHERE, EC_WORD_EXCL + .2byte EC_WORD_ALL_RIGHT, EC_WORD_EXCL, EC_WORD_BYE_BYE, EC_WORD_EXCL, 0xFFFF, 0xFFFF + .2byte EC_WORD_HIYAH, EC_WORD_EXCL_EXCL, EC_WORD_DONE, EC_WORD_IN, EC_WORD_TOTALLY, EC_WORD_EXCL_EXCL + .2byte EC_WORD_TCH, EC_WORD_TCH, EC_WORD_YOU_RE, EC_WORD_TOO_STRONG, 0xFFFF, 0xFFFF + + .align 2 + .2byte SPECIES_RATICATE, ITEM_SITRUS_BERRY + .2byte MOVE_SHOCK_WAVE, MOVE_HYPER_FANG, MOVE_SCARY_FACE, MOVE_ENDEAVOR + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 0, 200, 0, 0, 200 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000016 @ personality + .string "RATICATE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MAGMAR, ITEM_SITRUS_BERRY + .2byte MOVE_FIRE_PUNCH, MOVE_SUNNY_DAY, MOVE_SMOG, MOVE_STRENGTH + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 0, 0, 210, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000056 @ personality + .string "MAGMAR$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MAGCARGO, ITEM_SITRUS_BERRY + .2byte MOVE_FLAMETHROWER, MOVE_AMNESIA, MOVE_BODY_SLAM, MOVE_HARDEN + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 200, 0, 0, 200, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000002 @ personality + .string "MAGCARGO$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PRIMEAPE, ITEM_SITRUS_BERRY + .2byte MOVE_OVERHEAT, MOVE_SEISMIC_TOSS, MOVE_SWAGGER, MOVE_KARATE_CHOP + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 0, 0, 210, 200, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000087 @ personality + .string "PRIMEAPE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GOLBAT, ITEM_SITRUS_BERRY + .2byte MOVE_GIGA_DRAIN, MOVE_CONFUSE_RAY, MOVE_SLUDGE_BOMB, MOVE_MEAN_LOOK + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 200, 0, 110, 200, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000081 @ personality + .string "GOLBAT$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SLOWBRO, ITEM_SITRUS_BERRY + .2byte MOVE_SUNNY_DAY, MOVE_YAWN, MOVE_FLAMETHROWER, MOVE_CONFUSION + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 0, 100, 0, 210, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000011 @ personality + .string "SLOWBRO$", 11 + .byte 255 @ friendship + + dummy_tower_team + dummy_tower_team + .byte 0xab, 0x6a, 0x01 + + .align 2 +gUnknown_847AF8C:: + .byte 0x02, 0x08, 0x00, 0x0d + .string "JAC$", 11 + .byte FACILITY_CLASS_BURGLAR, 0x01, 0x00 + + .2byte EC_WORD_I_AM, EC_WORD_A, EC_MOVE2(THIEF), EC_WORD_EXCL, EC_WORD_GIVE_ME, EC_WORD_SOMETHING + .2byte EC_WORD_YOU_VE, EC_WORD_GOT, EC_WORD_NOTHING, EC_WORD_THAT, EC_WORD_I, EC_WORD_WANT + .2byte EC_WORD_EEK, EC_WORD_EXCL_EXCL, EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_I, EC_WORD_SURRENDER + .2byte EC_WORD_I, EC_WORD_WILL, EC_WORD_STOP, EC_WORD_BEING, EC_WORD_A, EC_MOVE2(THIEF) + + .align 2 + .2byte SPECIES_MEOWTH, ITEM_LIECHI_BERRY + .2byte MOVE_SWAGGER, MOVE_SUBSTITUTE, MOVE_FAKE_OUT, MOVE_SLASH + .byte 0, 0x00 @ level, ppBonuses + .byte 200, 110, 0, 200, 0, 0 @ EVs + .align 2 + trainerid 138, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000008A @ personality + .string "MEOWTH$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_FLAREON, ITEM_PETAYA_BERRY + .2byte MOVE_FLAMETHROWER, MOVE_BITE, MOVE_SAND_ATTACK, MOVE_FIRE_SPIN + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 0, 200, 0, 200, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000007 @ personality + .string "FLAREON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PORYGON, ITEM_PETAYA_BERRY + .2byte MOVE_TRI_ATTACK, MOVE_RECYCLE, MOVE_PSYBEAM, MOVE_CONVERSION_2 + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 0, 210, 0, 200, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000007 @ personality + .string "PORYGON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CHANSEY, ITEM_LUCKY_PUNCH + .2byte MOVE_FLAMETHROWER, MOVE_LIGHT_SCREEN, MOVE_BODY_SLAM, MOVE_MINIMIZE + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000010 @ personality + .string "CHANSEY$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_FARFETCHD, ITEM_STICK + .2byte MOVE_KNOCK_OFF, MOVE_SWORDS_DANCE, MOVE_FLY, MOVE_SAND_ATTACK + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 100, 100, 100, 0, 110 @ EVs + .align 2 + trainerid 133, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000085 @ personality + .string "FARFETCH’D$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MR_MIME, ITEM_SCOPE_LENS + .2byte MOVE_SUBSTITUTE, MOVE_SHOCK_WAVE, MOVE_LIGHT_SCREEN, MOVE_BRICK_BREAK + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 255, 0, 0, 0 @ EVs + .align 2 + trainerid 130, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000082 @ personality + .string "MR. MIME$", 11 + .byte 255 @ friendship + + dummy_tower_team + dummy_tower_team + .byte 0x56, 0x64, 0x01 + + .align 2 +gUnknown_847B36C:: + .byte 0x03, 0x08, 0x00, 0x02 + .string "MILY$", 11 + .byte FACILITY_CLASS_PSYCHIC_4, 0x01, 0x00 + + .2byte EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_WORD_POKEMON, EC_MOVE2(SUPERPOWER), EC_WORD_EXCL + .2byte EC_WORD_ISN_T, EC_WORD_IT, EC_WORD_INCREDIBLE, EC_WORD_QUES, EC_WORD_POKEMON, EC_WORD_POWER + .2byte EC_WORD_THIS, EC_WORD_IS, EC_WORD_AN, EC_WORD_AWFUL, EC_MOVE(NIGHTMARE), EC_WORD_ELLIPSIS_EXCL + .2byte EC_WORD_THIS, EC_WORD_IS, EC_WORD_A, EC_WORD_DREAM, EC_WORD_NOTHING, EC_WORD_MORE + + .align 2 + .2byte SPECIES_CHANSEY, ITEM_ORAN_BERRY + .2byte MOVE_LIGHT_SCREEN, MOVE_EGG_BOMB, MOVE_MINIMIZE, MOVE_SECRET_POWER + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 255, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000008 @ personality + .string "CHANSEY$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CLEFABLE, ITEM_ORAN_BERRY + .2byte MOVE_METRONOME, MOVE_REFLECT, MOVE_SING, MOVE_POUND + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 0, 200, 0, 0, 200 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000016 @ personality + .string "CLEFABLE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_TOGETIC, ITEM_ORAN_BERRY + .2byte MOVE_METRONOME, MOVE_REFLECT, MOVE_SWEET_KISS, MOVE_PECK + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000016 @ personality + .string "TOGETIC$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_TOGETIC, ITEM_ORAN_BERRY + .2byte MOVE_METRONOME, MOVE_HIDDEN_POWER, MOVE_ATTRACT, MOVE_LIGHT_SCREEN + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 255, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000020 @ personality + .string "TOGETIC$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CHANSEY, ITEM_ORAN_BERRY + .2byte MOVE_FLAMETHROWER, MOVE_SOFT_BOILED, MOVE_LIGHT_SCREEN, MOVE_SECRET_POWER + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 255, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000005 @ personality + .string "CHANSEY$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CLEFABLE, ITEM_ORAN_BERRY + .2byte MOVE_REFLECT, MOVE_FLAMETHROWER, MOVE_SING, MOVE_BODY_SLAM + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 0, 200, 0, 200, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x000000C0 @ personality + .string "CLEFABLE$", 11 + .byte 255 @ friendship + + dummy_tower_team + dummy_tower_team + .byte 0xec, 0x64, 0x01 + + .align 2 +gUnknown_847B74C:: + .byte 0x04, 0x08, 0x01, 0x09 + .string "JOS & ANNE$", 11 + .byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00 + + .2byte EC_WORD_I, EC_WORD_CAN_T, EC_WORD_LOSE, EC_WORD_TO, EC_WORD_YOU, EC_WORD_HERE + .2byte EC_WORD_VERY, EC_WORD_WELL, EC_WORD_DONE, EC_WORD_EXCL, EC_WORD_GOOD, EC_WORD_BATTLE + .2byte EC_WORD_UNBELIEVABLE, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + .2byte EC_WORD_I_AM, EC_WORD_DISAPPOINTED, EC_WORD_BUT, EC_WORD_YOU, EC_WORD_WIN, EC_WORD_ELLIPSIS + + .align 2 + .2byte SPECIES_RAPIDASH, ITEM_WHITE_HERB + .2byte MOVE_BOUNCE, MOVE_OVERHEAT, MOVE_HYPNOSIS, MOVE_RETURN + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 100, 0, 110, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 1 @ IVs, ability + .4byte 0x00000010 @ personality + .string "RAPIDASH$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_NINETALES, ITEM_CHARCOAL + .2byte MOVE_CONFUSE_RAY, MOVE_WILL_O_WISP, MOVE_HEAT_WAVE, MOVE_DIG + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 0, 0, 200, 200, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000015 @ personality + .string "NINETALES$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MISDREAVUS, ITEM_LEFTOVERS + .2byte MOVE_GRUDGE, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_THUNDERBOLT + .byte 0, 0x00 @ level, ppBonuses + .byte 200, 0, 0, 210, 100, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x0000000A @ personality + .string "MISDREAVUS$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ALAKAZAM, ITEM_LEFTOVERS + .2byte MOVE_LIGHT_SCREEN, MOVE_RECOVER, MOVE_PSYCHIC, MOVE_THUNDER_PUNCH + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x0000000A @ personality + .string "ALAKAZAM$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_BLISSEY, ITEM_LEFTOVERS + .2byte MOVE_LIGHT_SCREEN, MOVE_ATTRACT, MOVE_RETURN, MOVE_PSYCHIC + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 1 @ IVs, ability + .4byte 0x00000016 @ personality + .string "BLISSEY$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CROBAT, ITEM_LEFTOVERS + .2byte MOVE_TOXIC, MOVE_FLY, MOVE_CONFUSE_RAY, MOVE_SHADOW_BALL + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 0, 100, 210, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000017 @ personality + .string "CROBAT$", 11 + .byte 255 @ friendship + + .string "JOS & ANNE$", 11 + .byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00 + + .2byte EC_WORD_HERE_GOES, EC_WORD_EXCL_EXCL, EC_WORD_GET, EC_WORD_READY, EC_WORD_TO, EC_WORD_LOSE + .2byte EC_WORD_PERFECT, EC_WORD_EXCL, EC_WORD_WE, EC_WORD_GET, EC_WORD_THE, EC_WORD_WIN + .2byte EC_WORD_LOST, EC_WORD_QUES_EXCL, EC_WORD_YOU, EC_WORD_MUST_BE, EC_WORD_JOKING, EC_WORD_EXCL + .2byte EC_WORD_HOW, EC_WORD_COULD, EC_WORD_I, EC_WORD_LOSE, EC_WORD_THIS, EC_WORD_QUES + + .align 2 + .2byte SPECIES_HOUNDOOM, ITEM_CHARCOAL + .2byte MOVE_TAUNT, MOVE_FLAMETHROWER, MOVE_WILL_O_WISP, MOVE_CRUNCH + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 255, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 1 @ IVs, ability + .4byte 0x00000082 @ personality + .string "HOUNDOOM$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_AERODACTYL, ITEM_LEFTOVERS + .2byte MOVE_ROAR, MOVE_FIRE_BLAST, MOVE_HYPER_BEAM, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 1 @ IVs, ability + .4byte 0x00000033 @ personality + .string "AERODACTYL$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ARCANINE, ITEM_CHARCOAL + .2byte MOVE_HEAT_WAVE, MOVE_EXTREME_SPEED, MOVE_ROAR, MOVE_DIG + .byte 0, 0x00 @ level, ppBonuses + .byte 210, 0, 0, 200, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000056 @ personality + .string "ARCANINE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_WEEZING, ITEM_LEFTOVERS + .2byte MOVE_EXPLOSION, MOVE_SMOKESCREEN, MOVE_SLUDGE_BOMB, MOVE_THUNDERBOLT + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 100, 100, 0, 100, 110 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x0000008E @ personality + .string "WEEZING$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CHARIZARD, ITEM_WHITE_HERB + .2byte MOVE_OVERHEAT, MOVE_OUTRAGE, MOVE_DRAGON_RAGE, MOVE_SMOKESCREEN + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 110, 0, 100, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000033 @ personality + .string "CHARIZARD$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GENGAR, ITEM_LEFTOVERS + .2byte MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_SHADOW_BALL, MOVE_THUNDERBOLT + .byte 0, 0x00 @ level, ppBonuses + .byte 55, 0, 100, 255, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000087 @ personality + .string "GENGAR$", 11 + .byte 255 @ friendship + + dummy_tower_team + .byte 0x08, 0x79, 0x01 + + .align 2 +gUnknown_847BB2C:: + .byte 0x05, 0x08, 0x01, 0x04 + .string "EMY & ALEK$", 11 + .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01, 0x00 + + .2byte EC_WORD_I_AM, EC_WORD_SO, EC_WORD_LOST, EC_WORD_IN, EC_WORD_LOVEY_DOVEY, EC_WORD_HAPPINESS + .2byte EC_WORD_OH, EC_WORD_OH, EC_WORD_HE, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_AWESOME + .2byte EC_WORD_AIYEEH, EC_WORD_EXCL_EXCL, EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_SERIOUS, EC_WORD_QUES + .2byte EC_WORD_WHO, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF, 0xFFFF + + .align 2 + .2byte SPECIES_TAUROS, ITEM_LUM_BERRY + .2byte MOVE_FLAMETHROWER, MOVE_REST, MOVE_SHOCK_WAVE, MOVE_DOUBLE_TEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000A @ personality + .string "TAUROS$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_KANGASKHAN, ITEM_LUM_BERRY + .2byte MOVE_FLAMETHROWER, MOVE_DIZZY_PUNCH, MOVE_REST, MOVE_FAKE_OUT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000002 @ personality + .string "KANGASKHAN$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_FEAROW, ITEM_LUM_BERRY + .2byte MOVE_DRILL_PECK, MOVE_TRI_ATTACK, MOVE_DOUBLE_EDGE, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 210, 100, 0, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000094 @ personality + .string "FEAROW$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_TOGETIC, ITEM_LUM_BERRY + .2byte MOVE_FLAMETHROWER, MOVE_LIGHT_SCREEN, MOVE_REST, MOVE_ANCIENT_POWER + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000024 @ personality + .string "TOGETIC$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PIDGEOT, ITEM_LUM_BERRY + .2byte MOVE_STEEL_WING, MOVE_FLY, MOVE_MIRROR_MOVE, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 110, 100, 100, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000D @ personality + .string "PIDGEOT$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_URSARING, ITEM_LUM_BERRY + .2byte MOVE_REST, MOVE_SNORE, MOVE_DIG, MOVE_SLASH + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000008A @ personality + .string "URSARING$", 11 + .byte 255 @ friendship + + .string "EMY & ALEK$", 11 + .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01, 0x00 + + .2byte EC_WORD_I_AM, EC_WORD_GIDDY, EC_WORD_WITH, EC_WORD_LOVEY_DOVEY, EC_WORD_JOY, EC_WORD_EXCL_EXCL + .2byte EC_WORD_SIGH, EC_WORD_ELLIPSIS, EC_WORD_MY, EC_WORD_GIRL, EC_WORD_IS, EC_WORD_CUTE + .2byte EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_SERIOUS + .2byte EC_WORD_WAIT, EC_WORD_ELLIPSIS, EC_WORD_WHO, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_QUES + + .align 2 + .2byte SPECIES_LICKITUNG, ITEM_SHELL_BELL + .2byte MOVE_FLAMETHROWER, MOVE_EARTHQUAKE, MOVE_REST, MOVE_SLEEP_TALK + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 100, 255, 0, 55, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000016 @ personality + .string "LICKITUNG$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_NOCTOWL, ITEM_SHELL_BELL + .2byte MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_REFLECT, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000B @ personality + .string "NOCTOWL$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_FURRET, ITEM_SHELL_BELL + .2byte MOVE_FLAMETHROWER, MOVE_AMNESIA, MOVE_SHOCK_WAVE, MOVE_SLASH + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x0000000E @ personality + .string "FURRET$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_RATICATE, ITEM_SHELL_BELL + .2byte MOVE_SUPER_FANG, MOVE_QUICK_ATTACK, MOVE_SWAGGER, MOVE_ENDEAVOR + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x0000008A @ personality + .string "RATICATE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_WIGGLYTUFF, ITEM_SHELL_BELL + .2byte MOVE_SUNNY_DAY, MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_BODY_SLAM + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000B @ personality + .string "WIGGLYTUFF$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PORYGON2, ITEM_SHELL_BELL + .2byte MOVE_THUNDERBOLT, MOVE_CONVERSION_2, MOVE_TRI_ATTACK, MOVE_RECOVER + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000A @ personality + .string "PORYGON2$", 11 + .byte 255 @ friendship + + dummy_tower_team + .byte 0x3b, 0x5d, 0x01 + + .align 2 +gUnknown_847BF0C:: + .byte 0x06, 0x08, 0x01, 0x00 + .string "JO & HALEY$", 11 + .byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00 + + .2byte EC_WORD_WE_RE, EC_WORD_USING, EC_WORD_THAT, EC_WORD_STRATEGY, EC_WORD_OKAY, EC_WORD_QUES + .2byte EC_WORD_YAY, EC_WORD_WE, EC_WORD_WON, EC_WORD_EXCL, EC_WORD_SORRY, EC_WORD_EXCL + .2byte EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_THAT_WAS, EC_WORD_REALLY, EC_WORD_TERRIBLE, EC_WORD_EXCL + .2byte EC_WORD_ALL, EC_WORD_I, EC_WORD_DO, EC_WORD_IS, EC_WORD_LOSE, EC_WORD_ELLIPSIS + + .align 2 + .2byte SPECIES_SNEASEL, ITEM_SALAC_BERRY + .2byte MOVE_SHADOW_BALL, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 200, 0, 50, 210, 0, 50 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x0000000D @ personality + .string "SNEASEL$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ALAKAZAM, ITEM_SALAC_BERRY + .2byte MOVE_FIRE_PUNCH, MOVE_RECOVER, MOVE_PSYCHIC, MOVE_SUNNY_DAY + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 255, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000005 @ personality + .string "ALAKAZAM$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_HITMONTOP, ITEM_SALAC_BERRY + .2byte MOVE_MEGA_KICK, MOVE_ENDEAVOR, MOVE_DIG, MOVE_SUNNY_DAY + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 210, 0, 200, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000008 @ personality + .string "HITMONTOP$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GIRAFARIG, ITEM_SALAC_BERRY + .2byte MOVE_LIGHT_SCREEN, MOVE_SUNNY_DAY, MOVE_SHADOW_BALL, MOVE_PSYBEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x0000000A @ personality + .string "GIRAFARIG$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_XATU, ITEM_SALAC_BERRY + .2byte MOVE_SUNNY_DAY, MOVE_DRILL_PECK, MOVE_CONFUSE_RAY, MOVE_PSYCHIC + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 0, 100, 100, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000014 @ personality + .string "XATU$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MR_MIME, ITEM_SALAC_BERRY + .2byte MOVE_REFLECT, MOVE_SUNNY_DAY, MOVE_PSYCHIC, MOVE_SHOCK_WAVE + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 0, 200, 200, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000005 @ personality + .string "MR. MIME$", 11 + .byte 255 @ friendship + + .string "JO & HALEY$", 11 + .byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00 + + .2byte EC_WORD_YOU, EC_WORD_YOU, EC_WORD_YOU, EC_WORD_BETTER, EC_WORD_NOT, EC_WORD_WIN + .2byte EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_JOKING, EC_WORD_QUES, EC_WORD_WE, EC_WORD_WON + .2byte EC_WORD_WIMPY, EC_WORD_ELLIPSIS, EC_WORD_WE, EC_WORD_WERE, EC_WORD_WEAK, EC_WORD_ELLIPSIS + .2byte EC_WORD_HAHAHA, EC_WORD_ELLIPSIS, EC_WORD_WE_RE, EC_WORD_TOTALLY, EC_WORD_USELESS, EC_WORD_ELLIPSIS + + .align 2 + .2byte SPECIES_HYPNO, ITEM_FOCUS_BAND + .2byte MOVE_FIRE_PUNCH, MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_NIGHTMARE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000087 @ personality + .string "HYPNO$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_HITMONCHAN, ITEM_FOCUS_BAND + .2byte MOVE_FIRE_PUNCH, MOVE_THUNDER_PUNCH, MOVE_ICE_PUNCH, MOVE_DETECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000F @ personality + .string "HITMONCHAN$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MACHAMP, ITEM_FOCUS_BAND + .2byte MOVE_FLAMETHROWER, MOVE_BRICK_BREAK, MOVE_SCARY_FACE, MOVE_DIG + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000043 @ personality + .string "MACHAMP$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_HOUNDOOM, ITEM_FOCUS_BAND + .2byte MOVE_ROAR, MOVE_FLAMETHROWER, MOVE_BITE, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000087 @ personality + .string "HOUNDOOM$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PRIMEAPE, ITEM_FOCUS_BAND + .2byte MOVE_OVERHEAT, MOVE_SWAGGER, MOVE_SEISMIC_TOSS, MOVE_DOUBLE_TEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 0, 100, 100, 110, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000008C @ personality + .string "PRIMEAPE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_HERACROSS, ITEM_FOCUS_BAND + .2byte MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_COUNTER, MOVE_LEER + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 0, 200, 0, 0, 200 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000085 @ personality + .string "HERACROSS$", 11 + .byte 255 @ friendship + + dummy_tower_team + .byte 0xb1, 0x60, 0x01 + + .align 2 +gUnknown_847C2EC:: + .byte 0x07, 0x08, 0x02, 0x0c + .string "JORDY$", 11 + .byte FACILITY_CLASS_BIKER, 0x03, 0x00 + + .2byte EC_WORD_DON_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_GIGGLE, EC_WORD_YOU, EC_WORD_PUSHOVER + .2byte EC_WORD_WHAT, EC_WORD_A_LITTLE, EC_WORD_PUSHOVER, EC_WORD_YOU, EC_WORD_ARE, EC_WORD_EXCL + .2byte EC_WORD_YOU, EC_WORD_WERE, EC_WORD_READY, EC_WORD_TO, EC_WORD_ROCK, EC_WORD_EXCL + .2byte EC_WORD_DARN, EC_WORD_EXCL, EC_WORD_I, EC_WORD_DON_T, EC_WORD_GET, EC_WORD_IT + + .align 2 + .2byte SPECIES_MAGBY, ITEM_LAX_INCENSE + .2byte MOVE_SMOKESCREEN, MOVE_CONFUSE_RAY, MOVE_FLAMETHROWER, MOVE_SCREECH + .byte 0, 0x00 @ level, ppBonuses + .byte 210, 30, 30, 0, 210, 30 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000043 @ personality + .string "MAGBY$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_CLEFFA, ITEM_LAX_INCENSE + .2byte MOVE_ATTRACT, MOVE_CHARM, MOVE_SECRET_POWER, MOVE_FLASH + .byte 0, 0x00 @ level, ppBonuses + .byte 210, 210, 30, 0, 30, 30 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x000000CA @ personality + .string "CLEFFA$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_IGGLYBUFF, ITEM_LAX_INCENSE + .2byte MOVE_SING, MOVE_HIDDEN_POWER, MOVE_CHARM, MOVE_DOUBLE_TEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 210, 0, 45, 210, 0, 45 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x000000D2 @ personality + .string "IGGLYBUFF$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SMOOCHUM, ITEM_LAX_INCENSE + .2byte MOVE_FAKE_TEARS, MOVE_PSYCHIC, MOVE_MEAN_LOOK, MOVE_SING + .byte 0, 0x00 @ level, ppBonuses + .byte 210, 0, 45, 0, 210, 45 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000011 @ personality + .string "SMOOCHUM$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_TOGEPI, ITEM_LAX_INCENSE + .2byte MOVE_SWEET_KISS, MOVE_YAWN, MOVE_ANCIENT_POWER, MOVE_DOUBLE_TEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 210, 210, 45, 0, 0, 45 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000034 @ personality + .string "TOGEPI$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_PICHU, ITEM_LAX_INCENSE + .2byte MOVE_THUNDER_WAVE, MOVE_SHOCK_WAVE, MOVE_SWEET_KISS, MOVE_FLASH + .byte 0, 0x00 @ level, ppBonuses + .byte 210, 0, 45, 0, 210, 45 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000008E @ personality + .string "PICHU$", 11 + .byte 0 @ friendship + + .string "ERNEST$", 11 + .byte FACILITY_CLASS_BIKER, 0x01, 0x00 + + .2byte EC_WORD_IT_S, EC_WORD_SLEEP, EC_WORD_TIME, EC_WORD_FOR, EC_WORD_CHILDREN, EC_WORD_EXCL + .2byte EC_WORD_NOT, EC_WORD_GUTSY, EC_WORD_ENOUGH, 0xFFFF, 0xFFFF, 0xFFFF + .2byte EC_WORD_WHY, EC_WORD_DID, EC_WORD_YOU, EC_WORD_CRUSH, EC_WORD_ME, EC_WORD_QUES + .2byte EC_WORD_I_AM, EC_WORD_BEAT, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_WORD_NAP + + .align 2 + .2byte SPECIES_CLEFFA, ITEM_QUICK_CLAW + .2byte MOVE_SWEET_KISS, MOVE_FRUSTRATION, MOVE_SING, MOVE_ATTRACT + .byte 0, 0x00 @ level, ppBonuses + .byte 210, 210, 45, 0, 0, 45 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x000000CA @ personality + .string "CLEFFA$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_MAGBY, ITEM_QUICK_CLAW + .2byte MOVE_FRUSTRATION, MOVE_CONFUSE_RAY, MOVE_FLAMETHROWER, MOVE_TOXIC + .byte 0, 0x00 @ level, ppBonuses + .byte 90, 210, 0, 0, 210, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000004D @ personality + .string "MAGBY$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_TOGEPI, ITEM_QUICK_CLAW + .2byte MOVE_FRUSTRATION, MOVE_DOUBLE_TEAM, MOVE_TOXIC, MOVE_SWEET_KISS + .byte 0, 0x00 @ level, ppBonuses + .byte 210, 210, 45, 0, 0, 45 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000034 @ personality + .string "TOGEPI$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_SMOOCHUM, ITEM_QUICK_CLAW + .2byte MOVE_MEAN_LOOK, MOVE_PERISH_SONG, MOVE_TOXIC, MOVE_FLASH + .byte 0, 0x00 @ level, ppBonuses + .byte 90, 0, 210, 0, 0, 210 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000016 @ personality + .string "SMOOCHUM$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_IGGLYBUFF, ITEM_QUICK_CLAW + .2byte MOVE_DOUBLE_TEAM, MOVE_SWEET_KISS, MOVE_SEISMIC_TOSS, MOVE_FLASH + .byte 0, 0x00 @ level, ppBonuses + .byte 210, 0, 45, 210, 0, 45 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000000A @ personality + .string "IGGLYBUFF$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_PICHU, ITEM_QUICK_CLAW + .2byte MOVE_TAIL_WHIP, MOVE_FRUSTRATION, MOVE_ATTRACT, MOVE_THUNDER_WAVE + .byte 0, 0x00 @ level, ppBonuses + .byte 90, 210, 0, 210, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000080 @ personality + .string "PICHU$", 11 + .byte 0 @ friendship + + .string "GABRIEL$", 11 + .byte FACILITY_CLASS_CUE_BALL, 0x01, 0x00 + + .2byte EC_WORD_YAHOO, EC_WORD_EXCL, EC_WORD_HERE_I_COME, EC_WORD_TO, EC_WORD_SWARM, EC_WORD_YOU + .2byte EC_WORD_I_AM, EC_WORD_INVINCIBLE, EC_WORD_YOU, EC_WORD_GOT, EC_WORD_THAT, EC_WORD_QUES + .2byte EC_WORD_WHAT, EC_WORD_WAS, EC_WORD_THAT, EC_WORD_QUES, 0xFFFF, 0xFFFF + .2byte EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_WIN, EC_WORD_NEXT, EC_WORD_TIME + + .align 2 + .2byte SPECIES_PICHU, ITEM_BRIGHT_POWDER + .2byte MOVE_THUNDER_WAVE, MOVE_FRUSTRATION, MOVE_THUNDERBOLT, MOVE_ATTRACT + .byte 0, 0x00 @ level, ppBonuses + .byte 90, 210, 0, 0, 210, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000081 @ personality + .string "PICHU$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_TOGEPI, ITEM_BRIGHT_POWDER + .2byte MOVE_ATTRACT, MOVE_FRUSTRATION, MOVE_TOXIC, MOVE_SUBSTITUTE + .byte 0, 0x00 @ level, ppBonuses + .byte 210, 210, 0, 0, 0, 90 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000033 @ personality + .string "TOGEPI$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_CLEFFA, ITEM_BRIGHT_POWDER + .2byte MOVE_ENCORE, MOVE_TOXIC, MOVE_DOUBLE_TEAM, MOVE_FLASH + .byte 0, 0x00 @ level, ppBonuses + .byte 210, 0, 150, 0, 0, 150 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x000000CF @ personality + .string "CLEFFA$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_IGGLYBUFF, ITEM_BRIGHT_POWDER + .2byte MOVE_ATTRACT, MOVE_SUBSTITUTE, MOVE_SING, MOVE_PERISH_SONG + .byte 0, 0x00 @ level, ppBonuses + .byte 210, 0, 210, 0, 0, 90 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x000000CF @ personality + .string "IGGLYBUFF$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_SMOOCHUM, ITEM_BRIGHT_POWDER + .2byte MOVE_SWEET_KISS, MOVE_PERISH_SONG, MOVE_TOXIC, MOVE_ATTRACT + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 0, 200, 0, 0, 200 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000016 @ personality + .string "SMOOCHUM$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_MAGBY, ITEM_BRIGHT_POWDER + .2byte MOVE_LEER, MOVE_FRUSTRATION, MOVE_SUBSTITUTE, MOVE_FLAMETHROWER + .byte 0, 0x00 @ level, ppBonuses + .byte 90, 210, 0, 0, 210, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000004D @ personality + .string "MAGBY$", 11 + .byte 0 @ friendship + + .byte 0x4a, 0x7a, 0x01 + + .align 2 +gUnknown_847C6CC:: + .byte 0x08, 0x08, 0x02, 0x0e + .string "MIKE$", 11 + .byte FACILITY_CLASS_HIKER_2, 0x05, 0x00 + + .2byte EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_FULL, EC_WORD_OF, EC_WORD_POWER + .2byte EC_WORD_WHAT_S_UP_QUES, EC_WORD_WHERE, EC_WORD_IS, EC_WORD_YOUR, EC_WORD_POWER, EC_WORD_QUES + .2byte EC_WORD_YOU, EC_WORD_GOT, EC_WORD_ME, EC_WORD_WITH, EC_WORD_YOUR, EC_MOVE2(FAKE_OUT) + .2byte EC_WORD_OH_YEAH, EC_WORD_EXCL, EC_WORD_THAT_S, EC_WORD_PRETTY, EC_WORD_EXCELLENT, EC_WORD_EXCL + + .align 2 + .2byte SPECIES_PINSIR, ITEM_SCOPE_LENS + .2byte MOVE_GUILLOTINE, MOVE_BRICK_BREAK, MOVE_DIG, MOVE_REVENGE + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 210, 0, 100, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000080 @ personality + .string "PINSIR$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CHARIZARD, ITEM_SCOPE_LENS + .2byte MOVE_DRAGON_CLAW, MOVE_METAL_CLAW, MOVE_AERIAL_ACE, MOVE_OUTRAGE + .byte 0, 0x00 @ level, ppBonuses + .byte 200, 200, 0, 110, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000035 @ personality + .string "CHARIZARD$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_RHYDON, ITEM_SCOPE_LENS + .2byte MOVE_MEGAHORN, MOVE_HORN_DRILL, MOVE_CRUSH_CLAW, MOVE_BRICK_BREAK + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 210, 200, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000009 @ personality + .string "RHYDON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ARCANINE, ITEM_SCOPE_LENS + .2byte MOVE_EXTREME_SPEED, MOVE_IRON_TAIL, MOVE_AERIAL_ACE, MOVE_DIG + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 200, 0, 200, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000003F @ personality + .string "ARCANINE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GOLEM, ITEM_SCOPE_LENS + .2byte MOVE_DOUBLE_EDGE, MOVE_ROLLOUT, MOVE_BRICK_BREAK, MOVE_DIG + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 210, 200, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000002 @ personality + .string "GOLEM$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_HOUNDOOM, ITEM_SCOPE_LENS + .2byte MOVE_CRUNCH, MOVE_REVERSAL, MOVE_DOUBLE_EDGE, MOVE_COUNTER + .byte 0, 0x00 @ level, ppBonuses + .byte 200, 110, 200, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 1 @ IVs, ability + .4byte 0x00000008 @ personality + .string "HOUNDOOM$", 11 + .byte 255 @ friendship + + .string "REBECCA$", 11 + .byte FACILITY_CLASS_CRUSH_GIRL, 0x05, 0x00 + + .2byte EC_WORD_I, EC_WORD_WILL, EC_WORD_WIN, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF + .2byte EC_WORD_IT_S, EC_WORD_TOO, EC_WORD_BAD, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_OVERWHELMING + .2byte EC_WORD_ARRGH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + .2byte EC_WORD_YOU, EC_WORD_ANGER, EC_WORD_ME, EC_WORD_BUT, EC_WORD_YOU_RE, EC_WORD_TOUGH + + .align 2 + .2byte SPECIES_SANDSLASH, ITEM_SILK_SCARF + .2byte MOVE_CRUSH_CLAW, MOVE_DIG, MOVE_DOUBLE_EDGE, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000000D @ personality + .string "SANDSLASH$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_DRAGONAIR, ITEM_SILK_SCARF + .2byte MOVE_OUTRAGE, MOVE_IRON_TAIL, MOVE_DOUBLE_EDGE, MOVE_SLAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000003 @ personality + .string "DRAGONAIR$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_RAPIDASH, ITEM_SILK_SCARF + .2byte MOVE_BOUNCE, MOVE_IRON_TAIL, MOVE_THRASH, MOVE_DOUBLE_EDGE + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 100, 100, 100, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 1 @ IVs, ability + .4byte 0x00000094 @ personality + .string "RAPIDASH$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_FLAREON, ITEM_SILK_SCARF + .2byte MOVE_IRON_TAIL, MOVE_FLAIL, MOVE_BITE, MOVE_DOUBLE_EDGE + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 255, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000021 @ personality + .string "FLAREON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_NIDOQUEEN, ITEM_SILK_SCARF + .2byte MOVE_SUPERPOWER, MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_COUNTER + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 100, 100, 100, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000017 @ personality + .string "NIDOQUEEN$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PERSIAN, ITEM_SILK_SCARF + .2byte MOVE_RETURN, MOVE_AERIAL_ACE, MOVE_IRON_TAIL, MOVE_DIG + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 200, 0, 200, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000080 @ personality + .string "PERSIAN$", 11 + .byte 255 @ friendship + + .string "NICOLAS$", 11 + .byte FACILITY_CLASS_BLACK_BELT_2, 0x05, 0x00 + + .2byte EC_WORD_THIS, EC_WORD_IS, EC_WORD_WHERE, EC_WORD_YOU, EC_WORD_STOP, EC_WORD_EXCL + .2byte EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_EVER, EC_WORD_BEAT, EC_WORD_ME + .2byte EC_WORD_WHY, EC_WORD_COULDN_T, EC_WORD_I, EC_WORD_BEAT, EC_WORD_YOU, EC_WORD_QUES + .2byte EC_WORD_I, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_TRAIN, EC_WORD_SOME, EC_WORD_MORE + + .align 2 + .2byte SPECIES_HITMONLEE, ITEM_KINGS_ROCK + .2byte MOVE_MEGA_KICK, MOVE_REVERSAL, MOVE_FOCUS_PUNCH, MOVE_BRICK_BREAK + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000008 @ personality + .string "HITMONLEE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SCYTHER, ITEM_KINGS_ROCK + .2byte MOVE_SLASH, MOVE_REVERSAL, MOVE_STEEL_WING, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000017 @ personality + .string "SCYTHER$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MAGMAR, ITEM_KINGS_ROCK + .2byte MOVE_FIRE_PUNCH, MOVE_THUNDER_PUNCH, MOVE_BRICK_BREAK, MOVE_IRON_TAIL + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 100, 100, 100, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000053 @ personality + .string "MAGMAR$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MACHAMP, ITEM_KINGS_ROCK + .2byte MOVE_DYNAMIC_PUNCH, MOVE_DIG, MOVE_CROSS_CHOP, MOVE_REVENGE + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000003F @ personality + .string "MACHAMP$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PRIMEAPE, ITEM_KINGS_ROCK + .2byte MOVE_THRASH, MOVE_CROSS_CHOP, MOVE_IRON_TAIL, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 200, 110, 0, 200 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000008 @ personality + .string "PRIMEAPE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_POLIWRATH, ITEM_KINGS_ROCK + .2byte MOVE_BODY_SLAM, MOVE_DIG, MOVE_MEGA_KICK, MOVE_COUNTER + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 100, 100, 100, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000000D @ personality + .string "POLIWRATH$", 11 + .byte 255 @ friendship + + .byte 0x05, 0x6f, 0x01 + + .align 2 +gUnknown_847CAAC:: + .byte 0x09, 0x08, 0x00, 0x00 + .string "JOEY$", 11 + .byte FACILITY_CLASS_CAMPER_2, 0x01, 0x00 + + .2byte EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SCARY, EC_WORD_STRONG, EC_WORD_EXCL + .2byte EC_WORD_WERE, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_QUES + .2byte EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_WAY, EC_WORD_TOO_STRONG, EC_WORD_EXCL + .2byte EC_WORD_THE, EC_WORD_WAY, EC_WORD_POKEMON, EC_WORD_MATCH_UP, EC_WORD_IS, EC_WORD_IMPORTANT + + .align 2 + .2byte SPECIES_MURKROW, ITEM_BLACK_GLASSES + .2byte MOVE_FAINT_ATTACK, MOVE_AERIAL_ACE, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000089 @ personality + .string "MURKROW$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_TAUROS, ITEM_SILK_SCARF + .2byte MOVE_EARTHQUAKE, MOVE_BODY_SLAM, MOVE_ROCK_TOMB, MOVE_PURSUIT + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000C @ personality + .string "TAUROS$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SLOWBRO, ITEM_MYSTIC_WATER + .2byte MOVE_AMNESIA, MOVE_PSYCHIC, MOVE_SURF, MOVE_ICE_BEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000089 @ personality + .string "SLOWBRO$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ARBOK, ITEM_POISON_BARB + .2byte MOVE_IRON_TAIL, MOVE_SLUDGE_BOMB, MOVE_ROCK_SLIDE, MOVE_TOXIC + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000089 @ personality + .string "ARBOK$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_NIDOKING, ITEM_SOFT_SAND + .2byte MOVE_EARTHQUAKE, MOVE_MEGAHORN, MOVE_SLUDGE_BOMB, MOVE_ROCK_SLIDE + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000C @ personality + .string "NIDOKING$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_RAPIDASH, ITEM_CHARCOAL + .2byte MOVE_FLAMETHROWER, MOVE_BOUNCE, MOVE_QUICK_ATTACK, MOVE_DOUBLE_KICK + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000089 @ personality + .string "RAPIDASH$", 11 + .byte 255 @ friendship + + dummy_tower_team + dummy_tower_team + .byte 0x17, 0x64, 0x01 + + .align 2 +gUnknown_847CE8C:: + .byte 0x0a, 0x08, 0x00, 0x0c + .string "LILY$", 11 + .byte FACILITY_CLASS_PKMN_BREEDER_3, 0x01, 0x00 + + .2byte EC_WORD_I, EC_WORD_WANT, EC_WORD_SOMETHING, EC_WORD_IN, EC_MOVE(RETURN), EC_WORD_EXCL + .2byte EC_WORD_I, EC_WORD_BELIEVE, EC_WORD_IN, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_EXCL + .2byte EC_WORD_I, EC_WORD_NEED, EC_WORD_SOMETHING, EC_WORD_IN, EC_MOVE(RETURN), EC_WORD_ELLIPSIS + .2byte EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_HAVE, EC_WORD_MY, EC_WORD_TRUST, EC_WORD_FOREVER + + .align 2 + .2byte SPECIES_CLEFAIRY, ITEM_SITRUS_BERRY + .2byte MOVE_CHARM, MOVE_METRONOME, MOVE_RETURN, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000000C @ personality + .string "CLEFAIRY$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_TOGEPI, ITEM_SITRUS_BERRY + .2byte MOVE_CHARM, MOVE_METRONOME, MOVE_RETURN, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x0000000C @ personality + .string "TOGEPI$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MEOWTH, ITEM_SILK_SCARF + .2byte MOVE_CHARM, MOVE_ASSIST, MOVE_RETURN, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000089 @ personality + .string "MEOWTH$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_JIGGLYPUFF, ITEM_SILK_SCARF + .2byte MOVE_CHARM, MOVE_ROLLOUT, MOVE_RETURN, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000000C @ personality + .string "JIGGLYPUFF$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SNORLAX, ITEM_LEFTOVERS + .2byte MOVE_CHARM, MOVE_ROLLOUT, MOVE_RETURN, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000025 @ personality + .string "SNORLAX$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SNUBBULL, ITEM_LEFTOVERS + .2byte MOVE_CHARM, MOVE_LICK, MOVE_RETURN, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000000C @ personality + .string "SNUBBULL$", 11 + .byte 255 @ friendship + + dummy_tower_team + dummy_tower_team + .byte 0xb7, 0x6c, 0x01 + + .align 2 +gUnknown_847D26C:: + .byte 0x0b, 0x08, 0x00, 0x0e + .string "BRANDON$", 11 + .byte FACILITY_CLASS_BUG_CATCHER_2, 0x01, 0x00 + + .2byte EC_WORD_POISON, EC_WORD_IS, EC_WORD_JUST, EC_WORD_SO, EC_WORD_AWFUL, EC_WORD_ISN_T_IT_QUES + .2byte EC_WORD_SEE, EC_WORD_QUES, EC_WORD_ISN_T, EC_WORD_POISON, EC_WORD_TERRIBLE, EC_WORD_QUES + .2byte EC_WORD_HUH_QUES, EC_WORD_OUR, EC_WORD_POISON, EC_WORD_DIDN_T, EC_WORD_WORK, EC_WORD_QUES + .2byte EC_WORD_POISON, EC_WORD_IS, EC_WORD_A, EC_WORD_TERRIBLE, EC_MOVE(TORMENT), EC_WORD_ISN_T_IT_QUES + + .align 2 + .2byte SPECIES_BUTTERFREE, ITEM_BRIGHT_POWDER + .2byte MOVE_SILVER_WIND, MOVE_SLEEP_POWDER, MOVE_PSYCHIC, MOVE_SUPERSONIC + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000008A @ personality + .string "BUTTERFREE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_BEEDRILL, ITEM_BRIGHT_POWDER + .2byte MOVE_SLUDGE_BOMB, MOVE_TWINEEDLE, MOVE_DOUBLE_TEAM, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000008A @ personality + .string "BEEDRILL$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PARASECT, ITEM_BRIGHT_POWDER + .2byte MOVE_GIGA_DRAIN, MOVE_LIGHT_SCREEN, MOVE_STUN_SPORE, MOVE_SLASH + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000008A @ personality + .string "PARASECT$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_YANMA, ITEM_BRIGHT_POWDER + .2byte MOVE_HYPNOSIS, MOVE_SONIC_BOOM, MOVE_QUICK_ATTACK, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 1 @ IVs, ability + .4byte 0x0000008A @ personality + .string "YANMA$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SHUCKLE, ITEM_SITRUS_BERRY + .2byte MOVE_TOXIC, MOVE_ROCK_TOMB, MOVE_PROTECT, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000008A @ personality + .string "SHUCKLE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_FORRETRESS, ITEM_SITRUS_BERRY + .2byte MOVE_TOXIC, MOVE_GIGA_DRAIN, MOVE_PROTECT, MOVE_SANDSTORM + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000008A @ personality + .string "FORRETRESS$", 11 + .byte 255 @ friendship + + dummy_tower_team + dummy_tower_team + .byte 0x1f, 0x6e, 0x01 + + .align 2 +gUnknown_847D64C:: + .byte 0x0c, 0x08, 0x01, 0x02 + .string "RIC & RENE$", 11 + .byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00 + + .2byte EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_AWESOME + .2byte EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_IS, EC_WORD_TOO, EC_WORD_AWESOME + .2byte EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_ISN_T, EC_WORD_AWESOME, EC_WORD_QUES + .2byte EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_FIGHT, EC_WORD_EXCL, 0xFFFF, 0xFFFF + + .align 2 + .2byte SPECIES_HITMONLEE, ITEM_SCOPE_LENS + .2byte MOVE_ROCK_TOMB, MOVE_HI_JUMP_KICK, MOVE_BULK_UP, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000002 @ personality + .string "HITMONLEE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_RHYDON, ITEM_SHELL_BELL + .2byte MOVE_MEGAHORN, MOVE_ROCK_BLAST, MOVE_BRICK_BREAK, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000007F @ personality + .string "RHYDON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GOLEM, ITEM_SCOPE_LENS + .2byte MOVE_BRICK_BREAK, MOVE_ROCK_BLAST, MOVE_DIG, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000002 @ personality + .string "GOLEM$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MAGMAR, ITEM_SHELL_BELL + .2byte MOVE_FIRE_PUNCH, MOVE_BRICK_BREAK, MOVE_CONFUSE_RAY, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 255, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000004F @ personality + .string "MAGMAR$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_HERACROSS, ITEM_FOCUS_BAND + .2byte MOVE_MEGAHORN, MOVE_BRICK_BREAK, MOVE_ROCK_TOMB, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000007F @ personality + .string "HERACROSS$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_POLIWRATH, ITEM_SCOPE_LENS + .2byte MOVE_FOCUS_PUNCH, MOVE_SURF, MOVE_BULK_UP, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 255, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000097 @ personality + .string "POLIWRATH$", 11 + .byte 255 @ friendship + + .string "RIC & RENE$", 11 + .byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00 + + .2byte EC_WORD_I_AM, EC_WORD_REALLY, EC_WORD_AWESOME, EC_WORD_EXCL, 0xFFFF, 0xFFFF + .2byte EC_WORD_I_AM, EC_WORD_TOO, EC_WORD_AWESOME, EC_WORD_EXCL, 0xFFFF, 0xFFFF + .2byte EC_WORD_HUH_QUES, 0xFFFF, EC_WORD_I_AM, EC_WORD_NOT_VERY, EC_WORD_AWESOME, EC_WORD_QUES + .2byte EC_WORD_I, EC_WORD_WILL, EC_WORD_DO, EC_WORD_MY, EC_WORD_BEST, EC_WORD_EXCL + + .align 2 + .2byte SPECIES_MACHAMP, ITEM_SCOPE_LENS + .2byte MOVE_CROSS_CHOP, MOVE_SEISMIC_TOSS, MOVE_ROCK_TOMB, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000004E @ personality + .string "MACHAMP$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PINSIR, ITEM_FOCUS_BAND + .2byte MOVE_ROCK_TOMB, MOVE_SEISMIC_TOSS, MOVE_SUBMISSION, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000080 @ personality + .string "PINSIR$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MAROWAK, ITEM_SHELL_BELL + .2byte MOVE_BRICK_BREAK, MOVE_BONEMERANG, MOVE_AERIAL_ACE, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000003 @ personality + .string "MAROWAK$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_HITMONCHAN, ITEM_SCOPE_LENS + .2byte MOVE_MACH_PUNCH, MOVE_THUNDER_PUNCH, MOVE_DOUBLE_TEAM, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000003 @ personality + .string "HITMONCHAN$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ELECTABUZZ, ITEM_SHELL_BELL + .2byte MOVE_THUNDER_PUNCH, MOVE_BRICK_BREAK, MOVE_THUNDER_WAVE, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 255, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000004F @ personality + .string "ELECTABUZZ$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_POLIWRATH, ITEM_SCOPE_LENS + .2byte MOVE_FOCUS_PUNCH, MOVE_SURF, MOVE_BULK_UP, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 255, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000097 @ personality + .string "POLIWRATH$", 11 + .byte 255 @ friendship + + dummy_tower_team + .byte 0xb4, 0x66, 0x01 + + .align 2 +gUnknown_847DA2C:: + .byte 0x0d, 0x08, 0x01, 0x0d + .string "JEN & KIRA$", 11 + .byte FACILITY_CLASS_TWINS_2, 0x05, 0x00 + + .2byte EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_TRY, EC_WORD_HARD, EC_WORD_EXCL + .2byte EC_WORD_EHEHE, EC_WORD_YAY, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + .2byte EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + .2byte EC_WORD_I, EC_WORD_WILL, EC_WORD_TRY, EC_WORD_TO, EC_WORD_GET, EC_WORD_BETTER + + .align 2 + .2byte SPECIES_JOLTEON, ITEM_QUICK_CLAW + .2byte MOVE_QUICK_ATTACK, MOVE_THUNDERBOLT, MOVE_DOUBLE_KICK, MOVE_PIN_MISSILE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000029 @ personality + .string "JOLTEON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ESPEON, ITEM_QUICK_CLAW + .2byte MOVE_QUICK_ATTACK, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_BITE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000029 @ personality + .string "ESPEON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_FLAREON, ITEM_QUICK_CLAW + .2byte MOVE_QUICK_ATTACK, MOVE_FLAMETHROWER, MOVE_SHADOW_BALL, MOVE_IRON_TAIL + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000033 @ personality + .string "FLAREON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_VAPOREON, ITEM_QUICK_CLAW + .2byte MOVE_QUICK_ATTACK, MOVE_WATERFALL, MOVE_ICE_BEAM, MOVE_BITE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000010 @ personality + .string "VAPOREON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_EEVEE, ITEM_QUICK_CLAW + .2byte MOVE_QUICK_ATTACK, MOVE_DOUBLE_EDGE, MOVE_BITE, MOVE_IRON_TAIL + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000010 @ personality + .string "EEVEE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_UMBREON, ITEM_QUICK_CLAW + .2byte MOVE_QUICK_ATTACK, MOVE_FAINT_ATTACK, MOVE_SHADOW_BALL, MOVE_IRON_TAIL + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000010 @ personality + .string "UMBREON$", 11 + .byte 255 @ friendship + + .string "JEN & KIRA$", 11 + .byte FACILITY_CLASS_TWINS_2, 0x03, 0x00 + + .2byte EC_WORD_LET_S, EC_WORD_TRY, EC_WORD_HARD, EC_WORD_EXCL, 0xFFFF, 0xFFFF + .2byte EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + .2byte EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + .2byte EC_WORD_WE, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_WORK, EC_WORD_BETTER, 0xFFFF + + .align 2 + .2byte SPECIES_JOLTEON, ITEM_BRIGHT_POWDER + .2byte MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HELPING_HAND, MOVE_THUNDERBOLT + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 10, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000000A @ personality + .string "JOLTEON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ESPEON, ITEM_BRIGHT_POWDER + .2byte MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_HELPING_HAND, MOVE_PSYCHIC + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 10, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000000A @ personality + .string "ESPEON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_FLAREON, ITEM_BRIGHT_POWDER + .2byte MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HELPING_HAND, MOVE_FLAMETHROWER + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 13, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000000D @ personality + .string "FLAREON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_VAPOREON, ITEM_BRIGHT_POWDER + .2byte MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HELPING_HAND, MOVE_SURF + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 35, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000023 @ personality + .string "VAPOREON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_EEVEE, ITEM_BRIGHT_POWDER + .2byte MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HELPING_HAND, MOVE_DOUBLE_EDGE + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 35, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000023 @ personality + .string "EEVEE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_UMBREON, ITEM_BRIGHT_POWDER + .2byte MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HELPING_HAND, MOVE_FAINT_ATTACK + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 35, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000023 @ personality + .string "UMBREON$", 11 + .byte 255 @ friendship + + dummy_tower_team + .byte 0xc2, 0x7f, 0x01 + + .align 2 +gUnknown_847DE0C:: + .byte 0x0e, 0x08, 0x01, 0x08 + .string "ISAC & MAG$", 11 + .byte FACILITY_CLASS_COOL_COUPLE, 0x01, 0x00 + + .2byte EC_WORD_OUR, EC_MOVE(EARTHQUAKE), EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_SHAKY + .2byte EC_WORD_FEELING, EC_WORD_SHAKY, EC_WORD_HUH_QUES, 0xFFFF, 0xFFFF, 0xFFFF + .2byte EC_WORD_I_AM, EC_WORD_ALL, EC_WORD_SHAKY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF + .2byte EC_WORD_MY, EC_WORD_GIRL, EC_WORD_ISN_T, EC_WORD_SHAKY, EC_WORD_SHE_IS, EC_WORD_LOVEY_DOVEY + + .align 2 + .2byte SPECIES_NIDOKING, ITEM_SOFT_SAND + .2byte MOVE_EARTHQUAKE, MOVE_MEGAHORN, MOVE_SHADOW_BALL, MOVE_FIRE_BLAST + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000003 @ personality + .string "NIDOKING$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GLIGAR, ITEM_SOFT_SAND + .2byte MOVE_EARTHQUAKE, MOVE_QUICK_ATTACK, MOVE_AERIAL_ACE, MOVE_IRON_TAIL + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000080 @ personality + .string "GLIGAR$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_QUAGSIRE, ITEM_SOFT_SAND + .2byte MOVE_EARTHQUAKE, MOVE_SLUDGE_BOMB, MOVE_BLIZZARD, MOVE_BRICK_BREAK + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000080 @ personality + .string "QUAGSIRE$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_PILOSWINE, ITEM_SOFT_SAND + .2byte MOVE_EARTHQUAKE, MOVE_BLIZZARD, MOVE_ANCIENT_POWER, MOVE_BODY_SLAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000080 @ personality + .string "PILOSWINE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GOLEM, ITEM_SOFT_SAND + .2byte MOVE_EARTHQUAKE, MOVE_ROCK_BLAST, MOVE_BRICK_BREAK, MOVE_EXPLOSION + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000080 @ personality + .string "GOLEM$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_STEELIX, ITEM_SOFT_SAND + .2byte MOVE_EARTHQUAKE, MOVE_IRON_TAIL, MOVE_DRAGON_BREATH, MOVE_DOUBLE_EDGE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000080 @ personality + .string "STEELIX$", 11 + .byte 255 @ friendship + + .string "ISAC & MAG$", 11 + .byte FACILITY_CLASS_COOL_COUPLE, 0x01, 0x00 + + .2byte EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_DOESN_T, EC_WORD_GET, EC_WORD_ALL, EC_WORD_SHAKY + .2byte EC_WORD_SEE, EC_WORD_QUES, EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_LIE, EC_WORD_EXCL + .2byte EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_LEFT, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_SHAKY + .2byte EC_WORD_I_AM, EC_WORD_LOVEY_DOVEY, EC_WORD_FOR, EC_WORD_HIM, EC_WORD_NOT, EC_WORD_SHAKY + + .align 2 + .2byte SPECIES_SKARMORY, ITEM_KINGS_ROCK + .2byte MOVE_SANDSTORM, MOVE_STEEL_WING, MOVE_AIR_CUTTER, MOVE_SPIKES + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000B @ personality + .string "SKARMORY$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MANTINE, ITEM_LUM_BERRY + .2byte MOVE_ICE_BEAM, MOVE_SURF, MOVE_CONFUSE_RAY, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x0000000B @ personality + .string "MANTINE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_JUMPLUFF, ITEM_LUM_BERRY + .2byte MOVE_TAIL_WHIP, MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000B @ personality + .string "JUMPLUFF$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GENGAR, ITEM_KINGS_ROCK + .2byte MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_THUNDERBOLT, MOVE_PSYCHIC + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000B @ personality + .string "GENGAR$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CROBAT, ITEM_KINGS_ROCK + .2byte MOVE_GIGA_DRAIN, MOVE_POISON_FANG, MOVE_FLY, MOVE_STEEL_WING + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000B @ personality + .string "CROBAT$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_XATU, ITEM_LUM_BERRY + .2byte MOVE_PSYCHIC, MOVE_CONFUSE_RAY, MOVE_AERIAL_ACE, MOVE_LIGHT_SCREEN + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000B @ personality + .string "XATU$", 11 + .byte 255 @ friendship + + dummy_tower_team + .byte 0xb0, 0x6b, 0x01 + + .align 2 +gUnknown_847E1EC:: + .byte 0x0f, 0x08, 0x02, 0x06 + .string "CHELSEA$", 11 + .byte FACILITY_CLASS_PKMN_RANGER_4, 0x07, 0x00 + + .2byte EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD, EC_WORD_IS, EC_WORD_IMPORTANT, EC_WORD_ISN_T_IT_QUES + .2byte EC_WORD_YOU, EC_WORD_TAKE, EC_WORD_THE, EC_WORD_LOSS, 0xFFFF, 0xFFFF + .2byte EC_WORD_BE, EC_WORD_KIND, EC_WORD_TO, EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD + .2byte EC_WORD_DON_T, EC_WORD_EVER, EC_WORD_POISON, EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD + + .align 2 + .2byte SPECIES_VILEPLUME, ITEM_PETAYA_BERRY + .2byte MOVE_INGRAIN, MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB, MOVE_STUN_SPORE + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000011 @ personality + .string "VILEPLUME$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_STARMIE, ITEM_PETAYA_BERRY + .2byte MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_WATERFALL, MOVE_RECOVER + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 1 @ IVs, ability + .4byte 0x00000010 @ personality + .string "STARMIE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_URSARING, ITEM_LIECHI_BERRY + .2byte MOVE_FAINT_ATTACK, MOVE_BODY_SLAM, MOVE_BRICK_BREAK, MOVE_ROCK_TOMB + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000001 @ personality + .string "URSARING$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_NOCTOWL, ITEM_LIECHI_BERRY + .2byte MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_FAINT_ATTACK, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000001 @ personality + .string "NOCTOWL$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_NINETALES, ITEM_PETAYA_BERRY + .2byte MOVE_GRUDGE, MOVE_OVERHEAT, MOVE_FAINT_ATTACK, MOVE_WILL_O_WISP + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000010 @ personality + .string "NINETALES$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_LEDIAN, ITEM_LIECHI_BERRY + .2byte MOVE_SILVER_WIND, MOVE_SWIFT, MOVE_AERIAL_ACE, MOVE_TOXIC + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000001 @ personality + .string "LEDIAN$", 11 + .byte 255 @ friendship + + .string "TRENTON$", 11 + .byte FACILITY_CLASS_PKMN_RANGER_3, 0x07, 0x00 + + .2byte EC_WORD_I, EC_MOVE2(PROTECT), EC_WORD_THE, EC_WORD_GREAT, EC_WORD_GREEN, EC_WORD_WORLD + .2byte EC_WORD_TAKE_THAT, EC_WORD_EXCL, EC_WORD_THE, EC_WORD_LOSS, EC_WORD_IS, EC_WORD_YOURS + .2byte EC_MOVE2(PROTECT), EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD, 0xFFFF, 0xFFFF + .2byte EC_MOVE2(PROTECT), EC_WORD_AND, EC_WORD_RESUSCITATE, EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD + + .align 2 + .2byte SPECIES_GYARADOS, ITEM_SITRUS_BERRY + .2byte MOVE_EARTHQUAKE, MOVE_WATERFALL, MOVE_BLIZZARD, MOVE_HYPER_BEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000088 @ personality + .string "GYARADOS$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_VICTREEBEL, ITEM_SITRUS_BERRY + .2byte MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB, MOVE_REFLECT, MOVE_ATTRACT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x0000008E @ personality + .string "VICTREEBEL$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_DONPHAN, ITEM_SITRUS_BERRY + .2byte MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_IRON_TAIL, MOVE_DOUBLE_EDGE + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000097 @ personality + .string "DONPHAN$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_FEAROW, ITEM_SITRUS_BERRY + .2byte MOVE_FAINT_ATTACK, MOVE_DRILL_PECK, MOVE_STEEL_WING, MOVE_DOUBLE_TEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000097 @ personality + .string "FEAROW$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ARCANINE, ITEM_SITRUS_BERRY + .2byte MOVE_EXTREME_SPEED, MOVE_FIRE_BLAST, MOVE_CRUNCH, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x0000004F @ personality + .string "ARCANINE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ARIADOS, ITEM_SITRUS_BERRY + .2byte MOVE_PSYCHIC, MOVE_SLUDGE_BOMB, MOVE_SIGNAL_BEAM, MOVE_TOXIC + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 255, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000097 @ personality + .string "ARIADOS$", 11 + .byte 255 @ friendship + + .string "ALBERT$", 11 + .byte FACILITY_CLASS_COOLTRAINER_3, 0x07, 0x00 + + .2byte EC_WORD_LET_S, EC_WORD_HAVE, EC_WORD_AN, EC_WORD_EXCITING, EC_WORD_TIME, EC_WORD_HERE + .2byte EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_MAKE, EC_WORD_THINGS, EC_WORD_EXCITING + .2byte EC_WORD_YOU_RE, EC_WORD_STRONG, EC_WORD_THAT_WAS, EC_WORD_WILD, EC_WORD_AND, EC_WORD_EXCITING + .2byte EC_WORD_I_AM, EC_WORD_TIRED, EC_WORD_AFTER, EC_WORD_THAT, EC_WORD_EXCITING, EC_WORD_MATCH + + .align 2 + .2byte SPECIES_KINGDRA, ITEM_SALAC_BERRY + .2byte MOVE_TWISTER, MOVE_OCTAZOOKA, MOVE_AURORA_BEAM, MOVE_RETURN + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000015 @ personality + .string "KINGDRA$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GOLEM, ITEM_SALAC_BERRY + .2byte MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK, MOVE_DOUBLE_EDGE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 1 @ IVs, ability + .4byte 0x0000007F @ personality + .string "GOLEM$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_DRAGONITE, ITEM_SALAC_BERRY + .2byte MOVE_THUNDER, MOVE_FIRE_BLAST, MOVE_BLIZZARD, MOVE_DRAGON_CLAW + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000001 @ personality + .string "DRAGONITE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_TYRANITAR, ITEM_SALAC_BERRY + .2byte MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_THUNDER, MOVE_FIRE_BLAST + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000097 @ personality + .string "TYRANITAR$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_AMPHAROS, ITEM_SALAC_BERRY + .2byte MOVE_REFLECT, MOVE_THUNDER, MOVE_BRICK_BREAK, MOVE_RETURN + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000013 @ personality + .string "AMPHAROS$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_VENUSAUR, ITEM_SALAC_BERRY + .2byte MOVE_GIGA_DRAIN, MOVE_LEECH_SEED, MOVE_TOXIC, MOVE_BODY_SLAM + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x0000002A @ personality + .string "VENUSAUR$", 11 + .byte 255 @ friendship + + .byte 0x4c, 0x84, 0x01 + + .align 2 +gUnknown_847E5CC:: + .byte 0x10, 0x08, 0x02, 0x04 + .string "CAMRYN$", 11 + .byte FACILITY_CLASS_PICNICKER_2, 0x01, 0x00 + + .2byte EC_WORD_LET_S, EC_WORD_BATTLE, EC_WORD_I, EC_WORD_WON_T, EC_WORD_LOSE, EC_WORD_EXCL + .2byte EC_WORD_I, EC_WORD_SAID, EC_WORD_THAT, EC_WORD_I, EC_WORD_WOULD, EC_WORD_WIN + .2byte EC_WORD_OH_QUES, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_DID, EC_WORD_I, EC_WORD_LOSE, EC_WORD_QUES + .2byte EC_WORD_YOU_RE, EC_WORD_TOO_STRONG, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + + .align 2 + .2byte SPECIES_MURKROW, ITEM_BLACK_GLASSES + .2byte MOVE_AERIAL_ACE, MOVE_SHADOW_BALL, MOVE_FAINT_ATTACK, MOVE_CONFUSE_RAY + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000089 @ personality + .string "MURKROW$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_RAPIDASH, ITEM_CHARCOAL + .2byte MOVE_BOUNCE, MOVE_FLAMETHROWER, MOVE_QUICK_ATTACK, MOVE_DOUBLE_KICK + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x0000000C @ personality + .string "RAPIDASH$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MILTANK, ITEM_SILK_SCARF + .2byte MOVE_MILK_DRINK, MOVE_BRICK_BREAK, MOVE_BODY_SLAM, MOVE_SHADOW_BALL + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000C @ personality + .string "MILTANK$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GOLDUCK, ITEM_MYSTIC_WATER + .2byte MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_CALM_MIND, MOVE_LIGHT_SCREEN + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000089 @ personality + .string "GOLDUCK$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SANDSLASH, ITEM_SOFT_SAND + .2byte MOVE_SANDSTORM, MOVE_AERIAL_ACE, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000089 @ personality + .string "SANDSLASH$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_NIDOQUEEN, ITEM_HARD_STONE + .2byte MOVE_EARTHQUAKE, MOVE_SUPERPOWER, MOVE_SLUDGE_BOMB, MOVE_ROCK_SLIDE + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000C @ personality + .string "NIDOQUEEN$", 11 + .byte 255 @ friendship + + .string "NATALIA$", 11 + .byte FACILITY_CLASS_AROMA_LADY_2, 0x01, 0x00 + + .2byte EC_WORD_THIS, EC_MOVE(SWEET_SCENT), EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_IT, EC_WORD_QUES + .2byte EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_NICE, EC_WORD_QUES, 0xFFFF, 0xFFFF + .2byte EC_WORD_THAT, EC_WORD_WASN_T, EC_WORD_GOOD, EC_WORD_QUES, 0xFFFF, 0xFFFF + .2byte EC_WORD_I, EC_MOVE2(REFRESH), EC_WORD_THINGS, EC_WORD_WITH, EC_WORD_REFRESHING, EC_MOVE(AROMATHERAPY) + + .align 2 + .2byte SPECIES_BELLOSSOM, ITEM_PERSIM_BERRY + .2byte MOVE_SWEET_SCENT, MOVE_ATTRACT, MOVE_PETAL_DANCE, MOVE_FLAIL + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000C @ personality + .string "BELLOSSOM$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_VICTREEBEL, ITEM_MIRACLE_SEED + .2byte MOVE_SWEET_SCENT, MOVE_ATTRACT, MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000089 @ personality + .string "VICTREEBEL$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PARASECT, ITEM_MIRACLE_SEED + .2byte MOVE_SWEET_SCENT, MOVE_ATTRACT, MOVE_GIGA_DRAIN, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000089 @ personality + .string "PARASECT$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_VILEPLUME, ITEM_PERSIM_BERRY + .2byte MOVE_SWEET_SCENT, MOVE_ATTRACT, MOVE_PETAL_DANCE, MOVE_SLUDGE_BOMB + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000C @ personality + .string "VILEPLUME$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_VENUSAUR, ITEM_PERSIM_BERRY + .2byte MOVE_SWEET_SCENT, MOVE_ATTRACT, MOVE_PETAL_DANCE, MOVE_SLUDGE_BOMB + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000C @ personality + .string "VENUSAUR$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MEGANIUM, ITEM_MIRACLE_SEED + .2byte MOVE_SWEET_SCENT, MOVE_ATTRACT, MOVE_GIGA_DRAIN, MOVE_BODY_SLAM + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000025 @ personality + .string "MEGANIUM$", 11 + .byte 255 @ friendship + + .string "KATHLEEN$", 11 + .byte FACILITY_CLASS_COOLTRAINER_4, 0x07, 0x00 + + .2byte EC_WORD_TOO, EC_WORD_BAD, EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_FOR, EC_WORD_YOU + .2byte EC_WORD_SORRY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + .2byte EC_WORD_THIS, EC_WORD_IS, EC_WORD_HARD, EC_WORD_TO, EC_WORD_BELIEVE, EC_WORD_ELLIPSIS + .2byte EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_PURE_POWER, EC_WORD_THAT, EC_WORD_IS, EC_WORD_NATURAL + + .align 2 + .2byte SPECIES_MAROWAK, ITEM_LUM_BERRY + .2byte MOVE_EARTHQUAKE, MOVE_BRICK_BREAK, MOVE_BONEMERANG, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000089 @ personality + .string "MAROWAK$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_LAPRAS, ITEM_LUM_BERRY + .2byte MOVE_SURF, MOVE_BLIZZARD, MOVE_PSYCHIC, MOVE_THUNDER + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x0000000C @ personality + .string "LAPRAS$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ARCANINE, ITEM_LUM_BERRY + .2byte MOVE_EXTREME_SPEED, MOVE_FLAMETHROWER, MOVE_CRUNCH, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000057 @ personality + .string "ARCANINE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_RAICHU, ITEM_LUM_BERRY + .2byte MOVE_THUNDERBOLT, MOVE_QUICK_ATTACK, MOVE_DOUBLE_TEAM, MOVE_IRON_TAIL + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000089 @ personality + .string "RAICHU$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_TOGETIC, ITEM_LUM_BERRY + .2byte MOVE_ANCIENT_POWER, MOVE_SWEET_KISS, MOVE_PSYCHIC, MOVE_MAGICAL_LEAF + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x0000000C @ personality + .string "TOGETIC$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SNORLAX, ITEM_LUM_BERRY + .2byte MOVE_BODY_SLAM, MOVE_REST, MOVE_SNORE, MOVE_SHADOW_BALL + .byte 0, 0x00 @ level, ppBonuses + .byte 84, 84, 84, 84, 84, 84 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x0000000C @ personality + .string "SNORLAX$", 11 + .byte 255 @ friendship + + .byte 0x8c, 0x73, 0x01 + + .align 2 +gUnknown_847E9AC:: + .byte 0x11, 0x08, 0x00, 0x03 + .string "BRADEN$", 11 + .byte FACILITY_CLASS_SWIMMER_MALE_2, 0x01, 0x00 + + .2byte EC_WORD_I_AM, EC_WORD_PRETTY, EC_WORD_HAPPY, EC_WORD_WITH, EC_WORD_MY, EC_WORD_TOUGHNESS + .2byte EC_WORD_WROOOAAR_EXCL, 0xFFFF, EC_WORD_SERIOUSLY, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES + .2byte EC_WORD_YOU, EC_WORD_SHOCKED, EC_WORD_ME, EC_WORD_OUT, EC_WORD_OF, EC_WORD_HAPPINESS + .2byte EC_WORD_NICE, EC_WORD_WORK, EC_WORD_YOU, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_FABULOUS + + .align 2 + .2byte SPECIES_VAPOREON, ITEM_CHERI_BERRY + .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_SHADOW_BALL, MOVE_WISH + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 0, 110, 0, 200, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000011 @ personality + .string "VAPOREON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SLOWBRO, ITEM_QUICK_CLAW + .2byte MOVE_SURF, MOVE_CONFUSION, MOVE_AMNESIA, MOVE_DISABLE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 0, 255, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000091 @ personality + .string "SLOWBRO$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_POLITOED, ITEM_CHESTO_BERRY + .2byte MOVE_SURF, MOVE_EARTHQUAKE, MOVE_HYPNOSIS, MOVE_SWAGGER + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 100, 110, 0, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000096 @ personality + .string "POLITOED$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_TENTACRUEL, ITEM_POISON_BARB + .2byte MOVE_SURF, MOVE_SLUDGE_BOMB, MOVE_ICE_BEAM, MOVE_MIRROR_COAT + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 0, 110, 0, 200, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000000 @ personality + .string "TENTACRUEL$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_RATICATE, ITEM_SITRUS_BERRY + .2byte MOVE_SUPER_FANG, MOVE_HYPER_FANG, MOVE_THUNDER_WAVE, MOVE_QUICK_ATTACK + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 200, 100, 0, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000080 @ personality + .string "RATICATE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_DUNSPARCE, ITEM_PERSIM_BERRY + .2byte MOVE_WATER_PULSE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_YAWN + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 255, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000007F @ personality + .string "DUNSPARCE$", 11 + .byte 255 @ friendship + + dummy_tower_team + dummy_tower_team + .byte 0x30, 0x65, 0x01 + + .align 2 +gUnknown_847ED8C:: + .byte 0x12, 0x08, 0x00, 0x0a + .string "ALLYSON$", 11 + .byte FACILITY_CLASS_COOLTRAINER_4, 0x07, 0x00 + + .2byte EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_ABOUT, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_TODAY + .2byte EC_WORD_YES, EC_WORD_EXCL_EXCL, EC_WORD_I, EC_WORD_ADORE, EC_WORD_MYSELF, EC_WORD_TODAY + .2byte EC_WORD_I_WAS, EC_WORD_CONFUSED, EC_WORD_ABOUT, EC_WORD_THINGS, EC_WORD_I, EC_WORD_THINK + .2byte EC_WORD_YOU_RE, EC_WORD_TOO, EC_WORD_STRONG, EC_WORD_TODAY, EC_WORD_THAT_S, EC_WORD_ALL + + .align 2 + .2byte SPECIES_STARMIE, ITEM_LUM_BERRY + .2byte MOVE_SURF, MOVE_PSYCHIC, MOVE_THUNDER_WAVE, MOVE_RECOVER + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 0, 255, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 1 @ IVs, ability + .4byte 0x0000000F @ personality + .string "STARMIE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_BLASTOISE, ITEM_SALAC_BERRY + .2byte MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_MIRROR_COAT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 0, 255, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000032 @ personality + .string "BLASTOISE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_KINGDRA, ITEM_CHESTO_BERRY + .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_DRAGON_BREATH, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 100, 0, 255, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x0000008C @ personality + .string "KINGDRA$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_QUAGSIRE, ITEM_CHESTO_BERRY + .2byte MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 100, 100, 0, 155, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000016 @ personality + .string "QUAGSIRE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_LAPRAS, ITEM_LEFTOVERS + .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_PSYCHIC, MOVE_ATTRACT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 100, 0, 255, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 1 @ IVs, ability + .4byte 0x0000000F @ personality + .string "LAPRAS$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_DRAGONITE, ITEM_SHELL_BELL + .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_LIGHT_SCREEN + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 100, 0, 0, 155, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000096 @ personality + .string "DRAGONITE$", 11 + .byte 255 @ friendship + + dummy_tower_team + dummy_tower_team + .byte 0x32, 0x6e, 0x01 + + .align 2 +gUnknown_847F16C:: + .byte 0x13, 0x08, 0x00, 0x0e + .string "ALBERTO$", 11 + .byte FACILITY_CLASS_SAILOR_2, 0x05, 0x00 + + .2byte EC_WORD_LET_S, EC_WORD_GET, EC_WORD_WITH, EC_WORD_IT, EC_WORD_RIGHT, EC_WORD_AWAY + .2byte EC_WORD_YO, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_GIVE_UP, EC_WORD_NOW, EC_WORD_EH_QUES + .2byte EC_WORD_IT_S, EC_WORD_ALL, EC_WORD_OVER, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_SURRENDER + .2byte EC_WORD_OKAY, EC_WORD_I, EC_WORD_CONCEDE, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_LOST + + .align 2 + .2byte SPECIES_FERALIGATR, ITEM_FOCUS_BAND + .2byte MOVE_SURF, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_DRAGON_CLAW + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 100, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000032 @ personality + .string "FERALIGATR$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_POLIWRATH, ITEM_KINGS_ROCK + .2byte MOVE_SURF, MOVE_EARTHQUAKE, MOVE_MEGA_KICK, MOVE_ROCK_TOMB + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 255, 0, 0, 0, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 1 @ IVs, ability + .4byte 0x00000096 @ personality + .string "POLIWRATH$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_KANGASKHAN, ITEM_QUICK_CLAW + .2byte MOVE_CRUSH_CLAW, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 130, 0, 0, 125 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000003 @ personality + .string "KANGASKHAN$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MILTANK, ITEM_LEFTOVERS + .2byte MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_ROCK_TOMB, MOVE_MILK_DRINK + .byte 0, 0x00 @ level, ppBonuses + .byte 155, 255, 0, 0, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000003 @ personality + .string "MILTANK$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GOLDUCK, ITEM_SCOPE_LENS + .2byte MOVE_CROSS_CHOP, MOVE_SURF, MOVE_ICE_BEAM, MOVE_DISABLE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 100, 100, 0, 100, 210 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 1 @ IVs, ability + .4byte 0x00000096 @ personality + .string "GOLDUCK$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GRANBULL, ITEM_LIECHI_BERRY + .2byte MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 130, 0, 0, 125 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x000000CA @ personality + .string "GRANBULL$", 11 + .byte 255 @ friendship + + dummy_tower_team + dummy_tower_team + .byte 0x90, 0x68, 0x01 + + .align 2 +gUnknown_847F54C:: + .byte 0x14, 0x08, 0x01, 0x0c + .string "KAT & KIPP$", 11 + .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04, 0x00 + + .2byte EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_TRY, EC_WORD_MY, EC_WORD_BEST + .2byte EC_WORD_WAY, EC_WORD_TO, EC_WORD_GO, EC_WORD_MY, EC_WORD_AWESOME, EC_WORD_BROTHER + .2byte EC_WORD_SIGH, EC_WORD_ELLIPSIS, EC_WORD_THAT_S, EC_WORD_HOW, EC_WORD_IT, EC_WORD_GOES + .2byte EC_WORD_OKAY, EC_WORD_MY, EC_WORD_AWESOME, EC_WORD_BROTHER, EC_WORD_FIGHT, EC_WORD_FIGHT + + .align 2 + .2byte SPECIES_SNEASEL, ITEM_RAWST_BERRY + .2byte MOVE_DIG, MOVE_TORMENT, MOVE_REFLECT, MOVE_TAUNT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 155, 255, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x0000000D @ personality + .string "SNEASEL$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_OMASTAR, ITEM_QUICK_CLAW + .2byte MOVE_DIVE, MOVE_LEER, MOVE_TICKLE, MOVE_SUPERSONIC + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000002D @ personality + .string "OMASTAR$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_DEWGONG, ITEM_PERSIM_BERRY + .2byte MOVE_DIVE, MOVE_ENCORE, MOVE_GROWL, MOVE_SAFEGUARD + .byte 0, 0x00 @ level, ppBonuses + .byte 200, 0, 100, 0, 0, 210 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000014 @ personality + .string "DEWGONG$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_QUAGSIRE, ITEM_QUICK_CLAW + .2byte MOVE_DIVE, MOVE_YAWN, MOVE_AMNESIA, MOVE_SAFEGUARD + .byte 0, 0x00 @ level, ppBonuses + .byte 200, 0, 110, 0, 0, 200 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000091 @ personality + .string "QUAGSIRE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CORSOLA, ITEM_QUICK_CLAW + .2byte MOVE_DIG, MOVE_MIRROR_COAT, MOVE_RECOVER, MOVE_CONFUSE_RAY + .byte 0, 0x00 @ level, ppBonuses + .byte 155, 0, 100, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000017 @ personality + .string "CORSOLA$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SANDSLASH, ITEM_SITRUS_BERRY + .2byte MOVE_DIG, MOVE_COUNTER, MOVE_DEFENSE_CURL, MOVE_SAND_ATTACK + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000094 @ personality + .string "SANDSLASH$", 11 + .byte 255 @ friendship + + .string "KAT & KIPP$", 11 + .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04, 0x00 + + .2byte EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, EC_WORD_WE, EC_WORD_NEVER, EC_WORD_LOSE, EC_WORD_EXCL + .2byte EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, EC_WORD_WE_RE, EC_WORD_TOO_STRONG, EC_WORD_TO, EC_WORD_LOSE + .2byte EC_WORD_WHAT, EC_WORD_HUH_QUES, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_JOKING, EC_WORD_QUES + .2byte EC_WORD_WAAAH, EC_WORD_WAAAH, EC_WORD_OH, EC_WORD_BIG, EC_WORD_SISTER, EC_WORD_EXCL + + .align 2 + .2byte SPECIES_FURRET, ITEM_KINGS_ROCK + .2byte MOVE_DIG, MOVE_AMNESIA, MOVE_DEFENSE_CURL, MOVE_FOLLOW_ME + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 100, 0, 0, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000080 @ personality + .string "FURRET$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_AZUMARILL, ITEM_WHITE_HERB + .2byte MOVE_DIVE, MOVE_LIGHT_SCREEN, MOVE_TAIL_WHIP, MOVE_DEFENSE_CURL + .byte 0, 0x00 @ level, ppBonuses + .byte 155, 0, 100, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000014 @ personality + .string "AZUMARILL$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_KINGLER, ITEM_QUICK_CLAW + .2byte MOVE_DIVE, MOVE_HARDEN, MOVE_LEER, MOVE_AMNESIA + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000091 @ personality + .string "KINGLER$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CLOYSTER, ITEM_QUICK_CLAW + .2byte MOVE_DIVE, MOVE_WITHDRAW, MOVE_PROTECT, MOVE_SUPERSONIC + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000014 @ personality + .string "CLOYSTER$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_QUAGSIRE, ITEM_QUICK_CLAW + .2byte MOVE_DIG, MOVE_YAWN, MOVE_AMNESIA, MOVE_SAFEGUARD + .byte 0, 0x00 @ level, ppBonuses + .byte 200, 0, 110, 0, 0, 200 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000094 @ personality + .string "QUAGSIRE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_KABUTOPS, ITEM_PECHA_BERRY + .2byte MOVE_DIG, MOVE_SAND_ATTACK, MOVE_ENDURE, MOVE_CONFUSE_RAY + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000030 @ personality + .string "KABUTOPS$", 11 + .byte 255 @ friendship + + dummy_tower_team + .byte 0x7c, 0x5d, 0x01 + + .align 2 +gUnknown_847F92C:: + .byte 0x15, 0x08, 0x01, 0x08 + .string "GEB&MEGAN$", 11 + .byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00 + + .2byte EC_WORD_YOU_RE, EC_WORD_OUR, EC_WORD_OPPONENT, EC_WORD_QUES, EC_WORD_PUSHOVER, EC_WORD_HAHAHA + .2byte EC_WORD_HAHAHA, EC_WORD_SORRY, EC_WORD_MY, EC_WORD_FRIEND, EC_WORD_TOUGH, EC_WORD_LOSS + .2byte EC_WORD_YOU_RE, EC_WORD_SERIOUS, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_FRIEND, EC_WORD_QUES + .2byte EC_WORD_WON_T, EC_WORD_YOU, EC_WORD_GET, EC_WORD_LOST, EC_WORD_PLEASE, EC_WORD_QUES + + .align 2 + .2byte SPECIES_POLITOED, ITEM_KINGS_ROCK + .2byte MOVE_SURF, MOVE_HYPNOSIS, MOVE_PERISH_SONG, MOVE_SWAGGER + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 100, 0, 255, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x0000008C @ personality + .string "POLITOED$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GYARADOS, ITEM_SALAC_BERRY + .2byte MOVE_HYPER_BEAM, MOVE_DRAGON_DANCE, MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 155, 0, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000096 @ personality + .string "GYARADOS$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_LAPRAS, ITEM_SHELL_BELL + .2byte MOVE_SURF, MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 100, 0, 255, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x0000000F @ personality + .string "LAPRAS$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_NIDOQUEEN, ITEM_FOCUS_BAND + .2byte MOVE_SURF, MOVE_EARTHQUAKE, MOVE_SUPERPOWER, MOVE_ROCK_SLIDE + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 100, 100, 0, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "NIDOQUEEN$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_JYNX, ITEM_BRIGHT_POWDER + .2byte MOVE_WATER_PULSE, MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_PSYCHIC + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 155, 0, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "JYNX$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GIRAFARIG, ITEM_LUM_BERRY + .2byte MOVE_LIGHT_SCREEN, MOVE_CRUNCH, MOVE_PSYCHIC, MOVE_REFLECT + .byte 0, 0x00 @ level, ppBonuses + .byte 210, 0, 100, 0, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x0000008C @ personality + .string "GIRAFARIG$", 11 + .byte 255 @ friendship + + .string "GEB&MEGAN$", 11 + .byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00 + + .2byte EC_WORD_YOU_RE, EC_WORD_OUR, EC_WORD_FOE, EC_WORD_QUES, EC_WORD_GIGGLE, EC_WORD_ELLIPSIS + .2byte EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SORRY, 0xFFFF + .2byte EC_WORD_MY, EC_WORD_WORD, EC_WORD_THIS, EC_WORD_IS, EC_WORD_JUST, EC_WORD_INCREDIBLE + .2byte EC_WORD_WE, EC_WORD_NEED, EC_WORD_TO, EC_WORD_TRAIN, EC_WORD_SOME, EC_WORD_MORE + + .align 2 + .2byte SPECIES_MAROWAK, ITEM_SALAC_BERRY + .2byte MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_AERIAL_ACE, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000094 @ personality + .string "MAROWAK$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_URSARING, ITEM_SCOPE_LENS + .2byte MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_AERIAL_ACE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 155, 0, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000080 @ personality + .string "URSARING$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SLOWKING, ITEM_LEFTOVERS + .2byte MOVE_SURF, MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_SHADOW_BALL + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 110, 0, 0, 200, 200 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000011 @ personality + .string "SLOWKING$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ALAKAZAM, ITEM_BRIGHT_POWDER + .2byte MOVE_PSYCHIC, MOVE_PROTECT, MOVE_LIGHT_SCREEN, MOVE_REFLECT + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 0, 200, 0, 0, 200 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000041 @ personality + .string "ALAKAZAM$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_NIDOKING, ITEM_FOCUS_BAND + .2byte MOVE_SURF, MOVE_MEGAHORN, MOVE_THUNDERBOLT, MOVE_ICE_BEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 100, 100, 0, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "NIDOKING$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_RHYDON, ITEM_QUICK_CLAW + .2byte MOVE_EARTHQUAKE, MOVE_PROTECT, MOVE_MEGAHORN, MOVE_ROCK_SLIDE + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000093 @ personality + .string "RHYDON$", 11 + .byte 255 @ friendship + + dummy_tower_team + .byte 0xf4, 0x60, 0x01 + + .align 2 +gUnknown_847FD0C:: + .byte 0x16, 0x08, 0x01, 0x05 + .string "LISA&LEAH$", 11 + .byte FACILITY_CLASS_TWINS_2, 0x01, 0x00 + + .2byte EC_WORD_ABSOLUTELY, EC_WORD_WE_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_WIN, EC_WORD_EXCL + .2byte EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + .2byte EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF + .2byte EC_WORD_EXCUSE_ME, EC_WORD_BUT, EC_WORD_YOU_RE, EC_WORD_ALL, EC_WORD_TOO_STRONG, 0xFFFF + + .align 2 + .2byte SPECIES_POLIWAG, ITEM_CHERI_BERRY + .2byte MOVE_SURF, MOVE_PROTECT, MOVE_TOXIC, MOVE_DOUBLE_TEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 100, 255, 0, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000087 @ personality + .string "POLIWAG$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SQUIRTLE, ITEM_MYSTIC_WATER + .2byte MOVE_WATER_PULSE, MOVE_PROTECT, MOVE_TOXIC, MOVE_MIRROR_COAT + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000002D @ personality + .string "SQUIRTLE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CHINCHOU, ITEM_MAGNET + .2byte MOVE_SURF, MOVE_THUNDER_WAVE, MOVE_CONFUSE_RAY, MOVE_THUNDERBOLT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 100, 255, 0, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000000F @ personality + .string "CHINCHOU$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_NIDORAN_F, ITEM_POISON_BARB + .2byte MOVE_WATER_PULSE, MOVE_SLUDGE_BOMB, MOVE_CRUNCH, MOVE_DIG + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 100, 100, 0, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "NIDORAN♀$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CLEFAIRY, ITEM_WHITE_HERB + .2byte MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_SING, MOVE_MINIMIZE + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 0, 100, 100, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000000F @ personality + .string "CLEFAIRY$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_HORSEA, ITEM_SITRUS_BERRY + .2byte MOVE_SURF, MOVE_SMOKESCREEN, MOVE_ATTRACT, MOVE_DRAGON_RAGE + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 0, 100, 100, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000002D @ personality + .string "HORSEA$", 11 + .byte 255 @ friendship + + .string "LISA&LEAH$", 11 + .byte FACILITY_CLASS_TWINS_2, 0x01, 0x00 + + .2byte EC_WORD_CAN, EC_WORD_WE, EC_WORD_WIN, EC_WORD_QUES, EC_WORD_IT_S, EC_WORD_EXCITING + .2byte EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_HAPPY + .2byte EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF + .2byte EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_NOT, EC_MOVE2(BEAT_UP), EC_WORD_ON, EC_WORD_CHILDREN + + .align 2 + .2byte SPECIES_WOOPER, ITEM_LEFTOVERS + .2byte MOVE_SURF, MOVE_EARTHQUAKE, MOVE_YAWN, MOVE_FLASH + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 100, 100, 0, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000093 @ personality + .string "WOOPER$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PSYDUCK, ITEM_SCOPE_LENS + .2byte MOVE_SURF, MOVE_CROSS_CHOP, MOVE_HYPNOSIS, MOVE_DISABLE + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 100, 100, 0, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 1 @ IVs, ability + .4byte 0x00000096 @ personality + .string "PSYDUCK$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SNUBBULL, ITEM_PECHA_BERRY + .2byte MOVE_WATER_PULSE, MOVE_THUNDER_WAVE, MOVE_CRUNCH, MOVE_SHADOW_BALL + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 100, 100, 100, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "SNUBBULL$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_JIGGLYPUFF, ITEM_SITRUS_BERRY + .2byte MOVE_WATER_PULSE, MOVE_THUNDER_WAVE, MOVE_SING, MOVE_DISABLE + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 100, 100, 0, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000000F @ personality + .string "JIGGLYPUFF$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_NIDORAN_M, ITEM_FOCUS_BAND + .2byte MOVE_WATER_PULSE, MOVE_SLUDGE_BOMB, MOVE_HORN_DRILL, MOVE_DIG + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 100, 100, 0, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "NIDORAN♂$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_TOTODILE, ITEM_BRIGHT_POWDER + .2byte MOVE_SURF, MOVE_PROTECT, MOVE_TOXIC, MOVE_DOUBLE_TEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 0, 100, 100, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000002D @ personality + .string "TOTODILE$", 11 + .byte 255 @ friendship + + .string "$", 11 + .byte FACILITY_CLASS_AQUA_LEADER, 0x01, 0x00 + + .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF + + .align 2 + .2byte SPECIES_NONE, ITEM_NONE + .2byte MOVE_NONE, MOVE_NONE, MOVE_NONE, MOVE_NONE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 0 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "$$$$$$$$$$$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_NONE, ITEM_NONE + .2byte MOVE_NONE, MOVE_NONE, MOVE_NONE, MOVE_NONE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 0 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "$$$$$$$$$$$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_NONE, ITEM_NONE + .2byte MOVE_NONE, MOVE_NONE, MOVE_NONE, MOVE_NONE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 0 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "$$$$$$$$$$$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_NONE, ITEM_NONE + .2byte MOVE_NONE, MOVE_NONE, MOVE_NONE, MOVE_NONE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 0 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "$$$$$$$$$$$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_NONE, ITEM_NONE + .2byte MOVE_NONE, MOVE_NONE, MOVE_NONE, MOVE_NONE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 0 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "$$$$$$$$$$$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_NONE, ITEM_NONE + .2byte MOVE_NONE, MOVE_NONE, MOVE_NONE, MOVE_NONE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 0 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "$$$$$$$$$$$", 11 + .byte 0 @ friendship + + .byte 0xd4, 0x97, 0x01 + + .align 2 +gUnknown_84800EC:: + .byte 0x17, 0x08, 0x02, 0x01 + .string "PRISCILLA$", 11 + .byte FACILITY_CLASS_TUBER_3, 0x01, 0x00 + + .2byte EC_WORD_I_AM, EC_WORD_A_LITTLE, EC_WORD_POKEMON, EC_WORD_GIRL, EC_WORD_HERE_I_COME, EC_WORD_EXCL + .2byte EC_WORD_WAAAH, EC_WORD_EXCL, EC_WORD_DID, EC_WORD_I, EC_WORD_WIN, EC_WORD_QUES + .2byte EC_WORD_OH_DEAR, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_COULDN_T, EC_WORD_WIN, EC_WORD_ELLIPSIS + .2byte EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_NICE, EC_WORD_TRAINER, EC_WORD_THANK_YOU, EC_WORD_EXCL + + .align 2 + .2byte SPECIES_GOLDEEN, ITEM_SITRUS_BERRY + .2byte MOVE_WATER_PULSE, MOVE_MEGAHORN, MOVE_SUPERSONIC, MOVE_ICE_BEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 100, 100, 0, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000096 @ personality + .string "GOLDEEN$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_SEAKING, ITEM_SCOPE_LENS + .2byte MOVE_SURF, MOVE_MEGAHORN, MOVE_HORN_DRILL, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 100, 100, 0, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000000 @ personality + .string "SEAKING$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_LANTURN, ITEM_SHELL_BELL + .2byte MOVE_SURF, MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_ICE_BEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 100, 100, 100, 210 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000008C @ personality + .string "LANTURN$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_LANTURN, ITEM_LEFTOVERS + .2byte MOVE_HYDRO_PUMP, MOVE_THUNDER, MOVE_ICE_BEAM, MOVE_RAIN_DANCE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 100, 100, 100, 210 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000000F @ personality + .string "LANTURN$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_GOLDEEN, ITEM_APICOT_BERRY + .2byte MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, MOVE_TOXIC, MOVE_PSYBEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 100, 100, 0, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000000 @ personality + .string "GOLDEEN$", 11 + .byte 0 @ friendship + + .align 2 + .2byte SPECIES_SEAKING, ITEM_PETAYA_BERRY + .2byte MOVE_SURF, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PSYBEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 100, 100, 0, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000096 @ personality + .string "SEAKING$", 11 + .byte 0 @ friendship + + .string "CHARLOTTE$", 11 + .byte FACILITY_CLASS_LADY_2, 0x01, 0x00 + + .2byte EC_WORD_HELLO, EC_WORD_THERE, EC_WORD_I_AM, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_LADY + .2byte EC_WORD_OH, EC_WORD_MY, EC_WORD_MY, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_SORRY + .2byte EC_WORD_YOU_RE, EC_WORD_BETTER, EC_WORD_THAN, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_LADY + .2byte EC_WORD_HOHOHO, EC_WORD_THANK_YOU, EC_WORD_FOR, EC_WORD_AN, EC_WORD_AMUSING, EC_WORD_BATTLE + + .align 2 + .2byte SPECIES_OCTILLERY, ITEM_SITRUS_BERRY + .2byte MOVE_OCTAZOOKA, MOVE_ICE_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER + .byte 0, 0x00 @ level, ppBonuses + .byte 55, 0, 100, 0, 100, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000000F @ personality + .string "OCTILLERY$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_QWILFISH, ITEM_PERSIM_BERRY + .2byte MOVE_SURF, MOVE_TOXIC, MOVE_REVENGE, MOVE_DOUBLE_TEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 200, 0, 0, 0, 100, 210 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000014 @ personality + .string "QWILFISH$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_REMORAID, ITEM_PECHA_BERRY + .2byte MOVE_SURF, MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_THUNDER_WAVE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000096 @ personality + .string "REMORAID$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_REMORAID, ITEM_WHITE_HERB + .2byte MOVE_WATER_PULSE, MOVE_BLIZZARD, MOVE_FIRE_BLAST, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "REMORAID$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_OCTILLERY, ITEM_FOCUS_BAND + .2byte MOVE_OCTAZOOKA, MOVE_SLUDGE_BOMB, MOVE_THUNDER_WAVE, MOVE_HYPER_BEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 155, 100, 0, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000093 @ personality + .string "OCTILLERY$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_QWILFISH, ITEM_QUICK_CLAW + .2byte MOVE_HYDRO_PUMP, MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_DESTINY_BOND + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 100, 0, 0, 100, 210 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000096 @ personality + .string "QWILFISH$", 11 + .byte 255 @ friendship + + .string "SHANIA$", 11 + .byte FACILITY_CLASS_SWIMMER_FEMALE_2, 0x01, 0x00 + + .2byte EC_WORD_A, EC_WORD_POKEMON, EC_WORD_HEROINE, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM + .2byte EC_WORD_AHAHA, EC_WORD_NO, EC_WORD_WAY, EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_SERIOUSLY + .2byte EC_WORD_WHY, EC_WORD_QUES_EXCL, EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_LIE + .2byte EC_WORD_NICE, EC_WORD_BATTLE, EC_WORD_THANKS, EC_WORD_FOR, EC_WORD_ENTERTAINING, EC_WORD_ME + + .align 2 + .2byte SPECIES_MANTINE, ITEM_BRIGHT_POWDER + .2byte MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000080 @ personality + .string "MANTINE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MAGIKARP, ITEM_CHOICE_BAND + .2byte MOVE_SPLASH, MOVE_TACKLE, MOVE_NONE, MOVE_NONE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000000D @ personality + .string "MAGIKARP$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MANTINE, ITEM_MENTAL_HERB + .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_CONFUSE_RAY, MOVE_ATTRACT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 0, 255, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000000F @ personality + .string "MANTINE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GYARADOS, ITEM_SHELL_BELL + .2byte MOVE_HYPER_BEAM, MOVE_THUNDER_WAVE, MOVE_EARTHQUAKE, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000003 @ personality + .string "GYARADOS$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MAGIKARP, ITEM_CHOICE_BAND + .2byte MOVE_FLAIL, MOVE_TACKLE, MOVE_NONE, MOVE_NONE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000094 @ personality + .string "MAGIKARP$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GYARADOS, ITEM_KINGS_ROCK + .2byte MOVE_DOUBLE_EDGE, MOVE_THUNDER_WAVE, MOVE_EARTHQUAKE, MOVE_DRAGON_DANCE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000080 @ personality + .string "GYARADOS$", 11 + .byte 255 @ friendship + + .byte 0x1d, 0x52, 0x01 + + .align 2 +gUnknown_84804CC:: + .byte 0x18, 0x08, 0x02, 0x0d + .string "BRENNAN$", 11 + .byte FACILITY_CLASS_SAILOR_2, 0x01, 0x00 + + .2byte EC_WORD_TAKE, EC_WORD_THINGS, EC_WORD_EASY, EC_WORD_ELLIPSIS, EC_WORD_THAT_S, EC_WORD_IMPORTANT + .2byte EC_WORD_YOU, EC_WORD_LOSE, EC_WORD_IF, EC_WORD_YOU, EC_WORD_GIVE_UP, EC_WORD_EXCL + .2byte EC_WORD_OOPS, EC_WORD_YOU, EC_WORD_GOT, EC_WORD_AN, EC_WORD_EASY, EC_WORD_WIN + .2byte EC_WORD_I, EC_WORD_DON_T, EC_MOVE(GRUDGE), EC_WORD_YOU, EC_WORD_BUT, EC_WORD_ELLIPSIS + + .align 2 + .2byte SPECIES_LAPRAS, ITEM_CHESTO_BERRY + .2byte MOVE_HYDRO_PUMP, MOVE_PSYCHIC, MOVE_ATTRACT, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 155, 0, 100, 255 @ EVs + .align 2 + trainerid 15, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x0000000F @ personality + .string "LAPRAS$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_KINGDRA, ITEM_CHESTO_BERRY + .2byte MOVE_HYDRO_PUMP, MOVE_BLIZZARD, MOVE_DRAGON_BREATH, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 0, 255, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000008C @ personality + .string "KINGDRA$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MACHAMP, ITEM_SCOPE_LENS + .2byte MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_HYPER_BEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 130, 0, 0, 125 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000004E @ personality + .string "MACHAMP$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CHANSEY, ITEM_ORAN_BERRY + .2byte MOVE_WATER_PULSE, MOVE_SOFT_BOILED, MOVE_MINIMIZE, MOVE_THUNDER_WAVE + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 255, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000005 @ personality + .string "CHANSEY$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_TAUROS, ITEM_LUM_BERRY + .2byte MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB, MOVE_SWAGGER + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 100, 100, 100, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000003 @ personality + .string "TAUROS$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SNORLAX, ITEM_ORAN_BERRY + .2byte MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_DOUBLE_TEAM, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 255, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000021 @ personality + .string "SNORLAX$", 11 + .byte 255 @ friendship + + .string "KADEN$", 11 + .byte FACILITY_CLASS_FISHERMAN_2, 0x01, 0x00 + + .2byte EC_WORD_MY, EC_WORD_FISHING, EC_WORD_FASHION, EC_WORD_APPEAL, EC_WORD_IS, EC_WORD_FANTASTIC + .2byte EC_WORD_MY, EC_WORD_FANTASTIC, EC_WORD_FASHION, EC_WORD_APPEAL, EC_WORD_WINS, EC_WORD_OUT + .2byte EC_WORD_UH_OH, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_SEE, EC_WORD_I, EC_WORD_LOST + .2byte EC_WORD_FASHION, EC_WORD_APPEAL, EC_WORD_WON_T, EC_WORD_GET, EC_WORD_ME, EC_WORD_WINS + + .align 2 + .2byte SPECIES_CHINCHOU, ITEM_MAGNET + .2byte MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_CONFUSE_RAY, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 100, 0, 100, 100, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "CHINCHOU$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_DRATINI, ITEM_SITRUS_BERRY + .2byte MOVE_WATER_PULSE, MOVE_THUNDER_WAVE, MOVE_DRAGON_BREATH, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 0, 100, 100, 100, 100 @ EVs + .align 2 + trainerid 0, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "DRATINI$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SLOWPOKE, ITEM_PECHA_BERRY + .2byte MOVE_WATER_PULSE, MOVE_YAWN, MOVE_DISABLE, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 0, 255, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000096 @ personality + .string "SLOWPOKE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MAGIKARP, ITEM_BRIGHT_POWDER + .2byte MOVE_SPLASH, MOVE_FLAIL, MOVE_TACKLE, MOVE_NONE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 0, 255 @ EVs + .align 2 + trainerid 23, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000017 @ personality + .string "MAGIKARP$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_SEAKING, ITEM_CHERI_BERRY + .2byte MOVE_HORN_DRILL, MOVE_MEGAHORN, MOVE_SUPERSONIC, MOVE_AGILITY + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 0, 255 @ EVs + .align 2 + trainerid 23, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000017 @ personality + .string "SEAKING$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_TENTACRUEL, ITEM_FOCUS_BAND + .2byte MOVE_MIRROR_COAT, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_TOXIC + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000096 @ personality + .string "TENTACRUEL$", 11 + .byte 255 @ friendship + + .string "EMANUEL$", 11 + .byte FACILITY_CLASS_GENTLEMAN_2, 0x01, 0x00 + + .2byte EC_WORD_HMM, EC_WORD_QUES, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_SKILLED, EC_WORD_QUES + .2byte EC_WORD_I, EC_WORD_SEE, EC_WORD_I, EC_WORD_WASN_T, EC_WORD_RIGHT, EC_WORD_ELLIPSIS + .2byte EC_WORD_YOU, EC_WORD_TRULY, EC_WORD_ARE, EC_WORD_A, EC_WORD_MASTER, EC_WORD_TRAINER + .2byte EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_THAT, EC_WORD_I_WAS, EC_WORD_YOUR, EC_WORD_OPPONENT + + .align 2 + .2byte SPECIES_VAPOREON, ITEM_SHELL_BELL + .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_ATTRACT, MOVE_BITE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 0, 255, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000014 @ personality + .string "VAPOREON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ESPEON, ITEM_CHESTO_BERRY + .2byte MOVE_PSYCHIC, MOVE_BITE, MOVE_REFLECT, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 110, 0, 200, 0, 0, 200 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000000F @ personality + .string "ESPEON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_BLISSEY, ITEM_LEFTOVERS + .2byte MOVE_WATER_PULSE, MOVE_MINIMIZE, MOVE_THUNDER_WAVE, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 255, 0, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000005 @ personality + .string "BLISSEY$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_STARMIE, ITEM_LUM_BERRY + .2byte MOVE_SURF, MOVE_ICE_BEAM, MOVE_RECOVER, MOVE_PSYCHIC + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 100, 0, 0, 155 @ EVs + .align 2 + trainerid 20, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000014 @ personality + .string "STARMIE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PERSIAN, ITEM_KINGS_ROCK + .2byte MOVE_SLASH, MOVE_SWAGGER, MOVE_PSYCH_UP, MOVE_FAKE_OUT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 130, 0, 0, 125 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000000D @ personality + .string "PERSIAN$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_AZUMARILL, ITEM_QUICK_CLAW + .2byte MOVE_SURF, MOVE_ENCORE, MOVE_ATTRACT, MOVE_DIG + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 100, 0, 255, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000000 @ personality + .string "AZUMARILL$", 11 + .byte 255 @ friendship + + .byte 0x4b, 0x55, 0x01 + + .align 2 +gUnknown_84808AC:: + .byte 0x19, 0x08, 0x00, 0x0c + .string "JARRETT$", 11 + .byte FACILITY_CLASS_JUGGLER, 0x02, 0x00 + + .2byte EC_WORD_LET_S, EC_WORD_HAVE, EC_WORD_AN, EC_MOVE2(EXPLOSION), EC_WORD_PARTY, EC_WORD_EXCL + .2byte EC_WORD_CONGRATS, EC_WORD_FOR, EC_WORD_YOUR, EC_WORD_LOSS, EC_WORD_PARTY, EC_WORD_KID + .2byte EC_WORD_NICE, EC_MOVE(SELF_DESTRUCT), EC_WORD_THERE, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_PERFECT + .2byte EC_WORD_WANT, EC_WORD_TO, EC_WORD_PARTY, EC_WORD_SOME, EC_WORD_MORE, EC_WORD_QUES + + .align 2 + .2byte SPECIES_ELECTRODE, ITEM_FOCUS_BAND + .2byte MOVE_EXPLOSION, MOVE_LIGHT_SCREEN, MOVE_SCREECH, MOVE_THUNDERBOLT + .byte 0, 0x00 @ level, ppBonuses + .byte 10, 150, 100, 150, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x0000000D @ personality + .string "ELECTRODE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_VOLTORB, ITEM_BRIGHT_POWDER + .2byte MOVE_EXPLOSION, MOVE_FLASH, MOVE_DOUBLE_TEAM, MOVE_THUNDER + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 155, 255, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x0000000D @ personality + .string "VOLTORB$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_WEEZING, ITEM_SALAC_BERRY + .2byte MOVE_EXPLOSION, MOVE_SLUDGE_BOMB, MOVE_DESTINY_BOND, MOVE_THUNDERBOLT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 200, 155, 0, 0, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000007 @ personality + .string "WEEZING$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GOLEM, ITEM_SHELL_BELL + .2byte MOVE_EXPLOSION, MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 100, 0, 0, 150 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000007F @ personality + .string "GOLEM$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_EXEGGCUTE, ITEM_QUICK_CLAW + .2byte MOVE_EXPLOSION, MOVE_STUN_SPORE, MOVE_HYPNOSIS, MOVE_GIGA_DRAIN + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000007 @ personality + .string "EXEGGCUTE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_FORRETRESS, ITEM_LEFTOVERS + .2byte MOVE_EXPLOSION, MOVE_GIGA_DRAIN, MOVE_DIG, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 100, 155, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000084 @ personality + .string "FORRETRESS$", 11 + .byte 255 @ friendship + + dummy_tower_team + dummy_tower_team + .byte 0x6a, 0x5b, 0x01 + + .align 2 +gUnknown_8480C8C:: + .byte 0x1a, 0x08, 0x00, 0x0d + .string "OWEN$", 11 + .byte FACILITY_CLASS_SUPER_NERD, 0x02, 0x00 + + .2byte EC_WORD_HERE_IT_IS, EC_MOVE2(THUNDER_WAVE), EC_WORD_DON_T, EC_MOVE2(WRAP), EC_WORD_ME, EC_WORD_EXCL + .2byte EC_WORD_ACCEPT, EC_WORD_MY, EC_MOVE2(PRESENT), EC_WORD_OF, EC_MOVE2(THUNDER_WAVE), EC_WORD_EXCL + .2byte EC_MOVE2(WRAP), EC_MOVE(BIND), EC_WORD_ELECTRIC, EC_MOVE2(WHIRLWIND), EC_WORD_SPIRALING, EC_WORD_AROUND + .2byte EC_MOVE2(WHIRLWIND), EC_WORD_SPIRALING, 0xFFFF, 0xFFFF, EC_WORD_SPIRALING, EC_MOVE2(WHIRLWIND) + + .align 2 + .2byte SPECIES_MAGNETON, ITEM_LEFTOVERS + .2byte MOVE_PROTECT, MOVE_ZAP_CANNON, MOVE_TOXIC, MOVE_SUPERSONIC + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 125, 255, 0, 130 @ EVs + .align 2 + trainerid 10, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x0000000A @ personality + .string "MAGNETON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PIKACHU, ITEM_LIGHT_BALL + .2byte MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_DOUBLE_TEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 150, 0, 255, 105 @ EVs + .align 2 + trainerid 15, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000000F @ personality + .string "PIKACHU$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_JOLTEON, ITEM_BRIGHT_POWDER + .2byte MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_DOUBLE_TEAM, MOVE_TOXIC + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 100, 0, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000037 @ personality + .string "JOLTEON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_BLISSEY, ITEM_LUM_BERRY + .2byte MOVE_THUNDER_WAVE, MOVE_BLIZZARD, MOVE_WATER_PULSE, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000005 @ personality + .string "BLISSEY$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PORYGON2, ITEM_SALAC_BERRY + .2byte MOVE_THUNDER_WAVE, MOVE_ZAP_CANNON, MOVE_PSYCHIC, MOVE_RECOVER + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 125, 0, 255, 130 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000005 @ personality + .string "PORYGON2$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PORYGON, ITEM_LAX_INCENSE + .2byte MOVE_THUNDER_WAVE, MOVE_ZAP_CANNON, MOVE_DOUBLE_TEAM, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 0, 255 @ EVs + .align 2 + trainerid 5, 0 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000005 @ personality + .string "PORYGON$", 11 + .byte 255 @ friendship + + dummy_tower_team + dummy_tower_team + .byte 0xec, 0x60, 0x01 + + .align 2 +gUnknown_848106C:: + .byte 0x1b, 0x08, 0x00, 0x01 + .string "LORENZO$", 11 + .byte FACILITY_CLASS_PSYCHIC_3, 0x01, 0x00 + + .2byte EC_WORD_THIS, EC_WORD_POWER, EC_WORD_IS, EC_WORD_NOW, EC_WORD_COMPLETE, EC_WORD_EXCL + .2byte EC_WORD_NO, EC_WORD_KEEN_EYE, EC_WORD_CAN, EC_WORD_STOP, EC_WORD_MY, EC_WORD_POWER + .2byte EC_WORD_HERE_IT_IS, EC_WORD_EXCL, EC_MOVE(KINESIS), EC_WORD_EXCL, EC_WORD_ELLIPSIS, EC_WORD_WHAT + .2byte EC_WORD_I, EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_THE, EC_MOVE(KINESIS), EC_WORD_HALL_OF_FAME + + .align 2 + .2byte SPECIES_MR_MIME, ITEM_QUICK_CLAW + .2byte MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN, MOVE_REFLECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 100, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000007 @ personality + .string "MR. MIME$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_HYPNO, ITEM_SALAC_BERRY + .2byte MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_PSYCHIC + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 155, 0, 200, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000008C @ personality + .string "HYPNO$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ALAKAZAM, ITEM_CHOICE_BAND + .2byte MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_PSYCHIC + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 155, 150, 155, 50 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000000F @ personality + .string "ALAKAZAM$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GENGAR, ITEM_LEFTOVERS + .2byte MOVE_THUNDERBOLT, MOVE_SHADOW_BALL, MOVE_HYPNOSIS, MOVE_TOXIC + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 200, 0, 100, 55, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000088 @ personality + .string "GENGAR$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GIRAFARIG, ITEM_LUM_BERRY + .2byte MOVE_THUNDERBOLT, MOVE_CRUNCH, MOVE_BODY_SLAM, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 100, 100, 155, 0, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 1 @ IVs, ability + .4byte 0x00000003 @ personality + .string "GIRAFARIG$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_STARMIE, ITEM_APICOT_BERRY + .2byte MOVE_THUNDERBOLT, MOVE_SURF, MOVE_RECOVER, MOVE_ICE_BEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 55, 250, 150, 55 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x0000000A @ personality + .string "STARMIE$", 11 + .byte 255 @ friendship + + dummy_tower_team + dummy_tower_team + .byte 0x4b, 0x62, 0x01 + + .align 2 +gUnknown_848144C:: + .byte 0x1c, 0x08, 0x01, 0x0b + .string "NIA & CARL$", 11 + .byte FACILITY_CLASS_COOL_COUPLE, 0x04, 0x00 + + .2byte EC_WORD_HERE_GOES, EC_WORD_MY, EC_WORD_DIGITAL, EC_WORD_ROMANTIC, EC_WORD_HERO, EC_WORD_STRATEGY + .2byte EC_WORD_THAT_S, EC_WORD_THE, EC_WORD_DIGITAL, EC_WORD_HYPER, EC_WORD_MODE, EC_WORD_POWER + .2byte EC_WORD_MY, EC_WORD_PERFECT, EC_WORD_STRATEGY, EC_WORD_WAS, EC_MOVE2(BEAT_UP), EC_WORD_QUES + .2byte EC_WORD_MY, EC_WORD_INVINCIBLE, EC_WORD_STRATEGY, EC_WORD_WAS, EC_WORD_DESTROYED, EC_WORD_ELLIPSIS + + .align 2 + .2byte SPECIES_MUK, ITEM_CHOICE_BAND + .2byte MOVE_THUNDERBOLT, MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_BODY_SLAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 155, 0, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 1 @ IVs, ability + .4byte 0x00000007 @ personality + .string "MUK$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GENGAR, ITEM_PETAYA_BERRY + .2byte MOVE_THUNDERBOLT, MOVE_CONFUSE_RAY, MOVE_PSYCHIC, MOVE_EXPLOSION + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 155, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000015 @ personality + .string "GENGAR$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ALAKAZAM, ITEM_GANLON_BERRY + .2byte MOVE_THUNDER_PUNCH, MOVE_PSYCHIC, MOVE_RECOVER, MOVE_REFLECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x0000000A @ personality + .string "ALAKAZAM$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_JOLTEON, ITEM_BRIGHT_POWDER + .2byte MOVE_THUNDERBOLT, MOVE_FLAIL, MOVE_THUNDER_WAVE, MOVE_DOUBLE_TEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 50, 100, 160, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000005 @ personality + .string "JOLTEON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ELECTRODE, ITEM_LIECHI_BERRY + .2byte MOVE_THUNDERBOLT, MOVE_EXPLOSION, MOVE_MIRROR_COAT, MOVE_LIGHT_SCREEN + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 55, 0, 100, 100, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000014 @ personality + .string "ELECTRODE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_RAICHU, ITEM_SALAC_BERRY + .2byte MOVE_THUNDERBOLT, MOVE_COUNTER, MOVE_REVERSAL, MOVE_LIGHT_SCREEN + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 55, 255, 0, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000002 @ personality + .string "RAICHU$", 11 + .byte 255 @ friendship + + .string "NIA & CARL$", 11 + .byte FACILITY_CLASS_COOL_COUPLE, 0x04, 0x00 + + .2byte EC_WORD_MASTER, EC_WORD_COMPLETE, EC_WORD_FASHION, EC_WORD_SYSTEM, EC_WORD_START, EC_WORD_EXCL + .2byte EC_WORD_THAT_S_IT_EXCL, EC_WORD_THE, EC_WORD_POWER, EC_WORD_OF, EC_WORD_OUR, EC_WORD_SYSTEM + .2byte EC_WORD_OKAY, EC_WORD_EXCL, EC_MOVE(THUNDERBOLT), EC_WORD_RUN_AWAY, EC_WORD_SYSTEM, EC_WORD_START + .2byte EC_WORD_GO, EC_WORD_ON, EC_WORD_PLEASE, EC_WORD_EXCL, EC_WORD_TCH, EC_WORD_ELLIPSIS + + .align 2 + .2byte SPECIES_KANGASKHAN, ITEM_SALAC_BERRY + .2byte MOVE_SHADOW_BALL, MOVE_REVERSAL, MOVE_ENDURE, MOVE_FAKE_OUT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 105, 0, 0, 150 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000003 @ personality + .string "KANGASKHAN$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_TAUROS, ITEM_LUM_BERRY + .2byte MOVE_DOUBLE_EDGE, MOVE_ROCK_TOMB, MOVE_SURF, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 100, 0, 0, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000003 @ personality + .string "TAUROS$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MILTANK, ITEM_SALAC_BERRY + .2byte MOVE_BODY_SLAM, MOVE_SHADOW_BALL, MOVE_MILK_DRINK, MOVE_ROCK_TOMB + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 155, 50, 250, 0, 55 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000003 @ personality + .string "MILTANK$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_RHYDON, ITEM_CHOICE_BAND + .2byte MOVE_THUNDERBOLT, MOVE_MEGAHORN, MOVE_HORN_DRILL, MOVE_ROCK_TOMB + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 1 @ IVs, ability + .4byte 0x00000080 @ personality + .string "RHYDON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_DRAGONITE, ITEM_SCOPE_LENS + .2byte MOVE_BLIZZARD, MOVE_SURF, MOVE_OUTRAGE, MOVE_FLAMETHROWER + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 0, 255, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 0 @ IVs, ability + .4byte 0x00000091 @ personality + .string "DRAGONITE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_LAPRAS, ITEM_SHELL_BELL + .2byte MOVE_THUNDERBOLT, MOVE_BLIZZARD, MOVE_SURF, MOVE_HORN_DRILL + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 155, 0, 255, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 31, 31, 31, 31, 31, 31, 1 @ IVs, ability + .4byte 0x00000091 @ personality + .string "LAPRAS$", 11 + .byte 255 @ friendship + + dummy_tower_team + .byte 0x60, 0x63, 0x01 + + .align 2 +gUnknown_848182C:: + .byte 0x1d, 0x08, 0x01, 0x03 + .string "AXE & REN$", 11 + .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02, 0x00 + + .2byte EC_WORD_IT_S, EC_WORD_GOING, EC_WORD_TO, EC_WORD_GET, EC_WORD_AWFULLY, EC_WORD_COLD + .2byte EC_WORD_THAT_S, EC_WORD_THAT, EC_WORD_MAN, EC_WORD_I_AM, EC_WORD_COLD, EC_WORD_EXCL + .2byte EC_WORD_I, EC_WORD_CAN_T_WIN, EC_WORD_IN, EC_WORD_THIS, EC_MOVE(SHEER_COLD), EC_WORD_ELLIPSIS + .2byte EC_WORD_THIS, EC_MOVE(SHEER_COLD), EC_WORD_HAS, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_SHAKY + + .align 2 + .2byte SPECIES_LANTURN, ITEM_BRIGHT_POWDER + .2byte MOVE_RAIN_DANCE, MOVE_SURF, MOVE_THUNDER, MOVE_ICE_BEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 255, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000A @ personality + .string "LANTURN$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MANTINE, ITEM_PETAYA_BERRY + .2byte MOVE_RAIN_DANCE, MOVE_SURF, MOVE_CONFUSE_RAY, MOVE_ICE_BEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 155, 100, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000014 @ personality + .string "MANTINE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_DEWGONG, ITEM_LEFTOVERS + .2byte MOVE_RAIN_DANCE, MOVE_SURF, MOVE_SHEER_COLD, MOVE_BLIZZARD + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 100, 100, 0, 255, 55 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000011 @ personality + .string "DEWGONG$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CLOYSTER, ITEM_KINGS_ROCK + .2byte MOVE_RAIN_DANCE, MOVE_SURF, MOVE_ICE_BEAM, MOVE_HYPER_BEAM + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000011 @ personality + .string "CLOYSTER$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_TENTACRUEL, ITEM_QUICK_CLAW + .2byte MOVE_RAIN_DANCE, MOVE_SURF, MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 100, 100, 255, 55 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000A @ personality + .string "TENTACRUEL$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GYARADOS, ITEM_LIECHI_BERRY + .2byte MOVE_RAIN_DANCE, MOVE_SURF, MOVE_DRAGON_DANCE, MOVE_RETURN + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000003 @ personality + .string "GYARADOS$", 11 + .byte 255 @ friendship + + .string "AXE & REN$", 11 + .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02, 0x00 + + .2byte EC_WORD_OUR, EC_WORD_SWIFT_SWIM, EC_WORD_LEFT, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_COLD + .2byte EC_WORD_I, EC_WORD_WON, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_HOT + .2byte EC_WORD_I_AM, EC_WORD_HUNGRY, EC_WORD_FOR, EC_WORD_ANY, EC_WORD_HOT, EC_WORD_EATS + .2byte EC_WORD_SISTER, EC_WORD_I, EC_WORD_NEED, EC_WORD_SOMETHING, EC_WORD_HOT, EC_WORD_PLEASE + + .align 2 + .2byte SPECIES_ELECTABUZZ, ITEM_SCOPE_LENS + .2byte MOVE_THUNDER, MOVE_PSYCHIC, MOVE_CROSS_CHOP, MOVE_LIGHT_SCREEN + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 155, 155, 100, 100, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000040 @ personality + .string "ELECTABUZZ$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MAGNETON, ITEM_PETAYA_BERRY + .2byte MOVE_THUNDER, MOVE_SONIC_BOOM, MOVE_METAL_SOUND, MOVE_REFLECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 155, 255, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x0000000A @ personality + .string "MAGNETON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PORYGON, ITEM_LEFTOVERS + .2byte MOVE_THUNDER, MOVE_PSYCHIC, MOVE_BLIZZARD, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 255, 0, 0, 0, 255, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000011 @ personality + .string "PORYGON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_DRAGONAIR, ITEM_SHELL_BELL + .2byte MOVE_THUNDER, MOVE_SURF, MOVE_BLIZZARD, MOVE_OUTRAGE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 50, 155, 255, 50 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000A @ personality + .string "DRAGONAIR$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PERSIAN, ITEM_SHELL_BELL + .2byte MOVE_THUNDER, MOVE_FAKE_OUT, MOVE_WATER_PULSE, MOVE_RETURN + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 155, 0, 200, 155, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000B @ personality + .string "PERSIAN$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_STARMIE, ITEM_GANLON_BERRY + .2byte MOVE_THUNDER, MOVE_SURF, MOVE_RECOVER, MOVE_REFLECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 95, 255, 100, 60 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000005 @ personality + .string "STARMIE$", 11 + .byte 255 @ friendship + + dummy_tower_team + .byte 0x72, 0x52, 0x01 + + .align 2 +gUnknown_8481C0C:: + .byte 0x1e, 0x08, 0x01, 0x05 + .string "KATI & GEB$", 11 + .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02, 0x00 + + .2byte EC_WORD_WELCOME, EC_WORD_TO, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_MOVE2(THUNDER_WAVE), EC_MOVE(SANDSTORM) + .2byte EC_WORD_LALALA, EC_WORD_LALALA, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_WORD_LALALA, EC_WORD_LIFE + .2byte EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_MY, EC_MOVE2(FRUSTRATION) + .2byte EC_WORD_YOU_RE, EC_WORD_JUST, EC_WORD_A_LITTLE, EC_WORD_KID, EC_WORD_AHAHA, EC_WORD_EXCL + + .align 2 + .2byte SPECIES_FLAAFFY, ITEM_LEFTOVERS + .2byte MOVE_ATTRACT, MOVE_PROTECT, MOVE_THUNDERBOLT, MOVE_REFLECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000084 @ personality + .string "FLAAFFY$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_QUAGSIRE, ITEM_QUICK_CLAW + .2byte MOVE_ATTRACT, MOVE_SURF, MOVE_AMNESIA, MOVE_BLIZZARD + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 100, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000093 @ personality + .string "QUAGSIRE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PIKACHU, ITEM_SALAC_BERRY + .2byte MOVE_ATTRACT, MOVE_REVERSAL, MOVE_THUNDERBOLT, MOVE_IRON_TAIL + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 155, 100, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x0000008A @ personality + .string "PIKACHU$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ELECTABUZZ, ITEM_LIECHI_BERRY + .2byte MOVE_ATTRACT, MOVE_COUNTER, MOVE_ICE_PUNCH, MOVE_BODY_SLAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 150, 255, 0, 105 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000046 @ personality + .string "ELECTABUZZ$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_TOGETIC, ITEM_KINGS_ROCK + .2byte MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_ANCIENT_POWER, MOVE_WATER_PULSE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x0000002D @ personality + .string "TOGETIC$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GOLDUCK, ITEM_SCOPE_LENS + .2byte MOVE_ATTRACT, MOVE_SURF, MOVE_DIG, MOVE_CROSS_CHOP + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 155, 50, 255, 0, 50 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000080 @ personality + .string "GOLDUCK$", 11 + .byte 255 @ friendship + + .string "KATI & GEB$", 11 + .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02, 0x00 + + .2byte EC_WORD_I_AM, EC_WORD_PLUS, EC_WORD_YOU_RE, EC_WORD_MINUS, EC_WORD_LOVEY_DOVEY, EC_WORD_MAGNET_PULL + .2byte EC_WORD_DON_T, EC_WORD_STOP, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_WORD_LOCOMOTIVE, EC_WORD_EXCL + .2byte EC_WORD_HIS, EC_WORD_CRY, EC_WORD_HAS, EC_WORD_CUTE_CHARM, EC_WORD_TOO, EC_WORD_EXCL + .2byte EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_TIME, EC_WORD_TO, EC_WORD_TALK, EC_WORD_QUES + + .align 2 + .2byte SPECIES_PICHU, ITEM_FOCUS_BAND + .2byte MOVE_ATTRACT, MOVE_PROTECT, MOVE_SWEET_KISS, MOVE_REVERSAL + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 255, 0, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000003 @ personality + .string "PICHU$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ELEKID, ITEM_BRIGHT_POWDER + .2byte MOVE_ATTRACT, MOVE_PROTECT, MOVE_DOUBLE_TEAM, MOVE_FOCUS_PUNCH + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 130, 0, 0, 125 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000002 @ personality + .string "ELEKID$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_TOGEPI, ITEM_FOCUS_BAND + .2byte MOVE_ATTRACT, MOVE_PROTECT, MOVE_YAWN, MOVE_WATER_PULSE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x0000000F @ personality + .string "TOGEPI$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PSYDUCK, ITEM_BRIGHT_POWDER + .2byte MOVE_ATTRACT, MOVE_PROTECT, MOVE_DIG, MOVE_DIVE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000016 @ personality + .string "PSYDUCK$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MAREEP, ITEM_BRIGHT_POWDER + .2byte MOVE_ATTRACT, MOVE_PROTECT, MOVE_LIGHT_SCREEN, MOVE_THUNDERBOLT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 0 @ IVs, ability + .4byte 0x00000007 @ personality + .string "MAREEP$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_WOOPER, ITEM_FOCUS_BAND + .2byte MOVE_ATTRACT, MOVE_PROTECT, MOVE_SURF, MOVE_YAWN + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability + .4byte 0x00000007 @ personality + .string "WOOPER$", 11 + .byte 255 @ friendship + + dummy_tower_team + .byte 0x66, 0x59, 0x01 + + .align 2 +gUnknown_8481FEC:: + .byte 0x1f, 0x08, 0x02, 0x07 + .string "BEN$", 11 + .byte FACILITY_CLASS_ROCKER, 0x01, 0x00 + + .2byte EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER + .2byte EC_WORD_STATIC, EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_YES, EC_WORD_IT, EC_WORD_IS + .2byte EC_WORD_ELECTRIC, EC_WORD_ABOUT, EC_WORD_MY, EC_WORD_DIGITAL, EC_WORD_TELEVISION, EC_WORD_I_AM + .2byte EC_WORD_ELECTRIC, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_A, EC_WORD_NATURAL, EC_WORD_POWER + + .align 2 + .2byte SPECIES_ELECTRODE, ITEM_LIECHI_BERRY + .2byte MOVE_THUNDERBOLT, MOVE_MIRROR_COAT, MOVE_EXPLOSION, MOVE_THUNDER_WAVE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 55, 255, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000014 @ personality + .string "ELECTRODE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_ELECTABUZZ, ITEM_CHOICE_BAND + .2byte MOVE_THUNDERBOLT, MOVE_FIRE_PUNCH, MOVE_PSYCHIC, MOVE_ICE_PUNCH + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 155, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000F @ personality + .string "ELECTABUZZ$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_LANTURN, ITEM_CHOICE_BAND + .2byte MOVE_THUNDERBOLT, MOVE_DOUBLE_EDGE, MOVE_ICE_BEAM, MOVE_HYDRO_PUMP + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 125, 0, 255, 130 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000008E @ personality + .string "LANTURN$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MAGNETON, ITEM_LIECHI_BERRY + .2byte MOVE_ZAP_CANNON, MOVE_HYPER_BEAM, MOVE_LOCK_ON, MOVE_SUPERSONIC + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 200, 255, 0, 55 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000014 @ personality + .string "MAGNETON$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_RAICHU, ITEM_SALAC_BERRY + .2byte MOVE_DOUBLE_EDGE, MOVE_MEGA_KICK, MOVE_REVERSAL, MOVE_BODY_SLAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 80, 100, 0, 75 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000008A @ personality + .string "RAICHU$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_AMPHAROS, ITEM_SHELL_BELL + .2byte MOVE_THUNDERBOLT, MOVE_MEGA_KICK, MOVE_COUNTER, MOVE_BODY_SLAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 200, 150, 0, 10, 150 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000007 @ personality + .string "AMPHAROS$", 11 + .byte 255 @ friendship + + .string "CAMDEN$", 11 + .byte FACILITY_CLASS_ENGINEER, 0x01, 0x00 + + .2byte EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER + .2byte EC_WORD_A, EC_MOVE(THUNDERBOLT), EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_TOO, EC_WORD_EXCL + .2byte EC_WORD_ELECTRIC, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_ABOUT, EC_WORD_WIRELESS, EC_WORD_LINK + .2byte EC_WORD_ELECTRIC, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_A, EC_WORD_TREASURE, EC_WORD_EXCL + + .align 2 + .2byte SPECIES_GRANBULL, ITEM_CHOICE_BAND + .2byte MOVE_THUNDERBOLT, MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 55, 0, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000002 @ personality + .string "GRANBULL$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PERSIAN, ITEM_SCOPE_LENS + .2byte MOVE_THUNDERBOLT, MOVE_WATER_PULSE, MOVE_HYPNOSIS, MOVE_SLASH + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 100, 55, 255, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000080 @ personality + .string "PERSIAN$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_LICKITUNG, ITEM_LEFTOVERS + .2byte MOVE_PROTECT, MOVE_SURF, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL + .byte 0, 0x00 @ level, ppBonuses + .byte 200, 255, 0, 0, 55, 0 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000002 @ personality + .string "LICKITUNG$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_RATICATE, ITEM_SALAC_BERRY + .2byte MOVE_THUNDERBOLT, MOVE_HYPER_FANG, MOVE_SUPER_FANG, MOVE_REVERSAL + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 100, 50, 0, 105 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000094 @ personality + .string "RATICATE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PRIMEAPE, ITEM_SCOPE_LENS + .2byte MOVE_THUNDERBOLT, MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 130, 0, 0, 125 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000002 @ personality + .string "PRIMEAPE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_KANGASKHAN, ITEM_LUM_BERRY + .2byte MOVE_THUNDERBOLT, MOVE_SURF, MOVE_CRUSH_CLAW, MOVE_REST + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 100, 155, 0, 100, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000011 @ personality + .string "KANGASKHAN$", 11 + .byte 255 @ friendship + + .string "ZACKERY$", 11 + .byte FACILITY_CLASS_SCIENTIST, 0x01, 0x00 + + .2byte EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER + .2byte EC_MOVE2(THUNDER_SHOCK), EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_YOU, EC_WORD_KNOW, EC_WORD_QUES + .2byte EC_WORD_ELECTRIC, EC_WORD_EXCL, EC_MOVE2(FLASH), EC_MOVE2(FLASH), EC_MOVE2(FLASH), EC_WORD_EXCL_EXCL + .2byte EC_WORD_ALL, EC_WORD_TOGETHER, EC_WORD_NOW, EC_WORD_EXCL, EC_MOVE(SPARK), EC_MOVE(SPARK) + + .align 2 + .2byte SPECIES_WEEZING, ITEM_CHOICE_BAND + .2byte MOVE_THUNDERBOLT, MOVE_SLUDGE_BOMB, MOVE_FLAMETHROWER, MOVE_SHADOW_BALL + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 0, 0, 155, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000002 @ personality + .string "WEEZING$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MUK, ITEM_LEFTOVERS + .2byte MOVE_THUNDERBOLT, MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN, MOVE_CURSE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 150, 0, 255, 105 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 1 @ IVs, ability + .4byte 0x00000084 @ personality + .string "MUK$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_GENGAR, ITEM_PETAYA_BERRY + .2byte MOVE_THUNDERBOLT, MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_WILL_O_WISP + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 250, 155, 105 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000A @ personality + .string "GENGAR$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MISDREAVUS, ITEM_SALAC_BERRY + .2byte MOVE_PSYCHIC, MOVE_GRUDGE, MOVE_CONFUSE_RAY, MOVE_DESTINY_BOND + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 0, 150, 105, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x0000000A @ personality + .string "MISDREAVUS$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CROBAT, ITEM_BRIGHT_POWDER + .2byte MOVE_SLUDGE_BOMB, MOVE_CONFUSE_RAY, MOVE_GIGA_DRAIN, MOVE_TOXIC + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 200, 110, 0, 200 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000087 @ personality + .string "CROBAT$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_HAUNTER, ITEM_SALAC_BERRY + .2byte MOVE_DESTINY_BOND, MOVE_HYPNOSIS, MOVE_CONFUSE_RAY, MOVE_TOXIC + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 155, 100, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 20, 20, 20, 20, 20, 20, 0 @ IVs, ability + .4byte 0x00000091 @ personality + .string "HAUNTER$", 11 + .byte 255 @ friendship + + .byte 0x49, 0x4f, 0x01 + + .align 2 +gUnknown_84823CC:: + .byte 0x20, 0x08, 0x02, 0x0e + .string "MAURA$", 11 + .byte FACILITY_CLASS_BEAUTY_2, 0x02, 0x00 + + .2byte EC_WORD_I_AM, EC_WORD_THE, EC_WORD_GROUP, EC_WORD_LEADER, EC_WORD_EXCL, 0xFFFF + .2byte EC_WORD_WHAT, EC_WORD_AM, EC_WORD_I, EC_WORD_LEADER, EC_WORD_OF, EC_WORD_QUES + .2byte EC_WORD_I_AM, EC_WORD_NO, EC_WORD_LEADER, EC_WORD_IT_S, EC_WORD_A_LITTLE, EC_WORD_LIE + .2byte EC_WORD_HEY, EC_WORD_EXCL, EC_WORD_THE, EC_WORD_GROUND, EC_WORD_IS, EC_WORD_SLIMY + + .align 2 + .2byte SPECIES_PICHU, ITEM_FOCUS_BAND + .2byte MOVE_THUNDER_SHOCK, MOVE_THUNDER_WAVE, MOVE_SWEET_KISS, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000005 @ personality + .string "PICHU$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_MAREEP, ITEM_BRIGHT_POWDER + .2byte MOVE_THUNDER_SHOCK, MOVE_CHARGE, MOVE_PROTECT, MOVE_RETURN + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000007 @ personality + .string "MAREEP$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_IGGLYBUFF, ITEM_QUICK_CLAW + .2byte MOVE_SING, MOVE_SWEET_KISS, MOVE_PRESENT, MOVE_PROTECT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000007 @ personality + .string "IGGLYBUFF$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CLEFFA, ITEM_LAX_INCENSE + .2byte MOVE_SING, MOVE_SWEET_KISS, MOVE_ENCORE, MOVE_METRONOME + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000016 @ personality + .string "CLEFFA$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_NIDORAN_F, ITEM_SITRUS_BERRY + .2byte MOVE_CRUNCH, MOVE_DIG, MOVE_FLATTER, MOVE_ATTRACT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000016 @ personality + .string "NIDORAN♀$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_NIDORAN_M, ITEM_SITRUS_BERRY + .2byte MOVE_HORN_DRILL, MOVE_SLUDGE_BOMB, MOVE_FLATTER, MOVE_ATTRACT + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 255, 0, 0, 255 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000007 @ personality + .string "NIDORAN♂$", 11 + .byte 255 @ friendship + + .string "MIKAELA$", 11 + .byte FACILITY_CLASS_LASS_2, 0x01, 0x00 + + .2byte EC_WORD_I_AM, EC_WORD_REALLY, EC_WORD_THE, EC_WORD_NO_1, EC_WORD_TRAINER, EC_WORD_HERE + .2byte EC_WORD_NEVER, EC_WORD_SAID, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_AT + .2byte EC_WORD_NEXT, EC_WORD_TIME, EC_WORD_I, EC_WORD_WILL, EC_WORD_BE, EC_WORD_OVERWHELMING + .2byte EC_WORD_YOU, EC_MOVE2(SPIT_UP), EC_WORD_ME, EC_WORD_AS_IF, EC_WORD_I_AM, EC_WORD_NOTHING + + .align 2 + .2byte SPECIES_NIDORINO, ITEM_CHOICE_BAND + .2byte MOVE_SHOCK_WAVE, MOVE_HORN_DRILL, MOVE_ICE_BEAM, MOVE_IRON_TAIL + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 155, 0, 255, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000007 @ personality + .string "NIDORINO$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_NIDORINA, ITEM_CHOICE_BAND + .2byte MOVE_SHOCK_WAVE, MOVE_CRUNCH, MOVE_BODY_SLAM, MOVE_COUNTER + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 155, 0, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000016 @ personality + .string "NIDORINA$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_PIKACHU, ITEM_LIGHT_BALL + .2byte MOVE_SHOCK_WAVE, MOVE_THUNDER_WAVE, MOVE_COUNTER, MOVE_BODY_SLAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 200, 0, 255, 55 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000011 @ personality + .string "PIKACHU$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_FLAAFFY, ITEM_BRIGHT_POWDER + .2byte MOVE_SHOCK_WAVE, MOVE_DOUBLE_TEAM, MOVE_SEISMIC_TOSS, MOVE_BODY_SLAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 100, 0, 0, 150 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000007 @ personality + .string "FLAAFFY$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_JIGGLYPUFF, ITEM_CHOICE_BAND + .2byte MOVE_SHOCK_WAVE, MOVE_SHADOW_BALL, MOVE_FOCUS_PUNCH, MOVE_BODY_SLAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 150, 0, 0, 105 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000016 @ personality + .string "JIGGLYPUFF$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CLEFAIRY, ITEM_CHOICE_BAND + .2byte MOVE_SHOCK_WAVE, MOVE_METEOR_MASH, MOVE_MOONLIGHT, MOVE_BODY_SLAM + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 100, 0, 0, 155 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000007 @ personality + .string "CLEFAIRY$", 11 + .byte 255 @ friendship + + .string "FLINT$", 11 + .byte FACILITY_CLASS_ENGINEER, 0x04, 0x00 + + .2byte EC_WORD_I_AM, EC_WORD_THE, EC_MOVE2(MILK_DRINK), EC_WORD_WORLD, EC_WORD_LEADER, EC_WORD_EXCL + .2byte EC_WORD_I_VE, EC_WORD_WON, EC_WORD_THIS, EC_MOVE2(MILK_DRINK), EC_WORD_MATCH, EC_WORD_EXCL + .2byte EC_WORD_I, EC_WORD_CAN_T, EC_WORD_DRINK, EC_WORD_ANY, EC_WORD_MORE, EC_WORD_DRINKS + .2byte EC_WORD_WHOAH, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_DROOLING, EC_WORD_ALL, EC_WORD_OVER + + .align 2 + .2byte SPECIES_WIGGLYTUFF, ITEM_CHOICE_BAND + .2byte MOVE_THUNDERBOLT, MOVE_PSYCHIC, MOVE_WATER_PULSE, MOVE_FLAMETHROWER + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 0, 155, 0, 255, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x000000CF @ personality + .string "WIGGLYTUFF$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_CLEFABLE, ITEM_SALAC_BERRY + .2byte MOVE_THUNDERBOLT, MOVE_SOFT_BOILED, MOVE_METEOR_MASH, MOVE_DOUBLE_EDGE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 100, 0, 0, 150 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x000000CF @ personality + .string "CLEFABLE$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_NIDOQUEEN, ITEM_CHOICE_BAND + .2byte MOVE_THUNDERBOLT, MOVE_CRUNCH, MOVE_SUPERPOWER, MOVE_SURF + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 200, 110, 0, 100, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000007 @ personality + .string "NIDOQUEEN$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_NIDOKING, ITEM_CHOICE_BAND + .2byte MOVE_THUNDERBOLT, MOVE_HYPER_BEAM, MOVE_MEGAHORN, MOVE_SHADOW_BALL + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 150, 0, 0, 100 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000002 @ personality + .string "NIDOKING$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_RAICHU, ITEM_SALAC_BERRY + .2byte MOVE_THUNDERBOLT, MOVE_REVERSAL, MOVE_IRON_TAIL, MOVE_DOUBLE_EDGE + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 155, 150, 100, 0, 105 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000080 @ personality + .string "RAICHU$", 11 + .byte 255 @ friendship + + .align 2 + .2byte SPECIES_AMPHAROS, ITEM_LUM_BERRY + .2byte MOVE_THUNDERBOLT, MOVE_REST, MOVE_BODY_SLAM, MOVE_IRON_TAIL + .byte 0, 0x00 @ level, ppBonuses + .byte 0, 255, 150, 0, 0, 105 @ EVs + .align 2 + trainerid 0, 4096 @ OT ID + ivs 15, 15, 15, 15, 15, 15, 0 @ IVs, ability + .4byte 0x00000080 @ personality + .string "AMPHAROS$", 11 + .byte 255 @ friendship + + .byte 0x80, 0x6b, 0x01 diff --git a/graphics/berry_fix/gba_small.bin b/graphics/berry_fix/gba_small.bin Binary files differnew file mode 100644 index 000000000..86a29cf70 --- /dev/null +++ b/graphics/berry_fix/gba_small.bin diff --git a/graphics/berry_fix/gba_small.pal b/graphics/berry_fix/gba_small.pal new file mode 100644 index 000000000..0e177217f --- /dev/null +++ b/graphics/berry_fix/gba_small.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +0 0 0 +255 255 255 +32 32 32 +172 172 172 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +164 213 90 +238 230 197 +148 197 213 +32 57 98 +106 148 197 +90 106 156 +255 255 255 +164 213 90 +32 32 32 +123 123 205 +255 255 255 +74 74 115 +197 197 197 +98 98 189 +106 106 197 +98 123 57 +131 131 131 +222 41 0 +189 123 41 +180 180 222 +0 0 0 +0 0 0 diff --git a/graphics/berry_fix/gba_small.png b/graphics/berry_fix/gba_small.png Binary files differnew file mode 100644 index 000000000..59bfaf4d5 --- /dev/null +++ b/graphics/berry_fix/gba_small.png diff --git a/graphics/berry_fix/gba_transfer.bin b/graphics/berry_fix/gba_transfer.bin Binary files differnew file mode 100644 index 000000000..077beaa83 --- /dev/null +++ b/graphics/berry_fix/gba_transfer.bin diff --git a/graphics/berry_fix/gba_transfer.pal b/graphics/berry_fix/gba_transfer.pal new file mode 100644 index 000000000..0e177217f --- /dev/null +++ b/graphics/berry_fix/gba_transfer.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +0 0 0 +255 255 255 +32 32 32 +172 172 172 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +164 213 90 +238 230 197 +148 197 213 +32 57 98 +106 148 197 +90 106 156 +255 255 255 +164 213 90 +32 32 32 +123 123 205 +255 255 255 +74 74 115 +197 197 197 +98 98 189 +106 106 197 +98 123 57 +131 131 131 +222 41 0 +189 123 41 +180 180 222 +0 0 0 +0 0 0 diff --git a/graphics/berry_fix/gba_transfer.png b/graphics/berry_fix/gba_transfer.png Binary files differnew file mode 100644 index 000000000..a741fe1b9 --- /dev/null +++ b/graphics/berry_fix/gba_transfer.png diff --git a/graphics/berry_fix/gba_transfer_error.bin b/graphics/berry_fix/gba_transfer_error.bin Binary files differnew file mode 100644 index 000000000..9d1cfdae4 --- /dev/null +++ b/graphics/berry_fix/gba_transfer_error.bin diff --git a/graphics/berry_fix/gba_transfer_error.pal b/graphics/berry_fix/gba_transfer_error.pal new file mode 100644 index 000000000..0e177217f --- /dev/null +++ b/graphics/berry_fix/gba_transfer_error.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +0 0 0 +255 255 255 +32 32 32 +172 172 172 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +164 213 90 +238 230 197 +148 197 213 +32 57 98 +106 148 197 +90 106 156 +255 255 255 +164 213 90 +32 32 32 +123 123 205 +255 255 255 +74 74 115 +197 197 197 +98 98 189 +106 106 197 +98 123 57 +131 131 131 +222 41 0 +189 123 41 +180 180 222 +0 0 0 +0 0 0 diff --git a/graphics/berry_fix/gba_transfer_error.png b/graphics/berry_fix/gba_transfer_error.png Binary files differnew file mode 100644 index 000000000..766b9f28e --- /dev/null +++ b/graphics/berry_fix/gba_transfer_error.png diff --git a/graphics/berry_fix/gba_transfer_highlight.bin b/graphics/berry_fix/gba_transfer_highlight.bin Binary files differnew file mode 100644 index 000000000..4683bab3a --- /dev/null +++ b/graphics/berry_fix/gba_transfer_highlight.bin diff --git a/graphics/berry_fix/gba_transfer_highlight.pal b/graphics/berry_fix/gba_transfer_highlight.pal new file mode 100644 index 000000000..0e177217f --- /dev/null +++ b/graphics/berry_fix/gba_transfer_highlight.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +0 0 0 +255 255 255 +32 32 32 +172 172 172 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +164 213 90 +238 230 197 +148 197 213 +32 57 98 +106 148 197 +90 106 156 +255 255 255 +164 213 90 +32 32 32 +123 123 205 +255 255 255 +74 74 115 +197 197 197 +98 98 189 +106 106 197 +98 123 57 +131 131 131 +222 41 0 +189 123 41 +180 180 222 +0 0 0 +0 0 0 diff --git a/graphics/berry_fix/gba_transfer_highlight.png b/graphics/berry_fix/gba_transfer_highlight.png Binary files differnew file mode 100644 index 000000000..25b47d036 --- /dev/null +++ b/graphics/berry_fix/gba_transfer_highlight.png diff --git a/graphics/berry_fix/logo.bin b/graphics/berry_fix/logo.bin Binary files differnew file mode 100644 index 000000000..673ff47e4 --- /dev/null +++ b/graphics/berry_fix/logo.bin diff --git a/graphics/berry_fix/logo.pal b/graphics/berry_fix/logo.pal new file mode 100644 index 000000000..4c76f3f9a --- /dev/null +++ b/graphics/berry_fix/logo.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +255 255 255 +32 32 32 +172 172 172 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +164 213 90 +238 230 197 +148 197 213 +32 57 98 +106 148 197 +90 106 156 +255 255 255 +164 213 90 +32 32 32 +123 123 205 +255 255 255 +74 74 115 +197 197 197 +98 98 189 +106 106 197 +98 123 57 +131 131 131 +222 41 0 +189 123 41 +180 180 222 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +238 238 238 +222 222 230 +205 205 222 +197 197 205 +180 180 197 +164 164 189 +156 156 172 +139 139 164 +123 123 156 +115 115 139 +98 98 131 +82 82 123 +74 74 115 +32 32 32 diff --git a/graphics/berry_fix/logo.png b/graphics/berry_fix/logo.png Binary files differnew file mode 100644 index 000000000..ab91d5a26 --- /dev/null +++ b/graphics/berry_fix/logo.png diff --git a/graphics/berry_fix/window.bin b/graphics/berry_fix/window.bin Binary files differnew file mode 100644 index 000000000..100c5da6f --- /dev/null +++ b/graphics/berry_fix/window.bin diff --git a/graphics/berry_fix/window.pal b/graphics/berry_fix/window.pal new file mode 100644 index 000000000..0e177217f --- /dev/null +++ b/graphics/berry_fix/window.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +0 0 0 +255 255 255 +32 32 32 +172 172 172 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +164 213 90 +238 230 197 +148 197 213 +32 57 98 +106 148 197 +90 106 156 +255 255 255 +164 213 90 +32 32 32 +123 123 205 +255 255 255 +74 74 115 +197 197 197 +98 98 189 +106 106 197 +98 123 57 +131 131 131 +222 41 0 +189 123 41 +180 180 222 +0 0 0 +0 0 0 diff --git a/graphics/berry_fix/window.png b/graphics/berry_fix/window.png Binary files differnew file mode 100644 index 000000000..5e437e727 --- /dev/null +++ b/graphics/berry_fix/window.png diff --git a/include/cereader_tool.h b/include/cereader_tool.h index 28ef526eb..05677dc79 100644 --- a/include/cereader_tool.h +++ b/include/cereader_tool.h @@ -4,6 +4,6 @@ #include "global.h" bool32 sub_815D794(u8 *); -u8 sub_815D6B4(u8 *); +bool32 sub_815D6B4(u8 *); #endif //GUARD_CEREADER_TOOL_H diff --git a/include/constants/facility_trainer_classes.h b/include/constants/facility_trainer_classes.h new file mode 100644 index 000000000..10500ff35 --- /dev/null +++ b/include/constants/facility_trainer_classes.h @@ -0,0 +1,155 @@ +#ifndef GUARD_CONSTANTS_FACILITY_TRAINER_CLASSES_H +#define GUARD_CONSTANTS_FACILITY_TRAINER_CLASSES_H + +#define FACILITY_CLASS_AQUA_LEADER 0x00 +#define FACILITY_CLASS_TEAM_AQUA 0x01 +#define FACILITY_CLASS_TEAM_AQUA_2 0x02 +#define FACILITY_CLASS_AROMA_LADY 0x03 +#define FACILITY_CLASS_RUIN_MANIAC 0x04 +#define FACILITY_CLASS_INTERVIEWER 0x05 +#define FACILITY_CLASS_TUBER 0x06 +#define FACILITY_CLASS_TUBER_2 0x07 +#define FACILITY_CLASS_COOLTRAINER 0x08 +#define FACILITY_CLASS_COOLTRAINER_2 0x09 +#define FACILITY_CLASS_HEX_MANIAC 0x0A +#define FACILITY_CLASS_LADY 0x0B +#define FACILITY_CLASS_BEAUTY 0x0C +#define FACILITY_CLASS_RICH_BOY 0x0D +#define FACILITY_CLASS_POKEMANIAC 0x0E +#define FACILITY_CLASS_SWIMMER_MALE 0x0F +#define FACILITY_CLASS_BLACK_BELT 0x10 +#define FACILITY_CLASS_GUITARIST 0x11 +#define FACILITY_CLASS_KINDLER 0x12 +#define FACILITY_CLASS_CAMPER 0x13 +#define FACILITY_CLASS_BUG_MANIAC 0x14 +#define FACILITY_CLASS_PSYCHIC 0x15 +#define FACILITY_CLASS_PSYCHIC_2 0x16 +#define FACILITY_CLASS_GENTLEMAN 0x17 +#define FACILITY_CLASS_ELITE_FOUR 0x18 +#define FACILITY_CLASS_ELITE_FOUR_2 0x19 +#define FACILITY_CLASS_LEADER 0x1A +#define FACILITY_CLASS_LEADER_2 0x1B +#define FACILITY_CLASS_LEADER_3 0x1C +#define FACILITY_CLASS_SCHOOL_KID 0x1D +#define FACILITY_CLASS_SCHOOL_KID_2 0x1E +#define FACILITY_CLASS_SR_AND_JR 0x1F +#define FACILITY_CLASS_POKEFAN 0x20 +#define FACILITY_CLASS_POKEFAN_2 0x21 +#define FACILITY_CLASS_EXPERT 0x22 +#define FACILITY_CLASS_EXPERT_2 0x23 +#define FACILITY_CLASS_YOUNGSTER 0x24 +#define FACILITY_CLASS_CHAMPION 0x25 +#define FACILITY_CLASS_FISHERMAN 0x26 +#define FACILITY_CLASS_TRIATHLETE 0x27 +#define FACILITY_CLASS_TRIATHLETE_2 0x28 +#define FACILITY_CLASS_TRIATHLETE_3 0x29 +#define FACILITY_CLASS_TRIATHLETE_4 0x2A +#define FACILITY_CLASS_TRIATHLETE_5 0x2B +#define FACILITY_CLASS_TRIATHLETE_6 0x2C +#define FACILITY_CLASS_DRAGON_TAMER 0x2D +#define FACILITY_CLASS_BIRD_KEEPER 0x2E +#define FACILITY_CLASS_NINJA_BOY 0x2F +#define FACILITY_CLASS_BATTLE_GIRL 0x30 +#define FACILITY_CLASS_PARASOL_LADY 0x31 +#define FACILITY_CLASS_SWIMMER_FEMALE 0x32 +#define FACILITY_CLASS_PICNICKER 0x33 +#define FACILITY_CLASS_TWINS 0x34 +#define FACILITY_CLASS_SAILOR 0x35 +#define FACILITY_CLASS_BOARDER 0x36 +#define FACILITY_CLASS_BOARDER_2 0x37 +#define FACILITY_CLASS_COLLECTOR 0x38 +#define FACILITY_CLASS_PKMN_TRAINER 0x39 +#define FACILITY_CLASS_PKMN_TRAINER_2 0x3A +#define FACILITY_CLASS_PKMN_TRAINER_3 0x3B +#define FACILITY_CLASS_PKMN_TRAINER_4 0x3C +#define FACILITY_CLASS_PKMN_TRAINER_5 0x3D +#define FACILITY_CLASS_PKMN_TRAINER_6 0x3E +#define FACILITY_CLASS_PKMN_TRAINER_7 0x3F +#define FACILITY_CLASS_PKMN_BREEDER 0x40 +#define FACILITY_CLASS_PKMN_BREEDER_2 0x41 +#define FACILITY_CLASS_PKMN_RANGER 0x42 +#define FACILITY_CLASS_PKMN_RANGER_2 0x43 +#define FACILITY_CLASS_MAGMA_LEADER 0x44 +#define FACILITY_CLASS_TEAM_MAGMA 0x45 +#define FACILITY_CLASS_TEAM_MAGMA_2 0x46 +#define FACILITY_CLASS_LASS 0x47 +#define FACILITY_CLASS_BUG_CATCHER 0x48 +#define FACILITY_CLASS_HIKER 0x49 +#define FACILITY_CLASS_YOUNG_COUPLE 0x4A +#define FACILITY_CLASS_OLD_COUPLE 0x4B +#define FACILITY_CLASS_SIS_AND_BRO 0x4C +#define FACILITY_CLASS_AQUA_ADMIN 0x4D +#define FACILITY_CLASS_AQUA_ADMIN_2 0x4E +#define FACILITY_CLASS_MAGMA_ADMIN 0x4F +#define FACILITY_CLASS_MAGMA_ADMIN_2 0x50 +#define FACILITY_CLASS_LEADER_4 0x51 +#define FACILITY_CLASS_LEADER_5 0x52 +#define FACILITY_CLASS_LEADER_6 0x53 +#define FACILITY_CLASS_LEADER_7 0x54 +#define FACILITY_CLASS_LEADER_8 0x55 +#define FACILITY_CLASS_ELITE_FOUR_3 0x56 +#define FACILITY_CLASS_ELITE_FOUR_4 0x57 +#define FACILITY_CLASS_YOUNGSTER_2 0x58 +#define FACILITY_CLASS_BUG_CATCHER_2 0x59 +#define FACILITY_CLASS_LASS_2 0x5A +#define FACILITY_CLASS_SAILOR_2 0x5B +#define FACILITY_CLASS_CAMPER_2 0x5C +#define FACILITY_CLASS_PICNICKER_2 0x5D +#define FACILITY_CLASS_POKEMANIAC_2 0x5E +#define FACILITY_CLASS_SUPER_NERD 0x5F +#define FACILITY_CLASS_HIKER_2 0x60 +#define FACILITY_CLASS_BIKER 0x61 +#define FACILITY_CLASS_BURGLAR 0x62 +#define FACILITY_CLASS_ENGINEER 0x63 +#define FACILITY_CLASS_FISHERMAN_2 0x64 +#define FACILITY_CLASS_SWIMMER_MALE_2 0x65 +#define FACILITY_CLASS_CUE_BALL 0x66 +#define FACILITY_CLASS_GAMER 0x67 +#define FACILITY_CLASS_BEAUTY_2 0x68 +#define FACILITY_CLASS_SWIMMER_FEMALE_2 0x69 +#define FACILITY_CLASS_PSYCHIC_3 0x6A +#define FACILITY_CLASS_ROCKER 0x6B +#define FACILITY_CLASS_JUGGLER 0x6C +#define FACILITY_CLASS_TAMER 0x6D +#define FACILITY_CLASS_BIRD_KEEPER_2 0x6E +#define FACILITY_CLASS_BLACK_BELT_2 0x6F +#define FACILITY_CLASS_RIVAL 0x70 +#define FACILITY_CLASS_SCIENTIST 0x71 +#define FACILITY_CLASS_BOSS 0x72 +#define FACILITY_CLASS_TEAM_ROCKET 0x73 +#define FACILITY_CLASS_COOLTRAINER_3 0x74 +#define FACILITY_CLASS_COOLTRAINER_4 0x75 +#define FACILITY_CLASS_ELITE_FOUR_5 0x76 +#define FACILITY_CLASS_ELITE_FOUR_6 0x77 +#define FACILITY_CLASS_LEADER_9 0x78 +#define FACILITY_CLASS_LEADER_10 0x79 +#define FACILITY_CLASS_GENTLEMAN_2 0x7A +#define FACILITY_CLASS_RIVAL_2 0x7B +#define FACILITY_CLASS_CHAMPION_2 0x7C +#define FACILITY_CLASS_CHANNELER 0x7D +#define FACILITY_CLASS_TWINS_2 0x7E +#define FACILITY_CLASS_COOL_COUPLE 0x7F +#define FACILITY_CLASS_YOUNG_COUPLE_2 0x80 +#define FACILITY_CLASS_CRUSH_KIN 0x81 +#define FACILITY_CLASS_SIS_AND_BRO_2 0x82 +#define FACILITY_CLASS_PKMN_PROF 0x83 +#define FACILITY_CLASS_PLAYER 0x84 +#define FACILITY_CLASS_PLAYER_2 0x85 +#define FACILITY_CLASS_PLAYER_3 0x86 +#define FACILITY_CLASS_PLAYER_4 0x87 +#define FACILITY_CLASS_TEAM_ROCKET_2 0x88 +#define FACILITY_CLASS_PSYCHIC_4 0x89 +#define FACILITY_CLASS_CRUSH_GIRL 0x8A +#define FACILITY_CLASS_TUBER_3 0x8B +#define FACILITY_CLASS_PKMN_BREEDER_3 0x8C +#define FACILITY_CLASS_PKMN_RANGER_3 0x8D +#define FACILITY_CLASS_PKMN_RANGER_4 0x8E +#define FACILITY_CLASS_AROMA_LADY_2 0x8F +#define FACILITY_CLASS_RUIN_MANIAC_2 0x90 +#define FACILITY_CLASS_LADY_2 0x91 +#define FACILITY_CLASS_PAINTER 0x92 +#define FACILITY_CLASS_ELITE_FOUR_7 0x93 +#define FACILITY_CLASS_ELITE_FOUR_8 0x94 +#define FACILITY_CLASS_CHAMPION_3 0x95 + +#endif //GUARD_CONSTANTS_FACILITY_TRAINER_CLASSES_H diff --git a/include/constants/flags.h b/include/constants/flags.h index ea2d7d8bc..daa8b3132 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -1002,6 +1002,8 @@ #define FLAG_0x3E5 0x3E5 #define FLAG_0x3E6 0x3E6 #define FLAG_0x3E7 0x3E7 + +#define FLAG_TRAINER_TOWER_START 1000 // 0x3E8 #define FLAG_0x3E8 0x3E8 #define FLAG_0x3E9 0x3E9 #define FLAG_0x3EA 0x3EA diff --git a/include/constants/region_map.h b/include/constants/region_map.h new file mode 100644 index 000000000..87203f538 --- /dev/null +++ b/include/constants/region_map.h @@ -0,0 +1,115 @@ +#ifndef GUARD_CONSTANTS_REGION_MAP_H +#define GUARD_CONSTANTS_REGION_MAP_H + +#define MAPSEC_PALLET_TOWN 0x0 +#define MAPSEC_VIRIDIAN_CITY 0x1 +#define MAPSEC_PEWTER_CITY 0x2 +#define MAPSEC_CERULEAN_CITY 0x3 +#define MAPSEC_LAVENDER_TOWN 0x4 +#define MAPSEC_VERMILION_CITY 0x5 +#define MAPSEC_CELADON_CITY 0x6 +#define MAPSEC_FUCHSIA_CITY 0x7 +#define MAPSEC_CINNABAR_ISLAND 0x8 +#define MAPSEC_INDIGO_PLATEAU 0x9 +#define MAPSEC_SAFFRON_CITY 0xA +#define MAPSEC_ROUTE_4 0xB +#define MAPSEC_ROUTE_10 0xC +#define MAPSEC_ROUTE_1 0xD +#define MAPSEC_ROUTE_2 0xE +#define MAPSEC_ROUTE_3 0xF +#define MAPSEC_ROUTE_4_2 0x10 +#define MAPSEC_ROUTE_5 0x11 +#define MAPSEC_ROUTE_6 0x12 +#define MAPSEC_ROUTE_7 0x13 +#define MAPSEC_ROUTE_8 0x14 +#define MAPSEC_ROUTE_9 0x15 +#define MAPSEC_ROUTE_10_2 0x16 +#define MAPSEC_ROUTE_11 0x17 +#define MAPSEC_ROUTE_12 0x18 +#define MAPSEC_ROUTE_13 0x19 +#define MAPSEC_ROUTE_14 0x1A +#define MAPSEC_ROUTE_15 0x1B +#define MAPSEC_ROUTE_16 0x1C +#define MAPSEC_ROUTE_17 0x1D +#define MAPSEC_ROUTE_18 0x1E +#define MAPSEC_ROUTE_19 0x1F +#define MAPSEC_ROUTE_20 0x20 +#define MAPSEC_ROUTE_21 0x21 +#define MAPSEC_ROUTE_22 0x22 +#define MAPSEC_ROUTE_23 0x23 +#define MAPSEC_ROUTE_24 0x24 +#define MAPSEC_ROUTE_25 0x25 +#define MAPSEC_VIRIDIAN_FOREST 0x26 +#define MAPSEC_MT_MOON 0x27 +#define MAPSEC_S_S_ANNE 0x28 +#define MAPSEC_UNDERGROUND_PATH 0x29 +#define MAPSEC_UNDERGROUND_PATH_2 0x2A +#define MAPSEC_DIGLETTS_CAVE 0x2B +#define MAPSEC_KANTO_VICTORY_ROAD 0x2C +#define MAPSEC_ROCKET_HIDEOUT 0x2D +#define MAPSEC_SILPH_CO 0x2E +#define MAPSEC_POKEMON_MANSION 0x2F +#define MAPSEC_KANTO_SAFARI_ZONE 0x30 +#define MAPSEC_POKEMON_LEAGUE 0x31 +#define MAPSEC_ROCK_TUNNEL 0x32 +#define MAPSEC_SEAFOAM_ISLANDS 0x33 +#define MAPSEC_POKEMON_TOWER 0x34 +#define MAPSEC_CERULEAN_CAVE 0x35 +#define MAPSEC_POWER_PLANT 0x36 +#define MAPSEC_ONE_ISLAND 0x37 +#define MAPSEC_TWO_ISLAND 0x38 +#define MAPSEC_THREE_ISLAND 0x39 +#define MAPSEC_FOUR_ISLAND 0x3A +#define MAPSEC_FIVE_ISLAND 0x3B +#define MAPSEC_SEVEN_ISLAND 0x3C +#define MAPSEC_SIX_ISLAND 0x3D +#define MAPSEC_KINDLE_ROAD 0x3E +#define MAPSEC_TREASURE_BEACH 0x3F +#define MAPSEC_CAPE_BRINK 0x40 +#define MAPSEC_BOND_BRIDGE 0x41 +#define MAPSEC_THREE_ISLE_PORT 0x42 +#define MAPSEC_SEVII_ISLE_6 0x43 +#define MAPSEC_SEVII_ISLE_7 0x44 +#define MAPSEC_SEVII_ISLE_8 0x45 +#define MAPSEC_SEVII_ISLE_9 0x46 +#define MAPSEC_RESORT_GORGEOUS 0x47 +#define MAPSEC_WATER_LABYRINTH 0x48 +#define MAPSEC_FIVE_ISLE_MEADOW 0x49 +#define MAPSEC_MEMORIAL_PILLAR 0x4A +#define MAPSEC_OUTCAST_ISLAND 0x4B +#define MAPSEC_GREEN_PATH 0x4C +#define MAPSEC_WATER_PATH 0x4D +#define MAPSEC_RUIN_VALLEY 0x4E +#define MAPSEC_TRAINER_TOWER 0x4F +#define MAPSEC_CANYON_ENTRANCE 0x50 +#define MAPSEC_SEVAULT_CANYON 0x51 +#define MAPSEC_TANOBY_RUINS 0x52 +#define MAPSEC_SEVII_ISLE_22 0x53 +#define MAPSEC_SEVII_ISLE_23 0x54 +#define MAPSEC_SEVII_ISLE_24 0x55 +#define MAPSEC_NAVEL_ROCK 0x56 +#define MAPSEC_MT_EMBER 0x57 +#define MAPSEC_BERRY_FOREST 0x58 +#define MAPSEC_ICEFALL_CAVE 0x59 +#define MAPSEC_ROCKET_WAREHOUSE 0x5A +#define MAPSEC_TRAINER_TOWER_2 0x5B +#define MAPSEC_DOTTED_HOLE 0x5C +#define MAPSEC_LOST_CAVE 0x5D +#define MAPSEC_PATTERN_BUSH 0x5E +#define MAPSEC_ALTERING_CAVE 0x5F +#define MAPSEC_TANOBY_CHAMBERS 0x60 +#define MAPSEC_THREE_ISLE_PATH 0x61 +#define MAPSEC_TANOBY_KEY 0x62 +#define MAPSEC_BIRTH_ISLAND 0x63 +#define MAPSEC_MONEAN_CHAMBER 0x64 +#define MAPSEC_LIPTOO_CHAMBER 0x65 +#define MAPSEC_WEEPTH_CHAMBER 0x66 +#define MAPSEC_DILFORD_CHAMBER 0x67 +#define MAPSEC_SCUFIB_CHAMBER 0x68 +#define MAPSEC_RIXY_CHAMBER 0x69 +#define MAPSEC_VIAPOIS_CHAMBER 0x6A +#define MAPSEC_EMBER_SPA 0x6B +#define MAPSEC_CELADON_DEPT 0x6C +#define MAPSEC_NONE 0x6D + +#endif //GUARD_CONSTANTS_REGION_MAP_H diff --git a/include/constants/trainer_classes.h b/include/constants/trainer_classes.h new file mode 100644 index 000000000..f0c6d4123 --- /dev/null +++ b/include/constants/trainer_classes.h @@ -0,0 +1,112 @@ +#ifndef GUARD_TRAINER_CLASSES_H +#define GUARD_TRAINER_CLASSES_H + +#define CLASS_PKMN_TRAINER 0x00 +#define CLASS_PKMN_TRAINER_2 0x01 +#define CLASS_AQUA_LEADER 0x02 +#define CLASS_TEAM_AQUA 0x03 +#define CLASS_AROMA_LADY 0x04 +#define CLASS_RUIN_MANIAC 0x05 +#define CLASS_INTERVIEWER 0x06 +#define CLASS_TUBER 0x07 +#define CLASS_TUBER_2 0x08 +#define CLASS_COOLTRAINER 0x09 +#define CLASS_HEX_MANIAC 0x0A +#define CLASS_LADY 0x0B +#define CLASS_BEAUTY 0x0C +#define CLASS_RICH_BOY 0x0D +#define CLASS_POKEMANIAC 0x0E +#define CLASS_SWIMMER_MALE 0x0F +#define CLASS_BLACK_BELT 0x10 +#define CLASS_GUITARIST 0x11 +#define CLASS_KINDLER 0x12 +#define CLASS_CAMPER 0x13 +#define CLASS_BUG_MANIAC 0x14 +#define CLASS_PSYCHIC 0x15 +#define CLASS_GENTLEMAN 0x16 +#define CLASS_ELITE_FOUR 0x17 +#define CLASS_LEADER 0x18 +#define CLASS_SCHOOL_KID 0x19 +#define CLASS_SR_AND_JR 0x1A +#define CLASS_POKEFAN 0x1B +#define CLASS_EXPERT 0x1C +#define CLASS_YOUNGSTER 0x1D +#define CLASS_CHAMPION 0x1E +#define CLASS_FISHERMAN 0x1F +#define CLASS_TRIATHLETE 0x20 +#define CLASS_DRAGON_TAMER 0x21 +#define CLASS_BIRD_KEEPER 0x22 +#define CLASS_NINJA_BOY 0x23 +#define CLASS_BATTLE_GIRL 0x24 +#define CLASS_PARASOL_LADY 0x25 +#define CLASS_SWIMMER_FEMALE 0x26 +#define CLASS_PICNICKER 0x27 +#define CLASS_TWINS 0x28 +#define CLASS_SAILOR 0x29 +#define CLASS_BOARDER 0x2A +#define CLASS_COLLECTOR 0x2B +#define CLASS_PKMN_TRAINER_3 0x2C +#define CLASS_PKMN_BREEDER 0x2D +#define CLASS_PKMN_RANGER 0x2E +#define CLASS_MAGMA_LEADER 0x2F +#define CLASS_TEAM_MAGMA 0x30 +#define CLASS_LASS 0x31 +#define CLASS_BUG_CATCHER 0x32 +#define CLASS_HIKER 0x33 +#define CLASS_YOUNG_COUPLE 0x34 +#define CLASS_OLD_COUPLE 0x35 +#define CLASS_SIS_AND_BRO 0x36 +#define CLASS_AQUA_ADMIN 0x37 +#define CLASS_MAGMA_ADMIN 0x38 +#define CLASS_YOUNGSTER_2 0x39 +#define CLASS_BUG_CATCHER_2 0x3A +#define CLASS_LASS_2 0x3B +#define CLASS_SAILOR_2 0x3C +#define CLASS_CAMPER_2 0x3D +#define CLASS_PICNICKER_2 0x3E +#define CLASS_POKEMANIAC_2 0x3F +#define CLASS_SUPER_NERD 0x40 +#define CLASS_HIKER_2 0x41 +#define CLASS_BIKER 0x42 +#define CLASS_BURGLAR 0x43 +#define CLASS_ENGINEER 0x44 +#define CLASS_FISHERMAN_2 0x45 +#define CLASS_SWIMMER_MALE_2 0x46 +#define CLASS_CUE_BALL 0x47 +#define CLASS_GAMER 0x48 +#define CLASS_BEAUTY_2 0x49 +#define CLASS_SWIMMER_FEMALE_2 0x4A +#define CLASS_PSYCHIC_2 0x4B +#define CLASS_ROCKER 0x4C +#define CLASS_JUGGLER 0x4D +#define CLASS_TAMER 0x4E +#define CLASS_BIRD_KEEPER_2 0x4F +#define CLASS_BLACK_BELT_2 0x50 +#define CLASS_RIVAL 0x51 +#define CLASS_SCIENTIST 0x52 +#define CLASS_BOSS 0x53 +#define CLASS_LEADER_2 0x54 +#define CLASS_TEAM_ROCKET 0x55 +#define CLASS_COOLTRAINER_2 0x56 +#define CLASS_ELITE_FOUR_2 0x57 +#define CLASS_GENTLEMAN_2 0x58 +#define CLASS_RIVAL_2 0x59 +#define CLASS_CHAMPION_2 0x5A +#define CLASS_CHANNELER 0x5B +#define CLASS_TWINS_2 0x5C +#define CLASS_COOL_COUPLE 0x5D +#define CLASS_YOUNG_COUPLE_2 0x5E +#define CLASS_CRUSH_KIN 0x5F +#define CLASS_SIS_AND_BRO_2 0x60 +#define CLASS_PKMN_PROF 0x61 +#define CLASS_PLAYER 0x62 +#define CLASS_CRUSH_GIRL 0x63 +#define CLASS_TUBER_3 0x64 +#define CLASS_PKMN_BREEDER_2 0x65 +#define CLASS_PKMN_RANGER_2 0x66 +#define CLASS_AROMA_LADY_2 0x67 +#define CLASS_RUIN_MANIAC_2 0x68 +#define CLASS_LADY_2 0x69 +#define CLASS_PAINTER 0x6A + +#endif // GUARD_TRAINER_CLASSES_H diff --git a/include/constants/vars.h b/include/constants/vars.h index c9340a3b4..886bae93c 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -38,7 +38,7 @@ #define VAR_RECYCLE_GOODS 0x4020 #define VAR_REPEL_STEP_COUNT 0x4021 #define VAR_ICE_STEP_COUNT 0x4022 -#define VAR_FIRST_POKE 0x4023 +#define VAR_0x4023 0x4023 #define VAR_MIRAGE_RND_H 0x4024 #define VAR_MIRAGE_RND_L 0x4025 #define VAR_SECRET_BASE_MAP 0x4026 diff --git a/include/global.h b/include/global.h index c47bd2d15..858d95831 100644 --- a/include/global.h +++ b/include/global.h @@ -94,7 +94,7 @@ enum LanguageId { LANGUAGE_ITALIAN = 4, LANGUAGE_GERMAN = 5, // 6 goes unused but the theory is it was meant to be Korean - LANGUAGE_SPANISH = 7, + LANGUAGE_SPANISH = 7, }; #define GAME_LANGUAGE (LANGUAGE_ENGLISH) @@ -228,17 +228,44 @@ struct BerryCrush struct LinkBattleRecord { - u8 name[PLAYER_NAME_LENGTH]; - u16 trainerId; - u16 wins; - u16 losses; - u16 draws; + u8 name[PLAYER_NAME_LENGTH]; + u16 trainerId; + u16 wins; + u16 losses; + u16 draws; }; struct LinkBattleRecords { - struct LinkBattleRecord entries[LINK_B_RECORDS_COUNT]; - u8 languages[LINK_B_RECORDS_COUNT]; + struct LinkBattleRecord entries[LINK_B_RECORDS_COUNT]; + u8 languages[LINK_B_RECORDS_COUNT]; +}; + +struct BattleTowerPokemon +{ + u16 species; + u16 heldItem; + u16 moves[4]; + u8 level; + u8 ppBonuses; + u8 hpEV; + u8 attackEV; + u8 defenseEV; + u8 speedEV; + u8 spAttackEV; + u8 spDefenseEV; + u32 otId; + u32 hpIV:5; + u32 attackIV:5; + u32 defenseIV:5; + u32 speedIV:5; + u32 spAttackIV:5; + u32 spDefenseIV:5; + u32 gap:1; + u32 altAbility:1; + u32 personality; + u8 nickname[POKEMON_NAME_LENGTH + 1]; + u8 friendship; }; struct UnknownSaveBlock2Struct @@ -263,17 +290,17 @@ struct UnknownSaveBlock2Struct struct UnkSaveBlock2Substruct_55C { - /* 0x000:0x55C */ u8 unk_00_0:1; - u8 unk_00_1:1; - /* 0x001:0x55D */ u8 unk_01; - /* 0x002:0x55E */ u8 unk_02[2]; - /* 0x004:0x560 */ u16 unk_04[2]; - /* 0x008:0x564 */ u16 unk_08[2]; - /* 0x00C:0x568 */ u16 unk_0C[2]; - /* 0x010:0x56C */ u8 unk_10; - /* 0x011:0x56D */ u8 unk_11[3]; - /* 0x014:0x570 */ u16 unk_14; - /* 0x016:0x572 */ u8 unk_16; + /* 0x000:0x55C */ u8 unk_00_0:1; + u8 unk_00_1:1; + /* 0x001:0x55D */ u8 unk_01; + /* 0x002:0x55E */ u8 unk_02[2]; + /* 0x004:0x560 */ u16 unk_04[2]; + /* 0x008:0x564 */ u16 unk_08[2]; + /* 0x00C:0x568 */ u16 unk_0C[2]; + /* 0x010:0x56C */ u8 unk_10; + /* 0x011:0x56D */ u8 unk_11[3]; + /* 0x014:0x570 */ u16 unk_14; + /* 0x016:0x572 */ u8 unk_16; }; // size: 0x018 struct SaveBlock2 @@ -288,11 +315,11 @@ struct SaveBlock2 /*0x012*/ u8 playTimeVBlanks; /*0x013*/ u8 optionsButtonMode; // OPTIONS_BUTTON_MODE_[NORMAL/LR/L_EQUALS_A] /*0x014*/ u16 optionsTextSpeed:3; // OPTIONS_TEXT_SPEED_[SLOW/MID/FAST] - u16 optionsWindowFrameType:5; // Specifies one of the 20 decorative borders for text boxes - u16 optionsSound:1; // OPTIONS_SOUND_[MONO/STEREO] - u16 optionsBattleStyle:1; // OPTIONS_BATTLE_STYLE_[SHIFT/SET] - u16 optionsBattleSceneOff:1; // whether battle animations are disabled - u16 regionMapZoom:1; // whether the map is zoomed in + u16 optionsWindowFrameType:5; // Specifies one of the 20 decorative borders for text boxes + u16 optionsSound:1; // OPTIONS_SOUND_[MONO/STEREO] + u16 optionsBattleStyle:1; // OPTIONS_BATTLE_STYLE_[SHIFT/SET] + u16 optionsBattleSceneOff:1; // whether battle animations are disabled + u16 regionMapZoom:1; // whether the map is zoomed in /*0x018*/ struct Pokedex pokedex; /*0x090*/ u8 filler_90[0x8]; /*0x098*/ struct Time localTimeOffset; @@ -422,14 +449,14 @@ struct MailStruct struct UnkMauvilleOldManStruct { - u8 unk_2D94; - u8 unk_2D95; + u8 unk_2D94; + u8 unk_2D95; /*0x2D96*/ u16 mauvilleOldMan_ecArray[6]; /*0x2DA2*/ u16 mauvilleOldMan_ecArray2[6]; /*0x2DAE*/ u8 playerName[8]; /*0x2DB6*/ u8 filler_2DB6[0x3]; /*0x2DB9*/ u8 playerTrainerId[4]; - u8 unk_2DBD; + u8 unk_2DBD; }; /*size = 0x2C*/ struct UnkMauvilleOldManStruct2 @@ -578,8 +605,8 @@ union QuestLogMovement { u16 ident_raw; struct { - u16 ident:12; - u16 flags:4; + u16 ident:12; + u16 flags:4; } ident_struct; }; @@ -606,9 +633,9 @@ struct QuestLog struct FameCheckerSaveData { - /*3a54*/ u16 pickState:2; - u16 flavorTextFlags:12; - u16 unk_0_E:2; + /*3a54*/ u16 pickState:2; + u16 flavorTextFlags:12; + u16 unk_0_E:2; }; #define MAP_OBJECTS_COUNT 16 @@ -622,64 +649,64 @@ struct FameCheckerSaveData struct MEventBuffer_3120_Sub { - u16 unk_00; - u8 unk_02; - u8 unk_03; - u8 unk_04[40]; - u8 unk_2C[10][40]; + u16 unk_00; + u8 unk_02; + u8 unk_03; + u8 unk_04[40]; + u8 unk_2C[10][40]; }; struct MEventBuffer_3120 { - u32 crc; - struct MEventBuffer_3120_Sub data; + u32 crc; + struct MEventBuffer_3120_Sub data; }; struct MEventBuffer_32E0_Sub { - u16 unk_00; - u16 unk_02; - u32 unk_04; - u8 unk_08_0:2; - u8 unk_08_2:4; - u8 unk_08_6:2; - u8 unk_09; - u8 unk_0A[40]; - u8 unk_32[40]; - u8 unk_5A[4][40]; - u8 unk_FA[40]; - u8 unk_122[40]; + u16 unk_00; + u16 unk_02; + u32 unk_04; + u8 unk_08_0:2; + u8 unk_08_2:4; + u8 unk_08_6:2; + u8 unk_09; + u8 unk_0A[40]; + u8 unk_32[40]; + u8 unk_5A[4][40]; + u8 unk_FA[40]; + u8 unk_122[40]; }; struct MEventBuffer_32E0 { - u32 crc; - struct MEventBuffer_32E0_Sub data; + u32 crc; + struct MEventBuffer_32E0_Sub data; }; struct MEventBuffer_3430_Sub { - u16 unk_00; - u16 unk_02; - u16 unk_04; - u16 unk_06; - u16 unk_08[2][7]; + u16 unk_00; + u16 unk_02; + u16 unk_04; + u16 unk_06; + u16 unk_08[2][7]; }; struct MEventBuffer_3430 { - u32 crc; - struct MEventBuffer_3430_Sub data; + u32 crc; + struct MEventBuffer_3430_Sub data; }; struct MEventBuffers { - /*0x000 0x3120*/ struct MEventBuffer_3120 buffer_000; - /*0x1c0 0x32e0*/ struct MEventBuffer_32E0 buffer_1c0; - /*0x310 0x3430*/ struct MEventBuffer_3430 buffer_310; - /*0x338 0x3458*/ u16 unk_338[4]; - /*0x340 0x3460*/ struct MysteryEventStruct unk_340; - /*0x344 0x3464*/ u32 unk_344[2][5]; + /*0x000 0x3120*/ struct MEventBuffer_3120 buffer_000; + /*0x1c0 0x32e0*/ struct MEventBuffer_32E0 buffer_1c0; + /*0x310 0x3430*/ struct MEventBuffer_3430 buffer_310; + /*0x338 0x3458*/ u16 unk_338[4]; + /*0x340 0x3460*/ struct MysteryEventStruct unk_340; + /*0x344 0x3464*/ u32 unk_344[2][5]; }; // 0x36C 0x348C struct SaveBlock1 @@ -707,8 +734,8 @@ struct SaveBlock1 /*0x0464*/ struct ItemSlot bagPocket_TMHM[BAG_TMHM_COUNT]; /*0x054c*/ struct ItemSlot bagPocket_Berries[BAG_BERRIES_COUNT]; /*0x05F8*/ u8 seen1[DEX_FLAGS_NO]; - /*0x062C*/ u16 berryBlenderRecords[3]; // unused - /*0x0632*/ u8 field_632[6]; // unused? + /*0x062C*/ u16 berryBlenderRecords[3]; // unused + /*0x0632*/ u8 field_632[6]; // unused? /*0x0638*/ u8 trainerRematchStepCounter; /*0x063A*/ u8 ALIGNED(2) trainerRematches[100]; /*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT]; @@ -717,10 +744,10 @@ struct SaveBlock1 /*0x1000*/ u16 vars[VARS_COUNT]; /*0x1200*/ u32 gameStats[NUM_GAME_STATS]; /*0x1300*/ struct QuestLog questLog[4]; - /*0x2CA0*/ u16 unk2CA0[6]; - /*0x2CAC*/ u16 unk2CAC[6]; - /*0x2CB8*/ u16 unk2CB8[6]; - /*0x2CC4*/ u16 unk2CC4[6]; + /*0x2CA0*/ u16 unk2CA0[6]; + /*0x2CAC*/ u16 unk2CAC[6]; + /*0x2CB8*/ u16 unk2CB8[6]; + /*0x2CC4*/ u16 unk2CC4[6]; /*0x2CD0*/ struct MailStruct mail[MAIL_COUNT]; /*0x2F10*/ u8 additionalPhrases[EASY_CHAT_EXTRA_PHRASES_SIZE]; /*0x2F18*/ OldMan oldMan; // unused @@ -737,8 +764,9 @@ struct SaveBlock1 /*0x3A48*/ u8 filler_3a48[4]; /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH]; /*0x3A54*/ struct FameCheckerSaveData fameChecker[NUM_FAMECHECKER_PERSONS]; - /*0x3A94*/ u8 filler3A94[0x2A4]; - u32 unkArray[4][3]; + /*0x3A94*/ u8 filler3A94[0x2A0]; + /*0x3D34*/ u32 unkArrayIdx; + /*0x3D38*/ u32 unkArray[4][3]; }; extern struct SaveBlock1* gSaveBlock1Ptr; diff --git a/include/main.h b/include/main.h index adbf1fb5d..3fb254c95 100644 --- a/include/main.h +++ b/include/main.h @@ -65,6 +65,7 @@ void InitFlashTimer(void); void DoSoftReset(void); void ClearPokemonCrySongs(void); void RestoreSerialTimer3IntrHandlers(void); +void SetVBlankCounter1Ptr(u32 *ptr); extern const char RomHeaderGameCode[4]; extern const char RomHeaderSoftwareVersion; diff --git a/include/overworld.h b/include/overworld.h index 8cae07bdc..50ac09d9e 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -81,6 +81,8 @@ void sub_8055DC4(void); u8 sav1_map_get_name(void); +void sub_8055D40(u16 mapDataId); + extern u8 gUnknown_2031DD8; extern u8 gUnknown_2036E28; diff --git a/include/region_map.h b/include/region_map.h index 12181ae5f..ea8a8130e 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -7,119 +7,6 @@ // Exported type declarations -enum { - MAPSEC_PALLET_TOWN, - MAPSEC_VIRIDIAN_CITY, - MAPSEC_PEWTER_CITY, - MAPSEC_CERULEAN_CITY, - MAPSEC_LAVENDER_TOWN, - MAPSEC_VERMILION_CITY, - MAPSEC_CELADON_CITY, - MAPSEC_FUCHSIA_CITY, - MAPSEC_CINNABAR_ISLAND, - MAPSEC_INDIGO_PLATEAU, - MAPSEC_SAFFRON_CITY, - MAPSEC_ROUTE_4, - MAPSEC_ROUTE_10, - MAPSEC_ROUTE_1, - MAPSEC_ROUTE_2, - MAPSEC_ROUTE_3, - MAPSEC_ROUTE_4_2, - MAPSEC_ROUTE_5, - MAPSEC_ROUTE_6, - MAPSEC_ROUTE_7, - MAPSEC_ROUTE_8, - MAPSEC_ROUTE_9, - MAPSEC_ROUTE_10_2, - MAPSEC_ROUTE_11, - MAPSEC_ROUTE_12, - MAPSEC_ROUTE_13, - MAPSEC_ROUTE_14, - MAPSEC_ROUTE_15, - MAPSEC_ROUTE_16, - MAPSEC_ROUTE_17, - MAPSEC_ROUTE_18, - MAPSEC_ROUTE_19, - MAPSEC_ROUTE_20, - MAPSEC_ROUTE_21, - MAPSEC_ROUTE_22, - MAPSEC_ROUTE_23, - MAPSEC_ROUTE_24, - MAPSEC_ROUTE_25, - MAPSEC_VIRIDIAN_FOREST, - MAPSEC_MT_MOON, - MAPSEC_S_S_ANNE, - MAPSEC_UNDERGROUND_PATH, - MAPSEC_UNDERGROUND_PATH_2, - MAPSEC_DIGLETTS_CAVE, - MAPSEC_KANTO_VICTORY_ROAD, - MAPSEC_ROCKET_HIDEOUT, - MAPSEC_SILPH_CO, - MAPSEC_POKEMON_MANSION, - MAPSEC_KANTO_SAFARI_ZONE, - MAPSEC_POKEMON_LEAGUE, - MAPSEC_ROCK_TUNNEL, - MAPSEC_SEAFOAM_ISLANDS, - MAPSEC_POKEMON_TOWER, - MAPSEC_CERULEAN_CAVE, - MAPSEC_POWER_PLANT, - MAPSEC_ONE_ISLAND, - MAPSEC_TWO_ISLAND, - MAPSEC_THREE_ISLAND, - MAPSEC_FOUR_ISLAND, - MAPSEC_FIVE_ISLAND, - MAPSEC_SEVEN_ISLAND, - MAPSEC_SIX_ISLAND, - MAPSEC_KINDLE_ROAD, - MAPSEC_TREASURE_BEACH, - MAPSEC_CAPE_BRINK, - MAPSEC_BOND_BRIDGE, - MAPSEC_THREE_ISLE_PORT, - MAPSEC_SEVII_ISLE_6, - MAPSEC_SEVII_ISLE_7, - MAPSEC_SEVII_ISLE_8, - MAPSEC_SEVII_ISLE_9, - MAPSEC_RESORT_GORGEOUS, - MAPSEC_WATER_LABYRINTH, - MAPSEC_FIVE_ISLE_MEADOW, - MAPSEC_MEMORIAL_PILLAR, - MAPSEC_OUTCAST_ISLAND, - MAPSEC_GREEN_PATH, - MAPSEC_WATER_PATH, - MAPSEC_RUIN_VALLEY, - MAPSEC_TRAINER_TOWER, - MAPSEC_CANYON_ENTRANCE, - MAPSEC_SEVAULT_CANYON, - MAPSEC_TANOBY_RUINS, - MAPSEC_SEVII_ISLE_22, - MAPSEC_SEVII_ISLE_23, - MAPSEC_SEVII_ISLE_24, - MAPSEC_NAVEL_ROCK, - MAPSEC_MT_EMBER, - MAPSEC_BERRY_FOREST, - MAPSEC_ICEFALL_CAVE, - MAPSEC_ROCKET_WAREHOUSE, - MAPSEC_TRAINER_TOWER_2, - MAPSEC_DOTTED_HOLE, - MAPSEC_LOST_CAVE, - MAPSEC_PATTERN_BUSH, - MAPSEC_ALTERING_CAVE, - MAPSEC_TANOBY_CHAMBERS, - MAPSEC_THREE_ISLE_PATH, - MAPSEC_TANOBY_KEY, - MAPSEC_BIRTH_ISLAND, - MAPSEC_MONEAN_CHAMBER, - MAPSEC_LIPTOO_CHAMBER, - MAPSEC_WEEPTH_CHAMBER, - MAPSEC_DILFORD_CHAMBER, - MAPSEC_SCUFIB_CHAMBER, - MAPSEC_RIXY_CHAMBER, - MAPSEC_VIAPOIS_CHAMBER, - MAPSEC_EMBER_SPA, - MAPSEC_CELADON_DEPT, - MAPSEC_NONE -}; - enum { INPUT_EVENT_NONE, diff --git a/include/trainer_classes.h b/include/trainer_classes.h deleted file mode 100644 index aea2623d7..000000000 --- a/include/trainer_classes.h +++ /dev/null @@ -1,118 +0,0 @@ -#ifndef GUARD_TRAINER_CLASSES_H -#define GUARD_TRAINER_CLASSES_H - -#include "global.h" - -enum -{ - CLASS_PKMN_TRAINER0, // 0 - CLASS_PKMN_TRAINER1, // 1 - CLASS_AQUA_LEADER, // 2 - CLASS_TEAM_AQUA, // 3 - CLASS_AROMA_LADY, // 4 - CLASS_RUIN_MANIAC, // 5 - CLASS_INTERVIEWER, // 6 - CLASS_TUBER_FEMALE, // 7 - CLASS_TUBER_MALE, // 8 - CLASS_COOLTRAINER_2, // 9 - CLASS_HEX_MANIAC, // 0xA - CLASS_LADY, // 0xB - CLASS_BEAUTY, // 0xC - CLASS_RICH_BOY, // 0xD - CLASS_POKEMANIAC, // 0xE - CLASS_SWIMMER_MALE, // 0xF - CLASS_BLACK_BELT, // 0x10 - CLASS_GUITARIST, // 0x11 - CLASS_KINDLER, // 0x12 - CLASS_CAMPER, // 0x13 - CLASS_BUG_MANIAC, // 0x14 - CLASS_PSYCHIC, // 0x15 - CLASS_GENTLEMAN, // 0x16 - CLASS_ELITE_FOUR, // 0x17 - CLASS_LEADER, // 0x18 - CLASS_SCHOOL_KID, // 0x19 - CLASS_SCHOOL_SR_JR, // 0x1A - CLASS_POKE_FAN, // 0x1B - CLASS_EXPERT, // 0x1C - CLASS_YOUNGSTER, // 0x1D - CLASS_CHAMPION, // 0x1E - CLASS_FISHERMAN, // 0x1F - CLASS_TRIATHLETE, // 0x20 - CLASS_DRAGON_TAMER, // 0x21 - CLASS_BIRD_KEEPER, // 0x22 - CLASS_NINJA_BOY, // 0x23 - CLASS_BATTLE_GIRL, // 0x24 - CLASS_PARASOL_LADY, // 0x25 - CLASS_SWIMMER_FEMALE, // 0x26 - CLASS_PICKNICKER, // 0x27 - CLASS_TWINS, // 0x28 - CLASS_SAILOR, // 0x29 - CLASS_BOARDER, // 0x2A - CLASS_COLLECTOR, // 0x2B - CLASS_PKMN_TRAINER2, // 0x2C - CLASS_PKMN_BREEDER, // 0x2D - CLASS_PKMN_RANGER, // 0x2E - CLASS_MAGMA_LEADER, // 0x2F - CLASS_TEAM_MAGMA, // 0x30 - CLASS_LASS, // 0x31 - CLASS_BUG_CATCHER, // 0x32 - CLASS_HIKER, // 0x33 - CLASS_YOUNG_COUPLE, // 0x34 - CLASS_OLD_COUPLE, // 0x35 - CLASS_SIS_AND_BRO, // 0x36 - CLASS_AQUA_ADMIN, // 0x37 - CLASS_MAGMA_ADMIN, // 0x38 - CLASS_YOUNGSTER, // 0x39 - CLASS_BUG_CATCHER, // 0x3A - CLASS_LASS, // 0x3B - CLASS_SAILER, // 0x3C - CLASS_CAMPER, // 0x3D - CLASS_PICKNICKER, // 0x3E - CLASS_POKEMANIAC, // 0x3F - CLASS_SUPER_NERD, // 0x40 - CLASS_HIKER, // 0x41 - CLASS_BIKER, // 0x42 - CLASS_BURGLAR, // 0x43 - CLASS_ENGINEER, // 0x44 - CLASS_FISHERMAN, // 0x45 - CLASS_SWIMMER_MALE, // 0x46 - CLASS_CUE_BALL, // 0x47 - CLASS_GAMER, // 0x48 - CLASS_BEAUTY, // 0x49 - CLASS_SWIMMER_FEMALE, // 0x4A - CLASS_PSYCHIC, // 0x4B - CLASS_ROCKER, // 0x4C - CLASS_JUGGLER, // 0x4D - CLASS_TAMER, // 0x4E - CLASS_BIRD_KEEPER, // 0x4F - CLASS_BLACK_BELT, // 0X50 - CLASS_PKMN_TRAINER_RIVAL, // 0X51 - CLASS_SCIENTIST, // 0X52 - CLASS_BOSS, // 0X53 - CLASS_LEADER, // 0X54 - CLASS_TEAM_ROCKET, // 0X55 - CLASS_COOLTRAINER, // 0X56 - CLASS_ELITE_FOUR, // 0X57 - CLASS_GENTLEMAN, // 0X58 - CLASS_PKMN_TRAINER_RIVAL, // 0X59 - CLASS_CHAMPION, // 0X5A - CLASS_CHANNERLER, // 0X5B - CLASS_TWINS, // 0X5C - CLASS_COOL_COUPLE, // 0X5D - CLASS_YOUNG_COUPLE, // 0X5E - CLASS_CRUSH_KIN, // 0X5F - CLASS_SIS_AND_BRO, // 0X60 - CLASS_PROFESSOR, // 0X61 - CLASS_PLAYER, // 0X62 - CLASS_CRUSH_GIRL, // 0X63 - CLASS_TUBER2, // 0X64 - CLASS_PKMN_BREEDER, // 0X65 - CLASS_PKMN_RANGER, // 0X66 - CLASS_AROMA_LADY, // 0X67 - CLASS_RUIN_MANIAC, // 0X68 - CLASS_LADY, // 0X69 - CLASS_PAINTER, // 0X6A - -}; - -#endif // GUARD_TRAINER_CLASSES_H diff --git a/ld_script.txt b/ld_script.txt index d37858b3f..8d188156b 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -266,6 +266,7 @@ SECTIONS { asm/unk_815C980.o(.text); asm/ss_anne.o(.text); asm/cereader_tool.o(.text); + src/trainer_tower.o(.text); asm/trainer_tower.o(.text); asm/unk_815EDDC.o(.text); asm/unk_815F138.o(.text); @@ -389,6 +390,9 @@ SECTIONS { data/data_8468C98.o(.rodata); src/quest_log_8150454.o(.rodata); data/data_8471F00.o(.rodata); + src/trainer_tower.o(.rodata); + data/trainer_tower.o(.rodata); + data/data_8471F00.o(.rodata.after_trainer_tower); src/mystery_event_msg.o(.rodata); data/mystery_event_msg.o(.rodata); src/m4a_tables.o(.rodata); diff --git a/src/trainer_tower.c b/src/trainer_tower.c new file mode 100644 index 000000000..91132c07b --- /dev/null +++ b/src/trainer_tower.c @@ -0,0 +1,694 @@ +#include "global.h" +#include "main.h" +#include "constants/flags.h" +#include "constants/vars.h" +#include "malloc.h" +#include "save.h" +#include "util.h" +#include "string_util.h" +#include "event_data.h" +#include "random.h" +#include "cereader_tool.h" +#include "easy_chat.h" +#include "text.h" +#include "overworld.h" + +struct UnkStruct_8479D34 +{ + s8 mapGroup; + s8 mapNum; + u8 filler[2]; + u8 flags1[8]; + u8 flags2[8]; + u8 flags3[8]; +}; + +struct UnkSubstruct_203F458_000C_004 +{ + /* 0x000 */ u8 unk_000[11]; + /* 0x00B */ u8 unk_00B; + /* 0x00C */ u8 unk_00C; + /* 0x00D */ u8 unk_00D; + /* 0x00E */ u16 unk_00E[6]; + /* 0x01A */ u16 unk_01A[6]; + /* 0x026 */ u16 unk_026[6]; + /* 0x032 */ u16 unk_032[6]; + /* 0x040 */ struct BattleTowerPokemon unk_040[PARTY_SIZE]; +}; // size: 328 + +struct UnkSubstruct_203F458_000C +{ + /* 0x000 */ u8 filler_000[2]; + /* 0x002 */ u8 unk_002; + /* 0x003 */ u8 unk_003; + /* 0x004 */ struct UnkSubstruct_203F458_000C_004 unk_004[3]; + /* 0x3DC */ u8 filler_3DC[4]; +}; + +struct Unk_203F458_Header +{ + u8 unk0; + u8 unk1; + u32 unk4; +}; + +struct UnkStruct_203F458_SaveBlock +{ + struct Unk_203F458_Header unk_0000; + struct UnkSubstruct_203F458_000C unk_0008[8]; +}; + +struct UnkStruct_203F458 +{ + /* 0x0000 */ u8 unk_0000; + /* 0x0004 */ struct UnkStruct_203F458_SaveBlock unk_0004; +}; + +struct UnkStruct_203F45C +{ + /* 0x00 */ u8 unk_00[11]; + /* 0x0C */ u16 unk_0C[6]; + /* 0x18 */ u16 unk_18[6]; + /* 0x24 */ u16 unk_24[6]; + /* 0x30 */ u16 unk_30[6]; + /* 0x3C */ u8 unk_3C; + /* 0x3D */ u8 unk_3D; + /* 0x3E */ u8 unk_3E; +}; + +struct UnkStruct_8479ED8 +{ + u8 unk0; + u8 unk1; + bool8 unk2; +}; + +struct UnkStruct_847A024 +{ + u8 unk0; + u8 unk1; + u8 unk2; + bool8 unk3; + bool8 unk4; +}; + +EWRAM_DATA struct UnkStruct_203F458 * gUnknown_203F458 = NULL; +EWRAM_DATA struct UnkStruct_203F45C * gUnknown_203F45C = NULL; + +void sub_815D96C(void); +void sub_815DC8C(void); // setup +void sub_815DD2C(void); // teardown +void sub_815DD44(void); +void sub_815DDB0(void); +void sub_815DEFC(u16 * ecWords, u8 * dest); +void sub_815DF54(void); +void sub_815E068(u8 battleType, u8 facilityClass); +void sub_815E160(void); +void sub_815E1C0(void); +void sub_815E1F0(void); +void sub_815E218(void); +void sub_815E28C(void); +void sub_815E394(void); +void sub_815E408(void); +void sub_815E4B0(void); +void sub_815E56C(void); +void sub_815E5C4(void); +void sub_815E5F0(void); +void sub_815E658(void); +void sub_815E720(void); +void sub_815E88C(void); +void sub_815E8B4(void); +void sub_815E8CC(void); +void sub_815E908(void); +void sub_815E948(void); +void sub_815E9C8(void); +void sub_815EC0C(void); + +extern const struct UnkStruct_8479D34 gUnknown_8479D34[15]; +extern void (*const gUnknown_847A230[])(void); +extern const struct Unk_203F458_Header gUnknown_84827AC; +extern const struct UnkSubstruct_203F458_000C *const gUnknown_84827B4[][8]; +extern const u16 gUnknown_847A284[8][3]; +extern const struct UnkStruct_8479ED8 gUnknown_8479ED8[83]; +extern const struct UnkStruct_847A024 gUnknown_847A024[10]; + +bool32 sub_815D7BC(void * dest, void * buffer) +{ + if (TryCopySpecialSaveSection(30, buffer) != 1) + return FALSE; + memcpy(dest + 0x000, buffer, 0xF88); + + if (TryCopySpecialSaveSection(31, buffer) != 1) + return FALSE; + memcpy(dest + 0xF88, buffer, 0xF80); + + if (!sub_815D6B4(dest)) + return FALSE; + return TRUE; +} + +bool32 sub_815D80C(void * dest) +{ + void * buffer = AllocZeroed(0x1000); + bool32 success = sub_815D7BC(dest, buffer); + Free(buffer); + return success; +} + +bool32 sub_815D834(void) +{ + // Stubbed out? + return FALSE; +} + +void sub_815D838(void) +{ + u8 i, j; + + for (i = 0; i < 15; i++) + { + const u8 * flags1 = gUnknown_8479D34[i].flags1; + const u8 * flags2 = gUnknown_8479D34[i].flags2; + const u8 * flags3 = gUnknown_8479D34[i].flags3; + for (j = 0; j < 8; j++) + { + if (flags1[j] != 0xFF) + FlagSet(FLAG_TRAINER_TOWER_START + flags1[j]); + if (flags2[j] != 0xFF) + FlagSet(FLAG_TRAINER_TOWER_START + flags2[j]); + if (flags3[j] != 0xFF) + FlagSet(FLAG_TRAINER_TOWER_START + flags3[j]); + } + } +} + +void sub_815D8C8(void) +{ + u16 var = VarGet(VAR_0x4023); + if (var < 1500) { + VarSet(VAR_0x4023, var + 1); + } +} + +void sub_815D8F8(void) // fakematching +{ + u8 i; + register u32 found_map asm("r4") = 0xFF; + for (i = 0; i < 15; i++) + { + if (gUnknown_8479D34[i].mapGroup == gSaveBlock1Ptr->location.mapGroup && gUnknown_8479D34[i].mapNum == gSaveBlock1Ptr->location.mapNum) + found_map = i; + } + + if (found_map == 0xFF) + return; + if (VarGet(VAR_0x4023) >= 1500) + { + VarSet(VAR_0x4023, 0); + sub_815D838(); + sub_815D96C(); + } +} + +void sub_815D96C(void) +{ + u8 i, j; + const u8 * flags; + u16 rval; + + for (i = 0; i < 15; i++) + { + rval = Random() % 100; + if (rval >= 90) + flags = gUnknown_8479D34[i].flags1; + else if (rval >= 60) + flags = gUnknown_8479D34[i].flags2; + else + flags = gUnknown_8479D34[i].flags3; + for (j = 0; j < 8; j++) + { + if (flags[j] != 0xFF) + FlagClear(FLAG_TRAINER_TOWER_START + flags[j]); + } + } +} + +void sub_815D9E8(void) +{ + sub_815DC8C(); + gUnknown_847A230[gSpecialVar_0x8004](); + sub_815DD2C(); +} + +u8 sub_815DA10(void) +{ + return gFacilityClassToTrainerClass[gUnknown_203F45C->unk_3D]; +} + +void sub_815DA28(u8 * dest) +{ + StringCopyN(dest, gUnknown_203F45C->unk_00, 11); +} + +u8 sub_815DA3C(void) +{ + return gFacilityClassToPicIndex[gUnknown_203F45C->unk_3D]; +} + +void sub_815DA54(void) +{ + u16 r10; + s32 r9; + + sub_815DC8C(); + gUnknown_203F45C = AllocZeroed(sizeof(*gUnknown_203F45C)); + r10 = VarGet(VAR_0x4001); + StringCopyN(gUnknown_203F45C->unk_00, gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10].unk_000, 11); + + for (r9 = 0; r9 < 6; r9++) + { + gUnknown_203F45C->unk_0C[r9] = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10].unk_01A[r9]; + gUnknown_203F45C->unk_18[r9] = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10].unk_026[r9]; + + if (gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002 == 1) + { + gUnknown_203F45C->unk_24[r9] = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10 + 1].unk_01A[r9]; + gUnknown_203F45C->unk_30[r9] = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10 + 1].unk_026[r9]; + } + } + + gUnknown_203F45C->unk_3C = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002; + gUnknown_203F45C->unk_3D = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10].unk_00B; + gUnknown_203F45C->unk_3E = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10].unk_00C; + SetVBlankCounter1Ptr(gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx]); + sub_815DD2C(); +} + +void sub_815DBDC(void) +{ + Free(gUnknown_203F45C); + gUnknown_203F45C = NULL; +} + +void sub_815DBF4(u8 * dest, u8 opponentIdx) +// TTower_GetBeforeBattleMessage? +{ + VarSet(VAR_0x4003, opponentIdx); + sub_815E068(gUnknown_203F45C->unk_3C, gUnknown_203F45C->unk_3D); + if (opponentIdx == 0) + sub_815DEFC(gUnknown_203F45C->unk_0C, dest); + else + sub_815DEFC(gUnknown_203F45C->unk_24, dest); +} + +void sub_815DC40(u8 * dest, u8 opponentIdx) +// TTower_GetAfterBattleMessage? +{ + VarSet(VAR_0x4003, opponentIdx); + sub_815E068(gUnknown_203F45C->unk_3C, gUnknown_203F45C->unk_3D); + if (opponentIdx == 0) + sub_815DEFC(gUnknown_203F45C->unk_18, dest); + else + sub_815DEFC(gUnknown_203F45C->unk_30, dest); +} + +#ifdef NONMATCHING +void sub_815DC8C(void) // fakematching +{ + u32 whichTimer = gSaveBlock1Ptr->unkArrayIdx; + s32 r4; + const struct UnkSubstruct_203F458_000C *const * r7; + + gUnknown_203F458 = AllocZeroed(sizeof(*gUnknown_203F458)); + gUnknown_203F458->unk_0000 = gMapHeader.mapDataId - 0x2A; + if (sub_815D834() == TRUE) + sub_815D80C(&gUnknown_203F458->unk_0004); + else + { + struct UnkStruct_203F458 * r0_ = gUnknown_203F458; + const struct Unk_203F458_Header * r1 = &gUnknown_84827AC; +// *r0_ = *r1; + memcpy(&r0_->unk_0004.unk_0000, r1, sizeof(struct Unk_203F458_Header)); +// gUnknown_203F458->unk_0004.unk_0000 = gUnknown_84827AC; + r7 = gUnknown_84827B4[whichTimer]; + for (r4 = 0; r4 < 8; r4++) + { + void * r0 = gUnknown_203F458; + r0 = r4 * sizeof(struct UnkSubstruct_203F458_000C) + r0; + r0 += offsetof(struct UnkStruct_203F458, unk_0004.unk_0008); + memcpy(r0, r7[r4], sizeof(struct UnkSubstruct_203F458_000C)); +// r0[r4] = *r7[r4]; + } + gUnknown_203F458->unk_0004.unk_0000.unk4 = CalcByteArraySum((void *)gUnknown_203F458->unk_0004.unk_0008, sizeof(gUnknown_203F458->unk_0004.unk_0008)); + sub_815EC0C(); + } +} +#else +NAKED +void sub_815DC8C(void) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tldr r0, _0815DCBC @ =gSaveBlock1Ptr\n" + "\tldr r0, [r0]\n" + "\tldr r1, _0815DCC0 @ =0x00003d34\n" + "\tadds r0, r1\n" + "\tldr r5, [r0]\n" + "\tldr r4, _0815DCC4 @ =gUnknown_203F458\n" + "\tldr r0, _0815DCC8 @ =0x00001f0c\n" + "\tbl AllocZeroed\n" + "\tstr r0, [r4]\n" + "\tldr r1, _0815DCCC @ =gMapHeader\n" + "\tldrb r1, [r1, 0x12]\n" + "\tsubs r1, 0x2A\n" + "\tstrb r1, [r0]\n" + "\tbl sub_815D834\n" + "\tcmp r0, 0x1\n" + "\tbne _0815DCD0\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x4\n" + "\tbl sub_815D80C\n" + "\tb _0815DD18\n" + "\t.align 2, 0\n" + "_0815DCBC: .4byte gSaveBlock1Ptr\n" + "_0815DCC0: .4byte 0x00003d34\n" + "_0815DCC4: .4byte gUnknown_203F458\n" + "_0815DCC8: .4byte 0x00001f0c\n" + "_0815DCCC: .4byte gMapHeader\n" + "_0815DCD0:\n" + "\tldr r0, [r4]\n" + "\tldr r1, _0815DD20 @ =gUnknown_84827AC\n" + "\tadds r0, 0x4\n" + "\tmovs r2, 0x8\n" + "\tbl memcpy\n" + "\tlsls r1, r5, 5\n" + "\tldr r0, _0815DD24 @ =gUnknown_84827B4\n" + "\tadds r7, r1, r0\n" + "\tmovs r5, 0\n" + "\tmovs r4, 0x7\n" + "_0815DCE6:\n" + "\tldr r6, _0815DD28 @ =gUnknown_203F458\n" + "\tldr r0, [r6]\n" + "\tadds r0, r5, r0\n" + "\tadds r0, 0xC\n" + "\tldm r7!, {r1}\n" + "\tmovs r2, 0xF8\n" + "\tlsls r2, 2\n" + "\tbl memcpy\n" + "\tmovs r0, 0xF8\n" + "\tlsls r0, 2\n" + "\tadds r5, r0\n" + "\tsubs r4, 0x1\n" + "\tcmp r4, 0\n" + "\tbge _0815DCE6\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0xC\n" + "\tmovs r1, 0xF8\n" + "\tlsls r1, 5\n" + "\tbl CalcByteArraySum\n" + "\tldr r1, [r6]\n" + "\tstr r0, [r1, 0x8]\n" + "\tbl sub_815EC0C\n" + "_0815DD18:\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_0815DD20: .4byte gUnknown_84827AC\n" + "_0815DD24: .4byte gUnknown_84827B4\n" + "_0815DD28: .4byte gUnknown_203F458"); +} +#endif // NONMATCHING + +void sub_815DD2C(void) +{ + Free(gUnknown_203F458); + gUnknown_203F458 = NULL; +} + +void sub_815DD44(void) +{ + if (gMapHeader.mapDataId - 0x129 > gUnknown_203F458->unk_0004.unk_0000.unk0) + { + gSpecialVar_Result = 3; + sub_8055D40(0x132); + } + else + { + gSpecialVar_Result = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002; + sub_8055D40(gUnknown_847A284[gUnknown_203F458->unk_0000][gSpecialVar_Result]); + sub_815DDB0(); + } +} + +void sub_815DDB0(void) +{ + s32 r3, r4; + u8 r1, r2, r4_; + switch (gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002) + { + case 0: + r2 = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[0].unk_00B; + for (r3 = 0; r3 < NELEMS(gUnknown_8479ED8); r3++) + { + if (gUnknown_8479ED8[r3].unk1 == r2) + break; + } + if (r3 != NELEMS(gUnknown_8479ED8)) + r1 = gUnknown_8479ED8[r3].unk0; + else + r1 = 18; + VarSet(VAR_0x4011, r1); + break; + case 1: + r2 = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[0].unk_00B; + for (r3 = 0; r3 < NELEMS(gUnknown_847A024); r3++) + { + if (gUnknown_847A024[r3].unk2 == r2) + break; + } + if (r3 != NELEMS(gUnknown_847A024)) + { + r1 = gUnknown_847A024[r3].unk0; + r4_ = gUnknown_847A024[r3].unk1; + } + else + { + r1 = 18; + r4_ = 18; + } + VarSet(VAR_0x4010, r1); + VarSet(VAR_0x4013, r4_); + break; + case 2: + for (r4 = 0; r4 < 3; r4++) + { + r2 = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r4].unk_00B; + for (r3 = 0; r3 < NELEMS(gUnknown_8479ED8); r3++) + { + if (gUnknown_8479ED8[r3].unk1 == r2) + break; + } + if (r3 != NELEMS(gUnknown_8479ED8)) + r1 = gUnknown_8479ED8[r3].unk0; + else + r1 = 18; + switch (r4) + { + case 0: + VarSet(VAR_0x4012, r1); + break; + case 1: + VarSet(VAR_0x4010, r1); + break; + case 2: + VarSet(VAR_0x4011, r1); + break; + } + } + } +} + +void sub_815DEFC(u16 * ecWords, u8 * dest) +{ + s32 r1; + ConvertEasyChatWordsToString(dest, ecWords, 3, 2); + if ((unsigned)GetStringWidth(2, dest, -1) > 196) + { + ConvertEasyChatWordsToString(dest, ecWords, 2, 3); + r1 = 0; + while (dest[r1++] != CHAR_NEWLINE) + ; + while (dest[r1] != CHAR_NEWLINE) + r1++; + dest[r1] = CHAR_PROMPT_SCROLL; + } +} + +#ifdef NONMATCHING +void sub_815DF54(void) +{ + u16 r4 = gSpecialVar_0x8006; + u8 r1; + u8 r5 = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002; + // HOW DO I MATCH THIS CONTROL FLOW?!?! + r1 = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r5 == 1 ? 0 : r4].unk_00B; + switch (gSpecialVar_0x8005) + { + case 2: + sub_815E068(r5, r1); + sub_815DEFC(gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r4].unk_00E, gStringVar4); + break; + case 3: + sub_815E068(r5, r1); + sub_815DEFC(gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r4].unk_01A, gStringVar4); + break; + case 4: + sub_815E068(r5, r1); + sub_815DEFC(gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r4].unk_026, gStringVar4); + break; + case 5: + sub_815DEFC(gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r4].unk_032, gStringVar4); + break; + } +} +#else +NAKED +void sub_815DF54(void) +{ + asm_unified("\tpush {r4,r5,lr}\n" + "\tldr r0, _0815DF90 @ =gSpecialVar_0x8006\n" + "\tldrh r4, [r0]\n" + "\tldr r2, _0815DF94 @ =gUnknown_203F458\n" + "\tldr r3, [r2]\n" + "\tldrb r1, [r3]\n" + "\tlsls r0, r1, 5\n" + "\tsubs r0, r1\n" + "\tlsls r1, r0, 5\n" + "\tadds r0, r3, r1\n" + "\tldrb r5, [r0, 0xE]\n" + "\tcmp r5, 0x1\n" + "\tbeq _0815DF7C\n" + "\tlsls r0, r4, 2\n" + "\tadds r0, r4\n" + "\tlsls r0, 3\n" + "\tadds r0, r4\n" + "\tlsls r0, 3\n" + "\tadds r0, r1\n" + "\tadds r0, r3, r0\n" + "_0815DF7C:\n" + "\tldrb r1, [r0, 0x1B]\n" + "\tldr r0, _0815DF98 @ =gSpecialVar_0x8005\n" + "\tldrh r0, [r0]\n" + "\tcmp r0, 0x3\n" + "\tbeq _0815DFD4\n" + "\tcmp r0, 0x3\n" + "\tbgt _0815DF9C\n" + "\tcmp r0, 0x2\n" + "\tbeq _0815DFA6\n" + "\tb _0815E05C\n" + "\t.align 2, 0\n" + "_0815DF90: .4byte gSpecialVar_0x8006\n" + "_0815DF94: .4byte gUnknown_203F458\n" + "_0815DF98: .4byte gSpecialVar_0x8005\n" + "_0815DF9C:\n" + "\tcmp r0, 0x4\n" + "\tbeq _0815E000\n" + "\tcmp r0, 0x5\n" + "\tbeq _0815E038\n" + "\tb _0815E05C\n" + "_0815DFA6:\n" + "\tadds r0, r5, 0\n" + "\tbl sub_815E068\n" + "\tldr r0, _0815DFD0 @ =gUnknown_203F458\n" + "\tldr r0, [r0]\n" + "\tldrb r2, [r0]\n" + "\tlsls r1, r2, 5\n" + "\tsubs r1, r2\n" + "\tlsls r1, 5\n" + "\tadds r1, 0xC\n" + "\tadds r0, r1\n" + "\tlsls r1, r4, 2\n" + "\tadds r1, r4\n" + "\tlsls r1, 3\n" + "\tadds r1, r4\n" + "\tlsls r1, 3\n" + "\tadds r1, 0x4\n" + "\tadds r0, r1\n" + "\tadds r0, 0xE\n" + "\tb _0815E026\n" + "\t.align 2, 0\n" + "_0815DFD0: .4byte gUnknown_203F458\n" + "_0815DFD4:\n" + "\tadds r0, r5, 0\n" + "\tbl sub_815E068\n" + "\tldr r0, _0815DFFC @ =gUnknown_203F458\n" + "\tldr r0, [r0]\n" + "\tldrb r2, [r0]\n" + "\tlsls r1, r2, 5\n" + "\tsubs r1, r2\n" + "\tlsls r1, 5\n" + "\tadds r1, 0xC\n" + "\tadds r0, r1\n" + "\tlsls r1, r4, 2\n" + "\tadds r1, r4\n" + "\tlsls r1, 3\n" + "\tadds r1, r4\n" + "\tlsls r1, 3\n" + "\tadds r1, 0x4\n" + "\tadds r0, r1\n" + "\tadds r0, 0x1A\n" + "\tb _0815E026\n" + "\t.align 2, 0\n" + "_0815DFFC: .4byte gUnknown_203F458\n" + "_0815E000:\n" + "\tadds r0, r5, 0\n" + "\tbl sub_815E068\n" + "\tldr r0, _0815E030 @ =gUnknown_203F458\n" + "\tldr r0, [r0]\n" + "\tldrb r2, [r0]\n" + "\tlsls r1, r2, 5\n" + "\tsubs r1, r2\n" + "\tlsls r1, 5\n" + "\tadds r1, 0xC\n" + "\tadds r0, r1\n" + "\tlsls r1, r4, 2\n" + "\tadds r1, r4\n" + "\tlsls r1, 3\n" + "\tadds r1, r4\n" + "\tlsls r1, 3\n" + "\tadds r1, 0x4\n" + "\tadds r0, r1\n" + "\tadds r0, 0x26\n" + "_0815E026:\n" + "\tldr r1, _0815E034 @ =gStringVar4\n" + "\tbl sub_815DEFC\n" + "\tb _0815E05C\n" + "\t.align 2, 0\n" + "_0815E030: .4byte gUnknown_203F458\n" + "_0815E034: .4byte gStringVar4\n" + "_0815E038:\n" + "\tldr r0, [r2]\n" + "\tldrb r2, [r0]\n" + "\tlsls r1, r2, 5\n" + "\tsubs r1, r2\n" + "\tlsls r1, 5\n" + "\tadds r1, 0xC\n" + "\tadds r0, r1\n" + "\tlsls r1, r4, 2\n" + "\tadds r1, r4\n" + "\tlsls r1, 3\n" + "\tadds r1, r4\n" + "\tlsls r1, 3\n" + "\tadds r1, 0x4\n" + "\tadds r0, r1\n" + "\tadds r0, 0x32\n" + "\tldr r1, _0815E064 @ =gStringVar4\n" + "\tbl sub_815DEFC\n" + "_0815E05C:\n" + "\tpop {r4,r5}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_0815E064: .4byte gStringVar4"); +} +#endif // NONMATCHING diff --git a/sym_ewram.txt b/sym_ewram.txt index d68a01f8f..f8e0df713 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1753,11 +1753,10 @@ gUnknown_203F450: @ 203F450 gUnknown_203F454: @ 203F454 .space 0x4 -gUnknown_203F458: @ 203F458 - .space 0x4 + .include "src/trainer_tower.o" -gUnknown_203F45C: @ 203F45C - .space 0x8 +gUnknown_203F460: @ 203F460 + .space 0x4 gUnknown_203F464: @ 203F464 .space 0x1 |