# HG changeset patch # User Mike Pavone # Date 1554061048 25200 # Node ID 243f3a7247f978ee65f351542ae1438f715d884d # Parent 03895a4585c3f305cc09c3787897adb40e89201a Include ROM DB in library binary for libretro target diff -r 03895a4585c3 -r 243f3a7247f9 Makefile --- a/Makefile Sun Mar 31 12:07:20 2019 -0700 +++ b/Makefile Sun Mar 31 12:37:28 2019 -0700 @@ -1,3 +1,6 @@ +#disable built-in rules +.SUFFIXES : + ifndef OS OS:=$(shell uname -s) endif @@ -203,7 +206,7 @@ LIBOBJS=libblastem.o system.o genesis.o debug.o gdb_remote.o vdp.o io.o romdb.o hash.o menu.o xband.o realtec.o \ i2c.o nor.o sega_mapper.o multi_game.o megawifi.o $(NET) serialize.o $(TERMINAL) $(CONFIGOBJS) gst.o \ - $(M68KOBJS) $(TRANSOBJS) $(AUDIOOBJS) saves.o jcart.o + $(M68KOBJS) $(TRANSOBJS) $(AUDIOOBJS) saves.o jcart.o rom.db.o ifdef NONUKLEAR CFLAGS+= -DDISABLE_NUKLEAR @@ -325,6 +328,9 @@ %.c : %.cpu cpu_dsl.py ./cpu_dsl.py -d goto $< > $@ +%.db.c : %.db + sed $< -e 's/"/\\"/g' -e 's/^\(.*\)$$/"\1\\n"/' -e'1s/^\(.*\)$$/const char $(shell echo $< | tr '.' '_')_data[] = \1/' -e '$$s/^\(.*\)$$/\1;/' > $@ + %.o : %.S $(CC) -c -o $@ $< diff -r 03895a4585c3 -r 243f3a7247f9 libblastem.c --- a/libblastem.c Sun Mar 31 12:07:20 2019 -0700 +++ b/libblastem.c Sun Mar 31 12:37:28 2019 -0700 @@ -397,3 +397,15 @@ void bindings_set_mouse_mode(uint8_t mode) { } + +extern const char rom_db_data[]; +char *read_bundled_file(char *name, uint32_t *sizeret) +{ + if (!strcmp(name, "rom.db")) { + *sizeret = strlen(rom_db_data); + char *ret = malloc(*sizeret+1); + memcpy(ret, rom_db_data, *sizeret + 1); + return ret; + } + return NULL; +} diff -r 03895a4585c3 -r 243f3a7247f9 util.c --- a/util.c Sun Mar 31 12:07:20 2019 -0700 +++ b/util.c Sun Mar 31 12:37:28 2019 -0700 @@ -857,6 +857,7 @@ #ifdef __ANDROID__ #include +#ifndef IS_LIB char *read_bundled_file(char *name, uint32_t *sizeret) { SDL_RWops *rw = SDL_RWFromFile(name, "rb"); @@ -884,6 +885,7 @@ SDL_RWclose(rw); return ret; } +#endif char const *get_config_dir() { @@ -897,6 +899,7 @@ #else +#ifndef IS_LIB char *read_bundled_file(char *name, uint32_t *sizeret) { #ifdef DATA_PATH @@ -940,7 +943,7 @@ fclose(f); return ret; } - +#endif #ifdef _WIN32 char const *get_userdata_dir()