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.
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

78 wiersze
1.7KB

  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
  18. #PFLAGS += -s
  19. #PFLAGS += -DDEBUG_MAPPER
  20. #PFLAGS += -DDEBUG_RENDER
  21. #PFLAGS += -DDEBUG_PPU -DDEBUG_VRAM -DDEBUG_OAM
  22. #PFLAGS += -DDEBUG_APU
  23. #PFLAGS += -DE6502_DEBUG
  24. PFLAGS += -DE6502_ILLEGAL
  25. CFLAGS = $(PFLAGS) -Wall -Werror -Wshadow -Wunused -I../ -Isrc/
  26. CFLAGS += -Iinc/$(PLATFORM) -I../inc/$(PLATFORM)
  27. CFLAGS += $(shell sdl2-config --cflags)
  28. LDFLAGS = $(PFLAGS)
  29. LDFLAGS += -Llib/$(PLATFORM)
  30. LDFLAGS += $(shell sdl2-config --libs)
  31. OBJDIR = obj$(DIR_SUFFIX)
  32. SRCDIR = src
  33. BINDIR = bin$(DIR_SUFFIX)
  34. # nese
  35. TARGET_1 = nese$(EXTENSION)
  36. SRC_SRCS_1 = nese.c ines.c
  37. SRC_SRCS_1 += nes.c ppu.c input.c
  38. SRC_SRCS_1 += cart.c mapper.c
  39. SRC_SRCS_1 += apu.c audio.c
  40. SRC_SRCS_1 += file.c save.c
  41. SRC_SRCS_1 += overlay.c menu.c
  42. SRC_SRCS_1 += sdl_render.c sdl_input.c sdl_audio.c sdl_timer.c
  43. SRC_SRCS_1 += sdl_overlay.c
  44. PLAT_SRCS_1 = filemap.c
  45. MAPDIR = src/map
  46. MAP_SRCS_1 = nrom.c mmc1.c uxrom.c cnrom.c mmc3.c
  47. EXT_SRCS_1 = e6502/e6502.c e6502/opcodes.c blip-buf/blip_buf.c
  48. SRCS_1 = $(SRC_SRCS_1:%=$(SRCDIR)/%)
  49. SRCS_1 += $(MAP_SRCS_1:%=$(MAPDIR)/%)
  50. SRCS_1 += $(PLAT_SRCS_1:%=src/$(SHORT_PLATFORM)/%)
  51. SRCS_1 += $(EXT_SRCS_1)
  52. OBJS_1 = $(SRCS_1:%.c=$(OBJDIR)/%.o)
  53. all: $(BINDIR)/$(TARGET_1)
  54. clean: ; rm -rf obj*/ bin*/
  55. $(BINDIR)/$(TARGET_1): $(OBJS_1)
  56. @mkdir -p $(@D)
  57. $(LD) $(LDFLAGS) $^ $(LDLIBS_1) -o $@
  58. $(OBJDIR)/%.o: %.c
  59. @mkdir -p $(@D)
  60. $(CC) $(CFLAGS) -c $< -o $@