diff options
Diffstat (limited to 'src/emu/mconfig.c')
-rw-r--r-- | src/emu/mconfig.c | 82 |
1 files changed, 41 insertions, 41 deletions
diff --git a/src/emu/mconfig.c b/src/emu/mconfig.c index 3461f714837..ec88aced202 100644 --- a/src/emu/mconfig.c +++ b/src/emu/mconfig.c @@ -35,13 +35,13 @@ static void machine_config_detokenize(machine_config *config, const machine_conf machine_config *machine_config_alloc(const machine_config_token *tokens) { machine_config *config; - + /* allocate a new configuration object */ config = malloc_or_die(sizeof(*config)); if (config == NULL) return NULL; memset(config, 0, sizeof(*config)); - + /* parse tokens into the config */ machine_config_detokenize(config, tokens); return config; @@ -203,7 +203,7 @@ static void machine_config_detokenize(machine_config *config, const machine_conf device_config *device = NULL; cpu_config *cpu = NULL; sound_config *sound = NULL; - + /* loop over tokens until we hit the end */ while (entrytype != MCONFIG_TOKEN_END) { @@ -212,7 +212,7 @@ static void machine_config_detokenize(machine_config *config, const machine_conf int size, offset, type, bits; UINT32 data32, clock, gain; UINT64 data64; - + /* unpack the token from the first entry */ TOKEN_GET_UINT32_UNPACK1(tokens, entrytype, 8); switch (entrytype) @@ -220,19 +220,19 @@ static void machine_config_detokenize(machine_config *config, const machine_conf /* end */ case MCONFIG_TOKEN_END: break; - + /* including */ case MCONFIG_TOKEN_INCLUDE: machine_config_detokenize(config, TOKEN_GET_PTR(tokens, tokenptr)); break; - + /* device management */ case MCONFIG_TOKEN_DEVICE_ADD: devtype = TOKEN_GET_PTR(tokens, devtype); tag = TOKEN_GET_STRING(tokens); device = device_list_add(&config->devicelist, devtype, tag); break; - + case MCONFIG_TOKEN_DEVICE_REMOVE: devtype = TOKEN_GET_PTR(tokens, devtype); tag = TOKEN_GET_STRING(tokens); @@ -247,12 +247,12 @@ static void machine_config_detokenize(machine_config *config, const machine_conf if (device == NULL) fatalerror("Unable to find device: type=%s tag=%s\n", devtype_name(devtype), tag); break; - + case MCONFIG_TOKEN_DEVICE_CONFIG: assert(device != NULL); device->static_config = TOKEN_GET_PTR(tokens, voidptr); break; - + case MCONFIG_TOKEN_DEVICE_CONFIG_DATA32: assert(device != NULL); TOKEN_UNGET_UINT32(tokens); @@ -265,7 +265,7 @@ static void machine_config_detokenize(machine_config *config, const machine_conf case 4: *(UINT32 *)((UINT8 *)device->inline_config + offset) = data32; break; } break; - + case MCONFIG_TOKEN_DEVICE_CONFIG_DATA64: assert(device != NULL); TOKEN_UNGET_UINT32(tokens); @@ -303,7 +303,7 @@ static void machine_config_detokenize(machine_config *config, const machine_conf case 8: *(double *)((UINT8 *)device->inline_config + offset) = (double)(INT64)data64 / (double)((UINT64)1 << bits); break; } break; - + /* add/modify/remove/replace CPUs */ case MCONFIG_TOKEN_CPU_ADD: @@ -312,7 +312,7 @@ static void machine_config_detokenize(machine_config *config, const machine_conf tag = TOKEN_GET_STRING(tokens); cpu = machine_config_add_cpu(config, tag, type, clock); break; - + case MCONFIG_TOKEN_CPU_MODIFY: tag = TOKEN_GET_STRING(tokens); cpu = machine_config_find_cpu(config, tag); @@ -341,37 +341,37 @@ static void machine_config_detokenize(machine_config *config, const machine_conf TOKEN_UNGET_UINT32(tokens); TOKEN_GET_UINT32_UNPACK2(tokens, entrytype, 8, cpu->flags, 24); break; - + case MCONFIG_TOKEN_CPU_CONFIG: assert(cpu != NULL); cpu->reset_param = TOKEN_GET_PTR(tokens, voidptr); break; - + case MCONFIG_TOKEN_CPU_PROGRAM_MAP: assert(cpu != NULL); cpu->construct_map[ADDRESS_SPACE_PROGRAM][0] = (construct_map_t)TOKEN_GET_PTR(tokens, voidptr); cpu->construct_map[ADDRESS_SPACE_PROGRAM][1] = (construct_map_t)TOKEN_GET_PTR(tokens, voidptr); break; - + case MCONFIG_TOKEN_CPU_DATA_MAP: assert(cpu != NULL); cpu->construct_map[ADDRESS_SPACE_DATA][0] = (construct_map_t)TOKEN_GET_PTR(tokens, voidptr); cpu->construct_map[ADDRESS_SPACE_DATA][1] = (construct_map_t)TOKEN_GET_PTR(tokens, voidptr); break; - + case MCONFIG_TOKEN_CPU_IO_MAP: assert(cpu != NULL); cpu->construct_map[ADDRESS_SPACE_IO][0] = (construct_map_t)TOKEN_GET_PTR(tokens, voidptr); cpu->construct_map[ADDRESS_SPACE_IO][1] = (construct_map_t)TOKEN_GET_PTR(tokens, voidptr); break; - + case MCONFIG_TOKEN_CPU_VBLANK_INT: assert(cpu != NULL); TOKEN_UNGET_UINT32(tokens); TOKEN_GET_UINT32_UNPACK2(tokens, entrytype, 8, cpu->vblank_interrupts_per_frame, 24); cpu->vblank_interrupt = TOKEN_GET_PTR(tokens, interrupt); break; - + case MCONFIG_TOKEN_CPU_PERIODIC_INT: assert(cpu != NULL); TOKEN_UNGET_UINT32(tokens); @@ -379,94 +379,94 @@ static void machine_config_detokenize(machine_config *config, const machine_conf cpu->timed_interrupt_period = HZ_TO_ATTOSECONDS(data32); cpu->timed_interrupt = TOKEN_GET_PTR(tokens, interrupt); break; - + /* core parameters */ case MCONFIG_TOKEN_DRIVER_DATA: TOKEN_UNGET_UINT32(tokens); TOKEN_GET_UINT32_UNPACK2(tokens, entrytype, 8, config->driver_data_size, 24); break; - + case MCONFIG_TOKEN_INTERLEAVE: TOKEN_UNGET_UINT32(tokens); TOKEN_GET_UINT32_UNPACK2(tokens, entrytype, 8, config->cpu_slices_per_frame, 24); break; - + case MCONFIG_TOKEN_WATCHDOG_VBLANK: TOKEN_UNGET_UINT32(tokens); TOKEN_GET_UINT32_UNPACK2(tokens, entrytype, 8, config->watchdog_vblank_count, 24); break; - + case MCONFIG_TOKEN_WATCHDOG_TIME: TOKEN_EXTRACT_UINT64(tokens, data64); config->watchdog_time = UINT64_ATTOTIME_TO_ATTOTIME(data64); break; - + /* core functions */ case MCONFIG_TOKEN_MACHINE_START: config->machine_start = TOKEN_GET_PTR(tokens, machine_start); break; - + case MCONFIG_TOKEN_MACHINE_RESET: config->machine_reset = TOKEN_GET_PTR(tokens, machine_reset); break; - + case MCONFIG_TOKEN_NVRAM_HANDLER: config->nvram_handler = TOKEN_GET_PTR(tokens, nvram_handler); break; - + case MCONFIG_TOKEN_MEMCARD_HANDLER: config->memcard_handler = TOKEN_GET_PTR(tokens, memcard_handler); break; - + /* core video parameters */ case MCONFIG_TOKEN_VIDEO_ATTRIBUTES: TOKEN_UNGET_UINT32(tokens); TOKEN_GET_UINT32_UNPACK2(tokens, entrytype, 8, config->video_attributes, 24); break; - + case MCONFIG_TOKEN_GFXDECODE: config->gfxdecodeinfo = TOKEN_GET_PTR(tokens, gfxdecode); break; - + case MCONFIG_TOKEN_PALETTE_LENGTH: TOKEN_UNGET_UINT32(tokens); TOKEN_GET_UINT32_UNPACK2(tokens, entrytype, 8, config->total_colors, 24); break; - + case MCONFIG_TOKEN_DEFAULT_LAYOUT: config->default_layout = TOKEN_GET_STRING(tokens); break; - + /* core video functions */ case MCONFIG_TOKEN_PALETTE_INIT: config->init_palette = TOKEN_GET_PTR(tokens, palette_init); break; - + case MCONFIG_TOKEN_VIDEO_START: config->video_start = TOKEN_GET_PTR(tokens, video_start); break; - + case MCONFIG_TOKEN_VIDEO_RESET: config->video_reset = TOKEN_GET_PTR(tokens, video_reset); break; - + case MCONFIG_TOKEN_VIDEO_EOF: config->video_eof = TOKEN_GET_PTR(tokens, video_eof); break; - + case MCONFIG_TOKEN_VIDEO_UPDATE: config->video_update = TOKEN_GET_PTR(tokens, video_update); break; - + /* core sound functions */ case MCONFIG_TOKEN_SOUND_START: config->sound_start = TOKEN_GET_PTR(tokens, sound_start); break; - + case MCONFIG_TOKEN_SOUND_RESET: config->sound_reset = TOKEN_GET_PTR(tokens, sound_reset); break; - + /* add/remove/replace sounds */ case MCONFIG_TOKEN_SOUND_ADD: TOKEN_UNGET_UINT32(tokens); @@ -478,7 +478,7 @@ static void machine_config_detokenize(machine_config *config, const machine_conf case MCONFIG_TOKEN_SOUND_REMOVE: machine_config_remove_sound(config, TOKEN_GET_STRING(tokens)); break; - + case MCONFIG_TOKEN_SOUND_MODIFY: tag = TOKEN_GET_STRING(tokens); sound = machine_config_find_sound(config, tag); @@ -486,12 +486,12 @@ static void machine_config_detokenize(machine_config *config, const machine_conf fatalerror("Unable to find sound: tag=%s\n", tag); sound->routes = 0; break; - + case MCONFIG_TOKEN_SOUND_CONFIG: assert(sound != NULL); sound->config = TOKEN_GET_PTR(tokens, voidptr); break; - + case MCONFIG_TOKEN_SOUND_REPLACE: TOKEN_UNGET_UINT32(tokens); TOKEN_GET_UINT64_UNPACK3(tokens, entrytype, 8, type, 24, clock, 32); |