diff --git a/Makefile b/Makefile index e53fce4582..08c4dd9b27 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 8808e1d0ba..f83b76e4d2 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 77a3068308..d96bf2162d 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 41c0d8fd4f..e55bcca0e9 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 b49dff334d..0bd83a0782 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 8ae18a132b..aec40f11b0 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 08fba1a660..af07afd4df 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 }