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.
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

58 wiersze
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)