Merge remote-tracking branch 'pret/master'

This commit is contained in:
Diegoisawesome
2018-01-18 12:53:45 -06:00
32 changed files with 6013 additions and 12086 deletions

View File

@@ -31,6 +31,7 @@ LDFLAGS = -Map ../../$(MAP)
OBJCOPY := $(DEVKITARM)/bin/arm-none-eabi-objcopy
LIBGCC := tools/agbcc/lib/libgcc.a
LIBC := tools/agbcc/lib/libc.a
SHA1 := sha1sum -c
@@ -41,14 +42,16 @@ SCANINC := tools/scaninc/scaninc
PREPROC := tools/preproc/preproc
RAMSCRGEN := tools/ramscrgen/ramscrgen
# Clear the default suffixes.
# Clear the default suffixes
.SUFFIXES:
# Don't delete intermediate files
.SECONDARY:
# Delete files that weren't built properly
.DELETE_ON_ERROR:
# Secondary expansion is required for dependency variables in object rules.
.SECONDEXPANSION:
.PRECIOUS: %.1bpp %.4bpp %.8bpp %.gbapal %.lz %.rl %.pcm %.bin sound/direct_sound_samples/cry_%.bin
.PHONY: rom clean compare tidy
$(shell mkdir -p $(C_BUILDDIR) $(ASM_BUILDDIR) $(DATA_ASM_BUILDDIR) $(SONG_BUILDDIR))
@@ -160,7 +163,10 @@ $(OBJ_DIR)/ld_script.ld: ld_script.txt $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_comm
cd $(OBJ_DIR) && sed -f ../../ld_script.sed ../../$< | sed "s#tools/#../../tools/#g" > ld_script.ld
$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS)
cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) ../../$(LIBGCC)
cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) ../../$(LIBGCC) ../../$(LIBC)
$(ROM): $(ELF)
$(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@
baserom.gba: ;
$(error baserom.gba is required to build)

File diff suppressed because it is too large Load Diff

View File

@@ -498,8 +498,8 @@ _080B5E68:
bx r1
thumb_func_end FieldEffectActiveListContains
thumb_func_start sub_80B5E6C
sub_80B5E6C: @ 80B5E6C
thumb_func_start CreateTrainerSprite
CreateTrainerSprite: @ 80B5E6C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -566,7 +566,7 @@ sub_80B5E6C: @ 80B5E6C
pop {r1}
bx r1
.pool
thumb_func_end sub_80B5E6C
thumb_func_end CreateTrainerSprite
thumb_func_start sub_80B5F0C
sub_80B5F0C: @ 80B5F0C

View File

@@ -3948,7 +3948,7 @@ AddBirchSpeechObjects: @ 803192C
movs r1, 0x78
movs r2, 0x3C
movs r3, 0
bl sub_80B5E6C
bl CreateTrainerSprite
lsls r0, 24
lsrs r0, 24
lsls r2, r0, 4
@@ -3981,7 +3981,7 @@ AddBirchSpeechObjects: @ 803192C
movs r1, 0x78
movs r2, 0x3C
movs r3, 0
bl sub_80B5E6C
bl CreateTrainerSprite
lsls r0, 24
lsrs r0, 24
lsls r2, r0, 4

View File

@@ -3055,9 +3055,9 @@ _08085E18:
.pool
thumb_func_end c1_overworld
thumb_func_start c2_overworld_basic
@ void c2_overworld_basic()
c2_overworld_basic: @ 8085E24
thumb_func_start OverworldBasic
@ void OverworldBasic()
OverworldBasic: @ 8085E24
push {lr}
bl ScriptContext2_RunScript
bl RunTasks
@@ -3070,15 +3070,15 @@ c2_overworld_basic: @ 8085E24
bl do_scheduled_bg_tilemap_copies_to_vram
pop {r0}
bx r0
thumb_func_end c2_overworld_basic
thumb_func_end OverworldBasic
thumb_func_start sub_8085E50
sub_8085E50: @ 8085E50
thumb_func_start CB2_OverworldBasic
CB2_OverworldBasic: @ 8085E50
push {lr}
bl c2_overworld_basic
bl OverworldBasic
pop {r0}
bx r0
thumb_func_end sub_8085E50
thumb_func_end CB2_OverworldBasic
thumb_func_start c2_overworld
c2_overworld: @ 8085E5C
@@ -3092,7 +3092,7 @@ c2_overworld: @ 8085E5C
movs r0, 0
bl SetVBlankCallback
_08085E70:
bl c2_overworld_basic
bl OverworldBasic
cmp r4, 0
beq _08085E7C
bl SetFieldVBlankCallback

View File

@@ -24,8 +24,8 @@ _081DABD2:
bx r1
thumb_func_end sub_81DABBC
thumb_func_start sub_81DABDC
sub_81DABDC: @ 81DABDC
thumb_func_start Phase2Task_34
Phase2Task_34: @ 81DABDC
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
@@ -50,7 +50,7 @@ _081DABEE:
pop {r0}
bx r0
.pool
thumb_func_end sub_81DABDC
thumb_func_end Phase2Task_34
thumb_func_start sub_81DAC14
sub_81DAC14: @ 81DAC14
@@ -119,7 +119,7 @@ sub_81DAC80: @ 81DAC80
bne _081DACA4
adds r0, r2, 0
bl sub_81DAA20
ldr r0, =sub_81DABDC
ldr r0, =Phase2Task_34
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
@@ -131,8 +131,8 @@ _081DACA4:
.pool
thumb_func_end sub_81DAC80
thumb_func_start sub_81DACB4
sub_81DACB4: @ 81DACB4
thumb_func_start Phase2Task_35
Phase2Task_35: @ 81DACB4
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
@@ -157,7 +157,7 @@ _081DACC6:
pop {r0}
bx r0
.pool
thumb_func_end sub_81DACB4
thumb_func_end Phase2Task_35
thumb_func_start sub_81DACEC
sub_81DACEC: @ 81DACEC
@@ -226,7 +226,7 @@ sub_81DAD58: @ 81DAD58
bne _081DAD7C
adds r0, r2, 0
bl sub_81DAA20
ldr r0, =sub_81DACB4
ldr r0, =Phase2Task_35
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
@@ -238,8 +238,8 @@ _081DAD7C:
.pool
thumb_func_end sub_81DAD58
thumb_func_start sub_81DAD8C
sub_81DAD8C: @ 81DAD8C
thumb_func_start Phase2Task_36
Phase2Task_36: @ 81DAD8C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
@@ -264,7 +264,7 @@ _081DAD9E:
pop {r0}
bx r0
.pool
thumb_func_end sub_81DAD8C
thumb_func_end Phase2Task_36
thumb_func_start sub_81DADC4
sub_81DADC4: @ 81DADC4
@@ -342,7 +342,7 @@ sub_81DAE44: @ 81DAE44
bne _081DAE68
adds r0, r2, 0
bl sub_81DAA20
ldr r0, =sub_81DAD8C
ldr r0, =Phase2Task_36
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
@@ -354,8 +354,8 @@ _081DAE68:
.pool
thumb_func_end sub_81DAE44
thumb_func_start sub_81DAE78
sub_81DAE78: @ 81DAE78
thumb_func_start Phase2Task_37
Phase2Task_37: @ 81DAE78
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
@@ -380,7 +380,7 @@ _081DAE8A:
pop {r0}
bx r0
.pool
thumb_func_end sub_81DAE78
thumb_func_end Phase2Task_37
thumb_func_start sub_81DAEB0
sub_81DAEB0: @ 81DAEB0
@@ -460,7 +460,7 @@ sub_81DAF34: @ 81DAF34
bne _081DAF58
adds r0, r2, 0
bl sub_81DAA20
ldr r0, =sub_81DAE78
ldr r0, =Phase2Task_37
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
@@ -472,8 +472,8 @@ _081DAF58:
.pool
thumb_func_end sub_81DAF34
thumb_func_start sub_81DAF68
sub_81DAF68: @ 81DAF68
thumb_func_start Phase2Task_38
Phase2Task_38: @ 81DAF68
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
@@ -498,7 +498,7 @@ _081DAF7A:
pop {r0}
bx r0
.pool
thumb_func_end sub_81DAF68
thumb_func_end Phase2Task_38
thumb_func_start sub_81DAFA0
sub_81DAFA0: @ 81DAFA0
@@ -585,7 +585,7 @@ sub_81DB02C: @ 81DB02C
bne _081DB050
adds r0, r2, 0
bl sub_81DAA20
ldr r0, =sub_81DAF68
ldr r0, =Phase2Task_38
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
@@ -597,8 +597,8 @@ _081DB050:
.pool
thumb_func_end sub_81DB02C
thumb_func_start sub_81DB060
sub_81DB060: @ 81DB060
thumb_func_start Phase2Task_39
Phase2Task_39: @ 81DB060
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
@@ -623,7 +623,7 @@ _081DB072:
pop {r0}
bx r0
.pool
thumb_func_end sub_81DB060
thumb_func_end Phase2Task_39
thumb_func_start sub_81DB098
sub_81DB098: @ 81DB098
@@ -710,7 +710,7 @@ sub_81DB124: @ 81DB124
bne _081DB148
adds r0, r2, 0
bl sub_81DAA20
ldr r0, =sub_81DB060
ldr r0, =Phase2Task_39
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
@@ -722,4 +722,264 @@ _081DB148:
.pool
thumb_func_end sub_81DB124
thumb_func_start Phase2Task_40
Phase2Task_40: @ 81DB158
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, =gUnknown_0862B7E8
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_081DB16A:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _081DB16A
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end Phase2Task_40
thumb_func_start sub_81DB190
sub_81DB190: @ 81DB190
push {r4,lr}
sub sp, 0x10
adds r4, r0, 0
movs r0, 0xA
ldrsh r1, [r4, r0]
cmp r1, 0
bne _081DB1BE
movs r0, 0x80
str r0, [sp]
str r1, [sp, 0x4]
subs r0, 0x84
str r0, [sp, 0x8]
str r1, [sp, 0xC]
movs r0, 0x78
movs r1, 0x2D
movs r2, 0xC
movs r3, 0x4
bl sub_81DA8BC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x10]
b _081DB212
_081DB1BE:
cmp r1, 0x10
bne _081DB1E6
movs r0, 0x80
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
subs r0, 0x4
str r0, [sp, 0x8]
movs r0, 0x1
str r0, [sp, 0xC]
movs r0, 0x59
movs r1, 0x61
movs r2, 0xFC
movs r3, 0x4
bl sub_81DA8BC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x12]
b _081DB212
_081DB1E6:
cmp r1, 0x20
bne _081DB212
movs r0, 0x80
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
subs r0, 0x4
str r0, [sp, 0x8]
movs r0, 0x2
str r0, [sp, 0xC]
movs r0, 0x97
movs r1, 0x61
movs r2, 0x84
movs r3, 0x4
bl sub_81DA8BC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x14]
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_081DB212:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
movs r0, 0
add sp, 0x10
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81DB190
thumb_func_start sub_81DB224
sub_81DB224: @ 81DB224
push {lr}
adds r2, r0, 0
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081DB248
adds r0, r2, 0
bl sub_81DAA20
ldr r0, =Phase2Task_40
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
_081DB248:
movs r0, 0
pop {r1}
bx r1
.pool
thumb_func_end sub_81DB224
thumb_func_start Phase2Task_41
Phase2Task_41: @ 81DB258
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, =gUnknown_0862B7FC
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_081DB26A:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _081DB26A
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end Phase2Task_41
thumb_func_start sub_81DB290
sub_81DB290: @ 81DB290
push {r4,lr}
sub sp, 0x10
adds r4, r0, 0
movs r0, 0xA
ldrsh r1, [r4, r0]
cmp r1, 0
bne _081DB2C2
movs r2, 0x8E
lsls r2, 1
movs r0, 0x83
str r0, [sp]
movs r0, 0x23
str r0, [sp, 0x4]
subs r0, 0x26
str r0, [sp, 0x8]
str r1, [sp, 0xC]
movs r0, 0x78
movs r1, 0x50
movs r3, 0x8
bl sub_81DA8BC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x10]
b _081DB316
_081DB2C2:
cmp r1, 0x10
bne _081DB2EA
movs r0, 0x83
str r0, [sp]
movs r0, 0x23
str r0, [sp, 0x4]
subs r0, 0x26
str r0, [sp, 0x8]
movs r0, 0x1
str r0, [sp, 0xC]
movs r0, 0x78
movs r1, 0x50
movs r2, 0x2C
movs r3, 0x8
bl sub_81DA8BC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x12]
b _081DB316
_081DB2EA:
cmp r1, 0x20
bne _081DB316
movs r0, 0x83
str r0, [sp]
movs r0, 0x23
str r0, [sp, 0x4]
subs r0, 0x26
str r0, [sp, 0x8]
movs r0, 0x2
str r0, [sp, 0xC]
movs r0, 0x79
movs r1, 0x50
movs r2, 0xA4
movs r3, 0x8
bl sub_81DA8BC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x14]
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_081DB316:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
movs r0, 0
add sp, 0x10
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81DB290
thumb_func_start sub_81DB328
sub_81DB328: @ 81DB328
push {lr}
adds r2, r0, 0
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081DB34C
adds r0, r2, 0
bl sub_81DAA20
ldr r0, =Phase2Task_41
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
_081DB34C:
movs r0, 0
pop {r1}
bx r1
.pool
thumb_func_end sub_81DB328
.align 2, 0 @ Don't pad with nop.

View File

@@ -1,268 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_81DB158
sub_81DB158: @ 81DB158
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, =gUnknown_0862B7E8
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_081DB16A:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _081DB16A
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81DB158
thumb_func_start sub_81DB190
sub_81DB190: @ 81DB190
push {r4,lr}
sub sp, 0x10
adds r4, r0, 0
movs r0, 0xA
ldrsh r1, [r4, r0]
cmp r1, 0
bne _081DB1BE
movs r0, 0x80
str r0, [sp]
str r1, [sp, 0x4]
subs r0, 0x84
str r0, [sp, 0x8]
str r1, [sp, 0xC]
movs r0, 0x78
movs r1, 0x2D
movs r2, 0xC
movs r3, 0x4
bl sub_81DA8BC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x10]
b _081DB212
_081DB1BE:
cmp r1, 0x10
bne _081DB1E6
movs r0, 0x80
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
subs r0, 0x4
str r0, [sp, 0x8]
movs r0, 0x1
str r0, [sp, 0xC]
movs r0, 0x59
movs r1, 0x61
movs r2, 0xFC
movs r3, 0x4
bl sub_81DA8BC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x12]
b _081DB212
_081DB1E6:
cmp r1, 0x20
bne _081DB212
movs r0, 0x80
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
subs r0, 0x4
str r0, [sp, 0x8]
movs r0, 0x2
str r0, [sp, 0xC]
movs r0, 0x97
movs r1, 0x61
movs r2, 0x84
movs r3, 0x4
bl sub_81DA8BC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x14]
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_081DB212:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
movs r0, 0
add sp, 0x10
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81DB190
thumb_func_start sub_81DB224
sub_81DB224: @ 81DB224
push {lr}
adds r2, r0, 0
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081DB248
adds r0, r2, 0
bl sub_81DAA20
ldr r0, =sub_81DB158
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
_081DB248:
movs r0, 0
pop {r1}
bx r1
.pool
thumb_func_end sub_81DB224
thumb_func_start sub_81DB258
sub_81DB258: @ 81DB258
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, =gUnknown_0862B7FC
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_081DB26A:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _081DB26A
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81DB258
thumb_func_start sub_81DB290
sub_81DB290: @ 81DB290
push {r4,lr}
sub sp, 0x10
adds r4, r0, 0
movs r0, 0xA
ldrsh r1, [r4, r0]
cmp r1, 0
bne _081DB2C2
movs r2, 0x8E
lsls r2, 1
movs r0, 0x83
str r0, [sp]
movs r0, 0x23
str r0, [sp, 0x4]
subs r0, 0x26
str r0, [sp, 0x8]
str r1, [sp, 0xC]
movs r0, 0x78
movs r1, 0x50
movs r3, 0x8
bl sub_81DA8BC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x10]
b _081DB316
_081DB2C2:
cmp r1, 0x10
bne _081DB2EA
movs r0, 0x83
str r0, [sp]
movs r0, 0x23
str r0, [sp, 0x4]
subs r0, 0x26
str r0, [sp, 0x8]
movs r0, 0x1
str r0, [sp, 0xC]
movs r0, 0x78
movs r1, 0x50
movs r2, 0x2C
movs r3, 0x8
bl sub_81DA8BC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x12]
b _081DB316
_081DB2EA:
cmp r1, 0x20
bne _081DB316
movs r0, 0x83
str r0, [sp]
movs r0, 0x23
str r0, [sp, 0x4]
subs r0, 0x26
str r0, [sp, 0x8]
movs r0, 0x2
str r0, [sp, 0xC]
movs r0, 0x79
movs r1, 0x50
movs r2, 0xA4
movs r3, 0x8
bl sub_81DA8BC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x14]
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_081DB316:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
movs r0, 0
add sp, 0x10
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81DB290
thumb_func_start sub_81DB328
sub_81DB328: @ 81DB328
push {lr}
adds r2, r0, 0
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081DB34C
adds r0, r2, 0
bl sub_81DAA20
ldr r0, =sub_81DB258
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
_081DB34C:
movs r0, 0
pop {r1}
bx r1
.pool
thumb_func_end sub_81DB328
.align 2, 0 @ Don't pad with nop.

14
build_tools.sh Normal file → Executable file
View File

@@ -1,8 +1,8 @@
#!/bin/sh
make -C tools/gbagfx
make -C tools/scaninc
make -C tools/preproc
make -C tools/bin2c
make -C tools/rsfont
make -C tools/aif2pcm
make -C tools/ramscrgen
make -C tools/gbagfx CXX=${1:=g++}
make -C tools/scaninc CXX=${1:=g++}
make -C tools/preproc CXX=${1:=g++}
make -C tools/bin2c CXX=${1:=g++}
make -C tools/rsfont CXX=${1:=g++}
make -C tools/aif2pcm CXX=${1:=g++}
make -C tools/ramscrgen CXX=${1:=g++}

View File

