No Description

sprites.makefile 8.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. AS = arm-none-eabi-as
  2. AR = arm-none-eabi-ar
  3. LD = arm-none-eabi-ld
  4. GFX_BUILD_DIR = gfx_build
  5. TMP_LD = $(GFX_BUILD_DIR)/tmp.ld
  6. LDFLAGS := -z muldefs
  7. ASSET_ROOT = sots-private/assets
  8. SPRITES_BINARY = object/pkmn_sprites.o
  9. PNG_TITLE_BG := $(ASSET_ROOT)/misc/title/title_tileset_background.png
  10. PNG_TITLE_AEON := $(ASSET_ROOT)/misc/title/title_tileset_latias_latios_deoxys.png
  11. PNG_TITLE_LOGO := $(ASSET_ROOT)/misc/title/title_tileset_logo_name.png
  12. PNG_TITLE_START := $(ASSET_ROOT)/misc/title/title_tileset_press_start.png
  13. PNG_TITLE_CLOUD := $(ASSET_ROOT)/misc/title/title_sprite_sky.png
  14. PNG_HERO := $(ASSET_ROOT)/misc/char/hero_backsprite.png
  15. PNG_HEROINE := $(ASSET_ROOT)/misc/char/heroine_backsprite.png
  16. PNG_HERO_B := $(ASSET_ROOT)/misc/char/hero_bag.png
  17. PNG_HEROINE_B := $(ASSET_ROOT)/misc/char/heroine_bag.png
  18. S_HERO := $(GFX_BUILD_DIR)/char/hero_backsprite.S
  19. S_HEROINE := $(GFX_BUILD_DIR)/char/heroine_backsprite.S
  20. S_HERO_B := $(GFX_BUILD_DIR)/char/hero_bag.S
  21. S_HEROINE_B := $(GFX_BUILD_DIR)/char/heroine_bag.S
  22. O_HERO := $(GFX_BUILD_DIR)/char/hero_backsprite.o
  23. O_HEROINE := $(GFX_BUILD_DIR)/char/heroine_backsprite.o
  24. O_HERO_B := $(GFX_BUILD_DIR)/char/hero_bag.o
  25. O_HEROINE_B := $(GFX_BUILD_DIR)/char/heroine_bag.o
  26. PNG_BOOT := $(ASSET_ROOT)/misc/boot/boot_tileset.png
  27. S_BOOT := $(GFX_BUILD_DIR)/boot/boot_tileset.S
  28. O_BOOT := $(GFX_BUILD_DIR)/boot/boot_tileset.o
  29. S_TITLE_BG := $(GFX_BUILD_DIR)/title_screen/title_tileset_background.S
  30. S_TITLE_AEON := $(GFX_BUILD_DIR)/title_screen/title_tileset_latias_latios_deoxys.S
  31. S_TITLE_LOGO := $(GFX_BUILD_DIR)/title_screen/title_tileset_logo_name.S
  32. S_TITLE_START := $(GFX_BUILD_DIR)/title_screen/title_tileset_press_start.S
  33. S_TITLE_CLOUD := $(GFX_BUILD_DIR)/title_screen/title_sprite_sky.S
  34. O_TITLE_BG := $(GFX_BUILD_DIR)/title_screen/title_tileset_background.o
  35. O_TITLE_AEON := $(GFX_BUILD_DIR)/title_screen/title_tileset_latias_latios_deoxys.o
  36. O_TITLE_LOGO := $(GFX_BUILD_DIR)/title_screen/title_tileset_logo_name.o
  37. O_TITLE_START := $(GFX_BUILD_DIR)/title_screen/title_tileset_press_start.o
  38. O_TITLE_CLOUD := $(GFX_BUILD_DIR)/title_screen/title_sprite_sky.o
  39. TITLE_OBJ := $(O_TITLE_BG) $(O_TITLE_AEON) $(O_TITLE_LOGO) $(O_TITLE_START) $(O_TITLE_CLOUD)
  40. HERO_OBJ := $(O_HERO) $(O_HEROINE) $(O_HERO_B) $(O_HEROINE_B)
  41. ITEM_PNG = $(sort $(wildcard $(ASSET_ROOT)/item_icons/*.png))
  42. ITEM_OBJ = $(addprefix $(GFX_BUILD_DIR)/item/,$(notdir $(ITEM_PNG:.png=.o)))
  43. NORMAL_PNG = $(sort $(wildcard $(ASSET_ROOT)/pkmn_sprites/normal_*.png))
  44. NORMAL_PAL_OBJ = $(addprefix $(GFX_BUILD_DIR)/sprites/normal_pal/,$(notdir $(NORMAL_PNG:.png=.o)))
  45. SHINY_PNG = $(sort $(wildcard $(ASSET_ROOT)/pkmn_sprites/shiny_*.png))
  46. SHINY_PAL_OBJ = $(addprefix $(GFX_BUILD_DIR)/sprites/shiny_pal/,$(notdir $(SHINY_PNG:.png=.o)))
  47. SPRITE_FRONT_OBJ = $(addprefix $(GFX_BUILD_DIR)/sprites/front_sprites/,$(notdir $(NORMAL_PNG:.png=.o)))
  48. SPRITE_BACK_OBJ = $(addprefix $(GFX_BUILD_DIR)/sprites/back_sprites/,$(notdir $(NORMAL_PNG:.png=.o)))
  49. OW_PNG = $(sort $(wildcard $(ASSET_ROOT)/overworld/*.png))
  50. OW_OBJ = $(addprefix $(GFX_BUILD_DIR)/overworlds/,$(notdir $(OW_PNG:.png=.o)))
  51. TS_PNG = $(sort $(wildcard $(ASSET_ROOT)/trainer_sprites/*.png))
  52. TS_OBJ = $(addprefix $(GFX_BUILD_DIR)/trainer_sprites/,$(notdir $(TS_PNG:.png=.o)))
  53. CASTFORM_PNG = $(ASSET_ROOT)/pkmn_sprites/castform/castform.png
  54. NORMAL_CASTFORM_PAL_OBJ = $(GFX_BUILD_DIR)/sprites/castform/castform_normal_pal.o
  55. SHINY_CASTFORM_PAL_OBJ = $(GFX_BUILD_DIR)/sprites/castform/castform_shiny_pal.o
  56. CASTFORM_FRONT_OBJ = $(GFX_BUILD_DIR)/sprites/castform/castform_front.o
  57. CASTFORM_BACK_OBJ = $(GFX_BUILD_DIR)/sprites/castform/castform_back.o
  58. all: $(SPRITES_BINARY)
  59. .PHONY: clean
  60. clean:
  61. rm -f $(TMP_FILE) $(GFX_BUILD_DIR)/sprites/castform/*
  62. rm -f $(GFX_BUILD_DIR)/sprites/normal_pal/*
  63. rm -f $(GFX_BUILD_DIR)/sprites/shiny_pal/*
  64. rm -f $(GFX_BUILD_DIR)/sprites/front_sprites/*
  65. rm -f $(GFX_BUILD_DIR)/sprites/back_sprites/*
  66. rm -f $(GFX_BUILD_DIR)/overworlds/*
  67. rm -f $(GFX_BUILD_DIR)/item/*
  68. rm -f $(GFX_BUILD_DIR)/boot/*
  69. rm -f $(GFX_BUILD_DIR)/char/*
  70. rm -f $(GFX_BUILD_DIR)/title_screen/*
  71. rm -f $(GFX_BUILD_DIR)/trainer_sprites/*
  72. $(SPRITES_BINARY): $(NORMAL_PAL_OBJ) $(HERO_OBJ) $(SHINY_PAL_OBJ) $(SPRITE_FRONT_OBJ) $(SPRITE_BACK_OBJ) $(NORMAL_CASTFORM_PAL_OBJ) $(SHINY_CASTFORM_PAL_OBJ) $(CASTFORM_FRONT_OBJ) $(CASTFORM_BACK_OBJ) $(OW_OBJ) $(TS_OBJ) $(ITEM_OBJ) $(TITLE_OBJ) $(O_BOOT)
  73. echo "INPUT($^)" > $(TMP_LD)
  74. $(LD) -r -o $@ -T $(TMP_LD)
  75. # Characters
  76. $(GFX_BUILD_DIR)/char/%.o: $(GFX_BUILD_DIR)/char/%.S
  77. $(AS) -o $@ $<
  78. $(S_HERO): $(PNG_HERO)
  79. grit $< -fts -fh! -gt -gB4 -gz! -p -pzl -m! -pu16 -o $@
  80. $(S_HERO_B): $(PNG_HERO_B)
  81. grit $< -fts -fh! -gt -gB4 -gzl -p -pzl -m! -pu16 -o $@
  82. $(S_HEROINE): $(PNG_HEROINE)
  83. grit $< -fts -fh! -gt -gB4 -gz! -p -pzl -m! -pu16 -o $@
  84. $(S_HEROINE_B): $(PNG_HEROINE_B)
  85. grit $< -fts -fh! -gt -gB4 -gzl -p -pzl -m! -pu16 -o $@
  86. # Boot Screen
  87. $(GFX_BUILD_DIR)/boot/%.o: $(GFX_BUILD_DIR)/boot/%.S
  88. $(AS) -o $@ $<
  89. $(S_BOOT): $(PNG_BOOT)
  90. grit $< -fts -fh! -gt -gB4 -gzl -p -pz! -m -mzl -mRtpf -pu16 -o $@
  91. # Special titlescreen targets
  92. $(GFX_BUILD_DIR)/title_screen/%.o: $(GFX_BUILD_DIR)/title_screen/%.S
  93. $(AS) -o $@ $<
  94. $(S_TITLE_BG): $(PNG_TITLE_BG)
  95. grit $< -fts -fh! -gt -gB4 -gzl -p! -pz! -m -mzl -mp 4 -mRtf -pu16 -o $@
  96. $(S_TITLE_AEON): $(PNG_TITLE_AEON)
  97. grit $< -fts -fh! -gt -gB4 -gzl -p! -pz! -m -mzl -mp 2 -mRtf -pu16 -o $@
  98. $(S_TITLE_LOGO): $(PNG_TITLE_LOGO)
  99. grit $< -fts -fh! -gt -gB8 -gzl -p! -pz! -m -mzl -mRtf -pu16 -o $@
  100. $(S_TITLE_START): $(PNG_TITLE_START)
  101. grit $< -fts -fh! -gt -gB4 -gzl -p! -pz! -m -mzl -mp 3 -mRtf -pu16 -o $@
  102. $(S_TITLE_CLOUD): $(PNG_TITLE_CLOUD)
  103. grit $< -fts -fh! -gt -gB4 -gzl -p -pz! -m! -pu16 -o $@
  104. # Item Targets
  105. $(GFX_BUILD_DIR)/item/%.o: $(GFX_BUILD_DIR)/item/%.s
  106. $(AS) -o $@ $<
  107. .PRECIOUS: $(GFX_BUILD_DIR)/item/%.s
  108. $(GFX_BUILD_DIR)/item/%.s: $(ASSET_ROOT)/item_icons/%.png
  109. grit $< -fts -fh! -gt -gB4 -gzl -p -pzl -m! -pu16 -o $@
  110. # OW Targets
  111. $(GFX_BUILD_DIR)/overworlds/%.o: $(GFX_BUILD_DIR)/overworlds/%.s
  112. $(AS) -o $@ $<
  113. .PRECIOUS: $(GFX_BUILD_DIR)/overworlds/%.s
  114. $(GFX_BUILD_DIR)/overworlds/%.s: $(ASSET_ROOT)/overworld/%.png
  115. grit $< -fts -fh! -gt -gB4 -gz! -p -pz! -m! -pu16 -o $@
  116. # Trainer Sprite Targets
  117. $(GFX_BUILD_DIR)/trainer_sprites/%.o: $(GFX_BUILD_DIR)/trainer_sprites/%.s
  118. $(AS) -o $@ $<
  119. .PRECIOUS: $(GFX_BUILD_DIR)/trainer_sprites/%.s
  120. $(GFX_BUILD_DIR)/trainer_sprites/%.s: $(ASSET_ROOT)/trainer_sprites/%.png
  121. grit $< -fts -fh! -gt -gB4 -gzl -p -pzl -m! -o $@
  122. # Normal Palette Targets
  123. $(GFX_BUILD_DIR)/sprites/normal_pal/%.o: $(GFX_BUILD_DIR)/sprites/normal_pal/%.s
  124. $(AS) -o $@ $<
  125. .PRECIOUS: $(GFX_BUILD_DIR)/sprites/normal_pal/%.s
  126. $(GFX_BUILD_DIR)/sprites/normal_pal/%.s: $(ASSET_ROOT)/pkmn_sprites/%.png
  127. grit $< -fts -fh! -g! -gB 4 -gt -m! -p -pzl -pu16 -pn 16 \
  128. -s $(shell echo $(notdir $(basename $<)) | sed "s/normal_/n_p_/g") \
  129. -o $@
  130. # Shiny Palette Targets
  131. $(GFX_BUILD_DIR)/sprites/shiny_pal/%.o: $(GFX_BUILD_DIR)/sprites/shiny_pal/%.s
  132. $(AS) -o $@ $<
  133. .PRECIOUS: $(GFX_BUILD_DIR)/sprites/shiny_pal/%.s
  134. $(GFX_BUILD_DIR)/sprites/shiny_pal/%.s: $(ASSET_ROOT)/pkmn_sprites/%.png
  135. grit $< -fts -fh! -g! -gB 4 -gt -m! -p -pzl -pu16 -pn 16 \
  136. -s $(shell echo $(notdir $(basename $<)) | sed "s/shiny_/s_p_/g") \
  137. -o $@
  138. # Front Sprite Targets
  139. $(GFX_BUILD_DIR)/sprites/front_sprites/%.o: $(GFX_BUILD_DIR)/sprites/front_sprites/%.s
  140. $(AS) -o $@ $<
  141. .PRECIOUS: $(GFX_BUILD_DIR)/sprites/front_sprites/%.s
  142. $(GFX_BUILD_DIR)/sprites/front_sprites/%.s: $(ASSET_ROOT)/pkmn_sprites/%.png
  143. grit $< -fts -fh! -g -gB 4 -gt -gzl -al 0 -aw 64 -m! -p! \
  144. -s $(shell echo $(notdir $(basename $<)) | sed "s/normal_/front_/g") \
  145. -o $@
  146. # Back Sprite Targets
  147. $(GFX_BUILD_DIR)/sprites/back_sprites/%.o: $(GFX_BUILD_DIR)/sprites/bacj_sprites/%.s
  148. $(AS) -o $@ $<
  149. .PRECIOUS: $(GFX_BUILD_DIR)/sprites/back_sprites/%.s
  150. $(GFX_BUILD_DIR)/sprites/back_sprites/%.s: $(ASSET_ROOT)/pkmn_sprites/%.png
  151. grit $< -fts -fh! -g -gB 4 -gt -gzl -al 64 -aw 64 -m! -p! \
  152. -s $(shell echo $(notdir $(basename $<)) | sed "s/normal_/back_/g") \
  153. -o $@
  154. # Misc hardcoded targets
  155. $(NORMAL_CASTFORM_PAL_OBJ): $(NORMAL_CASTFORM_PAL_OBJ:.o=.s)
  156. $(AS) -o $@ $<
  157. $(NORMAL_CASTFORM_PAL_OBJ:.o=.s): $(CASTFORM_PNG)
  158. grit $< -fts -fh! -g! -gB 4 -gt -m! -p -pzl -pu16 -pn 64 \
  159. -s n_p_0385 -o $@
  160. $(SHINY_CASTFORM_PAL_OBJ): $(SHINY_CASTFORM_PAL_OBJ:.o=.s)
  161. $(AS) -o $@ $<
  162. $(SHINY_CASTFORM_PAL_OBJ:.o=.s): $(CASTFORM_PNG)
  163. grit $< -fts -fh! -g! -gB 4 -gt -m! -p -pzl -pu16 -pn 64 \
  164. -s s_p_0385 -o $@
  165. $(CASTFORM_FRONT_OBJ): $(CASTFORM_FRONT_OBJ:.o=.s)
  166. $(AS) -o $@ $<
  167. $(CASTFORM_FRONT_OBJ:.o=.s): $(CASTFORM_PNG)
  168. grit $< -fts -fh! -g -gB 4 -gt -gzl -al 0 -aw 256 -ah 64 -m! -p! \
  169. -s front_0385 -o $@
  170. $(CASTFORM_BACK_OBJ): $(CASTFORM_BACK_OBJ:.o=.s)
  171. $(AS) -o $@ $<
  172. $(CASTFORM_BACK_OBJ:.o=.s): $(CASTFORM_PNG)
  173. grit $< -fts -fh! -g -gB 4 -gt -gzl -al 0 -aw 256 -at 64 -ah 64 -m! -p! \
  174. -s back_0385 -o $@