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.
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

90 Zeilen
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