summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2017-02-24 09:34:15 +1100
committer Vas Crabb <vas@vastheman.com>2017-02-24 09:34:15 +1100
commit759933ded7422e58b69e0f50841311067a156557 (patch)
tree2a779c0da74c2d661df7349100a369e403a29d94
parent41c23502668b45d1d62b3f46e99731bd6e5e41a0 (diff)
parentba6fa16daf040b62f7d23ed4b0cc573bf274f306 (diff)
Fixed an issue where device options (e.g. -cart) were reported as unknown when they actually worked (#2081)
Conflicts: src/frontend/mame/clifront.cpp
-rw-r--r--src/frontend/mame/clifront.cpp50
-rw-r--r--src/lib/util/options.cpp4
-rw-r--r--src/mame/drivers/naomi.cpp7
3 files changed, 32 insertions, 29 deletions
diff --git a/src/frontend/mame/clifront.cpp b/src/frontend/mame/clifront.cpp
index 051fa3f7a92..7904c106353 100644
--- a/src/frontend/mame/clifront.cpp
+++ b/src/frontend/mame/clifront.cpp
@@ -214,29 +214,37 @@ void cli_frontend::start_execution(mame_machine_manager *manager, std::vector<st
// if we have a command, execute that
if (*(m_options.command()) != 0)
+ {
execute_commands(exename.c_str());
+ return;
+ }
// otherwise, check for a valid system
- else
- {
- // We need to preprocess the config files once to determine the web server's configuration
- // and file locations
- if (m_options.read_config())
- {
- m_options.revert(OPTION_PRIORITY_INI);
- mame_options::parse_standard_inis(m_options, option_errors);
- }
- if (!option_errors.empty())
- osd_printf_error("Error in command line:\n%s\n", strtrimspace(option_errors).c_str());
+ load_translation(m_options);
- // if we can't find it, give an appropriate error
- const game_driver *system = mame_options::system(m_options);
- if (system == nullptr && *(m_options.system_name()) != 0)
- throw emu_fatalerror(EMU_ERR_NO_SUCH_GAME, "Unknown system '%s'", m_options.system_name());
+ manager->start_http_server();
+
+ manager->start_luaengine();
+
+ manager->start_context();
- // otherwise just run the game
- m_result = manager->execute();
+ // We need to preprocess the config files once to determine the web server's configuration
+ // and file locations
+ if (m_options.read_config())
+ {
+ m_options.revert(OPTION_PRIORITY_INI);
+ mame_options::parse_standard_inis(m_options, option_errors);
}
+ if (!option_errors.empty())
+ osd_printf_error("Error in command line:\n%s\n", strtrimspace(option_errors).c_str());
+
+ // if we can't find it, give an appropriate error
+ const game_driver *system = mame_options::system(m_options);
+ if (system == nullptr && *(m_options.system_name()) != 0)
+ throw emu_fatalerror(EMU_ERR_NO_SUCH_GAME, "Unknown system '%s'", m_options.system_name());
+
+ // otherwise just run the game
+ m_result = manager->execute();
}
//-------------------------------------------------
@@ -255,14 +263,6 @@ int cli_frontend::execute(std::vector<std::string> &args)
std::string option_errors;
mame_options::parse_standard_inis(m_options, option_errors);
- load_translation(m_options);
-
- manager->start_http_server();
-
- manager->start_luaengine();
-
- manager->start_context();
-
start_execution(manager, args, option_errors);
}
// handle exceptions of various types
diff --git a/src/lib/util/options.cpp b/src/lib/util/options.cpp
index 9cd9af1814c..a7d59dee105 100644
--- a/src/lib/util/options.cpp
+++ b/src/lib/util/options.cpp
@@ -517,8 +517,8 @@ std::string core_options::pluck_from_command_line(std::vector<std::string> &args
result = std::move(args[i + 1]);
// remove this arguments from the list
- auto const pos = std::advance(args.begin(), i);
- args.erase(pos, std::advance(pos, 2));
+ auto const pos = std::next(args.begin(), i);
+ args.erase(pos, std::next(pos, 2));
break;
}
}
diff --git a/src/mame/drivers/naomi.cpp b/src/mame/drivers/naomi.cpp
index b1a06172729..f73b07088db 100644
--- a/src/mame/drivers/naomi.cpp
+++ b/src/mame/drivers/naomi.cpp
@@ -390,7 +390,7 @@ Derby Owners Club (Japan) (Rev B) 840-0016C 22099B 14 (64Mb)
Derby Owners Club 2000 Ver.2 (Japan) (Rev A) 840-0052C 22284A 16 (64Mb) present 315-6213 not present
Dynamite Baseball '99 (Japan) (Rev B) 840-0019C 22141B 19 (64Mb) ? 315-6213 317-0269-JPN requires special panel (joystick + 2 buttons + bat controller for each player)
Dynamite Baseball NAOMI (Japan) 840-0001C 21575 21 (64Mb) ? 315-6213 317-0246-JPN requires special panel (joystick + 2 buttons + bat controller for each player)
-Ferrari F355 Challenge (deluxe, no link) 834-13842 21902 21 (64Mb) present 315-6213 317-0254-COM BIOS 21863 (USA), 21864 (EXP), also known to exists Japanese BIOS, not dumped
+Ferrari F355 Challenge (deluxe, no link) 834-13842 21902 21 (64Mb) present 315-6213 317-0254-COM BIOS 21862 (JAP), 21863 (USA), 21864 (EXP)
Ferrari F355 Challenge (twin/deluxe) 834-13950 22848 21 (64Mb) present 315-6213 317-0267-COM BIOS 22849 (JAP), 22850 (USA), 22851 (EXP)
Ferrari F355 Challenge 2 (twin/deluxe) 840-0042C 23399 21 (64Mb) present 315-6213 317-0287-COM BIOS 22849 (JAP), 22850 (USA), 22851 (EXP)
Giant Gram: All Japan Pro Wrestling 2 840-0007C 21820 9 (64Mb) ? 315-6213 317-0253-JPN joystick + 3 buttons
@@ -2908,6 +2908,7 @@ EPR-21330 & EPR-21331 differ by 7 bytes:
Ferrari F355 specific Naomi BIOS roms:
+EPR-21862 - NAOMI BOOT ROM 1999 07/02 1.34 (Japan)
EPR-21863 - NAOMI BOOT ROM 1999 07/02 1.34 (USA)
EPR-21864 - NAOMI BOOT ROM 1999 07/02 1.34 (Export)
EPR-22849 - NAOMI BOOT ROM 1999 08/30 1.35 (Japan)
@@ -3049,7 +3050,9 @@ Probably at some stage of development NAOMI was planned as non-JVS system as wel
ROM_SYSTEM_BIOS( 0, "bios0", "Ferrari F355 Deluxe (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 0, "epr-21864.ic27", 0x000000, 0x200000, CRC(12ed7c66) SHA1(046be66e92eae766f3e05594aa837fc8888534ed) ) \
ROM_SYSTEM_BIOS( 1, "bios1", "Ferrari F355 Deluxe (USA)" ) \
- ROM_LOAD16_WORD_SWAP_BIOS( 1, "epr-21863.ic27", 0x000000, 0x200000, CRC(0615a4d1) SHA1(2c6986580b84278af75f396229fdd587bebc1768) )
+ ROM_LOAD16_WORD_SWAP_BIOS( 1, "epr-21863.ic27", 0x000000, 0x200000, CRC(0615a4d1) SHA1(2c6986580b84278af75f396229fdd587bebc1768) ) \
+ ROM_SYSTEM_BIOS( 2, "bios2", "Ferrari F355 Deluxe (Japan)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 2, "epr-21862.ic27", 0x000000, 0x200000, CRC(1f630716) SHA1(8d157809770467c3e7618c6299f3b96b5f10518c) )
#define F355_BIOS \
ROM_REGION( 0x200000, "maincpu", 0) \