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.
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

90 řádky
1.9KB

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