summaryrefslogtreecommitdiff
path: root/genesis.c
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2017-04-21 23:35:32 -0700
committerMichael Pavone <pavone@retrodev.com>2017-04-21 23:35:32 -0700
commit068d846fe4f627181a319418a17f6d54eb653999 (patch)
tree7be1693433822038fc5ea8950c274ac5a05f08a3 /genesis.c
parente73ff9ec75a85c187c0a46bd4a79bf76282dd871 (diff)
Fix a deficiency in the way types were handled in my ternary tree. Fixes in which some paths that were constructed from a template with variables would sometimes get an extra garbage character thrown in
Diffstat (limited to 'genesis.c')
-rw-r--r--genesis.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/genesis.c b/genesis.c
index 1773f40..8c69117 100644
--- a/genesis.c
+++ b/genesis.c
@@ -822,7 +822,7 @@ static void set_speed_percent(system_header * system, uint32_t percent)
void set_region(genesis_context *gen, rom_info *info, uint8_t region)
{
if (!region) {
- char * def_region = tern_find_path_default(config, "system\0default_region\0", (tern_val){.ptrval = "U"}).ptrval;
+ char * def_region = tern_find_path_default(config, "system\0default_region\0", (tern_val){.ptrval = "U"}, TVAL_PTR).ptrval;
if (!info->regions || (info->regions & translate_region_char(toupper(*def_region)))) {
region = translate_region_char(toupper(*def_region));
} else {
@@ -1001,10 +1001,10 @@ genesis_context *alloc_init_genesis(rom_info *rom, void *main_rom, void *lock_on
init_vdp_context(gen->vdp, gen->version_reg & 0x40);
gen->vdp->system = &gen->header;
gen->frame_end = vdp_cycles_to_frame_end(gen->vdp);
- char * config_cycles = tern_find_path(config, "clocks\0max_cycles\0").ptrval;
+ char * config_cycles = tern_find_path(config, "clocks\0max_cycles\0", TVAL_PTR).ptrval;
gen->max_cycles = config_cycles ? atoi(config_cycles) : DEFAULT_SYNC_INTERVAL;
- char * lowpass_cutoff_str = tern_find_path(config, "audio\0lowpass_cutoff\0").ptrval;
+ char * lowpass_cutoff_str = tern_find_path(config, "audio\0lowpass_cutoff\0", TVAL_PTR).ptrval;
uint32_t lowpass_cutoff = lowpass_cutoff_str ? atoi(lowpass_cutoff_str) : DEFAULT_LOWPASS_CUTOFF;
gen->ym = malloc(sizeof(ym2612_context));
@@ -1032,7 +1032,7 @@ genesis_context *alloc_init_genesis(rom_info *rom, void *main_rom, void *lock_on
gen->cart = main_rom;
gen->lock_on = lock_on;
gen->work_ram = calloc(2, RAM_WORDS);
- if (!strcmp("random", tern_find_path_default(config, "system\0ram_init\0", (tern_val){.ptrval = "zero"}).ptrval))
+ if (!strcmp("random", tern_find_path_default(config, "system\0ram_init\0", (tern_val){.ptrval = "zero"}, TVAL_PTR).ptrval))
{
srand(time(NULL));
for (int i = 0; i < RAM_WORDS; i++)
@@ -1124,7 +1124,7 @@ genesis_context *alloc_config_genesis(void *rom, uint32_t rom_size, void *lock_o
byteswap_rom(lock_on_size, lock_on);
}
#endif
- char *m68k_divider = tern_find_path(config, "clocks\0m68k_divider\0").ptrval;
+ char *m68k_divider = tern_find_path(config, "clocks\0m68k_divider\0", TVAL_PTR).ptrval;
if (!m68k_divider) {
m68k_divider = "7";
}