Merge pull request #321 from PikalaxALT/modern_gcc

Get pokefirered_modern to build
This commit is contained in:
PikalaxALT
2020-04-12 10:12:37 -04:00
committed by GitHub
130 changed files with 2465 additions and 1926 deletions
+4
View File
@@ -38,5 +38,9 @@ matrix:
- make -j2 compare_leafgreen - make -j2 compare_leafgreen
- make -j2 compare_firered_rev1 - make -j2 compare_firered_rev1
- make -j2 compare_leafgreen_rev1 - make -j2 compare_leafgreen_rev1
- make -j2 modern
- make -j2 leafgreen_modern
- make -j2 firered_rev1_modern
- make -j2 leafgreen_rev1_modern
after_success: after_success:
- .travis/calcrom/webhook.sh pokefirered - .travis/calcrom/webhook.sh pokefirered
+80 -14
View File
@@ -1,12 +1,56 @@
include $(DEVKITARM)/base_tools TOOLCHAIN := $(DEVKITARM)
COMPARE ?= 0 COMPARE ?= 0
CPP := $(CC) -E ifeq ($(CC),)
LD := $(DEVKITARM)/bin/arm-none-eabi-ld HOSTCC := gcc
else
HOSTCC := $(CC)
endif
ifeq ($(CXX),)
HOSTCXX := g++
else
HOSTCXX := $(CXX)
endif
ifneq (,$(wildcard $(TOOLCHAIN)/base_tools))
include $(TOOLCHAIN)/base_tools
else
export PATH := $(TOOLCHAIN)/bin:$(PATH)
PREFIX := arm-none-eabi-
OBJCOPY := $(PREFIX)objcopy
export CC := $(PREFIX)gcc
export AS := $(PREFIX)as
endif
export CPP := $(PREFIX)cpp
export LD := $(PREFIX)ld
ifeq ($(OS),Windows_NT)
EXE := .exe
else
EXE :=
endif
include config.mk include config.mk
GCC_VER = $(shell $(CC) -dumpversion)
ifeq ($(MODERN),0)
CC1 := tools/agbcc/bin/agbcc
override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm
LIBPATH := -L ../../tools/agbcc/lib
else
CC1 := $(shell $(CC) --print-prog-name=cc1) -quiet
override CFLAGS += -mthumb -mthumb-interwork -O2 -mtune=arm7tdmi -march=armv4t -mabi=apcs-gnu -fno-toplevel-reorder -fno-aggressive-loop-optimizations -Wno-pointer-to-int-cast
#LIBPATH := -L $(TOOLCHAIN)/lib/gcc/arm-none-eabi/$(GCC_VER)/thumb -L $(TOOLCHAIN)/arm-none-eabi/lib/thumb
LIBPATH := -L ../../tools/agbcc/lib
endif
CPPFLAGS := -iquote include -D$(GAME_VERSION) -DREVISION=$(GAME_REVISION) -D$(GAME_LANGUAGE) -DMODERN=$(MODERN)
ifeq ($(MODERN),0)
CPPFLAGS += -I tools/agbcc -I tools/agbcc/include -nostdinc -undef
endif
SHELL := /bin/bash -o pipefail SHELL := /bin/bash -o pipefail
ROM := poke$(BUILD_NAME).gba ROM := poke$(BUILD_NAME).gba
@@ -28,16 +72,14 @@ DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR)
SONG_BUILDDIR = $(OBJ_DIR)/$(SONG_SUBDIR) SONG_BUILDDIR = $(OBJ_DIR)/$(SONG_SUBDIR)
MID_BUILDDIR = $(OBJ_DIR)/$(MID_SUBDIR) MID_BUILDDIR = $(OBJ_DIR)/$(MID_SUBDIR)
ASFLAGS := -mcpu=arm7tdmi --defsym $(GAME_VERSION)=1 --defsym REVISION=$(GAME_REVISION) --defsym $(GAME_LANGUAGE)=1 ASFLAGS := -mcpu=arm7tdmi --defsym $(GAME_VERSION)=1 --defsym REVISION=$(GAME_REVISION) --defsym $(GAME_LANGUAGE)=1 --defsym MODERN=$(MODERN)
CC1 := tools/agbcc/bin/agbcc
override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm
CPPFLAGS := -I tools/agbcc -I tools/agbcc/include -iquote include -nostdinc -undef -D$(GAME_VERSION) -DREVISION=$(GAME_REVISION) -D$(GAME_LANGUAGE)
LDFLAGS = -Map ../../$(MAP) LDFLAGS = -Map ../../$(MAP)
LIB := -L ../../tools/agbcc/lib -lgcc -lc LIB := $(LIBPATH) -lgcc -lc
#ifneq ($(MODERN),0)
#LIB += -lsysbase
#endif
SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
GFX := tools/gbagfx/gbagfx GFX := tools/gbagfx/gbagfx
@@ -96,7 +138,7 @@ TOOLS = $(foreach tool,$(TOOLBASE),tools/$(tool)/$(tool)$(EXE))
ALL_BUILDS := firered firered_rev1 leafgreen leafgreen_rev1 ALL_BUILDS := firered firered_rev1 leafgreen leafgreen_rev1
.PHONY: all rom tools clean-tools mostlyclean clean compare tidy berry_fix $(TOOLDIRS) $(ALL_BUILDS) $(ALL_BUILDS:%=compare_%) .PHONY: all rom tools clean-tools mostlyclean clean compare tidy berry_fix $(TOOLDIRS) $(ALL_BUILDS) $(ALL_BUILDS:%=compare_%) $(ALL_BUILDS:%=%_modern) modern
MAKEFLAGS += --no-print-directory MAKEFLAGS += --no-print-directory
@@ -162,6 +204,7 @@ sound/%.bin: sound/%.aif ; $(AIF) $< $@
sound/songs/%.s: sound/songs/%.mid sound/songs/%.s: sound/songs/%.mid
cd $(@D) && ../../$(MID) $(<F) cd $(@D) && ../../$(MID) $(<F)
ifeq ($(MODERN),0)
$(C_BUILDDIR)/agb_flash.o: CFLAGS := -O -mthumb-interwork $(C_BUILDDIR)/agb_flash.o: CFLAGS := -O -mthumb-interwork
$(C_BUILDDIR)/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork $(C_BUILDDIR)/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork
$(C_BUILDDIR)/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork $(C_BUILDDIR)/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork
@@ -176,6 +219,14 @@ $(C_BUILDDIR)/flying.o: CFLAGS += -ffreestanding
$(C_BUILDDIR)/librfu_intr.o: CC1 := tools/agbcc/bin/agbcc_arm $(C_BUILDDIR)/librfu_intr.o: CC1 := tools/agbcc/bin/agbcc_arm
$(C_BUILDDIR)/librfu_intr.o: CFLAGS := -O2 -mthumb-interwork -quiet $(C_BUILDDIR)/librfu_intr.o: CFLAGS := -O2 -mthumb-interwork -quiet
else
$(C_BUILDDIR)/berry_crush_2.o: CFLAGS += -Wno-address-of-packed-member
$(C_BUILDDIR)/berry_crush_3.o: CFLAGS += -Wno-address-of-packed-member
$(C_BUILDDIR)/braille_text.o: CFLAGS += -Wno-address-of-packed-member
$(C_BUILDDIR)/text.o: CFLAGS += -Wno-address-of-packed-member
$(C_BUILDDIR)/battle_tower.o: CFLAGS += -Wno-div-by-zero
$(C_BUILDDIR)/librfu_intr.o: override CFLAGS += -marm -mthumb-interwork -O2 -mtune=arm7tdmi -march=armv4t -mabi=apcs-gnu -fno-toplevel-reorder -fno-aggressive-loop-optimizations -Wno-pointer-to-int-cast
endif
ifeq ($(NODEP),1) ifeq ($(NODEP),1)
$(C_BUILDDIR)/%.o: c_dep := $(C_BUILDDIR)/%.o: c_dep :=
@@ -224,11 +275,19 @@ $(OBJ_DIR)/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt)
$(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt $(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt
$(RAMSCRGEN) ewram_data $< ENGLISH > $@ $(RAMSCRGEN) ewram_data $< ENGLISH > $@
$(OBJ_DIR)/ld_script.ld: ld_script.txt $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld ifeq ($(MODERN),0)
LD_SCRIPT := ld_script.txt
LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
else
LD_SCRIPT := ld_script_modern.txt
LD_SCRIPT_DEPS :=
endif
$(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS)
cd $(OBJ_DIR) && sed -f ../../ld_script.sed ../../$< | sed "s#tools/#../../tools/#g" > ld_script.ld cd $(OBJ_DIR) && sed -f ../../ld_script.sed ../../$< | sed "s#tools/#../../tools/#g" > ld_script.ld
$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS)
cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(LIB) cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB)
$(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(GAME_REVISION) --silent $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(GAME_REVISION) --silent
$(ROM): $(ELF) $(ROM): $(ELF)
@@ -244,3 +303,10 @@ compare_firered: ; @$(MAKE) GAME_VERSION=FIRERED COMPARE=1
compare_firered_rev1: ; @$(MAKE) GAME_VERSION=FIRERED GAME_REVISION=1 COMPARE=1 compare_firered_rev1: ; @$(MAKE) GAME_VERSION=FIRERED GAME_REVISION=1 COMPARE=1
compare_leafgreen: ; @$(MAKE) GAME_VERSION=LEAFGREEN COMPARE=1 compare_leafgreen: ; @$(MAKE) GAME_VERSION=LEAFGREEN COMPARE=1
compare_leafgreen_rev1: ; @$(MAKE) GAME_VERSION=LEAFGREEN GAME_REVISION=1 COMPARE=1 compare_leafgreen_rev1: ; @$(MAKE) GAME_VERSION=LEAFGREEN GAME_REVISION=1 COMPARE=1
firered_modern: ; @$(MAKE) GAME_VERSION=FIRERED MODERN=1
firered_rev1_modern: ; @$(MAKE) GAME_VERSION=FIRERED GAME_REVISION=1 MODERN=1
leafgreen_modern: ; @$(MAKE) GAME_VERSION=LEAFGREEN MODERN=1
leafgreen_rev1_modern: ; @$(MAKE) GAME_VERSION=LEAFGREEN GAME_REVISION=1 MODERN=1
modern: ; @$(MAKE) MODERN=1
+1
View File
@@ -1909,6 +1909,7 @@ _081DDD90:
.align 2, 0 @ Don't pad with nop. .align 2, 0 @ Don't pad with nop.
.bss .bss
.align 3
gUnknown_030007B8: gUnknown_030007B8:
.space 0x40 .space 0x40
.size gUnknown_030007B8, .-gUnknown_030007B8 .size gUnknown_030007B8, .-gUnknown_030007B8
+1
View File
@@ -14,6 +14,7 @@
@ To make adding these improvements easier they are commented and tagged with "Improvement in Emerald" @ To make adding these improvements easier they are commented and tagged with "Improvement in Emerald"
@ Emerald also adds a few entirely new AI commands (mostly to expand Double Battle AI), which are not included @ Emerald also adds a few entirely new AI commands (mostly to expand Double Battle AI), which are not included
.align 2
gBattleAI_ScriptsTable:: @ 81D9BF4 gBattleAI_ScriptsTable:: @ 81D9BF4
.4byte AI_CheckBadMove .4byte AI_CheckBadMove
.4byte AI_CheckViability .4byte AI_CheckViability
+1
View File
@@ -44,6 +44,7 @@ gMovesWithQuietBGM:: @ 81C68EC
.2byte MOVE_GRASS_WHISTLE .2byte MOVE_GRASS_WHISTLE
.2byte 0xFFFF .2byte 0xFFFF
.align 2
gBattleAnims_Moves:: gBattleAnims_Moves::
.4byte Move_NONE .4byte Move_NONE
.4byte Move_POUND .4byte Move_POUND
+1
View File
@@ -1,6 +1,7 @@
#ifndef GUARD_BATTLE_H #ifndef GUARD_BATTLE_H
#define GUARD_BATTLE_H #define GUARD_BATTLE_H
#include <limits.h>
#include "global.h" #include "global.h"
#include "constants/battle.h" #include "constants/battle.h"
#include "battle_util.h" #include "battle_util.h"
+3 -3
View File
@@ -67,11 +67,11 @@ const struct Berry * GetBerryInfo(u8 berryIdx);
extern const struct Berry gBerries[]; extern const struct Berry gBerries[];
struct UnkStruct_0858AB24 { struct BerryCrushStats {
u8 unk0; u8 unk0;
u16 unk1; u16 powder;
}; };
extern const struct UnkStruct_0858AB24 gUnknown_83DFC9C[]; extern const struct BerryCrushStats gBerryCrushStats[];
#endif // GUARD_BERRY_H #endif // GUARD_BERRY_H
+102 -74
View File
@@ -1,9 +1,49 @@
#ifndef GUARD_BERRY_CRUSH_H #ifndef GUARD_BERRY_CRUSH_H
#define GUARD_BERRY_CRUSH_H #define GUARD_BERRY_CRUSH_H
enum {
BCTEXT_AREYOUREADY,
BCTEXT_WAITFOROTHERS,
BCTEXT_GAINEDPOWDER,
BCTEXT_RECORDINGRESULTS,
BCTEXT_ASKPLAYAGAIN,
BCTEXT_CANCEL_NOBERRIES,
BCTEXT_CANCEL_DROPPEDOUT,
BCTEXT_TIMEUP,
BCTEXT_COMMSTANDBY,
};
enum {
BCCMD_BeginNormalPaletteFade = 1,
BCCMD_WaitPaletteFade,
BCCMD_PrintMessage,
BCCMD_InitGfx,
BCCMD_TeardownGfx,
BCCMD_SignalReadyToBegin,
BCCMD_AskPickBerry,
BCCMD_GoToBerryPouch,
BCCMD_WaitForOthersToPickBerries,
BCCMD_DropBerriesIntoCrusher,
BCCMD_DropLid,
BCCMD_Countdown,
BCCMD_PlayGame_Master,
BCCMD_PlayGame_Slave,
BCCMD_FinishGame,
BCCMD_HandleTimeUp,
BCCMD_TabulateResults,
BCCMD_ShowResults,
BCCMD_SaveTheGame,
BCCMD_AskPlayAgain,
BCCMD_CommunicatePlayAgainResponses,
BCCMD_FadeOutToPlayAgain,
BCCMD_PlayAgainFailureMessage,
BCCMD_GracefulExit,
BCCMD_Quit,
};
struct BerryCrushGame_Player struct BerryCrushGame_Player
{ {
u16 unk0; u16 berryId;
u16 unk2; u16 unk2;
union union
{ {
@@ -13,40 +53,26 @@ struct BerryCrushGame_Player
u8 unk14[12]; u8 unk14[12];
}; };
struct __attribute__((packed, aligned(2))) BerryCrushGame_4E
{
u16 unk0;
u16 filler2;
u8 unk4_0:1;
u8 unk4_1:1;
s8 unk5;
u16 unk6;
u16 unk8;
u16 unkA;
u16 unkC;
};
struct __attribute__((packed)) BerryCrushGame_40
{
u8 unk0[2];
u16 unk2[6];
struct BerryCrushGame_4E unkE;
};
struct BerryCrushGame_5C struct BerryCrushGame_5C
{ {
u16 unk00; u16 unk00;
u8 unk02_0:1; u8 unk02_0:1;
u8 unk02_1:1; u8 unk02_1:1;
u8 unk02_2:1; u8 pushedAButton:1;
u8 unk02_3:5; u8 unk02_3:5;
u8 unk03; s8 unk03;
u16 unk04; u16 unk04;
u16 unk06; u16 unk06;
u16 unk08; u16 unk08;
u16 unk0A; u16 unk0A;
}; };
struct __attribute__((packed, aligned(2))) BerryCrushGame_4E
{
u16 unk0;
struct BerryCrushGame_5C data;
};
union BerryCrushGame_68 union BerryCrushGame_68
{ {
struct BerryCrushGame_68_x struct BerryCrushGame_68_x
@@ -58,7 +84,9 @@ union BerryCrushGame_68
s16 unk06; s16 unk06;
u16 unk08; u16 unk08;
u16 unk0A; u16 unk0A;
u16 unk0C[2][5]; // 0: Number of A presses
// 1: Neatness
u16 stats[2][5];
u8 filler20[16]; u8 filler20[16];
} unk00; } unk00;
u8 unk30[12]; u8 unk30[12];
@@ -68,12 +96,12 @@ union BerryCrushGame_68
struct BerryCrushGame_68_y struct BerryCrushGame_68_y
{ {
u8 filler00[28]; u8 filler00[28];
struct BerryCrushGame_Player unk1C[5]; struct BerryCrushGame_Player players[5];
u8 fillerBC[20]; u8 fillerBC[20];
} as_five_players; } as_five_players;
}; };
struct BerryCrushGame_138_C struct BerryCrushPlayerSeatCoords
{ {
u8 unk0; u8 unk0;
u8 unk1; u8 unk1;
@@ -86,19 +114,19 @@ struct BerryCrushGame_138_C
struct BerryCrushGame_138 struct BerryCrushGame_138
{ {
u8 unk0; u8 animBerryIdx;
u8 unk1; u8 unk1;
u8 unk2; u8 unk2;
u8 unk3; u8 unk3;
s16 unk4; s16 minutes;
s16 unk6; s16 secondsInt;
s16 unk8; s16 secondsFrac;
const struct BerryCrushGame_138_C *unkC[5]; const struct BerryCrushPlayerSeatCoords * seatCoords[5];
struct Sprite *unk20; struct Sprite *coreSprite;
struct Sprite *unk24[5]; struct Sprite *impactSprites[5];
struct Sprite *unk38[5]; struct Sprite *berrySprites[5];
struct Sprite *unk4C[11]; struct Sprite *sparkleSprites[11];
struct Sprite *unk78[2]; struct Sprite *timerSprites[2];
u8 unk80; u8 unk80;
u8 filler81; u8 filler81;
u8 unk82; u8 unk82;
@@ -107,23 +135,23 @@ struct BerryCrushGame_138
struct BerryCrushGame struct BerryCrushGame
{ {
MainCallback unk0; MainCallback savedCallback;
u32 (*unk4)(struct BerryCrushGame *, u8 *); u32 (*cmdCallback)(struct BerryCrushGame *, u8 *);
u8 unk8; u8 localId;
u8 unk9; u8 playerCount;
u8 unkA; u8 taskId;
u8 unkB; u8 textSpeed;
u8 unkC; u8 cmdState;
u8 unkD; u8 unkD;
u8 unkE; u8 nextCmd;
u8 unkF; u8 afterPalFadeCmd;
u16 unk10; u16 unk10;
u16 unk12; u16 gameState;
u16 unk14; u16 unk14;
u16 unk16; u16 pressingSpeed;
s16 unk18; s16 unk18;
s16 unk1A; s16 unk1A;
int unk1C; int powder;
s32 unk20; s32 unk20;
u8 unk24; u8 unk24;
u8 unk25_0:1; u8 unk25_0:1;
@@ -133,52 +161,52 @@ struct BerryCrushGame
u8 unk25_4:1; u8 unk25_4:1;
u8 unk25_5:3; u8 unk25_5:3;
u16 unk26; u16 unk26;
u16 unk28; u16 timer;
s16 unk2A; s16 depth;
s16 unk2C; s16 vibration;
s16 unk2E; s16 unk2E;
s16 unk30; s16 unk30;
s16 unk32; s16 unk32;
s16 unk34; s16 unk34;
u8 unk36[0xA]; u8 commandParams[10];
struct BerryCrushGame_40 unk40; u16 sendCmd[7];
struct BerryCrushGame_5C unk5C; u16 recvCmd[7];
struct BerryCrushGame_5C localState;
union BerryCrushGame_68 unk68; union BerryCrushGame_68 unk68;
struct BerryCrushGame_138 unk138; struct BerryCrushGame_138 spritesManager;
u8 unk1C0[0x1000]; u8 bg1Buffer[0x1000];
u8 unk11C0[0x1000]; u8 unk11C0[0x1000];
u8 unk21C0[0x1000]; u8 bg2Buffer[0x1000];
u8 unk31C0[0x1000]; u8 bg3Buffer[0x1000];
}; };
#define PLAYER_UNK14(game, i) \ #define BERRYCRUSH_PLAYER_NAME(game, i) \
((u8 *)(game) \ ((u8 *)(game) \
+ offsetof(struct BerryCrushGame, unk68) \ + offsetof(struct BerryCrushGame, unk68) \
+ offsetof(struct BerryCrushGame_68_x, unk30) \ + offsetof(struct BerryCrushGame_68_x, unk30) \
+ sizeof(struct BerryCrushGame_Player) * (i)) + sizeof(struct BerryCrushGame_Player) * (i))
struct BerryCrushGame *sub_814B6F0(void); struct BerryCrushGame *GetBerryCrushGame(void);
void StartBerryCrush(MainCallback callback); void StartBerryCrush(MainCallback callback);
u32 sub_814B6FC(MainCallback callback); u32 ExitBerryCrushWithCallback(MainCallback callback);
void sub_814B8F0(void); void CB2_BerryCrush_GoToBerryPouch(void);
void sub_814B914(void); void BerryCrush_SetVBlankCallback(void);
void sub_814B924(void); void BerryCrush_UnsetVBlankCallback(void);
void sub_814B930(void); void BerryCrush_UpdateSav2Records(void);
void sub_814BABC(struct BerryCrushGame *arg0); void BerryCrush_RunOrScheduleCommand(u16 command, u8 runMode, u8 *params);
void sub_814BB4C(u16, u8, u8 *); void BerryCrush_SetPaletteFadeParams(u8 *params, bool8 communicateAfter, u32 selectedPals, s8 delay, u8 startY, u8 targetY, u16 palette);
void sub_814D564(u8 *, u32, s32, u32, u32, u32, u32);
int sub_814D9CC(struct BerryCrushGame *arg0); int sub_814D9CC(struct BerryCrushGame *arg0);
int sub_814D5C8(void); int BerryCrush_InitBgs(void);
int sub_814D888(void); int BerryCrush_TeardownBgs(void);
void sub_814DA24(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1); void BerryCrush_CreateBerrySprites(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1);
void sub_814DC24(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1); void BerryCrushFreeBerrySpriteGfx(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1);
void sub_814DC5C(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1); void sub_814DC5C(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1);
bool32 sub_814DE50(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1); bool32 sub_814DE50(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1);
bool32 sub_814E644(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1); bool32 sub_814E644(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1);
void sub_814E80C(struct BerryCrushGame *arg0); void sub_814E80C(struct BerryCrushGame *arg0);
void sub_814DA04(struct BerryCrushGame *arg0); void sub_814DA04(struct BerryCrushGame *arg0);
void sub_814EB04(struct BerryCrushGame_138 *arg0); void BerryCrush_HideTimerSprites(struct BerryCrushGame_138 *arg0);
void sub_814DB84(struct Sprite * sprite); void SpriteCB_DropBerryIntoCrusher(struct Sprite * sprite);
void ShowBerryCrushRankings(void); void ShowBerryCrushRankings(void);
#endif //GUARD_BERRY_CRUSH_H #endif //GUARD_BERRY_CRUSH_H
+1 -1
View File
@@ -34,7 +34,7 @@ enum
BG_ATTR_MOSAIC = 5, BG_ATTR_MOSAIC = 5,
BG_ATTR_WRAPAROUND = 6, BG_ATTR_WRAPAROUND = 6,
BG_ATTR_PRIORITY = 7, BG_ATTR_PRIORITY = 7,
BG_ATTR_TEXTORAFFINEMODE = 8, BG_ATTR_MAPSIZE = 8,
BG_ATTR_BGTYPE = 9, BG_ATTR_BGTYPE = 9,
BG_ATTR_BASETILE = 10 BG_ATTR_BASETILE = 10
}; };
+9 -3
View File
@@ -18,14 +18,14 @@
#define GAME_VERSION VERSION_FIRE_RED #define GAME_VERSION VERSION_FIRE_RED
#else // Default version seems to be LeafGreen #else // Default version seems to be LeafGreen
#define GAME_VERSION VERSION_LEAF_GREEN #define GAME_VERSION VERSION_LEAF_GREEN
#endif #endif // GAME_VERSION
// rev1 renamed the source folder for reasons // rev1 renamed the source folder for reasons
#if REVISION == 0 #if REVISION == 0
#define CODE_ROOT "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/" #define CODE_ROOT "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/"
#else #else
#define CODE_ROOT "C:/WORK/POKeFRLG/Src/pm_lgfr_ose/source/" #define CODE_ROOT "C:/WORK/POKeFRLG/Src/pm_lgfr_ose/source/"
#endif #endif // REVISION
#define ABSPATH(x) (CODE_ROOT x) #define ABSPATH(x) (CODE_ROOT x)
@@ -33,6 +33,12 @@
#define UNITS_IMPERIAL #define UNITS_IMPERIAL
#else #else
#define UNITS_METRIC #define UNITS_METRIC
#endif #endif // ENGLISH
// Crashes may occur due to section reordering in the modern build,
// so we force BUGFIX here.
#if MODERN
#define BUGFIX
#endif // MODERN
#endif // GUARD_CONFIG_H #endif // GUARD_CONFIG_H
+25 -1
View File
@@ -6,6 +6,14 @@
// Maximum amount of data we will transfer in one operation // Maximum amount of data we will transfer in one operation
#define MAX_DMA_BLOCK_SIZE 0x1000 #define MAX_DMA_BLOCK_SIZE 0x1000
#define DMA_REQUEST_COPY32 1
#define DMA_REQUEST_FILL32 2
#define DMA_REQUEST_COPY16 3
#define DMA_REQUEST_FILL16 4
#define DMA3_16BIT 0
#define DMA3_32BIT 1
#define Dma3CopyLarge_(src, dest, size, bit) \ #define Dma3CopyLarge_(src, dest, size, bit) \
{ \ { \
const void *_src = src; \ const void *_src = src; \
@@ -48,10 +56,26 @@
#define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16) #define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16)
#define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32) #define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32)
// Cancel pending DMA3 requests
void ClearDma3Requests(void); void ClearDma3Requests(void);
// Handle pending DMA3 requests
void ProcessDma3Requests(void); void ProcessDma3Requests(void);
// Copy size bytes from src to dest.
// mode takes a DMA3_*BIT macro
// Returns the request index
s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode); s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode);
// Fill size bytes at dest with value.
// mode takes a DMA3_*BIT macro
// Returns the request index
s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode); s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode);
s16 CheckForSpaceForDma3Request(s16 index);
// index is the return value from RequestDma3*
// if index = -1, will check if any request is pending
// otherwise, checks if the specified request is pending
// Returns -1 if pending, 0 otherwise
s16 WaitDma3Request(s16 index);
#endif // GUARD_DMA3_H #endif // GUARD_DMA3_H
+1 -1
View File
@@ -13,7 +13,7 @@ enum HiddenItemAttr
u8 GetLeadMonIndex(void); u8 GetLeadMonIndex(void);
s32 CountDigits(s32 number); s32 CountDigits(s32 number);
void TV_PrintIntToStringVar(u8, int); void TV_PrintIntToStringVar(u8 varidx, s32 number);
u16 GetStarterSpecies(void); u16 GetStarterSpecies(void);
void StopPokemonLeagueLightingEffectTask(void); void StopPokemonLeagueLightingEffectTask(void);
void nullsub_60(void); void nullsub_60(void);
+3 -3
View File
@@ -14,11 +14,11 @@
extern struct BackupMapLayout VMap; extern struct BackupMapLayout VMap;
extern const struct MapLayout Route1_Layout; extern const struct MapLayout Route1_Layout;
u32 MapGridGetMetatileIdAt(int, int); u32 MapGridGetMetatileIdAt(s32, s32);
u32 MapGridGetMetatileBehaviorAt(s16, s16); u32 MapGridGetMetatileBehaviorAt(s16, s16);
u8 MapGridGetMetatileLayerTypeAt(s16 x, s16 y); u8 MapGridGetMetatileLayerTypeAt(s16 x, s16 y);
void MapGridSetMetatileIdAt(int, int, u16); void MapGridSetMetatileIdAt(s32, s32, u16);
void MapGridSetMetatileEntryAt(int, int, u16); void MapGridSetMetatileEntryAt(s32, s32, u16);
u8 MapGridGetZCoordAt(s32 x, s32 y); u8 MapGridGetZCoordAt(s32 x, s32 y);
void GetCameraCoords(u16*, u16*); void GetCameraCoords(u16*, u16*);
bool8 MapGridIsImpassableAt(s32, s32); bool8 MapGridIsImpassableAt(s32, s32);
+6
View File
@@ -14,6 +14,12 @@
#define EWRAM_DATA __attribute__((section("ewram_data"))) #define EWRAM_DATA __attribute__((section("ewram_data")))
#endif #endif
#if MODERN
#define NOINLINE __attribute__((noinline))
#else
#define NOINLINE
#endif
#define ALIGNED(n) __attribute__((aligned(n))) #define ALIGNED(n) __attribute__((aligned(n)))
#define SOUND_INFO_PTR (*(struct SoundInfo **)0x3007FF0) #define SOUND_INFO_PTR (*(struct SoundInfo **)0x3007FF0)
+5
View File
@@ -35,6 +35,10 @@ void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopP
// for matching purposes // for matching purposes
#if MODERN
#define AGB_ASSERT_EX(exp, file, line) AGB_ASSERT(exp)
#define AGB_WARNING_EX(exp, file, line) AGB_WARNING(exp)
#else
#ifdef NDEBUG #ifdef NDEBUG
#define AGB_ASSERT_EX(exp, file, line) #define AGB_ASSERT_EX(exp, file, line)
#else #else
@@ -46,5 +50,6 @@ void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopP
#else #else
#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0); #define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0);
#endif #endif
#endif
#endif // GUARD_GBA_ISAGBPRINT_H #endif // GUARD_GBA_ISAGBPRINT_H
+4
View File
@@ -50,6 +50,10 @@
#define min(a, b) ((a) < (b) ? (a) : (b)) #define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) >= (b) ? (a) : (b)) #define max(a, b) ((a) >= (b) ? (a) : (b))
#if MODERN
#define abs(x) (((x) < 0) ? -(x) : (x))
#endif
// There are many quirks in the source code which have overarching behavioral differences from // There are many quirks in the source code which have overarching behavioral differences from
// a number of other files. For example, diploma.c seems to declare rodata before each use while // a number of other files. For example, diploma.c seems to declare rodata before each use while
// other files declare out of order and must be at the beginning. There are also a number of // other files declare out of order and must be at the beginning. There are also a number of
+2 -2
View File
@@ -1,7 +1,7 @@
#ifndef GUARD_ITEM_PC_H #ifndef GUARD_ITEM_PC_H
#define GUARD_ITEM_PC_H #define GUARD_ITEM_PC_H
void ItemPc_Init(u8 a0, MainCallback callback); void ItemPc_Init(u8 kind, MainCallback callback);
void ItemPc_SetInitializedFlag(u8); void ItemPc_SetInitializedFlag(bool8 flag);
#endif //GUARD_ITEM_PC_H #endif //GUARD_ITEM_PC_H
+6 -6
View File
@@ -1,11 +1,11 @@
#ifndef GUARD_MATH_UTIL_H #ifndef GUARD_MATH_UTIL_H
#define GUARD_MATH_UTIL_H #define GUARD_MATH_UTIL_H
s16 sub_80D8B90(s16 y); s16 MathUtil_Inv16(s16 y);
s16 sub_80D8AA0(s16 x, s16 y); s16 MathUtil_Mul16(s16 x, s16 y);
s32 sub_80D8B68(s32 x, s32 y); s32 MathUtil_Div32(s32 x, s32 y);
s32 sub_80D8AE0(s32 x, s32 y); s32 MathUtil_Mul32(s32 x, s32 y);
s16 sub_80D8B40(u8 s, s16 x, s16 y); s16 MathUtil_Div16Shift(u8 s, s16 x, s16 y);
s16 sub_80D8ABC(u8 s, s16 x, s16 y); s16 MathUtil_Mul16Shift(u8 s, s16 x, s16 y);
#endif //GUARD_MATH_UTIL_H #endif //GUARD_MATH_UTIL_H
+1 -1
View File
@@ -21,7 +21,7 @@ bool8 MenuHelpers_LinkSomething(void);
void SetVBlankHBlankCallbacksToNull(void); void SetVBlankHBlankCallbacksToNull(void);
void ResetAllBgsCoordinatesAndBgCntRegs(void); void ResetAllBgsCoordinatesAndBgCntRegs(void);
u8 GetDialogBoxFontId(void); u8 GetDialogBoxFontId(void);
bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1); bool8 AdjustQuantityAccordingToDPadInput(s16 *quantity_p, u16 qmax);
void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 tileNum, u8 paletteNum, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc); void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 tileNum, u8 paletteNum, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc);
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 fontId, u8 left, u8 top, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo); void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 fontId, u8 left, u8 top, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
u8 GetLRKeysState(void); u8 GetLRKeysState(void);
+1 -1
View File
@@ -28,6 +28,6 @@ void TeardownMonMarkingsMenu(void);
bool8 MonMarkingsHandleInput(void); bool8 MonMarkingsHandleInput(void);
struct Sprite * CreateMonMarkingSprite_SelectCombo(u16 tileTag, u16 paletteTag, const u16 *palette); struct Sprite * CreateMonMarkingSprite_SelectCombo(u16 tileTag, u16 paletteTag, const u16 *palette);
struct Sprite * CreateMonMarkingSprite_AllOff(u16 tileTag, u16 paletteTag, const u16 *palette); struct Sprite * CreateMonMarkingSprite_AllOff(u16 tileTag, u16 paletteTag, const u16 *palette);
void sub_80BEBD0(u8 markings, void * dest); void RequestDma3LoadMonMarking(u8 markings, void * dest);
#endif //GUARD_MON_MARKINGS_H #endif //GUARD_MON_MARKINGS_H
+5 -5
View File
@@ -71,8 +71,8 @@ void Overworld_SetObjEventTemplateMovementType(u8, u8);
void SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void SetDynamicWarp(int unused, s8 mapGroup, s8 mapNum, s8 warpId); void SetDynamicWarp(s32 unused, s8 mapGroup, s8 mapNum, s8 warpId);
void SetDynamicWarpWithCoords(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void SetDynamicWarpWithCoords(s32 unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void SetFixedDiveWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void SetFixedDiveWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void SetFixedHoleWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void SetFixedHoleWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void SetEscapeWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void SetEscapeWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
@@ -158,7 +158,7 @@ void ResetGameStats(void);
void Overworld_CreditsMainCB(void); void Overworld_CreditsMainCB(void);
bool32 Overworld_DoScrollSceneForCredits(u8 *, const struct CreditsOverworldCmd *, u8); bool32 Overworld_DoScrollSceneForCredits(u8 *, const struct CreditsOverworldCmd *, u8);
bool32 sub_8058318(void); bool32 IsSendingKeysOverCable(void);
void CB2_ReturnToFieldWithOpenMenu(void); void CB2_ReturnToFieldWithOpenMenu(void);
void CB2_WhiteOut(void); void CB2_WhiteOut(void);
@@ -170,8 +170,8 @@ void SetContinueGameWarpToHealLocation(u8 loc);
void UpdateAmbientCry(s16 *state, u16 *delayCounter); void UpdateAmbientCry(s16 *state, u16 *delayCounter);
void SetWarpDestinationToHealLocation(u8 a0); void SetWarpDestinationToHealLocation(u8 a0);
bool32 sub_80582E0(void); bool32 Overworld_SendKeysToLinkIsRunning(void);
bool32 sub_8058274(void); bool32 Overworld_RecvKeysFromLinkIsRunning(void);
void OverworldWhiteOutGetMoneyLoss(void); void OverworldWhiteOutGetMoneyLoss(void);
u8 GetCurrentMapBattleScene(void); u8 GetCurrentMapBattleScene(void);
void Overworld_ResetStateAfterFly(void); void Overworld_ResetStateAfterFly(void);
+2 -2
View File
@@ -335,9 +335,9 @@ struct PokemonStorageSystemData
/* 0d88 */ bool8 (*monPlaceChangeFunc)(void); /* 0d88 */ bool8 (*monPlaceChangeFunc)(void);
/* 0d8c */ u8 monPlaceChangeState; /* 0d8c */ u8 monPlaceChangeState;
/* 0d8d */ u8 field_D91; /* 0d8d */ u8 field_D91;
/* 0d90 */ struct Sprite *field_D94; /* 0d90 */ struct Sprite *monMarkingSprite;
/* 0d94 */ struct Sprite *field_D98[2]; /* 0d94 */ struct Sprite *field_D98[2];
/* 0d9c */ u16 *field_DA0; /* 0d9c */ u16 *monMarkingSpriteTileStart;
/* 0da0 */ struct PokemonMarkMenu field_DA4; /* 0da0 */ struct PokemonMarkMenu field_DA4;
/* 1e58 */ struct UnkPSSStruct_2002370 field_1E5C; /* 1e58 */ struct UnkPSSStruct_2002370 field_1E5C;
/* 20a0 */ struct Pokemon movingMon; /* 20a0 */ struct Pokemon movingMon;
+1 -1
View File
@@ -114,6 +114,6 @@ bool8 sub_80DA4A0(void);
u8 Save_LoadGameData(u8 saveType); u8 Save_LoadGameData(u8 saveType);
u32 TryCopySpecialSaveSection(u8 sector, u8* dst); u32 TryCopySpecialSaveSection(u8 sector, u8* dst);
u32 TryWriteSpecialSaveSection(u8 sector, u8* src); u32 TryWriteSpecialSaveSection(u8 sector, u8* src);
void sub_80DA634(u8 taskId); void Task_SaveGame_UpdatedLinkRecords(u8 taskId);
#endif // GUARD_SAVE_H #endif // GUARD_SAVE_H
+9 -9
View File
@@ -1149,15 +1149,15 @@ extern const u8 gUnknown_841DF99[];
extern const u8 gUnknown_841DFA0[]; extern const u8 gUnknown_841DFA0[];
// berry_crush // berry_crush
extern const u8 gUnknown_841CE3C[]; extern const u8 gText_BerryCrush_AreYouReady[];
extern const u8 gUnknown_841CE78[]; extern const u8 gText_BerryCrush_WaitForOthersToChooseBerry[];
extern const u8 gUnknown_841CEA8[]; extern const u8 gText_BerryCrush_GainedXUnitsOfPowder[];
extern const u8 gUnknown_841CF14[]; extern const u8 gText_BerryCrush_RecordingGameResults[];
extern const u8 gUnknown_841CF50[]; extern const u8 gText_BerryCrush_WantToPlayAgain[];
extern const u8 gUnknown_841CF70[]; extern const u8 gText_BerryCrush_NoBerries[];
extern const u8 gUnknown_841CFA0[]; extern const u8 gText_BerryCrush_MemberDroppedOut[];
extern const u8 gUnknown_841CFD4[]; extern const u8 gText_BerryCrush_TimeUp[];
extern const u8 gUnknown_841D008[]; extern const u8 gText_BerryCrush_CommunicationStandby[];
extern const u8 gText_1_ClrLtGryShdwBlk_Dynamic0[]; extern const u8 gText_1_ClrLtGryShdwBlk_Dynamic0[];
extern const u8 gText_1_Dynamic0[]; extern const u8 gText_1_Dynamic0[];
extern const u8 gText_SpaceTimes[]; extern const u8 gText_SpaceTimes[];
+1 -1
View File
@@ -33,7 +33,7 @@ void SwitchTaskToFollowupFunc(u8 taskId);
bool8 FuncIsActiveTask(TaskFunc func); bool8 FuncIsActiveTask(TaskFunc func);
u8 FindTaskIdByFunc(TaskFunc func); u8 FindTaskIdByFunc(TaskFunc func);
u8 GetTaskCount(void); u8 GetTaskCount(void);
void SetWordTaskArg(u8 taskId, u8 dataElem, u32 value); void SetWordTaskArg(u8 taskId, u8 dataElem, unsigned long value);
u32 GetWordTaskArg(u8 taskId, u8 dataElem); u32 GetWordTaskArg(u8 taskId, u8 dataElem);
#endif // GUARD_TASK_H #endif // GUARD_TASK_H
+2 -2
View File
@@ -9,8 +9,8 @@ extern const u8 gMiscBlank_Gfx[]; // unused in Emerald
extern const u32 gBitTable[]; extern const u32 gBitTable[];
u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *)); u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *));
void StoreWordInTwoHalfwords(u16 *, u32); void StoreWordInTwoHalfwords(u16 *, unsigned);
void LoadWordFromTwoHalfwords(u16 *, u32 *); void LoadWordFromTwoHalfwords(u16 *, unsigned *);
int CountTrailingZeroBits(u32 value); int CountTrailingZeroBits(u32 value);
u16 CalcCRC16(const u8 *data, u32 length); u16 CalcCRC16(const u8 *data, u32 length);
u16 CalcCRC16WithTable(const u8 *data, u32 length); u16 CalcCRC16WithTable(const u8 *data, u32 length);
+1 -1
View File
@@ -6,7 +6,7 @@
void Task_VsSeeker_0(u8 taskId); void Task_VsSeeker_0(u8 taskId);
void ClearRematchStateByTrainerId(void); void ClearRematchStateByTrainerId(void);
void ClearRematchStateOfLastTalked(void); void ClearRematchStateOfLastTalked(void);
int GetRematchTrainerId(u16 a0); int GetRematchTrainerId(u16 trainerId);
bool8 UpdateVsSeekerStepCounter(void); bool8 UpdateVsSeekerStepCounter(void);
void MapResetTrainerRematches(u16 mapGroup, u16 mapNum); void MapResetTrainerRematches(u16 mapGroup, u16 mapNum);
+8 -2
View File
@@ -54,8 +54,15 @@ u16 AddWindow(const struct WindowTemplate *template);
int AddWindowWithoutTileMap(const struct WindowTemplate *template); int AddWindowWithoutTileMap(const struct WindowTemplate *template);
void RemoveWindow(u8 windowId); void RemoveWindow(u8 windowId);
void FreeAllWindowBuffers(void); void FreeAllWindowBuffers(void);
// Mode parameter for funcs below
#define COPYWIN_MAP 1
#define COPYWIN_GFX 2
#define COPYWIN_BOTH 3
void CopyWindowToVram(u8 windowId, u8 mode); void CopyWindowToVram(u8 windowId, u8 mode);
void CopyWindowRectToVram(u32 windowId, u32 mode, u32 x, u32 y, u32 w, u32 h); void CopyWindowToVram8Bit(u8 windowId, u8 mode);
void PutWindowTilemap(u8 windowId); void PutWindowTilemap(u8 windowId);
void PutWindowRectTilemapOverridePalette(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 palette); void PutWindowRectTilemapOverridePalette(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 palette);
void ClearWindowTilemap(u8 windowId); void ClearWindowTilemap(u8 windowId);
@@ -73,7 +80,6 @@ u16 AddWindow8Bit(const struct WindowTemplate *template);
void FillWindowPixelBuffer8Bit(u8 windowId, u8 fillValue); void FillWindowPixelBuffer8Bit(u8 windowId, u8 fillValue);
void FillWindowPixelRect8Bit(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height); void FillWindowPixelRect8Bit(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height);
void BlitBitmapRectToWindow4BitTo8Bit(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight, u8 paletteNum); void BlitBitmapRectToWindow4BitTo8Bit(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight, u8 paletteNum);
void CopyWindowToVram8Bit(u8 windowId, u8 mode);
extern void *gWindowBgTilemapBuffers[]; extern void *gWindowBgTilemapBuffers[];
extern struct Window gWindows[]; extern struct Window gWindows[];
+92
View File
@@ -0,0 +1,92 @@
gNumMusicPlayers = 4;
gMaxLines = 0;
SECTIONS {
. = 0x2000000;
ewram (NOLOAD) :
ALIGN(4)
{
gHeap = .;
. = 0x1C000;
*(ewram_data);
/* pokemon_summary_screen.o */
. = ALIGN(4);
gUnknown_203B140 = .; . += 0x4;
gUnknown_203B144 = .; . += 0x4;
gUnknown_203B148 = .; . += 0x10;
gUnknown_203B158 = .; . += 0x4;
gUnknown_203B15C = .; . += 0x4;
gUnknown_203B160 = .; . += 0x4;
gUnknown_203B164 = .; . += 0x4;
gUnknown_203B168 = .; . += 0x4;
gLastViewedMonIndex = .; . += 0x1;
gUnknown_203B16D = .; . += 0x1;
gUnknown_203B16E = .; . += 0x2;
gUnknown_203B170 = .; . += 0x4;
. = 0x40000;
}
. = 0x3000000;
iwram (NOLOAD) :
ALIGN(4)
{
/* .bss starts at 0x3000000 */
*(.bss*);
/* .bss.code starts at 0x3001AA8 */
src/m4a.o(.bss.code);
/* COMMON starts at 0x30022A8 */
*(COMMON);
end = .;
. = 0x8000;
}
. = 0x8000000;
.text :
ALIGN(4)
{
asm/crt0.o(.text);
*(.text*);
} =0
script_data :
ALIGN(4)
{
*(script_data);
} =0
.data :
ALIGN(4)
{
*(.data*);
} =0
.rodata :
ALIGN(4)
{
*(.rodata*);
} =0
/* DWARF 2 sections */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
.debug_info 0 : { *(.debug_info) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* Discard everything not specifically mentioned above. */
/DISCARD/ :
{
*(*);
}
}
+5 -5
View File
@@ -2257,8 +2257,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
if (!toBG_2) if (!toBG_2)
{ {
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, 1); RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, DMA3_32BIT);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(28)), 0x1000, 1); RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(28)), 0x1000, DMA3_32BIT);
sub_80752A0(&animBg); sub_80752A0(&animBg);
CpuFill16(toBG_2, animBg.bgTiles, 0x1000); CpuFill16(toBG_2, animBg.bgTiles, 0x1000);
CpuFill16(toBG_2, animBg.bgTilemap, 0x800); CpuFill16(toBG_2, animBg.bgTilemap, 0x800);
@@ -2282,8 +2282,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
} }
else else
{ {
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(12)), 0x2000, 1); RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(12)), 0x2000, DMA3_32BIT);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(30)), 0x1000, 1); RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(30)), 0x1000, DMA3_32BIT);
sub_80752C8(&animBg, 2); sub_80752C8(&animBg, 2);
CpuFill16(0, animBg.bgTiles + 0x1000, 0x1000); CpuFill16(0, animBg.bgTiles + 0x1000, 0x1000);
CpuFill16(0, animBg.bgTilemap + 0x400, 0x800); CpuFill16(0, animBg.bgTilemap + 0x400, 0x800);
@@ -2840,7 +2840,7 @@ s8 BattleAnimAdjustPanning2(s8 pan)
return pan; return pan;
} }
s16 KeepPanInRange(s16 panArg, int oldPan) s16 KeepPanInRange(s16 panArg, s32 oldPan)
{ {
s16 pan = panArg; s16 pan = panArg;
+7 -7
View File
@@ -1532,7 +1532,7 @@ void AnimAirWaveProjectile(struct Sprite *sprite)
{ {
sprite->data[0] = 8; sprite->data[0] = 8;
task->data[5] = 4; task->data[5] = 4;
a = sub_80D8B90(0x1000); a = MathUtil_Inv16(0x1000);
sprite->pos1.x += sprite->pos2.x; sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y; sprite->pos1.y += sprite->pos2.y;
sprite->pos2.y = 0; sprite->pos2.y = 0;
@@ -1551,8 +1551,8 @@ void AnimAirWaveProjectile(struct Sprite *sprite)
sprite->data[1] = 0; sprite->data[1] = 0;
sprite->data[6] = 0; sprite->data[6] = 0;
sprite->data[5] = 0; sprite->data[5] = 0;
sprite->data[3] = sub_80D8AA0(sub_80D8AA0(b, a), sub_80D8B90(0x1C0)); sprite->data[3] = MathUtil_Mul16(MathUtil_Mul16(b, a), MathUtil_Inv16(0x1C0));
sprite->data[4] = sub_80D8AA0(sub_80D8AA0(c, a), sub_80D8B90(0x1C0)); sprite->data[4] = MathUtil_Mul16(MathUtil_Mul16(c, a), MathUtil_Inv16(0x1C0));
sprite->callback = AnimAirWaveProjectile_Step1; sprite->callback = AnimAirWaveProjectile_Step1;
} }
} }
@@ -1643,18 +1643,18 @@ void AnimTask_AirCutterProjectile(u8 taskId)
else else
xDiff = attackerX - targetX; xDiff = attackerX - targetX;
gTasks[taskId].data[5] = sub_80D8AA0(xDiff, sub_80D8B90(gBattleAnimArgs[2] & ~1)); gTasks[taskId].data[5] = MathUtil_Mul16(xDiff, MathUtil_Inv16(gBattleAnimArgs[2] & ~1));
gTasks[taskId].data[6] = sub_80D8AA0(gTasks[taskId].data[5], 0x80); gTasks[taskId].data[6] = MathUtil_Mul16(gTasks[taskId].data[5], 0x80);
gTasks[taskId].data[7] = gBattleAnimArgs[2]; gTasks[taskId].data[7] = gBattleAnimArgs[2];
if (targetY >= attackerY) if (targetY >= attackerY)
{ {
yDiff = targetY - attackerY; yDiff = targetY - attackerY;
gTasks[taskId].data[8] = sub_80D8AA0(yDiff, sub_80D8B90(gTasks[taskId].data[5])) & ~1; gTasks[taskId].data[8] = MathUtil_Mul16(yDiff, MathUtil_Inv16(gTasks[taskId].data[5])) & ~1;
} }
else else
{ {
yDiff = attackerY - targetY; yDiff = attackerY - targetY;
gTasks[taskId].data[8] = sub_80D8AA0(yDiff, sub_80D8B90(gTasks[taskId].data[5])) | 1; gTasks[taskId].data[8] = MathUtil_Mul16(yDiff, MathUtil_Inv16(gTasks[taskId].data[5])) | 1;
} }
gTasks[taskId].data[3] = gBattleAnimArgs[3]; gTasks[taskId].data[3] = gBattleAnimArgs[3];
+1
View File
@@ -4,6 +4,7 @@
#include "task.h" #include "task.h"
#include "trig.h" #include "trig.h"
#undef abs
#define abs(x) ((x) < 0 ? -(x) : (x)) #define abs(x) ((x) < 0 ? -(x) : (x))
static void AnimTask_ShakeMonStep(u8 taskId); static void AnimTask_ShakeMonStep(u8 taskId);
+1 -1
View File
@@ -2027,7 +2027,7 @@ void sub_80F15C8(u8 taskId)
break; break;
case 2: case 2:
spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; spriteId = gBattlerSpriteIds[gBattleAnimAttacker];
RequestDma3Fill(0, (void *)OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * TILE_SIZE_4BPP, 0x800, 1); RequestDma3Fill(0, (void *)OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * TILE_SIZE_4BPP, 0x800, DMA3_32BIT);
ClearBehindSubstituteBit(gBattleAnimAttacker); ClearBehindSubstituteBit(gBattleAnimAttacker);
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
break; break;
+1 -1
View File
@@ -796,7 +796,7 @@ static void sub_802F610(void)
{ {
if (gWirelessCommType == 0) if (gWirelessCommType == 0)
{ {
if (gReceivedRemoteLinkPlayers == 0) if (!gReceivedRemoteLinkPlayers)
{ {
m4aSongNumStop(SE_HINSI); m4aSongNumStop(SE_HINSI);
gMain.inBattle = 0; gMain.inBattle = 0;
+1
View File
@@ -16,6 +16,7 @@
destWidth - w; \ destWidth - w; \
}) })
#undef abs
#define abs(a) ((a) < 0 ? -(a) : (a)) #define abs(a) ((a) < 0 ? -(a) : (a))
#define Q_24_8(n) ((s32)((n) * 256)) #define Q_24_8(n) ((s32)((n) * 256))
+5 -5
View File
@@ -935,7 +935,7 @@ static void CB2_HandleStartBattle(void)
case 1: case 1:
if (gBattleTypeFlags & BATTLE_TYPE_LINK) if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{ {
if (gReceivedRemoteLinkPlayers != 0) if (gReceivedRemoteLinkPlayers)
{ {
if (IsLinkTaskFinished()) if (IsLinkTaskFinished())
{ {
@@ -1107,7 +1107,7 @@ static void CB2_PreInitMultiBattle(void)
switch (gBattleCommunication[MULTIUSE_STATE]) switch (gBattleCommunication[MULTIUSE_STATE])
{ {
case 0: case 0:
if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished()) if (gReceivedRemoteLinkPlayers && IsLinkTaskFinished())
{ {
sub_80108C4(); sub_80108C4();
SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_184, sizeof(gMultiPartnerParty)); SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_184, sizeof(gMultiPartnerParty));
@@ -1153,7 +1153,7 @@ static void CB2_PreInitMultiBattle(void)
SetMainCallback2(CB2_InitBattleInternal); SetMainCallback2(CB2_InitBattleInternal);
} }
} }
else if (gReceivedRemoteLinkPlayers == 0) else if (!gReceivedRemoteLinkPlayers)
{ {
gBattleTypeFlags = *savedBattleTypeFlags; gBattleTypeFlags = *savedBattleTypeFlags;
gMain.savedCallback = *savedCallback; gMain.savedCallback = *savedCallback;
@@ -1190,7 +1190,7 @@ static void CB2_HandleStartMultiBattle(void)
LoadWirelessStatusIndicatorSpriteGfx(); LoadWirelessStatusIndicatorSpriteGfx();
break; break;
case 1: case 1:
if (gReceivedRemoteLinkPlayers != 0) if (gReceivedRemoteLinkPlayers)
{ {
if (IsLinkTaskFinished()) if (IsLinkTaskFinished())
{ {
@@ -3843,7 +3843,7 @@ static void ReturnFromBattleToOverworld(void)
RandomlyGivePartyPokerus(gPlayerParty); RandomlyGivePartyPokerus(gPlayerParty);
PartySpreadPokerus(gPlayerParty); PartySpreadPokerus(gPlayerParty);
} }
if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) || gReceivedRemoteLinkPlayers == 0) if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) || !gReceivedRemoteLinkPlayers)
{ {
gSpecialVar_Result = gBattleOutcome; gSpecialVar_Result = gBattleOutcome;
gMain.inBattle = FALSE; gMain.inBattle = FALSE;
+1 -1
View File
@@ -2453,7 +2453,7 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId) {
if (!(textFlags & 0x80)) if (!(textFlags & 0x80))
{ {
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
} }
} }
+2 -2
View File
@@ -198,7 +198,7 @@ static void ClearWindowCommitAndRemove(u8 windowId)
{ {
FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
ClearWindowTilemap(windowId); ClearWindowTilemap(windowId);
CopyWindowToVram(windowId, 2); CopyWindowToVram(windowId, COPYWIN_GFX);
RemoveWindow(windowId); RemoveWindow(windowId);
} }
@@ -557,7 +557,7 @@ static void PrintBattleRecords(void)
static void CommitWindow(u8 windowId) static void CommitWindow(u8 windowId)
{ {
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
} }
static void LoadFrameGfxOnBg(u8 bg) static void LoadFrameGfxOnBg(u8 bg)
+7 -7
View File
@@ -5764,7 +5764,7 @@ static void atk6C_drawlvlupbox(void)
case 4: case 4:
DrawLevelUpWindow1(); DrawLevelUpWindow1();
PutWindowTilemap(12); PutWindowTilemap(12);
CopyWindowToVram(12, 3); CopyWindowToVram(12, COPYWIN_BOTH);
++gBattleScripting.atk6C_state; ++gBattleScripting.atk6C_state;
break; break;
case 5: case 5:
@@ -5780,7 +5780,7 @@ static void atk6C_drawlvlupbox(void)
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
DrawLevelUpWindow2(); DrawLevelUpWindow2();
CopyWindowToVram(12, 2); CopyWindowToVram(12, COPYWIN_GFX);
++gBattleScripting.atk6C_state; ++gBattleScripting.atk6C_state;
} }
break; break;
@@ -5796,9 +5796,9 @@ static void atk6C_drawlvlupbox(void)
if (!sub_8026648()) if (!sub_8026648())
{ {
ClearWindowTilemap(13); ClearWindowTilemap(13);
CopyWindowToVram(13, 1); CopyWindowToVram(13, COPYWIN_MAP);
ClearWindowTilemap(12); ClearWindowTilemap(12);
CopyWindowToVram(12, 1); CopyWindowToVram(12, COPYWIN_MAP);
SetBgAttribute(2, BG_ATTR_PRIORITY, 2); SetBgAttribute(2, BG_ATTR_PRIORITY, 2);
ShowBg(2); ShowBg(2);
gBattleScripting.atk6C_state = 10; gBattleScripting.atk6C_state = 10;
@@ -5840,7 +5840,7 @@ static void sub_8026480(void)
LoadPalette(gUnknown_82506D0, 0x60, 0x20); LoadPalette(gUnknown_82506D0, 0x60, 0x20);
CopyToWindowPixelBuffer(13, gUnknown_82506F0, 0, 0); CopyToWindowPixelBuffer(13, gUnknown_82506F0, 0, 0);
PutWindowTilemap(13); PutWindowTilemap(13);
CopyWindowToVram(13, 3); CopyWindowToVram(13, COPYWIN_BOTH);
PutMonIconOnLvlUpBox(); PutMonIconOnLvlUpBox();
} }
@@ -5909,8 +5909,8 @@ static void PutLevelAndGenderOnLvlUpBox(void)
} }
printerTemplate.y = 10; printerTemplate.y = 10;
printerTemplate.currentY = 10; printerTemplate.currentY = 10;
AddTextPrinter(&printerTemplate, 0xFF, NULL); AddTextPrinter(&printerTemplate, TEXT_SPEED_FF, NULL);
CopyWindowToVram(13, 2); CopyWindowToVram(13, COPYWIN_GFX);
} }
static bool8 sub_8026648(void) static bool8 sub_8026648(void)
+5 -7
View File
@@ -1109,12 +1109,10 @@ static void SpriteCB_BT_Phase2SlidingPokeballs(struct Sprite *sprite)
if (posX != sprite->data[2]) if (posX != sprite->data[2])
{ {
u32 var;
u16 *ptr; u16 *ptr;
sprite->data[2] = posX; sprite->data[2] = posX;
var = (((GetGpuReg(REG_OFFSET_BG0CNT) >> 8) & 0x1F) << 11); ptr = (u16 *)BG_SCREEN_ADDR((GetGpuReg(REG_OFFSET_BG0CNT) >> 8) & 0x1F);
ptr = (u16 *)(VRAM + var);
SOME_VRAM_STORE(ptr, posY - 2, posX, 0xF001); SOME_VRAM_STORE(ptr, posY - 2, posX, 0xF001);
SOME_VRAM_STORE(ptr, posY - 1, posX, 0xF001); SOME_VRAM_STORE(ptr, posY - 1, posX, 0xF001);
SOME_VRAM_STORE(ptr, posY - 0, posX, 0xF001); SOME_VRAM_STORE(ptr, posY - 0, posX, 0xF001);
@@ -3512,7 +3510,7 @@ static void BT_GetBg0TilesetBase(u16 **tilesetPtr)
u16 charBase; u16 charBase;
charBase = GetGpuReg(REG_OFFSET_BG0CNT) >> 2; charBase = GetGpuReg(REG_OFFSET_BG0CNT) >> 2;
charBase <<= 0xE; charBase <<= 14;
*tilesetPtr = (u16 *)(VRAM + charBase); *tilesetPtr = (u16 *)(VRAM + charBase);
} }
@@ -3522,8 +3520,8 @@ static void BT_GetBg0TilemapAndTilesetBase(u16 **tilemapPtr, u16 **tilesetPtr)
screenBase = (GetGpuReg(REG_OFFSET_BG0CNT) >> 8) & 0x1F; screenBase = (GetGpuReg(REG_OFFSET_BG0CNT) >> 8) & 0x1F;
charBase = GetGpuReg(REG_OFFSET_BG0CNT) >> 2; charBase = GetGpuReg(REG_OFFSET_BG0CNT) >> 2;
screenBase <<= 0xB; screenBase <<= 11;
charBase <<= 0xE; charBase <<= 14;
*tilemapPtr = (u16 *)(VRAM + screenBase); *tilemapPtr = (u16 *)(VRAM + screenBase);
*tilesetPtr = (u16 *)(VRAM + charBase); *tilesetPtr = (u16 *)(VRAM + charBase);
} }
@@ -3546,7 +3544,7 @@ static void BT_GenerateCircle(s16 *buffer, s16 x, s16 y, s16 radius)
s16 i; s16 i;
memset(buffer, 0xA, 320); memset(buffer, 0xA, 320);
// 64 iterations because we only want to cover [0, π/2) discretely. // 64 iterations because we only want to cover [0, π/2) discretely.
for (i = 0; i < 64; ++i) for (i = 0; i < 64; ++i)
{ {
s16 sinResult, cosResult, leftX, topY, bottomY, nextTopY, nextBottomY, winVal; s16 sinResult, cosResult, leftX, topY, bottomY, nextTopY, nextBottomY, winVal;
+1 -1
View File
@@ -867,7 +867,7 @@ const struct Berry gBerries[] = {
}; };
const struct UnkStruct_0858AB24 gUnknown_83DFC9C[] = { const struct BerryCrushStats gBerryCrushStats[] = {
{ 50, 20}, { 50, 20},
{ 50, 20}, { 50, 20},
{ 50, 20}, { 50, 20},
+79 -77
View File
@@ -13,28 +13,29 @@
#include "constants/songs.h" #include "constants/songs.h"
#include "constants/items.h" #include "constants/items.h"
static EWRAM_DATA struct BerryCrushGame *gUnknown_203F3DC = NULL; static EWRAM_DATA struct BerryCrushGame *sBerryCrushGamePtr = NULL;
static void sub_814B860(void); static void BerryCrush_InitPlayerNamesAndTextSpeed(struct BerryCrushGame *game);
static void sub_814BA6C(void); static void CB2_ReturnToBerryCrushGameFromBerryPouch(void);
static void sub_814BA80(void); static void VBlankCB_BerryCrush(void);
static void sub_814BA98(u8 taskId); static void CB2_BerryCrush(void);
static void Task_RunBerryCrushGame(u8 taskId);
struct BerryCrushGame *sub_814B6F0(void) struct BerryCrushGame *GetBerryCrushGame(void)
{ {
return gUnknown_203F3DC; return sBerryCrushGamePtr;
} }
u32 sub_814B6FC(MainCallback callback) u32 ExitBerryCrushWithCallback(MainCallback callback)
{ {
if (!gUnknown_203F3DC) if (sBerryCrushGamePtr == NULL)
return 2; return 2;
if (!callback) if (callback == NULL)
callback = gUnknown_203F3DC->unk0; callback = sBerryCrushGamePtr->savedCallback;
DestroyTask(gUnknown_203F3DC->unkA); DestroyTask(sBerryCrushGamePtr->taskId);
FREE_AND_SET_NULL(gUnknown_203F3DC); FREE_AND_SET_NULL(sBerryCrushGamePtr);
SetMainCallback2(callback); SetMainCallback2(callback);
if (callback == CB2_ReturnToField) if (callback == CB2_ReturnToField)
{ {
@@ -70,8 +71,8 @@ void StartBerryCrush(MainCallback callback)
return; return;
} }
gUnknown_203F3DC = AllocZeroed(sizeof(*gUnknown_203F3DC)); sBerryCrushGamePtr = AllocZeroed(sizeof(*sBerryCrushGamePtr));
if (!gUnknown_203F3DC) if (!sBerryCrushGamePtr)
{ {
SetMainCallback2(callback); SetMainCallback2(callback);
Rfu.linkman_param[0] = 0; Rfu.linkman_param[0] = 0;
@@ -80,109 +81,110 @@ void StartBerryCrush(MainCallback callback)
return; return;
} }
gUnknown_203F3DC->unk0 = callback; sBerryCrushGamePtr->savedCallback = callback;
gUnknown_203F3DC->unk8 = multiplayerId; sBerryCrushGamePtr->localId = multiplayerId;
gUnknown_203F3DC->unk9 = playerCount; sBerryCrushGamePtr->playerCount = playerCount;
sub_814BABC(gUnknown_203F3DC); BerryCrush_InitPlayerNamesAndTextSpeed(sBerryCrushGamePtr);
gUnknown_203F3DC->unk12 = 1; sBerryCrushGamePtr->gameState = 1;
gUnknown_203F3DC->unkE = 1; sBerryCrushGamePtr->nextCmd = BCCMD_BeginNormalPaletteFade;
gUnknown_203F3DC->unkF = 6; sBerryCrushGamePtr->afterPalFadeCmd = BCCMD_SignalReadyToBegin;
sub_814D564(gUnknown_203F3DC->unk36, 1, -1, 0, 16, 0, 0); BerryCrush_SetPaletteFadeParams(sBerryCrushGamePtr->commandParams, TRUE, 0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
sub_814BB4C(4, 1, gUnknown_203F3DC->unk36); BerryCrush_RunOrScheduleCommand(BCCMD_InitGfx, 1, sBerryCrushGamePtr->commandParams);
SetMainCallback2(sub_814BA80); SetMainCallback2(CB2_BerryCrush);
gUnknown_203F3DC->unkA = CreateTask(sub_814BA98, 8); sBerryCrushGamePtr->taskId = CreateTask(Task_RunBerryCrushGame, 8);
} }
static void sub_814B860(void) static void CB2_ReturnToBerryCrushGameFromBerryPouch(void)
{ {
if (gSpecialVar_ItemId < FIRST_BERRY_INDEX || gSpecialVar_ItemId > LAST_BERRY_INDEX + 1) if (gSpecialVar_ItemId < FIRST_BERRY_INDEX || gSpecialVar_ItemId > LAST_BERRY_INDEX + 1)
gSpecialVar_ItemId = ITEM_CHERI_BERRY; gSpecialVar_ItemId = ITEM_CHERI_BERRY;
else else
RemoveBagItem(gSpecialVar_ItemId, 1); RemoveBagItem(gSpecialVar_ItemId, 1);
gUnknown_203F3DC->unk68.as_four_players.others[gUnknown_203F3DC->unk8].unk0 = gSpecialVar_ItemId - FIRST_BERRY_INDEX; sBerryCrushGamePtr->unk68.as_four_players.others[sBerryCrushGamePtr->localId].berryId = gSpecialVar_ItemId - FIRST_BERRY_INDEX;
gUnknown_203F3DC->unkE = 1; sBerryCrushGamePtr->nextCmd = BCCMD_BeginNormalPaletteFade;
gUnknown_203F3DC->unkF = 9; sBerryCrushGamePtr->afterPalFadeCmd = BCCMD_WaitForOthersToPickBerries;
sub_814D564(gUnknown_203F3DC->unk36, 0, -1, 0, 16, 0, 0); BerryCrush_SetPaletteFadeParams(sBerryCrushGamePtr->commandParams, FALSE, 0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
sub_814BB4C(4, 1, gUnknown_203F3DC->unk36); BerryCrush_RunOrScheduleCommand(BCCMD_InitGfx, 1, sBerryCrushGamePtr->commandParams);
gUnknown_203F3DC->unkA = CreateTask(sub_814BA98, 8); sBerryCrushGamePtr->taskId = CreateTask(Task_RunBerryCrushGame, 8);
SetMainCallback2(sub_814BA80); SetMainCallback2(CB2_BerryCrush);
} }
void sub_814B8F0(void) void CB2_BerryCrush_GoToBerryPouch(void)
{ {
DestroyTask(gUnknown_203F3DC->unkA); DestroyTask(sBerryCrushGamePtr->taskId);
InitBerryPouch(BERRYPOUCH_FROMBERRYCRUSH, sub_814B860, FALSE); InitBerryPouch(BERRYPOUCH_FROMBERRYCRUSH, CB2_ReturnToBerryCrushGameFromBerryPouch, FALSE);
} }
void sub_814B914(void) void BerryCrush_SetVBlankCallback(void)
{ {
SetVBlankCallback(sub_814BA6C); SetVBlankCallback(VBlankCB_BerryCrush);
} }
void sub_814B924(void) void BerryCrush_UnsetVBlankCallback(void)
{ {
SetVBlankCallback(NULL); SetVBlankCallback(NULL);
} }
void sub_814B930(void) void BerryCrush_UpdateSav2Records(void)
{ {
u32 var0, var1; u32 var0, var1;
var0 = gUnknown_203F3DC->unk68.as_four_players.unk00.unk04; // unk0A / (unk04 / 60)
var0 = sBerryCrushGamePtr->unk68.as_four_players.unk00.unk04;
var0 <<= 8; var0 <<= 8;
var0 = sub_80D8B68(var0, 60 << 8); var0 = MathUtil_Div32(var0, 60 << 8);
var1 = gUnknown_203F3DC->unk68.as_four_players.unk00.unk0A; var1 = sBerryCrushGamePtr->unk68.as_four_players.unk00.unk0A;
var1 <<= 8; var1 <<= 8;
var1 = sub_80D8B68(var1, var0) & 0xFFFF; var1 = MathUtil_Div32(var1, var0) & 0xFFFF;
gUnknown_203F3DC->unk16 = var1; sBerryCrushGamePtr->pressingSpeed = var1;
switch (gUnknown_203F3DC->unk9) switch (sBerryCrushGamePtr->playerCount)
{ {
case 2: case 2:
if (gUnknown_203F3DC->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[0]) if (sBerryCrushGamePtr->pressingSpeed > gSaveBlock2Ptr->berryCrush.berryCrushResults[0])
{ {
gUnknown_203F3DC->unk25_1 = 1; sBerryCrushGamePtr->unk25_1 = 1;
gSaveBlock2Ptr->berryCrush.berryCrushResults[0] = gUnknown_203F3DC->unk16; gSaveBlock2Ptr->berryCrush.berryCrushResults[0] = sBerryCrushGamePtr->pressingSpeed;
} }
break; break;
case 3: case 3:
if (gUnknown_203F3DC->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[1]) if (sBerryCrushGamePtr->pressingSpeed > gSaveBlock2Ptr->berryCrush.berryCrushResults[1])
{ {
gUnknown_203F3DC->unk25_1 = 1; sBerryCrushGamePtr->unk25_1 = 1;
gSaveBlock2Ptr->berryCrush.berryCrushResults[1] = gUnknown_203F3DC->unk16; gSaveBlock2Ptr->berryCrush.berryCrushResults[1] = sBerryCrushGamePtr->pressingSpeed;
} }
break; break;
case 4: case 4:
if (gUnknown_203F3DC->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[2]) if (sBerryCrushGamePtr->pressingSpeed > gSaveBlock2Ptr->berryCrush.berryCrushResults[2])
{ {
gUnknown_203F3DC->unk25_1 = 1; sBerryCrushGamePtr->unk25_1 = 1;
gSaveBlock2Ptr->berryCrush.berryCrushResults[2] = gUnknown_203F3DC->unk16; gSaveBlock2Ptr->berryCrush.berryCrushResults[2] = sBerryCrushGamePtr->pressingSpeed;
} }
break; break;
case 5: case 5:
if (gUnknown_203F3DC->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[3]) if (sBerryCrushGamePtr->pressingSpeed > gSaveBlock2Ptr->berryCrush.berryCrushResults[3])
{ {
gUnknown_203F3DC->unk25_1 = 1; sBerryCrushGamePtr->unk25_1 = 1;
gSaveBlock2Ptr->berryCrush.berryCrushResults[3] = gUnknown_203F3DC->unk16; gSaveBlock2Ptr->berryCrush.berryCrushResults[3] = sBerryCrushGamePtr->pressingSpeed;
} }
break; break;
} }
gUnknown_203F3DC->unk1C = gUnknown_203F3DC->unk68.as_four_players.unk00.unk00; sBerryCrushGamePtr->powder = sBerryCrushGamePtr->unk68.as_four_players.unk00.unk00;
if (GiveBerryPowder(gUnknown_203F3DC->unk1C)) if (GiveBerryPowder(sBerryCrushGamePtr->powder))
return; return;
gUnknown_203F3DC->unk25_0 = 1; sBerryCrushGamePtr->unk25_0 = 1;
} }
static void sub_814BA6C(void) static void VBlankCB_BerryCrush(void)
{ {
TransferPlttBuffer(); TransferPlttBuffer();
LoadOam(); LoadOam();
ProcessSpriteCopyRequests(); ProcessSpriteCopyRequests();
} }
static void sub_814BA80(void) static void CB2_BerryCrush(void)
{ {
RunTasks(); RunTasks();
RunTextPrinters(); RunTextPrinters();
@@ -190,39 +192,39 @@ static void sub_814BA80(void)
BuildOamBuffer(); BuildOamBuffer();
} }
static void sub_814BA98(u8 taskId) static void Task_RunBerryCrushGame(u8 taskId)
{ {
if (gUnknown_203F3DC->unk4) if (sBerryCrushGamePtr->cmdCallback != NULL)
gUnknown_203F3DC->unk4(gUnknown_203F3DC, gUnknown_203F3DC->unk36); sBerryCrushGamePtr->cmdCallback(sBerryCrushGamePtr, sBerryCrushGamePtr->commandParams);
sub_814D9CC(gUnknown_203F3DC); sub_814D9CC(sBerryCrushGamePtr);
} }
void sub_814BABC(struct BerryCrushGame *arg0) void BerryCrush_InitPlayerNamesAndTextSpeed(struct BerryCrushGame *game)
{ {
u8 i; u8 i;
for (i = 0; i < arg0->unk9; i++) for (i = 0; i < game->playerCount; i++)
{ {
StringCopy(PLAYER_UNK14(arg0, i), gLinkPlayers[i].name); StringCopy(BERRYCRUSH_PLAYER_NAME(game, i), gLinkPlayers[i].name);
arg0->unk68.as_five_players.unk1C[i].unk14[PLAYER_NAME_LENGTH] = EOS; game->unk68.as_five_players.players[i].unk14[PLAYER_NAME_LENGTH] = EOS;
} }
for (; i < 5; i++) for (; i < 5; i++)
{ {
memset(PLAYER_UNK14(arg0, i), 1, PLAYER_NAME_LENGTH); memset(BERRYCRUSH_PLAYER_NAME(game, i), 1, PLAYER_NAME_LENGTH);
arg0->unk68.as_five_players.unk1C[i].unk14[PLAYER_NAME_LENGTH] = EOS; game->unk68.as_five_players.players[i].unk14[PLAYER_NAME_LENGTH] = EOS;
} }
switch (gSaveBlock2Ptr->optionsTextSpeed) switch (gSaveBlock2Ptr->optionsTextSpeed)
{ {
case OPTIONS_TEXT_SPEED_SLOW: case OPTIONS_TEXT_SPEED_SLOW:
arg0->unkB = 8; game->textSpeed = 8;
break; break;
case OPTIONS_TEXT_SPEED_MID: case OPTIONS_TEXT_SPEED_MID:
arg0->unkB = 4; game->textSpeed = 4;
break; break;
case OPTIONS_TEXT_SPEED_FAST: case OPTIONS_TEXT_SPEED_FAST:
arg0->unkB = 1; game->textSpeed = 1;
break; break;
} }
} }
+678 -717
View File
File diff suppressed because it is too large Load Diff
+379 -375
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -744,7 +744,7 @@ static void BerryPouchSetArrowCursorAt(u8 y, u8 colorIdx)
width = GetMenuCursorDimensionByFont(2, 0); width = GetMenuCursorDimensionByFont(2, 0);
height = GetMenuCursorDimensionByFont(2, 1); height = GetMenuCursorDimensionByFont(2, 1);
FillWindowPixelRect(0, 0, 1, y, width, height); FillWindowPixelRect(0, 0, 1, y, width, height);
CopyWindowToVram(0, 2); CopyWindowToVram(0, COPYWIN_GFX);
} }
else else
{ {
+4 -4
View File
@@ -180,7 +180,7 @@ u8 LoadBgVram(u8 bg, const void *src, u16 size, u16 destOffset, u8 mode)
offset = destOffset + offset; offset = destOffset + offset;
cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, 0); cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, DMA3_16BIT);
if (cursor == -1) if (cursor == -1)
{ {
@@ -472,7 +472,7 @@ u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset)
if (IsInvalidBg32(bg) == FALSE) if (IsInvalidBg32(bg) == FALSE)
{ {
paletteOffset = (sGpuBgConfigs2[bg].basePalette * 0x20) + (destOffset * 2); paletteOffset = (sGpuBgConfigs2[bg].basePalette * 0x20) + (destOffset * 2);
cursor = RequestDma3Copy(src, (void*)(paletteOffset + BG_PLTT), size, 0); cursor = RequestDma3Copy(src, (void*)(paletteOffset + BG_PLTT), size, DMA3_16BIT);
if (cursor == -1) if (cursor == -1)
{ {
@@ -500,7 +500,7 @@ bool8 IsDma3ManagerBusyWithBgCopy(void)
if ((sDmaBusyBitfield[div] & (1 << mod))) if ((sDmaBusyBitfield[div] & (1 << mod)))
{ {
s8 reqSpace = CheckForSpaceForDma3Request(i); s8 reqSpace = WaitDma3Request(i);
if (reqSpace == -1) if (reqSpace == -1)
return TRUE; return TRUE;
sDmaBusyBitfield[div] &= ~(1 << mod); sDmaBusyBitfield[div] &= ~(1 << mod);
@@ -567,7 +567,7 @@ u16 GetBgAttribute(u8 bg, u8 attributeId)
return GetBgControlAttribute(bg, BG_CTRL_ATTR_MOSAIC); return GetBgControlAttribute(bg, BG_CTRL_ATTR_MOSAIC);
case BG_ATTR_WRAPAROUND: case BG_ATTR_WRAPAROUND:
return GetBgControlAttribute(bg, BG_CTRL_ATTR_WRAPAROUND); return GetBgControlAttribute(bg, BG_CTRL_ATTR_WRAPAROUND);
case BG_ATTR_TEXTORAFFINEMODE: case BG_ATTR_MAPSIZE:
switch (GetBgType(bg)) switch (GetBgType(bg))
{ {
case 0: case 0:
+1 -1
View File
@@ -175,7 +175,7 @@ u16 Font6Func(struct TextPrinter *textPrinter)
ScrollWindow(textPrinter->printerTemplate.windowId, 0, gUnknown_846FB08[gSaveBlock2Ptr->optionsTextSpeed], PIXEL_FILL(textPrinter->printerTemplate.bgColor)); ScrollWindow(textPrinter->printerTemplate.windowId, 0, gUnknown_846FB08[gSaveBlock2Ptr->optionsTextSpeed], PIXEL_FILL(textPrinter->printerTemplate.bgColor));
textPrinter->scrollDistance -= gUnknown_846FB08[gSaveBlock2Ptr->optionsTextSpeed]; textPrinter->scrollDistance -= gUnknown_846FB08[gSaveBlock2Ptr->optionsTextSpeed];
} }
CopyWindowToVram(textPrinter->printerTemplate.windowId, 2); CopyWindowToVram(textPrinter->printerTemplate.windowId, COPYWIN_GFX);
} }
else else
{ {
+2 -2
View File
@@ -80,13 +80,13 @@ static void PrintNewCountOnLinkPlayerCountDisplayWindow(u16 windowId, s32 num)
SetStdWindowBorderStyle(windowId, FALSE); SetStdWindowBorderStyle(windowId, FALSE);
StringExpandPlaceholders(gStringVar4, gUnknown_841DF82); StringExpandPlaceholders(gStringVar4, gUnknown_841DF82);
AddTextPrinterParameterized(windowId, 2, gStringVar4, 0, 0, TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(windowId, 2, gStringVar4, 0, 0, TEXT_SPEED_FF, NULL);
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
} }
static void DestroyLinkPlayerCountDisplayWindow(u16 windowId) static void DestroyLinkPlayerCountDisplayWindow(u16 windowId)
{ {
ClearStdWindowAndFrame(windowId, FALSE); ClearStdWindowAndFrame(windowId, FALSE);
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
} }
static void UpdateLinkPlayerCountDisplay(u8 taskId, u8 num) static void UpdateLinkPlayerCountDisplay(u8 taskId, u8 num)
+2 -2
View File
@@ -107,7 +107,7 @@ static void Task_DrawClearSaveDataScreen(u8 taskId)
case 4: case 4:
DrawStdFrameWithCustomTileAndPalette(1, TRUE, 0x001, 0xF); DrawStdFrameWithCustomTileAndPalette(1, TRUE, 0x001, 0xF);
AddTextPrinterParameterized4(1, 2, 0, 3, 1, 1, sTextColor, 0, gUnknown_841B69E); AddTextPrinterParameterized4(1, 2, 0, 3, 1, 1, sTextColor, 0, gUnknown_841B69E);
CopyWindowToVram(1, 2); CopyWindowToVram(1, COPYWIN_GFX);
break; break;
case 5: case 5:
CreateYesNoMenu(&sWindowTemplates[0], 2, 0, 2, 0x001, 0xF, 1); CreateYesNoMenu(&sWindowTemplates[0], 2, 0, 2, 0x001, 0xF, 1);
@@ -139,7 +139,7 @@ static void Task_HandleYesNoMenu(u8 taskId)
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
FillWindowPixelBuffer(1, PIXEL_FILL(1)); FillWindowPixelBuffer(1, PIXEL_FILL(1));
AddTextPrinterParameterized4(1, 2, 0, 3, 1, 1, sTextColor, 0, gUnknown_841B6B9); AddTextPrinterParameterized4(1, 2, 0, 3, 1, 1, sTextColor, 0, gUnknown_841B6B9);
CopyWindowToVram(1, 3); CopyWindowToVram(1, COPYWIN_BOTH);
ClearSaveData(); ClearSaveData();
break; break;
case MENU_NOTHING_CHOSEN: case MENU_NOTHING_CHOSEN:
+5 -5
View File
@@ -761,7 +761,7 @@ static void CreateCreditsWindow(void)
sCreditsMgr->windowId = AddWindow(&sCreditsWindowTemplate); sCreditsMgr->windowId = AddWindow(&sCreditsWindowTemplate);
FillWindowPixelBuffer(sCreditsMgr->windowId, PIXEL_FILL(0)); FillWindowPixelBuffer(sCreditsMgr->windowId, PIXEL_FILL(0));
PutWindowTilemap(sCreditsMgr->windowId); PutWindowTilemap(sCreditsMgr->windowId);
CopyWindowToVram(sCreditsMgr->windowId, 3); CopyWindowToVram(sCreditsMgr->windowId, COPYWIN_BOTH);
sCreditsMgr->windowIsActive = TRUE; sCreditsMgr->windowIsActive = TRUE;
} }
@@ -931,7 +931,7 @@ static s32 RollCredits(void)
sCreditsMgr->mainseqno = CREDITSSCENE_PRINT_DELAY; sCreditsMgr->mainseqno = CREDITSSCENE_PRINT_DELAY;
return sCreditsMgr->canSpeedThrough; return sCreditsMgr->canSpeedThrough;
case CREDITSSCENE_PRINT_DELAY: case CREDITSSCENE_PRINT_DELAY:
CopyWindowToVram(sCreditsMgr->windowId, 2); CopyWindowToVram(sCreditsMgr->windowId, COPYWIN_GFX);
sCreditsMgr->timer = sCreditsScript[sCreditsMgr->scrcmdidx].duration; sCreditsMgr->timer = sCreditsScript[sCreditsMgr->scrcmdidx].duration;
sCreditsMgr->scrcmdidx++; sCreditsMgr->scrcmdidx++;
BeginNormalPaletteFade(0x00008000, 0, 16, 0, RGB_BLACK); BeginNormalPaletteFade(0x00008000, 0, 16, 0, RGB_BLACK);
@@ -1781,9 +1781,9 @@ static void LoadCreditsMonPic(u8 whichMon)
CopyToWindowPixelBuffer(2, (const void *)sWindow2Map_Pikachu, 0, 0); CopyToWindowPixelBuffer(2, (const void *)sWindow2Map_Pikachu, 0, 0);
break; break;
} }
CopyWindowToVram(0, 2); CopyWindowToVram(0, COPYWIN_GFX);
CopyWindowToVram(1, 2); CopyWindowToVram(1, COPYWIN_GFX);
CopyWindowToVram(2, 2); CopyWindowToVram(2, COPYWIN_GFX);
} }
static u16 GetCreditsMonSpecies(u8 whichMon) static u16 GetCreditsMonSpecies(u8 whichMon)
+3 -3
View File
@@ -70,7 +70,7 @@ static void CreateRandomEggShardSprite(void);
static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex); static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex);
// IWRAM bss // IWRAM bss
static IWRAM_DATA struct EggHatchData *sEggHatchData; static struct EggHatchData *sEggHatchData;
// RAM buffers used to assist with BuildEggMoveset() // RAM buffers used to assist with BuildEggMoveset()
EWRAM_DATA static u16 sHatchedEggLevelUpMoves[EGG_LVL_UP_MOVES_ARRAY_COUNT] = {0}; EWRAM_DATA static u16 sHatchedEggLevelUpMoves[EGG_LVL_UP_MOVES_ARRAY_COUNT] = {0};
@@ -1540,7 +1540,7 @@ void ShowDaycareLevelMenu(void)
menuTemplate.windowId = windowId; menuTemplate.windowId = windowId;
listMenuTaskId = ListMenuInit(&menuTemplate, 0, 0); listMenuTaskId = ListMenuInit(&menuTemplate, 0, 0);
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
daycareMenuTaskId = CreateTask(Task_HandleDaycareLevelMenuInput, 3); daycareMenuTaskId = CreateTask(Task_HandleDaycareLevelMenuInput, 3);
gTasks[daycareMenuTaskId].tMenuListTaskId = listMenuTaskId; gTasks[daycareMenuTaskId].tMenuListTaskId = listMenuTaskId;
@@ -1935,7 +1935,7 @@ static void CB2_EggHatch_1(void)
PlayFanfare(MUS_FANFA5); PlayFanfare(MUS_FANFA5);
sEggHatchData->CB2_state++; sEggHatchData->CB2_state++;
PutWindowTilemap(sEggHatchData->windowId); PutWindowTilemap(sEggHatchData->windowId);
CopyWindowToVram(sEggHatchData->windowId, 3); CopyWindowToVram(sEggHatchData->windowId, COPYWIN_BOTH);
break; break;
case 6: case 6:
if (IsFanfareTaskInactive()) if (IsFanfareTaskInactive())
+9 -14
View File
@@ -3,12 +3,7 @@
#define MAX_DMA_REQUESTS 128 #define MAX_DMA_REQUESTS 128
#define DMA_REQUEST_COPY32 1 static struct {
#define DMA_REQUEST_FILL32 2
#define DMA_REQUEST_COPY16 3
#define DMA_REQUEST_FILL16 4
static /*IWRAM_DATA*/ struct {
/* 0x00 */ const u8 *src; /* 0x00 */ const u8 *src;
/* 0x04 */ u8 *dest; /* 0x04 */ u8 *dest;
/* 0x08 */ u16 size; /* 0x08 */ u16 size;
@@ -26,7 +21,7 @@ void ClearDma3Requests(void)
gDma3ManagerLocked = TRUE; gDma3ManagerLocked = TRUE;
gDma3RequestCursor = 0; gDma3RequestCursor = 0;
for(i = 0; i < (u8)ARRAY_COUNT(gDma3Requests); i++) for(i = 0; i < (u8)NELEMS(gDma3Requests); i++)
{ {
gDma3Requests[i].size = 0; gDma3Requests[i].size = 0;
gDma3Requests[i].src = 0; gDma3Requests[i].src = 0;
@@ -108,10 +103,10 @@ s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode)
gDma3Requests[cursor].dest = dest; gDma3Requests[cursor].dest = dest;
gDma3Requests[cursor].size = size; gDma3Requests[cursor].size = size;
if(mode == 1) if(mode == DMA3_32BIT)
gDma3Requests[cursor].mode = mode; gDma3Requests[cursor].mode = DMA_REQUEST_COPY32;
else else
gDma3Requests[cursor].mode = 3; gDma3Requests[cursor].mode = DMA_REQUEST_COPY16;
gDma3ManagerLocked = FALSE; gDma3ManagerLocked = FALSE;
return (s16)cursor; return (s16)cursor;
@@ -146,10 +141,10 @@ s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode)
gDma3Requests[cursor].mode = mode; gDma3Requests[cursor].mode = mode;
gDma3Requests[cursor].value = value; gDma3Requests[cursor].value = value;
if(mode == 1) if(mode == DMA3_32BIT)
gDma3Requests[cursor].mode = 2; gDma3Requests[cursor].mode = DMA_REQUEST_FILL32;
else else
gDma3Requests[cursor].mode = 4; gDma3Requests[cursor].mode = DMA_REQUEST_FILL16;
gDma3ManagerLocked = FALSE; gDma3ManagerLocked = FALSE;
return (s16)cursor; return (s16)cursor;
@@ -167,7 +162,7 @@ s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode)
return -1; return -1;
} }
s16 CheckForSpaceForDma3Request(s16 index) s16 WaitDma3Request(s16 index)
{ {
int current = 0; int current = 0;
+2 -2
View File
@@ -2342,7 +2342,7 @@ static void Task_ShowDodrioBerryPickingRecords(u8 taskId)
case 0: case 0:
data[1] = AddWindow(&sUnknown_84755E0); data[1] = AddWindow(&sUnknown_84755E0);
sub_81538D0(data[1]); sub_81538D0(data[1]);
CopyWindowToVram(data[1], 3); CopyWindowToVram(data[1], COPYWIN_BOTH);
data[0]++; data[0]++;
break; break;
case 1: case 1:
@@ -2353,7 +2353,7 @@ static void Task_ShowDodrioBerryPickingRecords(u8 taskId)
if (JOY_NEW(A_BUTTON | B_BUTTON)) if (JOY_NEW(A_BUTTON | B_BUTTON))
{ {
rbox_fill_rectangle(data[1]); rbox_fill_rectangle(data[1]);
CopyWindowToVram(data[1], 1); CopyWindowToVram(data[1], COPYWIN_MAP);
data[0]++; data[0]++;
} }
break; break;
+15 -15
View File
@@ -1055,7 +1055,7 @@ static void sub_8154B34(void)
colorsId = 2; colorsId = 2;
name = sub_81533C4(id); name = sub_81533C4(id);
AddTextPrinterParameterized3(gUnknown_203F440->unk3008[i], 0, left, 1, sTextColorTable[colorsId], -1, name); AddTextPrinterParameterized3(gUnknown_203F440->unk3008[i], 0, left, 1, sTextColorTable[colorsId], -1, name);
CopyWindowToVram(gUnknown_203F440->unk3008[i], 2); CopyWindowToVram(gUnknown_203F440->unk3008[i], COPYWIN_GFX);
window.baseBlock += 0xE; window.baseBlock += 0xE;
sub_8154868(&window); sub_8154868(&window);
} }
@@ -1199,8 +1199,8 @@ static void sub_8154F80(void)
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 0, sp0C, sUnknown_8478EA8[j] - width, sUnknown_8478EB0[i], -1, NULL); AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 0, sp0C, sUnknown_8478EA8[j] - width, sUnknown_8478EB0[i], -1, NULL);
} }
} }
CopyWindowToVram(gUnknown_203F440->unk3008[0], 2); CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX);
CopyWindowToVram(gUnknown_203F440->unk3008[1], 2); CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_GFX);
gUnknown_203F440->state++; gUnknown_203F440->state++;
break; break;
case 3: case 3:
@@ -1232,8 +1232,8 @@ static void sub_8154F80(void)
break; break;
case 6: case 6:
sub_8154D9C(playersCount); sub_8154D9C(playersCount);
CopyWindowToVram(gUnknown_203F440->unk3008[0], 2); CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX);
CopyWindowToVram(gUnknown_203F440->unk3008[1], 2); CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_GFX);
gUnknown_203F440->state++; gUnknown_203F440->state++;
break; break;
case 7: case 7:
@@ -1291,8 +1291,8 @@ static void sub_8154F80(void)
DynamicPlaceholderTextUtil_ExpandPlaceholders(sp0C, gText_FilledStorageSpace); DynamicPlaceholderTextUtil_ExpandPlaceholders(sp0C, gText_FilledStorageSpace);
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 0, sp0C, 8, 40, -1, NULL); AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 0, sp0C, 8, 40, -1, NULL);
} }
CopyWindowToVram(gUnknown_203F440->unk3008[0], 2); CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX);
CopyWindowToVram(gUnknown_203F440->unk3008[1], 2); CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_GFX);
gUnknown_203F440->state++; gUnknown_203F440->state++;
break; break;
case 10: case 10:
@@ -1349,8 +1349,8 @@ static void sub_81556E0(void)
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_Yes, 8, 2, -1, NULL); AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_Yes, 8, 2, -1, NULL);
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_No, 8, 16, -1, NULL); AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_No, 8, 16, -1, NULL);
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_SelectorArrow2, 0, 2, -1, NULL); AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_SelectorArrow2, 0, 2, -1, NULL);
CopyWindowToVram(gUnknown_203F440->unk3008[0], 2); CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX);
CopyWindowToVram(gUnknown_203F440->unk3008[1], 2); CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_GFX);
gUnknown_203F440->state++; gUnknown_203F440->state++;
break; break;
case 2: case 2:
@@ -1370,7 +1370,7 @@ static void sub_81556E0(void)
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_Yes, 8, 2, -1, NULL); AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_Yes, 8, 2, -1, NULL);
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_No, 8, 16, -1, NULL); AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_No, 8, 16, -1, NULL);
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_SelectorArrow2, 0, y == 1 ? 2 : 16, -1, NULL); AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_SelectorArrow2, 0, y == 1 ? 2 : 16, -1, NULL);
CopyWindowToVram(gUnknown_203F440->unk3008[1], 3); CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_BOTH);
// Increment state only if A or B button have been pressed. // Increment state only if A or B button have been pressed.
if (JOY_NEW(A_BUTTON)) if (JOY_NEW(A_BUTTON))
{ {
@@ -1425,18 +1425,18 @@ static void sub_8155A78(void)
gUnknown_203F440->state++; gUnknown_203F440->state++;
break; break;
case 1: case 1:
CopyWindowToVram(0, 3); CopyWindowToVram(0, COPYWIN_BOTH);
gUnknown_203F440->state++; gUnknown_203F440->state++;
break; break;
case 2: case 2:
if (!IsDma3ManagerBusyWithBgCopy()) if (!IsDma3ManagerBusyWithBgCopy())
{ {
CreateTask(sub_80DA634, 0); CreateTask(Task_SaveGame_UpdatedLinkRecords, 0);
gUnknown_203F440->state++; gUnknown_203F440->state++;
} }
break; break;
case 3: case 3:
if (!FuncIsActiveTask(sub_80DA634)) if (!FuncIsActiveTask(Task_SaveGame_UpdatedLinkRecords))
gUnknown_203F440->state++; gUnknown_203F440->state++;
break; break;
default: default:
@@ -1460,7 +1460,7 @@ static void sub_8155B4C(void)
case 1: case 1:
FillWindowPixelBuffer(gUnknown_203F440->unk3008[0], PIXEL_FILL(1)); FillWindowPixelBuffer(gUnknown_203F440->unk3008[0], PIXEL_FILL(1));
AddTextPrinterParameterized(gUnknown_203F440->unk3008[0], 2, gText_CommunicationStandby3, 0, 6, -1, NULL); AddTextPrinterParameterized(gUnknown_203F440->unk3008[0], 2, gText_CommunicationStandby3, 0, 6, -1, NULL);
CopyWindowToVram(gUnknown_203F440->unk3008[0], 2); CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX);
gUnknown_203F440->state++; gUnknown_203F440->state++;
break; break;
case 2: case 2:
@@ -1500,7 +1500,7 @@ static void sub_8155C80(void)
case 1: case 1:
FillWindowPixelBuffer(gUnknown_203F440->unk3008[0], PIXEL_FILL(1)); FillWindowPixelBuffer(gUnknown_203F440->unk3008[0], PIXEL_FILL(1));
AddTextPrinterParameterized(gUnknown_203F440->unk3008[0], 2, gText_SomeoneDroppedOut, 0, 6, TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(gUnknown_203F440->unk3008[0], 2, gText_SomeoneDroppedOut, 0, 6, TEXT_SPEED_FF, NULL);
CopyWindowToVram(gUnknown_203F440->unk3008[0], 2); CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX);
gUnknown_203F440->state++; gUnknown_203F440->state++;
break; break;
case 2: case 2:
+6 -6
View File
@@ -1323,7 +1323,7 @@ static void PrintTitleText(void)
FillWindowPixelBuffer(0, PIXEL_FILL(0)); FillWindowPixelBuffer(0, PIXEL_FILL(0));
EC_AddTextPrinterParameterized2(0, 1, titleText, xOffset, 0, TEXT_SPEED_FF, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY); EC_AddTextPrinterParameterized2(0, 1, titleText, xOffset, 0, TEXT_SPEED_FF, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
PutWindowTilemap(0); PutWindowTilemap(0);
CopyWindowToVram(0, 3); CopyWindowToVram(0, COPYWIN_BOTH);
} }
static void EC_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16)) static void EC_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16))
@@ -1379,7 +1379,7 @@ static void PrintECInterfaceTextById(u8 direction)
if (text2) if (text2)
EC_AddTextPrinterParameterized(1, 1, text2, 0, 16, TEXT_SPEED_FF, NULL); EC_AddTextPrinterParameterized(1, 1, text2, 0, 16, TEXT_SPEED_FF, NULL);
CopyWindowToVram(1, 3); CopyWindowToVram(1, COPYWIN_BOTH);
} }
static void EC_CreateYesNoMenuWithInitialCursorPos(u8 initialCursorPos) static void EC_CreateYesNoMenuWithInitialCursorPos(u8 initialCursorPos)
@@ -1454,7 +1454,7 @@ static void PrintECFields(void)
EC_AddTextPrinterParameterized(sEasyChatGraphicsResources->windowId, 1, sEasyChatGraphicsResources->ecPrintBuffer, 0, i * 16, TEXT_SPEED_FF, NULL); EC_AddTextPrinterParameterized(sEasyChatGraphicsResources->windowId, 1, sEasyChatGraphicsResources->ecPrintBuffer, 0, i * 16, TEXT_SPEED_FF, NULL);
} }
CopyWindowToVram(sEasyChatGraphicsResources->windowId, 3); CopyWindowToVram(sEasyChatGraphicsResources->windowId, COPYWIN_BOTH);
} }
static void DrawECFrameInTilemapBuffer(u16 *tilemap) static void DrawECFrameInTilemapBuffer(u16 *tilemap)
@@ -1537,7 +1537,7 @@ static void PrintECMenuById(u32 id)
break; break;
} }
CopyWindowToVram(2, 2); CopyWindowToVram(2, COPYWIN_GFX);
} }
static void PrintECGroupOrAlphaMenu(void) static void PrintECGroupOrAlphaMenu(void)
@@ -1659,7 +1659,7 @@ static void PrintECRowsWin2(u8 row, u8 remrow)
} }
CopyWindowToVram(2, 2); CopyWindowToVram(2, COPYWIN_GFX);
} }
static void ClearECRowsWin2(u8 row, u8 remrow) static void ClearECRowsWin2(u8 row, u8 remrow)
@@ -1690,7 +1690,7 @@ static void ClearECRowsWin2(u8 row, u8 remrow)
static void ClearWin2AndCopyToVram(void) static void ClearWin2AndCopyToVram(void)
{ {
FillWindowPixelBuffer(2, PIXEL_FILL(1)); FillWindowPixelBuffer(2, PIXEL_FILL(1));
CopyWindowToVram(2, 2); CopyWindowToVram(2, COPYWIN_GFX);
} }
static void StartWin2FrameAnim(int animNo) static void StartWin2FrameAnim(int animNo)
+3 -3
View File
@@ -792,7 +792,7 @@ static void Setup_DrawMsgAndListBoxes(void)
static void FC_PutWindowTilemapAndCopyWindowToVramMode3(u8 windowId) static void FC_PutWindowTilemapAndCopyWindowToVramMode3(u8 windowId)
{ {
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
} }
static bool8 SetMessageSelectorIconObjMode(u8 spriteId, u8 objMode) static bool8 SetMessageSelectorIconObjMode(u8 spriteId, u8 objMode)
@@ -853,7 +853,7 @@ static void FC_DestroyWindow(u8 windowId)
{ {
FillWindowPixelBuffer(windowId, 0); FillWindowPixelBuffer(windowId, 0);
ClearWindowTilemap(windowId); ClearWindowTilemap(windowId);
CopyWindowToVram(windowId, 2); CopyWindowToVram(windowId, COPYWIN_GFX);
RemoveWindow(windowId); RemoveWindow(windowId);
} }
@@ -1376,7 +1376,7 @@ static u8 FC_PopulateListMenu(void)
static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId) static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId)
{ {
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
} }
static void FC_CreateScrollIndicatorArrowPair(void) static void FC_CreateScrollIndicatorArrowPair(void)
+1 -1
View File
@@ -470,7 +470,7 @@ bool8 FieldIsDoorAnimationRunning(void)
return FuncIsActiveTask(Task_AnimateDoor); return FuncIsActiveTask(Task_AnimateDoor);
} }
u16 GetDoorSoundEffect(x, y) u16 GetDoorSoundEffect(int x, int y)
{ {
if (GetDoorSoundType(sDoorGraphics, x, y) == DOOR_SOUND_NORMAL) if (GetDoorSoundType(sDoorGraphics, x, y) == DOOR_SOUND_NORMAL)
return MUS_W_DOOR; return MUS_W_DOOR;
+1 -1
View File
@@ -668,7 +668,7 @@ static void Task_ReturnFromLinkRoomWarp(u8 taskId)
} }
break; break;
case 2: case 2:
if (gReceivedRemoteLinkPlayers == 0) if (!gReceivedRemoteLinkPlayers)
{ {
WarpIntoMap(); WarpIntoMap();
SetMainCallback2(CB2_LoadMap); SetMainCallback2(CB2_LoadMap);
+2 -2
View File
@@ -396,7 +396,7 @@ static void Task_RushInjuredPokemonToCenter(u8 taskId)
Menu_LoadStdPalAt(0xF0); Menu_LoadStdPalAt(0xF0);
FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
loc = GetHealLocation(1); loc = GetHealLocation(1);
if (gSaveBlock1Ptr->lastHealLocation.mapGroup == loc->group if (gSaveBlock1Ptr->lastHealLocation.mapGroup == loc->group
&& gSaveBlock1Ptr->lastHealLocation.mapNum == loc->map && gSaveBlock1Ptr->lastHealLocation.mapNum == loc->map
@@ -425,7 +425,7 @@ static void Task_RushInjuredPokemonToCenter(u8 taskId)
case 5: case 5:
windowId = gTasks[taskId].data[1]; windowId = gTasks[taskId].data[1];
ClearWindowTilemap(windowId); ClearWindowTilemap(windowId);
CopyWindowToVram(windowId, 1); CopyWindowToVram(windowId, COPYWIN_MAP);
RemoveWindow(windowId); RemoveWindow(windowId);
palette_bg_faded_fill_black(); palette_bg_faded_fill_black();
FadeInFromBlack(); FadeInFromBlack();
+3 -3
View File
@@ -1104,7 +1104,7 @@ void DrawElevatorCurrentFloorWindow(void)
strwidth = GetStringWidth(2, floorname, 0); strwidth = GetStringWidth(2, floorname, 0);
AddTextPrinterParameterized(sElevatorCurrentFloorWindowId, 2, floorname, 56 - strwidth, 16, 0xFF, NULL); AddTextPrinterParameterized(sElevatorCurrentFloorWindowId, 2, floorname, 56 - strwidth, 16, 0xFF, NULL);
PutWindowTilemap(sElevatorCurrentFloorWindowId); PutWindowTilemap(sElevatorCurrentFloorWindowId);
CopyWindowToVram(sElevatorCurrentFloorWindowId, 3); CopyWindowToVram(sElevatorCurrentFloorWindowId, COPYWIN_BOTH);
} }
} }
@@ -1365,7 +1365,7 @@ static void Task_CreateScriptListMenu(u8 taskId)
Task_CreateMenuRemoveScrollIndicatorArrowPair(taskId); Task_CreateMenuRemoveScrollIndicatorArrowPair(taskId);
task->data[14] = ListMenuInit(&sFieldSpecialsListMenuTemplate, task->data[7], task->data[8]); task->data[14] = ListMenuInit(&sFieldSpecialsListMenuTemplate, task->data[7], task->data[8]);
PutWindowTilemap(task->data[13]); PutWindowTilemap(task->data[13]);
CopyWindowToVram(task->data[13], 3); CopyWindowToVram(task->data[13], COPYWIN_BOTH);
gTasks[taskId].func = Task_ListMenuHandleInput; gTasks[taskId].func = Task_ListMenuHandleInput;
} }
@@ -1448,7 +1448,7 @@ static void Task_DestroyListMenu(u8 taskId)
ClearStdWindowAndFrameToTransparent(task->data[13], TRUE); ClearStdWindowAndFrameToTransparent(task->data[13], TRUE);
FillWindowPixelBuffer(task->data[13], PIXEL_FILL(0)); FillWindowPixelBuffer(task->data[13], PIXEL_FILL(0));
ClearWindowTilemap(task->data[13]); ClearWindowTilemap(task->data[13]);
CopyWindowToVram(task->data[13], 2); CopyWindowToVram(task->data[13], COPYWIN_GFX);
RemoveWindow(task->data[13]); RemoveWindow(task->data[13]);
DestroyTask(taskId); DestroyTask(taskId);
EnableBothScriptContexts(); EnableBothScriptContexts();
+1 -1
View File
@@ -436,7 +436,7 @@ static void Task_MapPreviewScreen_0(u8 taskId)
if (!MapPreview_IsGfxLoadFinished()) if (!MapPreview_IsGfxLoadFinished())
{ {
data[4] = MapPreview_CreateMapNameWindow(data[3]); data[4] = MapPreview_CreateMapNameWindow(data[3]);
CopyWindowToVram(data[4], 3); CopyWindowToVram(data[4], COPYWIN_BOTH);
data[0]++; data[0]++;
} }
break; break;
+7 -7
View File
@@ -456,7 +456,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId)
DrawDialogueFrame(0, 0); DrawDialogueFrame(0, 0);
AddTextPrinterParameterized2(0, 2, gText_SavingDontTurnOffThePower2, 0, NULL, 2, 1, 3); AddTextPrinterParameterized2(0, 2, gText_SavingDontTurnOffThePower2, 0, NULL, 2, 1, 3);
CopyWindowToVram(0, 3); CopyWindowToVram(0, COPYWIN_BOTH);
gTasks[taskId].func = Task_Hof_TrySaveData; gTasks[taskId].func = Task_Hof_TrySaveData;
} }
@@ -594,7 +594,7 @@ static void Task_Hof_ApplauseAndConfetti(u8 taskId)
} }
BeginNormalPaletteFade(sSelectedPaletteIndices, 0, 12, 12, HALL_OF_FAME_BG_PAL); BeginNormalPaletteFade(sSelectedPaletteIndices, 0, 12, 12, HALL_OF_FAME_BG_PAL);
FillWindowPixelBuffer(0, PIXEL_FILL(0)); FillWindowPixelBuffer(0, PIXEL_FILL(0));
CopyWindowToVram(0, 3); CopyWindowToVram(0, COPYWIN_BOTH);
gTasks[taskId].data[3] = 7; gTasks[taskId].data[3] = 7;
gTasks[taskId].func = Task_Hof_WaitBorderFadeAway; gTasks[taskId].func = Task_Hof_WaitBorderFadeAway;
} }
@@ -642,7 +642,7 @@ static void Task_Hof_WaitAndPrintPlayerInfo(u8 taskId)
HallOfFame_PrintPlayerInfo(1, 2); HallOfFame_PrintPlayerInfo(1, 2);
DrawDialogueFrame(0, 0); DrawDialogueFrame(0, 0);
AddTextPrinterParameterized2(0, 2, gText_LeagueChamp, 0, NULL, 2, 1, 3); AddTextPrinterParameterized2(0, 2, gText_LeagueChamp, 0, NULL, 2, 1, 3);
CopyWindowToVram(0, 3); CopyWindowToVram(0, COPYWIN_BOTH);
gTasks[taskId].func = Task_Hof_ExitOnKeyPressed; gTasks[taskId].func = Task_Hof_ExitOnKeyPressed;
} }
} }
@@ -972,7 +972,7 @@ static void Task_HofPC_PrintDataIsCorrupted(u8 taskId)
TopBarWindowPrintString(gText_ABUTTONExit, 8, TRUE); TopBarWindowPrintString(gText_ABUTTONExit, 8, TRUE);
DrawDialogueFrame(0, 0); DrawDialogueFrame(0, 0);
AddTextPrinterParameterized2(0, 2, gText_HOFCorrupted, 0, NULL, 2, 1, 3); AddTextPrinterParameterized2(0, 2, gText_HOFCorrupted, 0, NULL, 2, 1, 3);
CopyWindowToVram(0, 3); CopyWindowToVram(0, COPYWIN_BOTH);
gTasks[taskId].func = Task_HofPC_ExitOnButtonPress; gTasks[taskId].func = Task_HofPC_ExitOnButtonPress;
} }
@@ -988,7 +988,7 @@ static void HallOfFame_PrintWelcomeText(u8 not, u8 used)
FillWindowPixelBuffer(0, PIXEL_FILL(0)); FillWindowPixelBuffer(0, PIXEL_FILL(0));
PutWindowTilemap(0); PutWindowTilemap(0);
AddTextPrinterParameterized3(0, 2, x, 1, sTextColors[0], 0, gText_WelcomeToHOF); AddTextPrinterParameterized3(0, 2, x, 1, sTextColors[0], 0, gText_WelcomeToHOF);
CopyWindowToVram(0, 3); CopyWindowToVram(0, COPYWIN_BOTH);
} }
static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u8 unused2) static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u8 unused2)
@@ -1075,7 +1075,7 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
AddTextPrinterParameterized3(0, 2, 0x60, 0x11, sTextColors[0], 0, text); AddTextPrinterParameterized3(0, 2, 0x60, 0x11, sTextColors[0], 0, text);
} }
CopyWindowToVram(0, 3); CopyWindowToVram(0, COPYWIN_BOTH);
} }
static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2) static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
@@ -1118,7 +1118,7 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
AddTextPrinterParameterized3(1, 2, textWidth - 36, 32, sTextColors[1], 0, text); AddTextPrinterParameterized3(1, 2, textWidth - 36, 32, sTextColors[1], 0, text);
CopyWindowToVram(1, 3); CopyWindowToVram(1, COPYWIN_BOTH);
} }
static void ClearVramOamPltt_LoadHofPal(void) static void ClearVramOamPltt_LoadHofPal(void)
+6 -6
View File
@@ -74,9 +74,9 @@ u8 RunHelpSystemCallback(void)
sVideoState.state = 2; sVideoState.state = 2;
break; break;
case 2: case 2:
RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0); RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, DMA3_16BIT);
RequestDma3Copy(sPals, (void *)PLTT, sizeof(sPals), 0); RequestDma3Copy(sPals, (void *)PLTT, sizeof(sPals), DMA3_16BIT);
RequestDma3Copy(sTiles, gDecompressionBuffer + 0x3EE0, sizeof(sTiles), 0); RequestDma3Copy(sTiles, gDecompressionBuffer + 0x3EE0, sizeof(sTiles), DMA3_16BIT);
sVideoState.state = 3; sVideoState.state = 3;
break; break;
case 3: case 3:
@@ -160,7 +160,7 @@ void SaveMapGPURegs(void)
void SaveMapTiles(void) void SaveMapTiles(void)
{ {
RequestDma3Copy((void *)BG_CHAR_ADDR(3), sMapTilesBackup, BG_CHAR_SIZE, 0); RequestDma3Copy((void *)BG_CHAR_ADDR(3), sMapTilesBackup, BG_CHAR_SIZE, DMA3_16BIT);
} }
void SaveMapTextColors(void) void SaveMapTextColors(void)
@@ -189,7 +189,7 @@ void RestoreGPURegs(void)
void RestoreMapTiles(void) void RestoreMapTiles(void)
{ {
RequestDma3Copy(sMapTilesBackup, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0); RequestDma3Copy(sMapTilesBackup, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, DMA3_16BIT);
} }
void RestoreMapTextColors(void) void RestoreMapTextColors(void)
@@ -203,7 +203,7 @@ void RestoreMapTextColors(void)
void CommitTilemap(void) void CommitTilemap(void)
{ {
RequestDma3Copy(gDecompressionBuffer, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0); RequestDma3Copy(gDecompressionBuffer, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, DMA3_16BIT);
} }
void HS_DrawBgTilemapRect(u16 baseTile, u8 left, u8 top, u8 width, u8 height, u16 increment) void HS_DrawBgTilemapRect(u16 baseTile, u8 left, u8 top, u8 width, u8 height, u16 increment)
+1 -1
View File
@@ -1880,7 +1880,7 @@ bool8 HelpSystem_UpdateHasntSeenIntro(void)
bool8 sub_812B45C(void) bool8 sub_812B45C(void)
{ {
if (gReceivedRemoteLinkPlayers == 1) if (gReceivedRemoteLinkPlayers == TRUE)
return FALSE; return FALSE;
return TRUE; return TRUE;
} }
+384 -86
View File
@@ -47,18 +47,18 @@ static EWRAM_DATA u16 gUnknown_203AB06 = 0;
static EWRAM_DATA u16 gUnknown_203AB08 = 0; static EWRAM_DATA u16 gUnknown_203AB08 = 0;
static EWRAM_DATA u16 gUnknown_203AB0A = 0; static EWRAM_DATA u16 gUnknown_203AB0A = 0;
static EWRAM_DATA u16 gUnknown_203AB0C = 0; static EWRAM_DATA u16 gUnknown_203AB0C = 0;
static EWRAM_DATA u16 gUnknown_203AB0E = 0; static EWRAM_DATA u16 sLargeStarXSpeed = 0;
static EWRAM_DATA u16 gUnknown_203AB10 = 0; static EWRAM_DATA u16 sLargeStarYSpeed = 0;
static EWRAM_DATA u16 gUnknown_203AB12 = 0; static EWRAM_DATA u16 sTrailingSparklesXmodMask = 0;
static EWRAM_DATA u16 gUnknown_203AB14 = 0; static EWRAM_DATA u16 sUnusedVarRelatedToGameFreakStars = 0;
static EWRAM_DATA u16 gUnknown_203AB16 = 0; static EWRAM_DATA u16 sTrailingSparklesSpawnRate = 0;
static EWRAM_DATA u16 gUnknown_203AB18 = 0; static EWRAM_DATA u16 sTrailingSparklesFlickerStartTime = 0;
static EWRAM_DATA u16 gUnknown_203AB1A = 0; static EWRAM_DATA u16 sTrailingSparklesDestroySpriteTime = 0;
static EWRAM_DATA u16 gUnknown_203AB1C = 0; static EWRAM_DATA u16 sTrailingSparklesGravityShift = 0;
static EWRAM_DATA u16 gUnknown_203AB1E = 0; static EWRAM_DATA u16 sTrailingSparklesXspeed = 0;
static EWRAM_DATA u16 gUnknown_203AB20 = 0; static EWRAM_DATA u16 sTrailingSparklesYspeed = 0;
static EWRAM_DATA u16 gUnknown_203AB22 = 0; static EWRAM_DATA u16 sTrailingSparklesXprecision = 0;
static EWRAM_DATA u16 gUnknown_203AB24 = 0; static EWRAM_DATA u16 sTrailingSparklesYprecision = 0;
static void CB2_SetUpIntro(void); static void CB2_SetUpIntro(void);
static void CB2_Intro(void); static void CB2_Intro(void);
@@ -181,30 +181,111 @@ static const u32 sSpriteTiles_GengarSwipe[] = INCBIN_U32("graphics/intro/unk_840
static const u32 sSpriteTiles_NidorinoRecoilDust[] = INCBIN_U32("graphics/intro/unk_840BAE0.4bpp.lz"); static const u32 sSpriteTiles_NidorinoRecoilDust[] = INCBIN_U32("graphics/intro/unk_840BAE0.4bpp.lz");
static const struct BgTemplate sBgTemplates_GameFreakScene[] = { static const struct BgTemplate sBgTemplates_GameFreakScene[] = {
{ 3, 3, 31, 0, 0, 3, 0x000 }, {
{ 2, 3, 30, 0, 0, 2, 0x010 } .bg = 3,
.charBaseIndex = 3,
.mapBaseIndex = 31,
.screenSize = 0,
.paletteMode = 0,
.priority = 3,
.baseTile = 0x000
}, {
.bg = 2,
.charBaseIndex = 3,
.mapBaseIndex = 30,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0x010
}
}; };
static const struct BgTemplate sBgTemplates_FightScene1[] = { static const struct BgTemplate sBgTemplates_FightScene1[] = {
{ 0, 0, 28, 2, 0, 0, 0x000 }, {
{ 1, 1, 30, 2, 0, 0, 0x000 } .bg = 0,
.charBaseIndex = 0,
.mapBaseIndex = 28,
.screenSize = 2,
.paletteMode = 0,
.priority = 0,
.baseTile = 0x000
}, {
.bg = 1,
.charBaseIndex = 1,
.mapBaseIndex = 30,
.screenSize = 2,
.paletteMode = 0,
.priority = 0,
.baseTile = 0x000
}
}; };
static const struct BgTemplate sBgTemplates_FightScene2[] = { static const struct BgTemplate sBgTemplates_FightScene2[] = {
{ 3, 1, 30, 2, 0, 3, 0x000 }, {
{ 0, 0, 29, 0, 0, 0, 0x000 }, .bg = 3,
{ 2, 3, 27, 0, 0, 2, 0x000 }, .charBaseIndex = 1,
{ 1, 2, 28, 0, 0, 1, 0x000 } .mapBaseIndex = 30,
.screenSize = 2,
.paletteMode = 0,
.priority = 3,
.baseTile = 0x000
}, {
.bg = 0,
.charBaseIndex = 0,
.mapBaseIndex = 29,
.screenSize = 0,
.paletteMode = 0,
.priority = 0,
.baseTile = 0x000
}, {
.bg = 2,
.charBaseIndex = 3,
.mapBaseIndex = 27,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0x000
}, {
.bg = 1,
.charBaseIndex = 2,
.mapBaseIndex = 28,
.screenSize = 0,
.paletteMode = 0,
.priority = 1,
.baseTile = 0x000
}
}; };
static const struct BgTemplate sBgTemplates_FightScene3[] = { static const struct BgTemplate sBgTemplates_FightScene3[] = {
{ 1, 0, 29, 0, 0, 1, 0x000 }, {
{ 0, 1, 30, 2, 0, 0, 0x000 } .bg = 1,
.charBaseIndex = 0,
.mapBaseIndex = 29,
.screenSize = 0,
.paletteMode = 0,
.priority = 1,
.baseTile = 0x000
}, {
.bg = 0,
.charBaseIndex = 1,
.mapBaseIndex = 30,
.screenSize = 2,
.paletteMode = 0,
.priority = 0,
.baseTile = 0x000
}
}; };
static const struct WindowTemplate sWindowTemplate[] = { static const struct WindowTemplate sWindowTemplate[] = {
{ 2, 6, 4, 18, 9, 0xD, 0x000 }, {
DUMMY_WIN_TEMPLATE .bg = 2,
.tilemapLeft = 6,
.tilemapTop = 4,
.width = 18,
.height = 9,
.paletteNum = 0xD,
.baseBlock = 0x000
}, DUMMY_WIN_TEMPLATE
}; };
static const u8 sGengarBackSpritePos2UpdateMods[][2] = { static const u8 sGengarBackSpritePos2UpdateMods[][2] = {
@@ -241,9 +322,31 @@ static const struct Coords16 sTrailingSparkleCoords[] = {
{0x0098, 0x0056} {0x0098, 0x0056}
}; };
static const struct OamData gOamData_840BC2C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_SQUARE, .matrixNum = 0, .size = ST_OAM_SIZE_1, .tileNum = 0x000, .priority = 2, .paletteNum = 0 }; static const struct OamData gOamData_840BC2C = {
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = FALSE,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_SQUARE,
.matrixNum = 0,
.size = ST_OAM_SIZE_1,
.tileNum = 0x000,
.priority = 2,
.paletteNum = 0
};
static const struct OamData gOamData_840BC34 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_SQUARE, .matrixNum = 0, .size = ST_OAM_SIZE_0, .tileNum = 0x000, .priority = 2, .paletteNum = 0 }; static const struct OamData gOamData_840BC34 = {
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = FALSE,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_SQUARE,
.matrixNum = 0,
.size = ST_OAM_SIZE_0,
.tileNum = 0x000,
.priority = 2,
.paletteNum = 0
};
static const union AnimCmd gAnimCmd_840BC3C[] = { static const union AnimCmd gAnimCmd_840BC3C[] = {
ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(0, 4),
@@ -266,11 +369,38 @@ static const union AnimCmd *const gAnimCmdTable_840BC64[] = {
gAnimCmd_840BC50 gAnimCmd_840BC50
}; };
static const struct SpriteTemplate sSpriteTemplate_LargeStar = {0, 0, &gOamData_840BC2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCB_LargeStar}; static const struct SpriteTemplate sSpriteTemplate_LargeStar = {
.tileTag = 0,
.paletteTag = 0,
.oam = &gOamData_840BC2C,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_LargeStar
};
static const struct SpriteTemplate sSpriteTemplate_TrailingSparkles = {1, 1, &gOamData_840BC34, gAnimCmdTable_840BC64, NULL, gDummySpriteAffineAnimTable, SpriteCB_TrailingSparkles}; static const struct SpriteTemplate sSpriteTemplate_TrailingSparkles = {
.tileTag = 1,
.paletteTag = 1,
.oam = &gOamData_840BC34,
.anims = gAnimCmdTable_840BC64,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_TrailingSparkles
};
static const struct OamData gOamData_840BC9C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_SQUARE, .matrixNum = 0, .size = ST_OAM_SIZE_2, .tileNum = 0x000, .priority = 2, .paletteNum = 0 }; static const struct OamData gOamData_840BC9C = {
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = FALSE,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_SQUARE,
.matrixNum = 0,
.size = ST_OAM_SIZE_2,
.tileNum = 0x000,
.priority = 2,
.paletteNum = 0
};
static const union AnimCmd gAnimCmd_840BCA4[] = { static const union AnimCmd gAnimCmd_840BCA4[] = {
ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(0, 8),
@@ -284,17 +414,74 @@ static const union AnimCmd *const gAnimCmdTable_840BCB8[] = {
gAnimCmd_840BCA4 gAnimCmd_840BCA4
}; };
static const struct SpriteTemplate sSpriteTemplate_RevealGameFreakTextSparkles = {2, 1, &gOamData_840BC9C, gAnimCmdTable_840BCB8, NULL, gDummySpriteAffineAnimTable, SpriteCB_RevealGameFreakTextSparkles}; static const struct SpriteTemplate sSpriteTemplate_RevealGameFreakTextSparkles = {
.tileTag = 2,
.paletteTag = 1,
.oam = &gOamData_840BC9C,
.anims = gAnimCmdTable_840BCB8,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_RevealGameFreakTextSparkles
};
static const struct OamData gOamData_840BCD4 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_V_RECTANGLE, .matrixNum = 0, .size = ST_OAM_SIZE_3, .tileNum = 0x000, .priority = 3, .paletteNum = 0 }; static const struct OamData gOamData_840BCD4 = {
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_BLEND,
.mosaic = FALSE,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_V_RECTANGLE,
.matrixNum = 0,
.size = ST_OAM_SIZE_3,
.tileNum = 0x000,
.priority = 3,
.paletteNum = 0
};
static const struct SpriteTemplate sSpriteTemplate_GameFreakLogoArt = {3, 3, &gOamData_840BCD4, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; static const struct SpriteTemplate sSpriteTemplate_GameFreakLogoArt = {
.tileTag = 3,
.paletteTag = 3,
.oam = &gOamData_840BCD4,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
static const struct OamData gOamData_840BCF4 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_H_RECTANGLE, .matrixNum = 0, .size = ST_OAM_SIZE_1, .tileNum = 0x000, .priority = 3, .paletteNum = 0 }; static const struct OamData gOamData_840BCF4 = {
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_BLEND,
.mosaic = FALSE,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_H_RECTANGLE,
.matrixNum = 0,
.size = ST_OAM_SIZE_1,
.tileNum = 0x000,
.priority = 3,
.paletteNum = 0
};
static const struct SpriteTemplate sSpriteTemplate_PresentsText = {4, 3, &gOamData_840BCF4, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; static const struct SpriteTemplate sSpriteTemplate_PresentsText = {
.tileTag = 4,
.paletteTag = 3,
.oam = &gOamData_840BCF4,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
static const struct OamData gOamData_840BD14 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_SQUARE, .matrixNum = 0, .size = ST_OAM_SIZE_3, .tileNum = 0x000, .priority = 1, .paletteNum = 0 }; static const struct OamData gOamData_840BD14 = {
.affineMode = ST_OAM_AFFINE_DOUBLE,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = FALSE,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_SQUARE,
.matrixNum = 0,
.size = ST_OAM_SIZE_3,
.tileNum = 0x000,
.priority = 1,
.paletteNum = 0
};
static const union AnimCmd gAnimCmd_840BD1C[] = { static const union AnimCmd gAnimCmd_840BD1C[] = {
ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(0, 1),
@@ -345,15 +532,61 @@ static const union AffineAnimCmd *const sAffineAnimTable_NidorinoAnim[] = {
gAffineAnimCmd_840BD68 gAffineAnimCmd_840BD68
}; };
static const struct SpriteTemplate sSpriteTemplate_NidorinoAnim = {5, 7, &gOamData_840BD14, sAnimTable_NidorinoAnim, NULL, sAffineAnimTable_NidorinoAnim, SpriteCallbackDummy}; static const struct SpriteTemplate sSpriteTemplate_NidorinoAnim = {
.tileTag = 5,
.paletteTag = 7,
.oam = &gOamData_840BD14,
.anims = sAnimTable_NidorinoAnim,
.images = NULL,
.affineAnims = sAffineAnimTable_NidorinoAnim,
.callback = SpriteCallbackDummy
};
static const struct OamData gOamData_840BDA0 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_SQUARE, .matrixNum = 0, .size = ST_OAM_SIZE_3, .tileNum = 0x000, .priority = 1, .paletteNum = 0 }; static const struct OamData gOamData_840BDA0 = {
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = FALSE,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_SQUARE,
.matrixNum = 0,
.size = ST_OAM_SIZE_3,
.tileNum = 0x000,
.priority = 1,
.paletteNum = 0
};
static const struct SpriteTemplate sSpriteTemplate_NidorinoStatic = {7, 7, &gOamData_840BDA0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; static const struct SpriteTemplate sSpriteTemplate_NidorinoStatic = {
.tileTag = 7,
.paletteTag = 7,
.oam = &gOamData_840BDA0,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
static const struct SpriteTemplate sSpriteTemplate_GengarStatic = {6, 6, &gOamData_840BDA0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; static const struct SpriteTemplate sSpriteTemplate_GengarStatic = {
.tileTag = 6,
.paletteTag = 6,
.oam = &gOamData_840BDA0,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
static const struct OamData gOamData_840BDD8 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_H_RECTANGLE, .matrixNum = 0, .size = ST_OAM_SIZE_3, .tileNum = 0x000, .priority = 0, .paletteNum = 0 }; static const struct OamData gOamData_840BDD8 = {
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = FALSE,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_H_RECTANGLE,
.matrixNum = 0,
.size = ST_OAM_SIZE_3,
.tileNum = 0x000,
.priority = 0,
.paletteNum = 0
};
static const union AnimCmd gAnimCmds_840BDE0[] = { static const union AnimCmd gAnimCmds_840BDE0[] = {
ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(0, 0),
@@ -371,9 +604,28 @@ static const union AnimCmd *const gAnimCmdTable_840BDF4[] = {
gAnimCmds_840BDE8 gAnimCmds_840BDE8
}; };
static const struct SpriteTemplate sSpriteTemplate_Grass = {8, 8, &gOamData_840BDD8, gAnimCmdTable_840BDF4, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; static const struct SpriteTemplate sSpriteTemplate_Grass = {
.tileTag = 8,
.paletteTag = 8,
.oam = &gOamData_840BDD8,
.anims = gAnimCmdTable_840BDF4,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
static const struct OamData gOamData_840BE14 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_SQUARE, .matrixNum = 0, .size = ST_OAM_SIZE_3, .tileNum = 0x000, .priority = 1, .paletteNum = 0 }; static const struct OamData gOamData_840BE14 = {
.affineMode = ST_OAM_AFFINE_DOUBLE,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = FALSE,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_SQUARE,
.matrixNum = 0,
.size = ST_OAM_SIZE_3,
.tileNum = 0x000,
.priority = 1,
.paletteNum = 0
};
static const union AnimCmd gAnimCmd_840BE1C[] = { static const union AnimCmd gAnimCmd_840BE1C[] = {
ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(0, 0),
@@ -402,9 +654,28 @@ static const union AnimCmd *const gAnimCmdTable_840BE3C[] = {
gAnimCmd_840BE34 gAnimCmd_840BE34
}; };
static const struct SpriteTemplate sSpriteTemplate_GengarBack = {9, 6, &gOamData_840BE14, gAnimCmdTable_840BE3C, NULL, sAffineAnimTable_NidorinoAnim, SpriteCallbackDummy}; static const struct SpriteTemplate sSpriteTemplate_GengarBack = {
.tileTag = 9,
.paletteTag = 6,
.oam = &gOamData_840BE14,
.anims = gAnimCmdTable_840BE3C,
.images = NULL,
.affineAnims = sAffineAnimTable_NidorinoAnim,
.callback = SpriteCallbackDummy
};
static const struct OamData gOamData_840BE64 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_V_RECTANGLE, .matrixNum = 0, .size = ST_OAM_SIZE_3, .tileNum = 0x000, .priority = 1, .paletteNum = 0 }; static const struct OamData gOamData_840BE64 = {
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = FALSE,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_V_RECTANGLE,
.matrixNum = 0,
.size = ST_OAM_SIZE_3,
.tileNum = 0x000,
.priority = 1,
.paletteNum = 0
};
static const union AnimCmd gAnimCmd_840BE6C[] = { static const union AnimCmd gAnimCmd_840BE6C[] = {
ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(0, 8),
@@ -423,9 +694,28 @@ static const union AnimCmd *const gAnimCmdTable_840BE84[] = {
gAnimCmd_840BE78 gAnimCmd_840BE78
}; };
static const struct SpriteTemplate sSpriteTemplate_GengarSwipe = {10, 10, &gOamData_840BE64, gAnimCmdTable_840BE84, NULL, gDummySpriteAffineAnimTable, SpriteCB_GengarSwipe}; static const struct SpriteTemplate sSpriteTemplate_GengarSwipe = {
.tileTag = 10,
.paletteTag = 10,
.oam = &gOamData_840BE64,
.anims = gAnimCmdTable_840BE84,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_GengarSwipe
};
static const struct OamData gOamData_840BEA4 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_SQUARE, .matrixNum = 0, .size = ST_OAM_SIZE_1, .tileNum = 0x000, .priority = 1, .paletteNum = 0 }; static const struct OamData gOamData_840BEA4 = {
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = FALSE,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_SQUARE,
.matrixNum = 0,
.size = ST_OAM_SIZE_1,
.tileNum = 0x000,
.priority = 1,
.paletteNum = 0
};
static const union AnimCmd gAnimCmd_840BEAC[] = { static const union AnimCmd gAnimCmd_840BEAC[] = {
ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(0, 10),
@@ -439,7 +729,15 @@ static const union AnimCmd *const gAnimCmdTable_840BEC0[] = {
gAnimCmd_840BEAC gAnimCmd_840BEAC
}; };
static const struct SpriteTemplate sSpriteTemplate_NidorinoRecoilDust = {11, 11, &gOamData_840BEA4, gAnimCmdTable_840BEC0, NULL, gDummySpriteAffineAnimTable, SpriteCB_NidorinoRecoilDust}; static const struct SpriteTemplate sSpriteTemplate_NidorinoRecoilDust = {
.tileTag = 11,
.paletteTag = 11,
.oam = &gOamData_840BEA4,
.anims = gAnimCmdTable_840BEC0,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_NidorinoRecoilDust
};
static const struct CompressedSpriteSheet sFightSceneSpriteSheets[] = { static const struct CompressedSpriteSheet sFightSceneSpriteSheets[] = {
{sSpriteTiles_GengarStatic, 0x0800, 6}, {sSpriteTiles_GengarStatic, 0x0800, 6},
@@ -694,7 +992,7 @@ static void IntroCB_Init(struct IntroSequenceData * this)
FillWindowPixelBuffer(0, PIXEL_FILL(0)); FillWindowPixelBuffer(0, PIXEL_FILL(0));
BlitBitmapToWindow(0, this->gamefreakTextBitmap, 0, 40, 144, 16); BlitBitmapToWindow(0, this->gamefreakTextBitmap, 0, 40, 144, 16);
PutWindowTilemap(0); PutWindowTilemap(0);
CopyWindowToVram(0, 3); CopyWindowToVram(0, COPYWIN_BOTH);
this->state++; this->state++;
break; break;
case 1: case 1:
@@ -820,7 +1118,7 @@ static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData
{ {
BlitBitmapToWindow(0, this->gamefreakLogoArtSpriteTiles, 0x38, 0x06, 0x20, 0x40); BlitBitmapToWindow(0, this->gamefreakLogoArtSpriteTiles, 0x38, 0x06, 0x20, 0x40);
BlitBitmapToWindow(0, this->gamefreakTextBitmap, 0x00, 0x28, 0x90, 0x10); BlitBitmapToWindow(0, this->gamefreakTextBitmap, 0x00, 0x28, 0x90, 0x10);
CopyWindowToVram(0, 2); CopyWindowToVram(0, COPYWIN_GFX);
this->state++; this->state++;
} }
break; break;
@@ -1473,58 +1771,58 @@ static void GameFreakScene_LoadGfxCreateStar(void)
{ {
int i; int i;
u8 spriteId; u8 spriteId;
static EWRAM_DATA u32 gUnknown_203AB28 = 0; static EWRAM_DATA u32 sTrailingSparklesRngSeed = 0;
for (i = 0; i < NELEMS(sSpriteSheets_GameFreakScene); i++) for (i = 0; i < NELEMS(sSpriteSheets_GameFreakScene); i++)
{ {
LoadCompressedSpriteSheet(&sSpriteSheets_GameFreakScene[i]); LoadCompressedSpriteSheet(&sSpriteSheets_GameFreakScene[i]);
} }
LoadSpritePalettes(sSpritePalettes_GameFreakScene); LoadSpritePalettes(sSpritePalettes_GameFreakScene);
gUnknown_203AB0E = 0x60; sLargeStarXSpeed = 0x60;
gUnknown_203AB10 = 0x10; sLargeStarYSpeed = 0x10;
gUnknown_203AB12 = 0x07; sTrailingSparklesXmodMask = 0x07;
gUnknown_203AB14 = 0x05; sUnusedVarRelatedToGameFreakStars = 5;
gUnknown_203AB16 = 0x08; sTrailingSparklesSpawnRate = 8;
gUnknown_203AB18 = 0x5A; sTrailingSparklesFlickerStartTime = 90;
gUnknown_203AB1A = 0x78; sTrailingSparklesDestroySpriteTime = 120;
gUnknown_203AB1E = 0x01; sTrailingSparklesXspeed = 1;
gUnknown_203AB20 = 0x01; sTrailingSparklesYspeed = 1;
gUnknown_203AB22 = 0x05; sTrailingSparklesXprecision = 5;
gUnknown_203AB24 = 0x05; sTrailingSparklesYprecision = 5;
if (gUnknown_203AB28 == 0) if (sTrailingSparklesRngSeed == 0)
gUnknown_203AB28 = 354128453; sTrailingSparklesRngSeed = 354128453;
spriteId = CreateSprite(&sSpriteTemplate_LargeStar, 0xF8, 0x37, 0); spriteId = CreateSprite(&sSpriteTemplate_LargeStar, 0xF8, 0x37, 0);
if (spriteId != MAX_SPRITES) if (spriteId != MAX_SPRITES)
{ {
gSprites[spriteId].data[0] = 0xF80; gSprites[spriteId].data[0] = 0xF80;
gSprites[spriteId].data[1] = 0x370; gSprites[spriteId].data[1] = 0x370;
gSprites[spriteId].data[2] = gUnknown_203AB0E; gSprites[spriteId].data[2] = sLargeStarXSpeed;
gSprites[spriteId].data[3] = gUnknown_203AB10; gSprites[spriteId].data[3] = sLargeStarYSpeed;
StoreWordInTwoHalfwords((u16 *)&gSprites[spriteId].data[6], gUnknown_203AB28); StoreWordInTwoHalfwords((u16 *)&gSprites[spriteId].data[6], sTrailingSparklesRngSeed);
} }
} }
static void GameFreakScene_TrailingSparklesGen(s16 x, s16 y, u16 a2) static void GameFreakScene_TrailingSparklesGen(s16 x, s16 y, u16 a2)
{ {
static EWRAM_DATA s16 gUnknown_203AB2C = 0; static EWRAM_DATA s16 sYmod = 0;
u8 spriteId; u8 spriteId;
s16 r4 = (a2 & gUnknown_203AB12) + 2; s16 xMod = (a2 & sTrailingSparklesXmodMask) + 2;
s16 r2 = gUnknown_203AB2C; s16 yMod = sYmod;
gUnknown_203AB2C++; sYmod++;
if (gUnknown_203AB2C > 3) if (sYmod > 3)
gUnknown_203AB2C = -3; sYmod = -3;
x += r4; x += xMod;
y += r2; y += yMod;
if (x >= 1 && x <= 0xEF) if (x >= 1 && x <= 0xEF)
{ {
spriteId = CreateSprite(&sSpriteTemplate_TrailingSparkles, x, y, 1); spriteId = CreateSprite(&sSpriteTemplate_TrailingSparkles, x, y, 1);
if (spriteId != MAX_SPRITES) if (spriteId != MAX_SPRITES)
{ {
gSprites[spriteId].data[0] = x << gUnknown_203AB22; gSprites[spriteId].data[0] = x << sTrailingSparklesXprecision;
gSprites[spriteId].data[1] = y << gUnknown_203AB24; gSprites[spriteId].data[1] = y << sTrailingSparklesYprecision;
gSprites[spriteId].data[2] = gUnknown_203AB1E * r4; gSprites[spriteId].data[2] = sTrailingSparklesXspeed * xMod;
gSprites[spriteId].data[3] = gUnknown_203AB20 * r2; gSprites[spriteId].data[3] = sTrailingSparklesYspeed * yMod;
} }
} }
} }
@@ -1747,7 +2045,7 @@ static void Task_FightScene3_Bg0Scroll(u8 taskId)
static void SpriteCB_LargeStar(struct Sprite * sprite) static void SpriteCB_LargeStar(struct Sprite * sprite)
{ {
u32 v; unsigned v;
sprite->data[0] -= sprite->data[2]; sprite->data[0] -= sprite->data[2];
sprite->data[1] += sprite->data[3]; sprite->data[1] += sprite->data[3];
sprite->data[4] += 48; sprite->data[4] += 48;
@@ -1755,7 +2053,7 @@ static void SpriteCB_LargeStar(struct Sprite * sprite)
sprite->pos1.y = sprite->data[1] >> 4; sprite->pos1.y = sprite->data[1] >> 4;
sprite->pos2.y = gSineTable[(sprite->data[4] >> 4) + 0x40] >> 5; sprite->pos2.y = gSineTable[(sprite->data[4] >> 4) + 0x40] >> 5;
sprite->data[5]++; sprite->data[5]++;
if (sprite->data[5] % gUnknown_203AB16) if (sprite->data[5] % sTrailingSparklesSpawnRate)
{ {
LoadWordFromTwoHalfwords(&sprite->data[6], &v); LoadWordFromTwoHalfwords(&sprite->data[6], &v);
v = v * 1103515245 + 24691; v = v * 1103515245 + 24691;
@@ -1776,14 +2074,14 @@ static void SpriteCB_TrailingSparkles(struct Sprite * sprite)
sprite->data[4]++; sprite->data[4]++;
sprite->data[5] += sprite->data[4]; sprite->data[5] += sprite->data[4];
sprite->data[7]++; sprite->data[7]++;
sprite->pos1.x = (u16)sprite->data[0] >> gUnknown_203AB22; sprite->pos1.x = (u16)sprite->data[0] >> sTrailingSparklesXprecision;
sprite->pos1.y = sprite->data[1] >> gUnknown_203AB24; sprite->pos1.y = sprite->data[1] >> sTrailingSparklesYprecision;
if (gUnknown_203AB1C && sprite->data[3] < 0) if (sTrailingSparklesGravityShift && sprite->data[3] < 0)
sprite->pos2.y = sprite->data[5] >> gUnknown_203AB1C; sprite->pos2.y = sprite->data[5] >> sTrailingSparklesGravityShift;
if (sprite->data[7] > gUnknown_203AB18) if (sprite->data[7] > sTrailingSparklesFlickerStartTime)
{ {
sprite->invisible = !sprite->invisible; sprite->invisible = !sprite->invisible;
if (sprite->data[7] > gUnknown_203AB1A) if (sprite->data[7] > sTrailingSparklesDestroySpriteTime)
DestroySprite(sprite); DestroySprite(sprite);
} }
if (sprite->pos1.y + sprite->pos2.y < 0 || sprite->pos1.y + sprite->pos2.y > 160) if (sprite->pos1.y + sprite->pos2.y < 0 || sprite->pos1.y + sprite->pos2.y > 160)
+8 -8
View File
@@ -1596,7 +1596,7 @@ static void Task_ItemMenuAction_ToggleSelect(u8 taskId)
DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
Bag_BuildListMenuTemplate(gBagMenuState.pocket); Bag_BuildListMenuTemplate(gBagMenuState.pocket);
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
CopyWindowToVram(0, 1); CopyWindowToVram(0, COPYWIN_MAP);
Task_ItemMenuAction_Cancel(taskId); Task_ItemMenuAction_Cancel(taskId);
} }
@@ -1608,7 +1608,7 @@ static void Task_ItemMenuAction_Give(u8 taskId)
HideBagWindow(6); HideBagWindow(6);
PutWindowTilemap(0); PutWindowTilemap(0);
PutWindowTilemap(1); PutWindowTilemap(1);
CopyWindowToVram(0, 1); CopyWindowToVram(0, COPYWIN_MAP);
if (!CanWriteMailHere(itemId)) if (!CanWriteMailHere(itemId))
DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, Task_WaitAButtonAndCloseContextMenu); DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, Task_WaitAButtonAndCloseContextMenu);
else if (!itemid_is_unique(itemId)) else if (!itemid_is_unique(itemId))
@@ -1694,7 +1694,7 @@ static void Task_ItemMenuAction_BattleUse(u8 taskId)
HideBagWindow(6); HideBagWindow(6);
PutWindowTilemap(0); PutWindowTilemap(0);
PutWindowTilemap(1); PutWindowTilemap(1);
CopyWindowToVram(0, 1); CopyWindowToVram(0, COPYWIN_MAP);
ItemId_GetBattleFunc(gSpecialVar_ItemId)(taskId); ItemId_GetBattleFunc(gSpecialVar_ItemId)(taskId);
} }
} }
@@ -2131,7 +2131,7 @@ static void Task_Bag_OldManTutorial(u8 taskId)
HideBagWindow(6); HideBagWindow(6);
PutWindowTilemap(0); PutWindowTilemap(0);
PutWindowTilemap(1); PutWindowTilemap(1);
CopyWindowToVram(0, 1); CopyWindowToVram(0, COPYWIN_MAP);
DestroyListMenuTask(data[0], NULL, NULL); DestroyListMenuTask(data[0], NULL, NULL);
RestorePlayerBag(); RestorePlayerBag();
Bag_BeginCloseWin0Animation(); Bag_BeginCloseWin0Animation();
@@ -2242,7 +2242,7 @@ static void Task_Bag_TeachyTvRegister(u8 taskId)
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
Bag_FillMessageBoxWithPalette(0); Bag_FillMessageBoxWithPalette(0);
bag_menu_print_cursor_(data[0], 1); bag_menu_print_cursor_(data[0], 1);
CopyWindowToVram(0, 1); CopyWindowToVram(0, COPYWIN_MAP);
break; break;
case 510: case 510:
case 612: case 612:
@@ -2305,7 +2305,7 @@ static void Task_Bag_TeachyTvCatching(u8 taskId)
HideBagWindow(6); HideBagWindow(6);
PutWindowTilemap(0); PutWindowTilemap(0);
PutWindowTilemap(1); PutWindowTilemap(1);
CopyWindowToVram(0, 1); CopyWindowToVram(0, COPYWIN_MAP);
DestroyListMenuTask(data[0], NULL, NULL); DestroyListMenuTask(data[0], NULL, NULL);
RestorePlayerBag(); RestorePlayerBag();
Bag_BeginCloseWin0Animation(); Bag_BeginCloseWin0Animation();
@@ -2347,7 +2347,7 @@ static void Task_Bag_TeachyTvStatus(u8 taskId)
HideBagWindow(6); HideBagWindow(6);
PutWindowTilemap(0); PutWindowTilemap(0);
PutWindowTilemap(1); PutWindowTilemap(1);
CopyWindowToVram(0, 1); CopyWindowToVram(0, COPYWIN_MAP);
DestroyListMenuTask(data[0], NULL, NULL); DestroyListMenuTask(data[0], NULL, NULL);
RestorePlayerBag(); RestorePlayerBag();
gItemUseCB = ItemUseCB_MedicineStep; gItemUseCB = ItemUseCB_MedicineStep;
@@ -2388,7 +2388,7 @@ static void Task_Bag_TeachyTvTMs(u8 taskId)
HideBagWindow(6); HideBagWindow(6);
PutWindowTilemap(0); PutWindowTilemap(0);
PutWindowTilemap(1); PutWindowTilemap(1);
CopyWindowToVram(0, 1); CopyWindowToVram(0, COPYWIN_MAP);
DestroyListMenuTask(data[0], NULL, NULL); DestroyListMenuTask(data[0], NULL, NULL);
RestorePlayerBag(); RestorePlayerBag();
sBagMenuDisplay->exitCB = Pokedude_InitTMCase; sBagMenuDisplay->exitCB = Pokedude_InitTMCase;
+22 -22
View File
@@ -120,14 +120,14 @@ static const struct MenuAction sItemPcSubmenuOptions[] = {
{gFameCheckerText_Cancel, {.void_u8 = Task_ItemPcCancel}} {gFameCheckerText_Cancel, {.void_u8 = Task_ItemPcCancel}}
}; };
static const u8 gUnknown_8453F8C[][3] = { static const u8 sTextColors[][3] = {
{0, 1, 2}, {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY},
{0, 2, 3}, {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY},
{0, 3, 2}, {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_DARK_GREY},
{0, 10, 2} {TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_DARK_GREY}
}; };
static const struct WindowTemplate gUnknown_8453F98[] = { static const struct WindowTemplate sWindowTemplates[] = {
{ {
.bg = 0, .bg = 0,
.tilemapLeft = 0x07, .tilemapLeft = 0x07,
@@ -179,7 +179,7 @@ static const struct WindowTemplate gUnknown_8453F98[] = {
}, DUMMY_WIN_TEMPLATE }, DUMMY_WIN_TEMPLATE
}; };
static const struct WindowTemplate gUnknown_8453FD0[] = { static const struct WindowTemplate sSubwindowTemplates[] = {
{ {
.bg = 0, .bg = 0,
.tilemapLeft = 0x06, .tilemapLeft = 0x06,
@@ -207,11 +207,11 @@ static const struct WindowTemplate gUnknown_8453FD0[] = {
} }
}; };
void ItemPc_Init(u8 a0, MainCallback callback) void ItemPc_Init(u8 kind, MainCallback callback)
{ {
u8 i; u8 i;
if (a0 >= 2) if (kind >= 2)
{ {
SetMainCallback2(callback); SetMainCallback2(callback);
return; return;
@@ -221,7 +221,7 @@ void ItemPc_Init(u8 a0, MainCallback callback)
SetMainCallback2(callback); SetMainCallback2(callback);
return; return;
} }
if (a0 != 1) if (kind != 1)
{ {
sListMenuState.savedCallback = callback; sListMenuState.savedCallback = callback;
sListMenuState.scroll = sListMenuState.row = 0; sListMenuState.scroll = sListMenuState.row = 0;
@@ -373,7 +373,7 @@ static bool8 ItemPc_DoGfxSetup(void)
else else
{ {
BeginPCScreenEffect_TurnOn(0, 0, 0); BeginPCScreenEffect_TurnOn(0, 0, 0);
ItemPc_SetInitializedFlag(1); ItemPc_SetInitializedFlag(TRUE);
PlaySE(SE_PC_LOGIN); PlaySE(SE_PC_LOGIN);
} }
gMain.state++; gMain.state++;
@@ -702,15 +702,15 @@ static void ItemPc_SetScrollPosition(void)
} }
} }
static void ItemPc_SetMessageWindowPalette(int a0) static void ItemPc_SetMessageWindowPalette(int palIdx)
{ {
SetBgTilemapPalette(1, 0, 14, 30, 6, a0 + 1); SetBgTilemapPalette(1, 0, 14, 30, 6, palIdx + 1);
ScheduleBgCopyTilemapToVram(1); ScheduleBgCopyTilemapToVram(1);
} }
void ItemPc_SetInitializedFlag(u8 a0) void ItemPc_SetInitializedFlag(bool8 flag)
{ {
sListMenuState.initialized = a0; sListMenuState.initialized = flag;
} }
static void Task_ItemPcMain(u8 taskId) static void Task_ItemPcMain(u8 taskId)
@@ -740,7 +740,7 @@ static void Task_ItemPcMain(u8 taskId)
break; break;
case -2: case -2:
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
ItemPc_SetInitializedFlag(0); ItemPc_SetInitializedFlag(FALSE);
gTasks[taskId].func = Task_ItemPcTurnOff1; gTasks[taskId].func = Task_ItemPcTurnOff1;
break; break;
default: default:
@@ -965,9 +965,9 @@ static void ItemPc_WithdrawMultipleInitWindow(u16 slotId)
ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(0);
} }
static void sub_810E670(s16 quantity) static void UpdateWithdrawQuantityDisplay(s16 quantity)
{ {
FillWindowPixelRect(3, 0x11, 10, 10, 28, 12); FillWindowPixelRect(3, PIXEL_FILL(1), 10, 10, 28, 12);
ConvertIntToDecimalStringN(gStringVar1, quantity, STR_CONV_MODE_LEADING_ZEROS, 3); ConvertIntToDecimalStringN(gStringVar1, quantity, STR_CONV_MODE_LEADING_ZEROS, 3);
StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
ItemPc_AddTextPrinterParameterized(3, 0, gStringVar4, 8, 10, 1, 0, 0, 1); ItemPc_AddTextPrinterParameterized(3, 0, gStringVar4, 8, 10, 1, 0, 0, 1);
@@ -978,7 +978,7 @@ static void Task_ItemPcHandleWithdrawMultiple(u8 taskId)
s16 * data = gTasks[taskId].data; s16 * data = gTasks[taskId].data;
if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE) if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE)
sub_810E670(data[8]); UpdateWithdrawQuantityDisplay(data[8]);
else if (JOY_NEW(A_BUTTON)) else if (JOY_NEW(A_BUTTON))
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
@@ -1067,7 +1067,7 @@ static void ItemPc_InitWindows(void)
{ {
u8 i; u8 i;
InitWindows(gUnknown_8453F98); InitWindows(sWindowTemplates);
DeactivateAllTextPrinters(); DeactivateAllTextPrinters();
TextWindow_SetUserSelectedFrame(0, 0x3C0, 0xE0); TextWindow_SetUserSelectedFrame(0, 0x3C0, 0xE0);
TextWindow_SetStdFrame0_WithPal(0, 0x3A3, 0xC0); TextWindow_SetStdFrame0_WithPal(0, 0x3A3, 0xC0);
@@ -1106,7 +1106,7 @@ static void unused_ItemPc_AddTextPrinterParameterized(u8 windowId, const u8 * st
static void ItemPc_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx) static void ItemPc_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx)
{ {
AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, gUnknown_8453F8C[colorIdx], speed, str); AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, sTextColors[colorIdx], speed, str);
} }
static void ItemPc_SetBorderStyleOnWindow(u8 windowId) static void ItemPc_SetBorderStyleOnWindow(u8 windowId)
@@ -1118,7 +1118,7 @@ static u8 ItemPc_GetOrCreateSubwindow(u8 idx)
{ {
if (sSubmenuWindowIds[idx] == 0xFF) if (sSubmenuWindowIds[idx] == 0xFF)
{ {
sSubmenuWindowIds[idx] = AddWindow(&gUnknown_8453FD0[idx]); sSubmenuWindowIds[idx] = AddWindow(&sSubwindowTemplates[idx]);
DrawStdFrameWithCustomTileAndPalette(sSubmenuWindowIds[idx], TRUE, 0x3A3, 0x0C); DrawStdFrameWithCustomTileAndPalette(sSubmenuWindowIds[idx], TRUE, 0x3A3, 0x0C);
} }
+12 -12
View File
@@ -594,7 +594,7 @@ static void PrintTeachWhichMoveToStrVar1(bool8 onInit)
StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToMon); StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToMon);
PrintTextOnWindow(7, gStringVar4, 0, 2, 0, 2); PrintTextOnWindow(7, gStringVar4, 0, 2, 0, 2);
PutWindowTilemap(7); PutWindowTilemap(7);
CopyWindowToVram(7, 3); CopyWindowToVram(7, COPYWIN_BOTH);
} }
} }
@@ -714,7 +714,7 @@ static void MoveRelearnerMenuHandleInput(void)
static void MoveLearnerInitListMenu(void) static void MoveLearnerInitListMenu(void)
{ {
sMoveRelearner->listMenuTaskId = ListMenuInit(&gMultiuseListMenuTemplate, sMoveRelearner->listMenuScrollPos, sMoveRelearner->listMenuScrollRow); sMoveRelearner->listMenuTaskId = ListMenuInit(&gMultiuseListMenuTemplate, sMoveRelearner->listMenuScrollPos, sMoveRelearner->listMenuScrollRow);
CopyWindowToVram(6, 1); CopyWindowToVram(6, COPYWIN_MAP);
} }
static void PrintMoveInfo(u16 move) static void PrintMoveInfo(u16 move)
@@ -760,8 +760,8 @@ static void LoadMoveInfoUI(void)
PutWindowTilemap(5); PutWindowTilemap(5);
PutWindowTilemap(2); PutWindowTilemap(2);
PutWindowTilemap(7); PutWindowTilemap(7);
CopyWindowToVram(0, 2); CopyWindowToVram(0, COPYWIN_GFX);
CopyWindowToVram(1, 2); CopyWindowToVram(1, COPYWIN_GFX);
} }
static void PrintMoveInfoHandleCancel_CopyToVram(void) static void PrintMoveInfoHandleCancel_CopyToVram(void)
@@ -776,15 +776,15 @@ static void PrintMoveInfoHandleCancel_CopyToVram(void)
for (i = 2; i < 6; i++) for (i = 2; i < 6; i++)
{ {
FillWindowPixelBuffer(i, PIXEL_FILL(0)); FillWindowPixelBuffer(i, PIXEL_FILL(0));
CopyWindowToVram(i, 2); CopyWindowToVram(i, COPYWIN_GFX);
} }
} }
CopyWindowToVram(3, 2); CopyWindowToVram(3, COPYWIN_GFX);
CopyWindowToVram(4, 2); CopyWindowToVram(4, COPYWIN_GFX);
CopyWindowToVram(2, 2); CopyWindowToVram(2, COPYWIN_GFX);
CopyWindowToVram(2, 2); CopyWindowToVram(2, COPYWIN_GFX);
CopyWindowToVram(5, 2); CopyWindowToVram(5, COPYWIN_GFX);
CopyWindowToVram(7, 3); CopyWindowToVram(7, COPYWIN_BOTH);
} }
static void MoveRelearnerMenu_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) static void MoveRelearnerMenu_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list)
@@ -803,7 +803,7 @@ static s8 YesNoMenuProcessInput(void)
if (input != -2) if (input != -2)
{ {
PutWindowTilemap(6); PutWindowTilemap(6);
CopyWindowToVram(6, 1); CopyWindowToVram(6, COPYWIN_MAP);
} }
return input; return input;
} }
+10 -10
View File
@@ -380,7 +380,7 @@ void OpenLink(void)
{ {
sub_80F86F4(); sub_80F86F4();
} }
gReceivedRemoteLinkPlayers = 0; gReceivedRemoteLinkPlayers = FALSE;
for (i = 0; i < MAX_LINK_PLAYERS; i++) for (i = 0; i < MAX_LINK_PLAYERS; i++)
{ {
gRemoteLinkPlayersNotReceived[i] = TRUE; gRemoteLinkPlayersNotReceived[i] = TRUE;
@@ -515,9 +515,9 @@ void HandleReceiveRemoteLinkPlayer(u8 who)
{ {
count += gRemoteLinkPlayersNotReceived[i]; count += gRemoteLinkPlayersNotReceived[i];
} }
if (count == 0 && gReceivedRemoteLinkPlayers == 0) if (count == 0 && !gReceivedRemoteLinkPlayers)
{ {
gReceivedRemoteLinkPlayers = 1; gReceivedRemoteLinkPlayers = TRUE;
} }
} }
@@ -1513,7 +1513,7 @@ void sub_800AE1C(void)
PutWindowTilemap(0); PutWindowTilemap(0);
PutWindowTilemap(2); PutWindowTilemap(2);
CopyWindowToVram(0, 0); CopyWindowToVram(0, 0);
CopyWindowToVram(2, 3); CopyWindowToVram(2, COPYWIN_BOTH);
ShowBg(0); ShowBg(0);
ShowBg(1); ShowBg(1);
} }
@@ -1526,7 +1526,7 @@ void sub_800AED0(void)
PutWindowTilemap(1); PutWindowTilemap(1);
PutWindowTilemap(2); PutWindowTilemap(2);
CopyWindowToVram(1, 0); CopyWindowToVram(1, 0);
CopyWindowToVram(2, 3); CopyWindowToVram(2, COPYWIN_BOTH);
ShowBg(0); ShowBg(0);
} }
@@ -1656,7 +1656,7 @@ bool8 HandleLinkConnection(void)
{ {
gLinkStatus = LinkMain1(&gShouldAdvanceLinkState, gSendCmd, gRecvCmds); gLinkStatus = LinkMain1(&gShouldAdvanceLinkState, gSendCmd, gRecvCmds);
LinkMain2(&gMain.heldKeys); LinkMain2(&gMain.heldKeys);
if ((gLinkStatus & LINK_STAT_RECEIVED_NOTHING) && sub_8058318() == TRUE) if ((gLinkStatus & LINK_STAT_RECEIVED_NOTHING) && IsSendingKeysOverCable() == TRUE)
{ {
return TRUE; return TRUE;
} }
@@ -1665,7 +1665,7 @@ bool8 HandleLinkConnection(void)
{ {
r4 = LinkRfuMain1(); r4 = LinkRfuMain1();
r5 = LinkRfuMain2(); r5 = LinkRfuMain2();
if (sub_8058318() == TRUE) if (IsSendingKeysOverCable() == TRUE)
{ {
if (r4 == TRUE || IsRfuRecvQueueEmpty() || r5) if (r4 == TRUE || IsRfuRecvQueueEmpty() || r5)
{ {
@@ -1678,7 +1678,7 @@ bool8 HandleLinkConnection(void)
void SetWirelessCommType1(void) void SetWirelessCommType1(void)
{ {
if (gReceivedRemoteLinkPlayers == 0) if (!gReceivedRemoteLinkPlayers)
{ {
gWirelessCommType = 1; gWirelessCommType = 1;
} }
@@ -1686,7 +1686,7 @@ void SetWirelessCommType1(void)
static void SetWirelessCommType0(void) static void SetWirelessCommType0(void)
{ {
if (gReceivedRemoteLinkPlayers == 0) if (!gReceivedRemoteLinkPlayers)
{ {
gWirelessCommType = 0; gWirelessCommType = 0;
} }
@@ -1694,7 +1694,7 @@ static void SetWirelessCommType0(void)
void SetWirelessCommType0_UnusedCopy(void) void SetWirelessCommType0_UnusedCopy(void)
{ {
if (gReceivedRemoteLinkPlayers == 0) if (!gReceivedRemoteLinkPlayers)
{ {
gWirelessCommType = 0; gWirelessCommType = 0;
} }
+9 -9
View File
@@ -45,7 +45,7 @@ static void RfuFunc_SendNextBlock(void);
static void RfuFunc_SendLastBlock(void); static void RfuFunc_SendLastBlock(void);
static void CallRfuFunc(void); static void CallRfuFunc(void);
static void sub_80FA738(void); static void sub_80FA738(void);
static int sub_80FA788(void); static s32 sub_80FA788(void);
static void sub_80FA834(u8 taskId); static void sub_80FA834(u8 taskId);
static void sub_80FA9D0(u16 a0); static void sub_80FA9D0(u16 a0);
static void ValidateAndReceivePokemonSioInfo(void * a0); static void ValidateAndReceivePokemonSioInfo(void * a0);
@@ -712,7 +712,7 @@ static bool32 sub_80F911C(void)
if (!lman.acceptSlot_flag) if (!lman.acceptSlot_flag)
{ {
LinkRfu_Shutdown(); LinkRfu_Shutdown();
gReceivedRemoteLinkPlayers = 0; gReceivedRemoteLinkPlayers = FALSE;
return FALSE; return FALSE;
} }
} }
@@ -985,7 +985,7 @@ static void RfuHandleReceiveCommand(u8 unused)
switch (gRecvCmds[i][0] & 0xff00) switch (gRecvCmds[i][0] & 0xff00)
{ {
case RFU_COMMAND_0x7800: case RFU_COMMAND_0x7800:
if (Rfu.parent_child == MODE_CHILD && gReceivedRemoteLinkPlayers != 0) if (Rfu.parent_child == MODE_CHILD && gReceivedRemoteLinkPlayers)
return; return;
// fallthrough // fallthrough
case RFU_COMMAND_0x7700: case RFU_COMMAND_0x7700:
@@ -1017,7 +1017,7 @@ static void RfuHandleReceiveCommand(u8 unused)
{ {
Rfu.cmd_8800_recvbuf[i].receiving = 2; Rfu.cmd_8800_recvbuf[i].receiving = 2;
Rfu_SetBlockReceivedFlag(i); Rfu_SetBlockReceivedFlag(i);
if (GetHostRFUtgtGname()->activity == (ACTIVITY_CHAT | IN_UNION_ROOM) && gReceivedRemoteLinkPlayers != 0 && Rfu.parent_child == MODE_CHILD) if (GetHostRFUtgtGname()->activity == (ACTIVITY_CHAT | IN_UNION_ROOM) && gReceivedRemoteLinkPlayers && Rfu.parent_child == MODE_CHILD)
ValidateAndReceivePokemonSioInfo(gBlockRecvBuffer); ValidateAndReceivePokemonSioInfo(gBlockRecvBuffer);
} }
} }
@@ -1035,11 +1035,11 @@ static void RfuHandleReceiveCommand(u8 unused)
case RFU_COMMAND_0xed00: case RFU_COMMAND_0xed00:
if (Rfu.parent_child == MODE_CHILD) if (Rfu.parent_child == MODE_CHILD)
{ {
if (gReceivedRemoteLinkPlayers != 0) if (gReceivedRemoteLinkPlayers)
{ {
if (gRecvCmds[i][1] & gRfuLinkStatus->connSlotFlag) if (gRecvCmds[i][1] & gRfuLinkStatus->connSlotFlag)
{ {
gReceivedRemoteLinkPlayers = 0; gReceivedRemoteLinkPlayers = FALSE;
rfu_LMAN_requestChangeAgbClockMaster(); rfu_LMAN_requestChangeAgbClockMaster();
Rfu.unk_ce4 = gRecvCmds[i][2]; Rfu.unk_ce4 = gRecvCmds[i][2];
} }
@@ -1283,7 +1283,7 @@ static void RfuFunc_End5F00_PowerDownRfu(void)
{ {
rfu_clearAllSlot(); rfu_clearAllSlot();
rfu_LMAN_powerDownRFU(); rfu_LMAN_powerDownRFU();
gReceivedRemoteLinkPlayers = 0; gReceivedRemoteLinkPlayers = FALSE;
Rfu.isShuttingDown = TRUE; Rfu.isShuttingDown = TRUE;
Rfu.RfuFunc = NULL; Rfu.RfuFunc = NULL;
} }
@@ -1682,7 +1682,7 @@ static void sub_80FA834(u8 taskId)
break; break;
case 6: case 6:
DestroyTask(taskId); DestroyTask(taskId);
gReceivedRemoteLinkPlayers = 1; gReceivedRemoteLinkPlayers = TRUE;
Rfu.unk_ce8 = FALSE; Rfu.unk_ce8 = FALSE;
rfu_LMAN_setLinkRecovery(1, 600); rfu_LMAN_setLinkRecovery(1, 600);
if (Rfu.unionRoomChatters) if (Rfu.unionRoomChatters)
@@ -1836,7 +1836,7 @@ static void sub_80FACF0(u8 taskId)
{ {
ReceiveRfuLinkPlayers((const struct SioInfo *)gBlockRecvBuffer); ReceiveRfuLinkPlayers((const struct SioInfo *)gBlockRecvBuffer);
ResetBlockReceivedFlag(0); ResetBlockReceivedFlag(0);
gReceivedRemoteLinkPlayers = 1; gReceivedRemoteLinkPlayers = TRUE;
DestroyTask(taskId); DestroyTask(taskId);
} }
break; break;
+7 -7
View File
@@ -122,7 +122,7 @@ s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const str
gMultiuseListMenuTemplate = *listMenuTemplate; gMultiuseListMenuTemplate = *listMenuTemplate;
gMultiuseListMenuTemplate.windowId = sMysteryGiftLinkMenu.windowId; gMultiuseListMenuTemplate.windowId = sMysteryGiftLinkMenu.windowId;
sMysteryGiftLinkMenu.listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); sMysteryGiftLinkMenu.listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
CopyWindowToVram(sMysteryGiftLinkMenu.windowId, 1); CopyWindowToVram(sMysteryGiftLinkMenu.windowId, COPYWIN_MAP);
sMysteryGiftLinkMenu.state = 1; sMysteryGiftLinkMenu.state = 1;
break; break;
case 1: case 1:
@@ -155,7 +155,7 @@ s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const str
break; break;
} }
} }
CopyWindowToVram(sMysteryGiftLinkMenu.windowId, 1); CopyWindowToVram(sMysteryGiftLinkMenu.windowId, COPYWIN_MAP);
} }
break; break;
case 2: case 2:
@@ -171,7 +171,7 @@ u8 ListMenuInit(const struct ListMenuTemplate *listMenuTemplate, u16 cursorPos,
{ {
u8 taskId = ListMenuInitInternal(listMenuTemplate, cursorPos, itemsAbove); u8 taskId = ListMenuInitInternal(listMenuTemplate, cursorPos, itemsAbove);
PutWindowTilemap(listMenuTemplate->windowId); PutWindowTilemap(listMenuTemplate->windowId);
CopyWindowToVram(listMenuTemplate->windowId, 2); CopyWindowToVram(listMenuTemplate->windowId, COPYWIN_GFX);
return taskId; return taskId;
} }
@@ -182,7 +182,7 @@ u8 ListMenuInitInRect(const struct ListMenuTemplate *listMenuTemplate, const str
for (i = 0; rect[i].palNum != 0xFF; i++) for (i = 0; rect[i].palNum != 0xFF; i++)
PutWindowRectTilemapOverridePalette(listMenuTemplate->windowId, rect[i].x, rect[i].y, rect[i].width, rect[i].height, rect[i].palNum); PutWindowRectTilemapOverridePalette(listMenuTemplate->windowId, rect[i].x, rect[i].y, rect[i].width, rect[i].height, rect[i].palNum);
CopyWindowToVram(listMenuTemplate->windowId, 2); CopyWindowToVram(listMenuTemplate->windowId, COPYWIN_GFX);
return taskId; return taskId;
} }
@@ -266,7 +266,7 @@ void RedrawListMenu(u8 listTaskId)
FillWindowPixelBuffer(list->template.windowId, PIXEL_FILL(list->template.fillValue)); FillWindowPixelBuffer(list->template.windowId, PIXEL_FILL(list->template.fillValue));
ListMenuPrintEntries(list, list->cursorPos, 0, list->template.maxShowed); ListMenuPrintEntries(list, list->cursorPos, 0, list->template.maxShowed);
ListMenuDrawCursor(list); ListMenuDrawCursor(list);
CopyWindowToVram(list->template.windowId, 2); CopyWindowToVram(list->template.windowId, COPYWIN_GFX);
} }
static void ChangeListMenuPals(u8 listTaskId, u8 cursorPal, u8 fillValue, u8 cursorShadowPal) static void ChangeListMenuPals(u8 listTaskId, u8 cursorPal, u8 fillValue, u8 cursorShadowPal)
@@ -611,7 +611,7 @@ static bool8 ListMenuChangeSelection(struct ListMenu *list, bool8 updateCursorAn
ListMenuErasePrintedCursor(list, oldSelectedRow); ListMenuErasePrintedCursor(list, oldSelectedRow);
ListMenuDrawCursor(list); ListMenuDrawCursor(list);
ListMenuCallSelectionChangedCallback(list, FALSE); ListMenuCallSelectionChangedCallback(list, FALSE);
CopyWindowToVram(list->template.windowId, 2); CopyWindowToVram(list->template.windowId, COPYWIN_GFX);
break; break;
case 2: case 2:
case 3: case 3:
@@ -619,7 +619,7 @@ static bool8 ListMenuChangeSelection(struct ListMenu *list, bool8 updateCursorAn
ListMenuScroll(list, cursorCount, movingDown); ListMenuScroll(list, cursorCount, movingDown);
ListMenuDrawCursor(list); ListMenuDrawCursor(list);
ListMenuCallSelectionChangedCallback(list, FALSE); ListMenuCallSelectionChangedCallback(list, FALSE);
CopyWindowToVram(list->template.windowId, 2); CopyWindowToVram(list->template.windowId, COPYWIN_GFX);
break; break;
} }
} }
+2 -2
View File
@@ -677,8 +677,8 @@ static void AddMailMessagePrinters(void)
width = GetStringWidth(1, gText_From, 0); width = GetStringWidth(1, gText_From, 0);
AddTextPrinterParameterized3(1, 1, sMailViewResources->nameX, sMailViewResources->messageLayout->nameY, sTextColor, 0, gText_From); AddTextPrinterParameterized3(1, 1, sMailViewResources->nameX, sMailViewResources->messageLayout->nameY, sTextColor, 0, gText_From);
AddTextPrinterParameterized3(1, 1, sMailViewResources->nameX + width, sMailViewResources->messageLayout->nameY, sTextColor, 0, sMailViewResources->authorNameBuffer); AddTextPrinterParameterized3(1, 1, sMailViewResources->nameX + width, sMailViewResources->messageLayout->nameY, sTextColor, 0, sMailViewResources->authorNameBuffer);
CopyWindowToVram(0, 3); CopyWindowToVram(0, COPYWIN_BOTH);
CopyWindowToVram(1, 3); CopyWindowToVram(1, COPYWIN_BOTH);
} }
static void VBlankCB_ShowMail(void) static void VBlankCB_ShowMail(void)
+43 -9
View File
@@ -28,11 +28,15 @@ const u8 gGameVersion = GAME_VERSION;
const u8 gGameLanguage = GAME_LANGUAGE; const u8 gGameLanguage = GAME_LANGUAGE;
#if MODERN
const char BuildDateTime[] = __DATE__ " " __TIME__;
#else
#if REVISION == 0 #if REVISION == 0
const char BuildDateTime[] = "2004 04 26 11:20"; const char BuildDateTime[] = "2004 04 26 11:20";
#else #else
const char BuildDateTime[] = "2004 07 20 09:30"; const char BuildDateTime[] = "2004 07 20 09:30";
#endif #endif //REVISION
#endif //MODERN
const IntrFunc gIntrTableTemplate[] = const IntrFunc gIntrTableTemplate[] =
{ {
@@ -84,7 +88,37 @@ void EnableVCountIntrAtLine150(void);
void AgbMain() void AgbMain()
{ {
#if MODERN
// Modern compilers are liberal with the stack on entry to this function,
// so RegisterRamReset may crash if it resets IWRAM.
RegisterRamReset(RESET_ALL & ~RESET_IWRAM);
asm("mov\tr1, #0xC0\n"
"\tlsl\tr1, r1, #0x12\n"
"\tmov\tr2, #0xFC\n"
"\tlsl\tr2, r2, #0x7\n"
"\tadd\tr2, r1, r2\n"
"\tmov\tr0, #0\n"
"\tmov\tr3, r0\n"
"\tmov\tr4, r0\n"
"\tmov\tr5, r0\n"
".LCU%=:\n"
"\tstmia\tr1!, {r0, r3, r4, r5}\n"
"\tstmia\tr1!, {r0, r3, r4, r5}\n"
"\tstmia\tr1!, {r0, r3, r4, r5}\n"
"\tstmia\tr1!, {r0, r3, r4, r5}\n"
"\tstmia\tr1!, {r0, r3, r4, r5}\n"
"\tstmia\tr1!, {r0, r3, r4, r5}\n"
"\tstmia\tr1!, {r0, r3, r4, r5}\n"
"\tstmia\tr1!, {r0, r3, r4, r5}\n"
"\tcmp\tr1, r2\n"
"\tbcc\t.LCU%=\n"
:
:
: "r0", "r1", "r2", "r3", "r4", "r5", "memory"
);
#else
RegisterRamReset(RESET_ALL); RegisterRamReset(RESET_ALL);
#endif //MODERN
*(vu16 *)BG_PLTT = RGB_WHITE; *(vu16 *)BG_PLTT = RGB_WHITE;
InitGpuRegManager(); InitGpuRegManager();
REG_WAITCNT = WAITCNT_PREFETCH_ENABLE | WAITCNT_WS0_S_1 | WAITCNT_WS0_N_3; REG_WAITCNT = WAITCNT_PREFETCH_ENABLE | WAITCNT_WS0_S_1 | WAITCNT_WS0_N_3;
@@ -98,7 +132,7 @@ void AgbMain()
InitMapMusic(); InitMapMusic();
ClearDma3Requests(); ClearDma3Requests();
ResetBgs(); ResetBgs();
InitHeap(gHeap, 0x1C000); InitHeap(gHeap, HEAP_SIZE);
SetDefaultFontsPointer(); SetDefaultFontsPointer();
gSoftResetDisabled = FALSE; gSoftResetDisabled = FALSE;
@@ -128,7 +162,7 @@ void AgbMain()
DoSoftReset(); DoSoftReset();
} }
if (sub_80582E0() == 1) if (Overworld_SendKeysToLinkIsRunning() == TRUE)
{ {
gLinkTransferringData = TRUE; gLinkTransferringData = TRUE;
UpdateLinkAndCallCallbacks(); UpdateLinkAndCallCallbacks();
@@ -139,7 +173,7 @@ void AgbMain()
gLinkTransferringData = FALSE; gLinkTransferringData = FALSE;
UpdateLinkAndCallCallbacks(); UpdateLinkAndCallCallbacks();
if (sub_8058274() == 1) if (Overworld_RecvKeysFromLinkIsRunning() == 1)
{ {
gMain.newKeys = 0; gMain.newKeys = 0;
ClearSpriteCopyRequests(); ClearSpriteCopyRequests();
@@ -259,16 +293,16 @@ static void ReadKeys(void)
gMain.heldKeys = gMain.heldKeysRaw; gMain.heldKeys = gMain.heldKeysRaw;
// Remap L to A if the L=A option is enabled. // Remap L to A if the L=A option is enabled.
if (gSaveBlock2Ptr->optionsButtonMode == 2) if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_L_EQUALS_A)
{ {
if (gMain.newKeys & L_BUTTON) if (JOY_NEW(L_BUTTON))
gMain.newKeys |= A_BUTTON; gMain.newKeys |= A_BUTTON;
if (gMain.heldKeys & L_BUTTON) if (JOY_HELD(L_BUTTON))
gMain.heldKeys |= A_BUTTON; gMain.heldKeys |= A_BUTTON;
} }
if (gMain.newKeys & gMain.watchedKeysMask) if (JOY_NEW(gMain.watchedKeysMask))
gMain.watchedKeysPressed = TRUE; gMain.watchedKeysPressed = TRUE;
} }
@@ -289,7 +323,7 @@ void InitIntrHandlers(void)
REG_IME = 1; REG_IME = 1;
EnableInterrupts(0x1); EnableInterrupts(INTR_FLAG_VBLANK);
} }
void SetVBlankCallback(IntrCallback callback) void SetVBlankCallback(IntrCallback callback)
+13 -13
View File
@@ -352,7 +352,7 @@ static void Task_PrintMainMenuText(u8 taskId)
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_NEWGAME_ONLY, 2, 2, 2, sTextColor1, -1, gText_NewGame); AddTextPrinterParameterized3(MAIN_MENU_WINDOW_NEWGAME_ONLY, 2, 2, 2, sTextColor1, -1, gText_NewGame);
MainMenu_DrawWindow(&sWindowTemplate[MAIN_MENU_WINDOW_NEWGAME_ONLY]); MainMenu_DrawWindow(&sWindowTemplate[MAIN_MENU_WINDOW_NEWGAME_ONLY]);
PutWindowTilemap(MAIN_MENU_WINDOW_NEWGAME_ONLY); PutWindowTilemap(MAIN_MENU_WINDOW_NEWGAME_ONLY);
CopyWindowToVram(MAIN_MENU_WINDOW_NEWGAME_ONLY, 3); CopyWindowToVram(MAIN_MENU_WINDOW_NEWGAME_ONLY, COPYWIN_BOTH);
break; break;
case MAIN_MENU_CONTINUE: case MAIN_MENU_CONTINUE:
FillWindowPixelBuffer(MAIN_MENU_WINDOW_CONTINUE, PIXEL_FILL(10)); FillWindowPixelBuffer(MAIN_MENU_WINDOW_CONTINUE, PIXEL_FILL(10));
@@ -364,8 +364,8 @@ static void Task_PrintMainMenuText(u8 taskId)
MainMenu_DrawWindow(&sWindowTemplate[MAIN_MENU_WINDOW_NEWGAME]); MainMenu_DrawWindow(&sWindowTemplate[MAIN_MENU_WINDOW_NEWGAME]);
PutWindowTilemap(MAIN_MENU_WINDOW_CONTINUE); PutWindowTilemap(MAIN_MENU_WINDOW_CONTINUE);
PutWindowTilemap(MAIN_MENU_WINDOW_NEWGAME); PutWindowTilemap(MAIN_MENU_WINDOW_NEWGAME);
CopyWindowToVram(MAIN_MENU_WINDOW_CONTINUE, 2); CopyWindowToVram(MAIN_MENU_WINDOW_CONTINUE, COPYWIN_GFX);
CopyWindowToVram(MAIN_MENU_WINDOW_NEWGAME, 3); CopyWindowToVram(MAIN_MENU_WINDOW_NEWGAME, COPYWIN_BOTH);
break; break;
case MAIN_MENU_MYSTERYGIFT: case MAIN_MENU_MYSTERYGIFT:
FillWindowPixelBuffer(MAIN_MENU_WINDOW_CONTINUE, PIXEL_FILL(10)); FillWindowPixelBuffer(MAIN_MENU_WINDOW_CONTINUE, PIXEL_FILL(10));
@@ -382,9 +382,9 @@ static void Task_PrintMainMenuText(u8 taskId)
PutWindowTilemap(MAIN_MENU_WINDOW_CONTINUE); PutWindowTilemap(MAIN_MENU_WINDOW_CONTINUE);
PutWindowTilemap(MAIN_MENU_WINDOW_NEWGAME); PutWindowTilemap(MAIN_MENU_WINDOW_NEWGAME);
PutWindowTilemap(MAIN_MENU_WINDOW_MYSTERYGIFT); PutWindowTilemap(MAIN_MENU_WINDOW_MYSTERYGIFT);
CopyWindowToVram(MAIN_MENU_WINDOW_CONTINUE, 2); CopyWindowToVram(MAIN_MENU_WINDOW_CONTINUE, COPYWIN_GFX);
CopyWindowToVram(MAIN_MENU_WINDOW_NEWGAME, 2); CopyWindowToVram(MAIN_MENU_WINDOW_NEWGAME, COPYWIN_GFX);
CopyWindowToVram(MAIN_MENU_WINDOW_MYSTERYGIFT, 3); CopyWindowToVram(MAIN_MENU_WINDOW_MYSTERYGIFT, COPYWIN_BOTH);
break; break;
} }
gTasks[taskId].func = Task_WaitDma3AndFadeIn; gTasks[taskId].func = Task_WaitDma3AndFadeIn;
@@ -392,7 +392,7 @@ static void Task_PrintMainMenuText(u8 taskId)
static void Task_WaitDma3AndFadeIn(u8 taskId) static void Task_WaitDma3AndFadeIn(u8 taskId)
{ {
if (CheckForSpaceForDma3Request(-1) != -1) if (WaitDma3Request(-1) != -1)
{ {
gTasks[taskId].func = Task_UpdateVisualSelection; gTasks[taskId].func = Task_UpdateVisualSelection;
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0xFFFF); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0xFFFF);
@@ -534,7 +534,7 @@ static void Task_ReturnToTileScreen(u8 taskId)
static void MoveWindowByMenuTypeAndCursorPos(u8 menuType, u8 cursorPos) static void MoveWindowByMenuTypeAndCursorPos(u8 menuType, u8 cursorPos)
{ {
u16 win0vTop, win0vBot; u16 win0vTop, win0vBot;
SetGpuReg(REG_OFFSET_WIN0H, 0x12DE); SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(18, 222));
switch (menuType) switch (menuType)
{ {
default: default:
@@ -578,8 +578,8 @@ static bool8 HandleMenuInput(u8 taskId)
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
SetGpuReg(REG_OFFSET_WIN0H, 0xF0); SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240));
SetGpuReg(REG_OFFSET_WIN0V, 0xA0); SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 160));
gTasks[taskId].func = Task_ReturnToTileScreen; gTasks[taskId].func = Task_ReturnToTileScreen;
} }
else if (JOY_NEW(DPAD_UP) && gTasks[taskId].tCursorPos > 0) else if (JOY_NEW(DPAD_UP) && gTasks[taskId].tCursorPos > 0)
@@ -602,9 +602,9 @@ static void PrintMessageOnWindow4(const u8 *str)
MainMenu_DrawWindow(&sWindowTemplate[4]); MainMenu_DrawWindow(&sWindowTemplate[4]);
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_ERROR, 2, 0, 2, sTextColor1, 2, str); AddTextPrinterParameterized3(MAIN_MENU_WINDOW_ERROR, 2, 0, 2, sTextColor1, 2, str);
PutWindowTilemap(MAIN_MENU_WINDOW_ERROR); PutWindowTilemap(MAIN_MENU_WINDOW_ERROR);
CopyWindowToVram(MAIN_MENU_WINDOW_ERROR, 2); CopyWindowToVram(MAIN_MENU_WINDOW_ERROR, COPYWIN_GFX);
SetGpuReg(REG_OFFSET_WIN0H, 0x13DD); SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE( 19, 221));
SetGpuReg(REG_OFFSET_WIN0V, 0x739D); SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(115, 157));
} }
static void PrintContinueStats(void) static void PrintContinueStats(void)
+3 -3
View File
@@ -84,7 +84,7 @@ static void Task_MapNamePopup(u8 taskId)
if (task->tReshow) if (task->tReshow)
{ {
MapNamePopupPrintMapNameOnWindow(task->tWindowId); MapNamePopupPrintMapNameOnWindow(task->tWindowId);
CopyWindowToVram(task->tWindowId, 2); CopyWindowToVram(task->tWindowId, COPYWIN_GFX);
task->tState = 1; task->tState = 1;
task->tReshow = FALSE; task->tReshow = FALSE;
} }
@@ -100,7 +100,7 @@ static void Task_MapNamePopup(u8 taskId)
if (task->tWindowExists && !task->tWindowCleared) if (task->tWindowExists && !task->tWindowCleared)
{ {
rbox_fill_rectangle(task->tWindowId); rbox_fill_rectangle(task->tWindowId);
CopyWindowToVram(task->tWindowId, 1); CopyWindowToVram(task->tWindowId, COPYWIN_MAP);
task->tWindowCleared = TRUE; task->tWindowCleared = TRUE;
} }
task->tState = 7; task->tState = 7;
@@ -183,7 +183,7 @@ static u16 MapNamePopupCreateWindow(bool32 palintoFadedBuffer)
DrawTextBorderOuter(windowId, r6, 0xD); DrawTextBorderOuter(windowId, r6, 0xD);
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
MapNamePopupPrintMapNameOnWindow(windowId); MapNamePopupPrintMapNameOnWindow(windowId);
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
return windowId; return windowId;
} }
+1 -1
View File
@@ -479,7 +479,7 @@ static void Task_RunMapPreviewScreenForest(u8 taskId)
case 0: case 0:
if (!MapPreview_IsGfxLoadFinished() && !IsDma3ManagerBusyWithBgCopy()) if (!MapPreview_IsGfxLoadFinished() && !IsDma3ManagerBusyWithBgCopy())
{ {
CopyWindowToVram(data[11], 3); CopyWindowToVram(data[11], COPYWIN_BOTH);
data[0]++; data[0]++;
} }
break; break;
+9 -9
View File
@@ -1,6 +1,6 @@
#include "global.h" #include "global.h"
s16 sub_80D8AA0(s16 x, s16 y) s16 MathUtil_Mul16(s16 x, s16 y)
{ {
s32 result; s32 result;
@@ -10,7 +10,7 @@ s16 sub_80D8AA0(s16 x, s16 y)
return result; return result;
} }
s16 sub_80D8ABC(u8 s, s16 x, s16 y) s16 MathUtil_Mul16Shift(u8 s, s16 x, s16 y)
{ {
s32 result; s32 result;
@@ -20,7 +20,7 @@ s16 sub_80D8ABC(u8 s, s16 x, s16 y)
return result; return result;
} }
s32 sub_80D8AE0(s32 x, s32 y) s32 MathUtil_Mul32(s32 x, s32 y)
{ {
s64 result; s64 result;
@@ -30,7 +30,7 @@ s32 sub_80D8AE0(s32 x, s32 y)
return result; return result;
} }
s16 sub_80D8B1C(s16 x, s16 y) s16 MathUtil_Div16(s16 x, s16 y)
{ {
if (y == 0) if (y == 0)
{ {
@@ -39,7 +39,7 @@ s16 sub_80D8B1C(s16 x, s16 y)
return (x << 8) / y; return (x << 8) / y;
} }
s16 sub_80D8B40(u8 s, s16 x, s16 y) s16 MathUtil_Div16Shift(u8 s, s16 x, s16 y)
{ {
if (y == 0) if (y == 0)
{ {
@@ -48,7 +48,7 @@ s16 sub_80D8B40(u8 s, s16 x, s16 y)
return (x << s) / y; return (x << s) / y;
} }
s32 sub_80D8B68(s32 x, s32 y) s32 MathUtil_Div32(s32 x, s32 y)
{ {
s64 _x; s64 _x;
@@ -61,7 +61,7 @@ s32 sub_80D8B68(s32 x, s32 y)
return _x / y; return _x / y;
} }
s16 sub_80D8B90(s16 y) s16 MathUtil_Inv16(s16 y)
{ {
s32 x; s32 x;
@@ -69,7 +69,7 @@ s16 sub_80D8B90(s16 y)
return x / y; return x / y;
} }
s16 sub_80D8BA8(u8 s, s16 y) s16 MathUtil_Inv16Shift(u8 s, s16 y)
{ {
s32 x; s32 x;
@@ -77,7 +77,7 @@ s16 sub_80D8BA8(u8 s, s16 y)
return x / y; return x / y;
} }
s32 sub_80D8BC8(s32 y) s32 MathUtil_Inv32(s32 y)
{ {
s64 x; s64 x;
+16 -16
View File
@@ -44,7 +44,7 @@ void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16
FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
if (copyToVram == TRUE) if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
} }
// not used // not used
@@ -56,7 +56,7 @@ static void DrawDialogFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 til
FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
if (copyToVram == TRUE) if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
} }
static void WindowFunc_DrawDialogFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) static void WindowFunc_DrawDialogFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
@@ -96,7 +96,7 @@ void ClearDialogWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
ClearWindowTilemap(windowId); ClearWindowTilemap(windowId);
if (copyToVram == TRUE) if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
} }
static void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) static void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
@@ -112,7 +112,7 @@ void DrawStdFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 bas
FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
if (copyToVram == TRUE) if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
} }
// not used // not used
@@ -124,7 +124,7 @@ static void DrawStdFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 baseTi
FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
if (copyToVram == TRUE) if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
} }
static void WindowFunc_DrawStdFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) static void WindowFunc_DrawStdFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
@@ -145,7 +145,7 @@ void ClearStdWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
ClearWindowTilemap(windowId); ClearWindowTilemap(windowId);
if (copyToVram == TRUE) if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
} }
static void WindowFunc_ClearStdWindowAndFrameToTransparent(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) static void WindowFunc_ClearStdWindowAndFrameToTransparent(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
@@ -195,7 +195,7 @@ void TopBarWindowPrintString(const u8 *string, u8 unused, bool8 copyToVram)
width = GetStringWidth(0, string, 0); width = GetStringWidth(0, string, 0);
AddTextPrinterParameterized3(sTopBarWindowId, 0, -20 - width, 1, gUnknown_8456618, 0, string); AddTextPrinterParameterized3(sTopBarWindowId, 0, -20 - width, 1, gUnknown_8456618, 0, string);
if (copyToVram) if (copyToVram)
CopyWindowToVram(sTopBarWindowId, 3); CopyWindowToVram(sTopBarWindowId, COPYWIN_BOTH);
} }
} }
@@ -228,7 +228,7 @@ void TopBarWindowPrintTwoStrings(const u8 *string, const u8 *string2, bool8 fgCo
} }
AddTextPrinterParameterized4(sTopBarWindowId, 1, 4, 1, 0, 0, color, 0, string); AddTextPrinterParameterized4(sTopBarWindowId, 1, 4, 1, 0, 0, color, 0, string);
if (copyToVram) if (copyToVram)
CopyWindowToVram(sTopBarWindowId, 3); CopyWindowToVram(sTopBarWindowId, COPYWIN_BOTH);
} }
} }
@@ -236,7 +236,7 @@ void TopBarWindowPrintTwoStrings(const u8 *string, const u8 *string2, bool8 fgCo
static void CopyTopBarWindowToVram(void) static void CopyTopBarWindowToVram(void)
{ {
if (sTopBarWindowId != 0xFF) if (sTopBarWindowId != 0xFF)
CopyWindowToVram(sTopBarWindowId, 3); CopyWindowToVram(sTopBarWindowId, COPYWIN_BOTH);
} }
void ClearTopBarWindow(void) void ClearTopBarWindow(void)
@@ -244,7 +244,7 @@ void ClearTopBarWindow(void)
if (sTopBarWindowId != 0xFF) if (sTopBarWindowId != 0xFF)
{ {
FillWindowPixelBuffer(sTopBarWindowId, PIXEL_FILL(15)); FillWindowPixelBuffer(sTopBarWindowId, PIXEL_FILL(15));
CopyWindowToVram(sTopBarWindowId, 3); CopyWindowToVram(sTopBarWindowId, COPYWIN_BOTH);
} }
} }
@@ -254,7 +254,7 @@ void DestroyTopBarWindow(void)
{ {
FillWindowPixelBuffer(sTopBarWindowId, PIXEL_FILL(0)); FillWindowPixelBuffer(sTopBarWindowId, PIXEL_FILL(0));
ClearWindowTilemap(sTopBarWindowId); ClearWindowTilemap(sTopBarWindowId);
CopyWindowToVram(sTopBarWindowId, 3); CopyWindowToVram(sTopBarWindowId, COPYWIN_BOTH);
RemoveWindow(sTopBarWindowId); RemoveWindow(sTopBarWindowId);
sTopBarWindowId = 0xFF; sTopBarWindowId = 0xFF;
} }
@@ -457,7 +457,7 @@ void PrintTextArray(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 i
for (i = 0; i < itemCount; i++) for (i = 0; i < itemCount; i++)
AddTextPrinterParameterized(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL); AddTextPrinterParameterized(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL);
CopyWindowToVram(windowId, 2); CopyWindowToVram(windowId, COPYWIN_GFX);
} }
void MultichoiceList_PrintItems(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, u8 letterSpacing, u8 lineSpacing) void MultichoiceList_PrintItems(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, u8 letterSpacing, u8 lineSpacing)
@@ -466,7 +466,7 @@ void MultichoiceList_PrintItems(u8 windowId, u8 fontId, u8 left, u8 top, u8 line
for (i = 0; i < itemCount; i++) for (i = 0; i < itemCount; i++)
AddTextPrinterParameterized5(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL, letterSpacing, lineSpacing); AddTextPrinterParameterized5(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL, letterSpacing, lineSpacing);
CopyWindowToVram(windowId, 2); CopyWindowToVram(windowId, COPYWIN_GFX);
} }
void UnionRoomAndTradeMenuPrintOptions(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *strs) void UnionRoomAndTradeMenuPrintOptions(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *strs)
@@ -498,7 +498,7 @@ void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 l
printer.currentY = printer.y; printer.currentY = printer.y;
AddTextPrinter(&printer, 0xFF, NULL); AddTextPrinter(&printer, 0xFF, NULL);
} }
CopyWindowToVram(windowId, 2); CopyWindowToVram(windowId, COPYWIN_GFX);
} }
// not used // not used
@@ -583,7 +583,7 @@ void MultichoiceGrid_PrintItems(u8 windowId, u8 fontId, u8 itemWidth, u8 itemHei
for (i = 0; i < rows; ++i) for (i = 0; i < rows; ++i)
for (j = 0; j < cols; ++j) for (j = 0; j < cols; ++j)
AddTextPrinterParameterized(windowId, fontId, strs[i * cols + j].text, itemWidth * j + width, yOffset + itemHeight * i, 0xFF, 0); AddTextPrinterParameterized(windowId, fontId, strs[i * cols + j].text, itemWidth * j + width, yOffset + itemHeight * i, 0xFF, 0);
CopyWindowToVram(windowId, 2); CopyWindowToVram(windowId, COPYWIN_GFX);
} }
//not used //not used
@@ -598,7 +598,7 @@ static void MultichoiceGrid_PrintItemsCustomOrder(u8 windowId, u8 fontId, u8 ite
for (i = 0; i < rows; ++i) for (i = 0; i < rows; ++i)
for (j = 0; j < cols; ++j) for (j = 0; j < cols; ++j)
AddTextPrinterParameterized(windowId, fontId, strs[orderArray[i * cols + j]].text, itemWidth * j + width, itemHeight * i, 0xFF, 0); AddTextPrinterParameterized(windowId, fontId, strs[orderArray[i * cols + j]].text, itemWidth * j + width, itemHeight * i, 0xFF, 0);
CopyWindowToVram(windowId, 2); CopyWindowToVram(windowId, COPYWIN_GFX);
} }
static u8 MultichoiceGrid_InitCursorInternal(u8 windowId, u8 fontId, u8 left, u8 top, u8 optionWidth, u8 cursorHeight, u8 cols, u8 rows, u8 numChoices, u8 cursorPos) static u8 MultichoiceGrid_InitCursorInternal(u8 windowId, u8 fontId, u8 left, u8 top, u8 optionWidth, u8 cursorHeight, u8 cols, u8 rows, u8 numChoices, u8 cursorPos)
+18 -18
View File
@@ -169,17 +169,17 @@ void ResetAllBgsCoordinatesAndBgCntRegs(void)
ChangeBgY(3, 0, 0); ChangeBgY(3, 0, 0);
} }
bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1) bool8 AdjustQuantityAccordingToDPadInput(s16 *quantity_p, u16 qmax)
{ {
s16 valBefore = (*arg0); s16 valBefore = (*quantity_p);
if (JOY_REPT(DPAD_ANY) == DPAD_UP) if (JOY_REPT(DPAD_ANY) == DPAD_UP)
{ {
(*arg0)++; (*quantity_p)++;
if ((*arg0) > arg1) if ((*quantity_p) > qmax)
(*arg0) = 1; (*quantity_p) = 1;
if ((*arg0) == valBefore) if ((*quantity_p) == valBefore)
{ {
return FALSE; return FALSE;
} }
@@ -191,10 +191,10 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
} }
else if (JOY_REPT(DPAD_ANY) == DPAD_DOWN) else if (JOY_REPT(DPAD_ANY) == DPAD_DOWN)
{ {
(*arg0)--; (*quantity_p)--;
if ((*arg0) <= 0) if ((*quantity_p) <= 0)
(*arg0) = arg1; (*quantity_p) = qmax;
if ((*arg0) == valBefore) if ((*quantity_p) == valBefore)
{ {
return FALSE; return FALSE;
} }
@@ -206,10 +206,10 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
} }
else if (JOY_REPT(DPAD_ANY) == DPAD_RIGHT) else if (JOY_REPT(DPAD_ANY) == DPAD_RIGHT)
{ {
(*arg0) += 10; (*quantity_p) += 10;
if ((*arg0) > arg1) if ((*quantity_p) > qmax)
(*arg0) = arg1; (*quantity_p) = qmax;
if ((*arg0) == valBefore) if ((*quantity_p) == valBefore)
{ {
return FALSE; return FALSE;
} }
@@ -221,10 +221,10 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
} }
else if (JOY_REPT(DPAD_ANY) == DPAD_LEFT) else if (JOY_REPT(DPAD_ANY) == DPAD_LEFT)
{ {
(*arg0) -= 10; (*quantity_p) -= 10;
if ((*arg0) <= 0) if ((*quantity_p) <= 0)
(*arg0) = 1; (*quantity_p) = 1;
if ((*arg0) == valBefore) if ((*quantity_p) == valBefore)
{ {
return FALSE; return FALSE;
} }
+1 -1
View File
@@ -397,7 +397,7 @@ static void sub_8145D18(u8 whichWindow)
} }
break; break;
} }
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
} }
static void sub_8146060(void) static void sub_8146060(void)
+2 -2
View File
@@ -326,8 +326,8 @@ static void sub_8146A30(void)
{ {
AddTextPrinterParameterized3(sWork->windowIds[1], 3, 0, 16 * i + 2, sTextPals[sWork->bgSpec->textPal2], 0, sWork->messages[i]); AddTextPrinterParameterized3(sWork->windowIds[1], 3, 0, 16 * i + 2, sTextPals[sWork->bgSpec->textPal2], 0, sWork->messages[i]);
} }
CopyWindowToVram(sWork->windowIds[0], 3); CopyWindowToVram(sWork->windowIds[0], COPYWIN_BOTH);
CopyWindowToVram(sWork->windowIds[1], 3); CopyWindowToVram(sWork->windowIds[1], COPYWIN_BOTH);
} }
static void sub_8146B58(void) static void sub_8146B58(void)
+2 -2
View File
@@ -507,8 +507,8 @@ static struct Sprite * CreateMonMarkingSprite(u16 tileTag, u16 paletteTag, const
return NULL; return NULL;
} }
void sub_80BEBD0(u8 markings, void * dest) void RequestDma3LoadMonMarking(u8 markings, void * dest)
{ {
RequestDma3Copy(&sMonMarkingsTiles[64 * markings], dest, 0x80, 1); RequestDma3Copy(&sMonMarkingsTiles[64 * markings], dest, 0x80, DMA3_32BIT);
} }
+1 -1
View File
@@ -131,6 +131,6 @@ void DrawMoneyBox(int amount, u8 x, u8 y)
void HideMoneyBox(void) void HideMoneyBox(void)
{ {
ClearStdWindowAndFrameToTransparent(sMoneyBoxWindowId, FALSE); ClearStdWindowAndFrameToTransparent(sMoneyBoxWindowId, FALSE);
CopyWindowToVram(sMoneyBoxWindowId, 2); CopyWindowToVram(sMoneyBoxWindowId, COPYWIN_GFX);
RemoveWindow(sMoneyBoxWindowId); RemoveWindow(sMoneyBoxWindowId);
} }
+2 -2
View File
@@ -1,7 +1,7 @@
#include "global.h" #include "global.h"
#include "multiboot.h" #include "multiboot.h"
static IWRAM_DATA u16 MultiBoot_required_data[MULTIBOOT_NCHILD]; static u16 MultiBoot_required_data[MULTIBOOT_NCHILD];
static int MultiBootSend(struct MultiBootParam *mp, u16 data); static int MultiBootSend(struct MultiBootParam *mp, u16 data);
static int MultiBootHandShake(struct MultiBootParam *mp); static int MultiBootHandShake(struct MultiBootParam *mp);
@@ -390,7 +390,7 @@ static int MultiBootHandShake(struct MultiBootParam *mp)
#undef must_data #undef must_data
} }
static void MultiBootWaitCycles(u32 cycles) static NOINLINE void MultiBootWaitCycles(u32 cycles)
{ {
asm("mov r2, pc"); asm("mov r2, pc");
asm("lsr r2, #24"); asm("lsr r2, #24");
+12 -12
View File
@@ -478,7 +478,7 @@ void PrintMysteryGiftOrEReaderTopMenu(bool8 mg_or_ereader, bool32 usePickOkCance
AddTextPrinterParameterized4(0, 2, 2, 2, 0, 0, sMG_Ereader_TextColor_1, 0, gJPText_MysteryGift); AddTextPrinterParameterized4(0, 2, 2, 2, 0, 0, sMG_Ereader_TextColor_1, 0, gJPText_MysteryGift);
AddTextPrinterParameterized4(0, 0, 0x78, 2, 0, 0, sMG_Ereader_TextColor_1, 0, gJPText_DecideStop); AddTextPrinterParameterized4(0, 0, 0x78, 2, 0, 0, sMG_Ereader_TextColor_1, 0, gJPText_DecideStop);
} }
CopyWindowToVram(0, 2); CopyWindowToVram(0, COPYWIN_GFX);
PutWindowTilemap(0); PutWindowTilemap(0);
} }
@@ -530,14 +530,14 @@ void AddTextPrinterToWindow1(const u8 *str)
AddTextPrinterParameterized4(1, 2, 0, 2, 0, 2, sMG_Ereader_TextColor_2, 0, gStringVar4); AddTextPrinterParameterized4(1, 2, 0, 2, 0, 2, sMG_Ereader_TextColor_2, 0, gStringVar4);
DrawTextBorderOuter(1, 0x001, 0xF); DrawTextBorderOuter(1, 0x001, 0xF);
PutWindowTilemap(1); PutWindowTilemap(1);
CopyWindowToVram(1, 3); CopyWindowToVram(1, COPYWIN_BOTH);
} }
void ClearTextWindow(void) void ClearTextWindow(void)
{ {
rbox_fill_rectangle(1); rbox_fill_rectangle(1);
ClearWindowTilemap(1); ClearWindowTilemap(1);
CopyWindowToVram(1, 1); CopyWindowToVram(1, COPYWIN_MAP);
} }
bool32 MG_PrintTextOnWindow1AndWaitButton(u8 *textState, const u8 *str) bool32 MG_PrintTextOnWindow1AndWaitButton(u8 *textState, const u8 *str)
@@ -645,7 +645,7 @@ u32 MysteryGift_HandleThreeOptionMenu(u8 * unused0, u16 * unused1, u8 whichMenu)
if (response != -1) if (response != -1)
{ {
ClearWindowTilemap(2); ClearWindowTilemap(2);
CopyWindowToVram(2, 1); CopyWindowToVram(2, COPYWIN_MAP);
} }
return response; return response;
} }
@@ -670,7 +670,7 @@ s8 mevent_message_print_and_prompt_yes_no(u8 * textState, u16 * windowId, bool8
FillWindowPixelBuffer(*windowId, 0x11); FillWindowPixelBuffer(*windowId, 0x11);
AddTextPrinterParameterized4(*windowId, 2, 0, 2, 0, 2, sMG_Ereader_TextColor_2, 0, gStringVar4); AddTextPrinterParameterized4(*windowId, 2, 0, 2, 0, 2, sMG_Ereader_TextColor_2, 0, gStringVar4);
DrawTextBorderOuter(*windowId, 0x001, 0x0F); DrawTextBorderOuter(*windowId, 0x001, 0x0F);
CopyWindowToVram(*windowId, 2); CopyWindowToVram(*windowId, COPYWIN_GFX);
PutWindowTilemap(*windowId); PutWindowTilemap(*windowId);
(*textState)++; (*textState)++;
break; break;
@@ -694,7 +694,7 @@ s8 mevent_message_print_and_prompt_yes_no(u8 * textState, u16 * windowId, bool8
*textState = 0; *textState = 0;
rbox_fill_rectangle(*windowId); rbox_fill_rectangle(*windowId);
ClearWindowTilemap(*windowId); ClearWindowTilemap(*windowId);
CopyWindowToVram(*windowId, 1); CopyWindowToVram(*windowId, COPYWIN_MAP);
RemoveWindow(*windowId); RemoveWindow(*windowId);
return input; return input;
} }
@@ -703,7 +703,7 @@ s8 mevent_message_print_and_prompt_yes_no(u8 * textState, u16 * windowId, bool8
*textState = 0; *textState = 0;
rbox_fill_rectangle(*windowId); rbox_fill_rectangle(*windowId);
ClearWindowTilemap(*windowId); ClearWindowTilemap(*windowId);
CopyWindowToVram(*windowId, 1); CopyWindowToVram(*windowId, COPYWIN_MAP);
RemoveWindow(*windowId); RemoveWindow(*windowId);
return -1; return -1;
} }
@@ -731,7 +731,7 @@ s32 HandleMysteryGiftListMenu(u8 * textState, u16 * windowId, bool32 cannotToss,
FillWindowPixelBuffer(*windowId, 0x11); FillWindowPixelBuffer(*windowId, 0x11);
AddTextPrinterParameterized4(*windowId, 2, 0, 2, 0, 2, sMG_Ereader_TextColor_2, 0, gStringVar4); AddTextPrinterParameterized4(*windowId, 2, 0, 2, 0, 2, sMG_Ereader_TextColor_2, 0, gStringVar4);
DrawTextBorderOuter(*windowId, 0x001, 0x0F); DrawTextBorderOuter(*windowId, 0x001, 0x0F);
CopyWindowToVram(*windowId, 2); CopyWindowToVram(*windowId, COPYWIN_GFX);
PutWindowTilemap(*windowId); PutWindowTilemap(*windowId);
(*textState)++; (*textState)++;
break; break;
@@ -764,7 +764,7 @@ s32 HandleMysteryGiftListMenu(u8 * textState, u16 * windowId, bool32 cannotToss,
*textState = 0; *textState = 0;
rbox_fill_rectangle(*windowId); rbox_fill_rectangle(*windowId);
ClearWindowTilemap(*windowId); ClearWindowTilemap(*windowId);
CopyWindowToVram(*windowId, 1); CopyWindowToVram(*windowId, COPYWIN_MAP);
RemoveWindow(*windowId); RemoveWindow(*windowId);
return input; return input;
} }
@@ -773,7 +773,7 @@ s32 HandleMysteryGiftListMenu(u8 * textState, u16 * windowId, bool32 cannotToss,
*textState = 0; *textState = 0;
rbox_fill_rectangle(*windowId); rbox_fill_rectangle(*windowId);
ClearWindowTilemap(*windowId); ClearWindowTilemap(*windowId);
CopyWindowToVram(*windowId, 1); CopyWindowToVram(*windowId, COPYWIN_MAP);
RemoveWindow(*windowId); RemoveWindow(*windowId);
return -2; return -2;
} }
@@ -1252,7 +1252,7 @@ void task00_mystery_gift(u8 taskId)
data->state = 6; data->state = 6;
break; break;
case 6: case 6:
if (gReceivedRemoteLinkPlayers != 0) if (gReceivedRemoteLinkPlayers)
{ {
ClearScreenInBg0(TRUE); ClearScreenInBg0(TRUE);
data->state = 7; data->state = 7;
@@ -1600,7 +1600,7 @@ void task00_mystery_gift(u8 taskId)
} }
break; break;
case 30: case 30:
if (gReceivedRemoteLinkPlayers != 0) if (gReceivedRemoteLinkPlayers)
{ {
ClearScreenInBg0(1); ClearScreenInBg0(1);
data->state = 31; data->state = 31;
+3 -3
View File
@@ -708,7 +708,7 @@ static void pokemon_transfer_to_pc_with_message(void)
DrawDialogueFrame(0, FALSE); DrawDialogueFrame(0, FALSE);
gTextFlags.canABSpeedUpPrint = TRUE; gTextFlags.canABSpeedUpPrint = TRUE;
AddTextPrinterParameterized2(0, 2, gStringVar4, GetTextSpeedSetting(), NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY); AddTextPrinterParameterized2(0, 2, gStringVar4, GetTextSpeedSetting(), NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
CopyWindowToVram(0, 3); CopyWindowToVram(0, COPYWIN_BOTH);
} }
static bool8 sub_809E1D4(void) static bool8 sub_809E1D4(void)
@@ -1804,7 +1804,7 @@ static void PrintBufferCharactersOnScreen(void)
} }
CallAddGenderIconFunc(); CallAddGenderIconFunc();
CopyWindowToVram(sNamingScreenData->windows[2], 2); CopyWindowToVram(sNamingScreenData->windows[2], COPYWIN_GFX);
PutWindowTilemap(sNamingScreenData->windows[2]); PutWindowTilemap(sNamingScreenData->windows[2]);
} }
@@ -1887,7 +1887,7 @@ static void sub_809FAE4(void)
FillWindowPixelBuffer(sNamingScreenData->windows[4], PIXEL_FILL(15)); FillWindowPixelBuffer(sNamingScreenData->windows[4], PIXEL_FILL(15));
AddTextPrinterParameterized3(sNamingScreenData->windows[4], 0, 236 - strwidth, 0, color, 0, gText_MoveOkBack); AddTextPrinterParameterized3(sNamingScreenData->windows[4], 0, 236 - strwidth, 0, color, 0, gText_MoveOkBack);
PutWindowTilemap(sNamingScreenData->windows[4]); PutWindowTilemap(sNamingScreenData->windows[4]);
CopyWindowToVram(sNamingScreenData->windows[4], 3); CopyWindowToVram(sNamingScreenData->windows[4], COPYWIN_BOTH);
} }
static void sub_809FB70(void) static void sub_809FB70(void)
+6 -6
View File
@@ -299,7 +299,7 @@ void DecompressAndLoadBgGfxUsingHeap2(u8 bgId, const void *src, u32 size, u16 of
static void TaskFreeBufAfterCopyingTileDataToVram(u8 taskId) static void TaskFreeBufAfterCopyingTileDataToVram(u8 taskId)
{ {
if (!CheckForSpaceForDma3Request(gTasks[taskId].data[0])) if (!WaitDma3Request(gTasks[taskId].data[0]))
{ {
Free((void *)GetWordTaskArg(taskId, 1)); Free((void *)GetWordTaskArg(taskId, 1));
DestroyTask(taskId); DestroyTask(taskId);
@@ -471,7 +471,7 @@ void DrawDialogueFrame(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
if (copyToVram == TRUE) if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
} }
void DrawStdWindowFrame(u8 windowId, bool8 copyToVram) void DrawStdWindowFrame(u8 windowId, bool8 copyToVram)
@@ -480,7 +480,7 @@ void DrawStdWindowFrame(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
if (copyToVram == TRUE) if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
} }
void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram) void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram)
@@ -489,7 +489,7 @@ void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
ClearWindowTilemap(windowId); ClearWindowTilemap(windowId);
if (copyToVram == TRUE) if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
if (gQuestLogState == QL_STATE_PLAYBACK) if (gQuestLogState == QL_STATE_PLAYBACK)
CommitQuestLogWindow1(); CommitQuestLogWindow1();
} }
@@ -500,7 +500,7 @@ void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
ClearWindowTilemap(windowId); ClearWindowTilemap(windowId);
if (copyToVram == TRUE) if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3); CopyWindowToVram(windowId, COPYWIN_BOTH);
} }
static void WindowFunc_DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) static void WindowFunc_DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
@@ -644,7 +644,7 @@ void DisplayItemMessageOnField(u8 taskId, u8 textSpeed, const u8 *string, TaskFu
{ {
LoadStdWindowFrameGfx(); LoadStdWindowFrameGfx();
DisplayMessageAndContinueTask(taskId, 0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM, textSpeed, GetTextSpeedSetting(), string, callback); DisplayMessageAndContinueTask(taskId, 0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM, textSpeed, GetTextSpeedSetting(), string, callback);
CopyWindowToVram(0, 3); CopyWindowToVram(0, COPYWIN_BOTH);
} }
void DisplayYesNoMenuDefaultYes(void) void DisplayYesNoMenuDefaultYes(void)
+11 -11
View File
@@ -584,7 +584,7 @@ static void CreateHelpDocsPage1(void)
PutWindowTilemap(sOakSpeechResources->unk_0014[0]); PutWindowTilemap(sOakSpeechResources->unk_0014[0]);
FillWindowPixelBuffer(sOakSpeechResources->unk_0014[0], 0x00); FillWindowPixelBuffer(sOakSpeechResources->unk_0014[0], 0x00);
AddTextPrinterParameterized4(sOakSpeechResources->unk_0014[0], 2, 2, 0, 1, 1, sTextColor_HelpSystem, 0, gNewGame_HelpDocs1); AddTextPrinterParameterized4(sOakSpeechResources->unk_0014[0], 2, 2, 0, 1, 1, sTextColor_HelpSystem, 0, gNewGame_HelpDocs1);
CopyWindowToVram(sOakSpeechResources->unk_0014[0], 3); CopyWindowToVram(sOakSpeechResources->unk_0014[0], COPYWIN_BOTH);
FillBgTilemapBufferRect_Palette0(1, 0x3000, 1, 3, 5, 16); FillBgTilemapBufferRect_Palette0(1, 0x3000, 1, 3, 5, 16);
CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(1);
} }
@@ -606,7 +606,7 @@ static void Task_OakSpeech4(u8 taskId)
PutWindowTilemap(sOakSpeechResources->unk_0014[i]); PutWindowTilemap(sOakSpeechResources->unk_0014[i]);
FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00); FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00);
AddTextPrinterParameterized4(sOakSpeechResources->unk_0014[i], 2, 6, 0, 1, 1, sTextColor_HelpSystem, 0, sHelpDocsPtrs[i + r7 * 3]); AddTextPrinterParameterized4(sOakSpeechResources->unk_0014[i], 2, 6, 0, 1, 1, sTextColor_HelpSystem, 0, sHelpDocsPtrs[i + r7 * 3]);
CopyWindowToVram(sOakSpeechResources->unk_0014[i], 3); CopyWindowToVram(sOakSpeechResources->unk_0014[i], COPYWIN_BOTH);
} }
if (sOakSpeechResources->unk_0012 == 1) if (sOakSpeechResources->unk_0012 == 1)
@@ -675,7 +675,7 @@ static void Task_OakSpeech3(u8 taskId)
{ {
FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00); FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00);
ClearWindowTilemap(sOakSpeechResources->unk_0014[i]); ClearWindowTilemap(sOakSpeechResources->unk_0014[i]);
CopyWindowToVram(sOakSpeechResources->unk_0014[i], 3); CopyWindowToVram(sOakSpeechResources->unk_0014[i], COPYWIN_BOTH);
RemoveWindow(sOakSpeechResources->unk_0014[i]); RemoveWindow(sOakSpeechResources->unk_0014[i]);
sOakSpeechResources->unk_0014[i] = 0; sOakSpeechResources->unk_0014[i] = 0;
} }
@@ -699,7 +699,7 @@ static void Task_OakSpeech5(u8 taskId)
{ {
FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00); FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00);
ClearWindowTilemap(sOakSpeechResources->unk_0014[i]); ClearWindowTilemap(sOakSpeechResources->unk_0014[i]);
CopyWindowToVram(sOakSpeechResources->unk_0014[i], 3); CopyWindowToVram(sOakSpeechResources->unk_0014[i], COPYWIN_BOTH);
RemoveWindow(sOakSpeechResources->unk_0014[i]); RemoveWindow(sOakSpeechResources->unk_0014[i]);
sOakSpeechResources->unk_0014[i] = 0; sOakSpeechResources->unk_0014[i] = 0;
} }
@@ -733,7 +733,7 @@ static void Task_OakSpeech6(u8 taskId)
data[14] = AddWindow(&sNewGameAdventureIntroWindowTemplates[0]); data[14] = AddWindow(&sNewGameAdventureIntroWindowTemplates[0]);
PutWindowTilemap(data[14]); PutWindowTilemap(data[14]);
FillWindowPixelBuffer(data[14], 0x00); FillWindowPixelBuffer(data[14], 0x00);
CopyWindowToVram(data[14], 3); CopyWindowToVram(data[14], COPYWIN_BOTH);
sOakSpeechResources->unk_0012 = 0; sOakSpeechResources->unk_0012 = 0;
gMain.state = 0; gMain.state = 0;
data[15] = 16; data[15] = 16;
@@ -856,7 +856,7 @@ static void Task_OakSpeech8(u8 taskId)
DestroyTopBarWindow(); DestroyTopBarWindow();
FillWindowPixelBuffer(data[14], 0x00); FillWindowPixelBuffer(data[14], 0x00);
ClearWindowTilemap(data[14]); ClearWindowTilemap(data[14]);
CopyWindowToVram(data[14], 3); CopyWindowToVram(data[14], COPYWIN_BOTH);
RemoveWindow(data[14]); RemoveWindow(data[14]);
data[14] = 0; data[14] = 0;
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20);
@@ -902,7 +902,7 @@ static void Task_OakSpeech9(u8 taskId)
{ \ { \
AddTextPrinterParameterized2(0, 4, str, speed, NULL, 2, 1, 3); \ AddTextPrinterParameterized2(0, 4, str, speed, NULL, 2, 1, 3); \
} \ } \
CopyWindowToVram(0, 3); \ CopyWindowToVram(0, COPYWIN_BOTH); \
}) })
static void Task_OakSpeech10(u8 taskId) static void Task_OakSpeech10(u8 taskId)
@@ -1072,7 +1072,7 @@ static void Task_OakSpeech19(u8 taskId)
sOakSpeechResources->textColor[2] = 3; sOakSpeechResources->textColor[2] = 3;
AddTextPrinterParameterized3(gTasks[taskId].data[13], 2, 8, 17, sOakSpeechResources->textColor, 0, gText_Girl); AddTextPrinterParameterized3(gTasks[taskId].data[13], 2, 8, 17, sOakSpeechResources->textColor, 0, gText_Girl);
Menu_InitCursor(gTasks[taskId].data[13], 2, 0, 1, GetFontAttribute(2, 1) + 2, 2, 0); Menu_InitCursor(gTasks[taskId].data[13], 2, 0, 1, GetFontAttribute(2, 1) + 2, 2, 0);
CopyWindowToVram(gTasks[taskId].data[13], 3); CopyWindowToVram(gTasks[taskId].data[13], COPYWIN_BOTH);
gTasks[taskId].func = Task_OakSpeech20; gTasks[taskId].func = Task_OakSpeech20;
} }
} }
@@ -1419,8 +1419,8 @@ static void Task_OakSpeech39(u8 taskId)
PlaySE(SE_TK_WARPIN); PlaySE(SE_TK_WARPIN);
r0 = data[2]; r0 = data[2];
data[2] -= 32; data[2] -= 32;
x = sub_80D8B90(r0 - 8); x = MathUtil_Inv16(r0 - 8);
y = sub_80D8B90(data[2] - 16); y = MathUtil_Inv16(data[2] - 16);
SetBgAffine(2, 0x7800, 0x5400, 0x78, 0x54, x, y, 0); SetBgAffine(2, 0x7800, 0x5400, 0x78, 0x54, x, y, 0);
if (data[2] <= 96) if (data[2] <= 96)
{ {
@@ -1869,7 +1869,7 @@ static void PrintNameChoiceOptions(u8 taskId, u8 state)
AddTextPrinterParameterized(data[13], 2, textPtrs[i], 8, 16 * (i + 1) + 1, 0, NULL); AddTextPrinterParameterized(data[13], 2, textPtrs[i], 8, 16 * (i + 1) + 1, 0, NULL);
} }
Menu_InitCursor(data[13], 2, 0, 1, 16, 5, 0); Menu_InitCursor(data[13], 2, 0, 1, 16, 5, 0);
CopyWindowToVram(data[13], 3); CopyWindowToVram(data[13], COPYWIN_BOTH);
} }
static void GetDefaultName(u8 arg0, u8 namePick) static void GetDefaultName(u8 arg0, u8 namePick)
+3 -3
View File
@@ -318,7 +318,7 @@ static void OptionMenu_PickSwitchCancel(void)
FillWindowPixelBuffer(2, PIXEL_FILL(15)); FillWindowPixelBuffer(2, PIXEL_FILL(15));
AddTextPrinterParameterized3(2, 0, x, 0, sOptionMenuPickSwitchCancelTextColor, 0, gText_PickSwitchCancel); AddTextPrinterParameterized3(2, 0, x, 0, sOptionMenuPickSwitchCancelTextColor, 0, gText_PickSwitchCancel);
PutWindowTilemap(2); PutWindowTilemap(2);
CopyWindowToVram(2, 3); CopyWindowToVram(2, COPYWIN_BOTH);
} }
static void OptionMenu_ResetSpriteData(void) static void OptionMenu_ResetSpriteData(void)
@@ -500,7 +500,7 @@ static void BufferOptionMenuString(u8 selection)
break; break;
} }
PutWindowTilemap(1); PutWindowTilemap(1);
CopyWindowToVram(1, 3); CopyWindowToVram(1, COPYWIN_BOTH);
} }
static void CloseAndSaveOptionMenu(u8 taskId) static void CloseAndSaveOptionMenu(u8 taskId)
@@ -524,7 +524,7 @@ static void PrintOptionMenuHeader(void)
FillWindowPixelBuffer(0, PIXEL_FILL(1)); FillWindowPixelBuffer(0, PIXEL_FILL(1));
AddTextPrinterParameterized(WIN_TEXT_OPTION, 2, gText_MenuOption, 8, 1, TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(WIN_TEXT_OPTION, 2, gText_MenuOption, 8, 1, TEXT_SPEED_FF, NULL);
PutWindowTilemap(0); PutWindowTilemap(0);
CopyWindowToVram(0, 3); CopyWindowToVram(0, COPYWIN_BOTH);
} }
static void DrawOptionMenuBg(void) static void DrawOptionMenuBg(void)
+7 -7
View File
@@ -3192,7 +3192,7 @@ bool32 Overworld_LinkRecvQueueLengthMoreThan2(void)
return sReceivingFromLink; return sReceivingFromLink;
} }
bool32 sub_8058274(void) bool32 Overworld_RecvKeysFromLinkIsRunning(void)
{ {
u8 temp; u8 temp;
@@ -3218,7 +3218,7 @@ bool32 sub_8058274(void)
return FALSE; return FALSE;
} }
bool32 sub_80582E0(void) bool32 Overworld_SendKeysToLinkIsRunning(void)
{ {
if (GetLinkSendQueueLength() < 2) if (GetLinkSendQueueLength() < 2)
return FALSE; return FALSE;
@@ -3232,7 +3232,7 @@ bool32 sub_80582E0(void)
return FALSE; return FALSE;
} }
bool32 sub_8058318(void) bool32 IsSendingKeysOverCable(void)
{ {
if (gWirelessCommType != 0) if (gWirelessCommType != 0)
return FALSE; return FALSE;
@@ -3298,17 +3298,17 @@ static void InitLinkPlayerObjectEventPos(struct ObjectEvent *objEvent, s16 x, s1
ObjectEventUpdateZCoord(objEvent); ObjectEventUpdateZCoord(objEvent);
} }
static void sub_8058488(u8 linkPlayerId, u8 a2) static void SetLinkPlayerObjectRange(u8 linkPlayerId, u8 range)
{ {
if (gLinkPlayerObjectEvents[linkPlayerId].active) if (gLinkPlayerObjectEvents[linkPlayerId].active)
{ {
u8 objEventId = gLinkPlayerObjectEvents[linkPlayerId].objEventId; u8 objEventId = gLinkPlayerObjectEvents[linkPlayerId].objEventId;
struct ObjectEvent *objEvent = &gObjectEvents[objEventId]; struct ObjectEvent *objEvent = &gObjectEvents[objEventId];
objEvent->range.as_byte = a2; objEvent->range.as_byte = range;
} }
} }
static void sub_80584B8(u8 linkPlayerId) static void DestroyLinkPlayerOBject(u8 linkPlayerId)
{ {
struct LinkPlayerObjectEvent *linkPlayerObjEvent = &gLinkPlayerObjectEvents[linkPlayerId]; struct LinkPlayerObjectEvent *linkPlayerObjEvent = &gLinkPlayerObjectEvents[linkPlayerId];
u8 objEventId = linkPlayerObjEvent->objEventId; u8 objEventId = linkPlayerObjEvent->objEventId;
@@ -3349,7 +3349,7 @@ static u8 GetLinkPlayerElevation(u8 linkPlayerId)
return objEvent->currentElevation; return objEvent->currentElevation;
} }
static s32 sub_8058590(u8 linkPlayerId) static s32 GetLinkPlayerObjectStepTimer(u8 linkPlayerId)
{ {
u8 objEventId = gLinkPlayerObjectEvents[linkPlayerId].objEventId; u8 objEventId = gLinkPlayerObjectEvents[linkPlayerId].objEventId;
struct ObjectEvent *objEvent = &gObjectEvents[objEventId]; struct ObjectEvent *objEvent = &gObjectEvents[objEventId];
+7 -7
View File
@@ -731,7 +731,7 @@ static void RenderPartyMenuBox(u8 slot)
{ {
DisplayPartyPokemonDataForMultiBattle(slot); DisplayPartyPokemonDataForMultiBattle(slot);
LoadPartyBoxPalette(&sPartyMenuBoxes[slot], PARTY_PAL_MULTI_ALT); LoadPartyBoxPalette(&sPartyMenuBoxes[slot], PARTY_PAL_MULTI_ALT);
CopyWindowToVram(sPartyMenuBoxes[slot].windowId, 2); CopyWindowToVram(sPartyMenuBoxes[slot].windowId, COPYWIN_GFX);
PutWindowTilemap(sPartyMenuBoxes[slot].windowId); PutWindowTilemap(sPartyMenuBoxes[slot].windowId);
ScheduleBgCopyTilemapToVram(2); ScheduleBgCopyTilemapToVram(2);
} }
@@ -740,7 +740,7 @@ static void RenderPartyMenuBox(u8 slot)
if (GetMonData(&gPlayerParty[slot], MON_DATA_SPECIES) == SPECIES_NONE) if (GetMonData(&gPlayerParty[slot], MON_DATA_SPECIES) == SPECIES_NONE)
{ {
DrawEmptySlot(sPartyMenuBoxes[slot].windowId); DrawEmptySlot(sPartyMenuBoxes[slot].windowId);
CopyWindowToVram(sPartyMenuBoxes[slot].windowId, 2); CopyWindowToVram(sPartyMenuBoxes[slot].windowId, COPYWIN_GFX);
} }
else else
{ {
@@ -2159,7 +2159,7 @@ static void CreateCancelConfirmWindows(bool8 chooseHalf)
FillWindowPixelBuffer(confirmWindowId, PIXEL_FILL(0)); FillWindowPixelBuffer(confirmWindowId, PIXEL_FILL(0));
AddTextPrinterParameterized4(confirmWindowId, 0, (48 - GetStringWidth(0, gMenuText_Confirm, 0)) / 2u, 1, 0, 0, sFontColorTable[0], -1, gMenuText_Confirm); AddTextPrinterParameterized4(confirmWindowId, 0, (48 - GetStringWidth(0, gMenuText_Confirm, 0)) / 2u, 1, 0, 0, sFontColorTable[0], -1, gMenuText_Confirm);
PutWindowTilemap(confirmWindowId); PutWindowTilemap(confirmWindowId);
CopyWindowToVram(confirmWindowId, 2); CopyWindowToVram(confirmWindowId, COPYWIN_GFX);
cancelWindowId = AddWindow(&sMultiCancelButtonWindowTemplate); cancelWindowId = AddWindow(&sMultiCancelButtonWindowTemplate);
offset = 0; offset = 0;
} }
@@ -2181,7 +2181,7 @@ static void CreateCancelConfirmWindows(bool8 chooseHalf)
AddTextPrinterParameterized3(cancelWindowId, 0, offset, 1, sFontColorTable[0], -1, gOtherText_Exit); AddTextPrinterParameterized3(cancelWindowId, 0, offset, 1, sFontColorTable[0], -1, gOtherText_Exit);
} }
PutWindowTilemap(cancelWindowId); PutWindowTilemap(cancelWindowId);
CopyWindowToVram(cancelWindowId, 2); CopyWindowToVram(cancelWindowId, COPYWIN_GFX);
ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(0);
} }
} }
@@ -2467,7 +2467,7 @@ static void DisplayPartyPokemonHPBar(u16 hp, u16 maxhp, struct PartyMenuBox *men
FillWindowPixelRect(menuBox->windowId, 0x0D, menuBox->infoRects->dimensions[20] + hpFraction, menuBox->infoRects->dimensions[21], menuBox->infoRects->dimensions[22] - hpFraction, 1); FillWindowPixelRect(menuBox->windowId, 0x0D, menuBox->infoRects->dimensions[20] + hpFraction, menuBox->infoRects->dimensions[21], menuBox->infoRects->dimensions[22] - hpFraction, 1);
FillWindowPixelRect(menuBox->windowId, 0x02, menuBox->infoRects->dimensions[20] + hpFraction, menuBox->infoRects->dimensions[21] + 1, menuBox->infoRects->dimensions[22] - hpFraction, 2); FillWindowPixelRect(menuBox->windowId, 0x02, menuBox->infoRects->dimensions[20] + hpFraction, menuBox->infoRects->dimensions[21] + 1, menuBox->infoRects->dimensions[22] - hpFraction, 2);
} }
CopyWindowToVram(menuBox->windowId, 2); CopyWindowToVram(menuBox->windowId, COPYWIN_GFX);
} }
static void DisplayPartyPokemonDescriptionText(u8 stringId, struct PartyMenuBox *menuBox, u8 c) static void DisplayPartyPokemonDescriptionText(u8 stringId, struct PartyMenuBox *menuBox, u8 c)
@@ -5132,7 +5132,7 @@ static void DisplayLevelUpStatsPg1(u8 taskId)
arrayPtr[12] = CreateLevelUpStatsWindow(); arrayPtr[12] = CreateLevelUpStatsWindow();
DrawLevelUpWindowPg1(arrayPtr[12], arrayPtr, &arrayPtr[6], 1, 2, 3); DrawLevelUpWindowPg1(arrayPtr[12], arrayPtr, &arrayPtr[6], 1, 2, 3);
CopyWindowToVram(arrayPtr[12], 2); CopyWindowToVram(arrayPtr[12], COPYWIN_GFX);
ScheduleBgCopyTilemapToVram(2); ScheduleBgCopyTilemapToVram(2);
} }
@@ -5141,7 +5141,7 @@ static void DisplayLevelUpStatsPg2(u8 taskId)
s16 *arrayPtr = sPartyMenuInternal->data; s16 *arrayPtr = sPartyMenuInternal->data;
DrawLevelUpWindowPg2(arrayPtr[12], &arrayPtr[6], 1, 2, 3); DrawLevelUpWindowPg2(arrayPtr[12], &arrayPtr[6], 1, 2, 3);
CopyWindowToVram(arrayPtr[12], 2); CopyWindowToVram(arrayPtr[12], COPYWIN_GFX);
ScheduleBgCopyTilemapToVram(2); ScheduleBgCopyTilemapToVram(2);
} }
+1 -1
View File
@@ -1,6 +1,6 @@
#include "play_time.h" #include "play_time.h"
static IWRAM_DATA u8 sPlayTimeCounterState; static u8 sPlayTimeCounterState;
enum enum
{ {
+2 -2
View File
@@ -392,7 +392,7 @@ static void Task_WithdrawItem_WaitFadeAndGoToItemStorage(u8 taskId)
static void Task_WithdrawItemBeginFade(u8 taskId) static void Task_WithdrawItemBeginFade(u8 taskId)
{ {
gTasks[taskId].func = Task_WithdrawItem_WaitFadeAndGoToItemStorage; gTasks[taskId].func = Task_WithdrawItem_WaitFadeAndGoToItemStorage;
ItemPc_SetInitializedFlag(0); ItemPc_SetInitializedFlag(FALSE);
FadeScreen(FADE_TO_BLACK, 0); FadeScreen(FADE_TO_BLACK, 0);
} }
@@ -401,7 +401,7 @@ static void Task_PlayerPcCancel(u8 taskId)
s16 *data = gTasks[taskId].data; s16 *data = gTasks[taskId].data;
ClearStdWindowAndFrameToTransparent(tWindowId, FALSE); ClearStdWindowAndFrameToTransparent(tWindowId, FALSE);
ClearWindowTilemap(tWindowId); ClearWindowTilemap(tWindowId);
CopyWindowToVram(tWindowId, 1); CopyWindowToVram(tWindowId, COPYWIN_MAP);
RemoveWindow(tWindowId); RemoveWindow(tWindowId);
Task_ReturnToTopMenu(taskId); Task_ReturnToTopMenu(taskId);
} }
+12 -12
View File
@@ -516,11 +516,11 @@ void sub_8102C28(void)
FillWindowPixelBuffer(1, PIXEL_FILL(15)); FillWindowPixelBuffer(1, PIXEL_FILL(15));
sub_8104C2C(gUnknown_8415DB8); sub_8104C2C(gUnknown_8415DB8);
PutWindowTilemap(0); PutWindowTilemap(0);
CopyWindowToVram(0, 2); CopyWindowToVram(0, COPYWIN_GFX);
PutWindowTilemap(1); PutWindowTilemap(1);
CopyWindowToVram(1, 2); CopyWindowToVram(1, COPYWIN_GFX);
PutWindowTilemap(gUnknown_203ACF0->field_16); PutWindowTilemap(gUnknown_203ACF0->field_16);
CopyWindowToVram(gUnknown_203ACF0->field_16, 2); CopyWindowToVram(gUnknown_203ACF0->field_16, COPYWIN_GFX);
} }
void sub_8102EC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) void sub_8102EC0(s32 itemIndex, bool8 onInit, struct ListMenu *list)
@@ -538,7 +538,7 @@ void sub_8102EC0(s32 itemIndex, bool8 onInit, struct ListMenu *list)
LoadPalette(gUnknown_84520F4[itemIndex].pal, 0x10, 0x20); LoadPalette(gUnknown_84520F4[itemIndex].pal, 0x10, 0x20);
} }
PutWindowTilemap(gUnknown_203ACF0->field_15); PutWindowTilemap(gUnknown_203ACF0->field_15);
CopyWindowToVram(gUnknown_203ACF0->field_15, 2); CopyWindowToVram(gUnknown_203ACF0->field_15, COPYWIN_GFX);
} }
void sub_8102F48(u8 windowId, s32 itemId, u8 y) void sub_8102F48(u8 windowId, s32 itemId, u8 y)
@@ -631,8 +631,8 @@ void sub_810317C(void)
sub_8106E78(gUnknown_8415F3D, 1); sub_8106E78(gUnknown_8415F3D, 1);
FillWindowPixelBuffer(1, PIXEL_FILL(15)); FillWindowPixelBuffer(1, PIXEL_FILL(15));
sub_8104C2C(gText_PickOKExit); sub_8104C2C(gText_PickOKExit);
CopyWindowToVram(0, 2); CopyWindowToVram(0, COPYWIN_GFX);
CopyWindowToVram(1, 2); CopyWindowToVram(1, COPYWIN_GFX);
} }
void sub_8103238(u8 taskId) void sub_8103238(u8 taskId)
@@ -717,8 +717,8 @@ void sub_810345C(void)
sub_8106E78(gUnknown_8415F4A, 1); sub_8106E78(gUnknown_8415F4A, 1);
FillWindowPixelBuffer(1, PIXEL_FILL(15)); FillWindowPixelBuffer(1, PIXEL_FILL(15));
sub_8104C2C(gText_PickOKExit); sub_8104C2C(gText_PickOKExit);
CopyWindowToVram(0, 2); CopyWindowToVram(0, COPYWIN_GFX);
CopyWindowToVram(1, 2); CopyWindowToVram(1, COPYWIN_GFX);
} }
u16 sub_8103518(u8 a0) u16 sub_8103518(u8 a0)
@@ -1841,7 +1841,7 @@ bool8 sub_8104C64(u16 a0, u8 a1, u8 a2)
FillWindowPixelBuffer(gUnknown_203ACF0->field_20[a1], PIXEL_FILL(0)); FillWindowPixelBuffer(gUnknown_203ACF0->field_20[a1], PIXEL_FILL(0));
sub_81049FC(gUnknown_203ACF0->field_20[a1], a0, a1 * 16 + 16); sub_81049FC(gUnknown_203ACF0->field_20[a1], a0, a1 * 16 + 16);
PutWindowTilemap(gUnknown_203ACF0->field_20[a1]); PutWindowTilemap(gUnknown_203ACF0->field_20[a1]);
CopyWindowToVram(gUnknown_203ACF0->field_20[a1], 2); CopyWindowToVram(gUnknown_203ACF0->field_20[a1], COPYWIN_GFX);
} }
else else
PutWindowTilemap(gUnknown_203ACF0->field_20[a1]); PutWindowTilemap(gUnknown_203ACF0->field_20[a1]);
@@ -1861,7 +1861,7 @@ bool8 sub_8104C64(u16 a0, u8 a1, u8 a2)
if (sub_8104AB0(a0, FLAG_GET_CAUGHT, TRUE)) if (sub_8104AB0(a0, FLAG_GET_CAUGHT, TRUE))
BlitBitmapRectToWindow(gUnknown_203ACF0->field_24[a1], gUnknown_8443600, 0, 0, 8, 8, 2, 3, 8, 8); BlitBitmapRectToWindow(gUnknown_203ACF0->field_24[a1], gUnknown_8443600, 0, 0, 8, 8, 2, 3, 8, 8);
PutWindowTilemap(gUnknown_203ACF0->field_24[a1]); PutWindowTilemap(gUnknown_203ACF0->field_24[a1]);
CopyWindowToVram(gUnknown_203ACF0->field_24[a1], 2); CopyWindowToVram(gUnknown_203ACF0->field_24[a1], COPYWIN_GFX);
} }
} }
else else
@@ -1906,11 +1906,11 @@ bool8 sub_8104F0C(bool8 a0)
sub_8106E78(gDexCategoryNamePtrs[gUnknown_203ACF0->field_28], 0); sub_8106E78(gDexCategoryNamePtrs[gUnknown_203ACF0->field_28], 0);
sub_8104EC0(0, sub_8106AF8(gUnknown_203ACF0->field_2B), sub_8106AF8(gUnknown_203ACF0->field_2A - 1), 160, 2); sub_8104EC0(0, sub_8106AF8(gUnknown_203ACF0->field_2B), sub_8106AF8(gUnknown_203ACF0->field_2A - 1), 160, 2);
} }
CopyWindowToVram(0, 2); CopyWindowToVram(0, COPYWIN_GFX);
FillWindowPixelBuffer(1, PIXEL_FILL(15)); FillWindowPixelBuffer(1, PIXEL_FILL(15));
if (!a0) if (!a0)
sub_8104C2C(gUnknown_8415F6C); sub_8104C2C(gUnknown_8415F6C);
CopyWindowToVram(1, 2); CopyWindowToVram(1, COPYWIN_GFX);
if (gUnknown_203ACF0->field_18[0] != 0xFFFF) if (gUnknown_203ACF0->field_18[0] != 0xFFFF)
sub_8104C64(gUnknown_203ACF0->field_18[0], 0, gUnknown_203ACF0->field_2C); sub_8104C64(gUnknown_203ACF0->field_18[0], 0, gUnknown_203ACF0->field_2C);
if (gUnknown_203ACF0->field_18[1] != 0xFFFF) if (gUnknown_203ACF0->field_18[1] != 0xFFFF)
+1 -1
View File
@@ -234,7 +234,7 @@ static void sub_8147A34(u8 taskId)
u16 packet[6]; u16 packet[6];
s16 *data = gTasks[taskId].data; s16 *data = gTasks[taskId].data;
if (gReceivedRemoteLinkPlayers != 0) if (gReceivedRemoteLinkPlayers)
{ {
if (gRecvCmds[0][1] == 0x7FFF) if (gRecvCmds[0][1] == 0x7FFF)
data[11] = gRecvCmds[0][2]; data[11] = gRecvCmds[0][2];
+2 -2
View File
@@ -1003,12 +1003,12 @@ static bool32 sub_814881C(void)
case 2: case 2:
if (sub_8149804()) if (sub_8149804())
{ {
CreateTask(sub_80DA634, 6); CreateTask(Task_SaveGame_UpdatedLinkRecords, 6);
gUnknown_203F3D4->unk8++; gUnknown_203F3D4->unk8++;
} }
break; break;
case 3: case 3:
if (!FuncIsActiveTask(sub_80DA634)) if (!FuncIsActiveTask(Task_SaveGame_UpdatedLinkRecords))
{ {
sub_814A6CC(); sub_814A6CC();
gUnknown_203F3D4->unk8++; gUnknown_203F3D4->unk8++;
+9 -9
View File
@@ -337,7 +337,7 @@ static void sub_814A0C8(void)
case 0: case 0:
gUnknown_203F3D8->unk12 = sub_814A754(1, 8, 20, 2); gUnknown_203F3D8->unk12 = sub_814A754(1, 8, 20, 2);
AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_WantToPlayAgain2, 0, 2, TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_WantToPlayAgain2, 0, 2, TEXT_SPEED_FF, NULL);
CopyWindowToVram(gUnknown_203F3D8->unk12, 2); CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX);
gUnknown_203F3D8->unk4++; gUnknown_203F3D8->unk4++;
break; break;
case 1: case 1:
@@ -364,7 +364,7 @@ static void sub_814A174(void)
case 0: case 0:
gUnknown_203F3D8->unk12 = sub_814A754(2, 7, 26, 4); gUnknown_203F3D8->unk12 = sub_814A754(2, 7, 26, 4);
AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_SavingDontTurnOffPower, 0, 2, TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_SavingDontTurnOffPower, 0, 2, TEXT_SPEED_FF, NULL);
CopyWindowToVram(gUnknown_203F3D8->unk12, 2); CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX);
gUnknown_203F3D8->unk4++; gUnknown_203F3D8->unk4++;
break; break;
case 1: case 1:
@@ -407,7 +407,7 @@ static void sub_814A264(void)
case 0: case 0:
gUnknown_203F3D8->unk12 = sub_814A754(2, 8, 22, 4); gUnknown_203F3D8->unk12 = sub_814A754(2, 8, 22, 4);
AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_SomeoneDroppedOut2, 0, 2, TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_SomeoneDroppedOut2, 0, 2, TEXT_SPEED_FF, NULL);
CopyWindowToVram(gUnknown_203F3D8->unk12, 2); CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX);
gUnknown_203F3D8->unk4++; gUnknown_203F3D8->unk4++;
break; break;
case 1: case 1:
@@ -433,7 +433,7 @@ static void sub_814A308(void)
case 0: case 0:
gUnknown_203F3D8->unk12 = sub_814A754(7, 10, 16, 2); gUnknown_203F3D8->unk12 = sub_814A754(7, 10, 16, 2);
AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_CommunicationStandby4, 0, 2, TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_CommunicationStandby4, 0, 2, TEXT_SPEED_FF, NULL);
CopyWindowToVram(gUnknown_203F3D8->unk12, 2); CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX);
gUnknown_203F3D8->unk4++; gUnknown_203F3D8->unk4++;
break; break;
case 1: case 1:
@@ -526,7 +526,7 @@ void sub_814A468(u16 itemId, u16 quantity)
DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_AwesomeWonF701F700); DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_AwesomeWonF701F700);
gUnknown_203F3D8->unk12 = sub_814A754(4, 8, 22, 4); gUnknown_203F3D8->unk12 = sub_814A754(4, 8, 22, 4);
AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL);
CopyWindowToVram(gUnknown_203F3D8->unk12, 2); CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX);
gUnknown_203F3D8->unk14 = MUS_FANFA1; gUnknown_203F3D8->unk14 = MUS_FANFA1;
gUnknown_203F3D8->unkD = 0; gUnknown_203F3D8->unkD = 0;
} }
@@ -539,7 +539,7 @@ void sub_814A53C(u16 itemId)
DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_FilledStorageSpace2); DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_FilledStorageSpace2);
gUnknown_203F3D8->unk12 = sub_814A754(4, 8, 22, 4); gUnknown_203F3D8->unk12 = sub_814A754(4, 8, 22, 4);
AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL);
CopyWindowToVram(gUnknown_203F3D8->unk12, 2); CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX);
gUnknown_203F3D8->unk14 = 0; gUnknown_203F3D8->unk14 = 0;
gUnknown_203F3D8->unkD = 0; gUnknown_203F3D8->unkD = 0;
} }
@@ -552,7 +552,7 @@ void sub_814A5B4(u16 itemId)
DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_CantHoldMore); DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_CantHoldMore);
gUnknown_203F3D8->unk12 = sub_814A754(4, 9, 22, 2); gUnknown_203F3D8->unk12 = sub_814A754(4, 9, 22, 2);
AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL);
CopyWindowToVram(gUnknown_203F3D8->unk12, 2); CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX);
gUnknown_203F3D8->unk14 = 0; gUnknown_203F3D8->unk14 = 0;
gUnknown_203F3D8->unkD = 0; gUnknown_203F3D8->unkD = 0;
} }
@@ -596,7 +596,7 @@ void sub_814A6CC(void)
if (gUnknown_203F3D8->unk12 != 0xFF) if (gUnknown_203F3D8->unk12 != 0xFF)
{ {
rbox_fill_rectangle(gUnknown_203F3D8->unk12); rbox_fill_rectangle(gUnknown_203F3D8->unk12);
CopyWindowToVram(gUnknown_203F3D8->unk12, 1); CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_MAP);
gUnknown_203F3D8->unkD = 0; gUnknown_203F3D8->unkD = 0;
} }
} }
@@ -857,7 +857,7 @@ static void sub_814AB98(int multiplayerId, u8 clr1, u8 clr2, u8 clr3)
x = 64 - GetStringWidth(0, sub_81499E0(multiplayerId), -1); x = 64 - GetStringWidth(0, sub_81499E0(multiplayerId), -1);
x /= 2; x /= 2;
AddTextPrinterParameterized3(gUnknown_203F3D8->unk1C[multiplayerId], 0, x, 2, colors, -1, sub_81499E0(multiplayerId)); AddTextPrinterParameterized3(gUnknown_203F3D8->unk1C[multiplayerId], 0, x, 2, colors, -1, sub_81499E0(multiplayerId));
CopyWindowToVram(gUnknown_203F3D8->unk1C[multiplayerId], 2); CopyWindowToVram(gUnknown_203F3D8->unk1C[multiplayerId], COPYWIN_GFX);
} }
static void sub_814AC30(bool32 arg0) static void sub_814AC30(bool32 arg0)
+2 -2
View File
@@ -76,7 +76,7 @@ static void Task_ShowPokemonJumpRecords(u8 taskId)
case 0: case 0:
data[1] = AddWindow(&gUnknown_846E2CC); data[1] = AddWindow(&gUnknown_846E2CC);
sub_814B5C4(data[1]); sub_814B5C4(data[1]);
CopyWindowToVram(data[1], 3); CopyWindowToVram(data[1], COPYWIN_BOTH);
data[0]++; data[0]++;
break; break;
case 1: case 1:
@@ -87,7 +87,7 @@ static void Task_ShowPokemonJumpRecords(u8 taskId)
if (JOY_NEW(A_BUTTON | B_BUTTON)) if (JOY_NEW(A_BUTTON | B_BUTTON))
{ {
rbox_fill_rectangle(data[1]); rbox_fill_rectangle(data[1]);
CopyWindowToVram(data[1], 1); CopyWindowToVram(data[1], COPYWIN_MAP);
data[0]++; data[0]++;
} }
break; break;
+7 -7
View File
@@ -336,12 +336,12 @@ void InitPokemonSpecialAnimScene(struct PokemonSpecialAnimScene * buffer, u16 an
ChangeBgY(3, 0, 0); ChangeBgY(3, 0, 0);
SetBgTilemapBuffer(0, buffer->field_0914); SetBgTilemapBuffer(0, buffer->field_0914);
SetBgTilemapBuffer(3, buffer->field_1914); SetBgTilemapBuffer(3, buffer->field_1914);
RequestDma3Fill(0, (void *)BG_VRAM, 0x20, TRUE); RequestDma3Fill(0, (void *)BG_VRAM, 0x20, DMA3_32BIT);
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 32, 32); FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 32, 32);
LoadBgGfxByAnimType(animType); LoadBgGfxByAnimType(animType);
FillWindowPixelBuffer(0, PIXEL_FILL(0)); FillWindowPixelBuffer(0, PIXEL_FILL(0));
TextWindow_SetUserSelectedFrame(0, 0x000, 0xe0); TextWindow_SetUserSelectedFrame(0, 0x000, 0xe0);
CopyWindowToVram(0, 3); CopyWindowToVram(0, COPYWIN_BOTH);
ShowBg(0); ShowBg(0);
ShowBg(3); ShowBg(3);
HideBg(1); HideBg(1);
@@ -370,14 +370,14 @@ void PSA_ShowMessageWindow(void)
PutWindowTilemap(0); PutWindowTilemap(0);
FillWindowPixelBuffer(0, PIXEL_FILL(1)); FillWindowPixelBuffer(0, PIXEL_FILL(1));
DrawTextBorderOuter(0, 0x001, 0xE); DrawTextBorderOuter(0, 0x001, 0xE);
CopyWindowToVram(0, 3); CopyWindowToVram(0, COPYWIN_BOTH);
} }
void PSA_HideMessageWindow(void) void PSA_HideMessageWindow(void)
{ {
ClearWindowTilemap(0); ClearWindowTilemap(0);
ClearStdWindowAndFrameToTransparent(0, FALSE); ClearStdWindowAndFrameToTransparent(0, FALSE);
CopyWindowToVram(0, 1); CopyWindowToVram(0, COPYWIN_MAP);
} }
void PSA_PrintMessage(u8 messageId) void PSA_PrintMessage(u8 messageId)
@@ -448,7 +448,7 @@ void PSA_PrintMessage(u8 messageId)
void PSA_AfterPoof_ClearMessageWindow(void) void PSA_AfterPoof_ClearMessageWindow(void)
{ {
FillWindowPixelBuffer(0, PIXEL_FILL(1)); FillWindowPixelBuffer(0, PIXEL_FILL(1));
CopyWindowToVram(0, 2); CopyWindowToVram(0, COPYWIN_GFX);
} }
bool8 PSA_IsMessagePrintTaskActive(void) bool8 PSA_IsMessagePrintTaskActive(void)
@@ -612,12 +612,12 @@ UNUSED void PSA_DrawLevelUpWindowPg1(u16 *statsBefore, u16 *statsAfter)
DrawTextBorderOuter(1, 0x001, 0xE); DrawTextBorderOuter(1, 0x001, 0xE);
DrawLevelUpWindowPg1(1, statsBefore, statsAfter, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY); DrawLevelUpWindowPg1(1, statsBefore, statsAfter, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
PutWindowTilemap(1); PutWindowTilemap(1);
CopyWindowToVram(1, 3); CopyWindowToVram(1, COPYWIN_BOTH);
} }
UNUSED void PSA_DrawLevelUpWindowPg2(u16 *currStats) UNUSED void PSA_DrawLevelUpWindowPg2(u16 *currStats)
{ {
DrawLevelUpWindowPg2(1, currStats, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY); DrawLevelUpWindowPg2(1, currStats, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
CopyWindowToVram(1, 2); CopyWindowToVram(1, COPYWIN_GFX);
} }
UNUSED bool8 PSA_IsCopyingLevelUpWindowToVram(void) UNUSED bool8 PSA_IsCopyingLevelUpWindowToVram(void)
+2 -2
View File
@@ -247,8 +247,8 @@ static void Task_PokemonStorageSystemPC(u8 taskId)
DrawDialogueFrame(0, 0); DrawDialogueFrame(0, 0);
FillWindowPixelBuffer(0, PIXEL_FILL(1)); FillWindowPixelBuffer(0, PIXEL_FILL(1));
AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, TEXT_SPEED_FF, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY); AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, TEXT_SPEED_FF, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
CopyWindowToVram(0, 3); CopyWindowToVram(0, COPYWIN_BOTH);
CopyWindowToVram(task->data[15], 3); CopyWindowToVram(task->data[15], COPYWIN_BOTH);
task->data[0]++; task->data[0]++;
break; break;
case 1: case 1:

Some files were not shown because too many files have changed in this diff Show More