And woohoo, mame_options() is no more.

This commit is contained in:
Aaron Giles 2011-02-12 04:14:00 +00:00
parent 1b54456be5
commit d2fac452a3
7 changed files with 28 additions and 64 deletions

View File

@ -251,10 +251,7 @@ static int execute_simple_commands(core_options *options, const char *exename)
/* validate? */
if (options_get_bool(options, CLIOPTION_VALIDATE))
{
set_mame_options(options);
return mame_validitychecks(*options, NULL);
}
return -1;
}

View File

@ -303,7 +303,7 @@ static DEVICE_IMAGE_LOAD( cartslot )
return (*config->device_load)(image);
/* try opening this as if it were a multicart */
multicart_open(image.filename(), device->machine->gamedrv->name, MULTICART_FLAGS_LOAD_RESOURCES, &cart->mc);
multicart_open(device->machine->options(), image.filename(), device->machine->gamedrv->name, MULTICART_FLAGS_LOAD_RESOURCES, &cart->mc);
if (cart->mc == NULL)
{
@ -337,7 +337,7 @@ static DEVICE_IMAGE_UNLOAD( cartslot )
if (cart->mc != NULL)
{
multicart_close(cart->mc);
multicart_close(device->machine->options(), cart->mc);
cart->mc = NULL;
}
@ -360,12 +360,12 @@ static const cartslot_pcb_type *identify_pcb(device_image_interface &image)
if (image.software_entry() == NULL && image.exists())
{
/* try opening this as if it were a multicart */
multicart_open_error me = multicart_open(image.filename(), image.device().machine->gamedrv->name, MULTICART_FLAGS_DONT_LOAD_RESOURCES, &mc);
multicart_open_error me = multicart_open(image.device().machine->options(), image.filename(), image.device().machine->gamedrv->name, MULTICART_FLAGS_DONT_LOAD_RESOURCES, &mc);
if (me == MCERR_NONE)
{
/* this was a multicart - read from it */
astring_cpyc(&pcb_name, mc->pcb_type);
multicart_close(mc);
multicart_close(image.device().machine->options(), mc);
}
else
{

View File

@ -6,12 +6,12 @@
*********************************************************************/
#include "emu.h"
#include "multcart.h"
#include "pool.h"
#include "unzip.h"
#include "corestr.h"
#include "xmlfile.h"
#include "emu.h"
#include "hash.h"
#include "machine/ram.h"
@ -212,7 +212,7 @@ static multicart_open_error load_rom_resource(multicart_load_state *state, xml_d
load_ram_resource
-------------------------------------------------*/
static multicart_open_error load_ram_resource(multicart_load_state *state, xml_data_node *resource_node,
static multicart_open_error load_ram_resource(core_options &options, multicart_load_state *state, xml_data_node *resource_node,
multicart_resource *resource)
{
const char *length_string;
@ -258,7 +258,7 @@ static multicart_open_error load_ram_resource(multicart_load_state *state, xml_d
if (resource->filename == NULL)
return MCERR_OUT_OF_MEMORY;
image_battery_load_by_name(*mame_options(), resource->filename, resource->ptr, resource->length, 0x00);
image_battery_load_by_name(options, resource->filename, resource->ptr, resource->length, 0x00);
}
/* else this type is volatile, in which case we just have
a memory expansion */
@ -271,7 +271,7 @@ static multicart_open_error load_ram_resource(multicart_load_state *state, xml_d
load_resource
-------------------------------------------------*/
static multicart_open_error load_resource(multicart_load_state *state, xml_data_node *resource_node,
static multicart_open_error load_resource(core_options &options, multicart_load_state *state, xml_data_node *resource_node,
multicart_resource_type resource_type)
{
const char *id;
@ -305,7 +305,7 @@ static multicart_open_error load_resource(multicart_load_state *state, xml_data_
break;
case MULTICART_RESOURCE_TYPE_RAM:
err = load_ram_resource(state, resource_node, resource);
err = load_ram_resource(options, state, resource_node, resource);
if (err != MCERR_NONE)
return err;
break;
@ -327,7 +327,7 @@ static multicart_open_error load_resource(multicart_load_state *state, xml_data_
load_all_resources
-------------------------------------------------*/
static multicart_open_error load_all_resources(multicart_load_state *state)
static multicart_open_error load_all_resources(core_options &options, multicart_load_state *state)
{
multicart_open_error err;
xml_data_node *resource_node;
@ -338,7 +338,7 @@ static multicart_open_error load_all_resources(multicart_load_state *state)
resource_type = get_resource_type(resource_node->name);
if (resource_type != MULTICART_RESOURCE_TYPE_INVALID)
{
err = load_resource(state, resource_node, resource_type);
err = load_resource(options, state, resource_node, resource_type);
if (err != MCERR_NONE)
return err;
}
@ -354,7 +354,7 @@ static multicart_open_error load_all_resources(multicart_load_state *state)
be freed on multicart_close.
-------------------------------------------------*/
static multicart_open_error save_ram_resources(multicart_t *cart)
static multicart_open_error save_ram_resources(core_options &options, multicart_t *cart)
{
const multicart_resource *resource;
@ -362,7 +362,7 @@ static multicart_open_error save_ram_resources(multicart_t *cart)
{
if ((resource->type == MULTICART_RESOURCE_TYPE_RAM) && (resource->filename != NULL))
{
image_battery_save_by_name(*mame_options(), resource->filename, resource->ptr, resource->length);
image_battery_save_by_name(options, resource->filename, resource->ptr, resource->length);
}
}
return MCERR_NONE;
@ -460,7 +460,7 @@ static multicart_open_error load_all_sockets(multicart_load_state *state)
multicart_open - opens a multicart
-------------------------------------------------*/
multicart_open_error multicart_open(const char *filename, const char *gamedrv, multicart_load_flags load_flags, multicart_t **cart)
multicart_open_error multicart_open(core_options &options, const char *filename, const char *gamedrv, multicart_load_flags load_flags, multicart_t **cart)
{
multicart_open_error err;
zip_error ziperr;
@ -565,7 +565,7 @@ multicart_open_error multicart_open(const char *filename, const char *gamedrv, m
/* do we have to load resources? */
if (load_flags & MULTICART_FLAGS_LOAD_RESOURCES)
{
err = load_all_resources(&state);
err = load_all_resources(options, &state);
if (err != MCERR_NONE)
goto done;
@ -588,7 +588,7 @@ done:
if ((err != MCERR_NONE) && (state.multicart != NULL))
{
multicart_close(state.multicart);
multicart_close(options, state.multicart);
state.multicart = NULL;
}
*cart = state.multicart;
@ -600,8 +600,8 @@ done:
multicart_close - closes a multicart
-------------------------------------------------*/
void multicart_close(multicart_t *cart)
void multicart_close(core_options &options, multicart_t *cart)
{
save_ram_resources(cart);
save_ram_resources(options, cart);
pool_free_lib(cart->data->pool);
}

View File

@ -92,9 +92,9 @@ const char *multicart_error_text(multicart_open_error error);
***************************************************************************/
/* opens a multicart */
multicart_open_error multicart_open(const char *filename, const char *drvname, multicart_load_flags load_flags, multicart_t **cart);
multicart_open_error multicart_open(core_options &options, const char *filename, const char *drvname, multicart_load_flags load_flags, multicart_t **cart);
/* closes a multicart */
void multicart_close(multicart_t *cart);
void multicart_close(core_options &options, multicart_t *cart);
#endif /* __MULTCART_H__ */

View File

@ -96,12 +96,11 @@
GLOBAL VARIABLES
***************************************************************************/
/* the current options */
static core_options *mame_opts;
/* started empty? */
static bool started_empty;
static bool print_verbose = false;
static running_machine *global_machine;
/* output channels */
@ -153,14 +152,15 @@ int mame_execute(osd_interface &osd, core_options *options)
bool firstgame = true;
bool firstrun = true;
// extract the verbose printing option
if (options_get_bool(options, OPTION_VERBOSE))
print_verbose = true;
// loop across multiple hard resets
bool exit_pending = false;
int error = MAMERR_NONE;
while (error == MAMERR_NONE && !exit_pending)
{
// specify the global mame_options
mame_opts = options;
// convert the specified gamename to a driver
astring gamename;
core_filename_extract_base(&gamename, options_get_string(options, OPTION_GAMENAME), true);
@ -217,9 +217,6 @@ int mame_execute(osd_interface &osd, core_options *options)
// clear flag for added devices
options_set_bool(options, OPTION_ADDED_DEVICE_OPTIONS, FALSE, OPTION_PRIORITY_CMDLINE);
}
// reset the options
mame_opts = NULL;
}
// return an error
@ -227,30 +224,6 @@ int mame_execute(osd_interface &osd, core_options *options)
}
/*-------------------------------------------------
mame_options - accesses the options for the
currently running emulation
-------------------------------------------------*/
core_options *mame_options(void)
{
assert(mame_opts != NULL);
return mame_opts;
}
/*-------------------------------------------------
set_mame_options - set mame options, used by
validate option
-------------------------------------------------*/
void set_mame_options(core_options *options)
{
mame_opts = options;
}
/***************************************************************************
OUTPUT MANAGEMENT
***************************************************************************/
@ -377,7 +350,7 @@ void mame_printf_verbose(const char *format, ...)
va_list argptr;
/* if we're not verbose, skip it */
if (mame_opts == NULL || !options_get_bool(mame_options(), OPTION_VERBOSE))
if (!print_verbose)
return;
/* by default, we go to stdout */

View File

@ -98,12 +98,6 @@ extern const char build_version[];
/* execute as configured by the OPTION_GAMENAME option on the specified options */
int mame_execute(osd_interface &osd, core_options *options);
/* accesses the core_options for the currently running emulation */
core_options *mame_options(void);
/* set mame options, used by validate option */
void set_mame_options(core_options *options);
/* return true if the given machine is valid */
int mame_is_valid_machine(running_machine *machine);

View File

@ -487,7 +487,7 @@ void main()
void Load(char *name,byte *buffer,int from, int length)
{
/*
emu_file file(*mame_options(), NULL, OPEN_FLAG_READ);
emu_file file(options, NULL, OPEN_FLAG_READ);
file_error filerr = file.open(name);
if (filerr != FILERR_NONE)
return;