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개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
1.5KB

  1. #CROSS_COMPILE = arm-none-eabi-
  2. OS = linux
  3. GFX = sdl
  4. CC = $(CROSS_COMPILE)gcc
  5. LD = $(CC)
  6. #CFLAGS = -mcpu=cortex-m33 -mthumb
  7. CFLAGS += -Wall -Werror -Wshadow
  8. CFLAGS += -I src
  9. CFLAGS += -g #-Ofast
  10. #CFLAGS += -DF6502_FLAT
  11. #CFLAGS += -DF6502_TEST
  12. #CFLAGS += -DF6502_HCF
  13. #CFLAGS += -DF6502_TRACE
  14. OBJDIR = obj
  15. SRCDIR = src
  16. BINDIR = bin
  17. TEST_SRC_SRCS = f6502.c f6502_opcodes.c
  18. TEST_SRCS = test.c
  19. TEST_SRCS += $(TEST_SRC_SRCS:%=$(SRCDIR)/%)
  20. TEST_OBJS = $(TEST_SRCS:%.c=$(OBJDIR)/%.o)
  21. MAPDIR = $(SRCDIR)/map
  22. GFXDIR = $(SRCDIR)/$(GFX)
  23. NESE_SRC_SRCS = f6502.c f6502_opcodes.c
  24. NESE_SRC_SRCS += nese.c nes.c cart.c mapper.c
  25. NESE_SRC_SRCS += ppu.c apu.c
  26. NESE_SRC_SRCS += memory.c serdes.c save.c rle.c
  27. NESE_SRC_SRCS += cartinfo.c
  28. NESE_SRC_SRCS += $(OS)/port.c
  29. NESE_GFX_SRCS = $(notdir $(wildcard $(GFXDIR)/*.c))
  30. NESE_MAP_SRCS = $(notdir $(wildcard $(MAPDIR)/*.c))
  31. NESE_DEBUG = CART
  32. NESE_SRCS += $(NESE_SRC_SRCS:%=$(SRCDIR)/%)
  33. NESE_SRCS += $(NESE_MAP_SRCS:%=$(MAPDIR)/%)
  34. NESE_SRCS += $(NESE_GFX_SRCS:%=$(GFXDIR)/%)
  35. NESE_OBJS = $(NESE_SRCS:%.c=$(OBJDIR)/%.o)
  36. nese: $(BINDIR)/nese
  37. all: $(BINDIR)/nese
  38. $(BINDIR)/test: CFLAGS += -DF6502_FLAT -DF6502_TEST -DF6502_TRACE
  39. $(BINDIR)/nese: CFLAGS += $(foreach debug,$(NESE_DEBUG), -DDEBUG_$(debug))
  40. $(BINDIR)/nese: CFLAGS += -I$(GFXDIR)
  41. $(BINDIR)/nese: CFLAGS += $(shell sdl2-config --cflags)
  42. $(BINDIR)/nese: LDFLAGS += $(shell sdl2-config --libs)
  43. $(BINDIR)/nese: $(NESE_OBJS)
  44. @mkdir -p $(@D)
  45. $(LD) $^ $(LDFLAGS) -o $@
  46. $(OBJDIR)/%.o : %.c
  47. @mkdir -p $(@D)
  48. $(CC) $(CFLAGS) -c $< -o $@
  49. clean:
  50. rm -rf $(OBJDIR) $(BINDIR)