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.
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

72 líneas
1.7KB

  1. #CROSS_COMPILE = arm-none-eabi-
  2. SYS = linux
  3. GFX = sdl
  4. NESE_DEBUG = CART
  5. CC = $(CROSS_COMPILE)gcc
  6. LD = $(CC)
  7. #CFLAGS = -mcpu=cortex-m33 -mthumb
  8. CFLAGS += -Wall -Werror -Wshadow
  9. CFLAGS += -I src
  10. CFLAGS += -g #-Ofast
  11. #CFLAGS += -DF6502_FLAT
  12. #CFLAGS += -DF6502_TEST
  13. #CFLAGS += -DF6502_HCF
  14. #CFLAGS += -DF6502_TRACE
  15. OBJDIR = obj
  16. SRCDIR = src
  17. BINDIR = bin
  18. TEST_SRC_SRCS = f6502.c f6502_opcodes.c
  19. TEST_SRCS = test.c
  20. TEST_SRCS += $(TEST_SRC_SRCS:%=$(SRCDIR)/%)
  21. TEST_OBJS = $(TEST_SRCS:%.c=$(OBJDIR)/%.o)
  22. MAPDIR = $(SRCDIR)/map
  23. GFXDIR = $(SRCDIR)/$(GFX)
  24. SYSDIR = $(SRCDIR)/$(SYS)
  25. NESE_SYS_SRCS = $(notdir $(wildcard $(SYSDIR)/*.c))
  26. NESE_GFX_SRCS = $(notdir $(wildcard $(GFXDIR)/*.c))
  27. NESE_MAP_SRCS = $(notdir $(wildcard $(MAPDIR)/*.c))
  28. NESE_SRC_SRCS = f6502.c f6502_opcodes.c
  29. NESE_SRC_SRCS += nese.c nes.c cart.c mapper.c
  30. NESE_SRC_SRCS += memory.c ppu.c apu.c
  31. NESE_SRC_SRCS += serdes.c save.c rle.c cartinfo.c
  32. NESE_SRC_SRCS += menu.c list.c state.c menus.c
  33. NESE_SRCS += $(NESE_SRC_SRCS:%=$(SRCDIR)/%)
  34. NESE_SRCS += $(NESE_SYS_SRCS:%=$(SYSDIR)/%)
  35. NESE_SRCS += $(NESE_MAP_SRCS:%=$(MAPDIR)/%)
  36. NESE_SRCS += $(NESE_GFX_SRCS:%=$(GFXDIR)/%)
  37. NESE_OBJS = $(NESE_SRCS:%.c=$(OBJDIR)/%.o)
  38. nese: $(BINDIR)/nese
  39. all: $(BINDIR)/nese
  40. $(BINDIR)/test: CFLAGS += -DF6502_FLAT -DF6502_TEST -DF6502_TRACE
  41. $(BINDIR)/nese: CFLAGS += $(foreach debug,$(NESE_DEBUG), -DDEBUG_$(debug))
  42. $(BINDIR)/nese: CFLAGS += -I$(GFXDIR)
  43. $(BINDIR)/nese: CFLAGS += $(shell sdl2-config --cflags)
  44. $(BINDIR)/nese: LDFLAGS += $(shell sdl2-config --libs)
  45. $(BINDIR)/nese: $(NESE_OBJS)
  46. @mkdir -p $(@D)
  47. $(LD) $^ $(LDFLAGS) -o $@
  48. $(OBJDIR)/%.o : %.c
  49. @mkdir -p $(@D)
  50. $(CC) $(CFLAGS) -c $< -o $@
  51. clean:
  52. rm -rf $(OBJDIR) $(BINDIR)