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'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

64 satır
1.4KB

  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 apu.c
  24. NESE_SRC_SRCS += memory.c serdes.c save.c rle.c
  25. NESE_SRC_SRCS += overlay.c
  26. NESE_SRC_SRCS += $(OS)/port.c
  27. NESE_MAP_SRCS = $(notdir $(wildcard $(MAPDIR)/*.c))
  28. NESE_DEBUG = CART
  29. NESE_SRCS += $(NESE_SRC_SRCS:%=$(SRCDIR)/%)
  30. NESE_SRCS += $(NESE_MAP_SRCS:%=$(MAPDIR)/%)
  31. NESE_OBJS = $(NESE_SRCS:%.c=$(OBJDIR)/%.o)
  32. nese: $(BINDIR)/nese
  33. all: $(BINDIR)/nese
  34. $(BINDIR)/test: CFLAGS += -DF6502_FLAT -DF6502_TEST -DF6502_TRACE
  35. $(BINDIR)/nese: CFLAGS += $(foreach debug,$(NESE_DEBUG), -DDEBUG_$(debug))
  36. $(BINDIR)/nese: CFLAGS += $(shell sdl2-config --cflags)
  37. $(BINDIR)/nese: LDFLAGS += $(shell sdl2-config --libs)
  38. $(BINDIR)/nese: $(NESE_OBJS)
  39. @mkdir -p $(@D)
  40. $(LD) $^ $(LDFLAGS) -o $@
  41. $(OBJDIR)/%.o : %.c
  42. @mkdir -p $(@D)
  43. $(CC) $(CFLAGS) -c $< -o $@
  44. clean:
  45. rm -rf $(OBJDIR) $(BINDIR)