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.

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