VLOGS = 7seg.v Framebuffer.v GBZ80Core.v Interrupt.v LCDC.v Sound1.v \
-       Sound2.v Soundcore.v System.v Timer.v Uart.v
+       Sound2.v Soundcore.v System.v Timer.v Uart.v  Buttons.v
 
 VLOGS_ALL = $(VLOGS) insn_call-callcc.v insn_incdec16.v insn_jr-jrcc.v \
        insn_ld_reg_hl.v insn_ld_reg_reg.v insn_nop.v insn_ret-retcc.v \
        CPUDCM.v insn_alu_a.v insn_halt.v insn_jp-jpcc.v insn_ld_hl_reg.v \
        insn_ld_reg_imm8.v insn_ldx_ahl.v insn_push_reg.v insn_vop_intr.v \
        insn_ldm8_a.v insn_ldm16_a.v insn_ldbcde_a.v insn_alu_ext.v \
-       insn_bit.v insn_two_byte.v insn_incdec_reg8.v
+       insn_bit.v insn_two_byte.v insn_incdec_reg8.v insn_add_hl.v
 
-all: CoreTop.svf CoreTop.twr
+all: CoreTop.svf
 
 sim: CoreTop_isim.exe
 
-CoreTop.ngc: CoreTop.xst CoreTop.prj $(VLOGS_ALL) rom.mem
+CoreTop.ngc: CoreTop.xst CoreTop.prj $(VLOGS_ALL) fpgaboot.hex gbboot.hex
        xst -ifn CoreTop.xst -ofn CoreTop.syr
 
 CoreTop.ngd: CoreTop.ngc foo.bmm CoreTop.ucf
 %.mem: %.bin mashrom
        ./mashrom < $< > $@
 
+fpgaboot.hex: fpgaboot.bin mashrom
+       ./mashrom 256 < $< > $@
+
+
 CoreTop.svf: CoreTop.bit impact.cmd
        sed -e s/XXX/$(subst .bit,,$<)/ < impact.cmd > tmp.cmd
        impact -batch tmp.cmd