#########################################################################
#									#
#	Make "yossy" SFC program					#
#									#
#########################################################################

.SUFFIXES:
.SUFFIXES: .rel .asm .lnk .hex

SFXASM = as65c

UNIDIR	= ../union/
CHIPDIR = ../chip/

VERSION	 = -dNES=0 -dJPN=1 -dPAL=0\
	   -dBUG00=1 -dBUG01=0 -dBUG02=1 -dBUG03=1\
	   -dBUG10=1 -dBUG20=1
OPTION = -w $(VERSION)

####### File Name #######################################################
SFXFILE	 = ys_main
SFXHEX	 = $(SFXFILE).hex
SFXMAP	 = $(SFXFILE).map
SFXLNK	 = $(SFXFILE).lnk

CHRFILE	 = yschr
CHRMAP	 = $(CHRFILE).map

CHIPMAP	 = $(CHIPDIR)ys_chip0.map

SFXCOL	 = ys_init.rel ys_game.rel ys_play.rel ys_map.rel ys_hmap.rel\
	   ys_hlder.rel ys_rpro.rel ys_data.rel
SFXINC	 = ys_main.rel ys_save.rel ys_title.rel\
	   ys_enmy.rel ys_enmy2.rel ys_enmy3.rel ys_enmy4.rel ys_enmy5.rel\
	   ys_enmy6.rel ys_enmy7.rel ys_enmy8.rel ys_enmy9.rel ys_enmy10.rel\
	   ys_enmy11.rel ys_enmy12.rel\
	   ys_enmy14.rel ys_boss1.rel ys_boss2.rel ys_bbbros.rel ys_koopa.rel\
	   ys_dorobo.rel ys_babym.rel ys_enmy13.rel\
	   ys_exst.rel ys_bgsc.rel ys_bgsc0.rel ys_bgsc1.rel\
	   ys_bgsc2.rel ys_bonus.rel ys_start.rel\
	   ys_mini.rel ys_mini1.rel ys_ending.rel\
	   ys_demo.rel ys_demo_1.rel
SFXUNIT	 = $(SFXINC)\
	   $(SFXCOL)
SFXREL	 = $(SFXUNIT)\
	   ys_pldt.rel ys_pldt_e.rel ys_mapdt.rel ys_mpobj.rel ys_mpmv.rel ys_unit.rel\
	   ys_w11.rel ys_w12.rel ys_w13.rel ys_w14.rel ys_w15.rel ys_w16.rel ys_w17.rel ys_w18.rel ys_w19.rel\
	   ys_w21.rel ys_w22.rel ys_w23.rel ys_w24.rel ys_w25.rel ys_w26.rel ys_w27.rel ys_w28.rel ys_w29.rel\
	   ys_w31.rel ys_w32.rel ys_w33.rel ys_w34.rel ys_w35.rel ys_w36.rel ys_w37.rel ys_w38.rel ys_w39.rel\
	   ys_w41.rel ys_w42.rel ys_w43.rel ys_w44.rel ys_w45.rel ys_w46.rel ys_w47.rel ys_w48.rel ys_w49.rel\
	   ys_w51.rel ys_w52.rel ys_w53.rel ys_w54.rel ys_w55.rel ys_w56.rel ys_w57.rel ys_w58.rel ys_w59.rel\
	   ys_w61.rel ys_w62.rel ys_w63.rel ys_w64.rel ys_w65.rel ys_w66.rel ys_w67.rel ys_w68.rel ys_w69.rel\
	   ys_w70.rel\
	   ys_ench.rel ys_msgdt.rel ys_chr.rel

EMLNHEAD = $(UNIDIR)mctbl.h

LHAFILE	 = *.asm *.inc *.rel *.hex *.map Makefile

####### Make of 65C816 ##################################################

RELINFO0 = -rGroup_0=08000,Group_R=c000,Group_1=18000,Group_2=28000,Group_3=38000,Group_4=48000
RELINFO1 = -rGroup_5=58000,Group_6=68000,Group_7=78000,Group_C=c8000,Group_D=d8000,Group_E=e8000,Group_F=f8000
RELINFO2 = -rGroup_10=108000,Group_11=118000
RELINFO3 = -rGroup_12=128000,Group_13=138000,Group_14=148000,Group_15=158000,Group_16=168000,Group_17=178000
RELINFO4 = -rGroup_4C=4C0000,Group_50=50E000,Group_51=510000

RELINFO	 = $(RELINFO0) $(RELINFO1) $(RELINFO2) $(RELINFO3) $(RELINFO4)

all : $(SFXHEX)

.lnk.hex   :
	     load -o	   $*.hex $<
	     insp -f -s $*.sym $<
	     beep
	     taraka $(CHRFILE) > $(CHRMAP)
	     azrael $(SFXMAP) $(CHIPMAP) $(CHRMAP)
$(SFXLNK)  : $(SFXREL)
	     link $(SFXREL) -o $*.lnk $(RELINFO) -ls $*.map
.asm.rel   :
	     $(SFXASM) $< $(OPTION)
$(SFXCOL)  : $(EMLNHEAD) ys_color.h
$(SFXUNIT) : $(EMLNHEAD) ys_color.h ys_unit.h

clean :
	rm -f $(SFXHEX) *.rel core *.BAK *~
	date '+DATE%t%tHEX%t%y,%m,%d,%H,%M' > ys_date.inc

press :
	make clean
	make all
	lha -a SFC.lha $(LHAFILE)

rom_make :
	hex2bin -m mario -cff -fys_main.hex -fys_chip0.hex -iyschr -oys_rom_16 -r16

rom_make2 :
	hex2bin -m mario -cff -fys_main.hex -fys_chip0.hex -iyschr -oys_rom -r4,4,4,4
