1
- roms := pokered.gbc pokeblue.gbc pokeblue_debug.gbc
1
+ roms := \
2
+ pokered.gbc \
3
+ pokeblue.gbc \
4
+ pokeblue_debug.gbc
5
+ patches := \
6
+ pokered.patch \
7
+ pokeblue.patch
2
8
3
9
rom_obj := \
4
- audio.o \
5
- home.o \
6
- main.o \
7
- maps.o \
8
- text.o \
9
- wram.o \
10
- gfx/pics.o \
11
- gfx/sprites.o \
12
- gfx/tilesets.o
10
+ audio.o \
11
+ home.o \
12
+ main.o \
13
+ maps.o \
14
+ text.o \
15
+ wram.o \
16
+ gfx/pics.o \
17
+ gfx/sprites.o \
18
+ gfx/tilesets.o
13
19
14
20
pokered_obj := $(rom_obj:.o=_red.o )
15
21
pokeblue_obj := $(rom_obj:.o=_blue.o )
16
22
pokeblue_debug_obj := $(rom_obj:.o=_blue_debug.o )
23
+ pokered_vc_obj := $(rom_obj:.o=_red_vc.o )
24
+ pokeblue_vc_obj := $(rom_obj:.o=_blue_vc.o )
17
25
18
26
19
27
# ## Build tools
@@ -43,15 +51,34 @@ all: $(roms)
43
51
red : pokered.gbc
44
52
blue : pokeblue.gbc
45
53
blue_debug : pokeblue_debug.gbc
54
+ red_vc : pokered.patch
55
+ blue_vc : pokeblue.patch
46
56
47
57
clean : tidy
48
- find gfx \( -iname ' *.1bpp' -o -iname ' *.2bpp' -o -iname ' *.pic' \) -delete
58
+ find gfx \
59
+ \( -iname ' *.1bpp' \
60
+ -o -iname ' *.2bpp' \
61
+ -o -iname ' *.pic' \) \
62
+ -delete
49
63
50
64
tidy :
51
- $(RM ) $(roms ) $(pokered_obj ) $(pokeblue_obj ) $(pokeblue_debug_obj ) $(roms:.gbc=.map ) $(roms:.gbc=.sym ) rgbdscheck.o
65
+ $(RM ) $(roms ) \
66
+ $(roms:.gbc=.sym ) \
67
+ $(roms:.gbc=.map ) \
68
+ $(patches ) \
69
+ $(patches:.patch=_vc.gbc ) \
70
+ $(patches:.patch=_vc.sym ) \
71
+ $(patches:.patch=_vc.map ) \
72
+ $(patches:%.patch=vc/%.constants.sym ) \
73
+ $(pokered_obj ) \
74
+ $(pokeblue_obj ) \
75
+ $(pokered_vc_obj ) \
76
+ $(pokeblue_vc_obj ) \
77
+ $(pokeblue_debug_obj ) \
78
+ rgbdscheck.o
52
79
$(MAKE ) clean -C tools/
53
80
54
- compare : $(roms )
81
+ compare : $(roms ) $( patches )
55
82
@$(SHA1 ) -c roms.sha1
56
83
57
84
tools :
67
94
$(pokered_obj ) : RGBASMFLAGS += -D _RED
68
95
$(pokeblue_obj ) : RGBASMFLAGS += -D _BLUE
69
96
$(pokeblue_debug_obj ) : RGBASMFLAGS += -D _BLUE -D _DEBUG
97
+ $(pokered_vc_obj ) : RGBASMFLAGS += -D _RED -D _RED_VC
98
+ $(pokeblue_vc_obj ) : RGBASMFLAGS += -D _BLUE -D _BLUE_VC
99
+
100
+ % .patch : vc/% .constants.sym % _vc.gbc % .gbc vc/% .patch.template
101
+ tools/make_patch $* _vc.sym $^ $@
70
102
71
103
rgbdscheck.o : rgbdscheck.asm
72
104
$(RGBASM ) -o $@ $<
@@ -89,6 +121,12 @@ $(info $(shell $(MAKE) -C tools))
89
121
$(foreach obj, $(pokered_obj ) , $(eval $(call DEP,$(obj ) ,$(obj :_red.o=.asm))))
90
122
$(foreach obj, $(pokeblue_obj ) , $(eval $(call DEP,$(obj ) ,$(obj :_blue.o=.asm))))
91
123
$(foreach obj, $(pokeblue_debug_obj ) , $(eval $(call DEP,$(obj ) ,$(obj :_blue_debug.o=.asm))))
124
+ $(foreach obj, $(pokered_vc_obj ) , $(eval $(call DEP,$(obj ) ,$(obj :_red_vc.o=.asm))))
125
+ $(foreach obj, $(pokeblue_vc_obj ) , $(eval $(call DEP,$(obj ) ,$(obj :_blue_vc.o=.asm))))
126
+
127
+ # Dependencies for VC files that need to run scan_includes
128
+ % .constants.sym : % .constants.asm $(shell tools/scan_includes % .constants.asm) | rgbdscheck.o
129
+ $(RGBASM ) $< > $@
92
130
93
131
endif
94
132
@@ -98,11 +136,15 @@ endif
98
136
99
137
pokered_pad = 0x00
100
138
pokeblue_pad = 0x00
139
+ pokered_vc_pad = 0x00
140
+ pokeblue_vc_pad = 0x00
101
141
pokeblue_debug_pad = 0xff
102
142
103
143
pokered_opt = -jsv -n 0 -k 01 -l 0x33 -m 0x13 -r 03 -t "POKEMON RED"
104
144
pokeblue_opt = -jsv -n 0 -k 01 -l 0x33 -m 0x13 -r 03 -t "POKEMON BLUE"
105
145
pokeblue_debug_opt = -jsv -n 0 -k 01 -l 0x33 -m 0x13 -r 03 -t "POKEMON BLUE"
146
+ pokered_vc_opt = -jsv -n 0 -k 01 -l 0x33 -m 0x13 -r 03 -t "POKEMON RED"
147
+ pokeblue_vc_opt = -jsv -n 0 -k 01 -l 0x33 -m 0x13 -r 03 -t "POKEMON BLUE"
106
148
107
149
% .gbc : $$(%_obj ) layout.link
108
150
$(RGBLINK ) -p $($* _pad) -d -m $* .map -n $* .sym -l layout.link -o $@ $(filter % .o,$^ )
0 commit comments