@@ -1,784 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
sBigPokeball_Tileset:: @ 85B9330
.incbin "graphics/battle_transitions/big_pokeball.4bpp"
.align 2
sPokeballTrail_Tileset:: @ 85B98B0
.incbin "graphics/battle_transitions/pokeball_trail.4bpp"
.align 2
sSpriteImage_85B98F0:: @ 85B98F0
.incbin "graphics/battle_transitions/pokeball.4bpp"
.align 2
sUnknown_085B9AF0:: @ 85B9AF0
.incbin "graphics/battle_transitions/elite_four_bg.4bpp"
.align 2
sSpriteImage_85B9CD0:: @ 85B9CD0
.incbin "graphics/battle_transitions/unused_brendan.4bpp"
.align 2
sSpriteImage_85BA4D0:: @ 85BA4D0
.incbin "graphics/battle_transitions/unused_lass.4bpp"
.align 2
sShrinkingBoxTileset:: @ 85BACD0
.incbin "graphics/battle_transitions/shrinking_box.4bpp"
.align 2
sEvilTeam_Palette:: @ 85BAEB0
.incbin "graphics/battle_transitions/evil_team.gbapal"
.align 2
sTeamAqua_Tileset:: @ 85BAED0
.incbin "graphics/battle_transitions/team_aqua.4bpp.lz"
.align 2
sTeamAqua_Tilemap:: @ 85BB248
.incbin "graphics/battle_transitions/team_aqua.bin.lz"
.align 2
sTeamMagma_Tileset:: @ 85BB4A4
.incbin "graphics/battle_transitions/team_magma.4bpp.lz"
.align 2
sTeamMagma_Tilemap:: @ 85BB930
.incbin "graphics/battle_transitions/team_magma.bin.lz"
.align 2
gUnknown_085BBC14:: @ 85BBC14
.incbin "graphics/battle_transitions/85BBC14.4bpp"
.align 2
gUnknown_085BC2B4:: @ 85BC2B4
.incbin "graphics/battle_transitions/85BC2B4.gbapal"
.align 2
gUnknown_085BC2D4:: @ 85BC2D4
.incbin "graphics/battle_transitions/85BC2D4.gbapal"
.align 2
gUnknown_085BC2F4:: @ 85BC2F4
.incbin "graphics/battle_transitions/85BC2F4.gbapal"
.align 2
gUnknown_085BC314:: @ 85BC314
.incbin "graphics/battle_transitions/85BC314.bin"
.align 2
gUnknown_085BCB14:: @ 85BCB14
.incbin "graphics/battle_transitions/85BCB14.bin"
.align 2
gUnknown_085BD314:: @ 85BD314
.incbin "graphics/battle_transitions/85BD314.bin"
.align 2
gUnknown_085BDB14:: @ 85BDB14
.incbin "graphics/battle_transitions/85BDB14.gbapal"
.align 2
gUnknown_085BDB34:: @ 85BDB34
.incbin "graphics/battle_transitions/kyogre.4bpp.lz"
.align 2
gUnknown_085BE1E8:: @ 85BE1E8
.incbin "graphics/battle_transitions/kyogre.bin.lz"
.align 2
gUnknown_085BE51C:: @ 85BE51C
.incbin "graphics/battle_transitions/groudon.4bpp.lz"
.align 2
gUnknown_085BEA88:: @ 85BEA88
.incbin "graphics/battle_transitions/groudon.bin.lz"
.align 2
gUnknown_085BEDA0:: @ 85BEDA0
.incbin "graphics/battle_transitions/kyogre_pt1.gbapal"
.align 2
gUnknown_085BEEE0:: @ 85BEEE0
.incbin "graphics/battle_transitions/kyogre_pt2.gbapal"
.align 2
gUnknown_085BF0A0:: @ 85BF0A0
.incbin "graphics/battle_transitions/groudon_pt1.gbapal"
.align 2
gUnknown_085BF2A0:: @ 85BF2A0
.incbin "graphics/battle_transitions/groudon_pt2.gbapal"
.align 2
gUnknown_085BF4A0:: @ 85BF4A0
.incbin "graphics/battle_transitions/rayquaza.gbapal"
.align 2
gUnknown_085BF6A0:: @ 85BF6A0
.incbin "graphics/battle_transitions/rayquaza.4bpp"
.align 2
gUnknown_085C6BE0:: @ 85C6BE0
.incbin "graphics/battle_transitions/rayquaza.bin"
.align 2
gUnknown_085C7BE0:: @ 85C7BE0
.incbin "graphics/battle_transitions/frontier_brain.gbapal"
.align 2
gUnknown_085C7C00:: @ 85C7C00
.incbin "graphics/battle_transitions/frontier_brain.4bpp.lz"
.align 2
gUnknown_085C828C:: @ 85C828C
.incbin "graphics/battle_transitions/frontier_brain.bin.lz"
.align 2
gUnknown_085C8578:: @ 85C8578
.incbin "graphics/battle_transitions/frontier_squares_blanktiles.gbapal"
.align 2
gUnknown_085C8598:: @ 85C8598
.incbin "graphics/battle_transitions/frontier_square_1.4bpp.lz"
.align 2
gUnknown_085C86F4:: @ 85C86F4
.incbin "graphics/battle_transitions/frontier_square_2.4bpp.lz"
.align 2
gUnknown_085C87F4:: @ 85C87F4
.incbin "graphics/battle_transitions/frontier_square_3.4bpp.lz"
.align 2
gUnknown_085C88A4:: @ 85C88A4
.incbin "graphics/battle_transitions/frontier_square_4.4bpp.lz"
.align 2
gUnknown_085C8928:: @ 85C8928
.incbin "graphics/battle_transitions/frontier_squares.bin"
.align 2
sPhase1_Tasks:: @ 85C8948
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.4byte sub_81460BC
.align 2
sPhase2_Tasks:: @ 85C89F0
.4byte sub_814610C
.4byte sub_8146204
.4byte sub_8146384
.4byte sub_8146514
.4byte sub_8146F94
.4byte sub_8147204
.4byte sub_8147718
.4byte sub_81478EC
.4byte sub_81484D0
.4byte sub_8149578
.4byte sub_814995C
.4byte sub_8149A6C
.4byte sub_8147AE4
.4byte sub_8147B04
.4byte sub_8147B24
.4byte sub_8147B44
.4byte sub_8147B64
.4byte sub_814654C
.4byte sub_8146584
.4byte sub_81465BC
.4byte sub_81465F4
.4byte sub_814662C
.4byte sub_8146664
.4byte sub_8149140
.4byte sub_814927C
.4byte sub_8148760
.4byte sub_8148B54
.4byte sub_8148B8C
.4byte sub_8148E54
.4byte sub_814A3BC
.4byte sub_814A3F4
.4byte sub_814A6F0
.4byte sub_814A760
.4byte sub_814A728
.4byte sub_81DABDC
.4byte sub_81DACB4
.4byte sub_81DAD8C
.4byte sub_81DAE78
.4byte sub_81DAF68
.4byte sub_81DB060
.4byte sub_81DB158
.4byte sub_81DB258
.align 2
sMainTransitionPhases:: @ 85C8A98
.4byte sub_8145FE0
.4byte sub_8146030
.4byte sub_8146064
.4byte sub_814608C
.align 2
sPhase2_Transition_Blur_Funcs:: @ 85C8AA8
.4byte sub_8146144
.4byte sub_8146178
.4byte sub_81461D8
.align 2
sPhase2_Transition_Swirl_Funcs:: @ 85C8AB4
.4byte sub_814623C
.4byte sub_81462A8
.align 2
sPhase2_Transition_Shuffle_Funcs:: @ 85C8ABC
.4byte sub_81463BC
.4byte sub_8146420
.align 2
gUnknown_085C8AC4:: @ 85C8AC4
.4byte sub_814670C
.4byte sub_81468E4
.4byte sub_8146BF8
.4byte sub_8146C8C
.4byte sub_8146D20
.4byte sub_8146D90
.4byte sub_8146DF8
.align 2
gUnknown_085C8AE0:: @ 85C8AE0
.4byte sub_8146760
.4byte sub_814692C
.4byte sub_8146BF8
.4byte sub_8146C8C
.4byte sub_8146D20
.4byte sub_8146D90
.4byte sub_8146DF8
.align 2
gUnknown_085C8AFC:: @ 85C8AFC
.4byte sub_8146800
.4byte sub_8146854
.4byte sub_8146BF8
.4byte sub_8146C8C
.4byte sub_8146D20
.4byte sub_8146DF8
.align 2
gUnknown_085C8B14:: @ 85C8B14
.4byte sub_81467B4
.4byte sub_8146974
.4byte sub_8146BF8
.4byte sub_8146C8C
.4byte sub_8146D20
.4byte sub_8146DF8
.align 2
gUnknown_085C8B2C:: @ 85C8B2C
.4byte sub_81467B4
.4byte sub_81469CC
.4byte sub_8146BF8
.4byte sub_8146C8C
.4byte sub_8146D20
.4byte sub_8146DF8
.align 2
gUnknown_085C8B44:: @ 85C8B44
.4byte sub_81467B4
.4byte sub_8146A24
.4byte sub_8146BF8
.4byte sub_8146C8C
.4byte sub_8146D20
.4byte sub_8146DF8
.align 2
gUnknown_085C8B5C:: @ 85C8B5C
.4byte sub_8146DAC
.4byte sub_8146DD8
.4byte sub_8146A7C
.4byte sub_8146AC8
.4byte sub_8146B24
.4byte sub_8146D90
.4byte sub_8146B7C
.4byte sub_8146BA8
.align 2
sPhase2_Transition_PokeballsTrail_Funcs:: @ 85C8B7C
.4byte sub_8146FCC
.4byte sub_8147018
.4byte sub_81470A4
.align 1
sUnknown_085C8B88:: @ 85C8B88
.2byte 0xfff0, 0x0100
.align 1
sUnknown_085C8B8C:: @ 85C8B8C
.2byte 0x0000, 0x0020, 0x0040, 0x0012, 0x0030
.align 1
sUnknown_085C8B96:: @ 85C8B96
.2byte 0x0008, 0xfff8, 0x0000
.align 2
sPhase2_Transition_Clockwise_BlackFade_Funcs:: @ 85C8B9C
.4byte sub_814723C
.4byte sub_81472A4
.4byte sub_8147334
.4byte sub_8147428
.4byte sub_81474B0
.4byte sub_81475B0
.4byte sub_8147648
.align 2
sPhase2_Transition_Ripple_Funcs:: @ 85C8BB8
.4byte sub_8147750
.4byte sub_81477A8
.align 2
sPhase2_Transition_Wave_Funcs:: @ 85C8BC0
.4byte sub_8147924
.4byte sub_814797C
.4byte sub_8147A18
.align 2
sPhase2_Mugshot_Transition_Funcs:: @ 85C8BCC
.4byte sub_8147BBC
.4byte sub_8147C24
.4byte sub_8147CE4
.4byte sub_8147DD0
.4byte sub_8147E4C
.4byte sub_8147E88
.4byte sub_8147F40
.4byte sub_8148008
.4byte sub_8148040
.4byte sub_814808C
sMugshotsTrainerPicIDsTable:: @ 85C8BF4
.byte 0x24, 0x25, 0x26, 0x27, 0x36, 0x00
.align 1
sMugshotsOpponentRotationScales:: @ 85C8BFA
.2byte 0x0200, 0x0200, 0x0200, 0x0200, 0x01b0, 0x01b0, 0x01a0, 0x01a0, 0x0188, 0x0188
.align 1
sMugshotsOpponentCoords:: @ 85C8C0E
.2byte 0x0000, 0x0000, 0x0000, 0x0000, 0xfffc, 0x0004, 0x0000, 0x0005, 0xfff8, 0x0007, 0x0000
.align 2
sUnknown_085C8C24:: @ 85C8C24
.4byte sub_81483A8
.4byte sub_81483AC
.4byte sub_81483F8
.4byte sub_814842C
.4byte sub_81483A8
.4byte sub_8148458
.4byte sub_81483A8
.align 1
sUnknown_085C8C40:: @ 85C8C40
.2byte 0x000c, 0xfff4
.align 1
sUnknown_085C8C44:: @ 85C8C44
.2byte 0xffff, 0x0001
.align 2
gUnknown_085C8C48:: @ 85C8C48
.4byte sub_8148508
.4byte sub_8148590
.4byte sub_814865C
.align 2
gUnknown_085C8C54:: @ 85C8C54
.4byte sub_8148798
.4byte sub_8148864
.4byte sub_8148AD4
.4byte sub_8148B14
.align 1
gUnknown_085C8C64:: @ 85C8C64
.2byte 0x7727
.align 1
gUnknown_085C8C66:: @ 85C8C66
.2byte 0x0001, 0xffff, 0x0000
.align 2
gUnknown_085C8C6C:: @ 85C8C6C
.4byte sub_8148BC4
.4byte sub_8148CE8
.4byte sub_8148C28
.align 2
gUnknown_085C8C78:: @ 85C8C78
.4byte sub_8148BC4
.4byte sub_8148D6C
.align 1
gUnknown_085C8C80:: @ 85C8C80
.2byte 0xfffa, 0x0004
.align 2
gUnknown_085C8C84:: @ 85C8C84
.4byte sub_8148E8C
.4byte sub_8148F4C
.4byte sub_8149008
gUnknown_085C8C90:: @ 85C8C90
.2byte 0x0001, 0x001b, 0x0113, 0xffff
gUnknown_085C8C98:: @ 85C8C98
.2byte 0x0002, 0x01e6, 0xffff
gUnknown_085C8C9E:: @ 85C8C9E
.2byte 0x0003, 0x0106, 0xffff
gUnknown_085C8CA4:: @ 85C8CA4
.2byte 0x0004, 0x01fb, 0xfffe
gUnknown_085C8CAA:: @ 85C8CAA
.2byte 0x0001, 0x00d5, 0xffff
gUnknown_085C8CB0:: @ 85C8CB0
.2byte 0x0002, 0x0224, 0xfffe
gUnknown_085C8CB6:: @ 85C8CB6
.2byte 0x0003, 0x00c4, 0xffff
gUnknown_085C8CBC:: @ 85C8CBC
.2byte 0x0004, 0x023d, 0x0135, 0xffff
gUnknown_085C8CC4:: @ 85C8CC4
.2byte 0x0001, 0x01da, 0xffff
gUnknown_085C8CCA:: @ 85C8CCA
.2byte 0x0002, 0x0127, 0x0020, 0xffff
gUnknown_085C8CD2:: @ 85C8CD2
.2byte 0x0003, 0x003a, 0xffff
gUnknown_085C8CD8:: @ 85C8CD8
.2byte 0x0004, 0x01c7, 0xffff
gUnknown_085C8CDE:: @ 85C8CDE
.2byte 0x0001, 0x021c, 0xffff
gUnknown_085C8CE4:: @ 85C8CE4
.2byte 0x0002, 0x00e5, 0xffff
gUnknown_085C8CEA:: @ 85C8CEA
.2byte 0x0003, 0x00f4, 0x001c, 0xffff
gUnknown_085C8CF2:: @ 85C8CF2
.2byte 0x0004, 0x0205, 0xffff
.align 2
gUnknown_085C8CF8:: @ 85C8CF8
.4byte gUnknown_085C8C90
.4byte gUnknown_085C8CA4
.4byte gUnknown_085C8C98
.4byte gUnknown_085C8C9E
.4byte gUnknown_085C8CEA
.4byte gUnknown_085C8CE4
.4byte gUnknown_085C8CF2
.4byte gUnknown_085C8CDE
.align 2
gUnknown_085C8D18:: @ 85C8D18
.4byte gUnknown_085C8CBC
.4byte gUnknown_085C8CB0
.4byte gUnknown_085C8CB6
.4byte gUnknown_085C8CAA
.4byte gUnknown_085C8CCA
.4byte gUnknown_085C8CD8
.4byte gUnknown_085C8CC4
.4byte gUnknown_085C8CD2
.align 2
gUnknown_085C8D38:: @ 85C8D38
.4byte gUnknown_085C8CF8
.4byte gUnknown_085C8D18
.align 2
gUnknown_085C8D40:: @ 85C8D40
.4byte sub_8146DAC
.4byte sub_8146DD8
.4byte sub_8149178
.4byte sub_81491C8
.4byte sub_8149224
.4byte sub_8146D90
.4byte sub_8146B7C
.4byte sub_8146BA8
.align 2
gUnknown_085C8D60:: @ 85C8D60
.4byte sub_8146DAC
.4byte sub_8146DD8
.4byte sub_81492B4
.4byte sub_8149358
.4byte sub_8149388
.4byte sub_81493D8
.4byte sub_8149410
.4byte sub_814943C
.4byte sub_814946C
.4byte sub_8148CE8
.4byte sub_8148C28
.align 2
gUnknown_085C8D8C:: @ 85C8D8C
.4byte sub_81495B0
.4byte sub_8149628
.4byte sub_814969C
.4byte sub_81496D8
.4byte sub_8149740
.align 1
sUnknown_085C8DA0:: @ 85C8DA0
.2byte 0x0000, 0x0014, 0x000f, 0x0028, 0x000a, 0x0019, 0x0023, 0x0005
.align 2
sUnknown_085C8DB0:: @ 85C8DB0
.4byte sub_8149994
.4byte sub_81499E8
.4byte sub_8149A40
.align 2
sPhase2_Transition_Shards_Funcs:: @ 85C8DBC
.4byte sub_8149AA4
.4byte sub_8149B08
.4byte sub_8149B84
.4byte sub_8149C60
.4byte sub_8149CCC
.align 1
sUnknown_085C8DD0:: @ 85C8DD0
.2byte 0x0038, 0x0000, 0x0000, 0x00a0, 0x0000, 0x0068, 0x00a0, 0x00f0, 0x0058, 0x0001, 0x00f0, 0x0048, 0x0038, 0x0000, 0x0001, 0x0000
.2byte 0x0020, 0x0090, 0x00a0, 0x0000, 0x0090, 0x00a0, 0x00b8, 0x0000, 0x0001, 0x0038, 0x0000, 0x00a8, 0x00a0, 0x0000, 0x00a8, 0x00a0
.2byte 0x0030, 0x0000, 0x0001
.align 1
sUnknown_085C8E16:: @ 85C8E16
.2byte 0x0008, 0x0004, 0x0002, 0x0001, 0x0001, 0x0001, 0x0000
.align 2
sPhase1_TransitionAll_Funcs:: @ 85C8E24
.4byte sub_8149E34
.4byte sub_8149E90
.align 2
sSpriteImageTable_85C8E2C:: @ 85C8E2C
obj_frame_tiles sSpriteImage_85B98F0, 0x0200
.align 2
sSpriteAnim_85C8E34:: @ 85C8E34
obj_image_anim_frame 0, 1
obj_image_anim_end
.align 2
sSpriteAnimTable_85C8E3C:: @ 85C8E3C
.4byte sSpriteAnim_85C8E34
.align 2
sSpriteAffineAnim_85C8E40:: @ 85C8E40
obj_rot_scal_anim_frame 0, 0, -4, 1
obj_rot_scal_anim_jump 0
.align 2
sSpriteAffineAnim_85C8E50:: @ 85C8E50
obj_rot_scal_anim_frame 0, 0, 4, 1
obj_rot_scal_anim_jump 0
.align 2
sSpriteAffineAnimTable_85C8E60:: @ 85C8E60
.4byte sSpriteAffineAnim_85C8E40
.4byte sSpriteAffineAnim_85C8E50
.align 2
gUnknown_085C8E68:: @ 85C8E68
spr_template 0xffff, 0x1009, gFieldObjectBaseOam_32x32, sSpriteAnimTable_85C8E3C, sSpriteImageTable_85C8E2C, sSpriteAffineAnimTable_85C8E60, sub_814713C
.align 2
gOamData_85C8E80:: @ 85C8E80
.2byte 0x0000, 0xc000, 0x0000, 0x0000
.align 2
sSpriteImageTable_85C8E88:: @ 85C8E88
obj_frame_tiles sSpriteImage_85B9CD0, 0x0800
.align 2
sSpriteImageTable_85C8E90:: @ 85C8E90
obj_frame_tiles sSpriteImage_85BA4D0, 0x0800
.align 2
sSpriteAnim_85C8E98:: @ 85C8E98
obj_image_anim_frame 0, 1
obj_image_anim_end
.align 2
sSpriteAnimTable_85C8EA0:: @ 85C8EA0
.4byte sSpriteAnim_85C8E98
.align 2
sSpriteTemplate_85C8EA4:: @ 85C8EA4
spr_template 0xffff, 0x100a, gOamData_85C8E80, sSpriteAnimTable_85C8EA0, sSpriteImageTable_85C8E88, gDummySpriteAffineAnimTable, sub_8148380
.align 2
sSpriteTemplate_85C8EBC:: @ 85C8EBC
spr_template 0xffff, 0x100a, gOamData_85C8E80, sSpriteAnimTable_85C8EA0, sSpriteImageTable_85C8E90, gDummySpriteAffineAnimTable, sub_8148380
.align 2
gFieldEffectObjectPalette10:: @ 85C8ED4
.incbin "graphics/map_objects/palettes/field_effect_object_palette_10.gbapal"
.align 2
gFieldEffectObjectPaletteInfo10:: @ 85C8EF4
obj_pal gFieldEffectObjectPalette10, 0x1009
.align 2
sMugshotPal_Sidney:: @ 85C8EFC
.incbin "graphics/battle_transitions/sidney_bg.gbapal"
.align 2
sMugshotPal_Phoebe:: @ 85C8F1C
.incbin "graphics/battle_transitions/phoebe_bg.gbapal"
.align 2
sMugshotPal_Glacia:: @ 85C8F3C
.incbin "graphics/battle_transitions/glacia_bg.gbapal"
.align 2
sMugshotPal_Drake:: @ 85C8F5C
.incbin "graphics/battle_transitions/drake_bg.gbapal"
.align 2
sMugshotPal_Wallace:: @ 85C8F7C
.incbin "graphics/battle_transitions/wallace_bg.gbapal"
.align 2
sMugshotPal_Brendan:: @ 85C8F9C
.incbin "graphics/battle_transitions/brendan_bg.gbapal"
.align 2
sMugshotPal_May:: @ 85C8EFC
.incbin "graphics/battle_transitions/may_bg.gbapal"
.align 2
sOpponentMugshotsPals:: @ 85C8FDC
.4byte sMugshotPal_Sidney
.4byte sMugshotPal_Phoebe
.4byte sMugshotPal_Glacia
.4byte sMugshotPal_Drake
.4byte sMugshotPal_Wallace
.align 2
sPlayerMugshotsPals:: @ 85C8FF0
.4byte sMugshotPal_Brendan
.4byte sMugshotPal_May
.align 2
sUnusedTrainerPalette:: @ 85C8EF8
.incbin "graphics/battle_transitions/unused_trainer.gbapal"
.align 2
sSpritePalette_UnusedTrainer:: @ 85C8EFC
obj_pal sUnusedTrainerPalette, 0x100A
.align 2
sBigPokeball_Tilemap:: @ 85C9020
.incbin "graphics/battle_transitions/big_pokeball_map.bin"
.align 2
sMugshotsTilemap:: @ 85C94D0
.incbin "graphics/battle_transitions/elite_four_bg_map.bin"
.align 2
gUnknown_085C99D0:: @ 85C99D0
.4byte sub_814A324
.4byte sub_814A374
.4byte sub_8146BF8
.4byte sub_8146C8C
.4byte sub_8146D20
.4byte sub_8146DF8
.align 2
gUnknown_085C99E8:: @ 85C99E8
.4byte sub_814A42C
.4byte sub_814A4D4
.4byte sub_814A500
.4byte sub_814A550
.align 2
gUnknown_085C99F8:: @ 85C99F8
.4byte sub_814A798
.4byte sub_814A828
.4byte sub_814A898
.4byte sub_814ABA0
.align 2
gUnknown_085C9A08:: @ 85C9A08
.4byte sub_814A960
.4byte sub_814AA04
.4byte sub_814AA84
.4byte sub_814AAB8
.4byte sub_814ABA0
.align 2
gUnknown_085C9A1C:: @ 85C9A1C
.4byte sub_814AC38
.4byte sub_814AD48
.4byte sub_814ADB4
.4byte sub_814ADD8
.4byte sub_814AE40
gUnknown_085C9A30:: @ 85C9A30
.byte 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x1b, 0x14, 0x0d, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x07, 0x0e, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x13, 0x0c, 0x0b, 0x0a, 0x09, 0x08, 0x0f
.byte 0x10, 0x11, 0x12
gUnknown_085C9A53:: @ 85C9A53
.byte 0x00, 0x10, 0x29, 0x16, 0x2c, 0x02, 0x2b, 0x15, 0x2e, 0x1b, 0x09, 0x30, 0x26, 0x05, 0x39, 0x3b, 0x0c, 0x3f, 0x23, 0x1c, 0x0a, 0x35, 0x07, 0x31, 0x27, 0x17, 0x37, 0x01, 0x3e, 0x11, 0x3d, 0x1e
.byte 0x06, 0x22, 0x0f, 0x33, 0x20, 0x3a, 0x0d, 0x2d, 0x25, 0x34, 0x0b, 0x18, 0x3c, 0x13, 0x38, 0x21, 0x1d, 0x32, 0x28, 0x36, 0x0e, 0x03, 0x2f, 0x14, 0x12, 0x19, 0x04, 0x24, 0x1a, 0x2a, 0x1f, 0x08
.byte 0x00

