NESe (pronounced "Nessie") is a NES emulator based on the e6502 emulator, also written in C with a focus on speed and portability for use on embedded platforms, especially ARM.
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

53 строки
1.0KB

  1. CC = gcc
  2. LD = $(CC)
  3. PFLAGS = -g
  4. #PFLAGS += -O3
  5. #PFLAGS += -DDEBUG_MAPPER
  6. #PFLAGS += -DDEBUG_RENDER
  7. #PFLAGS += -DDEBUG_PPU -DDEBUG_VRAM -DDEBUG_OAM
  8. PFLAGS += -DDEBUG_APU
  9. #PFLAGS += -DE6502_DEBUG
  10. PFLAGS += -DE6502_ILLEGAL
  11. CFLAGS = $(PFLAGS) -Wall -Werror -Wshadow -Wunused -I..
  12. LDFLAGS = $(PFLAGS)
  13. OBJDIR = obj
  14. SRCDIR = src
  15. BINDIR = bin
  16. # nese
  17. TARGET_1 = nese
  18. LDLIBS_1 = -lSDL2
  19. SRC_SRCS_1 = nese.c ines.c
  20. SRC_SRCS_1 += nes.c ppu.c input.c
  21. SRC_SRCS_1 += cart.c mapper.c
  22. SRC_SRCS_1 += apu.c audio.c
  23. SRC_SRCS_1 += sdl_render.c sdl_input.c sdl_audio.c
  24. MAPDIR = src/map
  25. MAP_SRCS_1 = nrom.c mmc1.c uxrom.c cnrom.c mmc3.c
  26. EXT_SRCS_1 = e6502/e6502.c e6502/opcodes.c blip-buf/blip_buf.c
  27. SRCS_1 = $(SRC_SRCS_1:%=$(SRCDIR)/%)
  28. SRCS_1 += $(MAP_SRCS_1:%=$(MAPDIR)/%)
  29. SRCS_1 += $(EXT_SRCS_1)
  30. OBJS_1 = $(SRCS_1:%.c=$(OBJDIR)/%.o)
  31. all: $(BINDIR)/$(TARGET_1)
  32. clean: ; rm -rf $(OBJDIR) $(BINDIR)
  33. $(BINDIR)/$(TARGET_1): $(OBJS_1)
  34. @mkdir -p $(@D)
  35. $(LD) $(LDFLAGS) $^ $(LDLIBS_1) -o $@
  36. $(OBJDIR)/%.o: %.c
  37. @mkdir -p $(@D)
  38. $(CC) $(CFLAGS) -c $< -o $@