Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Squeetz 2026-06-21 20:41:25 +02:00
commit 4920d01f84
1347 changed files with 8791 additions and 20967 deletions

View File

@ -32,7 +32,9 @@ jobs:
ref: 'symbols'
- name: Install binutils
run: sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi libpng-dev
run: |
sudo apt update
sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi libpng-dev
# build-essential and git are already installed
# gcc-arm-none-eabi is only needed for the modern build
# as an alternative to dkP
@ -53,6 +55,12 @@ jobs:
run: |
make -j${nproc} all syms
- name: Compare FireRed rev10
env:
GAME_REVISION: 10
run: |
make -j${nproc} all syms
- name: Compare LeafGreen
env:
GAME_VERSION: LEAFGREEN
@ -66,6 +74,13 @@ jobs:
run: |
make -j${nproc} all syms
- name: Compare LeafGreen rev10
env:
GAME_VERSION: LEAFGREEN
GAME_REVISION: 10
run: |
make -j${nproc} all syms
- name: Build Modern
env:
MODERN: 1

4
.gitignore vendored
View File

@ -63,3 +63,7 @@ prefabs.json
.vscode/*.*
*.js
*.sym
build-cmake-*/
.cache/
CMakeLists.txt
compile_commands.json

View File

@ -108,7 +108,7 @@ AUTO_GEN_TARGETS :=
include make_tools.mk
# Tool executables
GFX := $(TOOLS_DIR)/gbagfx/gbagfx$(EXE)
AIF := $(TOOLS_DIR)/aif2pcm/aif2pcm$(EXE)
WAV2AGB := $(TOOLS_DIR)/wav2agb/wav2agb$(EXE)
MID := $(TOOLS_DIR)/mid2agb/mid2agb$(EXE)
SCANINC := $(TOOLS_DIR)/scaninc/scaninc$(EXE)
PREPROC := $(TOOLS_DIR)/preproc/preproc$(EXE)
@ -129,7 +129,7 @@ MAKEFLAGS += --no-print-directory
# Delete files that weren't built properly
.DELETE_ON_ERROR:
ALL_BUILDS := firered firered_rev1 leafgreen leafgreen_rev1
ALL_BUILDS := firered firered_rev1 firered_rev10 leafgreen leafgreen_rev1 leafgreen_rev10
ALL_BUILDS += $(ALL_BUILDS:%=%_modern)
RULES_NO_SCAN += clean clean-assets tidy generated clean-generated
@ -224,13 +224,17 @@ tidy:
# "friendly" target names for convenience sake
firered: ; @$(MAKE) GAME_VERSION=FIRERED
firered_rev1: ; @$(MAKE) GAME_VERSION=FIRERED GAME_REVISION=1
firered_switch: ; @$(MAKE) GAME_VERSION=FIRERED GAME_REVISION=10
leafgreen: ; @$(MAKE) GAME_VERSION=LEAFGREEN
leafgreen_rev1: ; @$(MAKE) GAME_VERSION=LEAFGREEN GAME_REVISION=1
leafgreen_switch: ; @$(MAKE) GAME_VERSION=LEAFGREEN GAME_REVISION=10
compare_firered: ; @$(MAKE) GAME_VERSION=FIRERED COMPARE=1
compare_firered_rev1: ; @$(MAKE) GAME_VERSION=FIRERED GAME_REVISION=1 COMPARE=1
compare_firered_switch: ; @$(MAKE) GAME_VERSION=FIRERED GAME_REVISION=10 COMPARE=1
compare_leafgreen: ; @$(MAKE) GAME_VERSION=LEAFGREEN COMPARE=1
compare_leafgreen_rev1: ; @$(MAKE) GAME_VERSION=LEAFGREEN GAME_REVISION=1 COMPARE=1
compare_leafgreen_switch:; @$(MAKE) GAME_VERSION=LEAFGREEN GAME_REVISION=10 COMPARE=1
firered_modern: ; @$(MAKE) GAME_VERSION=FIRERED MODERN=1
firered_rev1_modern: ; @$(MAKE) GAME_VERSION=FIRERED GAME_REVISION=1 MODERN=1
@ -253,7 +257,7 @@ generated: $(AUTO_GEN_TARGETS)
%.s: ;
%.png: ;
%.pal: ;
%.aif: ;
%.wav: ;
%.1bpp: %.png ; $(GFX) $< $@
%.4bpp: %.png ; $(GFX) $< $@
@ -348,16 +352,30 @@ endif
$(OBJ_DIR)/sym_bss.ld: sym_bss.txt
$(RAMSCRGEN) .bss $< ENGLISH > $@
$(OBJ_DIR)/sym_bss_rev10.ld: sym_bss_rev10.txt
$(RAMSCRGEN) .bss $< ENGLISH > $@
$(OBJ_DIR)/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt)
$(RAMSCRGEN) COMMON $< ENGLISH -c $(C_BUILDDIR),common_syms > $@
$(OBJ_DIR)/sym_common_rev10.ld: sym_common_rev10.txt $(C_OBJS) $(wildcard common_syms/*.txt)
$(RAMSCRGEN) COMMON $< ENGLISH -c $(C_BUILDDIR),common_syms > $@
$(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt
$(RAMSCRGEN) ewram_data $< ENGLISH > $@
$(OBJ_DIR)/sym_ewram_rev10.ld: sym_ewram_rev10.txt
$(RAMSCRGEN) ewram_data $< ENGLISH > $@
# Linker script
ifeq ($(MODERN),0)
ifeq ($(GAME_REVISION),10)
LD_SCRIPT := ld_script_rev10.ld
LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss_rev10.ld $(OBJ_DIR)/sym_common_rev10.ld $(OBJ_DIR)/sym_ewram_rev10.ld
else
LD_SCRIPT := ld_script.ld
LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
endif
else
LD_SCRIPT := ld_script_modern.ld
LD_SCRIPT_DEPS :=

View File

@ -8,6 +8,8 @@ It builds the following ROM images:
* [**pokeleafgreen.gba**](https://datomatic.no-intro.org/?page=show_record&s=23&n=1617) `sha1: 574fa542ffebb14be69902d1d36f1ec0a4afd71e`
* [**pokefirered_rev1.gba**](https://datomatic.no-intro.org/?page=show_record&s=23&n=1672) `sha1: dd5945db9b930750cb39d00c84da8571feebf417`
* [**pokeleafgreen_rev1.gba**](https://datomatic.no-intro.org/index.php?page=show_record&s=23&n=1668) `sha1: 7862c67bdecbe21d1d69ce082ce34327e1c6ed5e`
* [**pokefirered_switch.gba**](https://datomatic.no-intro.org/index.php?page=show_record&s=23&n=x550) `sha1: baa452d0b24629dd7782cfc07a8984085dde1311`
* [**pokeleafgreen_switch.gba**](https://datomatic.no-intro.org/index.php?page=show_record&s=23&n=x551) `sha1: 62b9fc77549dbc67032eb6cbd0ea6ad3b825690f`
To set up the repository, see [INSTALL.md](INSTALL.md).

View File

@ -16,13 +16,13 @@ $(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s
$(MID_BUILDDIR)/%.o: $(MID_ASM_DIR)/%.s
$(AS) $(ASFLAGS) -I sound -o $@ $<
# Compressed cries
$(CRY_BIN_DIR)/%.bin: $(CRY_SUBDIR)/%.aif
$(AIF) $< $@ --compress
$(CRY_BIN_DIR)/%.bin: $(CRY_SUBDIR)/%.wav
# NOTE: If using ipatix's High Quality Audio Mixer, remove "--no-pad" below.
$(WAV2AGB) -b -c -l 1 --no-pad $< $@
# Uncompressed sounds
$(SOUND_BIN_DIR)/%.bin: sound/%.aif
$(AIF) $< $@
$(SOUND_BIN_DIR)/%.bin: sound/%.wav
$(WAV2AGB) -b $< $@
# For each line in midi.cfg, we do some trickery to convert it into a make rule for the `.mid` file described on the line
# Data following the colon in said file corresponds to arguments passed into mid2agb

View File

@ -43,6 +43,10 @@ ifeq ($(GAME_REVISION),1)
BUILD_NAME := $(BUILD_NAME)_rev1
endif
ifeq ($(GAME_REVISION),10)
BUILD_NAME := $(BUILD_NAME)_switch
endif
# Modern GCC
ifeq ($(MODERN),1)
BUILD_NAME := $(BUILD_NAME)_modern

View File

@ -1664,7 +1664,11 @@ RisingWaterHitEffect:
Move_EXPLOSION:
loadspritegfx ANIM_TAG_EXPLOSION
.if REVISION >= 0xA
createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 8, 9, RGB(26, 8, 8), 8, RGB_BLACK, 5
.else
createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 8, 9, RGB(26, 8, 8), 8, RGB_BLACK, 8
.endif
createvisualtask AnimTask_ShakeMon2, 5, 4, 8, 0, 40, 1
createvisualtask AnimTask_ShakeMon2, 5, 5, 8, 0, 40, 1
createvisualtask AnimTask_ShakeMon2, 5, 6, 8, 0, 40, 1

View File

@ -1030,7 +1030,7 @@ EventScript_ResetAllMapFlags::
setflag FLAG_HIDE_CINNABAR_SEAGALLOP
setflag FLAG_HIDE_CINNABAR_POKECENTER_BILL
setflag FLAG_HIDE_LORELEI_IN_HER_HOUSE
setflag FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT
setflag FLAG_HIDE_SAFFRON_FAN_CLUB_BLACK_BELT
setflag FLAG_HIDE_SAFFRON_FAN_CLUB_ROCKER
setflag FLAG_HIDE_SAFFRON_FAN_CLUB_WOMAN
setflag FLAG_HIDE_SAFFRON_FAN_CLUB_BEAUTY
@ -1038,7 +1038,7 @@ EventScript_ResetAllMapFlags::
setflag FLAG_HIDE_TWO_ISLAND_GAME_CORNER_BIKER
setflag FLAG_HIDE_TWO_ISLAND_WOMAN
setflag FLAG_HIDE_TWO_ISLAND_BEAUTY
setflag FLAG_HIDE_TWO_ISLAND_SUPER_NERD
setflag FLAG_HIDE_TWO_ISLAND_POKE_MANIAC
setflag FLAG_HIDE_LOSTELLE_IN_HER_HOME
setflag FLAG_HIDE_THREE_ISLAND_LONE_BIKER
setflag FLAG_HIDE_FOUR_ISLAND_RIVAL
@ -1123,7 +1123,7 @@ EventScript_HandOverItem::
return
.include "data/scripts/pokemon_league.inc"
.include "data/scripts/movement.inc"
.include "data/scripts/movement.inc"
.include "data/scripts/flavor_text.inc"
.include "data/scripts/questionnaire.inc"

View File

@ -45,7 +45,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 4,
"y": 10,
"elevation": 3,

View File

@ -17,7 +17,7 @@
"object_events": [
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 3,
"y": 5,
"elevation": 3,

View File

@ -18,7 +18,7 @@
{
"local_id": "LOCALID_QUINN",
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 25,
"y": 11,
"elevation": 3,
@ -62,7 +62,7 @@
{
"local_id": "LOCALID_RAMON",
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 16,
"y": 11,
"elevation": 3,
@ -92,7 +92,7 @@
{
"local_id": "LOCALID_DUSTY",
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 4,
"y": 19,
"elevation": 3,

View File

@ -17,7 +17,7 @@
"object_events": [
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 5,
"y": 4,
"elevation": 3,

View File

@ -75,7 +75,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 23,
"y": 13,
"elevation": 3,

View File

@ -61,7 +61,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL",
"graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL",
"x": 22,
"y": 35,
"elevation": 3,

View File

@ -93,7 +93,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL",
"graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL",
"x": 9,
"y": 53,
"elevation": 3,
@ -107,7 +107,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL",
"graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL",
"x": 18,
"y": 105,
"elevation": 4,
@ -121,7 +121,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 16,
"y": 64,
"elevation": 3,
@ -135,7 +135,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 11,
"y": 64,
"elevation": 3,
@ -177,7 +177,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 8,
"y": 68,
"elevation": 3,
@ -191,7 +191,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL",
"graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL",
"x": 9,
"y": 68,
"elevation": 3,

View File

@ -45,7 +45,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 6,
"y": 8,
"elevation": 3,

View File

@ -90,7 +90,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL",
"graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL",
"x": 7,
"y": 4,
"elevation": 3,
@ -99,7 +99,7 @@
"movement_range_y": 1,
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "OneIsland_PokemonCenter_1F_EventScript_BattleGirl",
"script": "OneIsland_PokemonCenter_1F_EventScript_CrushGirl",
"flag": "0"
}
],

View File

@ -379,15 +379,15 @@ OneIsland_PokemonCenter_1F_EventScript_Hiker::
msgbox OneIsland_PokemonCenter_1F_Text_EnormousVolcanoOnIsland, MSGBOX_NPC
end
OneIsland_PokemonCenter_1F_EventScript_BattleGirl::
OneIsland_PokemonCenter_1F_EventScript_CrushGirl::
lock
faceplayer
goto_if_set FLAG_SYS_CAN_LINK_WITH_RS, OneIsland_PokemonCenter_1F_EventScript_BattleGirlHoennLinked
goto_if_set FLAG_SYS_CAN_LINK_WITH_RS, OneIsland_PokemonCenter_1F_EventScript_CrushGirlHoennLinked
msgbox OneIsland_PokemonCenter_1F_Text_WishICouldTradeWithBoyfriend
release
end
OneIsland_PokemonCenter_1F_EventScript_BattleGirlHoennLinked::
OneIsland_PokemonCenter_1F_EventScript_CrushGirlHoennLinked::
msgbox OneIsland_PokemonCenter_1F_Text_TradedWithFarAwayBoyfriend
release
end

View File

@ -17,7 +17,7 @@
"object_events": [
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 5,
"y": 23,
"elevation": 3,

View File

@ -17,7 +17,7 @@
"object_events": [
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 7,
"y": 13,
"elevation": 3,

View File

@ -31,7 +31,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 20,
"y": 25,
"elevation": 3,

View File

@ -101,7 +101,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 27,
"y": 10,
"elevation": 3,

View File

@ -17,7 +17,7 @@
"object_events": [
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 2,
"y": 6,
"elevation": 3,
@ -87,7 +87,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 23,
"y": 23,
"elevation": 3,
@ -115,7 +115,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 29,
"y": 35,
"elevation": 3,

View File

@ -56,7 +56,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 15,
"y": 70,
"elevation": 3,
@ -84,7 +84,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 13,
"y": 44,
"elevation": 3,

View File

@ -182,7 +182,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 39,
"y": 7,
"elevation": 3,
@ -196,7 +196,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL",
"graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL",
"x": 40,
"y": 7,
"elevation": 3,

View File

@ -84,7 +84,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 47,
"y": 3,
"elevation": 3,
@ -98,7 +98,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 50,
"y": 3,
"elevation": 3,

View File

@ -236,7 +236,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL",
"graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL",
"x": 47,
"y": 24,
"elevation": 3,
@ -245,7 +245,7 @@
"movement_range_y": 1,
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SaffronCity_EventScript_BattleGirl",
"script": "SaffronCity_EventScript_CrushGirl",
"flag": "FLAG_HIDE_POSTGAME_GOSSIPERS"
}
],

View File

@ -17,7 +17,7 @@
"object_events": [
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 11,
"y": 10,
"elevation": 3,
@ -31,7 +31,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 1,
"y": 10,
"elevation": 3,
@ -45,7 +45,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 11,
"y": 8,
"elevation": 3,
@ -59,7 +59,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 1,
"y": 8,
"elevation": 3,
@ -74,7 +74,7 @@
{
"local_id": "LOCALID_KARATE_MASTER",
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 6,
"y": 5,
"elevation": 3,

View File

@ -18,7 +18,7 @@
{
"local_id": "LOCALID_TRAINER_FAN_CLUB_BATTLE_GIRL",
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL",
"graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL",
"x": 7,
"y": 13,
"elevation": 3,
@ -27,7 +27,7 @@
"movement_range_y": 1,
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirl",
"script": "SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirl",
"flag": "0"
},
{
@ -123,7 +123,7 @@
{
"local_id": "LOCALID_TRAINER_FAN_CLUB_BLACK_BELT",
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 5,
"y": 11,
"elevation": 3,
@ -133,7 +133,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SaffronCity_PokemonTrainerFanClub_EventScript_BlackBelt",
"flag": "FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT"
"flag": "FLAG_HIDE_SAFFRON_FAN_CLUB_BLACK_BELT"
},
{
"type": "object",

View File

@ -155,38 +155,38 @@ SaffronCity_PokemonTrainerFanClub_EventScript_SetMemberPosForFirstMeeting::
call SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember8ToFarTable
end
SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirl::
SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirl::
lock
faceplayer
setvar VAR_0x8004, FANCLUB_MEMBER1
special Script_BufferFanClubTrainerName
goto_if_eq VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 0, SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlPlayerNotChampion
goto_if_eq VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 0, SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirlPlayerNotChampion
specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer
goto_if_eq VAR_RESULT, TRUE, SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlPlayersFan
goto_if_eq VAR_RESULT, TRUE, SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirlPlayersFan
specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub
goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlOnlyNonFan
goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirlOnlyNonFan
msgbox SaffronCity_PokemonTrainerFanClub_Text_WasYourFanNotAnymore
release
end
SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlPlayersFan::
SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirlPlayersFan::
specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub
goto_if_eq VAR_RESULT, 1, SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlOnlyFan
goto_if_eq VAR_RESULT, 1, SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirlOnlyFan
msgbox SaffronCity_PokemonTrainerFanClub_Text_AlwaysCheerForYou
release
end
SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlOnlyFan::
SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirlOnlyFan::
msgbox SaffronCity_PokemonTrainerFanClub_Text_IllAlwaysBelieveInYou
release
end
SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlOnlyNonFan::
SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirlOnlyNonFan::
msgbox SaffronCity_PokemonTrainerFanClub_Text_EveryonesYourFanButICantBe
release
end
SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlPlayerNotChampion::
SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirlPlayerNotChampion::
msgbox SaffronCity_PokemonTrainerFanClub_Text_TrainersCoolWhenBattling
release
end

View File

@ -28,7 +28,7 @@
"object_events": [
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL",
"graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL",
"x": 13,
"y": 43,
"elevation": 3,
@ -294,7 +294,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 8,
"y": 26,
"elevation": 3,

View File

@ -94,7 +94,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 21,
"y": 29,
"elevation": 5,

View File

@ -79,7 +79,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 27,
"y": 6,
"elevation": 3,
@ -88,8 +88,8 @@
"movement_range_y": 1,
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "TwoIsland_EventScript_SuperNerd",
"flag": "FLAG_HIDE_TWO_ISLAND_SUPER_NERD"
"script": "TwoIsland_EventScript_PokeManiac",
"flag": "FLAG_HIDE_TWO_ISLAND_POKE_MANIAC"
},
{
"type": "object",

View File

@ -54,7 +54,7 @@ TwoIsland_EventScript_SetShopExpanded2::
TwoIsland_EventScript_SetShopExpanded3::
setvar VAR_MAP_SCENE_TWO_ISLAND, 4
clearflag FLAG_HIDE_TWO_ISLAND_SUPER_NERD
clearflag FLAG_HIDE_TWO_ISLAND_POKE_MANIAC
return
TwoIsland_EventScript_Clerk::
@ -192,7 +192,7 @@ TwoIsland_EventScript_Beauty::
release
end
TwoIsland_EventScript_SuperNerd::
TwoIsland_EventScript_PokeManiac::
msgbox TwoIsland_Text_BuyRareItemsHere, MSGBOX_NPC
end

View File

@ -17,7 +17,7 @@
"object_events": [
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_SUPER_NERD",
"graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC",
"x": 7,
"y": 4,
"elevation": 3,
@ -31,7 +31,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 20,
"y": 11,
"elevation": 4,

View File

@ -17,7 +17,7 @@
"object_events": [
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 10,
"y": 2,
"elevation": 3,
@ -45,7 +45,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 11,
"y": 14,
"elevation": 3,
@ -87,7 +87,7 @@
},
{
"type": "object",
"graphics_id": "OBJ_EVENT_GFX_BLACKBELT",
"graphics_id": "OBJ_EVENT_GFX_BLACK_BELT",
"x": 3,
"y": 11,
"elevation": 3,

View File

@ -211,7 +211,7 @@ EventScript_LanceUnused::
release
end
SaffronCity_EventScript_BattleGirlUnused::
SaffronCity_EventScript_CrushGirlUnused::
lock
faceplayer
famechecker FAMECHECKER_LANCE, 1
@ -219,7 +219,7 @@ SaffronCity_EventScript_BattleGirlUnused::
release
end
SaffronCity_EventScript_BattleGirl::
SaffronCity_EventScript_CrushGirl::
lock
faceplayer
famechecker FAMECHECKER_LANCE, 2

1
firered_switch.sha1 Normal file
View File

@ -0,0 +1 @@
baa452d0b24629dd7782cfc07a8984085dde1311 pokefirered_switch.gba

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

View File

@ -1,11 +0,0 @@
JASC-PAL
0100
8
148 197 172
16 16 16
32 32 32
49 49 49
65 65 65
82 82 82
98 98 98
115 115 115

View File

@ -1,11 +0,0 @@
JASC-PAL
0100
8
131 131 131
148 148 148
164 164 164
180 180 180
197 197 197
213 213 213
230 230 230
255 255 255

View File

Before

Width:  |  Height:  |  Size: 864 B

After

Width:  |  Height:  |  Size: 864 B

View File

Before

Width:  |  Height:  |  Size: 778 B

After

Width:  |  Height:  |  Size: 778 B

View File

Before

Width:  |  Height:  |  Size: 826 B

After

Width:  |  Height:  |  Size: 826 B

View File

@ -5,16 +5,10 @@ INTERFACEGFXDIR := graphics/interface
PARTYMENUGFXDIR := graphics/party_menu
BTLANMSPRGFXDIR := graphics/battle_anims/sprites
UNUSEDGFXDIR := graphics/unused
UNKNOWNGFXDIR := graphics/unknown
BATINTGFXDIR := graphics/battle_interface
MASKSGFXDIR := graphics/battle_anims/masks
BATTRANSGFXDIR := graphics/battle_transitions
TYPESGFXDIR := graphics/types
RAYQUAZAGFXDIR := graphics/rayquaza_scene
ROULETTEGFXDIR := graphics/roulette
SLOTMACHINEGFXDIR := graphics/slot_machine
PSSGFXDIR := graphics/pokemon_storage
EVENTOBJGFXDIR := graphics/object_events
FIELDEFFECTSGFXDIR := graphics/field_effects
MISCGFXDIR := graphics/misc
TEXTWINDOWGFXDIR := graphics/text_window
@ -22,7 +16,6 @@ TEACHYTVGFXDIR := graphics/teachy_tv
SSANNEGFXDIR := graphics/ss_anne
ITEMPCGFXDIR := graphics/item_pc
TITLESCREENGFXDIR := graphics/title_screen
CREDITSGFXDIR := graphics/credits
ITEMMENUGFXDIR := graphics/item_menu
INTROGFXDIR := graphics/intro
BATTLETERRAINGFXDIR := graphics/battle_terrain
@ -33,9 +26,6 @@ NAMINGGFXDIR := graphics/naming_screen
WALLPAPERGFXDIR := graphics/pokemon_storage/wallpapers
JPCONTESTGFXDIR := graphics/contest/japanese
types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark
contest_types := cool beauty cute smart tough
CASTFORMGFXDIR := graphics/pokemon/castform
$(CASTFORMGFXDIR)/front.4bpp: $(CASTFORMGFXDIR)/normal/front.4bpp \
$(CASTFORMGFXDIR)/sunny/front.4bpp \
@ -94,22 +84,12 @@ $(FONTGFXDIR)/braille.fwjpnfont: $(FONTGFXDIR)/braille.png
$(FONTGFXDIR)/japanese_bold.fwjpnfont: $(FONTGFXDIR)/japanese_bold.png
$(GFX) $< $@
graphics/title_screen/pokemon_logo.gbapal: %.gbapal: %.pal
$(GFX) $< $@ -num_colors 224
graphics/pokemon_jump/bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 63 -Wnum_tiles
$(MISCGFXDIR)/japanese_hof.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 29 -Wnum_tiles
$(MISCGFXDIR)/markings2.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 25 -Wnum_tiles
$(INTERFACEGFXDIR)/menu.gbapal: $(INTERFACEGFXDIR)/menu_0.gbapal \
$(INTERFACEGFXDIR)/menu_1.gbapal
@cat $^ >$@
$(BTLANMSPRGFXDIR)/ice_cube.4bpp: $(BTLANMSPRGFXDIR)/ice_cube_0.4bpp \
$(BTLANMSPRGFXDIR)/ice_cube_1.4bpp \
$(BTLANMSPRGFXDIR)/ice_cube_2.4bpp \
@ -203,208 +183,6 @@ $(BATTRANSGFXDIR)/vs_frame.4bpp: %.4bpp: %.png
$(PARTYMENUGFXDIR)/bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 62 -Wnum_tiles
$(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types:%=$(TYPESGFXDIR)/contest_%.4bpp)
@cat $^ >$@
$(TYPESGFXDIR)/move_types.gbapal: $(TYPESGFXDIR)/move_types_1.gbapal \
$(TYPESGFXDIR)/move_types_2.gbapal \
$(TYPESGFXDIR)/move_types_3.gbapal
@cat $^ >$@
$(INTERFACEGFXDIR)/bag_screen.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53 -Wnum_tiles
$(RAYQUAZAGFXDIR)/rayquaza.8bpp: %.8bpp: %.png
$(GFX) $< $@ -num_tiles 227 -Wnum_tiles
$(RAYQUAZAGFXDIR)/overcast.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 313 -Wnum_tiles
$(RAYQUAZAGFXDIR)/rayquaza_fly1.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 124 -Wnum_tiles
$(RAYQUAZAGFXDIR)/rayquaza_tail_fix.4bpp: $(RAYQUAZAGFXDIR)/rayquaza_tail.4bpp
cp $< $@
head -c 12 /dev/zero >> $@
$(RAYQUAZAGFXDIR)/chase_streaks.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 19 -Wnum_tiles
$(RAYQUAZAGFXDIR)/rayquaza_chase.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 155 -Wnum_tiles
graphics/picture_frame/frame5.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 86 -Wnum_tiles
$(ROULETTEGFXDIR)/roulette_tilt.4bpp: $(ROULETTEGFXDIR)/shroomish.4bpp \
$(ROULETTEGFXDIR)/tailow.4bpp
@cat $^ >$@
$(ROULETTEGFXDIR)/poke_icons2.4bpp: $(ROULETTEGFXDIR)/wynaut.4bpp \
$(ROULETTEGFXDIR)/azurill.4bpp \
$(ROULETTEGFXDIR)/skitty.4bpp \
$(ROULETTEGFXDIR)/makuhita.4bpp
@cat $^ >$@
$(UNUSEDGFXDIR)/intro_birch_beauty.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 822 -Wnum_tiles
$(PSSGFXDIR)/forest_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 55 -Wnum_tiles
$(PSSGFXDIR)/forest.4bpp: $(PSSGFXDIR)/forest_frame.4bpp $(PSSGFXDIR)/forest_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/city_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 52 -Wnum_tiles
$(PSSGFXDIR)/city.4bpp: $(PSSGFXDIR)/city_frame.4bpp $(PSSGFXDIR)/city_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/desert.4bpp: $(PSSGFXDIR)/desert_frame.4bpp $(PSSGFXDIR)/desert_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/savanna_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 45 -Wnum_tiles
$(PSSGFXDIR)/savanna_bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 23 -Wnum_tiles
$(PSSGFXDIR)/savanna.4bpp: $(PSSGFXDIR)/savanna_frame.4bpp $(PSSGFXDIR)/savanna_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/crag_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 49 -Wnum_tiles
$(PSSGFXDIR)/crag.4bpp: $(PSSGFXDIR)/crag_frame.4bpp $(PSSGFXDIR)/crag_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/volcano_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 56 -Wnum_tiles
$(PSSGFXDIR)/volcano.4bpp: $(PSSGFXDIR)/volcano_frame.4bpp $(PSSGFXDIR)/volcano_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/snow_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 57 -Wnum_tiles
$(PSSGFXDIR)/snow.4bpp: $(PSSGFXDIR)/snow_frame.4bpp $(PSSGFXDIR)/snow_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/cave_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 55 -Wnum_tiles
$(PSSGFXDIR)/cave.4bpp: $(PSSGFXDIR)/cave_frame.4bpp $(PSSGFXDIR)/cave_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/beach_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 46 -Wnum_tiles
$(PSSGFXDIR)/beach_bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 23 -Wnum_tiles
$(PSSGFXDIR)/beach.4bpp: $(PSSGFXDIR)/beach_frame.4bpp $(PSSGFXDIR)/beach_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/seafloor_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 54 -Wnum_tiles
$(PSSGFXDIR)/seafloor.4bpp: $(PSSGFXDIR)/seafloor_frame.4bpp $(PSSGFXDIR)/seafloor_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/river_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 51 -Wnum_tiles
$(PSSGFXDIR)/river_bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 11 -Wnum_tiles
$(PSSGFXDIR)/river.4bpp: $(PSSGFXDIR)/river_frame.4bpp $(PSSGFXDIR)/river_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/sky_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 45 -Wnum_tiles
$(PSSGFXDIR)/sky.4bpp: $(PSSGFXDIR)/sky_frame.4bpp $(PSSGFXDIR)/sky_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/polkadot_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 54 -Wnum_tiles
$(PSSGFXDIR)/polkadot.4bpp: $(PSSGFXDIR)/polkadot_frame.4bpp $(PSSGFXDIR)/polkadot_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/pokecenter_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 35 -Wnum_tiles
$(PSSGFXDIR)/pokecenter.4bpp: $(PSSGFXDIR)/pokecenter_frame.4bpp $(PSSGFXDIR)/pokecenter_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/machine_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 33 -Wnum_tiles
$(PSSGFXDIR)/machine.4bpp: $(PSSGFXDIR)/machine_frame.4bpp $(PSSGFXDIR)/machine_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/plain_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 18 -Wnum_tiles
$(PSSGFXDIR)/plain.4bpp: $(PSSGFXDIR)/plain_frame.4bpp $(PSSGFXDIR)/plain_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/friends_frame1.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 57 -Wnum_tiles
$(PSSGFXDIR)/friends_frame2.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 57 -Wnum_tiles
$(PSSGFXDIR)/zigzagoon.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/zigzagoon_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/screen.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/screen_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/horizontal.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/horizontal_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/diagonal.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/diagonal_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/block.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/block_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/ribbon.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/ribbon_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/pokecenter2.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/pokecenter2_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/frame.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/frame_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/blank.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/blank_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/circles.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/circles_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/azumarill.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/azumarill_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/pikachu.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/pikachu_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/legendary.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/legendary_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/dusclops.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/dusclops_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/ludicolo.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/ludicolo_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/whiscash.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/whiscash_bg.4bpp
@cat $^ >$@
$(FIELDEFFECTSGFXDIR)/pics/underwater_bubbles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
@ -425,24 +203,6 @@ $(INTERFACEGFXDIR)/selector_outline.4bpp: %.4bpp: %.png
graphics/tm_case/tm_case.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 91 -Wnum_tiles
$(PKNAVGFXDIR)/header.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53 -Wnum_tiles
$(PKNAVGFXDIR)/outline.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53 -Wnum_tiles
$(PKNAVGFXDIR)/ui_matchcall.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 13 -Wnum_tiles
$(INTERFACEGFXDIR)/region_map.8bpp: %.8bpp: %.png
$(GFX) $< $@ -num_tiles 232 -Wnum_tiles
$(INTERFACEGFXDIR)/region_map_affine.8bpp: %.8bpp: %.png
$(GFX) $< $@ -num_tiles 233 -Wnum_tiles
$(MISCGFXDIR)/birch_help.4bpp: $(MISCGFXDIR)/birch_bag.4bpp $(MISCGFXDIR)/birch_grass.4bpp
@cat $^ >$@
$(FAMECHECKERGFXDIR)/spinning_pokeball.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 15 -Wnum_tiles

View File

@ -23,8 +23,13 @@
#define PCSWITCH_FORCE_SP_START 0x09
// Period for which parent-child switching search specified
#if REVISION >= 0xA
#define PCSWITCH_ALL_PERIOD 180 // Entire cycle 180 frames
#define PCSWITCH_SP_PERIOD 65 // Child period 40 frames
#else
#define PCSWITCH_ALL_PERIOD 180 // Entire cycle 180 frames
#define PCSWITCH_SP_PERIOD 40 // Child period 40 frames
#endif
// Error code returned by Link Manager API (rfu_LMAN_...return value of function)
#define LMAN_ERROR_MANAGER_BUSY 1 // Link Manager is already running.
@ -165,6 +170,9 @@ typedef struct linkManagerTag
/* 0x014 */ u16 param[2];
/* 0x018 */ u16 NI_failCounter_limit;
/* 0x01a */ u16 connect_period;
#if REVISION >= 0xA
/* 0x01c */ u16 connect_period_initial; // pushes next offsets up by 2
#endif
/* 0x01c */ u16 pcswitch_period_bak;
/* 0x01e */ u16 work;
/* 0x020 */ u16 *acceptable_serialNo_list;
@ -190,6 +198,10 @@ u8 rfu_LMAN_setLinkRecovery(u8 enable_flag, u16 recovery_period);
void rfu_LMAN_manager_entity(u32 rand);
void rfu_LMAN_syncVBlank(void);
u8 rfu_LMAN_initializeManager(void (*LMAN_callback_p)(u8, u8), void (*MSC_callback_p)(u16));
#if REVISION >= 0xA
void rfu_LMAN_forceChangeSP(bool8 child);
#else
void rfu_LMAN_forceChangeSP(void);
#endif
#endif //GUARD_LINKMANAGER_H

View File

@ -8,12 +8,17 @@
// still has them in the ROM. This is because the developers forgot
// to define NDEBUG before release, however this has been changed as
// Ruby's actual debug build does not use the AGBPrint features.
// #define NDEBUG
// Revision 10 disabled asserts in some other way, comment out NDEBUG there to bring them back.
#if REVISION >= 0xA
#define NDEBUG
#endif
// Fire Red likely forgot to define NDEBUG/NOAGBPRN before release, leading
// to the inclusion of asserts in the retail ROM.
// Revision 10 disabled asserts in some other way, but isagbprint/etc is still present there.
#ifndef NDEBUG
#if !defined(NDEBUG) || REVISION >= 0xA
#define PRETTY_PRINT_OFF (0)
#define PRETTY_PRINT_MINI_PRINTF (1)
#define PRETTY_PRINT_LIBC (2)

View File

@ -27,7 +27,7 @@
#define OBJ_EVENT_GFX_SITTING_BOY 21
#define OBJ_EVENT_GFX_LASS 22
#define OBJ_EVENT_GFX_WOMAN_1 23
#define OBJ_EVENT_GFX_BATTLE_GIRL 24
#define OBJ_EVENT_GFX_CRUSH_GIRL 24
#define OBJ_EVENT_GFX_MAN 25
#define OBJ_EVENT_GFX_ROCKER 26
#define OBJ_EVENT_GFX_FAT_MAN 27
@ -55,9 +55,9 @@
#define OBJ_EVENT_GFX_ROCKET_M 49
#define OBJ_EVENT_GFX_ROCKET_F 50
#define OBJ_EVENT_GFX_GBA_KID 51
#define OBJ_EVENT_GFX_SUPER_NERD 52
#define OBJ_EVENT_GFX_POKE_MANIAC 52
#define OBJ_EVENT_GFX_BIKER 53
#define OBJ_EVENT_GFX_BLACKBELT 54
#define OBJ_EVENT_GFX_BLACK_BELT 54
#define OBJ_EVENT_GFX_SCIENTIST 55
#define OBJ_EVENT_GFX_HIKER 56
#define OBJ_EVENT_GFX_FISHER 57

View File

@ -121,7 +121,7 @@
#define FLAG_HIDE_UNION_ROOM_PLAYER_7 0x069
#define FLAG_HIDE_UNION_ROOM_PLAYER_8 0x06A
#define FLAG_HIDE_CINNABAR_SEAGALLOP 0x06B
#define FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT 0x06C
#define FLAG_HIDE_SAFFRON_FAN_CLUB_BLACK_BELT 0x06C
#define FLAG_HIDE_SAFFRON_FAN_CLUB_ROCKER 0x06D
#define FLAG_HIDE_SAFFRON_FAN_CLUB_WOMAN 0x06E
#define FLAG_HIDE_SAFFRON_FAN_CLUB_BEAUTY 0x06F
@ -138,7 +138,7 @@
#define FLAG_HIDE_LOSTELLE_IN_BERRY_FOREST 0x07A
#define FLAG_HIDE_TWO_ISLAND_WOMAN 0x07B
#define FLAG_HIDE_TWO_ISLAND_BEAUTY 0x07C
#define FLAG_HIDE_TWO_ISLAND_SUPER_NERD 0x07D
#define FLAG_HIDE_TWO_ISLAND_POKE_MANIAC 0x07D
#define FLAG_HIDE_THREE_ISLAND_ANTIBIKERS 0x07E
#define FLAG_0x07F 0x07F
#define FLAG_HIDE_ROUTE_16_SNORLAX 0x080

View File

@ -111,4 +111,14 @@
#define STDSTRING_TM_CASE 27
#define STDSTRING_BERRY_POUCH 28
enum
{
PSA_MON_ATTR_TMHM_X_POS,
PSA_MON_ATTR_TMHM_Y_POS,
PSA_MON_ATTR_Y_OFFSET,
PSA_MON_ATTR_ITEM_X_POS,
PSA_MON_ATTR_ITEM_Y_POS,
PSA_MON_ATTR_COUNT
};
#endif //GUARD_CONSTANTS_MENU_H

View File

@ -0,0 +1,27 @@
#ifndef GUARD_CONSTANTS_POKEMON_SPECIAL_ANIM_H
#define GUARD_CONSTANTS_POKEMON_SPECIAL_ANIM_H
enum
{
PSA_TEXT_ITEM_USED,
PSA_TEXT_LEVEL_ELEVATED,
PSA_TEXT_FORGET_1,
PSA_TEXT_FORGET_2_AND,
PSA_TEXT_FORGET_POOF,
PSA_TEXT_FORGET_FORGOT,
PSA_TEXT_FORGET_AND,
PSA_TEXT_MACHINE_SET,
PSA_TEXT_HUH,
PSA_TEXT_LEARNED_MOVE
};
enum
{
PSA_ITEM_ANIM_TYPE_DEFAULT,
PSA_ITEM_ANIM_TYPE_POTION,
PSA_ITEM_ANIM_TYPE_UNUSED1,
PSA_ITEM_ANIM_TYPE_UNUSED2,
PSA_ITEM_ANIM_TYPE_TMHM
};
#endif // GUARD_CONSTANTS_POKEMON_SPECIAL_ANIM_H

View File

@ -7,9 +7,10 @@
// exceed RFU_CHILD_MAX (4), for a total of 5 including the player.
#define MAX_UNION_ROOM_LEADERS 8
#define UNION_ROOM_SPAWN_NONE 0
#define UNION_ROOM_SPAWN_IN 1
#define UNION_ROOM_SPAWN_OUT 2
#define UNION_ROOM_SPAWN_NONE 0
#define UNION_ROOM_SPAWN_IN 1
#define UNION_ROOM_SPAWN_OUT 2
#define UNION_ROOM_SPAWN_OUT_SOON 3 // Equivalent to SPAWN_OUT in revision 10 - probably SPAWN_OUT means disconnected in a "connection reset" way?
#define UNION_ROOM_MAX_LEVEL 30

View File

@ -9,7 +9,7 @@
#define MGBA_LOG_INFO (3)
#define MGBA_LOG_DEBUG (4)
#ifdef NDEBUG
#if defined(NDEBUG) && !(REVISION >= 0xA)
#define DebugPrintf(pBuf, ...)
#define DebugPrintfLevel(level, pBuf, ...)
#define MgbaOpen()

View File

@ -3936,8 +3936,8 @@ extern const u32 gBlankGfxCompressed[];
extern const u32 gInterfaceGfx_HPNumbers[];
extern const u32 gGhostFrontPic[];
extern const u32 gGhostPalette[];
extern const u32 gSubstituteDollGfx[];
extern const u32 gSubstituteDollTilemap[];
extern const u32 gSubstituteDollFrontGfx[];
extern const u32 gSubstituteDollBackGfx[];
extern const u32 gSubstituteDollPal[];
// ice

View File

@ -4,7 +4,11 @@
#include "global.h"
#include "main.h"
#if REVISION >= 0xA
#define LIBRFU_VERSION 1028
#else
#define LIBRFU_VERSION 1024
#endif
/* TODOs:
* - documentation

View File

@ -294,6 +294,7 @@ bool32 WaitRfuState(bool32 force);
bool32 HasTrainerLeftPartnersList(u16 trainerId, const u8 *trainerName);
void SendRfuStatusToPartner(u8 status, u16 trainerId, const u8 *name);
u32 WaitSendRfuStatusToPartner(u16 trainerId, const u8 *name);
s32 GetJoinGroupStatus(void);
void SetHostRfuGameData(u8 activity, u32 partnerInfo, bool32 startedActivity);
void InitializeRfuLinkManager_LinkLeader(u32 availSlots);
void RequestDisconnectSlotByTrainerNameAndId(const u8 *trainerName, u16 trainerId);
@ -322,6 +323,17 @@ void RfuSetNormalDisconnectMode(void);
void SetUnionRoomChatPlayerData(u32 numPlayers);
void ClearRecvCommands(void);
void PkmnStrToASCII(u8 *dest, const u8 *src);
void ASCIIToPkmnStr(u8 *dest, const u8 *src);
#if REVISION >= 0xA
u16 RfuGetErrorInfo(void);
void LinkRfu_ForceChangeSpParent(void);
void DestroyTask_RfuReconnectWithParent(void);
void RfuReloadSave(void);
void RfuSoftReset(void);
#endif
#include "mystery_gift_server.h"
extern const struct MysteryGiftServerCmd gServerScript_ClientCanceledCard[];

View File

@ -31,8 +31,8 @@ void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 x, u
void Menu_PrintFormatIntlPlayerName(u8 windowId, const u8 * src, u16 x, u16 y);
void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority);
bool8 IsBlendTaskActive(void);
u8 Menu2_GetMonSpriteAnchorCoord(u16 species, u32 personality, u8 a2);
s8 Menu2_GetMonSpriteAnchorCoordMinusx20(u16 species, u32 personality, u8 a2);
u8 Menu2_GetMonPosAttribute(u16 species, u32 personality, u8 attributeId);
s8 Menu2_GetStarSpritePosAttribute(u16 species, u32 personality, u8 attributeId);
// list_menu
void ListMenu_LoadMonIconPalette(u8 palOffset, u16 speciesId);

View File

@ -180,6 +180,10 @@ void UpdateEscapeWarp(s16 x, s16 y);
bool8 SetDiveWarpEmerge(u16 x, u16 y);
bool8 SetDiveWarpDive(u16 x, u16 y);
#if REVISION >= 0xA
void ClearFieldCallback(void);
#endif
extern u16 *gBGTilemapBuffers1;
extern u16 *gBGTilemapBuffers2;
extern u16 *gBGTilemapBuffers3;

View File

@ -3,19 +3,6 @@
#include "pokemon_special_anim.h"
enum
{
PSA_TEXT_ITEM_USED,
PSA_TEXT_LEVEL_ELEVATED,
PSA_TEXT_FORGET_1,
PSA_TEXT_FORGET_2_AND,
PSA_TEXT_FORGET_POOF,
PSA_TEXT_FORGET_FORGOT,
PSA_TEXT_FORGET_AND,
PSA_TEXT_MACHINE_SET,
PSA_TEXT_HUH,
PSA_TEXT_LEARNED_MOVE
};
struct PokemonSpecialAnimScene
{

36
include/sloopsvc.h Normal file
View File

@ -0,0 +1,36 @@
#ifndef GUARD_SLOOPSVC_H
#define GUARD_SLOOPSVC_H
#if REVISION >= 0xA
#define SVC4B_EXIT_EARLY (1 << 0)
#define SVC4B_RESEED_RNG (1 << 1)
void svc_40(void);
void svc_41(void);
void svc_47(void);
void svc_42(void);
u32 svc_49(void);
void svc_45_rfu_link_status(void);
u32 svc_4a(void);
void svc_43(u16 pid);
void svc_44(void);
u32 svc_53(void);
u32 svc_51(void);
u32 svc_4b(void);
void svc_WriteSector(u8 sector, u8* data);
void svc_ReplaceSector(u8 sector, u8* data);
void svc_FinishSave(void);
u32 svc_CommsAllowedByParentalControls(void);
u32 svc_BadWordCheck(u8* str);
void svc_4f(u32 arg);
u32 svc_50(void);
void svc_SetSaveBlock2(struct SaveBlock2* saveBlock2);
void svc_stubbed(void);
void svc_SetStarter(u32 species);
void svc_SetActivity(u32 activity);
void svc_IncrementLinkError(void);
#endif
#endif

View File

@ -64,6 +64,7 @@ SECTIONS {
src/window_8bpp.o(.text);
src/text.o(.text);
src/sprite.o(.text);
src/sloopsvc.o(.text);
src/string_util.o(.text);
src/link.o(.text);
src/multiboot.o(.text);
@ -405,6 +406,7 @@ SECTIONS {
src/text.o(.rodata);
src/sprite.o(.rodata);
src/bg_regs.o(.rodata);
src/sloopsvc.o(.rodata);
src/string_util.o(.rodata);
src/link.o(.rodata);
src/main_menu.o(.rodata);
@ -622,8 +624,8 @@ SECTIONS {
sound/songs/midi/se_pc_off.o(.rodata);
sound/songs/midi/se_pc_on.o(.rodata);
sound/songs/midi/se_select.o(.rodata);
sound/songs/se_win_open.o(.rodata);
sound/songs/se_wall_hit.o(.rodata);
sound/songs/midi/se_win_open.o(.rodata);
sound/songs/midi/se_wall_hit.o(.rodata);
sound/songs/midi/se_rs_door.o(.rodata);
sound/songs/midi/se_exit.o(.rodata);
sound/songs/midi/se_ledge.o(.rodata);
@ -717,8 +719,8 @@ SECTIONS {
sound/songs/midi/se_applause.o(.rodata);
sound/songs/midi/se_vend.o(.rodata);
sound/songs/midi/se_orb.o(.rodata);
sound/songs/se_dex_scroll.o(.rodata);
sound/songs/se_dex_page.o(.rodata);
sound/songs/midi/se_dex_scroll.o(.rodata);
sound/songs/midi/se_dex_page.o(.rodata);
sound/songs/midi/se_pokenav_on.o(.rodata);
sound/songs/midi/se_pokenav_off.o(.rodata);
sound/songs/midi/se_dex_search.o(.rodata);
@ -727,151 +729,151 @@ SECTIONS {
sound/songs/midi/se_ball_tray_ball.o(.rodata);
sound/songs/midi/se_ball_tray_exit.o(.rodata);
sound/songs/midi/se_glass_flute.o(.rodata);
sound/songs/se_m_thunderbolt.o(.rodata);
sound/songs/se_m_thunderbolt2.o(.rodata);
sound/songs/se_m_harden.o(.rodata);
sound/songs/se_m_nightmare.o(.rodata);
sound/songs/se_m_vital_throw.o(.rodata);
sound/songs/se_m_vital_throw2.o(.rodata);
sound/songs/se_m_bubble.o(.rodata);
sound/songs/se_m_bubble2.o(.rodata);
sound/songs/se_m_bubble3.o(.rodata);
sound/songs/se_m_rain_dance.o(.rodata);
sound/songs/midi/se_m_thunderbolt.o(.rodata);
sound/songs/midi/se_m_thunderbolt2.o(.rodata);
sound/songs/midi/se_m_harden.o(.rodata);
sound/songs/midi/se_m_nightmare.o(.rodata);
sound/songs/midi/se_m_vital_throw.o(.rodata);
sound/songs/midi/se_m_vital_throw2.o(.rodata);
sound/songs/midi/se_m_bubble.o(.rodata);
sound/songs/midi/se_m_bubble2.o(.rodata);
sound/songs/midi/se_m_bubble3.o(.rodata);
sound/songs/midi/se_m_rain_dance.o(.rodata);
sound/songs/midi/se_m_cut.o(.rodata);
sound/songs/se_m_string_shot.o(.rodata);
sound/songs/se_m_string_shot2.o(.rodata);
sound/songs/se_m_rock_throw.o(.rodata);
sound/songs/midi/se_m_string_shot.o(.rodata);
sound/songs/midi/se_m_string_shot2.o(.rodata);
sound/songs/midi/se_m_rock_throw.o(.rodata);
sound/songs/midi/se_m_gust.o(.rodata);
sound/songs/midi/se_m_gust2.o(.rodata);
sound/songs/midi/se_m_double_slap.o(.rodata);
sound/songs/se_m_double_team.o(.rodata);
sound/songs/midi/se_m_double_team.o(.rodata);
sound/songs/midi/se_m_razor_wind.o(.rodata);
sound/songs/se_m_icy_wind.o(.rodata);
sound/songs/se_m_thunder_wave.o(.rodata);
sound/songs/midi/se_m_icy_wind.o(.rodata);
sound/songs/midi/se_m_thunder_wave.o(.rodata);
sound/songs/midi/se_m_comet_punch.o(.rodata);
sound/songs/midi/se_m_mega_kick.o(.rodata);
sound/songs/midi/se_m_mega_kick2.o(.rodata);
sound/songs/se_m_crabhammer.o(.rodata);
sound/songs/midi/se_m_crabhammer.o(.rodata);
sound/songs/midi/se_m_jump_kick.o(.rodata);
sound/songs/se_m_flame_wheel.o(.rodata);
sound/songs/se_m_flame_wheel2.o(.rodata);
sound/songs/se_m_flamethrower.o(.rodata);
sound/songs/midi/se_m_flame_wheel.o(.rodata);
sound/songs/midi/se_m_flame_wheel2.o(.rodata);
sound/songs/midi/se_m_flamethrower.o(.rodata);
sound/songs/midi/se_m_fire_punch.o(.rodata);
sound/songs/se_m_toxic.o(.rodata);
sound/songs/se_m_sacred_fire.o(.rodata);
sound/songs/se_m_sacred_fire2.o(.rodata);
sound/songs/se_m_ember.o(.rodata);
sound/songs/midi/se_m_toxic.o(.rodata);
sound/songs/midi/se_m_sacred_fire.o(.rodata);
sound/songs/midi/se_m_sacred_fire2.o(.rodata);
sound/songs/midi/se_m_ember.o(.rodata);
sound/songs/midi/se_m_take_down.o(.rodata);
sound/songs/se_m_blizzard.o(.rodata);
sound/songs/se_m_blizzard2.o(.rodata);
sound/songs/midi/se_m_blizzard.o(.rodata);
sound/songs/midi/se_m_blizzard2.o(.rodata);
sound/songs/midi/se_m_scratch.o(.rodata);
sound/songs/midi/se_m_vicegrip.o(.rodata);
sound/songs/midi/se_m_wing_attack.o(.rodata);
sound/songs/midi/se_m_fly.o(.rodata);
sound/songs/midi/se_m_sand_attack.o(.rodata);
sound/songs/midi/se_m_razor_wind2.o(.rodata);
sound/songs/se_m_bite.o(.rodata);
sound/songs/midi/se_m_bite.o(.rodata);
sound/songs/midi/se_m_headbutt.o(.rodata);
sound/songs/se_m_surf.o(.rodata);
sound/songs/se_m_hydro_pump.o(.rodata);
sound/songs/se_m_whirlpool.o(.rodata);
sound/songs/midi/se_m_surf.o(.rodata);
sound/songs/midi/se_m_hydro_pump.o(.rodata);
sound/songs/midi/se_m_whirlpool.o(.rodata);
sound/songs/midi/se_m_horn_attack.o(.rodata);
sound/songs/midi/se_m_tail_whip.o(.rodata);
sound/songs/se_m_mist.o(.rodata);
sound/songs/se_m_poison_powder.o(.rodata);
sound/songs/midi/se_m_mist.o(.rodata);
sound/songs/midi/se_m_poison_powder.o(.rodata);
sound/songs/midi/se_m_bind.o(.rodata);
sound/songs/se_m_dragon_rage.o(.rodata);
sound/songs/se_m_sing.o(.rodata);
sound/songs/se_m_perish_song.o(.rodata);
sound/songs/midi/se_m_dragon_rage.o(.rodata);
sound/songs/midi/se_m_sing.o(.rodata);
sound/songs/midi/se_m_perish_song.o(.rodata);
sound/songs/midi/se_m_pay_day.o(.rodata);
sound/songs/se_m_dig.o(.rodata);
sound/songs/se_m_dizzy_punch.o(.rodata);
sound/songs/se_m_self_destruct.o(.rodata);
sound/songs/se_m_explosion.o(.rodata);
sound/songs/se_m_absorb_2.o(.rodata);
sound/songs/se_m_absorb.o(.rodata);
sound/songs/se_m_screech.o(.rodata);
sound/songs/se_m_bubble_beam.o(.rodata);
sound/songs/se_m_bubble_beam2.o(.rodata);
sound/songs/se_m_supersonic.o(.rodata);
sound/songs/se_m_belly_drum.o(.rodata);
sound/songs/se_m_metronome.o(.rodata);
sound/songs/se_m_bonemerang.o(.rodata);
sound/songs/se_m_lick.o(.rodata);
sound/songs/se_m_psybeam.o(.rodata);
sound/songs/se_m_faint_attack.o(.rodata);
sound/songs/midi/se_m_dig.o(.rodata);
sound/songs/midi/se_m_dizzy_punch.o(.rodata);
sound/songs/midi/se_m_self_destruct.o(.rodata);
sound/songs/midi/se_m_explosion.o(.rodata);
sound/songs/midi/se_m_absorb_2.o(.rodata);
sound/songs/midi/se_m_absorb.o(.rodata);
sound/songs/midi/se_m_screech.o(.rodata);
sound/songs/midi/se_m_bubble_beam.o(.rodata);
sound/songs/midi/se_m_bubble_beam2.o(.rodata);
sound/songs/midi/se_m_supersonic.o(.rodata);
sound/songs/midi/se_m_belly_drum.o(.rodata);
sound/songs/midi/se_m_metronome.o(.rodata);
sound/songs/midi/se_m_bonemerang.o(.rodata);
sound/songs/midi/se_m_lick.o(.rodata);
sound/songs/midi/se_m_psybeam.o(.rodata);
sound/songs/midi/se_m_faint_attack.o(.rodata);
sound/songs/midi/se_m_swords_dance.o(.rodata);
sound/songs/midi/se_m_leer.o(.rodata);
sound/songs/se_m_swagger.o(.rodata);
sound/songs/se_m_swagger2.o(.rodata);
sound/songs/se_m_heal_bell.o(.rodata);
sound/songs/se_m_confuse_ray.o(.rodata);
sound/songs/se_m_snore.o(.rodata);
sound/songs/se_m_brick_break.o(.rodata);
sound/songs/se_m_giga_drain.o(.rodata);
sound/songs/se_m_psybeam2.o(.rodata);
sound/songs/se_m_solar_beam.o(.rodata);
sound/songs/se_m_petal_dance.o(.rodata);
sound/songs/se_m_teleport.o(.rodata);
sound/songs/se_m_minimize.o(.rodata);
sound/songs/se_m_sketch.o(.rodata);
sound/songs/se_m_swift.o(.rodata);
sound/songs/se_m_reflect.o(.rodata);
sound/songs/se_m_barrier.o(.rodata);
sound/songs/se_m_detect.o(.rodata);
sound/songs/se_m_lock_on.o(.rodata);
sound/songs/se_m_moonlight.o(.rodata);
sound/songs/se_m_charm.o(.rodata);
sound/songs/se_m_charge.o(.rodata);
sound/songs/se_m_strength.o(.rodata);
sound/songs/se_m_hyper_beam.o(.rodata);
sound/songs/se_m_waterfall.o(.rodata);
sound/songs/se_m_reversal.o(.rodata);
sound/songs/se_m_acid_armor.o(.rodata);
sound/songs/se_m_sandstorm.o(.rodata);
sound/songs/se_m_tri_attack.o(.rodata);
sound/songs/se_m_tri_attack2.o(.rodata);
sound/songs/se_m_encore.o(.rodata);
sound/songs/se_m_encore2.o(.rodata);
sound/songs/se_m_baton_pass.o(.rodata);
sound/songs/se_m_milk_drink.o(.rodata);
sound/songs/se_m_attract.o(.rodata);
sound/songs/se_m_attract2.o(.rodata);
sound/songs/se_m_morning_sun.o(.rodata);
sound/songs/se_m_flatter.o(.rodata);
sound/songs/se_m_sand_tomb.o(.rodata);
sound/songs/se_m_grasswhistle.o(.rodata);
sound/songs/se_m_spit_up.o(.rodata);
sound/songs/se_m_dive.o(.rodata);
sound/songs/se_m_earthquake.o(.rodata);
sound/songs/se_m_twister.o(.rodata);
sound/songs/se_m_sweet_scent.o(.rodata);
sound/songs/se_m_yawn.o(.rodata);
sound/songs/se_m_sky_uppercut.o(.rodata);
sound/songs/se_m_stat_increase.o(.rodata);
sound/songs/se_m_heat_wave.o(.rodata);
sound/songs/se_m_uproar.o(.rodata);
sound/songs/se_m_hail.o(.rodata);
sound/songs/se_m_cosmic_power.o(.rodata);
sound/songs/se_m_teeter_dance.o(.rodata);
sound/songs/se_m_stat_decrease.o(.rodata);
sound/songs/se_m_haze.o(.rodata);
sound/songs/se_m_hyper_beam2.o(.rodata);
sound/songs/midi/se_m_swagger.o(.rodata);
sound/songs/midi/se_m_swagger2.o(.rodata);
sound/songs/midi/se_m_heal_bell.o(.rodata);
sound/songs/midi/se_m_confuse_ray.o(.rodata);
sound/songs/midi/se_m_snore.o(.rodata);
sound/songs/midi/se_m_brick_break.o(.rodata);
sound/songs/midi/se_m_giga_drain.o(.rodata);
sound/songs/midi/se_m_psybeam2.o(.rodata);
sound/songs/midi/se_m_solar_beam.o(.rodata);
sound/songs/midi/se_m_petal_dance.o(.rodata);
sound/songs/midi/se_m_teleport.o(.rodata);
sound/songs/midi/se_m_minimize.o(.rodata);
sound/songs/midi/se_m_sketch.o(.rodata);
sound/songs/midi/se_m_swift.o(.rodata);
sound/songs/midi/se_m_reflect.o(.rodata);
sound/songs/midi/se_m_barrier.o(.rodata);
sound/songs/midi/se_m_detect.o(.rodata);
sound/songs/midi/se_m_lock_on.o(.rodata);
sound/songs/midi/se_m_moonlight.o(.rodata);
sound/songs/midi/se_m_charm.o(.rodata);
sound/songs/midi/se_m_charge.o(.rodata);
sound/songs/midi/se_m_strength.o(.rodata);
sound/songs/midi/se_m_hyper_beam.o(.rodata);
sound/songs/midi/se_m_waterfall.o(.rodata);
sound/songs/midi/se_m_reversal.o(.rodata);
sound/songs/midi/se_m_acid_armor.o(.rodata);
sound/songs/midi/se_m_sandstorm.o(.rodata);
sound/songs/midi/se_m_tri_attack.o(.rodata);
sound/songs/midi/se_m_tri_attack2.o(.rodata);
sound/songs/midi/se_m_encore.o(.rodata);
sound/songs/midi/se_m_encore2.o(.rodata);
sound/songs/midi/se_m_baton_pass.o(.rodata);
sound/songs/midi/se_m_milk_drink.o(.rodata);
sound/songs/midi/se_m_attract.o(.rodata);
sound/songs/midi/se_m_attract2.o(.rodata);
sound/songs/midi/se_m_morning_sun.o(.rodata);
sound/songs/midi/se_m_flatter.o(.rodata);
sound/songs/midi/se_m_sand_tomb.o(.rodata);
sound/songs/midi/se_m_grasswhistle.o(.rodata);
sound/songs/midi/se_m_spit_up.o(.rodata);
sound/songs/midi/se_m_dive.o(.rodata);
sound/songs/midi/se_m_earthquake.o(.rodata);
sound/songs/midi/se_m_twister.o(.rodata);
sound/songs/midi/se_m_sweet_scent.o(.rodata);
sound/songs/midi/se_m_yawn.o(.rodata);
sound/songs/midi/se_m_sky_uppercut.o(.rodata);
sound/songs/midi/se_m_stat_increase.o(.rodata);
sound/songs/midi/se_m_heat_wave.o(.rodata);
sound/songs/midi/se_m_uproar.o(.rodata);
sound/songs/midi/se_m_hail.o(.rodata);
sound/songs/midi/se_m_cosmic_power.o(.rodata);
sound/songs/midi/se_m_teeter_dance.o(.rodata);
sound/songs/midi/se_m_stat_decrease.o(.rodata);
sound/songs/midi/se_m_haze.o(.rodata);
sound/songs/midi/se_m_hyper_beam2.o(.rodata);
sound/songs/midi/se_door.o(.rodata);
sound/songs/se_card_flip.o(.rodata);
sound/songs/se_card_flipping.o(.rodata);
sound/songs/se_card_open.o(.rodata);
sound/songs/se_bag_cursor.o(.rodata);
sound/songs/se_bag_pocket.o(.rodata);
sound/songs/se_ball_click.o(.rodata);
sound/songs/se_shop.o(.rodata);
sound/songs/se_ss_anne_horn.o(.rodata);
sound/songs/se_help_open.o(.rodata);
sound/songs/se_help_close.o(.rodata);
sound/songs/se_help_error.o(.rodata);
sound/songs/se_deoxys_move.o(.rodata);
sound/songs/se_poke_jump_success.o(.rodata);
sound/songs/se_poke_jump_failure.o(.rodata);
sound/songs/midi/se_card_flip.o(.rodata);
sound/songs/midi/se_card_flipping.o(.rodata);
sound/songs/midi/se_card_open.o(.rodata);
sound/songs/midi/se_bag_cursor.o(.rodata);
sound/songs/midi/se_bag_pocket.o(.rodata);
sound/songs/midi/se_ball_click.o(.rodata);
sound/songs/midi/se_shop.o(.rodata);
sound/songs/midi/se_ss_anne_horn.o(.rodata);
sound/songs/midi/se_help_open.o(.rodata);
sound/songs/midi/se_help_close.o(.rodata);
sound/songs/midi/se_help_error.o(.rodata);
sound/songs/midi/se_deoxys_move.o(.rodata);
sound/songs/midi/se_poke_jump_success.o(.rodata);
sound/songs/midi/se_poke_jump_failure.o(.rodata);
sound/songs/midi/mus_heal.o(.rodata);
sound/songs/midi/mus_level_up.o(.rodata);
sound/songs/midi/mus_obtain_item.o(.rodata);
@ -1040,11 +1042,24 @@ SECTIONS {
data/*.o(.rodata);
} > ROM =0
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 2 sections */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
.debug_info 0 : { *(.debug_info) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }

View File

@ -65,10 +65,24 @@ SECTIONS {
*(.rodata*);
} > ROM =0
/* DWARF 2 sections */
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
.debug_info 0 : { *(.debug_info) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
@ -76,6 +90,9 @@ SECTIONS {
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* DWARF 5*/
.debug_line_str 0 : { *(.debug_line_str) }
/* Discard everything not specifically mentioned above. */
/DISCARD/ :
{

1062
ld_script_rev10.ld Normal file

File diff suppressed because it is too large Load Diff

1
leafgreen_switch.sha1 Normal file
View File

@ -0,0 +1 @@
62b9fc77549dbc67032eb6cbd0ea6ad3b825690f pokeleafgreen_switch.gba

View File

@ -5,7 +5,7 @@ MAKEFLAGS += --no-print-directory
# Inclusive list. If you don't want a tool to be built, don't add it here.
TOOLS_DIR := tools
TOOL_NAMES := aif2pcm bin2c gbafix gbagfx jsonproc mapjson mid2agb preproc ramscrgen rsfont scaninc
TOOL_NAMES := bin2c gbafix gbagfx jsonproc mapjson mid2agb preproc ramscrgen rsfont scaninc wav2agb
TOOLDIRS := $(TOOL_NAMES:%=$(TOOLS_DIR)/%)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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