View File

@@ -256,7 +256,7 @@ gFieldEffectScript_Unknown44:: @ 82DBC45
gFieldEffectScript_Unknown45:: @ 82DBC4B
field_eff_loadpal gFieldEffectObjectPaletteInfo10
field_eff_callnative sub_81470D0
field_eff_callnative FldEff_Pokeball
field_eff_end
gFieldEffectScript_HeartIcon:: @ 82DBC56

View File

@@ -24,43 +24,56 @@ gUnknown_08589A28:: @ 8589A28
.4byte HandleShopMenuQuit
gUnknown_08589A38:: @ 8589A38
.incbin "baserom.gba", 0x589a38, 0x10
window_template 0, 2, 1, 9, 6, 15, 8
window_template 0, 2, 1, 9, 4, 15, 8
gUnknown_08589A48:: @ 8589A48
.incbin "baserom.gba", 0x589a48, 0x18
.byte 0, 0, 0, 0
.4byte BuyMenuPrintItemDescriptionAndShowItemIcon
.4byte BuyMenuPrintPriceInList
.byte 0, 0, 0, 0, 1, 0, 8, 0, 33, 48, 0, 7
gUnknown_08589A60:: @ 8589A60
.incbin "baserom.gba", 0x589a60, 0x10
.4byte 0x1F8
.4byte 0x11E1
.4byte 0x21D2
.4byte 0x31C3
gUnknown_08589A70:: @ 8589A70
.incbin "baserom.gba", 0x589a70, 0x38
window_template 0, 1, 1, 10, 2, 15, 30
window_template 0, 14, 2, 15, 16, 15, 50
window_template 0, 0, 13, 14, 6, 15, 0x122
window_template 0, 1, 11, 12, 2, 15, 0x176
window_template 0, 18, 11, 10, 2, 15, 0x18E
window_template 0, 2, 15, 27, 4, 15, 0x1A2
window_template_terminator
gUnknown_08589AA8:: @ 8589AA8
.incbin "baserom.gba", 0x589aa8, 0x8
window_template 0, 21, 9, 5, 4, 15, 0x20E
gUnknown_08589AB0:: @ 8589AB0
.incbin "baserom.gba", 0x589ab0, 0x3
.byte 1, 2, 3
gUnknown_08589AB3:: @ 8589AB3
.incbin "baserom.gba", 0x589ab3, 0x7
.byte 0, 2, 3, 0, 3, 2, 0
gUnknown_08589ABA:: @ 8589ABA
.incbin "baserom.gba", 0x589aba, 0x6
.2byte 0x284, 0x282, 0x280
gUnknown_08589AC0:: @ 8589AC0
.incbin "baserom.gba", 0x589ac0, 0x6
.2byte 0x285, 0x283, 0x281
gUnknown_08589AC6:: @ 8589AC6
.incbin "baserom.gba", 0x589ac6, 0x6
.2byte 0x28C, 0x28A, 0x288
gUnknown_08589ACC:: @ 8589ACC
.incbin "baserom.gba", 0x589acc, 0x6
.2byte 0x28D, 0x28B, 0x289
gUnknown_08589AD2:: @ 8589AD2
.incbin "baserom.gba", 0x589ad2, 0x6
.2byte 0x2A0, 0x2A2, 0x2A4
gUnknown_08589AD8:: @ 8589AD8
.incbin "baserom.gba", 0x589ad8, 0x6
.2byte 0x2A1, 0x2A3, 0x2A5
gUnknown_08589ADE:: @ 8589ADE
.incbin "baserom.gba", 0x589ade, 0x6
.2byte 0x2A8, 0x2AA, 0x2AC

View File

@@ -1,12 +1,27 @@
#ifndef GUARD_BATTLE_TRANSITION_H
#define GUARD_BATTLE_TRANSITION_H
void sub_8149DFC(u8 a1);
void BattleTransition_StartOnField(u8 transitionID);
void BattleTransition_Start(u8 transitionID);
void TestBattleTransition(u8 transitionId);
void BattleTransition_StartOnField(u8 transitionId);
void BattleTransition_Start(u8 transitionId);
bool8 IsBattleTransitionDone(void);
bool8 FldEff_Pokeball(void);
void TransitionPhase1_Task_RunFuncs(u8 taskId);
void sub_8149F58(u16 **a0, u16 **a1);
// credits for the names go to Dyskinesia and Tetrable
extern const struct SpritePalette gFieldEffectObjectPaletteInfo10;
enum // TRANSITION_MUGSHOT
{
MUGSHOT_SYDNEY,
MUGSHOT_PHOEBE,
MUGSHOT_GLACIA,
MUGSHOT_DRAKE,
MUGSHOT_CHAMPION,
MUGSHOTS_COUNT
};
// credits for the names go to Dyskinesia, Tetrable and Farore
// names are naturally subject to change
#define B_TRANSITION_BLUR 0
@@ -35,10 +50,10 @@ bool8 IsBattleTransitionDone(void);
#define B_TRANSITION_KYOGRE 22
#define B_TRANSITION_GROUDON 23
#define B_TRANSITION_RAYQUAZA 24
#define B_TRANSITION_25 25
#define B_TRANSITION_26 26
#define B_TRANSITION_27 27
#define B_TRANSITION_28 28
#define B_TRANSITION_SHRED_SPLIT 25
#define B_TRANSITION_BLACKHOLE1 26
#define B_TRANSITION_BLACKHOLE2 27
#define B_TRANSITION_RECTANGULAR_SPIRAL 28
#define B_TRANSITION_29 29
#define B_TRANSITION_30 30
#define B_TRANSITION_31 31
@@ -52,5 +67,6 @@ bool8 IsBattleTransitionDone(void);
#define B_TRANSITION_39 39
#define B_TRANSITION_40 40
#define B_TRANSITION_41 41
#define B_TRANSITION_COUNT 42
#endif // GUARD_BATTLE_TRANSITION_H

View File

@@ -70,7 +70,7 @@ void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
void CopyBgTilemapBufferToVram(u8 bg);
void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u8 height);
void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette);
void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, s16 tileNumDelta);

View File

@@ -1,6 +1,23 @@
#ifndef GUARD_CONFIG_H
#define GUARD_CONFIG_H
// In the Generation 3 games, Asserts were used in various debug builds.
// Ruby/Sapphire and Emerald do not have these asserts while Fire Red
// still has them in the ROM. This is because the developers forgot
// to define NDEBUG before release, however this has been changed as
// Ruby's actual debug build does not use the AGBPrint features.
#define NDEBUG
// To enable print debugging, comment out "#define NDEBUG". This allows
// the various AGBPrint functions to be used. (See include/gba/isagbprint.h).
// Some emulators support a debug console window: uncomment NoCashGBAPrint()
// and NoCashGBAPrintf() in libisagbprn.c to use no$gba's own proprietary
// printing system. Use NoCashGBAPrint() and NoCashGBAPrintf() like you
// would normally use AGBPrint() and AGBPrintf().
// NOTE: Don't try to enable assert right now as many pointers
// still exist in defines and WILL likely result in a broken ROM.
#define ENGLISH
#ifdef ENGLISH

View File

