From 6caa515773cdba3d143aa196d43f5dc3674bf114 Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Fri, 14 Sep 2018 19:01:00 -0400 Subject: [PATCH 1/5] emscripten: Compile nearest_resampler only when not STATIC_LINKING --- Makefile.common | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Makefile.common b/Makefile.common index 5c979c02b..34452289f 100644 --- a/Makefile.common +++ b/Makefile.common @@ -28,7 +28,6 @@ SOURCES_C += $(wildcard \ $(CORE_DIR)/vendor/libretro-common/audio/audio_mixer.c \ $(CORE_DIR)/vendor/libretro-common/audio/conversion/*.c \ $(CORE_DIR)/vendor/libretro-common/audio/resampler/audio_resampler.c \ - $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/nearest_resampler.c \ $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/null_resampler.c \ $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/sinc_resampler.c \ $(CORE_DIR)/vendor/libretro-common/compat/compat_posix_string.c \ @@ -46,6 +45,11 @@ SOURCES_C += $(wildcard \ $(CORE_DIR)/vendor/libretro-common/streams/file_stream.c \ $(CORE_DIR)/vendor/libretro-common/vfs/*.c \ ) +# Only compile nearest_resampler when not STATIC_LINKING +ifneq ($(STATIC_LINKING), 1) + SOURCES_C += $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/nearest_resampler.c +endif + # stb_vorbis #SOURCES_C += $(CORE_DIR)/vendor/stb/stb_vorbis.c From b7e4b891957bd2bad2f666ac12aecf91efa3bdd9 Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Fri, 14 Sep 2018 23:56:57 -0400 Subject: [PATCH 2/5] Fix STATIC_LINKING for all resamplers --- Makefile.common | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Makefile.common b/Makefile.common index 34452289f..c0b151d80 100644 --- a/Makefile.common +++ b/Makefile.common @@ -28,8 +28,6 @@ SOURCES_C += $(wildcard \ $(CORE_DIR)/vendor/libretro-common/audio/audio_mixer.c \ $(CORE_DIR)/vendor/libretro-common/audio/conversion/*.c \ $(CORE_DIR)/vendor/libretro-common/audio/resampler/audio_resampler.c \ - $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/null_resampler.c \ - $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/sinc_resampler.c \ $(CORE_DIR)/vendor/libretro-common/compat/compat_posix_string.c \ $(CORE_DIR)/vendor/libretro-common/compat/compat_strcasestr.c \ $(CORE_DIR)/vendor/libretro-common/compat/compat_strl.c \ @@ -47,7 +45,10 @@ SOURCES_C += $(wildcard \ ) # Only compile nearest_resampler when not STATIC_LINKING ifneq ($(STATIC_LINKING), 1) - SOURCES_C += $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/nearest_resampler.c + SOURCES_C += \ + $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/nearest_resampler.c \ + $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/null_resampler.c \ + $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/sinc_resampler.c endif From 032b4e5e78b7a0ca37c0506801c0c40aebbac31f Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Sat, 15 Sep 2018 09:10:42 -0400 Subject: [PATCH 3/5] Move all libretro-common to not STATIC_LINKING --- Makefile.common | 47 ++++++++++++++++++++++------------------------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/Makefile.common b/Makefile.common index c0b151d80..56f92884d 100644 --- a/Makefile.common +++ b/Makefile.common @@ -21,34 +21,31 @@ FLAGS += -I$(CORE_DIR)/vendor/filesystem # libretro-common FLAGS += -I$(CORE_DIR)/vendor/libretro-common/include - -# libretro-common audio -SOURCES_C += $(wildcard \ - $(CORE_DIR)/vendor/libretro-common/audio/audio_mix.c \ - $(CORE_DIR)/vendor/libretro-common/audio/audio_mixer.c \ - $(CORE_DIR)/vendor/libretro-common/audio/conversion/*.c \ - $(CORE_DIR)/vendor/libretro-common/audio/resampler/audio_resampler.c \ - $(CORE_DIR)/vendor/libretro-common/compat/compat_posix_string.c \ - $(CORE_DIR)/vendor/libretro-common/compat/compat_strcasestr.c \ - $(CORE_DIR)/vendor/libretro-common/compat/compat_strl.c \ - $(CORE_DIR)/vendor/libretro-common/compat/fopen_utf8.c \ - $(CORE_DIR)/vendor/libretro-common/encodings/encoding_utf.c \ - $(CORE_DIR)/vendor/libretro-common/features/features_cpu.c \ - $(CORE_DIR)/vendor/libretro-common/file/config_file.c \ - $(CORE_DIR)/vendor/libretro-common/file/config_file_userdata.c \ - $(CORE_DIR)/vendor/libretro-common/file/file_path.c \ - $(CORE_DIR)/vendor/libretro-common/formats/wav/rwav.c \ - $(CORE_DIR)/vendor/libretro-common/lists/string_list.c \ - $(CORE_DIR)/vendor/libretro-common/memmap/memalign.c \ - $(CORE_DIR)/vendor/libretro-common/streams/file_stream.c \ - $(CORE_DIR)/vendor/libretro-common/vfs/*.c \ -) -# Only compile nearest_resampler when not STATIC_LINKING +# Only compile libretro-common when not STATIC_LINKING ifneq ($(STATIC_LINKING), 1) - SOURCES_C += \ + SOURCES_C += $(wildcard \ + $(CORE_DIR)/vendor/libretro-common/audio/audio_mix.c \ + $(CORE_DIR)/vendor/libretro-common/audio/audio_mixer.c \ + $(CORE_DIR)/vendor/libretro-common/audio/conversion/*.c \ + $(CORE_DIR)/vendor/libretro-common/audio/resampler/audio_resampler.c \ $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/nearest_resampler.c \ $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/null_resampler.c \ - $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/sinc_resampler.c + $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/sinc_resampler.c \ + $(CORE_DIR)/vendor/libretro-common/compat/compat_posix_string.c \ + $(CORE_DIR)/vendor/libretro-common/compat/compat_strcasestr.c \ + $(CORE_DIR)/vendor/libretro-common/compat/compat_strl.c \ + $(CORE_DIR)/vendor/libretro-common/compat/fopen_utf8.c \ + $(CORE_DIR)/vendor/libretro-common/encodings/encoding_utf.c \ + $(CORE_DIR)/vendor/libretro-common/features/features_cpu.c \ + $(CORE_DIR)/vendor/libretro-common/file/config_file.c \ + $(CORE_DIR)/vendor/libretro-common/file/config_file_userdata.c \ + $(CORE_DIR)/vendor/libretro-common/file/file_path.c \ + $(CORE_DIR)/vendor/libretro-common/formats/wav/rwav.c \ + $(CORE_DIR)/vendor/libretro-common/lists/string_list.c \ + $(CORE_DIR)/vendor/libretro-common/memmap/memalign.c \ + $(CORE_DIR)/vendor/libretro-common/streams/file_stream.c \ + $(CORE_DIR)/vendor/libretro-common/vfs/*.c \ + ) endif From 07ed8b11b6367b7e0f1fe848a0ebc686e7cafd14 Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Wed, 19 Sep 2018 01:03:30 -0400 Subject: [PATCH 4/5] saves: Disable zlib --- src/libretro.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libretro.cpp b/src/libretro.cpp index d1df823a4..da21b8698 100644 --- a/src/libretro.cpp +++ b/src/libretro.cpp @@ -246,7 +246,7 @@ bool retro_serialize(void *data, size_t size) { // Encode the JSON state data. // state = app->data.encode("string", "base64", state); - state = app->data.compress(state); + //state = app->data.compress(state); // Save the information to the state data. std::copy(state.begin(), state.end(), reinterpret_cast(data)); @@ -275,7 +275,7 @@ bool retro_unserialize(const void *data, size_t size) { // Decompress the state data. // loadData = app->data.decode("string", "base64", loadData); - loadData = app->data.decompress(loadData); + //loadData = app->data.decompress(loadData); // Finally, load the string. return app->loadstate(loadData); From 0bd94ce30277385355d0b289e9673a5871052112 Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Wed, 19 Sep 2018 21:24:43 -0400 Subject: [PATCH 5/5] Remove compressing the JSON savestate Fixes #314 --- .gitignore | 2 ++ src/libretro.cpp | 14 ++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 0b55fc2dc..a32a01e07 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ node_modules *.srm.* *.srm1.* /package.json +/.bsv +/*.mkv diff --git a/src/libretro.cpp b/src/libretro.cpp index da21b8698..f988016c4 100644 --- a/src/libretro.cpp +++ b/src/libretro.cpp @@ -224,8 +224,8 @@ void retro_set_controller_port_device(unsigned port, unsigned device) { * libretro callback; Return the amount of bytes required to save a state. */ size_t retro_serialize_size(void) { - // Save states will be 10 kilobytes. - return 10000; + // Save states will be 5 kilobytes. + return 5000; } /** @@ -235,7 +235,6 @@ bool retro_serialize(void *data, size_t size) { if (!ChaiLove::hasInstance()) { return false; } - std::cout << "[ChaiLove] retro_serialize" << std::endl; // Ask ChaiLove for save data. ChaiLove* app = ChaiLove::getInstance(); @@ -244,9 +243,9 @@ bool retro_serialize(void *data, size_t size) { return false; } - // Encode the JSON state data. + // Encode the JSON state data. Disabled for speed. // state = app->data.encode("string", "base64", state); - //state = app->data.compress(state); + // state = app->data.compress(state); // Save the information to the state data. std::copy(state.begin(), state.end(), reinterpret_cast(data)); @@ -260,7 +259,6 @@ bool retro_unserialize(const void *data, size_t size) { if (!ChaiLove::hasInstance() || size <= 0) { return false; } - std::cout << "[ChaiLove] retro_unserialize" << std::endl; // Create a string stream from the data. std::stringstream ss(std::string( @@ -273,9 +271,9 @@ bool retro_unserialize(const void *data, size_t size) { // Pass the string to the script. ChaiLove* app = ChaiLove::getInstance(); - // Decompress the state data. + // Decompress the state data. Disabled for speed. // loadData = app->data.decode("string", "base64", loadData); - //loadData = app->data.decompress(loadData); + // loadData = app->data.decompress(loadData); // Finally, load the string. return app->loadstate(loadData);