This uses BSON as savestate format, to allow external tools to parse it (so that we can add proper test of the states). The BSON is not 100% correct according to spec (no ordered keys) but can be parsed by most libraries. This fixes also a bug in the savestate palette color recalculation that was wrongly overwritting the original palette (which could cause some problems on some games). Also fixes some potential issues by serializing some more stuff and cleans up unused stuff. Testing shows that states look good and there's only minor differences in audio ticks, related to buffer sizes (since buffer flushes are de-synced from video frames due to different frequency).
46 lines
975 B
Text
46 lines
975 B
Text
INCFLAGS := -I$(CORE_DIR)/libretro -I$(CORE_DIR)/src
|
|
|
|
SOURCES_ASM := $(CORE_DIR)/bios_data.S
|
|
|
|
SOURCES_C := $(CORE_DIR)/main.c \
|
|
$(CORE_DIR)/cpu.c \
|
|
$(CORE_DIR)/gba_memory.c \
|
|
$(CORE_DIR)/savestate.c \
|
|
$(CORE_DIR)/video.c \
|
|
$(CORE_DIR)/input.c \
|
|
$(CORE_DIR)/sound.c \
|
|
$(CORE_DIR)/cheats.c \
|
|
$(CORE_DIR)/libretro.c \
|
|
$(CORE_DIR)/gba_cc_lut.c
|
|
|
|
ifeq ($(HAVE_DYNAREC), 1)
|
|
SOURCES_C += $(CORE_DIR)/cpu_threaded.c
|
|
endif
|
|
|
|
ifeq ($(HAVE_DYNAREC), 1)
|
|
|
|
ifeq ($(CPU_ARCH), x86_32)
|
|
SOURCES_ASM += $(CORE_DIR)/x86/x86_stub.S
|
|
endif
|
|
ifeq ($(CPU_ARCH), arm)
|
|
SOURCES_ASM += $(CORE_DIR)/arm/arm_stub.S
|
|
endif
|
|
ifeq ($(CPU_ARCH), mips)
|
|
SOURCES_ASM += $(CORE_DIR)/psp/mips_stub.S
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(CPU_ARCH), arm)
|
|
|
|
ifeq ($(CPU_ARCH_ARM_BLENDING_OPTS),1)
|
|
CFLAGS += -DARM_ARCH_BLENDING_OPTS
|
|
SOURCES_ASM += $(CORE_DIR)/arm/video_blend.S
|
|
endif
|
|
|
|
endif
|
|
|
|
ifeq ($(HAVE_MMAP_WIN32),1)
|
|
SOURCES_C += $(CORE_DIR)/memmap_win32.c
|
|
endif
|
|
|
|
INCFLAGS := -I$(CORE_DIR)
|