@@ -2,485 +2,488 @@
#define GUARD_CONSTANTS_SONGS_H
#define MUS_DUMMY 0
#define SE_KAIFUKU 1
#define SE_PC_LOGIN 2
#define SE_PC_OFF 3
#define SE_PC_ON 4
#define SE_SELECT 5
#define SE_WIN_OPEN 6
#define SE_WALL_HIT 7
#define SE_DOOR 8
#define SE_KAIDAN 9
#define SE_DANSA 10
#define SE_JITENSYA 11
#define SE_KOUKA_L 12
#define SE_KOUKA_M 13
#define SE_KOUKA_H 14
#define SE_BOWA2 15
#define SE_POKE_DEAD 16
#define SE_NIGERU 17
#define SE_JIDO_DOA 18
#define SE_NAMINORI 19
#define SE_BAN 20
#define SE_PIN 21
#define SE_BOO 22
#define SE_BOWA 23
#define SE_JYUNI 24
#define SE_A 25
#define SE_I 26
#define SE_U 27
#define SE_E 28
#define SE_O 29
#define SE_N 30
#define SE_SEIKAI 31
#define SE_HAZURE 32
#define SE_EXP 33
#define SE_JITE_PYOKO 34
#define SE_KAIFUKU 1 // Healing Item
#define SE_PC_LOGIN 2 // PC Logon
#define SE_PC_OFF 3 // PC Shutdown
#define SE_PC_ON 4 // PC Startup
#define SE_SELECT 5 // Cursor Selection
#define SE_WIN_OPEN 6 // Start Menu
#define SE_WALL_HIT 7 // Wall Bump
#define SE_DOOR 8 // Opening Door
#define SE_KAIDAN 9 // Stairs
#define SE_DANSA 10 // Ledge
#define SE_JITENSYA 11 // Bicycle Bell
#define SE_KOUKA_L 12 // Not Very Effective
#define SE_KOUKA_M 13 // Normal Effectiveness
#define SE_KOUKA_H 14 // Super Effective
#define SE_BOWA2 15 // Pokémon Withdrawal
#define SE_POKE_DEAD 16 // Pokémon Fainted
#define SE_NIGERU 17 // Flee from Wild Battle
#define SE_JIDO_DOA 18 // Pokémon Center Door
#define SE_NAMINORI 19 // Briney's Ship
#define SE_BAN 20 // Bang
#define SE_PIN 21 // Exclamation Bubble
#define SE_BOO 22 // Contest Jam
#define SE_BOWA 23 // Giving Poké Ball to Nurse, Poké Ball Wiggle
#define SE_JYUNI 24 // Places in Contest Appearing
#define SE_A 25 // Bard A
#define SE_I 26 // Bard I
#define SE_U 27 // Bard U
#define SE_E 28 // Bard E
#define SE_O 29 // Bard O
#define SE_N 30 // Bard N
#define SE_SEIKAI 31 // Success
#define SE_HAZURE 32 // Failure
#define SE_EXP 33 // Exp. Bar
#define SE_JITE_PYOKO 34 // Bunny Hop
#define SE_MU_PACHI 35
#define SE_TK_KASYA 36
#define SE_TK_KASYA 36 // Mossdeep Gym/Trick House Switch
#define SE_FU_ZAKU 37
#define SE_FU_ZAKU2 38
#define SE_FU_ZUZUZU 39
#define SE_RU_GASHIN 40
#define SE_RU_GASYAN 41
#define SE_RU_BARI 42
#define SE_RU_HYUU 43
#define SE_FU_ZUZUZU 39 // Lavaridge Gym Warp
#define SE_RU_GASHIN 40 // Sootopolis Gym - Stairs Appear
#define SE_RU_GASYAN 41 // Sootopolis Gym - Ice Breaking
#define SE_RU_BARI 42 // Sootopolis Gym - Walking on Ice
#define SE_RU_HYUU 43 // Falling Down
#define SE_KI_GASYAN 44
#define SE_TK_WARPIN 45
#define SE_TK_WARPOUT 46
#define SE_TU_SAA 47
#define SE_HI_TURUN 48
#define SE_TRACK_MOVE 49
#define SE_TRACK_STOP 50
#define SE_TRACK_HAIKI 51
#define SE_TRACK_DOOR 52
#define SE_TK_WARPIN 45 // Warp In
#define SE_TK_WARPOUT 46 // Warp Out
#define SE_TU_SAA 47 // Repel
#define SE_HI_TURUN 48 // Moving Obstacle in Fortree Gym
#define SE_TRACK_MOVE 49 // Moving Truck
#define SE_TRACK_STOP 50 // Moving Truck Stop
#define SE_TRACK_HAIKI 51 // Moving Truck Unload
#define SE_TRACK_DOOR 52 // Moving Truck Door
#define SE_MOTER 53
#define SE_CARD 54
#define SE_SAVE 55
#define SE_KON 56
#define SE_KON2 57
#define SE_KON3 58
#define SE_KON4 59
#define SE_SUIKOMU 60
#define SE_NAGERU 61
#define SE_TOY_C 62
#define SE_TOY_D 63
#define SE_TOY_E 64
#define SE_TOY_F 65
#define SE_TOY_G 66
#define SE_TOY_A 67
#define SE_TOY_B 68
#define SE_TOY_C1 69
#define SE_MIZU 70
#define SE_HASHI 71
#define SE_DAUGI 72
#define SE_PINPON 73
#define SE_FUUSEN1 74
#define SE_FUUSEN2 75
#define SE_FUUSEN3 76
#define SE_TOY_KABE 77
#define SE_TOY_DANGO 78
#define SE_DOKU 79
#define SE_ESUKA 80
#define SE_T_AME 81
#define SE_T_AME_E 82
#define SE_T_OOAME 83
#define SE_T_OOAME_E 84
#define SE_T_KOAME 85
#define SE_T_KOAME_E 86
#define SE_T_KAMI 87
#define SE_T_KAMI2 88
#define SE_ELEBETA 89
#define SE_HINSI 90
#define SE_EXPMAX 91
#define SE_TAMAKORO 92
#define SE_TAMAKORO_E 93
#define SE_SAVE 55 // Save
#define SE_KON 56 // Poké Ball Bounce 1
#define SE_KON2 57 // Poké Ball Bounce 2
#define SE_KON3 58 // Poké Ball Bounce 3
#define SE_KON4 59 // Poké Ball Bounce 4
#define SE_SUIKOMU 60 // Poké Ball Trade
#define SE_NAGERU 61 // Poké Ball Throw
#define SE_TOY_C 62 // Note C
#define SE_TOY_D 63 // Note D
#define SE_TOY_E 64 // Note E
#define SE_TOY_F 65 // Note F
#define SE_TOY_G 66 // Note G
#define SE_TOY_A 67 // Note A
#define SE_TOY_B 68 // Note B
#define SE_TOY_C1 69 // Note High C
#define SE_MIZU 70 // Puddle
#define SE_HASHI 71 // Boardwalk
#define SE_DAUGI 72 // Slots Credits
#define SE_PINPON 73 // Ding-dong!
#define SE_FUUSEN1 74 // Red Balloon
#define SE_FUUSEN2 75 // Blue Balloon
#define SE_FUUSEN3 76 // Yellow Balloon
#define SE_TOY_KABE 77 // Breakable Door
#define SE_TOY_DANGO 78 // Mud Ball
#define SE_DOKU 79 // Overworld Poison Damage
#define SE_ESUKA 80 // Escalator
#define SE_T_AME 81 // Rain
#define SE_T_AME_E 82 // Rain Stop
#define SE_T_OOAME 83 // Heavy Rain
#define SE_T_OOAME_E 84 // Heavy Rain Stop
#define SE_T_KOAME 85 // Light Rain
#define SE_T_KOAME_E 86 // Light Rain Stop
#define SE_T_KAMI 87 // Thunder
#define SE_T_KAMI2 88 // Thunder 2
#define SE_ELEBETA 89 // Elevator
#define SE_HINSI 90 // Low Health
#define SE_EXPMAX 91 // Exp. Max
#define SE_TAMAKORO 92 // Roulette Ball
#define SE_TAMAKORO_E 93 // Roulette Ball 2
#define SE_BASABASA 94
#define SE_REGI 95
#define SE_C_GAJI 96
#define SE_C_MAKU_U 97
#define SE_C_MAKU_D 98
#define SE_REGI 95 // Cash Register
#define SE_C_GAJI 96 // Contest Hearts
#define SE_C_MAKU_U 97 // Contest Curtain rise
#define SE_C_MAKU_D 98 // Contest Curtain fall
#define SE_C_PASI 99
#define SE_C_SYU 100
#define SE_C_PIKON 101
#define SE_REAPOKE 102
#define SE_OP_BASYU 103
#define SE_BT_START 104
#define SE_DENDOU 105
#define SE_JIHANKI 106
#define SE_TAMA 107
#define SE_Z_SCROLL 108
#define SE_Z_PAGE 109
#define SE_PN_ON 110
#define SE_PN_OFF 111
#define SE_Z_SEARCH 112
#define SE_TAMAGO 113
#define SE_TB_START 114
#define SE_TB_KON 115
#define SE_TB_KARA 116
#define SE_C_PIKON 101 // Pokémon Appears in Contest
#define SE_REAPOKE 102 // Shiny Pokémon
#define SE_OP_BASYU 103 // Opening Movie -> Title Screen whoosh
#define SE_BT_START 104 // Battle Mugshot whoosh
#define SE_DENDOU 105 // Audience Cheering
#define SE_JIHANKI 106 // Vending Machine
#define SE_TAMA 107 // Orb Used
#define SE_Z_SCROLL 108 // Pokédex Scrolling
#define SE_Z_PAGE 109 // Pokédex Page
#define SE_PN_ON 110 // PokéNav On
#define SE_PN_OFF 111 // PokéNav Off
#define SE_Z_SEARCH 112 // Pokédex Search
#define SE_TAMAGO 113 // Egg hatch
#define SE_TB_START 114 // Battle - Poké Ball Tray slide in
#define SE_TB_KON 115 // Battle - Poké Ball Tray ball sound
#define SE_TB_KARA 116 // Battle - Poké Ball Tray slide out
#define SE_BIDORO 117
#define SE_W085 118
#define SE_W085B 119
#define SE_W231 120
#define SE_W171 121
#define SE_W233 122
#define SE_W233B 123
#define SE_W145 124
#define SE_W145B 125
#define SE_W145C 126
#define SE_W240 127
#define SE_W015 128
#define SE_W081 129
#define SE_W081B 130
#define SE_W088 131
#define SE_W016 132
#define SE_W016B 133
#define SE_W003 134
#define SE_W104 135
#define SE_W013 136
#define SE_W196 137
#define SE_W086 138
#define SE_W004 139
#define SE_W025 140
#define SE_W025B 141
#define SE_W152 142
#define SE_W026 143
#define SE_W172 144
#define SE_W172B 145
#define SE_W053 146
#define SE_W007 147
#define SE_W092 148
#define SE_W221 149
#define SE_W221B 150
#define SE_W052 151
#define SE_W036 152
#define SE_W059 153
#define SE_W059B 154
#define SE_W010 155
#define SE_W011 156
#define SE_W017 157
#define SE_W019 158
#define SE_W028 159
#define SE_W013B 160
#define SE_W044 161
#define SE_W029 162
#define SE_W057 163
#define SE_W056 164
#define SE_W250 165
#define SE_W030 166
#define SE_W039 167
#define SE_W054 168
#define SE_W077 169
#define SE_W020 170
#define SE_W082 171
#define SE_W047 172
#define SE_W195 173
#define SE_W006 174
#define SE_W091 175
#define SE_W146 176
#define SE_W120 177
#define SE_W153 178
#define SE_W071B 179
#define SE_W071 180
#define SE_W103 181
#define SE_W062 182
#define SE_W062B 183
#define SE_W048 184
#define SE_W187 185
#define SE_W118 186
#define SE_W155 187
#define SE_W122 188
#define SE_W060 189
#define SE_W185 190
#define SE_W014 191
#define SE_W043 192
#define SE_W207 193
#define SE_W207B 194
#define SE_W215 195
#define SE_W109 196
#define SE_W173 197
#define SE_W280 198
#define SE_W202 199
#define SE_W060B 200
#define SE_W076 201
#define SE_W080 202
#define SE_W100 203
#define SE_W107 204
#define SE_W166 205
#define SE_W129 206
#define SE_W115 207
#define SE_W112 208
#define SE_W197 209
#define SE_W199 210
#define SE_W236 211
#define SE_W204 212
#define SE_W268 213
#define SE_W070 214
#define SE_W063 215
#define SE_W127 216
#define SE_W179 217
#define SE_W151 218
#define SE_W201 219
#define SE_W161 220
#define SE_W161B 221
#define SE_W227 222
#define SE_W227B 223
#define SE_W226 224
#define SE_W208 225
#define SE_W213 226
#define SE_W213B 227
#define SE_W234 228
#define SE_W260 229
#define SE_W328 230
#define SE_W320 231
#define SE_W255 232
#define SE_W291 233
#define SE_W089 234
#define SE_W239 235
#define SE_W230 236
#define SE_W281 237
#define SE_W327 238
#define SE_W287 239
#define SE_W257 240
#define SE_W253 241
#define SE_W258 242
#define SE_W322 243
#define SE_W298 244
#define SE_W287B 245
#define SE_W114 246
#define SE_W063B 247
#define SE_RG_W_DOOR 248
#define SE_RG_CARD1 249
#define SE_RG_CARD2 250
#define SE_RG_CARD3 251
#define SE_RG_BAG1 252
#define SE_RG_BAG2 253
#define SE_W085 118 // Thunderbolt
#define SE_W085B 119 // Thunderbolt 2
#define SE_W231 120 // Harden
#define SE_W171 121 // Nightmare
#define SE_W233 122 // Vital Throw
#define SE_W233B 123 // Vital Throw 2
#define SE_W145 124 // Bubble
#define SE_W145B 125 // Bubble 2
#define SE_W145C 126 // Bubble 3
#define SE_W240 127 // Rain Dance
#define SE_W015 128 // Cut
#define SE_W081 129 // String Shot
#define SE_W081B 130 // String Shot 2
#define SE_W088 131 // Rock Throw
#define SE_W016 132 // Gust
#define SE_W016B 133 // Gust 2
#define SE_W003 134 // DoubleSlap
#define SE_W104 135 // Double Team
#define SE_W013 136 // Razor Wind
#define SE_W196 137 // Icy Wind
#define SE_W086 138 // Thunder Wave
#define SE_W004 139 // Comet Punch
#define SE_W025 140 // Mega Kick
#define SE_W025B 141 // Mega Kick 2
#define SE_W152 142 // Crabhammer
#define SE_W026 143 // Jump Kick
#define SE_W172 144 // Flame Wheel
#define SE_W172B 145 // Flame Wheel 2
#define SE_W053 146 // Flamethrower
#define SE_W007 147 // Fire Punch
#define SE_W092 148 // Toxic
#define SE_W221 149 // Sacred Fire
#define SE_W221B 150 // Sacred Fire 2
#define SE_W052 151 // Ember
#define SE_W036 152 // Take Down
#define SE_W059 153 // Blizzard
#define SE_W059B 154 // Blizzard 2
#define SE_W010 155 // Scratch
#define SE_W011 156 // Vicegrip
#define SE_W017 157 // Wing Attack
#define SE_W019 158 // Fly
#define SE_W028 159 // Sand-Attack
#define SE_W013B 160 // Razor Wind 2
#define SE_W044 161 // Bite
#define SE_W029 162 // Headbutt
#define SE_W057 163 // Surf
#define SE_W056 164 // Hydro Pump
#define SE_W250 165 // Whirlpool
#define SE_W030 166 // Horn Attack
#define SE_W039 167 // Tail Whip
#define SE_W054 168 // Mist
#define SE_W077 169 // PoisonPowder
#define SE_W020 170 // Bind
#define SE_W082 171 // Dragon Rage
#define SE_W047 172 // Sing
#define SE_W195 173 // Perish Song
#define SE_W006 174 // Pay Day
#define SE_W091 175 // Dig
#define SE_W146 176 // Dizzy Punch
#define SE_W120 177 // Self-Destruct
#define SE_W153 178 // Explosion
#define SE_W071B 179 // Absorb 2
#define SE_W071 180 // Absorb
#define SE_W103 181 // Screech
#define SE_W062 182 // BubbleBeam
#define SE_W062B 183 // BubbleBeam 2
#define SE_W048 184 // Supersonic
#define SE_W187 185 // Belly Drum
#define SE_W118 186 // Metronome
#define SE_W155 187 // Bonemerang
#define SE_W122 188 // Lick
#define SE_W060 189 // Psybeam
#define SE_W185 190 // Faint Attack
#define SE_W014 191 // Swords Dance
#define SE_W043 192 // Leer
#define SE_W207 193 // Swagger
#define SE_W207B 194 // Swagger 2
#define SE_W215 195 // Heal Bell
#define SE_W109 196 // Confuse Ray
#define SE_W173 197 // Snore
#define SE_W280 198 // Brick Break
#define SE_W202 199 // Giga Drain
#define SE_W060B 200 // Psybeam 2
#define SE_W076 201 // SolarBeam
#define SE_W080 202 // Petal Dance
#define SE_W100 203 // Teleport
#define SE_W107 204 // Minimize
#define SE_W166 205 // Sketch
#define SE_W129 206 // Swift
#define SE_W115 207 // Reflect
#define SE_W112 208 // Barrier
#define SE_W197 209 // Detect
#define SE_W199 210 // Lock-On
#define SE_W236 211 // Moonlight
#define SE_W204 212 // Charm
#define SE_W268 213 // Charge
#define SE_W070 214 // Strength
#define SE_W063 215 // Hyper Beam
#define SE_W127 216 // Waterfall
#define SE_W179 217 // Reversal
#define SE_W151 218 // Acid Armor
#define SE_W201 219 // Sandstorm
#define SE_W161 220 // Tri-Attack
#define SE_W161B 221 // Tri-Attack 2
#define SE_W227 222 // Encore
#define SE_W227B 223 // Encore 2
#define SE_W226 224 // Baton Pass
#define SE_W208 225 // Milk Drink
#define SE_W213 226 // Attract
#define SE_W213B 227 // Attract 2
#define SE_W234 228 // Morning Sun
#define SE_W260 229 // Flatter
#define SE_W328 230 // Sand Tomb
#define SE_W320 231 // GrassWhistle
#define SE_W255 232 // Spit Up
#define SE_W291 233 // Dive
#define SE_W089 234 // Earthquake
#define SE_W239 235 // Twister
#define SE_W230 236 // Sweet Scent
#define SE_W281 237 // Yawn
#define SE_W327 238 // Sky Uppercut
#define SE_W287 239 // Stat Increased
#define SE_W257 240 // Heat Wave
#define SE_W253 241 // Uproar
#define SE_W258 242 // Hail
#define SE_W322 243 // Cosmic Power
#define SE_W298 244 // Teeter Dance
#define SE_W287B 245 // Stat Decreased
#define SE_W114 246 // Haze
#define SE_W063B 247 // Hyper Beam 2
// FRLG SFX below
#define SE_RG_W_DOOR 248 // Door
#define SE_RG_CARD1 249 // Trainer Card 1
#define SE_RG_CARD2 250 // Trainer Card 2
#define SE_RG_CARD3 251 // Trainer Card 3
#define SE_RG_BAG1 252 // Bag Scroll
#define SE_RG_BAG2 253 // Bag Pocket Change
#define SE_RG_GETTING 254
#define SE_RG_SHOP 255
#define SE_RG_KITEKI 256
#define SE_RG_HELP_OP 257
#define SE_RG_HELP_CL 258
#define SE_RG_HELP_NG 259
#define SE_RG_DEOMOV 260
#define SE_RG_SHOP 255 // Cash Register
#define SE_RG_KITEKI 256 // S.S. Anne Horn
#define SE_RG_HELP_OP 257 // Help Menu Open
#define SE_RG_HELP_CL 258 // Help Menu Close
#define SE_RG_HELP_NG 259 // Help Menu Error
#define SE_RG_DEOMOV 260 // Deoxys Moves
#define SE_RG_EXCELLENT 261
#define SE_RG_NAWAMISS 262
#define SE_TOREEYE 263
#define SE_TOREOFF 264
#define SE_HANTEI1 265
#define SE_HANTEI2 266
#define SE_CURTAIN 267
#define SE_CURTAIN1 268
#define SE_USSOKI 269
// end FRLG SFX
#define SE_TOREEYE 263 // Trainer's Eye Call
#define SE_TOREOFF 264 // Trainer's Eye Hang Up
#define SE_HANTEI1 265 // Battle Arena Time's Up 1
#define SE_HANTEI2 266 // Battle Arena Time's Up 2
#define SE_CURTAIN 267 // Battle Pike Curtain Open
#define SE_CURTAIN1 268 // Battle Pike Curtain Close
#define SE_USSOKI 269 // Sudowoodo
#define MUS_TETSUJI 350
#define MUS_FIELD13 351
#define MUS_KACHI22 352
#define MUS_KACHI2 353
#define MUS_KACHI3 354
#define MUS_KACHI5 355
#define MUS_PCC 356
#define MUS_NIBI 357
#define MUS_SUIKUN 358
#define MUS_DOORO1 359
#define MUS_DOORO_X1 360
#define MUS_DOORO_X3 361
#define MUS_MACHI_S2 362
#define MUS_MACHI_S4 363
#define MUS_GIM 364
#define MUS_NAMINORI 365
#define MUS_DAN01 366
#define MUS_FANFA1 367
#define MUS_ME_ASA 368
#define MUS_ME_BACHI 369
#define MUS_FANFA4 370
#define MUS_FANFA5 371
#define MUS_ME_WAZA 372
#define MUS_BIJYUTU 373
#define MUS_DOORO_X4 374
#define MUS_FUNE_KAN 375
#define MUS_ME_SHINKA 376
#define MUS_SHINKA 377
#define MUS_ME_WASURE 378
#define MUS_SYOUJOEYE 379
#define MUS_BOYEYE 380
#define MUS_DAN02 381
#define MUS_MACHI_S3 382
#define MUS_ODAMAKI 383
#define MUS_B_TOWER 384
#define MUS_SWIMEYE 385
#define MUS_DAN03 386
#define MUS_ME_KINOMI 387
#define MUS_ME_TAMA 388
#define MUS_ME_B_BIG 389
#define MUS_ME_B_SMALL 390
#define MUS_ME_ZANNEN 391
#define MUS_BD_TIME 392
#define MUS_TEST1 393
#define MUS_TEST2 394
#define MUS_TEST3 395
#define MUS_TEST4 396
#define MUS_TEST 397
#define MUS_GOMACHI0 398
#define MUS_GOTOWN 399
#define MUS_POKECEN 400
#define MUS_NEXTROAD 401
#define MUS_GRANROAD 402
#define MUS_CYCLING 403
#define MUS_FRIENDLY 404
#define MUS_MISHIRO 405
#define MUS_TOZAN 406
#define MUS_GIRLEYE 407
#define MUS_MINAMO 408
#define MUS_ASHROAD 409
#define MUS_EVENT0 410
#define MUS_DEEPDEEP 411
#define MUS_KACHI1 412
#define MUS_TITLE3 413
#define MUS_DEMO1 414
#define MUS_GIRL_SUP 415
#define MUS_HAGESHII 416
#define MUS_KAKKOII 417
#define MUS_KAZANBAI 418
#define MUS_AQA_0 419
#define MUS_TSURETEK 420
#define MUS_BOY_SUP 421
#define MUS_RAINBOW 422
#define MUS_AYASII 423
#define MUS_KACHI4 424
#define MUS_ROPEWAY 425
#define MUS_CASINO 426
#define MUS_HIGHTOWN 427
#define MUS_SAFARI 428
#define MUS_C_ROAD 429
#define MUS_AJITO 430
#define MUS_M_BOAT 431
#define MUS_M_DUNGON 432
#define MUS_FINECITY 433
#define MUS_MACHUPI 434
#define MUS_P_SCHOOL 435
#define MUS_DENDOU 436
#define MUS_TONEKUSA 437
#define MUS_MABOROSI 438
#define MUS_CON_FAN 439
#define MUS_CONTEST0 440
#define MUS_MGM0 441
#define MUS_T_BATTLE 442
#define MUS_OOAME 443
#define MUS_HIDERI 444
#define MUS_RUNECITY 445
#define MUS_CON_K 446
#define MUS_EIKOU_R 447
#define MUS_KARAKURI 448
#define MUS_HUTAGO 449
#define MUS_SITENNOU 450
#define MUS_YAMA_EYE 451
#define MUS_CONLOBBY 452
#define MUS_INTER_V 453
#define MUS_DAIGO 454
#define MUS_THANKFOR 455
#define MUS_END 456
#define MUS_B_FRONTIER 457
#define MUS_B_ARENA 458
#define MUS_ME_POINTGET 459
#define MUS_ME_TORE_EYE 460
#define MUS_PYRAMID 461
#define MUS_PYRAMID_TOP 462
#define MUS_B_PALACE 463
#define MUS_REKKUU_KOURIN 464
#define MUS_SATTOWER 465
#define MUS_ME_SYMBOLGET 466
#define MUS_B_DOME 467
#define MUS_B_TUBE 468
#define MUS_B_FACTORY 469
#define MUS_VS_REKKU 470
#define MUS_VS_FRONT 471
#define MUS_VS_MEW 472
#define MUS_B_DOME1 473
#define MUS_BATTLE27 474
#define MUS_BATTLE31 475
#define MUS_BATTLE20 476
#define MUS_BATTLE32 477
#define MUS_BATTLE33 478
#define MUS_BATTLE36 479
#define MUS_BATTLE34 480
#define MUS_BATTLE35 481
#define MUS_BATTLE38 482
#define MUS_BATTLE30 483
#define MUS_RG_ANNAI 484
#define MUS_RG_SLOT 485
#define MUS_RG_AJITO 486
#define MUS_RG_GYM 487
#define MUS_RG_PURIN 488
#define MUS_RG_DEMO 489
#define MUS_RG_TITLE 490
#define MUS_RG_GUREN 491
#define MUS_RG_SHION 492
#define MUS_RG_KAIHUKU 493
#define MUS_RG_CYCLING 494
#define MUS_RG_ROCKET 495
#define MUS_RG_SHOUJO 496
#define MUS_RG_SHOUNEN 497
#define MUS_RG_DENDOU 498
#define MUS_RG_T_MORI 499
#define MUS_RG_OTSUKIMI 500
#define MUS_RG_POKEYASHI 501
#define MUS_RG_ENDING 502
#define MUS_RG_LOAD01 503
#define MUS_RG_OPENING 504
#define MUS_RG_LOAD02 505
#define MUS_RG_LOAD03 506
#define MUS_RG_CHAMP_R 507
#define MUS_RG_VS_GYM 508
#define MUS_RG_VS_TORE 509
#define MUS_RG_VS_YASEI 510
#define MUS_RG_VS_LAST 511
#define MUS_RG_MASARA 512
#define MUS_RG_KENKYU 513
#define MUS_RG_OHKIDO 514
#define MUS_RG_POKECEN 515
#define MUS_RG_SANTOAN 516
#define MUS_RG_NAMINORI 517
#define MUS_RG_P_TOWER 518
#define MUS_RG_SHIRUHU 519
#define MUS_RG_HANADA 520
#define MUS_RG_TAMAMUSI 521
#define MUS_RG_WIN_TRE 522
#define MUS_RG_WIN_YASEI 523
#define MUS_RG_WIN_GYM 524
#define MUS_RG_KUCHIBA 525
#define MUS_RG_NIBI 526
#define MUS_RG_RIVAL1 527
#define MUS_RG_RIVAL2 528
#define MUS_RG_FAN2 529
#define MUS_RG_FAN5 530
#define MUS_RG_FAN6 531
#define MUS_ME_RG_PHOTO 532
#define MUS_RG_TITLEROG 533
#define MUS_RG_GET_YASEI 534
#define MUS_RG_SOUSA 535
#define MUS_RG_SEKAIKAN 536
#define MUS_RG_SEIBETU 537
#define MUS_RG_JUMP 538
#define MUS_RG_UNION 539
#define MUS_RG_NETWORK 540
#define MUS_RG_OKURIMONO 541
#define MUS_TETSUJI 350 // Littleroot Town Test 'TETSUJI'
#define MUS_FIELD13 351 // GSC - Route 38
#define MUS_KACHI22 352 // Wild Pokémon Defeated
#define MUS_KACHI2 353 // Wild Pokémon Defeated with Intro
#define MUS_KACHI3 354 // Gym Leader Defeated
#define MUS_KACHI5 355 // Victory! Elite Four
#define MUS_PCC 356 // Crystal - Pokémon Communication Center
#define MUS_NIBI 357 // GSC - Viridian/Saffron/Pewter/etc
#define MUS_SUIKUN 358 // Crystal - Battle! Legendary Beasts
#define MUS_DOORO1 359 // Route 101
#define MUS_DOORO_X1 360 // Route 110
#define MUS_DOORO_X3 361 // Route 120
#define MUS_MACHI_S2 362 // Petalburg City
#define MUS_MACHI_S4 363 // Oldale/Lavaridge Town
#define MUS_GIM 364 // Gym
#define MUS_NAMINORI 365 // Surfing
#define MUS_DAN01 366 // Caves and Darkness
#define MUS_FANFA1 367 // Level Up!
#define MUS_ME_ASA 368 // Pokémon Healed
#define MUS_ME_BACHI 369 // Obtained a Badge!
#define MUS_FANFA4 370 // Obtained an Item!
#define MUS_FANFA5 371 // Your Pokémon Just Evolved!
#define MUS_ME_WAZA 372 // Obtained a TM/HM!
#define MUS_BIJYUTU 373 // Lilycove Museum
#define MUS_DOORO_X4 374 // Route 122/Intro
#define MUS_FUNE_KAN 375 // Slateport Museum
#define MUS_ME_SHINKA 376 // Evolution Intro
#define MUS_SHINKA 377 // Evolution
#define MUS_ME_WASURE 378 // Move Deleted/Messed Up Appeal
#define MUS_SYOUJOEYE 379 // Encounter! Tuber
#define MUS_BOYEYE 380 // Encounter! Boy
#define MUS_DAN02 381 // Abandoned Ship/Southern Island
#define MUS_MACHI_S3 382 // Fortree City/Pacifidlog Town
#define MUS_ODAMAKI 383 // Professor Birch's Lab
#define MUS_B_TOWER 384 // Battle Tower (RS)
#define MUS_SWIMEYE 385 // Encounter! Swimmer
#define MUS_DAN03 386 // Meteor Falls/Cave of Origin
#define MUS_ME_KINOMI 387 // Obtained a Berry!
#define MUS_ME_TAMA 388 // Awakening the Super-Ancient Pokémon
#define MUS_ME_B_BIG 389 // Slots Jackpot!
#define MUS_ME_B_SMALL 390 // Slots Victory!
#define MUS_ME_ZANNEN 391 // Too bad!
#define MUS_BD_TIME 392 // Roulette!
#define MUS_TEST1 393 // Contest Test 1
#define MUS_TEST2 394 // Contest Test 2
#define MUS_TEST3 395 // Contest Test 3
#define MUS_TEST4 396 // Contest Test 4
#define MUS_TEST 397 // Encounter! Gentleman
#define MUS_GOMACHI0 398 // Verdanturf Town
#define MUS_GOTOWN 399 // Rustboro/Mauville/Mossdeep City
#define MUS_POKECEN 400 // Pokémon Center
#define MUS_NEXTROAD 401 // Route 104
#define MUS_GRANROAD 402 // Route 119
#define MUS_CYCLING 403 // Cycling
#define MUS_FRIENDLY 404 // Pokémart
#define MUS_MISHIRO 405 // Littleroot Town
#define MUS_TOZAN 406 // Sky Pillar
#define MUS_GIRLEYE 407 // Encounter! Girl
#define MUS_MINAMO 408 // Lilycove City
#define MUS_ASHROAD 409 // Route 111
#define MUS_EVENT0 410 // Help me!
#define MUS_DEEPDEEP 411 // Underwater
#define MUS_KACHI1 412 // Victory! Trainer
#define MUS_TITLE3 413 // Title Screen
#define MUS_DEMO1 414 // Opening Movie
#define MUS_GIRL_SUP 415 // Encounter! May
#define MUS_HAGESHII 416 // Encounter! Biker
#define MUS_KAKKOII 417 // Encounter! Electric Trainer
#define MUS_KAZANBAI 418 // Route 113
#define MUS_AQA_0 419 // Encounter! Team Aqua
#define MUS_TSURETEK 420 // Follow Me!
#define MUS_BOY_SUP 421 // Encounter! Brendan
#define MUS_RAINBOW 422 // Ever Grande City
#define MUS_AYASII 423 // Encounter! Psychic
#define MUS_KACHI4 424 // Victory! Aqua/Magma Grunt
#define MUS_ROPEWAY 425 // Cable Car
#define MUS_CASINO 426 // Game Corner
#define MUS_HIGHTOWN 427 // Dewford Town
#define MUS_SAFARI 428 // Safari Zone
#define MUS_C_ROAD 429 // Victory Road
#define MUS_AJITO 430 // Aqua/Magma Hideout
#define MUS_M_BOAT 431 // Sailing
#define MUS_M_DUNGON 432 // Mt. Pyre (Inside)
#define MUS_FINECITY 433 // Slateport City
#define MUS_MACHUPI 434 // Mt. Pyre (Outside)
#define MUS_P_SCHOOL 435 // Pokémon Trainer's School
#define MUS_DENDOU 436 // You're the Champion!
#define MUS_TONEKUSA 437 // Fallarbor Town
#define MUS_MABOROSI 438 // Sealed Chamber
#define MUS_CON_FAN 439 // Obtained a Contest Ribbon!
#define MUS_CONTEST0 440 // Pokémon Contest
#define MUS_MGM0 441 // Encounter! Team Magma
#define MUS_T_BATTLE 442 // Opening Battle
#define MUS_OOAME 443 // The Flood
#define MUS_HIDERI 444 // The Drought
#define MUS_RUNECITY 445 // Sootopolis City
#define MUS_CON_K 446 // Contest/Berry Blending Results
#define MUS_EIKOU_R 447 // Hall of Fame
#define MUS_KARAKURI 448 // Trick House
#define MUS_HUTAGO 449 // Encounter! Kid
#define MUS_SITENNOU 450 // Encounter! Elite Four
#define MUS_YAMA_EYE 451 // Encounter! Hiker
#define MUS_CONLOBBY 452 // Contest Lobby
#define MUS_INTER_V 453 // Encounter! Gabby and Ty
#define MUS_DAIGO 454 // Encounter! Wallace
#define MUS_THANKFOR 455 // Credits
#define MUS_END 456 // The End
#define MUS_B_FRONTIER 457 // Battle Frontier
#define MUS_B_ARENA 458 // Battle Arena
#define MUS_ME_POINTGET 459 // Obtained Battle Points!
#define MUS_ME_TORE_EYE 460 // Registered Trainer!
#define MUS_PYRAMID 461 // Battle Pyramid
#define MUS_PYRAMID_TOP 462 // Top of the Battle Pyramid
#define MUS_B_PALACE 463 // Battle Palace
#define MUS_REKKUU_KOURIN 464 // Rayquaza Enters
#define MUS_SATTOWER 465 // Battle Tower (Emerald)
#define MUS_ME_SYMBOLGET 466 // Obtained a Frontier Symbol!
#define MUS_B_DOME 467 // Battle Dome
#define MUS_B_TUBE 468 // Battle Pike
#define MUS_B_FACTORY 469 // Battle Factory
#define MUS_VS_REKKU 470 // Battle! Legendary Pokémon
#define MUS_VS_FRONT 471 // Battle! Frontier Brain
#define MUS_VS_MEW 472 // Battle! Mew
#define MUS_B_DOME1 473 // Battle Dome Lobby
#define MUS_BATTLE27 474 // Battle! Wild Pokémon
#define MUS_BATTLE31 475 // Battle! Team Aqua/Magma
#define MUS_BATTLE20 476 // Battle! Trainer
#define MUS_BATTLE32 477 // Battle! Gym Leader
#define MUS_BATTLE33 478 // Battle! Champion
#define MUS_BATTLE36 479 // Battle! Regi Trio
#define MUS_BATTLE34 480 // Battle! Legendary Pokémon (dupe)
#define MUS_BATTLE35 481 // Battle! Rival
#define MUS_BATTLE38 482 // Battle! Elite Four
#define MUS_BATTLE30 483 // Battle! Archie/Maxie
// FRLG Music Below
#define MUS_RG_ANNAI 484 // Follow Me!
#define MUS_RG_SLOT 485 // Game Corner
#define MUS_RG_AJITO 486 // Rocket Hideout
#define MUS_RG_GYM 487 // Gym
#define MUS_RG_PURIN 488 // Jigglypuff's Song
#define MUS_RG_DEMO 489 // Opening Movie
#define MUS_RG_TITLE 490 // Title Screen
#define MUS_RG_GUREN 491 // Cinnabar Island
#define MUS_RG_SHION 492 // Lavender Town
#define MUS_RG_KAIHUKU 493 // RBY Pokémon Center Healing
#define MUS_RG_CYCLING 494 // Cycling
#define MUS_RG_ROCKET 495 // Encounter! Team Rocket
#define MUS_RG_SHOUJO 496 // Encounter! Girl
#define MUS_RG_SHOUNEN 497 // Encounter! Boy
#define MUS_RG_DENDOU 498 // You're the Champion!
#define MUS_RG_T_MORI 499 // Viridian Forest
#define MUS_RG_OTSUKIMI 500 // Mt. Moon
#define MUS_RG_POKEYASHI 501 // Pokémon Mansion
#define MUS_RG_ENDING 502 // Credits
#define MUS_RG_LOAD01 503 // Route 1
#define MUS_RG_OPENING 504 // Route 24/Intro
#define MUS_RG_LOAD02 505 // Route 3
#define MUS_RG_LOAD03 506 // Route 11
#define MUS_RG_CHAMP_R 507 // Victory Road/Indigo Plateau
#define MUS_RG_VS_GYM 508 // Battle! Gym Leader/Elite Four
#define MUS_RG_VS_TORE 509 // Battle! Trainer
#define MUS_RG_VS_YASEI 510 // Battle! Wild Pokémon
#define MUS_RG_VS_LAST 511 // Battle! Champion
#define MUS_RG_MASARA 512 // Pallet Town
#define MUS_RG_KENKYU 513 // Professor Oak's Lab
#define MUS_RG_OHKIDO 514 // Professor Oak's Theme
#define MUS_RG_POKECEN 515 // Pokémon Center
#define MUS_RG_SANTOAN 516 // S.S. Anne
#define MUS_RG_NAMINORI 517 // Surfing
#define MUS_RG_P_TOWER 518 // Pokémon Tower
#define MUS_RG_SHIRUHU 519 // Silph Co.
#define MUS_RG_HANADA 520 // Cerulean/Fuschia City
#define MUS_RG_TAMAMUSI 521 // Celadon City
#define MUS_RG_WIN_TRE 522 // Victory! Trainer
#define MUS_RG_WIN_YASEI 523 // Victory! Wild Pokémon
#define MUS_RG_WIN_GYM 524 // Victory! Gym Leader
#define MUS_RG_KUCHIBA 525 // Vermillion City
#define MUS_RG_NIBI 526 // Viridian/Saffron/Pewter City
#define MUS_RG_RIVAL1 527 // Encounter! Rival
#define MUS_RG_RIVAL2 528 // Rival's Exit
#define MUS_RG_FAN2 529 // Fanfare 2
#define MUS_RG_FAN5 530 // Obtained a Starter!
#define MUS_RG_FAN6 531 // Pokémon Caught! (Used in Emerald)
#define MUS_ME_RG_PHOTO 532 // Trainer Photo
#define MUS_RG_TITLEROG 533 // Game Freak
#define MUS_RG_GET_YASEI 534 // Pokémon Caught Victory Theme
#define MUS_RG_SOUSA 535 // Starting Tutorial
#define MUS_RG_SEKAIKAN 536 // Starting Tutorial 2
#define MUS_RG_SEIBETU 537 // Starting Tutorial 3
#define MUS_RG_JUMP 538 // Jumping Minigame
#define MUS_RG_UNION 539 // Union Room
#define MUS_RG_NETWORK 540 // Network Center
#define MUS_RG_OKURIMONO 541 // Mystery Gift
#define MUS_RG_KINOMIKUI 542
#define MUS_RG_NANADUNGEON 543
#define MUS_RG_OSHIE_TV 544
#define MUS_RG_NANASHIMA 545
#define MUS_RG_NANAISEKI 546
#define MUS_RG_NANA123 547
#define MUS_RG_NANA45 548
#define MUS_RG_NANA67 549
#define MUS_RG_POKEFUE 550
#define MUS_RG_VS_DEO 551
#define MUS_RG_VS_MYU2 552
#define MUS_RG_VS_DEN 553
#define MUS_RG_EXEYE 554
#define MUS_RG_DEOEYE 555
#define MUS_RG_T_TOWER 556
#define MUS_RG_SLOWMASARA 557
#define MUS_RG_TVNOIZE 558
#define MUS_RG_NANADUNGEON 543 // Sevii Caves/Altering Cave (Mt. Moon)
#define MUS_RG_OSHIE_TV 544 // Follow Me!
#define MUS_RG_NANASHIMA 545 // Sevii Islands Routes (Lake of Rage)
#define MUS_RG_NANAISEKI 546 // Sevii Forests (Viridian Forest)
#define MUS_RG_NANA123 547 // Sevii Islands 1-3 (Viridian/Saffron/Pewter)
#define MUS_RG_NANA45 548 // Sevii Islands 4-5 (Azalea Town)
#define MUS_RG_NANA67 549 // Sevii Islands 6-7 (Violet City)
#define MUS_RG_POKEFUE 550 // Poké Flute
#define MUS_RG_VS_DEO 551 // Battle! Deoxys
#define MUS_RG_VS_MYU2 552 // Battle! Mewtwo
#define MUS_RG_VS_DEN 553 // Battle! Legendary Birds
#define MUS_RG_EXEYE 554 // Encounter! Gym Leader
#define MUS_RG_DEOEYE 555 // Encounter! Deoxys
#define MUS_RG_T_TOWER 556 // Trainer Tower (Gym)
#define MUS_RG_SLOWMASARA 557 // Pallet Town (Hall of Fame remix)
#define MUS_RG_TVNOIZE 558 // Teachy TV
#define PH_TRAP_BLEND 559
#define PH_TRAP_HELD 560
#define PH_TRAP_SOLO 561

