aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvulcandth <vulcandth@gmail.com>2024-12-27 12:10:13 -0600
committerGitHub <noreply@github.com>2024-12-27 13:10:13 -0500
commit0d4562d1b855bfa7965349e1a92deac0f5b89a27 (patch)
treedc3696bd493d990070788ee6afa84857eed0f7fd
parentDon't pass redundant label names to `table_width` and `list_start` (#484) (diff)
downloadpokeyellow-0d4562d1b855bfa7965349e1a92deac0f5b89a27.tar.gz
pokeyellow-0d4562d1b855bfa7965349e1a92deac0f5b89a27.tar.xz
pokeyellow-0d4562d1b855bfa7965349e1a92deac0f5b89a27.zip
Use exported constants for VC patch (#483)
-rw-r--r--Makefile6
-rw-r--r--includes.asm7
-rw-r--r--tools/make_patch.c22
-rw-r--r--vc/pokeblue.constants.asm75
-rw-r--r--vc/pokeblue.patch.template42
-rw-r--r--vc/pokered.constants.asm80
-rw-r--r--vc/pokered.patch.template48
7 files changed, 136 insertions, 144 deletions
diff --git a/Makefile b/Makefile
index e53fce45..08c4dd9b 100644
--- a/Makefile
+++ b/Makefile
@@ -97,7 +97,7 @@ $(pokeblue_debug_obj): RGBASMFLAGS += -D _BLUE -D _DEBUG
$(pokered_vc_obj): RGBASMFLAGS += -D _RED -D _RED_VC
$(pokeblue_vc_obj): RGBASMFLAGS += -D _BLUE -D _BLUE_VC
-%.patch: vc/%.constants.sym %_vc.gbc %.gbc vc/%.patch.template
+%.patch: %_vc.gbc %.gbc vc/%.patch.template
tools/make_patch $*_vc.sym $^ $@
rgbdscheck.o: rgbdscheck.asm
@@ -125,10 +125,6 @@ $(foreach obj, $(pokeblue_debug_obj), $(eval $(call DEP,$(obj),$(obj:_blue_debug
$(foreach obj, $(pokered_vc_obj), $(eval $(call DEP,$(obj),$(obj:_red_vc.o=.asm))))
$(foreach obj, $(pokeblue_vc_obj), $(eval $(call DEP,$(obj),$(obj:_blue_vc.o=.asm))))
-# Dependencies for VC files that need to run scan_includes
-%.constants.sym: %.constants.asm $(shell tools/scan_includes %.constants.asm) $(preinclude_deps) | rgbdscheck.o
- $(RGBASM) $(RGBASMFLAGS) $< > $@
-
endif
diff --git a/includes.asm b/includes.asm
index 8808e1d0..f83b76e4 100644
--- a/includes.asm
+++ b/includes.asm
@@ -50,3 +50,10 @@ INCLUDE "constants/tileset_constants.asm"
INCLUDE "constants/event_constants.asm"
INCLUDE "constants/text_constants.asm"
INCLUDE "constants/menu_constants.asm"
+
+IF DEF(_RED_VC)
+INCLUDE "vc/pokered.constants.asm"
+ENDC
+IF DEF(_BLUE_VC)
+INCLUDE "vc/pokeblue.constants.asm"
+ENDC
diff --git a/tools/make_patch.c b/tools/make_patch.c
index 77a30683..d96bf216 100644
--- a/tools/make_patch.c
+++ b/tools/make_patch.c
@@ -1,5 +1,5 @@
#define PROGRAM_NAME "make_patch"
-#define USAGE_OPTS "labels.sym constants.sym patched.gbc original.gbc vc.patch.template vc.patch"
+#define USAGE_OPTS "values.sym patched.gbc original.gbc vc.patch.template vc.patch"
#include "common.h"
@@ -113,13 +113,14 @@ void parse_symbol_value(char *input, int *restrict bank, int *restrict address)
}
}
-void parse_symbols(const char *filename, struct Symbol **symbols) {
+struct Symbol *parse_symbols(const char *filename) {
FILE *file = xfopen(filename, 'r');
struct Buffer *buffer = buffer_create(1);
enum { SYM_PRE, SYM_VALUE, SYM_SPACE, SYM_NAME } state = SYM_PRE;
int bank = 0;
int address = 0;
+ struct Symbol *symbols = NULL;
for (;;) {
int c = getc(file);
@@ -127,7 +128,7 @@ void parse_symbols(const char *filename, struct Symbol **symbols) {
if (state == SYM_NAME) {
// The symbol name has ended; append the buffered symbol
buffer_append(buffer, &(char []){'\0'});
- symbol_append(symbols, buffer->data, bank, address);
+ symbol_append(&symbols, buffer->data, bank, address);
}
// Skip to the next line, ignoring anything after the symbol value and name
state = SYM_PRE;
@@ -156,6 +157,7 @@ void parse_symbols(const char *filename, struct Symbol **symbols) {
fclose(file);
buffer_free(buffer);
+ return symbols;
}
int strfind(const char *s, const char *list[], int count) {
@@ -443,20 +445,18 @@ bool verify_completeness(FILE *restrict orig_rom, FILE *restrict new_rom, struct
}
int main(int argc, char *argv[]) {
- if (argc != 7) {
+ if (argc != 6) {
usage_exit(1);
}
- struct Symbol *symbols = NULL;
- parse_symbols(argv[1], &symbols);
- parse_symbols(argv[2], &symbols);
+ struct Symbol *symbols = parse_symbols(argv[1]);
- FILE *new_rom = xfopen(argv[3], 'r');
- FILE *orig_rom = xfopen(argv[4], 'r');
- struct Buffer *patches = process_template(argv[5], argv[6], new_rom, orig_rom, symbols);
+ FILE *new_rom = xfopen(argv[2], 'r');
+ FILE *orig_rom = xfopen(argv[3], 'r');
+ struct Buffer *patches = process_template(argv[4], argv[5], new_rom, orig_rom, symbols);
if (!verify_completeness(orig_rom, new_rom, patches)) {
- fprintf(stderr, PROGRAM_NAME ": Warning: Not all ROM differences are defined by \"%s\"\n", argv[6]);
+ fprintf(stderr, PROGRAM_NAME ": Warning: Not all ROM differences are defined by \"%s\"\n", argv[5]);
}
symbol_free(symbols);
diff --git a/vc/pokeblue.constants.asm b/vc/pokeblue.constants.asm
index 41c0d8fd..e55bcca0 100644
--- a/vc/pokeblue.constants.asm
+++ b/vc/pokeblue.constants.asm
@@ -1,69 +1,64 @@
; These are all the asm constants needed to make the blue_vc patch.
-MACRO vc_const
- DEF x = \1
- PRINTLN "{02x:x} \1" ; same format as rgblink's .sym file
-ENDM
-
; [FPA 001 Begin]
- vc_const "M"
- vc_const "E"
- vc_const "G"
- vc_const "A"
- vc_const "P"
- vc_const "S"
- vc_const "L"
- vc_const "F"
- vc_const "X"
- vc_const MEGA_PUNCH
+EXPORT DEF M_CHAR EQU "M"
+EXPORT DEF E_CHAR EQU "E"
+EXPORT DEF G_CHAR EQU "G"
+EXPORT DEF A_CHAR EQU "A"
+EXPORT DEF P_CHAR EQU "P"
+EXPORT DEF S_CHAR EQU "S"
+EXPORT DEF L_CHAR EQU "L"
+EXPORT DEF F_CHAR EQU "F"
+EXPORT DEF X_CHAR EQU "X"
+EXPORT MEGA_PUNCH
; [FPA 001 End]
- vc_const EXPLOSION
+EXPORT EXPLOSION
; [FPA 002 Begin]
- vc_const "U"
- vc_const "I"
- vc_const GUILLOTINE
+EXPORT DEF U_CHAR EQU "U"
+EXPORT DEF I_CHAR EQU "I"
+EXPORT GUILLOTINE
; [FPA 002 End]
- vc_const "K"
- vc_const MEGA_KICK
+EXPORT DEF K_CHAR EQU "K"
+EXPORT MEGA_KICK
; [FPA 004 Begin]
- vc_const "B"
- vc_const "Z"
- vc_const BLIZZARD
+EXPORT DEF B_CHAR EQU "B"
+EXPORT DEF Z_CHAR EQU "Z"
+EXPORT BLIZZARD
; [FPA 005 Begin]
- vc_const BUBBLEBEAM
+EXPORT BUBBLEBEAM
; [FPA 005 End]
- vc_const HYPER_BEAM
+EXPORT HYPER_BEAM
; [FPA 006 Begin]
- vc_const "H"
- vc_const "Y"
+EXPORT DEF H_CHAR EQU "H"
+EXPORT DEF Y_CHAR EQU "Y"
; [FPA 007 Begin]
- vc_const "T"
- vc_const "N"
- vc_const THUNDERBOLT
+EXPORT DEF T_CHAR EQU "T"
+EXPORT DEF N_CHAR EQU "N"
+EXPORT THUNDERBOLT
; [FPA 008 Begin]
- vc_const "R"
- vc_const REFLECT
+EXPORT DEF R_CHAR EQU "R"
+EXPORT REFLECT
; [FPA 009 Begin]
- vc_const SELFDESTRUCT
+EXPORT SELFDESTRUCT
; [FPA 010 Begin]
- vc_const "D"
- vc_const DREAM_EATER
+EXPORT DEF D_CHAR EQU "D"
+EXPORT DREAM_EATER
; [FPA 011 Begin]
- vc_const "O"
- vc_const SPORE
+EXPORT DEF O_CHAR EQU "O"
+EXPORT SPORE
; [FPA 012 Begin]
- vc_const "C"
- vc_const ROCK_SLIDE
+EXPORT DEF C_CHAR EQU "C"
+EXPORT ROCK_SLIDE
diff --git a/vc/pokeblue.patch.template b/vc/pokeblue.patch.template
index b49dff33..0bd83a07 100644
--- a/vc/pokeblue.patch.template
+++ b/vc/pokeblue.patch.template
@@ -167,7 +167,7 @@ MotionBlur0 = 27
ConditionType = 11
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+5 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == == || == == == == == || == == == == == }
-ConditionValueC = {dws_ "M" "E" "G" "A" "P" MEGA_PUNCH 00 "S" "E" "L" "F" MEGA_PUNCH 00 "E" "X" "P" "L" MEGA_PUNCH }
+ConditionValueC = {dws_ M_CHAR E_CHAR G_CHAR A_CHAR P_CHAR MEGA_PUNCH 00 S_CHAR E_CHAR L_CHAR F_CHAR MEGA_PUNCH 00 E_CHAR X_CHAR P_CHAR L_CHAR MEGA_PUNCH }
[FPA 001 End@Stop_reducing_move_anim_flashing_Mega_Punch_Explosion]
Mode = 3
@@ -176,7 +176,7 @@ Address = {HEX @}
ConditionType = 11
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+5 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == == || == == == == == || == == == == == }
-ConditionValueC = {dws_ "M" "E" "G" "A" "P" MEGA_PUNCH 00 "E" "X" "P" "L" EXPLOSION 00 "E" "X" "P" "L" MEGA_PUNCH }
+ConditionValueC = {dws_ M_CHAR E_CHAR G_CHAR A_CHAR P_CHAR MEGA_PUNCH 00 E_CHAR X_CHAR P_CHAR L_CHAR EXPLOSION 00 E_CHAR X_CHAR P_CHAR L_CHAR MEGA_PUNCH }
@@ -193,7 +193,7 @@ MotionBlur1 = 8
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "G" "U" "I" "L" GUILLOTINE }
+ConditionValueC = {dws_ G_CHAR U_CHAR I_CHAR L_CHAR GUILLOTINE }
[FPA 002 End@Stop_reducing_move_anim_flashing_Guillotine]
Mode = 3
@@ -202,7 +202,7 @@ Address = {HEX @}
ConditionType = 11
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+5 wAnimationID}
ConditionValueB = {dws_ == == == == == || == == == == == == }
-ConditionValueC = {dws_ "G" "U" "I" "L" GUILLOTINE 00 "M" "E" "G" "A" "K" MEGA_KICK }
+ConditionValueC = {dws_ G_CHAR U_CHAR I_CHAR L_CHAR GUILLOTINE 00 M_CHAR E_CHAR G_CHAR A_CHAR K_CHAR MEGA_KICK }
@@ -217,7 +217,7 @@ MotionBlur0 = 25
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+5 wAnimationID}
ConditionValueB = {dws_ == == == == == == }
-ConditionValueC = {dws_ "M" "E" "G" "A" "K" MEGA_KICK }
+ConditionValueC = {dws_ M_CHAR E_CHAR G_CHAR A_CHAR K_CHAR MEGA_KICK }
@@ -232,7 +232,7 @@ MotionBlur0 = 25
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "B" "L" "I" "Z" BLIZZARD }
+ConditionValueC = {dws_ B_CHAR L_CHAR I_CHAR Z_CHAR BLIZZARD }
;rsm160334
@@ -246,7 +246,7 @@ MotionBlur0 = 27
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "B" "U" "B" "B" BUBBLEBEAM }
+ConditionValueC = {dws_ B_CHAR U_CHAR B_CHAR B_CHAR BUBBLEBEAM }
[FPA 005 End@Stop_reducing_move_anim_flashing_Bubblebeam_Hyper_Beam_Blizzard]
Mode = 3
@@ -255,7 +255,7 @@ Address = {HEX @}
ConditionType = 11
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == || == == == == == || == == == == == }
-ConditionValueC = {dws_ "B" "U" "B" "B" BUBBLEBEAM 00 "H" "Y" "P" "E" HYPER_BEAM 00 "B" "L" "I" "Z" BLIZZARD }
+ConditionValueC = {dws_ B_CHAR U_CHAR B_CHAR B_CHAR BUBBLEBEAM 00 H_CHAR Y_CHAR P_CHAR E_CHAR HYPER_BEAM 00 B_CHAR L_CHAR I_CHAR Z_CHAR BLIZZARD }
;rsm163356
@@ -271,7 +271,7 @@ MotionBlur1 = 5
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "H" "Y" "P" "E" HYPER_BEAM }
+ConditionValueC = {dws_ H_CHAR Y_CHAR P_CHAR E_CHAR HYPER_BEAM }
@@ -286,7 +286,7 @@ MotionBlur0 = 30
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "T" "H" "U" "N" THUNDERBOLT }
+ConditionValueC = {dws_ T_CHAR H_CHAR U_CHAR N_CHAR THUNDERBOLT }
[FPA 007 End@Stop_reducing_move_anim_flashing_Thunderbolt]
@@ -296,7 +296,7 @@ Address = {HEX @}
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "T" "H" "U" "N" THUNDERBOLT }
+ConditionValueC = {dws_ T_CHAR H_CHAR U_CHAR N_CHAR THUNDERBOLT }
;rsm134518
@@ -312,7 +312,7 @@ MotionBlur1 = 5
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "R" "E" "F" "L" REFLECT }
+ConditionValueC = {dws_ R_CHAR E_CHAR F_CHAR L_CHAR REFLECT }
[FPA 008 End@Stop_reducing_move_anim_flashing_Reflect]
Mode = 3
@@ -321,7 +321,7 @@ Address = {HEX @}
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "R" "E" "F" "L" REFLECT }
+ConditionValueC = {dws_ R_CHAR E_CHAR F_CHAR L_CHAR REFLECT }
@@ -337,7 +337,7 @@ MotionBlur0 = 27
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "S" "E" "L" "F" SELFDESTRUCT}
+ConditionValueC = {dws_ S_CHAR E_CHAR L_CHAR F_CHAR SELFDESTRUCT}
[FPA 009 End@Stop_reducing_move_anim_flashing_Self_Destruct]
Mode = 3
@@ -346,7 +346,7 @@ Address = {HEX @}
ConditionType = 11
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == || == == == == == }
-ConditionValueC = {dws_ "S" "E" "L" "F" MEGA_PUNCH 00 "S" "E" "L" "F" SELFDESTRUCT}
+ConditionValueC = {dws_ S_CHAR E_CHAR L_CHAR F_CHAR MEGA_PUNCH 00 S_CHAR E_CHAR L_CHAR F_CHAR SELFDESTRUCT}
;rsm150211
;No156
@@ -361,7 +361,7 @@ MotionBlur1 = 7
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "D" "R" "E" "A" DREAM_EATER }
+ConditionValueC = {dws_ D_CHAR R_CHAR E_CHAR A_CHAR DREAM_EATER }
;[FPA 010 End]
;Mode = 3
@@ -385,7 +385,7 @@ MotionBlur1 = 8
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "S" "P" "O" "R" SPORE }
+ConditionValueC = {dws_ S_CHAR P_CHAR O_CHAR R_CHAR SPORE }
[FPA 011 End@Stop_reducing_move_anim_flashing_Spore]
Mode = 3
@@ -394,7 +394,7 @@ Address = {hex @}
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "S" "P" "O" "R" SPORE }
+ConditionValueC = {dws_ S_CHAR P_CHAR O_CHAR R_CHAR SPORE }
;rsm012224
;No12
@@ -407,7 +407,7 @@ MotionBlur0 = 27
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "R" "O" "C" "K" ROCK_SLIDE }
+ConditionValueC = {dws_ R_CHAR O_CHAR C_CHAR K_CHAR ROCK_SLIDE }
[FPA 012 End@Stop_reducing_move_anim_flashing_Rock_Slide_Dream_Eater]
Mode = 3
@@ -416,7 +416,7 @@ Address = {hex @}
ConditionType = 11
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == || == == == == == }
-ConditionValueC = {dws_ "R" "O" "C" "K" ROCK_SLIDE 00 "D" "R" "E" "A" DREAM_EATER }
+ConditionValueC = {dws_ R_CHAR O_CHAR C_CHAR K_CHAR ROCK_SLIDE 00 D_CHAR R_CHAR E_CHAR A_CHAR DREAM_EATER }
@@ -433,4 +433,4 @@ MotionBlur0 = 28
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "E" "X" "P" "L" EXPLOSION } \ No newline at end of file
+ConditionValueC = {dws_ E_CHAR X_CHAR P_CHAR L_CHAR EXPLOSION } \ No newline at end of file
diff --git a/vc/pokered.constants.asm b/vc/pokered.constants.asm
index 8ae18a13..aec40f11 100644
--- a/vc/pokered.constants.asm
+++ b/vc/pokered.constants.asm
@@ -1,72 +1,66 @@
; These are all the asm constants needed to make the red_vc patch.
-MACRO vc_const
- DEF x = \1
- PRINTLN "{02x:x} \1" ; same format as rgblink's .sym file
-ENDM
-
; [FPA 001 Begin]
- vc_const "M"
- vc_const "E"
- vc_const "G"
- vc_const "A"
- vc_const "P"
- vc_const "S"
- vc_const "L"
- vc_const "F"
- vc_const "D"
- vc_const "X"
- vc_const MEGA_PUNCH
+EXPORT DEF M_CHAR EQU "M"
+EXPORT DEF E_CHAR EQU "E"
+EXPORT DEF G_CHAR EQU "G"
+EXPORT DEF A_CHAR EQU "A"
+EXPORT DEF P_CHAR EQU "P"
+EXPORT DEF S_CHAR EQU "S"
+EXPORT DEF L_CHAR EQU "L"
+EXPORT DEF F_CHAR EQU "F"
+EXPORT DEF D_CHAR EQU "D"
+EXPORT DEF X_CHAR EQU "X"
+EXPORT MEGA_PUNCH
; [FPA 002 Begin]
- vc_const "U"
- vc_const "I"
- vc_const GUILLOTINE
+EXPORT DEF U_CHAR EQU "U"
+EXPORT DEF I_CHAR EQU "I"
+EXPORT GUILLOTINE
; [FPA 003 Begin]
- vc_const "K"
- vc_const MEGA_KICK
+EXPORT DEF K_CHAR EQU "K"
+EXPORT MEGA_KICK
; [FPA 004 Begin]
- vc_const "B"
- vc_const BUBBLEBEAM
+EXPORT DEF B_CHAR EQU "B"
+EXPORT BUBBLEBEAM
; [FPA 005 Begin]
- vc_const "H"
- vc_const "Y"
- vc_const HYPER_BEAM
+EXPORT DEF H_CHAR EQU "H"
+EXPORT DEF Y_CHAR EQU "Y"
+EXPORT HYPER_BEAM
; [FPA 006 Begin]
- vc_const "T"
- vc_const "N"
- vc_const THUNDERBOLT
+EXPORT DEF T_CHAR EQU "T"
+EXPORT DEF N_CHAR EQU "N"
+EXPORT THUNDERBOLT
; [FPA 007 Begin]
- vc_const "R"
- vc_const "F"
- vc_const REFLECT
+EXPORT DEF R_CHAR EQU "R"
+EXPORT REFLECT
; [FPA 008 Begin]
- vc_const DREAM_EATER
+EXPORT DREAM_EATER
; [FPA 008 End]
- vc_const "Z"
- vc_const BLIZZARD
+EXPORT DEF Z_CHAR EQU "Z"
+EXPORT BLIZZARD
; [FPA 009 Begin]
- vc_const "O"
- vc_const SPORE
+EXPORT DEF O_CHAR EQU "O"
+EXPORT SPORE
; [FPA 010 Begin]
- vc_const "C"
- vc_const ROCK_SLIDE
+EXPORT DEF C_CHAR EQU "C"
+EXPORT ROCK_SLIDE
; [FPA 010 End]
- vc_const SELFDESTRUCT
- vc_const EXPLOSION
+EXPORT SELFDESTRUCT
+EXPORT EXPLOSION
; [FPA conf Begin]
- vc_const CONFUSION
+EXPORT CONFUSION
; [FPA phy Begin]
- vc_const PSYCHIC_M
+EXPORT PSYCHIC_M
diff --git a/vc/pokered.patch.template b/vc/pokered.patch.template
index 08fba1a6..af07afd4 100644
--- a/vc/pokered.patch.template
+++ b/vc/pokered.patch.template
@@ -194,7 +194,7 @@ MotionBlur1 = 21
ConditionType = 11
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+5 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+4 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == == || == == == == == == || == == == == == }
-ConditionValueC = {dws_ "M" "E" "G" "A" "P" MEGA_PUNCH 00 "S" "E" "L" "F" "D" MEGA_PUNCH 00 "E" "X" "P" "L" MEGA_PUNCH }
+ConditionValueC = {dws_ M_CHAR E_CHAR G_CHAR A_CHAR P_CHAR MEGA_PUNCH 00 S_CHAR E_CHAR L_CHAR F_CHAR D_CHAR MEGA_PUNCH 00 E_CHAR X_CHAR P_CHAR L_CHAR MEGA_PUNCH }
[FPA 001 End@Stop_reducing_move_anim_flashing_Mega_Punch]
@@ -204,7 +204,7 @@ Address = {HEX @}
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+5 wAnimationID}
ConditionValueB = {dws_ == == == == == == }
-ConditionValueC = {dws_ "M" "E" "G" "A" "P" MEGA_PUNCH }
+ConditionValueC = {dws_ M_CHAR E_CHAR G_CHAR A_CHAR P_CHAR MEGA_PUNCH }
;rsm032916
@@ -220,7 +220,7 @@ MotionBlur1 = 8
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "G" "U" "I" "L" GUILLOTINE }
+ConditionValueC = {dws_ G_CHAR U_CHAR I_CHAR L_CHAR GUILLOTINE }
[FPA 002 End@Stop_reducing_move_anim_flashing_Guillotine]
Mode = 3
@@ -229,7 +229,7 @@ Address = {HEX @}
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "G" "U" "I" "L" GUILLOTINE }
+ConditionValueC = {dws_ G_CHAR U_CHAR I_CHAR L_CHAR GUILLOTINE }
;rsm041307
@@ -245,7 +245,7 @@ MotionBlur1 = 21
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+5 wAnimationID}
ConditionValueB = {dws_ == == == == == == }
-ConditionValueC = {dws_ "M" "E" "G" "A" "K" MEGA_KICK }
+ConditionValueC = {dws_ M_CHAR E_CHAR G_CHAR A_CHAR K_CHAR MEGA_KICK }
;rsm001929
@@ -259,7 +259,7 @@ MotionBlur0 = 30
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "B" "U" "B" "B" BUBBLEBEAM }
+ConditionValueC = {dws_ B_CHAR U_CHAR B_CHAR B_CHAR BUBBLEBEAM }
[FPA 004 End@Stop_reducing_move_anim_flashing_Bubblebeam_Mega_Kick]
Mode = 3
@@ -268,7 +268,7 @@ Address = {hex @}
ConditionType = 11
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+5 wAnimationID}
ConditionValueB = {dws_ == == == == == || == == == == == == }
-ConditionValueC = {dws_ "B" "U" "B" "B" BUBBLEBEAM 00 "M" "E" "G" "A" "K" MEGA_KICK }
+ConditionValueC = {dws_ B_CHAR U_CHAR B_CHAR B_CHAR BUBBLEBEAM 00 M_CHAR E_CHAR G_CHAR A_CHAR K_CHAR MEGA_KICK }
;rsm103658
@@ -284,7 +284,7 @@ MotionBlur1 = 5
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "H" "Y" "P" "E" HYPER_BEAM }
+ConditionValueC = {dws_ H_CHAR Y_CHAR P_CHAR E_CHAR HYPER_BEAM }
[FPA 005 End@Stop_reducing_move_anim_flashing_Hyper_Beam]
Mode = 3
@@ -293,7 +293,7 @@ Address = {HEX @}
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "H" "Y" "P" "E" HYPER_BEAM }
+ConditionValueC = {dws_ H_CHAR Y_CHAR P_CHAR E_CHAR HYPER_BEAM }
;rsm133358
@@ -307,7 +307,7 @@ MotionBlur0 = 30
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "T" "H" "U" "N" THUNDERBOLT }
+ConditionValueC = {dws_ T_CHAR H_CHAR U_CHAR N_CHAR THUNDERBOLT }
[FPA 006 End@Stop_reducing_move_anim_flashing_Thunderbolt]
@@ -317,7 +317,7 @@ Address = {HEX @}
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "T" "H" "U" "N" THUNDERBOLT }
+ConditionValueC = {dws_ T_CHAR H_CHAR U_CHAR N_CHAR THUNDERBOLT }
;rsm152340
;no159 reflect
@@ -332,7 +332,7 @@ MotionBlur1 = 5
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "R" "E" "F" "L" REFLECT }
+ConditionValueC = {dws_ R_CHAR E_CHAR F_CHAR L_CHAR REFLECT }
[FPA 007 End@Stop_reducing_move_anim_flashing_Reflect]
Mode = 3
@@ -341,7 +341,7 @@ Address = {HEX @}
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "R" "E" "F" "L" REFLECT }
+ConditionValueC = {dws_ R_CHAR E_CHAR F_CHAR L_CHAR REFLECT }
;rsm171812
;no156 dream eater
@@ -356,7 +356,7 @@ MotionBlur1 = 7
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "D" "R" "E" "A" DREAM_EATER }
+ConditionValueC = {dws_ D_CHAR R_CHAR E_CHAR A_CHAR DREAM_EATER }
[FPA 008 End@Stop_reducing_move_anim_flashing_Blizzard]
Mode = 3
@@ -365,7 +365,7 @@ Address = {HEX @}
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+4} {dws/ wAnimationID}
ConditionValueB = {dws_ == == == == == } {dws/ == }
-ConditionValueC = {dws_ "B" "L" "I" "Z" "Z" } {dws/ BLIZZARD }
+ConditionValueC = {dws_ B_CHAR L_CHAR I_CHAR Z_CHAR Z_CHAR } {dws/ BLIZZARD }
;rsm174650
;no36 spore
@@ -380,7 +380,7 @@ MotionBlur1 = 8
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "S" "P" "O" "R" SPORE }
+ConditionValueC = {dws_ S_CHAR P_CHAR O_CHAR R_CHAR SPORE }
;rsm152115
@@ -394,7 +394,7 @@ MotionBlur0 = 27
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "R" "O" "C" "K" ROCK_SLIDE }
+ConditionValueC = {dws_ R_CHAR O_CHAR C_CHAR K_CHAR ROCK_SLIDE }
[FPA 010 End@Stop_reducing_move_anim_flashing]
Mode = 3
@@ -403,7 +403,7 @@ Address = {HEX @}
ConditionType = 11
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+4 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+4 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+5 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID 00 wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == || == == == == == || == == == == == || == == == == == == || == == == == == == || == == == == == == || == == == == == || == == == == == }
-ConditionValueC = {dws_ "D" "R" "E" "A" DREAM_EATER 00 "R" "O" "C" "K" ROCK_SLIDE 00 "S" "P" "O" "R" SPORE 00 "S" "E" "L" "F" "D" MEGA_PUNCH 00 "S" "E" "L" "F" "D" SELFDESTRUCT 00 "C" "O" "N" "F" "S" CONFUSION 00 "E" "X" "P" "L" EXPLOSION 00 "E" "X" "P" "L" MEGA_PUNCH }
+ConditionValueC = {dws_ D_CHAR R_CHAR E_CHAR A_CHAR DREAM_EATER 00 R_CHAR O_CHAR C_CHAR K_CHAR ROCK_SLIDE 00 S_CHAR P_CHAR O_CHAR R_CHAR SPORE 00 S_CHAR E_CHAR L_CHAR F_CHAR D_CHAR MEGA_PUNCH 00 S_CHAR E_CHAR L_CHAR F_CHAR D_CHAR SELFDESTRUCT 00 C_CHAR O_CHAR N_CHAR F_CHAR S_CHAR CONFUSION 00 E_CHAR X_CHAR P_CHAR L_CHAR EXPLOSION 00 E_CHAR X_CHAR P_CHAR L_CHAR MEGA_PUNCH }
;explosion
@@ -417,7 +417,7 @@ MotionBlur0 = 28
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wAnimationID}
ConditionValueB = {dws_ == == == == == }
-ConditionValueC = {dws_ "E" "X" "P" "L" EXPLOSION }
+ConditionValueC = {dws_ E_CHAR X_CHAR P_CHAR L_CHAR EXPLOSION }
;No56 self-destruct
@@ -430,7 +430,7 @@ MotionBlur0 = 23
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+4 wAnimationID}
ConditionValueB = {dws_ == == == == == == }
-ConditionValueC = {dws_ "S" "E" "L" "F" "D" SELFDESTRUCT}
+ConditionValueC = {dws_ S_CHAR E_CHAR L_CHAR F_CHAR D_CHAR SELFDESTRUCT}
;No131 blizzard
@@ -443,7 +443,7 @@ MotionBlur0 = 26
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+4 wAnimationID}
ConditionValueB = {dws_ == == == == == == }
-ConditionValueC = {dws_ "B" "L" "I" "Z" "Z" BLIZZARD }
+ConditionValueC = {dws_ B_CHAR L_CHAR I_CHAR Z_CHAR Z_CHAR BLIZZARD }
;confusion
@@ -456,7 +456,7 @@ MotionBlur1 = 21
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+5 wAnimationID}
ConditionValueB = {dws_ == == == == == == }
-ConditionValueC = {dws_ "C" "O" "N" "F" "S" CONFUSION }
+ConditionValueC = {dws_ C_CHAR O_CHAR N_CHAR F_CHAR S_CHAR CONFUSION }
;phychic
[FPA phy Begin@Reduce_move_anim_flashing_Psychic]
@@ -468,7 +468,7 @@ MotionBlur1 = 21
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+5 wAnimationID}
ConditionValueB = {dws_ == == == == == == }
-ConditionValueC = {dws_ "P" "S" "Y" "C" "I" PSYCHIC_M }
+ConditionValueC = {dws_ P_CHAR S_CHAR Y_CHAR C_CHAR I_CHAR PSYCHIC_M }
[FPA phy End@Stop_reducing_move_anim_flashing_Psychic]
Mode = 3
@@ -477,6 +477,6 @@ Address = {hex @}
ConditionType = 0
ConditionValueA = {dws_ wStringBuffer wStringBuffer+1 wStringBuffer+2 wStringBuffer+3 wStringBuffer+5 wAnimationID}
ConditionValueB = {dws_ == == == == == == }
-ConditionValueC = {dws_ "P" "S" "Y" "C" "I" PSYCHIC_M }
+ConditionValueC = {dws_ P_CHAR S_CHAR Y_CHAR C_CHAR I_CHAR PSYCHIC_M }