Merge pull request #187 from PikalaxALT/leafgreen
Match Pokemon FireRed 1.1 US
This commit is contained in:
+2
-1
@@ -1,5 +1,5 @@
|
||||
language: generic
|
||||
dist: trusty
|
||||
dist: bionic
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
@@ -27,5 +27,6 @@ matrix:
|
||||
script:
|
||||
- make tools CXX=g++-7
|
||||
- make -j2 compare
|
||||
- make -j2 compare_firered_rev1
|
||||
after_success:
|
||||
- .travis/calcrom/webhook.sh pokefirered
|
||||
|
||||
@@ -5,36 +5,7 @@ CPP := $(CC) -E
|
||||
LD := tools/binutils/bin/arm-none-eabi-ld
|
||||
OBJCOPY := tools/binutils/bin/arm-none-eabi-objcopy
|
||||
|
||||
GAME_VERSION := FIRERED
|
||||
REVISION := 0
|
||||
GAME_LANGUAGE := ENGLISH
|
||||
|
||||
# So long as baserom.gba is required, we error out if the
|
||||
# user tries to build any ROM other than FireRed.
|
||||
ifneq ($(GAME_VERSION),FIRERED)
|
||||
$(error We can only build English Pokemon FireRed v1.0 currently)
|
||||
else ifneq ($(REVISION),0)
|
||||
$(error We can only build English Pokemon FireRed v1.0 currently)
|
||||
else ifneq ($(GAME_LANGUAGE),ENGLISH)
|
||||
$(error We can only build English Pokemon FireRed v1.0 currently)
|
||||
endif
|
||||
|
||||
ifeq ($(GAME_VERSION),FIRERED)
|
||||
TITLE := POKEMON FIRE
|
||||
GAME_CODE := BPR
|
||||
BUILD_NAME := firered
|
||||
else
|
||||
TITLE := POKEMON LEAF
|
||||
GAME_CODE := BPL
|
||||
BUILD_NAME := leafgreen
|
||||
endif
|
||||
ifeq ($(GAME_LANGUAGE),ENGLISH)
|
||||
GAME_CODE := $(GAME_CODE)E
|
||||
endif
|
||||
ifneq ($(REVISION),0)
|
||||
BUILD_NAME := $(BUILD_NAME)_rev$(REVISION)
|
||||
endif
|
||||
MAKER_CODE := 01
|
||||
include config.mk
|
||||
|
||||
SHELL := /bin/bash -o pipefail
|
||||
|
||||
@@ -57,12 +28,12 @@ DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR)
|
||||
SONG_BUILDDIR = $(OBJ_DIR)/$(SONG_SUBDIR)
|
||||
MID_BUILDDIR = $(OBJ_DIR)/$(MID_SUBDIR)
|
||||
|
||||
ASFLAGS := -mcpu=arm7tdmi --defsym $(GAME_VERSION)=1 --defsym REVISION=$(REVISION) --defsym $(GAME_LANGUAGE)=1
|
||||
ASFLAGS := -mcpu=arm7tdmi --defsym $(GAME_VERSION)=1 --defsym REVISION=$(GAME_REVISION) --defsym $(GAME_LANGUAGE)=1
|
||||
|
||||
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=$(REVISION) -D$(GAME_LANGUAGE)
|
||||
CPPFLAGS := -I tools/agbcc -I tools/agbcc/include -iquote include -nostdinc -undef -D$(GAME_VERSION) -DREVISION=$(GAME_REVISION) -D$(GAME_LANGUAGE)
|
||||
|
||||
LDFLAGS = -Map ../../$(MAP)
|
||||
|
||||
@@ -133,7 +104,7 @@ all: tools rom
|
||||
|
||||
rom: $(ROM)
|
||||
ifeq ($(COMPARE),1)
|
||||
@$(SHA1) rom.sha1
|
||||
@$(SHA1) $(BUILD_NAME).sha1
|
||||
endif
|
||||
|
||||
tools: $(TOOLDIRS)
|
||||
@@ -252,8 +223,18 @@ $(OBJ_DIR)/ld_script.ld: ld_script.txt $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_comm
|
||||
|
||||
$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS)
|
||||
cd $(OBJ_DIR) && ../../$(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(LIB)
|
||||
$(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
|
||||
$(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(GAME_REVISION) --silent
|
||||
|
||||
$(ROM): $(ELF)
|
||||
$(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@
|
||||
|
||||
# "friendly" target names for convenience sake
|
||||
firered: ; @$(MAKE) GAME_VERSION=FIRERED
|
||||
firered_rev1: ; @$(MAKE) GAME_VERSION=FIRERED GAME_REVISION=1
|
||||
leafgreen: ; @$(MAKE) GAME_VERSION=LEAFGREEN
|
||||
leafgreen_rev1: ; @$(MAKE) GAME_VERSION=LEAFGREEN GAME_REVISION=1
|
||||
|
||||
compare_firered: ; @$(MAKE) GAME_VERSION=FIRERED COMPARE=1
|
||||
compare_firered_rev1: ; @$(MAKE) GAME_VERSION=FIRERED GAME_REVISION=1 COMPARE=1
|
||||
compare_leafgreen: ; @$(MAKE) GAME_VERSION=LEAFGREEN COMPARE=1
|
||||
compare_leafgreen_rev1: ; @$(MAKE) GAME_VERSION=LEAFGREEN GAME_REVISION=1 COMPARE=1
|
||||
|
||||
+26
-17
@@ -46,20 +46,29 @@ GPIOPortReadEnable: @ 80000C8
|
||||
.4byte 0xFFFFFFFF
|
||||
.4byte 0xFFFFFFFF
|
||||
.4byte 0xFFFFFFFF
|
||||
.ifdef FIRERED
|
||||
.4byte 4
|
||||
.4byte 2
|
||||
.ascii "pokemon red version"
|
||||
.space 13
|
||||
.4byte 0x82350AC @ gMonFrontPicTable
|
||||
.4byte 0x823654C @ gMonBackPicTable
|
||||
.4byte 0x823730C @ gMonPaletteTable
|
||||
.4byte 0x82380CC @ gMonShinyPaletteTable
|
||||
.4byte 0x83D37A0 @ gMonIconTable
|
||||
.4byte 0x83D3E80 @ gMonIconPaletteIndices
|
||||
.4byte 0x83D4038 @ gMonIconPaletteTable
|
||||
.4byte 0x8245EE0 @ gSpeciesNames
|
||||
.4byte 0x8247094 @ gMoveNames
|
||||
.4byte 0x84556F8 @ gDecorations
|
||||
.else
|
||||
.ifdef LEAFGREEN
|
||||
.4byte 5
|
||||
.4byte 2
|
||||
.ascii "pokemon green version"
|
||||
.space 11
|
||||
.endif
|
||||
.endif
|
||||
.4byte gMonFrontPicTable
|
||||
.4byte gMonBackPicTable
|
||||
.4byte gMonPaletteTable
|
||||
.4byte gMonShinyPaletteTable
|
||||
.4byte gMonIconTable
|
||||
.4byte gMonIconPaletteIndices
|
||||
.4byte gMonIconPaletteTable
|
||||
.4byte gSpeciesNames
|
||||
.4byte gMoveNames
|
||||
.4byte gDecorations
|
||||
.4byte 0xEE0 @ offsetof(struct SaveBlock1, flags)
|
||||
.4byte 0x1000 @ offsetof(struct SaveBlock1, vars)
|
||||
.4byte 0x18 @ offsetof(struct SaveBlock2, pokedex)
|
||||
@@ -88,13 +97,13 @@ GPIOPortReadEnable: @ 80000C8
|
||||
.4byte 0x30BB
|
||||
.4byte 0x30A7
|
||||
.4byte 0
|
||||
.4byte 0x8254784 @ gBaseStats
|
||||
.4byte 0x824FC40 @ gAbilityNames
|
||||
.4byte 0x824FB08 @ gAbilityDescriptionPointers
|
||||
.4byte 0x83DB028 @ gItems
|
||||
.4byte 0x8250C04 @ gBattleMoves
|
||||
.4byte 0x826056C @ gBallSpriteSheets
|
||||
.4byte 0x82605CC @ gBallSpritePalettes
|
||||
.4byte gBaseStats
|
||||
.4byte gAbilityNames
|
||||
.4byte gAbilityDescriptionPointers
|
||||
.4byte gItems
|
||||
.4byte gBattleMoves
|
||||
.4byte gBallSpriteSheets
|
||||
.4byte gBallSpritePalettes
|
||||
.4byte 0xA8
|
||||
.4byte 0x82C
|
||||
.4byte 0x83B
|
||||
|
||||
+4
-4
@@ -2363,7 +2363,7 @@ _081E0668:
|
||||
lsrs r5, r0, 16
|
||||
cmp r5, 0x3
|
||||
bls _081E0668
|
||||
ldr r1, _081E06E0 @ =0x081E1B25
|
||||
ldr r1, _081E06E0 @ =sub_81E1B24
|
||||
movs r5, 0x2
|
||||
negs r5, r5
|
||||
ands r5, r1
|
||||
@@ -2371,7 +2371,7 @@ _081E0668:
|
||||
ldr r0, [r2]
|
||||
adds r4, r0, 0
|
||||
adds r4, 0x8
|
||||
ldr r0, _081E06E4 @ =0x081E1B55
|
||||
ldr r0, _081E06E4 @ =rfu_REQ_changeMasterSlave
|
||||
subs r0, r1
|
||||
lsls r0, 15
|
||||
lsrs r3, r0, 16
|
||||
@@ -2408,8 +2408,8 @@ _081E06D0: .4byte gUnknown_3007464
|
||||
_081E06D4: .4byte gUnknown_3007468
|
||||
_081E06D8: .4byte gUnknown_3007450
|
||||
_081E06DC: .4byte gUnknown_3007440
|
||||
_081E06E0: .4byte 0x081E1B25
|
||||
_081E06E4: .4byte 0x081E1B55
|
||||
_081E06E0: .4byte sub_81E1B24
|
||||
_081E06E4: .4byte rfu_REQ_changeMasterSlave
|
||||
_081E06E8: .4byte 0x0000ffff
|
||||
thumb_func_end sub_81E05B0
|
||||
|
||||
|
||||
@@ -158,3 +158,12 @@
|
||||
.byte \bg, \top, \left, \height, \width, \palno
|
||||
.2byte \baseBlock
|
||||
.endm
|
||||
|
||||
.macro abspath relative
|
||||
.if REVISION == 0
|
||||
.ascii "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/"
|
||||
.else
|
||||
.ascii "C:/WORK/POKeFRLG/Src/pm_lgfr_ose/source/"
|
||||
.endif
|
||||
.asciz "\relative"
|
||||
.endm
|
||||
|
||||
@@ -337,7 +337,11 @@ sub_8105800: @ 8105800
|
||||
cmp r0, 0
|
||||
beq _08105864
|
||||
ldrb r0, [r5]
|
||||
.if REVISION == 0
|
||||
cmp r0, 0
|
||||
.else
|
||||
cmp r0, 0xFF
|
||||
.endif
|
||||
beq _08105878
|
||||
_08105840:
|
||||
mov r1, sp
|
||||
@@ -351,7 +355,11 @@ _08105840:
|
||||
lsrs r4, r0, 24
|
||||
adds r0, r5, r4
|
||||
ldrb r0, [r0]
|
||||
.if REVISION == 0
|
||||
cmp r0, 0
|
||||
.else
|
||||
cmp r0, 0xFF
|
||||
.endif
|
||||
beq _08105878
|
||||
cmp r4, 0xA
|
||||
bls _08105840
|
||||
|
||||
+23
-3
@@ -1,7 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ "$1" == "firered" ] || [ "$1" == "leafgreen" ] || [ "$1" == "firered_rev1" ] || [ "$1" == "leafgreen_rev1" ]; then
|
||||
buildname="$1"
|
||||
shift
|
||||
else
|
||||
buildname=firered
|
||||
fi
|
||||
|
||||
if [ "$buildname" == "firered" ]; then
|
||||
baserom=baserom
|
||||
elif [ "$buildname" == "leafgreen" ]; then
|
||||
baserom=baserom_lg
|
||||
elif [ "$buildname" == "firered_rev1" ]; then
|
||||
baserom=baserom_fr_rev1
|
||||
elif [ "$buildname" == "leafgreen_rev1" ]; then
|
||||
baserom=baserom_lg_rev1
|
||||
else
|
||||
echo unknown buildname $buildname
|
||||
exit 1
|
||||
fi
|
||||
|
||||
OBJDUMP="$DEVKITARM/bin/arm-none-eabi-objdump -D -bbinary -marmv4t -Mforce-thumb"
|
||||
OPTIONS="--start-address=$(($1)) --stop-address=$(($1 + $2))"
|
||||
$OBJDUMP $OPTIONS baserom.gba > baserom.dump
|
||||
$OBJDUMP $OPTIONS pokefirered.gba > pokefirered.dump
|
||||
diff -u baserom.dump pokefirered.dump
|
||||
$OBJDUMP $OPTIONS ${baserom}.gba > ${baserom}.dump || exit 1
|
||||
$OBJDUMP $OPTIONS poke${buildname}.gba > poke${buildname}.dump
|
||||
diff -u ${baserom}.dump poke${buildname}.dump
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
# Default variables
|
||||
|
||||
GAME_VERSION ?= FIRERED
|
||||
GAME_REVISION ?= 0
|
||||
GAME_LANGUAGE ?= ENGLISH
|
||||
MODERN ?= 0
|
||||
COMPARE ?= 0
|
||||
|
||||
# For gbafix
|
||||
MAKER_CODE := 01
|
||||
|
||||
# Version
|
||||
ifeq ($(GAME_VERSION),FIRERED)
|
||||
TITLE := POKEMON FIRE
|
||||
GAME_CODE := BPR
|
||||
BUILD_NAME := firered
|
||||
else
|
||||
ifeq ($(GAME_VERSION),LEAFGREEN)
|
||||
TITLE := POKEMON LEAF
|
||||
GAME_CODE := BPG
|
||||
BUILD_NAME := leafgreen
|
||||
else
|
||||
$(error unknown version $(GAME_VERSION))
|
||||
endif
|
||||
endif
|
||||
|
||||
# Revision
|
||||
ifeq ($(GAME_REVISION),0)
|
||||
BUILD_NAME := $(BUILD_NAME)
|
||||
else
|
||||
ifeq ($(GAME_REVISION),1)
|
||||
BUILD_NAME := $(BUILD_NAME)_rev1
|
||||
else
|
||||
$(error unknown revision $(GAME_REVISION))
|
||||
endif
|
||||
endif
|
||||
|
||||
# Language
|
||||
ifeq ($(GAME_LANGUAGE),ENGLISH)
|
||||
BUILD_NAME := $(BUILD_NAME)
|
||||
GAME_CODE := $(GAME_CODE)E
|
||||
else
|
||||
$(error unknown language $(GAME_LANGUAGE))
|
||||
endif
|
||||
|
||||
# Modern GCC
|
||||
ifeq ($(MODERN), 0)
|
||||
BUILD_NAME := $(BUILD_NAME)
|
||||
else
|
||||
BUILD_NAME := $(BUILD_NAME)_modern
|
||||
endif
|
||||
@@ -1,3 +1,5 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
@@ -88,7 +90,7 @@ gUnknown_83A7208:: @ 83A7208
|
||||
|
||||
.align 2
|
||||
gUnknown_83A720C:: @ 83A720C
|
||||
.asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/evobjmv.c"
|
||||
abspath "evobjmv.c"
|
||||
|
||||
.align 2
|
||||
gUnknown_83A7240:: @ 83A7240
|
||||
|
||||
@@ -12361,9 +12361,8 @@ gUnknown_81C1300:: @ 81C1300
|
||||
.string "It looks like it's having fun.$"
|
||||
|
||||
EventScript_1C1338:: @ 81C1338
|
||||
waitse
|
||||
setdivewarp MAP_UNKNOWN_MAP_00_00, 72, 7187, 8
|
||||
nop
|
||||
map_script_2 VAR_0x4030, 0, EventScript_1C1348
|
||||
.2byte 0
|
||||
copyvar VAR_0x4030, 1
|
||||
end
|
||||
|
||||
@@ -14474,8 +14473,9 @@ Text_1C55A4:: @ 81C55A4
|
||||
.string "テストよう メッセージです!\n"
|
||||
.string "ざひょう チェックの イベントです$"
|
||||
|
||||
Text_1C55C5:: @ 81C55C5
|
||||
.string " $"
|
||||
.align 2
|
||||
Text_1C55C8:: @ 81C55C8
|
||||
.string "$"
|
||||
|
||||
gText_WouldYouLikeToSaveTheGame:: @ 81C55C9
|
||||
.string "Would you like to save the game?$"
|
||||
|
||||
+7
-4
@@ -45,6 +45,9 @@ gUnknown_83CBB10:: @ 83CBB10 gbapal gUnknown_83CBA90
|
||||
gUnknown_83CBB30:: @ 83CBB30 4bpp
|
||||
.incbin "graphics/field_effects/unk_83CBB30.bin"
|
||||
|
||||
gUnknown_83CBDB0::
|
||||
.incbin "graphics/field_effects/unk_83CBDB0.4bpp"
|
||||
|
||||
.align 2
|
||||
gUnknown_83CBE30:: @ 83CBE30 dataptr
|
||||
.4byte FieldEffectCmd_loadtiles
|
||||
@@ -398,10 +401,10 @@ gUnknown_83CC244:: @ 83CC244 dataptr
|
||||
.4byte sub_8087CB4
|
||||
|
||||
gUnknown_83CC250:: @ 83CC250 sprite_frames
|
||||
obj_frame_tiles 0x083cbdb0, 0x0020
|
||||
obj_frame_tiles 0x083cbdd0, 0x0020
|
||||
obj_frame_tiles 0x083cbdf0, 0x0020
|
||||
obj_frame_tiles 0x083cbe10, 0x0020
|
||||
obj_frame_tiles gUnknown_83CBDB0 + 0x00, 0x0020
|
||||
obj_frame_tiles gUnknown_83CBDB0 + 0x20, 0x0020
|
||||
obj_frame_tiles gUnknown_83CBDB0 + 0x40, 0x0020
|
||||
obj_frame_tiles gUnknown_83CBDB0 + 0x60, 0x0020
|
||||
|
||||
gUnknown_83CC270:: @ 83CC270 animcmd
|
||||
obj_image_anim_frame 0x0000, 0
|
||||
|
||||
+4
-4
@@ -221,10 +221,10 @@ gUnknown_843F9A0::
|
||||
obj_image_anim_end
|
||||
|
||||
gUnknown_843F9A8::
|
||||
.4byte 0x843f988
|
||||
.4byte 0x843f990
|
||||
.4byte 0x843f998
|
||||
.4byte 0x843f9a0
|
||||
.4byte gUnknown_843F988
|
||||
.4byte gUnknown_843F990
|
||||
.4byte gUnknown_843F998
|
||||
.4byte gUnknown_843F9A0
|
||||
|
||||
gUnknown_843F9B8:: @ 843F9B8 sprite_template
|
||||
spr_template 1, 1, gUnknown_843F980, gUnknown_843F9A8, NULL, gDummySpriteAffineAnimTable, sub_8101B20
|
||||
|
||||
+1
-1
@@ -95,7 +95,7 @@ gUnknown_843ED88:: @ 843ED88
|
||||
|
||||
.align 2
|
||||
gUnknown_843ED94:: @ 843ED94
|
||||
.asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu.c"
|
||||
abspath "rfu.c"
|
||||
|
||||
.align 2
|
||||
gUnknown_843EDC4:: @ 843EDC4
|
||||
|
||||
+1
-1
@@ -315,7 +315,7 @@ gUnknown_8457120:: @ 8457120
|
||||
|
||||
.align 2
|
||||
gUnknown_8457138:: @ 8457138
|
||||
.asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu_union_tool.c"
|
||||
abspath "rfu_union_tool.c"
|
||||
|
||||
.align 2
|
||||
gUnknown_8457174:: @ 8457174
|
||||
|
||||
@@ -980,8 +980,13 @@ gUnknown_81B752C:: @ 81B752C
|
||||
.string " the POKéDEX list.\n"
|
||||
.string "{CIRCLE_2} A caught POKéMON will provide a\n"
|
||||
.string " large amount of data.\n"
|
||||
.if REVISION < 1
|
||||
.string "{CIRCLE_3} Select “AREA” to display the TOWN\n"
|
||||
.string " MAP with the POKéMON's habitat(s).$"
|
||||
.else
|
||||
.string "{CIRCLE_3} Select “NEXT DATA” to display the\n"
|
||||
.string " TOWN MAP with its habitat(s).$"
|
||||
.endif
|
||||
|
||||
gUnknown_81B7611:: @ 81B7611
|
||||
.string "{CIRCLE_1} Go up to the PC at home, then press\n"
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
dd5945db9b930750cb39d00c84da8571feebf417 pokefirered_rev1.gba
|
||||
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 217 B |
+9
-3
@@ -11,9 +11,15 @@
|
||||
// #define NDEBUG
|
||||
|
||||
// Fire Red likely forgot to define NDEBUG/NOAGBPRN before release, leading
|
||||
// to the inclusion of asserts in the retail ROM. Don't try to re-enable this yet
|
||||
// since not all baseroms and pointers have been dumped yet and will result in
|
||||
// a broken ROM.
|
||||
// to the inclusion of asserts in the retail ROM.
|
||||
|
||||
#if REVISION == 0
|
||||
#define CODE_ROOT "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/"
|
||||
#else
|
||||
#define CODE_ROOT "C:/WORK/POKeFRLG/Src/pm_lgfr_ose/source/"
|
||||
#endif
|
||||
|
||||
#define ABSPATH(x) (CODE_ROOT x)
|
||||
|
||||
#ifdef ENGLISH
|
||||
#define UNITS_IMPERIAL
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
574fa542ffebb14be69902d1d36f1ec0a4afd71e pokeleafgreen.gba
|
||||
@@ -0,0 +1 @@
|
||||
7862c67bdecbe21d1d69ce082ce34327e1c6ed5e pokeleafgreen_rev1.gba
|
||||
+2
-2
@@ -41,8 +41,8 @@ bool32 ValidateTrainerTowerData(struct EReaderTrainerHillSet * ttdata)
|
||||
|
||||
static bool32 CEReaderTool_SaveTrainerTower_r(struct EReaderTrainerHillSet * ttdata, u8 * buffer)
|
||||
{
|
||||
AGB_ASSERT_EX(ttdata->dummy == 0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c", 198);
|
||||
AGB_ASSERT_EX(ttdata->id == 0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c", 199)
|
||||
AGB_ASSERT_EX(ttdata->dummy == 0, ABSPATH("cereader_tool.c"), 198);
|
||||
AGB_ASSERT_EX(ttdata->id == 0, ABSPATH("cereader_tool.c"), 199)
|
||||
|
||||
memset(buffer, 0, 0x1000);
|
||||
memcpy(buffer, ttdata, SEC30_SIZE);
|
||||
|
||||
@@ -1063,9 +1063,14 @@ const u8 gMewPokedexText[] = _(
|
||||
const u8 gMewPokedexTextUnused[] = _("");
|
||||
|
||||
const u8 gChikoritaPokedexText[] = _(
|
||||
#if REVISION == 0
|
||||
"Its pleasantly aromatic leaves have the\n"
|
||||
#else
|
||||
"Its pleasantly aromatic leaf has the\n"
|
||||
#endif
|
||||
"ability to check the humidity and\n"
|
||||
"temperature.");
|
||||
"temperature."
|
||||
);
|
||||
|
||||
const u8 gChikoritaPokedexTextUnused[] = _("");
|
||||
|
||||
@@ -1735,9 +1740,16 @@ const u8 gPupitarPokedexText[] = _(
|
||||
const u8 gPupitarPokedexTextUnused[] = _("");
|
||||
|
||||
const u8 gTyranitarPokedexText[] = _(
|
||||
#if REVISION == 0
|
||||
"Its body can't be harmed by any sort of\n"
|
||||
"attack, so it is very eager to make\n"
|
||||
"challenges against enemies.");
|
||||
"challenges against enemies."
|
||||
#else
|
||||
"It has an impudent nature. Having great\n"
|
||||
"strength, it can even change surrounding\n"
|
||||
"landforms."
|
||||
#endif
|
||||
);
|
||||
|
||||
const u8 gTyranitarPokedexTextUnused[] = _("");
|
||||
|
||||
|
||||
@@ -1503,7 +1503,11 @@ static void DaycarePrintMonLvl(struct DayCare *daycare, u8 windowId, u32 daycare
|
||||
u8 lvlText[12];
|
||||
u8 intText[8];
|
||||
|
||||
#if REVISION == 0
|
||||
strcpy((char *)lvlText, (const char *)gText_Lv);
|
||||
#else
|
||||
StringCopy(lvlText, gText_Lv);
|
||||
#endif
|
||||
level = GetLevelAfterDaycareSteps(&daycare->mons[daycareSlotId].mon, daycare->mons[daycareSlotId].steps);
|
||||
ConvertIntToDecimalStringN(intText, level, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
StringAppend(lvlText, intText);
|
||||
|
||||
@@ -1915,7 +1915,7 @@ u16 Special_BattleCardAction(void)
|
||||
case 4:
|
||||
return sub_81445C0(2);
|
||||
default:
|
||||
AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scr_tool.c", 3873);
|
||||
AGB_ASSERT_EX(0, ABSPATH("scr_tool.c"), 3873);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -83,7 +83,7 @@ void sub_8058A00(struct MapHeader * mapHeader)
|
||||
VMap.map = gBackupMapLayout;
|
||||
VMap.Xsize = mapLayout->width + 15;
|
||||
VMap.Ysize = mapLayout->height + 14;
|
||||
AGB_ASSERT_EX(VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/fieldmap.c", 158);
|
||||
AGB_ASSERT_EX(VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE, ABSPATH("fieldmap.c"), 158);
|
||||
map_copy_with_padding(mapLayout->map, mapLayout->width, mapLayout->height);
|
||||
mapheader_copy_mapdata_of_adjacent_maps(mapHeader);
|
||||
}
|
||||
|
||||
+17
@@ -131,6 +131,11 @@ static void sub_80EE9D4(struct Sprite * sprite);
|
||||
static void sub_80EEA94(struct IntroSequenceData * ptr);
|
||||
static void sub_80EEB08(struct Sprite * sprite);
|
||||
static void sub_80EEBE4(void);
|
||||
#if REVISION >= 1
|
||||
static void sub_rev1_80EDFAC(void);
|
||||
#else
|
||||
#define sub_rev1_80EDFAC()
|
||||
#endif
|
||||
|
||||
extern const u32 gMultiBootProgram_PokemonColosseum_Start[];
|
||||
|
||||
@@ -828,6 +833,7 @@ static void sub_80ECD60(struct IntroSequenceData * this)
|
||||
if (!IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
DestroySprite(this->field_0014);
|
||||
sub_rev1_80EDFAC();
|
||||
this->field_0012 = 0;
|
||||
this->field_0004++;
|
||||
}
|
||||
@@ -1592,6 +1598,17 @@ static struct Sprite * sub_80EDF68(void)
|
||||
return &gSprites[spriteId];
|
||||
}
|
||||
|
||||
#if REVISION >= 1
|
||||
static void sub_rev1_80EDFAC(void)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
gSprites[CreateSprite(&gUnknown_840BCFC, 0x68 + 32 * i, 0x6c, 5)].oam.tileNum += i * 4;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static void sub_80EDF94(struct IntroSequenceData * this)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
+7
-1
@@ -57,14 +57,20 @@ static void IntrDummy(void);
|
||||
|
||||
#if defined(FIRERED)
|
||||
#define GAME_VERSION VERSION_FIRE_RED
|
||||
#elif defined(LEAF_GREEN)
|
||||
#elif defined(LEAFGREEN)
|
||||
#define GAME_VERSION VERSION_LEAF_GREEN
|
||||
#else
|
||||
#error unknown version
|
||||
#endif
|
||||
const u8 gGameVersion = GAME_VERSION;
|
||||
|
||||
const u8 gGameLanguage = GAME_LANGUAGE;
|
||||
|
||||
#if REVISION == 0
|
||||
const char BuildDateTime[] = "2004 04 26 11:20";
|
||||
#else
|
||||
const char BuildDateTime[] = "2004 07 20 09:30";
|
||||
#endif
|
||||
|
||||
const IntrFunc gIntrTableTemplate[] =
|
||||
{
|
||||
|
||||
+6
-6
@@ -93,7 +93,7 @@ void *AllocInternal(void *heapStart, u32 size)
|
||||
|
||||
if (pos->next == head)
|
||||
{
|
||||
AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/gflib/malloc.c", 174);
|
||||
AGB_ASSERT_EX(0, ABSPATH("gflib/malloc.c"), 174);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -103,20 +103,20 @@ void *AllocInternal(void *heapStart, u32 size)
|
||||
|
||||
void FreeInternal(void *heapStart, void *p)
|
||||
{
|
||||
AGB_ASSERT_EX(p != NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/gflib/malloc.c", 195);
|
||||
AGB_ASSERT_EX(p != NULL, ABSPATH("gflib/malloc.c"), 195);
|
||||
|
||||
if (p) {
|
||||
struct MemBlock *head = (struct MemBlock *)heapStart;
|
||||
struct MemBlock *pos = (struct MemBlock *)((u8 *)p - sizeof(struct MemBlock));
|
||||
AGB_ASSERT_EX(pos->magic_number == MALLOC_SYSTEM_ID, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/gflib/malloc.c", 204);
|
||||
AGB_ASSERT_EX(pos->flag == TRUE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/gflib/malloc.c", 205);
|
||||
AGB_ASSERT_EX(pos->magic_number == MALLOC_SYSTEM_ID, ABSPATH("gflib/malloc.c"), 204);
|
||||
AGB_ASSERT_EX(pos->flag == TRUE, ABSPATH("gflib/malloc.c"), 205);
|
||||
pos->flag = FALSE;
|
||||
|
||||
// If the freed block isn't the last one, merge with the next block
|
||||
// if it's not in use.
|
||||
if (pos->next != head) {
|
||||
if (!pos->next->flag) {
|
||||
AGB_ASSERT_EX(pos->next->magic_number == MALLOC_SYSTEM_ID, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/gflib/malloc.c", 211);
|
||||
AGB_ASSERT_EX(pos->next->magic_number == MALLOC_SYSTEM_ID, ABSPATH("gflib/malloc.c"), 211);
|
||||
pos->size += sizeof(struct MemBlock) + pos->next->size;
|
||||
pos->next->magic_number = 0;
|
||||
pos->next = pos->next->next;
|
||||
@@ -129,7 +129,7 @@ void FreeInternal(void *heapStart, void *p)
|
||||
// if it's not in use.
|
||||
if (pos != head) {
|
||||
if (!pos->prev->flag) {
|
||||
AGB_ASSERT_EX(pos->prev->magic_number == MALLOC_SYSTEM_ID, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/gflib/malloc.c", 228);
|
||||
AGB_ASSERT_EX(pos->prev->magic_number == MALLOC_SYSTEM_ID, ABSPATH("gflib/malloc.c"), 228);
|
||||
|
||||
pos->prev->next = pos->next;
|
||||
|
||||
|
||||
+1
-1
@@ -142,7 +142,7 @@ static u32 GetMENewsJisanState(struct MENewsJisanStruct *a0)
|
||||
return 4;
|
||||
return 5;
|
||||
default:
|
||||
AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/menews_jisan.c", 383);
|
||||
AGB_ASSERT_EX(0, ABSPATH("menews_jisan.c"), 383);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -852,7 +852,7 @@ u16 sub_81444B0(const struct MEventClientHeaderStruct * a0, u32 command)
|
||||
case 4:
|
||||
return a0->unk_44;
|
||||
default:
|
||||
AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 825);
|
||||
AGB_ASSERT_EX(0, ABSPATH("mevent.c"), 825);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -881,7 +881,7 @@ void sub_814451C(u32 command)
|
||||
}
|
||||
if (dest == NULL)
|
||||
{
|
||||
AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 868);
|
||||
AGB_ASSERT_EX(0, ABSPATH("mevent.c"), 868);
|
||||
}
|
||||
else if (++(*dest) > 999)
|
||||
{
|
||||
@@ -939,7 +939,7 @@ u16 sub_81445C0(u32 command)
|
||||
break;
|
||||
}
|
||||
}
|
||||
AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 913);
|
||||
AGB_ASSERT_EX(0, ABSPATH("mevent.c"), 913);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -977,7 +977,7 @@ void sub_8144714(u32 a0, u32 a1)
|
||||
sub_8144824(1, a1, gSaveBlock1Ptr->mysteryEventBuffers.unk_344[0], 5);
|
||||
break;
|
||||
default:
|
||||
AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 988);
|
||||
AGB_ASSERT_EX(0, ABSPATH("mevent.c"), 988);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+27
-27
@@ -68,7 +68,7 @@ static void mevent_srv_free_resources(struct mevent_srv_common * svr)
|
||||
|
||||
static void mevent_srv_common_init_send(struct mevent_srv_common * svr, u32 ident, const void * src, u32 size)
|
||||
{
|
||||
AGB_ASSERT_EX(size <= ME_SEND_BUF_SIZE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 257);
|
||||
AGB_ASSERT_EX(size <= ME_SEND_BUF_SIZE, ABSPATH("mevent_server.c"), 257);
|
||||
mevent_srv_sub_init_send(&svr->manager, ident, src, size);
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr)
|
||||
switch (cmd->instr)
|
||||
{
|
||||
case 0:
|
||||
AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 354);
|
||||
AGB_ASSERT_EX(cmd->parameter == NULL, ABSPATH("mevent_server.c"), 354);
|
||||
svr->mainseqno = 1;
|
||||
svr->param = cmd->flag;
|
||||
break;
|
||||
@@ -137,23 +137,23 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr)
|
||||
svr->mainseqno = 3;
|
||||
break;
|
||||
case 2:
|
||||
AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 364);
|
||||
AGB_ASSERT_EX(cmd->parameter == NULL, ABSPATH("mevent_server.c"), 364);
|
||||
mevent_srv_sub_init_recv(&svr->manager, cmd->flag, svr->recvBuffer);
|
||||
svr->mainseqno = 2;
|
||||
break;
|
||||
case 3:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 370);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 370);
|
||||
svr->cmdidx = 0;
|
||||
svr->cmdBuffer = cmd->parameter;
|
||||
break;
|
||||
case 5:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 376);
|
||||
AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 377);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 376);
|
||||
AGB_ASSERT_EX(cmd->parameter == NULL, ABSPATH("mevent_server.c"), 377);
|
||||
memcpy(svr->mevent_unk1442cc, svr->recvBuffer, sizeof(struct MEventClientHeaderStruct));
|
||||
break;
|
||||
case 6:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 382);
|
||||
AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 383);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 382);
|
||||
AGB_ASSERT_EX(cmd->parameter == NULL, ABSPATH("mevent_server.c"), 383);
|
||||
svr->param = ValidateMEventClientHeader(svr->mevent_unk1442cc);
|
||||
break;
|
||||
case 4:
|
||||
@@ -164,42 +164,42 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr)
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 396);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 396);
|
||||
ptr = mevent_first_if_not_null_else_second(cmd->parameter, svr->card);
|
||||
svr->param = sub_8144418(ptr, svr->mevent_unk1442cc, ptr);
|
||||
break;
|
||||
case 8:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 402);
|
||||
AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 403);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 402);
|
||||
AGB_ASSERT_EX(cmd->parameter == NULL, ABSPATH("mevent_server.c"), 403);
|
||||
svr->param = *(u32 *)svr->recvBuffer;
|
||||
break;
|
||||
case 9:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 408);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 408);
|
||||
ptr = mevent_first_if_not_null_else_second(cmd->parameter, &svr->sendWord);
|
||||
svr->param = sub_8144434(ptr, svr->mevent_unk1442cc, ptr);
|
||||
break;
|
||||
case 10:
|
||||
AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 415);
|
||||
AGB_ASSERT_EX(cmd->parameter == NULL, ABSPATH("mevent_server.c"), 415);
|
||||
svr->param = sub_81444B0(svr->mevent_unk1442cc, cmd->flag);
|
||||
break;
|
||||
case 11:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 420);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 420);
|
||||
svr->param = sub_8144474(svr->mevent_unk1442cc, cmd->parameter);
|
||||
break;
|
||||
case 12:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 426);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 426);
|
||||
svr->param = mevent_compare_pointers(cmd->parameter, *(void **)svr->recvBuffer);
|
||||
break;
|
||||
case 14:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 432);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 432);
|
||||
mevent_srv_common_init_send(svr, 0x17, mevent_first_if_not_null_else_second(cmd->parameter, svr->news), sizeof(struct MEWonderNewsData));
|
||||
break;
|
||||
case 13:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 438);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 438);
|
||||
mevent_srv_common_init_send(svr, 0x16, mevent_first_if_not_null_else_second(cmd->parameter, svr->card), sizeof(struct MEWonderCardData));
|
||||
break;
|
||||
case 16:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 444);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 444);
|
||||
mevent_srv_common_init_send(svr, 0x18, mevent_first_if_not_null_else_second(cmd->parameter, &svr->sendWord), 4);
|
||||
break;
|
||||
case 15:
|
||||
@@ -215,7 +215,7 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr)
|
||||
mevent_srv_common_init_send(svr, 0x10, cmd->parameter, cmd->flag);
|
||||
break;
|
||||
case 19:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 466);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 466);
|
||||
mevent_srv_common_init_send(svr, 0x1a, cmd->parameter, 188);
|
||||
break;
|
||||
case 20:
|
||||
@@ -225,15 +225,15 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr)
|
||||
mevent_srv_common_init_send(svr, 0x1c, cmd->parameter, cmd->flag);
|
||||
break;
|
||||
case 22:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 481);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 481);
|
||||
memcpy(svr->card, cmd->parameter, 332);
|
||||
break;
|
||||
case 23:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 486);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 486);
|
||||
memcpy(svr->news, cmd->parameter, 444);
|
||||
break;
|
||||
case 21:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 491);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 491);
|
||||
svr->sendWord = *(u32 *)cmd->parameter;
|
||||
break;
|
||||
case 24:
|
||||
@@ -245,16 +245,16 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr)
|
||||
svr->sendBuffer2Size = cmd->flag;
|
||||
break;
|
||||
case 26:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 506);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, ABSPATH("mevent_server.c"), 506);
|
||||
memcpy(svr->card, GetSavedWonderCard(), 332);
|
||||
sub_814410C(svr->card);
|
||||
break;
|
||||
case 27:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 512);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, ABSPATH("mevent_server.c"), 512);
|
||||
memcpy(svr->news, GetSavedWonderNews(), 444);
|
||||
break;
|
||||
case 28:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 517);
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, ABSPATH("mevent_server.c"), 517);
|
||||
svr->sendBuffer1 = sub_8069E48();
|
||||
break;
|
||||
case 29:
|
||||
@@ -276,8 +276,8 @@ static u32 (*const func_tbl[])(struct mevent_srv_common *) = {
|
||||
static u32 mevent_srv_exec_common(struct mevent_srv_common * svr)
|
||||
{
|
||||
u32 response;
|
||||
AGB_ASSERT_EX(svr->mainseqno < NELEMS(func_tbl), "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 546);
|
||||
AGB_ASSERT_EX(svr->mainseqno < NELEMS(func_tbl), ABSPATH("mevent_server.c"), 546);
|
||||
response = func_tbl[svr->mainseqno](svr);
|
||||
AGB_ASSERT_EX(svr->mainseqno < NELEMS(func_tbl), "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 548);
|
||||
AGB_ASSERT_EX(svr->mainseqno < NELEMS(func_tbl), ABSPATH("mevent_server.c"), 548);
|
||||
return response;
|
||||
}
|
||||
|
||||
+2
-2
@@ -105,7 +105,7 @@ bool8 ScrCmd_special(struct ScriptContext *ctx)
|
||||
if (specialPtr < gSpecialsEnd)
|
||||
(*specialPtr)();
|
||||
else
|
||||
AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c", 241);
|
||||
AGB_ASSERT_EX(0, ABSPATH("scrcmd.c"), 241);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -116,7 +116,7 @@ bool8 ScrCmd_specialvar(struct ScriptContext *ctx)
|
||||
if (specialPtr < gSpecialsEnd)
|
||||
*varPtr = (*specialPtr)();
|
||||
else
|
||||
AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c", 263);
|
||||
AGB_ASSERT_EX(0, ABSPATH("scrcmd.c"), 263);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
@@ -60,6 +60,7 @@ static void UpdateScanlineEffectRegBuffer(s16 a0);
|
||||
static void ScheduleStopScanlineEffect(void);
|
||||
static void LoadMainTitleScreenPalsAndResetBgs(void);
|
||||
static void CB2_FadeOutTransitionToSaveClearScreen(void);
|
||||
static void SpriteCallback_TitleScreenFlameOrLeaf(struct Sprite * sprite);
|
||||
static void CB2_FadeOutTransitionToBerryFix(void);
|
||||
static void LoadSpriteGfxAndPals(void);
|
||||
static void Task_FlameOrLeafSpawner(u8 taskId);
|
||||
@@ -238,6 +239,12 @@ static const u8 gUnknown_83BFBD4[] = {
|
||||
0x04, 0x10, 0x1a, 0x20, 0x30, 0xc8, 0xd8, 0xe0, 0xe8, 0x3c, 0x4c, 0x5c, 0x6c, 0x80, 0x90
|
||||
};
|
||||
|
||||
#if defined(LEAFGREEN)
|
||||
static const u16 gUnknown_LG_83BFA10[] = {
|
||||
50, 80, 110, 60, 90, 70, 100, 50
|
||||
};
|
||||
#endif
|
||||
|
||||
void CB2_InitTitleScreen(void)
|
||||
{
|
||||
switch (gMain.state)
|
||||
@@ -876,6 +883,7 @@ static void SpriteCallback_TitleScreenFlameOrLeaf(struct Sprite * sprite)
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(FIRERED)
|
||||
static bool32 CreateFlameOrLeafSprite(s32 x, s32 y, s32 xspeed, s32 yspeed, bool32 templateId)
|
||||
{
|
||||
u8 spriteId;
|
||||
@@ -901,6 +909,35 @@ static bool32 CreateFlameOrLeafSprite(s32 x, s32 y, s32 xspeed, s32 yspeed, bool
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
#elif defined(LEAFGREEN)
|
||||
void _CreateFlameOrLeafSprite(s32 y0, s32 x1, s32 y1)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&sSpriteTemplate_FlameOrLeaf_State0, 0xF0, y0, 0);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
gSprites[spriteId].data[0] = 0xF00;
|
||||
gSprites[spriteId].data[1] = x1;
|
||||
gSprites[spriteId].data[2] = y0 << 4;
|
||||
gSprites[spriteId].data[3] = y1;
|
||||
gSprites[spriteId].callback = SpriteCallback_TitleScreenFlameOrLeaf;
|
||||
}
|
||||
}
|
||||
|
||||
void SpriteCallback_LG_8079800(struct Sprite * sprite)
|
||||
{
|
||||
sprite->pos1.x -= 7;
|
||||
if (sprite->pos1.x < -16)
|
||||
{
|
||||
sprite->pos1.x = 0x100;
|
||||
sprite->data[7]++;
|
||||
if (sprite->data[7] >= NELEMS(gUnknown_LG_83BFA10))
|
||||
sprite->data[7] = 0;
|
||||
sprite->pos1.y = gUnknown_LG_83BFA10[sprite->data[7]];
|
||||
}
|
||||
}
|
||||
|
||||
#define CreateFlameOrLeafSprite ((bool32 (*)())_CreateFlameOrLeafSprite)
|
||||
#endif //FRLG
|
||||
|
||||
static void Task_FlameOrLeafSpawner(u8 taskId)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user