View File

@@ -24,6 +24,7 @@ extern u16 gUnknown_03005DE8;
void DrawWholeMapView(void);
void CurrentMapDrawMetatileAt(int x, int y);
void sub_8089C08(s16 *a0, s16 *a1);
void DrawDoorMetatileAt(int x, int y, u16 *arr);
#endif //GUARD_FIELD_CAMERA_H

View File

@@ -75,6 +75,7 @@ u32 FieldEffectStart(u8);
bool8 FieldEffectActiveListContains(u8 id);
void sub_80B69DC(void);
void FieldEffectStop(struct Sprite *sprite, u8 id);
u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer);
void sub_80B7FC8(void);
void FieldEffectActiveListRemove(u8 id);

View File

@@ -7,5 +7,6 @@
#include "gba/multiboot.h"
#include "gba/syscall.h"
#include "gba/macro.h"
#include "gba/isagbprint.h"
#endif // GUARD_GBA_GBA_H

View File

@@ -501,12 +501,12 @@
// I/O register fields
// DISPCNT
#define DISPCNT_MODE_0 0x0000
#define DISPCNT_MODE_1 0x0001
#define DISPCNT_MODE_2 0x0002
#define DISPCNT_MODE_3 0x0003
#define DISPCNT_MODE_4 0x0004
#define DISPCNT_MODE_5 0x0005
#define DISPCNT_MODE_0 0x0000 // BG0: text, BG1: text, BG2: text, BG3: text
#define DISPCNT_MODE_1 0x0001 // BG0: text, BG1: text, BG2: affine, BG3: off
#define DISPCNT_MODE_2 0x0002 // BG0: off, BG1: off, BG2: affine, BG3: affine
#define DISPCNT_MODE_3 0x0003 // Bitmap mode, 240x160, BGR555 color
#define DISPCNT_MODE_4 0x0004 // Bitmap mode, 240x160, 256 color palette
#define DISPCNT_MODE_5 0x0005 // Bitmap mode, 160x128, BGR555 color
#define DISPCNT_OBJ_1D_MAP 0x0040
#define DISPCNT_FORCED_BLANK 0x0080
#define DISPCNT_BG0_ON 0x0100
@@ -527,7 +527,46 @@
#define DISPSTAT_HBLANK_INTR 0x0010 // H-Blank interrupt enabled
#define DISPSTAT_VCOUNT_INTR 0x0020 // V-Count interrupt enabled
// BGCNT
#define BGCNT_PRIORITY(n) (n) // Values 0 - 3. Lower priority BGs will be drawn on top of higher priority BGs.
#define BGCNT_CHARBASE(n) ((n) << 2) // Values 0 - 3. Base block for tile pixel data.
#define BGCNT_MOSAIC 0x0040
#define BGCNT_16COLOR 0x0000 // 4 bits per pixel
#define BGCNT_256COLOR 0x0080 // 8 bits per pixel
#define BGCNT_SCREENBASE(n) ((n) << 8) // Values 0 - 31. Base block for tile map.
#define BGCNT_WRAP 0x2000 // Only affects affine BGs. Text BGs wrap by default.
#define BGCNT_TXT256x256 0x0000 // Internal screen size size of text mode BG in pixels.
#define BGCNT_TXT512x256 0x4000
#define BGCNT_TXT256x512 0x8000
#define BGCNT_TXT512x512 0xC000
#define BGCNT_AFF128x128 0x0000 // Internal screen size size of affine mode BG in pixels.
#define BGCNT_AFF256x256 0x4000
#define BGCNT_AFF512x512 0x8000
#define BGCNT_AFF1024x1024 0xC000
// BLDCNT
// Bits 0-5 select layers for the 1st target
#define BLDCNT_TGT1_BG0 (1 << 0)
#define BLDCNT_TGT1_BG1 (1 << 1)
#define BLDCNT_TGT1_BG2 (1 << 2)
#define BLDCNT_TGT1_BG3 (1 << 3)
#define BLDCNT_TGT1_OBJ (1 << 4)
#define BLDCNT_TGT1_BD (1 << 5)
// Bits 6-7 select the special effect
#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect
#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA)
#define BLDCNT_EFFECT_LIGHTEN (2 << 6) // 1st target becomes whiter (controlled by BLDY)
#define BLDCNT_EFFECT_DARKEN (3 << 6) // 1st target becomes blacker (controlled by BLDY)
// Bits 8-13 select layers for the 2nd target
#define BLDCNT_TGT2_BG0 (1 << 8)
#define BLDCNT_TGT2_BG1 (1 << 9)
#define BLDCNT_TGT2_BG2 (1 << 10)
#define BLDCNT_TGT2_BG3 (1 << 11)
#define BLDCNT_TGT2_OBJ (1 << 12)
#define BLDCNT_TGT2_BD (1 << 13)
// BLDALPHA
#define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1))
// SOUNDCNT_H
#define SOUND_CGB_MIX_QUARTER 0x0000
@@ -627,8 +666,8 @@
#define KEY_INTR_ENABLE 0x0400
#define KEY_OR_INTR 0x0000
#define KEY_AND_INTR 0x8000
#define DPAD_ANY ((DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN))
#define DPAD_ANY ((DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN))
#define JOY_EXCL_DPAD 0x030F
// interrupt flags
#define INTR_FLAG_VBLANK (1 << 0)

50
include/gba/isagbprint.h Executable file
View File

@@ -0,0 +1,50 @@
#ifndef GUARD_GBA_ISAGBPRINT_H
#define GUARD_GBA_ISAGBPRINT_H
#ifdef NDEBUG
#define AGBPrintInit()
#define AGBPutc(cChr)
#define AGBPrint(pBuf)
#define AGBPrintf(pBuf, ...)
#define AGBPrintFlush1Block()
#define AGBPrintFlush()
#define AGBAssert(pFile, nLine, pExpression, nStopProgram)
#else
void AGBPrintInit(void);
void AGBPutc(const char cChr);
void AGBPrint(const char *pBuf);
void AGBPrintf(const char *pBuf, ...);
void AGBPrintFlush1Block(void);
void AGBPrintFlush(void);
void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopProgram);
#endif
#undef AGB_ASSERT
#ifdef NDEBUG
#define AGB_ASSERT(exp)
#else
#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
#endif
#undef AGB_WARNING
#ifdef NDEBUG
#define AGB_WARNING(exp)
#else
#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
#endif
// for matching purposes
#ifdef NDEBUG
#define AGB_ASSERT_EX(exp, file, line)
#else
#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 1);
#endif
#ifdef NDEBUG
#define AGB_WARNING_EX(exp, file, line)
#else
#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0);
#endif
#endif // GUARD_GBA_ISAGBPRINT_H

View File

@@ -1,8 +1,8 @@
#ifndef GUARD_GLOBAL_H
#define GUARD_GLOBAL_H
#include "config.h" // we need to define config before gba headers as print stuff needs the functions nulled before defines.
#include "gba/gba.h"
#include "config.h"
// Prevent cross-jump optimization.
#define BLOCK_CROSS_JUMP asm("");

View File

@@ -74,4 +74,6 @@ void mapldr_default(void);
void IncrementGameStat(u8);
u32 GetGameStat(u8);
void CB2_OverworldBasic(void);
#endif //GUARD_ROM4_H

13
include/unk_transition.h Normal file
View File

@@ -0,0 +1,13 @@
#ifndef GUARD_UNK_TRANSITION_H
#define GUARD_UNK_TRANSITION_H
void Phase2Task_34(u8 taskId);
void Phase2Task_35(u8 taskId);
void Phase2Task_36(u8 taskId);
void Phase2Task_37(u8 taskId);
void Phase2Task_38(u8 taskId);
void Phase2Task_39(u8 taskId);
void Phase2Task_40(u8 taskId);
void Phase2Task_41(u8 taskId);
#endif // GUARD_UNK_TRANSITION_H

View File

