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.
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

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)