diff options
-rw-r--r-- | Makefile | 8 | ||||
-rw-r--r-- | libblastem.c | 12 | ||||
-rw-r--r-- | util.c | 5 |
3 files changed, 23 insertions, 2 deletions
@@ -1,3 +1,6 @@ +#disable built-in rules +.SUFFIXES : + ifndef OS OS:=$(shell uname -s) endif @@ -203,7 +206,7 @@ MAINOBJS=blastem.o system.o genesis.o debug.o gdb_remote.o vdp.o $(RENDEROBJS) i 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 @@ vos_prog_info : vos_prog_info.o vos_program_module.o %.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 --git a/libblastem.c b/libblastem.c index 2135e50..997f3ac 100644 --- a/libblastem.c +++ b/libblastem.c @@ -397,3 +397,15 @@ void render_free_source(audio_source *src) 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; +} @@ -857,6 +857,7 @@ void sort_dir_list(dir_entry *list, size_t num_entries) #ifdef __ANDROID__ #include <SDL.h> +#ifndef IS_LIB char *read_bundled_file(char *name, uint32_t *sizeret) { SDL_RWops *rw = SDL_RWFromFile(name, "rb"); @@ -884,6 +885,7 @@ char *read_bundled_file(char *name, uint32_t *sizeret) SDL_RWclose(rw); return ret; } +#endif char const *get_config_dir() { @@ -897,6 +899,7 @@ char const *get_userdata_dir() #else +#ifndef IS_LIB char *read_bundled_file(char *name, uint32_t *sizeret) { #ifdef DATA_PATH @@ -940,7 +943,7 @@ char *read_bundled_file(char *name, uint32_t *sizeret) fclose(f); return ret; } - +#endif #ifdef _WIN32 char const *get_userdata_dir() |