@@ -31,7 +31,8 @@ SECTIONS {
/* COMMON starts at 0x30022A8 */
<COMMON>
tools/agbcc/lib/libc.a:sbrkr.o(COMMON);
end = .;
. = 0x8000;
}
@@ -196,7 +197,7 @@ SECTIONS {
src/coins.o(.text);
src/landmark.o(.text);
asm/fldeff_strength.o(.text);
asm/battle_transition.o(.text);
src/battle_transition.o(.text);
src/battle_controller_link_partner.o(.text);
src/battle_message.o(.text);
asm/cable_car.o(.text);
@@ -274,7 +275,6 @@ SECTIONS {
asm/trainer_rematch.o(.text);
asm/unk_sprite_file.o(.text);
asm/unk_transition.o(.text);
asm/unk_transition_2.o(.text);
src/international_string_util.o(.text);
asm/international_string_util.o(.text);
} =0
@@ -325,7 +325,42 @@ SECTIONS {
tools/agbcc/lib/libgcc.a:fp-bit.o(.text);
tools/agbcc/lib/libgcc.a:_lshrdi3.o(.text);
tools/agbcc/lib/libgcc.a:_negdi2.o(.text);
src/libc.o(.text);
tools/agbcc/lib/libc.a:memcpy.o(.text);
tools/agbcc/lib/libc.a:memset.o(.text);
tools/agbcc/lib/libc.a:strcmp.o(.text);
tools/agbcc/lib/libc.a:strcpy.o(.text);
tools/agbcc/lib/libc.a:vfprintf.o(.text);
tools/agbcc/lib/libc.a:vsprintf.o(.text);
tools/agbcc/lib/libc.a:fvwrite.o(.text);
tools/agbcc/lib/libc.a:locale.o(.text);
tools/agbcc/lib/libc.a:findfp.o(.text);
tools/agbcc/lib/libc.a:fflush.o(.text);
tools/agbcc/lib/libc.a:wsetup.o(.text);
tools/agbcc/lib/libc.a:mbtowc_r.o(.text);
tools/agbcc/lib/libc.a:s_isinf.o(.text);
tools/agbcc/lib/libc.a:s_isnan.o(.text);
tools/agbcc/lib/libc.a:memchr.o(.text);
tools/agbcc/lib/libc.a:strlen.o(.text);
tools/agbcc/lib/libc.a:dtoa.o(.text);
tools/agbcc/lib/libc.a:memmove.o(.text);
tools/agbcc/lib/libc.a:stdio.o(.text);
tools/agbcc/lib/libc.a:mprec.o(.text);
tools/agbcc/lib/libc.a:mallocr.o(.text);
tools/agbcc/lib/libc.a:fwalk.o(.text);
tools/agbcc/lib/libc.a:freer.o(.text);
tools/agbcc/lib/libc.a:makebuf.o(.text);
tools/agbcc/lib/libc.a:readr.o(.text);
tools/agbcc/lib/libc.a:writer.o(.text);
tools/agbcc/lib/libc.a:lseekr.o(.text);
tools/agbcc/lib/libc.a:closer.o(.text);
tools/agbcc/lib/libc.a:callocr.o(.text);
tools/agbcc/lib/libc.a:sbrkr.o(.text);
tools/agbcc/lib/libc.a:mlock.o(.text);
tools/agbcc/lib/libc.a:fstatr.o(.text);
tools/agbcc/lib/libc.a:libcfunc.o(.text);
tools/agbcc/lib/libc.a:syscalls.o(.text);
tools/agbcc/lib/libc.a:errno.o(.text);
src/libisagbprn.o(.text);
} =0
.rodata :
@@ -446,7 +481,7 @@ SECTIONS {
data/roulette.o(.rodata);
data/pokedex_cry_screen.o(.rodata);
src/landmark.o(.rodata);
data/battle_transition.o(.rodata);
src/battle_transition.o(.rodata);
src/battle_controller_link_partner.o(.rodata);
src/battle_message.o(.rodata);
data/cable_car.o(.rodata);
@@ -1059,6 +1094,10 @@ SECTIONS {
data/librfu_rodata.o(.rodata);
tools/agbcc/lib/libgcc.a:_divdi3.o(.rodata);
tools/agbcc/lib/libgcc.a:_udivdi3.o(.rodata);
tools/agbcc/lib/libc.a(.rodata);
tools/agbcc/lib/libc.a(.data);
tools/agbcc/lib/libc.a:syscalls.o(.rodata);
src/libisagbprn.o(.rodata);
} =0
other_data :

View File

@@ -1,275 +1,279 @@
.align 2
gSongTable:: @ 86B49F0
song mus_dummy, 0, 0
song se_kaifuku, 1, 1
song se_pc_login, 1, 1
song se_pc_off, 1, 1
song se_pc_on, 1, 1
song se_select, 2, 2
song se_win_open, 1, 1
song se_wall_hit, 2, 2
song se_door, 1, 1
song se_kaidan, 1, 1
song se_dansa, 1, 1
song se_jitensya, 1, 1
song se_kouka_l, 1, 1
song se_kouka_m, 1, 1
song se_kouka_h, 1, 1
song se_bowa2, 1, 1
song se_poke_dead, 1, 1
song se_nigeru, 1, 1
song se_jido_doa, 1, 1
song se_naminori, 1, 1
song se_ban, 1, 1
song se_pin, 1, 1
song se_boo, 1, 1
song se_bowa, 1, 1
song se_jyuni, 2, 2
song se_a, 1, 1
song se_i, 1, 1
song se_u, 1, 1
song se_e, 1, 1
song se_o, 1, 1
song se_n, 1, 1
song se_seikai, 1, 1
song se_hazure, 1, 1
song se_exp, 1, 1
song se_jite_pyoko, 1, 1
song se_kaifuku, 1, 1 @ Healing Item
song se_pc_login, 1, 1 @ PC Logon
song se_pc_off, 1, 1 @ PC Shutdown
song se_pc_on, 1, 1 @ PC Startup
song se_select, 2, 2 @ Cursor Selection
song se_win_open, 1, 1 @ Start Menu
song se_wall_hit, 2, 2 @ Wall Bump
song se_door, 1, 1 @ Opening Door
song se_kaidan, 1, 1 @ Stairs
song se_dansa, 1, 1 @ Ledge
song se_jitensya, 1, 1 @ Bicycle Bell
song se_kouka_l, 1, 1 @ Not Very Effective
song se_kouka_m, 1, 1 @ Normal Effectiveness
song se_kouka_h, 1, 1 @ Super Effective
song se_bowa2, 1, 1 @ Pokémon Withdrawal
song se_poke_dead, 1, 1 @ Pokémon Fainted
song se_nigeru, 1, 1 @ Flee from Wild Battle
song se_jido_doa, 1, 1 @ Pokémon Center Door
song se_naminori, 1, 1 @ Briney's Ship
song se_ban, 1, 1 @ Bang
song se_pin, 1, 1 @ Exclamation Bubble
song se_boo, 1, 1 @ Contest Jam
song se_bowa, 1, 1 @ Giving Poké Ball to Nurse, Poké Ball Wiggle
song se_jyuni, 2, 2 @ Places in Contest Appearing
song se_a, 1, 1 @ Bard A
song se_i, 1, 1 @ Bard I
song se_u, 1, 1 @ Bard U
song se_e, 1, 1 @ Bard E
song se_o, 1, 1 @ Bard O
song se_n, 1, 1 @ Bard N
song se_seikai, 1, 1 @ Success
song se_hazure, 1, 1 @ Failure
song se_exp, 1, 1 @ Exp. Bar
song se_jite_pyoko, 1, 1 @ Bunny Hop
song se_mu_pachi, 1, 1
song se_tk_kasya, 1, 1
song se_tk_kasya, 1, 1 @ Mossdeep Gym/Trick House Switch
song se_fu_zaku, 1, 1
song se_fu_zaku2, 1, 1
song se_fu_zuzuzu, 1, 1
song se_ru_gashin, 1, 1
song se_ru_gasyan, 1, 1
song se_ru_bari, 1, 1
song se_ru_hyuu, 1, 1
song se_fu_zuzuzu, 1, 1 @ Lavaridge Gym Warp
song se_ru_gashin, 1, 1 @ Sootopolis Gym - Stairs Appear
song se_ru_gasyan, 1, 1 @ Sootopolis Gym - Ice Breaking
song se_ru_bari, 1, 1 @ Sootopolis Gym - Walking on Ice
song se_ru_hyuu, 1, 1 @ Falling Down
song se_ki_gasyan, 2, 2
song se_tk_warpin, 1, 1
song se_tk_warpout, 1, 1
song se_tu_saa, 1, 1
song se_hi_turun, 1, 1
song se_track_move, 1, 1
song se_track_stop, 1, 1
song se_track_haiki, 2, 2
song se_track_door, 1, 1
song se_tk_warpin, 1, 1 @ Warp In
song se_tk_warpout, 1, 1 @ Warp Out
song se_tu_saa, 1, 1 @ Repel
song se_hi_turun, 1, 1 @ Moving Obstacle in Fortree Gym
song se_track_move, 1, 1 @ Moving Truck
song se_track_stop, 1, 1 @ Moving Truck Stop
song se_track_haiki, 2, 2 @ Moving Truck Unload
song se_track_door, 1, 1 @ Moving Truck Door
song se_moter, 2, 2
song se_card, 1, 1
song se_save, 1, 1
song se_kon, 1, 1
song se_kon2, 1, 1
song se_kon3, 1, 1
song se_kon4, 1, 1
song se_suikomu, 2, 2
song se_nageru, 1, 1
song se_toy_c, 2, 2
song se_toy_d, 2, 2
song se_toy_e, 2, 2
song se_toy_f, 2, 2
song se_toy_g, 2, 2
song se_toy_a, 2, 2
song se_toy_b, 2, 2
song se_toy_c1, 2, 2
song se_mizu, 2, 2
song se_hashi, 2, 2
song se_daugi, 1, 1
song se_pinpon, 1, 1
song se_fuusen1, 2, 2
song se_fuusen2, 2, 2
song se_fuusen3, 2, 2
song se_toy_kabe, 2, 2
song se_toy_dango, 2, 2
song se_doku, 1, 1
song se_esuka, 1, 1
song se_t_ame, 3, 3
song se_t_ame_e, 3, 3
song se_t_ooame, 3, 3
song se_t_ooame_e, 3, 3
song se_t_koame, 3, 3
song se_t_koame_e, 3, 3
song se_t_kami, 1, 1
song se_t_kami2, 1, 1
song se_elebeta, 1, 1
song se_hinsi, 3, 3
song se_expmax, 1, 1
song se_tamakoro, 2, 2
song se_tamakoro_e, 2, 2
song se_save, 1, 1 @ Save
song se_kon, 1, 1 @ Poké Ball Bounce 1
song se_kon2, 1, 1 @ Poké Ball Bounce 2
song se_kon3, 1, 1 @ Poké Ball Bounce 3
song se_kon4, 1, 1 @ Poké Ball Bounce 4
song se_suikomu, 2, 2 @ Poké Ball Trade
song se_nageru, 1, 1 @ Poké Ball Throw
song se_toy_c, 2, 2 @ Note C
song se_toy_d, 2, 2 @ Note D
song se_toy_e, 2, 2 @ Note E
song se_toy_f, 2, 2 @ Note F
song se_toy_g, 2, 2 @ Note G
song se_toy_a, 2, 2 @ Note A
song se_toy_b, 2, 2 @ Note B
song se_toy_c1, 2, 2 @ Note High C
song se_mizu, 2, 2 @ Puddle
song se_hashi, 2, 2 @ Boardwalk
song se_daugi, 1, 1 @ Slots Credits
song se_pinpon, 1, 1 @ Ding-dong!
song se_fuusen1, 2, 2 @ Red Balloon
song se_fuusen2, 2, 2 @ Blue Balloon
song se_fuusen3, 2, 2 @ Yellow Balloon
song se_toy_kabe, 2, 2 @ Breakable Door
song se_toy_dango, 2, 2 @ Mud Ball
song se_doku, 1, 1 @ Overworld Poison Damage
song se_esuka, 1, 1 @ Escalator
song se_t_ame, 3, 3 @ Rain
song se_t_ame_e, 3, 3 @ Rain Stop
song se_t_ooame, 3, 3 @ Heavy Rain
song se_t_ooame_e, 3, 3 @ Heavy Rain Stop
song se_t_koame, 3, 3 @ Light Rain
song se_t_koame_e, 3, 3 @ Light Rain Stop
song se_t_kami, 1, 1 @ Thunder
song se_t_kami2, 1, 1 @ Thunder 2
song se_elebeta, 1, 1 @ Elevator
song se_hinsi, 3, 3 @ Low Health
song se_expmax, 1, 1 @ Exp. Max
song se_tamakoro, 2, 2 @ Roulette Ball
song se_tamakoro_e, 2, 2 @ Roulette Ball 2
song se_basabasa, 1, 1
song se_regi, 1, 1
song se_c_gaji, 1, 1
song se_c_maku_u, 1, 1
song se_c_maku_d, 1, 1
song se_regi, 1, 1 @ Cash Register
song se_c_gaji, 1, 1 @ Contest Hearts
song se_c_maku_u, 1, 1 @ Contest Curtain rise
song se_c_maku_d, 1, 1 @ Contest Curtain fall
song se_c_pasi, 1, 1
song se_c_syu, 1, 1
song se_c_pikon, 1, 1
song se_reapoke, 1, 1
song se_op_basyu, 1, 1
song se_bt_start, 1, 1
song se_dendou, 1, 1
song se_jihanki, 1, 1
song se_tama, 1, 1
song se_z_scroll, 1, 1
song se_z_page, 1, 1
song se_pn_on, 1, 1
song se_pn_off, 1, 1
song se_z_search, 1, 1
song se_tamago, 1, 1
song se_tb_start, 1, 1
song se_tb_kon, 1, 1
song se_tb_kara, 2, 2
song se_c_pikon, 1, 1 @ Pokémon Appears in Contest
song se_reapoke, 1, 1 @ Shiny Pokémon
song se_op_basyu, 1, 1 @ Opening Movie -> Title Screen whoosh
song se_bt_start, 1, 1 @ Battle Mugshot whoosh
song se_dendou, 1, 1 @ Audience Cheering
song se_jihanki, 1, 1 @ Vending Machine
song se_tama, 1, 1 @ Orb Used
song se_z_scroll, 1, 1 @ Pokédex Scrolling
song se_z_page, 1, 1 @ Pokédex Page
song se_pn_on, 1, 1 @ PokéNav On
song se_pn_off, 1, 1 @ PokéNav Off
song se_z_search, 1, 1 @ Pokédex Search
song se_tamago, 1, 1 @ Egg hatch
song se_tb_start, 1, 1 @ Battle - Poké Ball Tray slide in
song se_tb_kon, 1, 1 @ Battle - Poké Ball Tray ball sound
song se_tb_kara, 2, 2 @ Battle - Poké Ball Tray slide out
song se_bidoro, 1, 1
song se_w085, 2, 2
song se_w085b, 1, 1
song se_w231, 1, 1
song se_w171, 1, 1
song se_w233, 1, 1
song se_w233b, 1, 1
song se_w145, 1, 1
song se_w145b, 1, 1
song se_w145c, 1, 1
song se_w240, 1, 1
song se_w015, 1, 1
song se_w081, 1, 1
song se_w081b, 1, 1
song se_w088, 1, 1
song se_w016, 2, 2
song se_w016b, 2, 2
song se_w003, 1, 1
song se_w104, 1, 1
song se_w013, 1, 1
song se_w196, 1, 1
song se_w086, 1, 1
song se_w004, 1, 1
song se_w025, 1, 1
song se_w025b, 1, 1
song se_w152, 1, 1
song se_w026, 1, 1
song se_w172, 1, 1
song se_w172b, 1, 1
song se_w053, 1, 1
song se_w007, 1, 1
song se_w092, 1, 1
song se_w221, 1, 1
song se_w221b, 2, 2
song se_w052, 1, 1
song se_w036, 2, 2
song se_w059, 1, 1
song se_w059b, 1, 1
song se_w010, 1, 1
song se_w011, 1, 1
song se_w017, 1, 1
song se_w019, 1, 1
song se_w028, 1, 1
song se_w013b, 1, 1
song se_w044, 1, 1
song se_w029, 1, 1
song se_w057, 1, 1
song se_w056, 1, 1
song se_w250, 1, 1
song se_w030, 1, 1
song se_w039, 2, 2
song se_w054, 1, 1
song se_w077, 1, 1
song se_w020, 2, 2
song se_w082, 1, 1
song se_w047, 1, 1
song se_w195, 1, 1
song se_w006, 1, 1
song se_w091, 1, 1
song se_w146, 1, 1
song se_w120, 1, 1
song se_w153, 1, 1
song se_w071b, 1, 1
song se_w071, 1, 1
song se_w103, 1, 1
song se_w062, 1, 1
song se_w062b, 1, 1
song se_w048, 1, 1
song se_w187, 1, 1
song se_w118, 1, 1
song se_w155, 1, 1
song se_w122, 1, 1
song se_w060, 1, 1
song se_w185, 1, 1
song se_w014, 1, 1
song se_w043, 1, 1
song se_w207, 1, 1
song se_w207b, 1, 1
song se_w215, 1, 1
song se_w109, 1, 1
song se_w173, 1, 1
song se_w280, 1, 1
song se_w202, 1, 1
song se_w060b, 1, 1
song se_w076, 2, 2
song se_w080, 1, 1
song se_w100, 1, 1
song se_w107, 1, 1
song se_w166, 1, 1
song se_w129, 1, 1
song se_w115, 1, 1
song se_w112, 1, 1
song se_w197, 2, 2
song se_w199, 1, 1
song se_w236, 1, 1
song se_w204, 1, 1
song se_w268, 1, 1
song se_w070, 1, 1
song se_w063, 1, 1
song se_w127, 1, 1
song se_w179, 1, 1
song se_w151, 1, 1
song se_w201, 1, 1
song se_w161, 1, 1
song se_w161b, 1, 1
song se_w227, 1, 1
song se_w227b, 2, 2
song se_w226, 1, 1
song se_w208, 1, 1
song se_w213, 1, 1
song se_w213b, 1, 1
song se_w234, 1, 1
song se_w260, 1, 1
song se_w328, 1, 1
song se_w320, 1, 1
song se_w255, 1, 1
song se_w291, 1, 1
song se_w089, 2, 2
song se_w239, 2, 2
song se_w230, 1, 1
song se_w281, 1, 1
song se_w327, 2, 2
song se_w287, 1, 1
song se_w257, 1, 1
song se_w253, 1, 1
song se_w258, 1, 1
song se_w322, 2, 2
song se_w298, 1, 1
song se_w287b, 1, 1
song se_w114, 1, 1
song se_w063b, 1, 1
song se_rg_w_door, 1, 1
song se_rg_card1, 1, 1
song se_rg_card2, 1, 1
song se_rg_card3, 1, 1
song se_rg_bag1, 1, 1
song se_rg_bag2, 1, 1
song se_rg_getting, 1, 1
song se_rg_shop, 1, 1
song se_rg_kiteki, 1, 1
song se_rg_help_op, 1, 1
song se_rg_help_cl, 1, 1
song se_rg_help_ng, 1, 1
song se_rg_deomov, 1, 1
song se_w085, 2, 2 @ Thunderbolt
song se_w085b, 1, 1 @ Thunderbolt 2
song se_w231, 1, 1 @ Harden
song se_w171, 1, 1 @ Nightmare
song se_w233, 1, 1 @ Vital Throw
song se_w233b, 1, 1 @ Vital Throw 2
song se_w145, 1, 1 @ Bubble
song se_w145b, 1, 1 @ Bubble 2
song se_w145c, 1, 1 @ Bubble 3
song se_w240, 1, 1 @ Rain Dance
song se_w015, 1, 1 @ Cut
song se_w081, 1, 1 @ String Shot
song se_w081b, 1, 1 @ String Shot 2
song se_w088, 1, 1 @ Rock Throw
song se_w016, 2, 2 @ Gust
song se_w016b, 2, 2 @ Gust 2
song se_w003, 1, 1 @ DoubleSlap
song se_w104, 1, 1 @ Double Team
song se_w013, 1, 1 @ Razor Wind
song se_w196, 1, 1 @ Icy Wind
song se_w086, 1, 1 @ Thunder Wave
song se_w004, 1, 1 @ Comet Punch
song se_w025, 1, 1 @ Mega Kick
song se_w025b, 1, 1 @ Mega Kick 2
song se_w152, 1, 1 @ Crabhammer
song se_w026, 1, 1 @ Jump Kick
song se_w172, 1, 1 @ Flame Wheel
song se_w172b, 1, 1 @ Flame Wheel 2
song se_w053, 1, 1 @ Flamethrower
song se_w007, 1, 1 @ Fire Punch
song se_w092, 1, 1 @ Toxic
song se_w221, 1, 1 @ Sacred Fire
song se_w221b, 2, 2 @ Sacred Fire 2
song se_w052, 1, 1 @ Ember
song se_w036, 2, 2 @ Take Down
song se_w059, 1, 1 @ Blizzard
song se_w059b, 1, 1 @ Blizzard 2
song se_w010, 1, 1 @ Scratch
song se_w011, 1, 1 @ Vicegrip
song se_w017, 1, 1 @ Wing Attack
song se_w019, 1, 1 @ Fly
song se_w028, 1, 1 @ Sand-Attack
song se_w013b, 1, 1 @ Razor Wind 2
song se_w044, 1, 1 @ Bite
song se_w029, 1, 1 @ Headbutt
song se_w057, 1, 1 @ Surf
song se_w056, 1, 1 @ Hydro Pump
song se_w250, 1, 1 @ Whirlpool
song se_w030, 1, 1 @ Horn Attack
song se_w039, 2, 2 @ Tail Whip
song se_w054, 1, 1 @ Mist
song se_w077, 1, 1 @ PoisonPowder
song se_w020, 2, 2 @ Bind
song se_w082, 1, 1 @ Dragon Rage
song se_w047, 1, 1 @ Sing
song se_w195, 1, 1 @ Perish Song
song se_w006, 1, 1 @ Pay Day
song se_w091, 1, 1 @ Dig
song se_w146, 1, 1 @ Dizzy Punch
song se_w120, 1, 1 @ Self-Destruct
song se_w153, 1, 1 @ Explosion
song se_w071b, 1, 1 @ Absorb 2
song se_w071, 1, 1 @ Absorb
song se_w103, 1, 1 @ Screech
song se_w062, 1, 1 @ BubbleBeam
song se_w062b, 1, 1 @ BubbleBeam 2
song se_w048, 1, 1 @ Supersonic
song se_w187, 1, 1 @ Belly Drum
song se_w118, 1, 1 @ Metronome
song se_w155, 1, 1 @ Bonemerang
song se_w122, 1, 1 @ Lick
song se_w060, 1, 1 @ Psybeam
song se_w185, 1, 1 @ Faint Attack
song se_w014, 1, 1 @ Swords Dance
song se_w043, 1, 1 @ Leer
song se_w207, 1, 1 @ Swagger
song se_w207b, 1, 1 @ Swagger 2
song se_w215, 1, 1 @ Heal Bell
song se_w109, 1, 1 @ Confuse Ray
song se_w173, 1, 1 @ Snore
song se_w280, 1, 1 @ Brick Break
song se_w202, 1, 1 @ Giga Drain
song se_w060b, 1, 1 @ Psybeam 2
song se_w076, 2, 2 @ SolarBeam
song se_w080, 1, 1 @ Petal Dance
song se_w100, 1, 1 @ Teleport
song se_w107, 1, 1 @ Minimize
song se_w166, 1, 1 @ Sketch
song se_w129, 1, 1 @ Swift
song se_w115, 1, 1 @ Reflect
song se_w112, 1, 1 @ Barrier
song se_w197, 2, 2 @ Detect
song se_w199, 1, 1 @ Lock-On
song se_w236, 1, 1 @ Moonlight
song se_w204, 1, 1 @ Charm
song se_w268, 1, 1 @ Charge
song se_w070, 1, 1 @ Strength
song se_w063, 1, 1 @ Hyper Beam
song se_w127, 1, 1 @ Waterfall
song se_w179, 1, 1 @ Reversal
song se_w151, 1, 1 @ Acid Armor
song se_w201, 1, 1 @ Sandstorm
song se_w161, 1, 1 @ Tri-Attack
song se_w161b, 1, 1 @ Tri-Attack 2
song se_w227, 1, 1 @ Encore
song se_w227b, 2, 2 @ Encore 2
song se_w226, 1, 1 @ Baton Pass
song se_w208, 1, 1 @ Milk Drink
song se_w213, 1, 1 @ Attract
song se_w213b, 1, 1 @ Attract 2
song se_w234, 1, 1 @ Morning Sun
song se_w260, 1, 1 @ Flatter
song se_w328, 1, 1 @ Sand Tomb
song se_w320, 1, 1 @ GrassWhistle
song se_w255, 1, 1 @ Spit Up
song se_w291, 1, 1 @ Dive
song se_w089, 2, 2 @ Earthquake
song se_w239, 2, 2 @ Twister
song se_w230, 1, 1 @ Sweet Scent
song se_w281, 1, 1 @ Yawn
song se_w327, 2, 2 @ Sky Uppercut
song se_w287, 1, 1 @ Stat Increased
song se_w257, 1, 1 @ Heat Wave
song se_w253, 1, 1 @ Uproar
song se_w258, 1, 1 @ Hail
song se_w322, 2, 2 @ Cosmic Power
song se_w298, 1, 1 @ Teeter Dance
song se_w287b, 1, 1 @ Stat Decreased
song se_w114, 1, 1 @ Haze
song se_w063b, 1, 1 @ Hyper Beam 2
@ FRLG SFX below
song se_rg_w_door, 1, 1 @ Door
song se_rg_card1, 1, 1 @ Trainer Card 1
song se_rg_card2, 1, 1 @ Trainer Card 2
song se_rg_card3, 1, 1 @ Trainer Card 3
song se_rg_bag1, 1, 1 @ Bag Scroll
song se_rg_bag2, 1, 1 @ Bag Pocket Change
song se_rg_getting, 1, 1
song se_rg_shop, 1, 1 @ Cash Register
song se_rg_kiteki, 1, 1 @ S.S. Anne Horn
song se_rg_help_op, 1, 1 @ Help Menu Open
song se_rg_help_cl, 1, 1 @ Help Menu Close
song se_rg_help_ng, 1, 1 @ Help Menu Error
song se_rg_deomov, 1, 1 @ Deoxys Moves
song se_rg_excellent, 1, 1
song se_rg_nawamiss, 1, 1
song se_toreeye, 1, 1
song se_toreoff, 1, 1
song se_hantei1, 1, 1
song se_hantei2, 1, 1
song se_curtain, 1, 1
song se_curtain1, 1, 1
song se_ussoki, 1, 1
@ end FRLG SFX
song se_toreeye, 1, 1 @ Trainer's Eye Call
song se_toreoff, 1, 1 @ Trainer's Eye Hang Up
song se_hantei1, 1, 1 @ Battle Arena Time's Up 1
song se_hantei2, 1, 1 @ Battle Arena Time's Up 2
song se_curtain, 1, 1 @ Battle Pike Curtain Open
song se_curtain1, 1, 1 @ Battle Pike Curtain Close
song se_ussoki, 1, 1 @ Sudowoodo
song dummy_song_header, 0, 0
song dummy_song_header, 0, 0
song dummy_song_header, 0, 0
@@ -350,215 +354,216 @@ gSongTable:: @ 86B49F0
song dummy_song_header, 0, 0
song dummy_song_header, 0, 0
song dummy_song_header, 0, 0
song mus_tetsuji, 0, 0
song mus_field13, 0, 0
song mus_kachi22, 0, 0
song mus_kachi2, 0, 0
song mus_kachi3, 0, 0
song mus_kachi5, 0, 0
song mus_pcc, 0, 0
song mus_nibi, 0, 0
song mus_suikun, 0, 0
song mus_dooro1, 0, 0
song mus_dooro_x1, 0, 0
song mus_dooro_x3, 0, 0
song mus_machi_s2, 0, 0
song mus_machi_s4, 0, 0
song mus_gim, 0, 0
song mus_naminori, 0, 0
song mus_dan01, 0, 0
song mus_fanfa1, 2, 2
song mus_me_asa, 2, 2
song mus_me_bachi, 2, 2
song mus_fanfa4, 2, 2
song mus_fanfa5, 2, 2
song mus_me_waza, 2, 2
song mus_bijyutu, 0, 0
song mus_dooro_x4, 0, 0
song mus_fune_kan, 0, 0
song mus_me_shinka, 2, 2
song mus_shinka, 0, 0
song mus_me_wasure, 2, 2
song mus_syoujoeye, 0, 0
song mus_boyeye, 0, 0
song mus_dan02, 0, 0
song mus_machi_s3, 0, 0
song mus_odamaki, 0, 0
song mus_b_tower, 0, 0
song mus_swimeye, 0, 0
song mus_dan03, 0, 0
song mus_me_kinomi, 2, 2
song mus_me_tama, 2, 2
song mus_me_b_big, 2, 2
song mus_me_b_small, 2, 2
song mus_me_zannen, 2, 2
song mus_bd_time, 0, 0
song mus_test1, 0, 0
song mus_test2, 0, 0
song mus_test3, 0, 0
song mus_test4, 0, 0
song mus_test, 0, 0
song mus_gomachi0, 0, 0
song mus_gotown, 0, 0
song mus_pokecen, 0, 0
song mus_nextroad, 0, 0
song mus_granroad, 0, 0
song mus_cycling, 0, 0
song mus_friendly, 0, 0
song mus_mishiro, 0, 0
song mus_tozan, 0, 0
song mus_girleye, 0, 0
song mus_minamo, 0, 0
song mus_ashroad, 0, 0
song mus_event0, 0, 0
song mus_deepdeep, 0, 0
song mus_kachi1, 0, 0
song mus_title3, 0, 0
song mus_demo1, 0, 0
song mus_girl_sup, 0, 0
song mus_hageshii, 0, 0
song mus_kakkoii, 0, 0
song mus_kazanbai, 0, 0
song mus_aqa_0, 0, 0
song mus_tsuretek, 0, 0
song mus_boy_sup, 0, 0
song mus_rainbow, 0, 0
song mus_ayasii, 0, 0
song mus_kachi4, 0, 0
song mus_ropeway, 0, 0
song mus_casino, 0, 0
song mus_hightown, 0, 0
song mus_safari, 0, 0
song mus_c_road, 0, 0
song mus_ajito, 0, 0
song mus_m_boat, 0, 0
song mus_m_dungon, 0, 0
song mus_finecity, 0, 0
song mus_machupi, 0, 0
song mus_p_school, 0, 0
song mus_dendou, 0, 0
song mus_tonekusa, 0, 0
song mus_maborosi, 0, 0
song mus_con_fan, 0, 0
song mus_contest0, 0, 0
song mus_mgm0, 0, 0
song mus_t_battle, 0, 0
song mus_ooame, 0, 0
song mus_hideri, 0, 0
song mus_runecity, 0, 0
song mus_con_k, 0, 0
song mus_eikou_r, 0, 0
song mus_karakuri, 0, 0
song mus_hutago, 0, 0
song mus_sitennou, 0, 0
song mus_yama_eye, 0, 0
song mus_conlobby, 0, 0
song mus_inter_v, 0, 0
song mus_daigo, 0, 0
song mus_thankfor, 0, 0
song mus_end, 0, 0
song mus_b_frontier, 0, 0
song mus_b_arena, 0, 0
song mus_me_pointget, 2, 2
song mus_me_tore_eye, 2, 2
song mus_pyramid, 0, 0
song mus_pyramid_top, 0, 0
song mus_b_palace, 0, 0
song mus_rekkuu_kourin, 0, 0
song mus_sattower, 0, 0
song mus_me_symbolget, 2, 2
song mus_b_dome, 0, 0
song mus_b_tube, 0, 0
song mus_b_factory, 0, 0
song mus_vs_rekku, 0, 0
song mus_vs_front, 0, 0
song mus_vs_mew, 0, 0
song mus_b_dome1, 0, 0
song mus_battle27, 0, 0
song mus_battle31, 0, 0
song mus_battle20, 0, 0
song mus_battle32, 0, 0
song mus_battle33, 0, 0
song mus_battle36, 0, 0
song mus_battle34, 0, 0
song mus_battle35, 0, 0
song mus_battle38, 0, 0
song mus_battle30, 0, 0
song mus_rg_annai, 0, 0
song mus_rg_slot, 0, 0
song mus_rg_ajito, 0, 0
song mus_rg_gym, 0, 0
song mus_rg_purin, 2, 2
song mus_rg_demo, 0, 0
song mus_rg_title, 0, 0
song mus_rg_guren, 0, 0
song mus_rg_shion, 0, 0
song mus_rg_kaihuku, 0, 0
song mus_rg_cycling, 0, 0
song mus_rg_rocket, 0, 0
song mus_rg_shoujo, 0, 0
song mus_rg_shounen, 0, 0
song mus_rg_dendou, 0, 0
song mus_rg_t_mori, 0, 0
song mus_rg_otsukimi, 0, 0
song mus_rg_pokeyashi, 0, 0
song mus_rg_ending, 0, 0
song mus_rg_load01, 0, 0
song mus_rg_opening, 0, 0
song mus_rg_load02, 0, 0
song mus_rg_load03, 0, 0
song mus_rg_champ_r, 0, 0
song mus_rg_vs_gym, 0, 0
song mus_rg_vs_tore, 0, 0
song mus_rg_vs_yasei, 0, 0
song mus_rg_vs_last, 0, 0
song mus_rg_masara, 0, 0
song mus_rg_kenkyu, 0, 0
song mus_rg_ohkido, 0, 0
song mus_rg_pokecen, 0, 0
song mus_rg_santoan, 0, 0
song mus_rg_naminori, 0, 0
song mus_rg_p_tower, 0, 0
song mus_rg_shiruhu, 0, 0
song mus_rg_hanada, 0, 0
song mus_rg_tamamusi, 0, 0
song mus_rg_win_tre, 0, 0
song mus_rg_win_yasei, 0, 0
song mus_rg_win_gym, 0, 0
song mus_rg_kuchiba, 0, 0
song mus_rg_nibi, 0, 0
song mus_rg_rival1, 0, 0
song mus_rg_rival2, 0, 0
song mus_rg_fan2, 2, 2
song mus_rg_fan5, 2, 2
song mus_rg_fan6, 2, 2
song mus_me_rg_photo, 2, 2
song mus_rg_titlerog, 0, 0
song mus_rg_get_yasei, 0, 0
song mus_rg_sousa, 0, 0
song mus_rg_sekaikan, 0, 0
song mus_rg_seibetu, 0, 0
song mus_rg_jump, 0, 0
song mus_rg_union, 0, 0
song mus_rg_network, 0, 0
song mus_rg_okurimono, 0, 0
song mus_tetsuji, 0, 0 @ Littleroot Town Test 'TETSUJI'
song mus_field13, 0, 0 @ GSC - Route 38
song mus_kachi22, 0, 0 @ Wild Pokémon Defeated
song mus_kachi2, 0, 0 @ Wild Pokémon Defeated with Intro
song mus_kachi3, 0, 0 @ Gym Leader Defeated
song mus_kachi5, 0, 0 @ Victory! Elite Four
song mus_pcc, 0, 0 @ Crystal - Pokémon Communication Center
song mus_nibi, 0, 0 @ GSC - Viridian/Saffron/Pewter/etc
song mus_suikun, 0, 0 @ Crystal - Battle! Legendary Beasts
song mus_dooro1, 0, 0 @ Route 101
song mus_dooro_x1, 0, 0 @ Route 110
song mus_dooro_x3, 0, 0 @ Route 120
song mus_machi_s2, 0, 0 @ Petalburg City
song mus_machi_s4, 0, 0 @ Oldale/Lavaridge Town
song mus_gim, 0, 0 @ Gym
song mus_naminori, 0, 0 @ Surfing
song mus_dan01, 0, 0 @ Caves and Darkness
song mus_fanfa1, 2, 2 @ Level Up!
song mus_me_asa, 2, 2 @ Pokémon Healed
song mus_me_bachi, 2, 2 @ Obtained a Badge!
song mus_fanfa4, 2, 2 @ Obtained an Item!
song mus_fanfa5, 2, 2 @ Your Pokémon Just Evolved!
song mus_me_waza, 2, 2 @ Obtained a TM/HM!
song mus_bijyutu, 0, 0 @ Lilycove Museum
song mus_dooro_x4, 0, 0 @ Route 122/Intro
song mus_fune_kan, 0, 0 @ Slateport Museum
song mus_me_shinka, 2, 2 @ Evolution Intro
song mus_shinka, 0, 0 @ Evolution
song mus_me_wasure, 2, 2 @ Move Deleted/Messed Up Appeal
song mus_syoujoeye, 0, 0 @ Encounter! Tuber
song mus_boyeye, 0, 0 @ Encounter! Boy
song mus_dan02, 0, 0 @ Abandoned Ship/Southern Island
song mus_machi_s3, 0, 0 @ Fortree City/Pacifidlog Town
song mus_odamaki, 0, 0 @ Professor Birch's Lab
song mus_b_tower, 0, 0 @ Battle Tower (RS)
song mus_swimeye, 0, 0 @ Encounter! Swimmer
song mus_dan03, 0, 0 @ Meteor Falls/Cave of Origin
song mus_me_kinomi, 2, 2 @ Obtained a Berry!
song mus_me_tama, 2, 2 @ Awakening the Super-Ancient Pokémon
song mus_me_b_big, 2, 2 @ Slots Jackpot!
song mus_me_b_small, 2, 2 @ Slots Victory!
song mus_me_zannen, 2, 2 @ Too bad!
song mus_bd_time, 0, 0 @ Roulette!
song mus_test1, 0, 0 @ Contest Test 1
song mus_test2, 0, 0 @ Contest Test 2
song mus_test3, 0, 0 @ Contest Test 3
song mus_test4, 0, 0 @ Contest Test 4
song mus_test, 0, 0 @ Encounter! Gentleman
song mus_gomachi0, 0, 0 @ Verdanturf Town
song mus_gotown, 0, 0 @ Rustboro/Mauville/Mossdeep City
song mus_pokecen, 0, 0 @ Pokémon Center
song mus_nextroad, 0, 0 @ Route 104
song mus_granroad, 0, 0 @ Route 119
song mus_cycling, 0, 0 @ Cycling
song mus_friendly, 0, 0 @ Pokémart
song mus_mishiro, 0, 0 @ Littleroot Town
song mus_tozan, 0, 0 @ Sky Pillar
song mus_girleye, 0, 0 @ Encounter! Girl
song mus_minamo, 0, 0 @ Lilycove City
song mus_ashroad, 0, 0 @ Route 111
song mus_event0, 0, 0 @ Help me!
song mus_deepdeep, 0, 0 @ Underwater
song mus_kachi1, 0, 0 @ Victory! Trainer
song mus_title3, 0, 0 @ Title Screen
song mus_demo1, 0, 0 @ Opening Movie
song mus_girl_sup, 0, 0 @ Encounter! May
song mus_hageshii, 0, 0 @ Encounter! Biker
song mus_kakkoii, 0, 0 @ Encounter! Electric Trainer
song mus_kazanbai, 0, 0 @ Route 113
song mus_aqa_0, 0, 0 @ Encounter! Team Aqua
song mus_tsuretek, 0, 0 @ Follow Me!
song mus_boy_sup, 0, 0 @ Encounter! Brendan
song mus_rainbow, 0, 0 @ Ever Grande City
song mus_ayasii, 0, 0 @ Encounter! Psychic
song mus_kachi4, 0, 0 @ Victory! Aqua/Magma Grunt
song mus_ropeway, 0, 0 @ Cable Car
song mus_casino, 0, 0 @ Game Corner
song mus_hightown, 0, 0 @ Dewford Town
song mus_safari, 0, 0 @ Safari Zone
song mus_c_road, 0, 0 @ Victory Road
song mus_ajito, 0, 0 @ Aqua/Magma Hideout
song mus_m_boat, 0, 0 @ Sailing
song mus_m_dungon, 0, 0 @ Mt. Pyre (Inside)
song mus_finecity, 0, 0 @ Slateport City
song mus_machupi, 0, 0 @ Mt. Pyre (Outside)
song mus_p_school, 0, 0 @ Pokémon Trainer's School
song mus_dendou, 0, 0 @ You're the Champion!
song mus_tonekusa, 0, 0 @ Fallarbor Town
song mus_maborosi, 0, 0 @ Sealed Chamber
song mus_con_fan, 0, 0 @ Obtained a Contest Ribbon!
song mus_contest0, 0, 0 @ Pokémon Contest
song mus_mgm0, 0, 0 @ Encounter! Team Magma
song mus_t_battle, 0, 0 @ Opening Battle
song mus_ooame, 0, 0 @ The Flood
song mus_hideri, 0, 0 @ The Drought
song mus_runecity, 0, 0 @ Sootopolis City
song mus_con_k, 0, 0 @ Contest/Berry Blending Results
song mus_eikou_r, 0, 0 @ Hall of Fame
song mus_karakuri, 0, 0 @ Trick House
song mus_hutago, 0, 0 @ Encounter! Kid
song mus_sitennou, 0, 0 @ Encounter! Elite Four
song mus_yama_eye, 0, 0 @ Encounter! Hiker
song mus_conlobby, 0, 0 @ Contest Lobby
song mus_inter_v, 0, 0 @ Encounter! Gabby and Ty
song mus_daigo, 0, 0 @ Encounter! Wallace
song mus_thankfor, 0, 0 @ Credits
song mus_end, 0, 0 @ The End
song mus_b_frontier, 0, 0 @ Battle Frontier
song mus_b_arena, 0, 0 @ Battle Arena
song mus_me_pointget, 2, 2 @ Obtained Battle Points!
song mus_me_tore_eye, 2, 2 @ Registered Trainer!
song mus_pyramid, 0, 0 @ Battle Pyramid
song mus_pyramid_top, 0, 0 @ Top of the Battle Pyramid
song mus_b_palace, 0, 0 @ Battle Palace
song mus_rekkuu_kourin, 0, 0 @ Rayquaza Enters
song mus_sattower, 0, 0 @ Battle Tower (Emerald)
song mus_me_symbolget, 2, 2 @ Obtained a Frontier Symbol!
song mus_b_dome, 0, 0 @ Battle Dome
song mus_b_tube, 0, 0 @ Battle Pike
song mus_b_factory, 0, 0 @ Battle Factory
song mus_vs_rekku, 0, 0 @ Battle! Legendary Pokémon
song mus_vs_front, 0, 0 @ Battle! Frontier Brain
song mus_vs_mew, 0, 0 @ Battle! Mew
song mus_b_dome1, 0, 0 @ Battle Dome Lobby
song mus_battle27, 0, 0 @ Battle! Wild Pokémon
song mus_battle31, 0, 0 @ Battle! Team Aqua/Magma
song mus_battle20, 0, 0 @ Battle! Trainer
song mus_battle32, 0, 0 @ Battle! Gym Leader
song mus_battle33, 0, 0 @ Battle! Champion
song mus_battle36, 0, 0 @ Battle! Regi Trio
song mus_battle34, 0, 0 @ Battle! Legendary Pokémon (dupe)
song mus_battle35, 0, 0 @ Battle! Rival
song mus_battle38, 0, 0 @ Battle! Elite Four
song mus_battle30, 0, 0 @ Battle! Archie/Maxie
@ FRLG Music Below
song mus_rg_annai, 0, 0 @ Follow Me!
song mus_rg_slot, 0, 0 @ Game Corner
song mus_rg_ajito, 0, 0 @ Rocket Hideout
song mus_rg_gym, 0, 0 @ Gym
song mus_rg_purin, 2, 2 @ Jigglypuff's Song
song mus_rg_demo, 0, 0 @ Opening Movie
song mus_rg_title, 0, 0 @ Title Screen
song mus_rg_guren, 0, 0 @ Cinnabar Island
song mus_rg_shion, 0, 0 @ Lavender Town
song mus_rg_kaihuku, 0, 0 @ RBY Pokémon Center Healing
song mus_rg_cycling, 0, 0 @ Cycling
song mus_rg_rocket, 0, 0 @ Encounter! Team Rocket
song mus_rg_shoujo, 0, 0 @ Encounter! Girl
song mus_rg_shounen, 0, 0 @ Encounter! Boy
song mus_rg_dendou, 0, 0 @ You're the Champion!
song mus_rg_t_mori, 0, 0 @ Viridian Forest
song mus_rg_otsukimi, 0, 0 @ Mt. Moon
song mus_rg_pokeyashi, 0, 0 @ Pokémon Mansion
song mus_rg_ending, 0, 0 @ Credits
song mus_rg_load01, 0, 0 @ Route 1
song mus_rg_opening, 0, 0 @ Route 24/Intro
song mus_rg_load02, 0, 0 @ Route 3
song mus_rg_load03, 0, 0 @ Route 11
song mus_rg_champ_r, 0, 0 @ Victory Road/Indigo Plateau
song mus_rg_vs_gym, 0, 0 @ Battle! Gym Leader/Elite Four
song mus_rg_vs_tore, 0, 0 @ Battle! Trainer
song mus_rg_vs_yasei, 0, 0 @ Battle! Wild Pokémon
song mus_rg_vs_last, 0, 0 @ Battle! Champion
song mus_rg_masara, 0, 0 @ Pallet Town
song mus_rg_kenkyu, 0, 0 @ Professor Oak's Lab
song mus_rg_ohkido, 0, 0 @ Professor Oak's Theme
song mus_rg_pokecen, 0, 0 @ Pokémon Center
song mus_rg_santoan, 0, 0 @ S.S. Anne
song mus_rg_naminori, 0, 0 @ Surfing
song mus_rg_p_tower, 0, 0 @ Pokémon Tower
song mus_rg_shiruhu, 0, 0 @ Silph Co.
song mus_rg_hanada, 0, 0 @ Cerulean/Fuschia City
song mus_rg_tamamusi, 0, 0 @ Celadon City
song mus_rg_win_tre, 0, 0 @ Victory! Trainer
song mus_rg_win_yasei, 0, 0 @ Victory! Wild Pokémon
song mus_rg_win_gym, 0, 0 @ Victory! Gym Leader
song mus_rg_kuchiba, 0, 0 @ Vermillion City
song mus_rg_nibi, 0, 0 @ Viridian/Saffron/Pewter City
song mus_rg_rival1, 0, 0 @ Encounter! Rival
song mus_rg_rival2, 0, 0 @ Rival's Exit
song mus_rg_fan2, 2, 2 @ Fanfare 2
song mus_rg_fan5, 2, 2 @ Obtained a Starter!
song mus_rg_fan6, 2, 2 @ Pokémon Caught! (Used in Emerald)
song mus_me_rg_photo, 2, 2 @ Trainer Photo
song mus_rg_titlerog, 0, 0 @ Game Freak
song mus_rg_get_yasei, 0, 0 @ Pokémon Caught Victory Theme
song mus_rg_sousa, 0, 0 @ Starting Tutorial
song mus_rg_sekaikan, 0, 0 @ Starting Tutorial 2
song mus_rg_seibetu, 0, 0 @ Starting Tutorial 3
song mus_rg_jump, 0, 0 @ Jumping Minigame
song mus_rg_union, 0, 0 @ Union Room
song mus_rg_network, 0, 0 @ Network Center
song mus_rg_okurimono, 0, 0 @ Mystery Gift
song mus_rg_kinomikui, 0, 0
song mus_rg_nanadungeon, 0, 0
song mus_rg_oshie_tv, 0, 0
song mus_rg_nanashima, 0, 0
song mus_rg_nanaiseki, 0, 0
song mus_rg_nana123, 0, 0
song mus_rg_nana45, 0, 0
song mus_rg_nana67, 0, 0
song mus_rg_pokefue, 2, 2
song mus_rg_vs_deo, 0, 0
song mus_rg_vs_myu2, 0, 0
song mus_rg_vs_den, 0, 0
song mus_rg_exeye, 0, 0
song mus_rg_deoeye, 0, 0
song mus_rg_t_tower, 0, 0
song mus_rg_slowmasara, 0, 0
song mus_rg_tvnoize, 0, 0
song mus_rg_nanadungeon, 0, 0 @ Sevii Caves/Altering Cave (Mt. Moon)
song mus_rg_oshie_tv, 0, 0 @ Follow Me!
song mus_rg_nanashima, 0, 0 @ Sevii Islands Routes (Lake of Rage)
song mus_rg_nanaiseki, 0, 0 @ Sevii Forests (Viridian Forest)
song mus_rg_nana123, 0, 0 @ Sevii Islands 1-3 (Viridian/Saffron/Pewter)
song mus_rg_nana45, 0, 0 @ Sevii Islands 4-5 (Azalea Town)
song mus_rg_nana67, 0, 0 @ Sevii Islands 6-7 (Violet City)
song mus_rg_pokefue, 2, 2 @ Poké Flute
song mus_rg_vs_deo, 0, 0 @ Battle! Deoxys
song mus_rg_vs_myu2, 0, 0 @ Battle! Mewtwo
song mus_rg_vs_den, 0, 0 @ Battle! Legendary Birds
song mus_rg_exeye, 0, 0 @ Encounter! Gym Leader
song mus_rg_deoeye, 0, 0 @ Encounter! Deoxys
song mus_rg_t_tower, 0, 0 @ Trainer Tower (Gym)
song mus_rg_slowmasara, 0, 0 @ Pallet Town (Hall of Fame remix)
song mus_rg_tvnoize, 0, 0 @ Teachy TV
song ph_trap_blend, 2, 2
song ph_trap_held, 2, 2
song ph_trap_solo, 2, 2

4346
src/battle_transition.c Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1007,7 +1007,7 @@ void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 dest
}
// Skipping for now, it probably uses structs passed by value
/*
void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2)
void CopyRectToBgTilemapBufferRect(u8 bg, const void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2)
{
u16 attribute;
u16 mode;
@@ -1049,7 +1049,7 @@ void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWid
}
}*/
__attribute__((naked))
void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2)
void CopyRectToBgTilemapBufferRect(u8 bg, const void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2)
{
asm("push {r4-r7,lr}\n\
mov r7, r10\n\

View File

@@ -1,173 +0,0 @@
#include "global.h"
#include <stddef.h>
#define LBLOCKSIZE (sizeof(long))
// Nonzero if (long)X contains a NULL byte.
#define CONTAINSNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080)
// Nonzero if X is not aligned on a "long" boundary.
#define UNALIGNED(X) ((long)X & (LBLOCKSIZE - 1))
void *memcpy(void *dst0, const void *src0, size_t len0)
{
char *dst = dst0;
const char *src = src0;
long *aligned_dst;
const long *aligned_src;
unsigned int len = len0;
// If the size is small, or either src or dst is unaligned,
// then go to the byte copy loop. This should be rare.
if(len >= 16 && !(UNALIGNED(src) | UNALIGNED(dst)))
{
aligned_dst = (long *)dst;
aligned_src = (long *)src;
// Copy 4X long words at a time if possible.
while(len >= 16)
{
*aligned_dst++ = *aligned_src++;
*aligned_dst++ = *aligned_src++;
*aligned_dst++ = *aligned_src++;
*aligned_dst++ = *aligned_src++;
len -= 16;
}
// Copy one long word at a time if possible
while(len >= 4)
{
*aligned_dst++ = *aligned_src++;
len -= 4;
}
dst = (char *)aligned_dst;
src = (char *)aligned_src;
}
// Pick up any remaining bytes with a byte copier.
while(len--)
*dst++ = *src++;
return dst0;
}
void *memset(void *m, int c, size_t n)
{
char *s = (char *)m;
int count, i;
unsigned long buffer;
unsigned long *aligned_addr;
unsigned char *unaligned_addr;
// If the size is small or m is unaligned,
// then go to the byte copy loop. This should be rare.
if(n >= LBLOCKSIZE && !UNALIGNED(m))
{
// We know that n is large and m is word-aligned.
aligned_addr = (unsigned long *)m;
// Store C into each char sized location in buffer so that
// we can set large blocks quickly.
c &= 0xFF;
if(LBLOCKSIZE == 4)
{
buffer = (c << 8) | c;
buffer |= (buffer << 16);
}
else
{
buffer = 0;
for(i = 0; i < LBLOCKSIZE; i++)
buffer = (buffer << 8) | c;
}
while(n >= LBLOCKSIZE * 4)
{
*aligned_addr++ = buffer;
*aligned_addr++ = buffer;
*aligned_addr++ = buffer;
*aligned_addr++ = buffer;
n -= LBLOCKSIZE * 4;
}
while(n >= LBLOCKSIZE)
{
*aligned_addr++ = buffer;
n -= LBLOCKSIZE;
}
s = (char *)aligned_addr;
}
// Pick up the remainder with a bytewise loop.
while(n--)
*s++ = (char)c;
return m;
}
int strcmp(const char *s1, const char *s2)
{
unsigned long *a1;
unsigned long *a2;
// If s1 or s2 are unaligned, then skip this and compare bytes.
if(!(UNALIGNED(s1) | UNALIGNED(s2)))
{
// Compare them a word at a time.
a1 = (unsigned long *)s1;
a2 = (unsigned long *)s2;
while(*a1 == *a2)
{
// If *a1 == *a2, and we find a null in *a1,
// then the strings must be equal, so return zero.
if(CONTAINSNULL(*a1))
return 0;
a1++;
a2++;
}
s1 = (char *)a1;
s2 = (char *)a2;
}
// Check the remaining few bytes.
while(*s1 != '\0' && *s1 == *s2)
{
s1++;
s2++;
}
return (*(unsigned char *) s1) - (*(unsigned char *) s2);
}
char* strcpy(char *dst0, const char *src0)
{
char *dst = dst0;
const char *src = src0;
unsigned long *a1;
const unsigned long *a2;
// If SRC or DEST is unaligned, then copy bytes.
if(!(UNALIGNED(src) | UNALIGNED(dst)))
{
// SRC and DEST are both "long int" aligned, try to do "long int"
// sized copies.
a1 = (unsigned long *)dst;
a2 = (unsigned long *)src;
while(!CONTAINSNULL(*a2))
{
*a1++ = *a2++;
}
dst = (char *)a1;
src = (char *)a2;
}
// Copy the remaining few bytes.
while(*dst++ = *src++);
return dst0;
}

177
src/libisagbprn.c Executable file
View File

@@ -0,0 +1,177 @@
#include <stdarg.h>
#include <stdio.h>
#include "gba/gba.h"
#include "config.h"
#define AGB_PRINT_FLUSH_ADDR 0x9FE209D
#define AGB_PRINT_STRUCT_ADDR 0x9FE20F8
#define AGB_PRINT_PROTECT_ADDR 0x9FE2FFE
#define WSCNT_DATA (WAITCNT_PHI_OUT_16MHZ | WAITCNT_WS0_S_2 | WAITCNT_WS0_N_4)
// originally for auto no$gba support, the string "no$gba" should be at this address,
// the user needs to read this string out as the memory viewer won't show it.
#define NOCASHGBAIDADDR 0x4FFFA00
#define NOCASHGBAPRINTADDR1 0x4FFFA10 // automatically adds a newline after the string has finished
#define NOCASHGBAPRINTADDR2 0x4FFFA14 // does not automatically add the newline. by default, NOCASHGBAPRINTADDR2 is used. this is used to keep strings consistent between no$gba and VBA-RR, but a user can choose to forgo this.
struct AGBPrintStruct
{
u16 m_nRequest;
u16 m_nBank;
u16 m_nGet;
u16 m_nPut;
};
typedef void (*LPFN_PRINT_FLUSH)(void);
#ifndef NDEBUG
void AGBPrintFlush1Block(void);
void AGBPrintInit(void)
{
volatile struct AGBPrintStruct *pPrint = (struct AGBPrintStruct *)AGB_PRINT_STRUCT_ADDR;
u16 *pWSCNT = (u16 *)REG_ADDR_WAITCNT;
u16 *pProtect = (u16 *)AGB_PRINT_PROTECT_ADDR;
u16 nOldWSCNT = *pWSCNT;
*pWSCNT = WSCNT_DATA;
*pProtect = 0x20;
pPrint->m_nRequest = pPrint->m_nGet = pPrint->m_nPut = 0;
pPrint->m_nBank = 0xFD;
*pProtect = 0;
*pWSCNT = nOldWSCNT;
}
static void AGBPutcInternal(const char cChr)
{
volatile struct AGBPrintStruct *pPrint = (struct AGBPrintStruct *)AGB_PRINT_STRUCT_ADDR;
u16 *pPrintBuf = (u16 *)(0x8000000 + (pPrint->m_nBank << 16));
u16 *pProtect = (u16 *)AGB_PRINT_PROTECT_ADDR;
u16 nData = pPrintBuf[pPrint->m_nPut / 2];
*pProtect = 0x20;
nData = (pPrint->m_nPut & 1) ? (nData & 0xFF) | (cChr << 8) : (nData & 0xFF00) | cChr;
pPrintBuf[pPrint->m_nPut / 2] = nData;
pPrint->m_nPut++;
*pProtect = 0;
}
void AGBPutc(const char cChr)
{
u16 *pWSCNT = (u16 *)REG_ADDR_WAITCNT;
u16 nOldWSCNT = *pWSCNT;
volatile struct AGBPrintStruct *pPrint;
*pWSCNT = WSCNT_DATA;
AGBPutcInternal(cChr);
*pWSCNT = nOldWSCNT;
pPrint = (struct AGBPrintStruct *)AGB_PRINT_STRUCT_ADDR;
if (pPrint->m_nPut == ((pPrint->m_nGet - 1) & 0xFFFF))
AGBPrintFlush1Block();
}
void AGBPrint(const char *pBuf)
{
volatile struct AGBPrintStruct *pPrint = (struct AGBPrintStruct *)AGB_PRINT_STRUCT_ADDR;
u16 *pWSCNT = (u16 *)REG_ADDR_WAITCNT;
u16 nOldWSCNT = *pWSCNT;
*pWSCNT = WSCNT_DATA;
while (*pBuf)
{
AGBPutc(*pBuf);
pBuf++;
}
*pWSCNT = nOldWSCNT;
}
void AGBPrintf(const char *pBuf, ...)
{
char bufPrint[0x100];
va_list vArgv;
va_start(vArgv, pBuf);
vsprintf(bufPrint, pBuf, vArgv);
va_end(vArgv);
AGBPrint(bufPrint);
}
static void AGBPrintTransferDataInternal(u32 bAllData)
{
LPFN_PRINT_FLUSH lpfnFuncFlush;
u16 *pIME;
u16 nIME;
u16 *pWSCNT;
u16 nOldWSCNT;
u16 *pProtect;
volatile struct AGBPrintStruct *pPrint;
pProtect = (u16 *)AGB_PRINT_PROTECT_ADDR;
pPrint = (struct AGBPrintStruct *)AGB_PRINT_STRUCT_ADDR;
lpfnFuncFlush = (LPFN_PRINT_FLUSH)AGB_PRINT_FLUSH_ADDR;
pIME = (u16 *)REG_ADDR_IME;
nIME = *pIME;
pWSCNT = (u16 *)REG_ADDR_WAITCNT;
nOldWSCNT = *pWSCNT;
*pIME = nIME & ~1;
*pWSCNT = WSCNT_DATA;
if (bAllData)
{
while (pPrint->m_nPut != pPrint->m_nGet)
{
*pProtect = 0x20;
lpfnFuncFlush();
*pProtect = 0;
}
}
else if (pPrint->m_nPut != pPrint->m_nGet)
{
*pProtect = 0x20;
lpfnFuncFlush();
*pProtect = 0;
}
*pWSCNT = nOldWSCNT;
*pIME = nIME;
}
void AGBPrintFlush1Block(void)
{
AGBPrintTransferDataInternal(FALSE);
}
void AGBPrintFlush(void)
{
AGBPrintTransferDataInternal(TRUE);
}
void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopProgram)
{
if (nStopProgram)
{
AGBPrintf("ASSERTION FAILED FILE=[%s] LINE=[%d] EXP=[%s] \n", pFile, nLine, pExpression);
AGBPrintFlush();
asm(".hword 0xEFFF");
}
else
{
AGBPrintf("WARING FILE=[%s] LINE=[%d] EXP=[%s] \n", pFile, nLine, pExpression);
}
}
// no$gba print functions, uncomment to use
/*
void NoCashGBAPrint(const char *pBuf)
{
*(volatile u32*)NOCASHGBAPRINTADDR2 = (u32)pBuf;
}
void NoCashGBAPrintf(const char *pBuf, ...)
{
char bufPrint[0x100];
va_list vArgv;
va_start(vArgv, pBuf);
vsprintf(bufPrint, pBuf, vArgv);
va_end(vArgv);
NoCashGBAPrint(bufPrint);
}
*/
#endif

View File

@@ -5,6 +5,7 @@
#include "blend_palette.h"
#include "battle_transition.h"
#include "task.h"
#include "battle_transition.h"
// Static type declarations
@@ -1392,7 +1393,7 @@ static void sub_80A1818(u16 a1)
{
CpuCopy16(gTilesetAnims_BattleDomePals0[a1 & 0x3], gPlttBufferUnfaded + 0x80, 32);
BlendPalette(0x80, 0x10, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF);
if ((u8)FindTaskIdByFunc(sub_8149DFC) != 0xFF )
if ((u8)FindTaskIdByFunc(TransitionPhase1_Task_RunFuncs) != 0xFF )
{
sSecondaryTilesetCB = sub_80A1670;
sSecondaryTilesetCBBufferSize = 0x20;
@@ -1402,7 +1403,7 @@ static void sub_80A1818(u16 a1)
static void sub_80A1884(u16 a1)
{
CpuCopy16(gTilesetAnims_BattleDomePals0[a1 & 0x3], gPlttBufferUnfaded + 0x80, 32);
if ((u8)FindTaskIdByFunc(sub_8149DFC) == 0xFF )
if ((u8)FindTaskIdByFunc(TransitionPhase1_Task_RunFuncs) == 0xFF )
{
BlendPalette(0x80, 0x10, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF);
if (!--sSecondaryTilesetCBBufferSize)

View File

@@ -73,17 +73,7 @@ gUnknown_03001202: @ 3001202
gUnknown_03001204: @ 3001204
.space 0x4
gUnknown_03001208: @ 3001208
.space 0x2
sTestingTransitionId: @ 300120A
.space 0x1
sTestingTransitionState: @ 300120B
.space 0x5
gUnknown_03001210: @ 3001210
.space 0x30
.include "src/battle_transition.o"
gUnknown_03001240: @ 3001240
.space 0x30
@@ -210,3 +200,4 @@ gMPlayTrack_SE3: @ 3001A20
.include "src/siirtc.o"
.include "tools/agbcc/lib/libgcc.a:dp-bit.o"
.include "tools/agbcc/lib/libgcc.a:fp-bit.o"
.include "tools/agbcc/lib/libc.a:syscalls.o"

View File

@@ -1193,10 +1193,7 @@ gUnknown_0203AB98: @ 203AB98
.space 0x4
.include "src/coins.o"
.align 2
sTransitionStructPtr: @ 203ABA0
.space 0x4
.include "src/battle_transition.o"
gAbilitiesPerBank: @ 203ABA4
.space 0x4