#include "global.h" #include "music.h" #include "constants/bg_music.h" #include "time.h" #include "bg.h" #include "input.h" void sub_8011924(void); void nullsub_26(void); extern u8 sub_80023E4(u8); extern void sub_800BF48(u16 r0); extern void sub_800BF80(void); extern void sub_800BFD0(u16 r0); extern void sub_800C3F8(u16 r0, u16 r1); extern void sub_801199C(u16 r0); extern void sub_800C074(u16 r0, u16 r1); extern void sub_800C298(u16 r0); extern u8 sub_800C5D0(u16 r0); extern void nullsub_27(void); extern void nullsub_29(void); extern void nullsub_30(void); extern void nullsub_31(void); extern void nullsub_32(void); extern void nullsub_28(void); extern int sprintf(char *, const char *, ...); extern struct PlayTimeStruct *gUnknown_203B47C; struct UnkSaveStruct1 { /* 0x0 */ u32 unk0; /* 0x4 */ u32 unk4; /* 0x8 */ u16 unk8; /* 0xA */ u8 unkA; }; extern struct UnkSaveStruct1 *gUnknown_203B46C; struct UnkBgStruct { u8 padding[0x4c4b]; u32 unk4c4c; u8 padding2[0x17A]; u32 *unk4dcc; u32 unk4dd0; s16 unk4dd4; s16 unk4dd6; }; extern struct UnkBgStruct *gUnknown_203B0E4; struct DebugLocation { char *file; u32 line; char *func; }; extern u16 gUnknown_80D4144[]; extern s16 gUnknown_202DE20; extern s16 gUnknown_202DE22; extern s16 gUnknown_202DE24; extern u32 gUnknown_202DE1C; extern u32 gUnknown_203B14C; extern const char gNotEntryText[]; extern const char gFuncFileLineString[]; extern const char gFuncFileLineStringWPrefix[]; void nullsub_8(u32); void sub_8005838(u32, u32); extern void CopySpritesToOam(void); extern void sub_8005304(void); extern void TransferBGPaletteBuffer(void); extern void xxx_call_update_bg_vram(void); extern void sub_8009908(void); extern void xxx_call_update_bg_sound_input(void); extern void sub_8005180(void); extern void sub_80060EC(void); extern void sub_8011860(void); extern void sub_800CB20(void); extern void ResetSprites(u32); extern void sub_8004AF0(u8, u32 *r1, u32, u32, u32 *r2, u32); extern u8 sub_80111C4(); extern void sub_8010F28(); void sub_801169C(void) { u8 return_var; SetBG2RegOffsets(gUnknown_203B0E4->unk4dd4, gUnknown_203B0E4->unk4dd6); SetBG3RegOffsets(gUnknown_203B0E4->unk4dd4, gUnknown_203B0E4->unk4dd6); sub_8010F28(); return_var = sub_80111C4(); sub_8004AF0(return_var, &(gUnknown_203B0E4->unk4c4c), 0xB0, 0x10, (gUnknown_203B0E4->unk4dcc), 0); sub_8005838(0, 0); nullsub_8(gUnknown_203B46C->unkA); sub_8005180(); sub_80060EC(); IncrementPlayTime(gUnknown_203B47C); sub_800CB20(); LoadBufferedInputs(); CopySpritesToOam(); sub_8005304(); TransferBGPaletteBuffer(); xxx_call_update_bg_vram(); sub_8009908(); xxx_call_update_bg_sound_input(); sub_8011860(); ResetSprites(0); } void sub_8011760(void) { if(sub_80023E4(0xD) != 0) { StartNewBGM(MUS_WORLD_CALAMITY); return; } if(sub_80023E4(0xC) != 0) { StartNewBGM(MUS_POKEMON_SQUARE); } } void sub_801178C(void) { if(sub_80023E4(0xD) != 0) { StartNewBGM(MUS_WORLD_CALAMITY); return; } StartNewBGM(MUS_POKEMON_SQUARE); } void sub_80117AC(void) { if(sub_80023E4(0xD) == 0) { sub_800BFD0(0x1E); } } void sub_80117C4(void) { sub_800BFD0(0x1E); } void sub_80117D0(void) { sub_800C074(0x97 << 1, 0x80 << 1); } void sub_80117E4(void) { sub_800C074(0x12f, 0x80 << 1); } void sub_80117F8(void) { sub_800C074(0x12d, 0x80 << 1); } void sub_801180C(void) { gUnknown_202DE1C = 0; gUnknown_202DE20 = 0; gUnknown_202DE22 = 0; gUnknown_202DE24 = 0; } void sub_8011830(void) { sub_800C93C(); gUnknown_202DE20 = 0; gUnknown_202DE22 = 0; gUnknown_202DE24 = 0; } void sub_8011854(void) { sub_800C9CC(); } void sub_8011860(void) { if(gUnknown_202DE20 > 0) { gUnknown_202DE20--; } if(gUnknown_202DE22 > 0) { gUnknown_202DE22--; } if(gUnknown_202DE24 > 0) { gUnknown_202DE24--; } } void sub_80118A4(void) { sub_8011924(); sub_801199C(0x3e6); sub_801199C(0x3e5); } void sub_80118C4(u16 r0) { sub_800BFD0(r0); sub_800C3F8(0x3e6, r0); sub_800C3F8(0x3e5, r0); } void xxx_call_start_new_bgm(u16 songIndex) { StartNewBGM(songIndex); } void xxx_call_fade_in_new_bgm(u16 songIndex, u16 speed) { FadeInNewBGM(songIndex, speed); } void sub_8011914(u16 r0) { sub_800BF48(r0); } void sub_8011924() { sub_800BF80(); } void sub_8011930(u16 r0) { sub_800BFD0(r0); } u32 sub_8011940(u16 r0) { u32 temp; temp = GetCurrentBGSong(); if(r0 == 999) return temp != 999; return temp == r0; } void sub_8011974(u16 r0, u16 r1) { sub_800C074(r0, r1); } void sub_8011988(u16 r0) { sub_800C074(r0, 0x80 << 1); } void sub_801199C(u16 r0) { sub_800C298(r0); } void sub_80119AC(u16 r0, u16 r1) { sub_800C3F8(r0, r1); } u8 sub_80119C0(u16 r0) { return sub_800C5D0(r0); } void sub_80119D4(u32 r0) { if(gUnknown_202DE20 > 0) return; sub_800C074(gUnknown_80D4144[r0], 0x80 << 1); gUnknown_202DE20 = 4; } void sub_8011A04(void) { if(gUnknown_202DE22 > 0) return; gUnknown_202DE22 = 3; sub_800C074(0x131, 0x80 << 1); } void sub_8011A2C(u32 r0) { gUnknown_202DE1C = r0; } void NDS_DebugInit(void) { nullsub_26(); nullsub_27(); nullsub_29(); nullsub_30(); nullsub_31(); nullsub_32(); nullsub_28(); gUnknown_203B14C = 1; // Maybe a flag saying Debug is on? } void nullsub_25(void) { } void nullsub_26(void) { } // Unused void PrintFuncFileLineOrNotEntry(char * r0, struct DebugLocation *r1) { if(r1 != 0) { sprintf(r0, gFuncFileLineString, r1->func, r1->file, r1->line); } else { sprintf(r0, gNotEntryText); } } void PrintFuncFileLine(char *buf, struct DebugLocation *loc, char* prefix) { sprintf(buf, gFuncFileLineStringWPrefix, prefix, loc->func, loc->file, loc->line); }