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.

58 lines
1.2KB

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