From 930ee8145c11c901bf1e155a09063762b1ae453e Mon Sep 17 00:00:00 2001 From: radius Date: Sat, 14 Oct 2017 22:37:11 -0500 Subject: [PATCH 01/11] move the target to TLD for our fork --- libretro/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libretro/Makefile b/libretro/Makefile index 8fe1a42..2f5f40e 100644 --- a/libretro/Makefile +++ b/libretro/Makefile @@ -113,7 +113,7 @@ else SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--version-script=$(CORE_DIR)/libretro/link.T -Wl,--no-undefined endif -TARGET := $(CORE_DIR)/build/bin/$(TARGET) +TARGET := $(CORE_DIR)/$(TARGET) # To force use of the Unix version instead of the Windows version MKDIR := $(shell which mkdir) From a42fed5d53165dbed077f38b3fd02a0c5c597684 Mon Sep 17 00:00:00 2001 From: radius Date: Sat, 14 Oct 2017 23:07:57 -0500 Subject: [PATCH 02/11] hookup color filter & highpass filter --- libretro/libretro.c | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/libretro/libretro.c b/libretro/libretro.c index 4e52d6c..369ca2b 100644 --- a/libretro/libretro.c +++ b/libretro/libretro.c @@ -195,8 +195,14 @@ void retro_set_environment(retro_environment_t cb) { controllers, 1 }, { NULL, 0 }, }; - cb(RETRO_ENVIRONMENT_SET_CONTROLLER_INFO, (void*)ports); + + static struct retro_variable vars[] = { + { "sameboy_color_correction_mode", "Color Correction; off|correct curves|emulate hardware|preserve brightness" }, + { "sameboy_high_pass_filter_mode", "High Pass Filter; off|accurate|remove dc offset" }, + }; + cb(RETRO_ENVIRONMENT_SET_VARIABLES, (void*)vars); + } void retro_set_audio_sample(retro_audio_sample_t cb) @@ -230,7 +236,33 @@ void retro_reset(void) static void check_variables(void) { + struct retro_variable var = {0}; + var.key = "sameboy_color_correction_mode"; + var.value = NULL; + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) + { + if (strcmp(var.value, "off") == 0) + GB_set_color_correction_mode(&gb, GB_COLOR_CORRECTION_DISABLED); + else if (strcmp(var.value, "correct curves") == 0) + GB_set_color_correction_mode(&gb, GB_COLOR_CORRECTION_CORRECT_CURVES); + else if (strcmp(var.value, "emulate hardware") == 0) + GB_set_color_correction_mode(&gb, GB_COLOR_CORRECTION_EMULATE_HARDWARE); + else if (strcmp(var.value, "preserve brightness") == 0) + GB_set_color_correction_mode(&gb, GB_COLOR_CORRECTION_PRESERVE_BRIGHTNESS); + } + + var.key = "sameboy_high_pass_filter_mode"; + var.value = NULL; + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) + { + if (strcmp(var.value, "off") == 0) + GB_set_highpass_filter_mode(&gb, GB_HIGHPASS_OFF); + else if (strcmp(var.value, "accurate") == 0) + GB_set_highpass_filter_mode(&gb, GB_HIGHPASS_ACCURATE); + else if (strcmp(var.value, "remove dc offset") == 0) + GB_set_highpass_filter_mode(&gb, GB_HIGHPASS_REMOVE_DC_OFFSET); + } } void retro_run(void) @@ -337,7 +369,6 @@ bool retro_load_game(const struct retro_game_info *info) #endif GB_set_sample_rate(&gb, AUDIO_FREQUENCY); - /* GB_set_highpass_filter_mode(&gb, GB_HIGHPASS_REMOVE_DC_OFFSET); */ return true; } From 7313473fd25b65e72e8011193e91acb6319ad943 Mon Sep 17 00:00:00 2001 From: radius Date: Sun, 15 Oct 2017 12:13:38 -0500 Subject: [PATCH 03/11] use prebuilt bootroms --- BootROMs/prebuilt/cgb_boot.bin | Bin 0 -> 2304 bytes BootROMs/prebuilt/dmg_boot.bin | Bin 0 -> 256 bytes libretro/Makefile | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 BootROMs/prebuilt/cgb_boot.bin create mode 100644 BootROMs/prebuilt/dmg_boot.bin diff --git a/BootROMs/prebuilt/cgb_boot.bin b/BootROMs/prebuilt/cgb_boot.bin new file mode 100644 index 0000000000000000000000000000000000000000..42d88fcc4b09c81f9b5469520d0f77179761a183 GIT binary patch literal 2304 zcmd^Bk8c}y75|>kK075o+ewpNoaF9%=d^VUY0|D;yY71aQPQMMHID#d6O?oyZKd64 zCowr~Y@e%2OC+Y%4A@cxO^Q@)AVeZ2#445b%4nC9bu=5I3QVwXHsW?htWLWuP8#lb z=d2U(FYt8teeZqWd!Kvn-BW4nuifA>uZnb%CXi*ztyzum9;;A=7(pt9&NB* z>dUY5Kd|`mPxn6b#v$_E@*is3Z~o@lAN5l|dHTn{J@C{M(Ic33fy}+BO6ue7hvMB8*FH zibTQ=Kddgav8}O*!L@Cl*;u!c6Sf34G0mv6y&a)?X+Zw-9bfK` z_v5_}#rN*tySp3rV|+88&ySCfYns;E+Y2vwW@aWF4j(*taC&+=7mHy+u;0&NaJ)${ z@sId(xfsSfFwSExb0{0f0cGzB+_*%(|GCO6CFa-~us*n^PYQZH?p2H3H09#2d* z6r7g2`P=)t5wg@<&B$SMA#uCK=0E7)2W4BTMR!tFJAJ*%f1Q}xh0u4h7M-*8Cw`Ht z4<6~bp0)a(5kddrz`p)0@Z{Us{X0p^KWR%HSdY+QT5wn(Tk5-19mENt0s1zo0sImz zfIik9M75BYrK%30$_dRlFlDL#$bz1R$S4BI&ZlaJb=5yge;?w35^5FyxhzWCIJcT} zkJ-GW4rCBYHNU;)gZ14FRF}(x!k?uXcgyDcwr;y$PFy&D;e0|yl-nl=ii|3zWkUT3 zQ4~$P-3Xdzw-33iXN|gMF109teQ%s%kW< z@I0iH`^3}*FGrB&^wQFu_lH%>Difk$$@A$wEBrC~OZ&I$Jg#XILLBE&n0v#t<`fwQ;~^*Bb})!1GSl1E2el7cc4T zVa~xGQgW}pR~vb+0pHa{ZIq?6rZ4P~Q$@E)h3ODi&U`E!4SA=y8}?vn3^ERw0>&k# z0WauA#cecuVA8<4yqhYhm^L^!*}ojqUdFT%(5sq4=@9y)5qB5V-xoYZwa2!H*N7Qs zl0h|Djv9nPV&vV5Q(x|*%=^NON#O*?E`OdfyYK_c-ITc*ZxOdrte-)VT#pwoi^!2N zzaDOlyoMJu*W)|bxy;oQN3*lZ3MQzG zI*Y!kD=exNx>gi_bz|MSV(m%0N6A6>m$-0wYGLlmpYAowuIQa=MOjg;mb24Tu_F{( zfclVTXr9@ULj##wm1%804Aw|#rxqza2)9$qmR#C@rB@y2Z(W|9*8?8JdQweZI13Bl nqBNEKXT;7kZ0)YFXA2yeO+Id6UKhKp3Dz%l+HUvG_$vQ5hUe~` literal 0 HcmV?d00001 diff --git a/BootROMs/prebuilt/dmg_boot.bin b/BootROMs/prebuilt/dmg_boot.bin new file mode 100644 index 0000000000000000000000000000000000000000..a7b51d4c85d282227bd2b245c78a7d26c973a3c5 GIT binary patch literal 256 zcmXr~_g|5rLFsgk#&5fZ2Wk%l?LI#cdZ21o{y@d<&jWWs7Dh#Z1}XQmO$Z{O z;gjGR20jicVI^f=g`akkuLNc)>d)lkvDM%(0t)EyOMJDP_`rcp_v}0dyXLb?8QAzi ztb-udG$2cH1LM<=ioT4D!VH2p7!Lnquw&t4IIZyYwBX0ng0>1@E0vU$luv$e`8Pq~ h*U7Wf8CZeT17W-N2O=kJoOUkVxzx#qfokAE002dpNCW@? literal 0 HcmV?d00001 diff --git a/libretro/Makefile b/libretro/Makefile index 2f5f40e..bbbfe3d 100644 --- a/libretro/Makefile +++ b/libretro/Makefile @@ -135,7 +135,7 @@ CXXFLAGS += -Wall -D__LIBRETRO__ $(fpic) all: $(TARGET) -$(CORE_DIR)/libretro/%_boot.c: $(CORE_DIR)/build/bin/BootROMs/%_boot.bin +$(CORE_DIR)/libretro/%_boot.c: $(CORE_DIR)/BootROMs/prebuilt/%_boot.bin echo "/* AUTO-GENERATED */" > $@ echo "const unsigned char $(notdir $(@:%.c=%))[] = {" >> $@ hexdump -v -e '/1 "0x%02x, "' $< >> $@ From d8e460ca47e942b0013f4d71ba0174dc4518347a Mon Sep 17 00:00:00 2001 From: leiradel Date: Sun, 15 Oct 2017 18:24:29 +0100 Subject: [PATCH 04/11] Added cheevos support --- libretro/libretro.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/libretro/libretro.c b/libretro/libretro.c index 369ca2b..56409ce 100644 --- a/libretro/libretro.c +++ b/libretro/libretro.c @@ -369,6 +369,50 @@ bool retro_load_game(const struct retro_game_info *info) #endif GB_set_sample_rate(&gb, AUDIO_FREQUENCY); + + struct retro_memory_descriptor descs[7]; + size_t size; + uint16_t bank; + + memset(descs, 0, sizeof(descs)); + + descs[0].ptr = GB_get_direct_access(&gb, GB_DIRECT_ACCESS_IE, &size, &bank); + descs[0].start = 0xFFFF; + descs[0].len = 1; + + descs[1].ptr = GB_get_direct_access(&gb, GB_DIRECT_ACCESS_HRAM, &size, &bank); + descs[1].start = 0xFF80; + descs[1].len = 0x0080; + + descs[2].ptr = GB_get_direct_access(&gb, GB_DIRECT_ACCESS_RAM, &size, &bank); + descs[2].start = 0xC000; + descs[2].len = 0x2000; + + descs[3].ptr = GB_get_direct_access(&gb, GB_DIRECT_ACCESS_CART_RAM, &size, &bank); + descs[3].start = 0xA000; + descs[3].len = 0x2000; + + descs[4].ptr = GB_get_direct_access(&gb, GB_DIRECT_ACCESS_VRAM, &size, &bank); + descs[4].start = 0x8000; + descs[4].len = 0x2000; + + descs[5].ptr = GB_get_direct_access(&gb, GB_DIRECT_ACCESS_ROM, &size, &bank); + descs[5].start = 0x0000; + descs[5].len = 0x4000; + descs[5].flags = RETRO_MEMDESC_CONST; + + descs[6].ptr = GB_get_direct_access(&gb, GB_DIRECT_ACCESS_OAM, &size, &bank); + descs[6].start = 0xFE00; + descs[6].len = 0x00A0; + + struct retro_memory_map mmaps; + mmaps.descriptors = descs; + mmaps.num_descriptors = sizeof(descs) / sizeof(descs[0]); + environ_cb(RETRO_ENVIRONMENT_SET_MEMORY_MAPS, &mmaps); + + bool yes = true; + environ_cb(RETRO_ENVIRONMENT_SET_SUPPORT_ACHIEVEMENTS, &yes); + return true; } From d57d4dbe244b4acdd7e68e66f256c41794715f27 Mon Sep 17 00:00:00 2001 From: radius Date: Sun, 15 Oct 2017 15:48:56 -0500 Subject: [PATCH 05/11] check_variables later --- libretro/libretro.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libretro/libretro.c b/libretro/libretro.c index 56409ce..af3f717 100644 --- a/libretro/libretro.c +++ b/libretro/libretro.c @@ -310,8 +310,6 @@ bool retro_load_game(const struct retro_game_info *info) snprintf(retro_game_path, sizeof(retro_game_path), "%s", info->path); - check_variables(); - char buf[256]; int err = 0; if (!strstr(info->path, "gbc")) @@ -413,6 +411,8 @@ bool retro_load_game(const struct retro_game_info *info) bool yes = true; environ_cb(RETRO_ENVIRONMENT_SET_SUPPORT_ACHIEVEMENTS, &yes); + check_variables(); + return true; } From 9f8d871c9c810f5dd35c652dfaf1cbf71e1c5ba1 Mon Sep 17 00:00:00 2001 From: radius Date: Sun, 15 Oct 2017 18:08:31 -0500 Subject: [PATCH 06/11] hookup reset and unload --- libretro/libretro.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libretro/libretro.c b/libretro/libretro.c index af3f717..d4dba3e 100644 --- a/libretro/libretro.c +++ b/libretro/libretro.c @@ -231,7 +231,7 @@ void retro_set_video_refresh(retro_video_refresh_t cb) void retro_reset(void) { - + GB_reset(&gb); } static void check_variables(void) @@ -418,7 +418,7 @@ bool retro_load_game(const struct retro_game_info *info) void retro_unload_game(void) { - + GB_free(&gb); } unsigned retro_get_region(void) From f724cbbacda84c445cf5cf11d24aa5943b978c09 Mon Sep 17 00:00:00 2001 From: radius Date: Sun, 15 Oct 2017 18:46:37 -0500 Subject: [PATCH 07/11] really strong rumble --- libretro/libretro.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/libretro/libretro.c b/libretro/libretro.c index d4dba3e..96942d6 100644 --- a/libretro/libretro.c +++ b/libretro/libretro.c @@ -77,6 +77,8 @@ static void replace_extension(const char *src, size_t length, char *dest, const strcat(dest, ext); } +static struct retro_rumble_interface rumble; + static void GB_update_keys_status(GB_gameboy_t *gb) { @@ -89,7 +91,13 @@ static void GB_update_keys_status(GB_gameboy_t *gb) GB_set_key_state(gb, GB_KEY_A,input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_A) ); GB_set_key_state(gb, GB_KEY_B,input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B) ); GB_set_key_state(gb, GB_KEY_SELECT,input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT)); - GB_set_key_state(gb, GB_KEY_START,input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_START) ); + GB_set_key_state(gb, GB_KEY_START,input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_START) ); + + if (gb->rumble_state) + rumble.set_rumble_state(0, RETRO_RUMBLE_STRONG, 65535); + else + rumble.set_rumble_state(0, RETRO_RUMBLE_STRONG, 0); + } @@ -176,8 +184,6 @@ void retro_get_system_av_info(struct retro_system_av_info *info) } -static struct retro_rumble_interface rumble; - void retro_set_environment(retro_environment_t cb) { environ_cb = cb; @@ -411,6 +417,11 @@ bool retro_load_game(const struct retro_game_info *info) bool yes = true; environ_cb(RETRO_ENVIRONMENT_SET_SUPPORT_ACHIEVEMENTS, &yes); + if (environ_cb(RETRO_ENVIRONMENT_GET_RUMBLE_INTERFACE, &rumble)) + log_cb(RETRO_LOG_INFO, "Rumble environment supported.\n"); + else + log_cb(RETRO_LOG_INFO, "Rumble environment not supported.\n"); + check_variables(); return true; From 55412d709367789ba85f33d661e3779c89a8a80c Mon Sep 17 00:00:00 2001 From: radius Date: Sun, 15 Oct 2017 21:54:44 -0500 Subject: [PATCH 08/11] don't apply color correction for DMG --- libretro/libretro.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/libretro/libretro.c b/libretro/libretro.c index 96942d6..ef1dc1f 100644 --- a/libretro/libretro.c +++ b/libretro/libretro.c @@ -202,13 +202,6 @@ void retro_set_environment(retro_environment_t cb) { NULL, 0 }, }; cb(RETRO_ENVIRONMENT_SET_CONTROLLER_INFO, (void*)ports); - - static struct retro_variable vars[] = { - { "sameboy_color_correction_mode", "Color Correction; off|correct curves|emulate hardware|preserve brightness" }, - { "sameboy_high_pass_filter_mode", "High Pass Filter; off|accurate|remove dc offset" }, - }; - cb(RETRO_ENVIRONMENT_SET_VARIABLES, (void*)vars); - } void retro_set_audio_sample(retro_audio_sample_t cb) @@ -246,7 +239,7 @@ static void check_variables(void) var.key = "sameboy_color_correction_mode"; var.value = NULL; - if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value && GB_is_cgb(&gb)) { if (strcmp(var.value, "off") == 0) GB_set_color_correction_mode(&gb, GB_COLOR_CORRECTION_DISABLED); @@ -422,6 +415,21 @@ bool retro_load_game(const struct retro_game_info *info) else log_cb(RETRO_LOG_INFO, "Rumble environment not supported.\n"); + static struct retro_variable vars_cgb[] = { + { "sameboy_color_correction_mode", "Color Correction; off|correct curves|emulate hardware|preserve brightness" }, + { "sameboy_high_pass_filter_mode", "High Pass Filter; off|accurate|remove dc offset" }, + { NULL } + }; + + static struct retro_variable vars_dmg[] = { + { "sameboy_high_pass_filter_mode", "High Pass Filter; off|accurate|remove dc offset" }, + { NULL } + }; + + if (GB_is_cgb(&gb)) + environ_cb(RETRO_ENVIRONMENT_SET_VARIABLES, vars_cgb); + else + environ_cb(RETRO_ENVIRONMENT_SET_VARIABLES, vars_dmg); check_variables(); return true; From 8c9ff67b21c1b0b016e05052c117b8cda8c01b3d Mon Sep 17 00:00:00 2001 From: Brad Parker Date: Tue, 24 Oct 2017 13:32:22 -0400 Subject: [PATCH 09/11] add travis build script --- .travis.yml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..f34e348 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,32 @@ +language: generic +os: linux +dist: trusty +sudo: required +addons: + apt: + packages: + - g++-7 + sources: + - ubuntu-toolchain-r-test +env: + global: + - CORE=sameboy + - COMPILER_NAME=gcc CXX=g++-7 CC=gcc-7 + matrix: + - PLATFORM=linux_x64 +before_script: + - pwd + - mkdir -p ~/bin + - ln -s /usr/bin/gcc-7 ~/bin/gcc + - ln -s /usr/bin/g++-7 ~/bin/g++ + - ln -s /usr/bin/cpp-7 ~/bin/cpp + - export PATH=~/bin:$PATH + - ls -l ~/bin + - echo $PATH + - g++-7 --version + - g++ --version +script: + - cd ~/ + - git clone --depth=50 https://github.com/libretro/libretro-super + - cd libretro-super/travis + - ./build.sh From 2184fd0902c284cbdc9418d29893a4ffd02edae3 Mon Sep 17 00:00:00 2001 From: orbea Date: Thu, 21 Dec 2017 21:03:41 -0800 Subject: [PATCH 10/11] libretro: Change CXXFLAGS to CFLAGS. This core does not use CXXFLAGS... --- libretro/Makefile | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/libretro/Makefile b/libretro/Makefile index bbbfe3d..9a99ecc 100644 --- a/libretro/Makefile +++ b/libretro/Makefile @@ -48,7 +48,7 @@ endif ifeq ($(platform), osx) ifndef ($(NOUNIVERSAL)) - CXXFLAGS += $(ARCHFLAGS) + CFLAGS += $(ARCHFLAGS) LFLAGS += $(ARCHFLAGS) endif endif @@ -88,10 +88,10 @@ else endif ifeq ($(platform),$(filter $(platform),ios9 ios-arm64)) CC += -miphoneos-version-min=8.0 -CXXFLAGS += -miphoneos-version-min=8.0 +CFLAGS += -miphoneos-version-min=8.0 else CC += -miphoneos-version-min=5.0 -CXXFLAGS += -miphoneos-version-min=5.0 +CFLAGS += -miphoneos-version-min=5.0 endif else ifneq (,$(findstring qnx,$(platform))) TARGET := $(TARGET_NAME)_libretro_qnx.so @@ -121,9 +121,9 @@ MKDIR := $(shell which mkdir) LDFLAGS += $(LIBM) ifeq ($(DEBUG), 1) - CXXFLAGS += -O0 -g + CFLAGS += -O0 -g else - CXXFLAGS += -O2 -DNDEBUG + CFLAGS += -O2 -DNDEBUG endif include Makefile.common @@ -131,7 +131,6 @@ include Makefile.common OBJECTS := $(patsubst %.c,$(CORE_DIR)/build/obj/%_libretro.c.o,$(SOURCES_C)) CFLAGS += -Wall -D__LIBRETRO__ $(fpic) $(INCFLAGS) -std=gnu11 -D_GNU_SOURCE -D_USE_MATH_DEFINES -CXXFLAGS += -Wall -D__LIBRETRO__ $(fpic) all: $(TARGET) From 536e47c5672ec3836adce8cf406640d81ddbe5c5 Mon Sep 17 00:00:00 2001 From: orbea Date: Thu, 21 Dec 2017 21:10:41 -0800 Subject: [PATCH 11/11] libretro: Add GIT_VERSION --- libretro/Makefile | 5 +++++ libretro/jni/Android.mk | 6 +++++- libretro/libretro.c | 9 +++++++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/libretro/Makefile b/libretro/Makefile index bbbfe3d..6317e20 100644 --- a/libretro/Makefile +++ b/libretro/Makefile @@ -1,6 +1,11 @@ STATIC_LINKING := 0 AR := ar +GIT_VERSION ?= " $(shell git rev-parse --short HEAD || echo unknown)" +ifneq ($(GIT_VERSION)," unknown") + CFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\" +endif + ifeq ($(platform),) platform = unix ifeq ($(shell uname -a),) diff --git a/libretro/jni/Android.mk b/libretro/jni/Android.mk index 219b8b7..1dc2b3e 100644 --- a/libretro/jni/Android.mk +++ b/libretro/jni/Android.mk @@ -1,7 +1,11 @@ LOCAL_PATH := $(call my-dir) -include $(CLEAR_VARS) +GIT_VERSION ?= " $(shell git rev-parse --short HEAD || echo unknown)" +ifneq ($(GIT_VERSION)," unknown") + LOCAL_CXXFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\" +endif +include $(CLEAR_VARS) HAVE_NETWORK = 1 LOCAL_MODULE := libretro diff --git a/libretro/libretro.c b/libretro/libretro.c index ef1dc1f..7320a7a 100644 --- a/libretro/libretro.c +++ b/libretro/libretro.c @@ -14,6 +14,8 @@ #define snprintf _snprintf #endif +#define SAMEBOY_CORE_VERSION "0.9" + #include #include "libretro.h" @@ -168,12 +170,15 @@ void retro_get_system_info(struct retro_system_info *info) { memset(info, 0, sizeof(*info)); info->library_name = "SameBoy"; - info->library_version = "0.9"; +#ifdef GIT_VERSION + info->library_version = SAMEBOY_CORE_VERSION GIT_VERSION; +#else + info->library_version = SAMEBOY_CORE_VERSION; +#endif info->need_fullpath = true; info->valid_extensions = "gb|gbc"; } - void retro_get_system_av_info(struct retro_system_av_info *info) { struct retro_game_geometry geom = { VIDEO_WIDTH, VIDEO_HEIGHT,VIDEO_WIDTH, VIDEO_HEIGHT ,160.0 / 144.0 };