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.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

74 lignes
1.5KB

  1. SHORT_PLATFORM = linux
  2. ifeq ($(PLATFORM),win64)
  3. CROSS_COMPILE = x86_64-w64-mingw32-
  4. EXTENSION = .exe
  5. SHORT_PLATFORM = win
  6. else ifeq ($(PLATFORM),win32)
  7. CROSS_COMPILE = i686-w64-mingw32-
  8. EXTENSION = .exe
  9. SHORT_PLATFORM = win
  10. endif
  11. ifneq ($(PLATFORM),)
  12. DIR_SUFFIX=-$(PLATFORM)
  13. endif
  14. CC = $(CROSS_COMPILE)gcc
  15. LD = $(CC)
  16. PFLAGS = -g
  17. #PFLAGS += -O3 -s
  18. #PFLAGS += -DDEBUG_MAPPER
  19. #PFLAGS += -DDEBUG_RENDER
  20. #PFLAGS += -DDEBUG_PPU -DDEBUG_VRAM -DDEBUG_OAM
  21. #PFLAGS += -DDEBUG_APU
  22. #PFLAGS += -DE6502_DEBUG
  23. PFLAGS += -DE6502_ILLEGAL
  24. CFLAGS = $(PFLAGS) -Wall -Werror -Wshadow -Wunused -I../ -Isrc/
  25. CFLAGS += -Iinc/$(PLATFORM) -I../inc/$(PLATFORM)
  26. LDFLAGS = $(PFLAGS)
  27. LDFLAGS += -Llib/$(PLATFORM)
  28. OBJDIR = obj$(DIR_SUFFIX)
  29. SRCDIR = src
  30. BINDIR = bin$(DIR_SUFFIX)
  31. # nese
  32. TARGET_1 = nese$(EXTENSION)
  33. LDLIBS_1 = -lSDL2
  34. SRC_SRCS_1 = nese.c ines.c
  35. SRC_SRCS_1 += nes.c ppu.c input.c
  36. SRC_SRCS_1 += cart.c mapper.c
  37. SRC_SRCS_1 += apu.c audio.c
  38. SRC_SRCS_1 += sdl_render.c sdl_input.c sdl_audio.c
  39. SRC_SRCS_1 += sdl_timer.c
  40. PLAT_SRCS_1 = filemap.c
  41. MAPDIR = src/map
  42. MAP_SRCS_1 = nrom.c mmc1.c uxrom.c cnrom.c mmc3.c
  43. EXT_SRCS_1 = e6502/e6502.c e6502/opcodes.c blip-buf/blip_buf.c
  44. SRCS_1 = $(SRC_SRCS_1:%=$(SRCDIR)/%)
  45. SRCS_1 += $(MAP_SRCS_1:%=$(MAPDIR)/%)
  46. SRCS_1 += $(PLAT_SRCS_1:%=src/$(SHORT_PLATFORM)/%)
  47. SRCS_1 += $(EXT_SRCS_1)
  48. OBJS_1 = $(SRCS_1:%.c=$(OBJDIR)/%.o)
  49. all: $(BINDIR)/$(TARGET_1)
  50. clean: ; rm -rf obj*/ bin*/
  51. $(BINDIR)/$(TARGET_1): $(OBJS_1)
  52. @mkdir -p $(@D)
  53. $(LD) $(LDFLAGS) $^ $(LDLIBS_1) -o $@
  54. $(OBJDIR)/%.o: %.c
  55. @mkdir -p $(@D)
  56. $(CC) $(CFLAGS) -c $< -o $@