NESASM=tools/nesasm.exe
EMU=tools/fceux/fceux.exe
SOURCES=menu.asm
EXECUTABLE=menu.nes
UNIF?=multirom.unf
CONVERTER=tools/TilesConverter.exe
COMBINER=tools/CoolboyCombiner.exe
DUMPER=tools/famicom-dumper.exe 
PORT?=COM13
MENU_IMAGE?=menu.png
SORT?=sort
LANG?=default
GAMES?=games-list.my
SIZE?=32

all: $(UNIF)

$(EXECUTABLE): $(SOURCES) menu_pattern0.dat menu_nametable0.dat menu_palette0.dat menu_pattern1.dat menu_palette1.dat games.asm
	$(NESASM) $(SOURCES)

games.asm: $(GAMES)
	$(COMBINER) $(GAMES) games.asm $(SORT) $(LANG) $(SIZE)

$(UNIF): $(EXECUTABLE) $(GAMES)
	$(COMBINER) $(GAMES) $(UNIF) $(SORT) $(LANG) $(SIZE)

build: $(UNIF)

run: $(UNIF)
	$(EMU) $(UNIF)

runmenu: $(EXECUTABLE)
	$(EMU) $(EXECUTABLE)

flash: $(UNIF)
	$(DUMPER) write-coolboy -f $(UNIF) -p $(PORT)

menu_pattern0.dat: menu_bg
menu_nametable0.dat: menu_bg
menu_palette0.dat: menu_bg

menu_pattern1.dat: menu_sprites
menu_nametable1.dat: menu_sprites
menu_palette1.dat: menu_sprites

logo_pattern.dat: logo
logo_nametable.dat: logo
logo_palette.dat: logo

menu_bg: $(MENU_IMAGE)
	$(CONVERTER) $(MENU_IMAGE) menu_pattern0.dat menu_nametable0.dat menu_palette0.dat

menu_sprites: menu_sprites.png
	$(CONVERTER) menu_sprites.png menu_pattern1.dat menu_nametable1.dat menu_palette1.dat

sramtest:
	$(DUMPER) test-sram -p $(PORT)

batterytest:
	$(DUMPER) test-battery -p $(PORT)

chrtest:
	$(DUMPER) test-chr -p $(PORT)

chrtestfull:
	$(DUMPER) test-chr-coolboy -p $(PORT)
