summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/devices/imagedev/bitbngr.cpp30
-rw-r--r--src/devices/imagedev/bitbngr.h2
-rw-r--r--src/emu/debug/debugcmd.cpp10
-rw-r--r--src/emu/diimage.cpp18
-rw-r--r--src/emu/romload.cpp10
5 files changed, 35 insertions, 35 deletions
diff --git a/src/devices/imagedev/bitbngr.cpp b/src/devices/imagedev/bitbngr.cpp
index 86c92c88ceb..dc31c4ccb83 100644
--- a/src/devices/imagedev/bitbngr.cpp
+++ b/src/devices/imagedev/bitbngr.cpp
@@ -28,8 +28,6 @@ DEFINE_DEVICE_TYPE(BITBANGER, bitbanger_device, "bitbanger", "Bitbanger")
bitbanger_device::bitbanger_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, BITBANGER, tag, owner, clock),
device_image_interface(mconfig, *this),
- m_next(nullptr),
- m_end(nullptr),
m_interface(nullptr),
m_is_readonly(false)
{
@@ -54,21 +52,10 @@ void bitbanger_device::output(uint8_t data)
uint32_t bitbanger_device::input(void *buffer, uint32_t length)
{
- if (loaded_through_softlist())
- {
- size_t const result = std::min<size_t>(length, m_end - m_next);
- memcpy(buffer, m_next, result);
- m_next += result;
- return uint32_t(result);
- }
- else if (exists())
- {
+ if (exists())
return fread(buffer, length);
- }
else
- {
return 0;
- }
}
@@ -89,7 +76,7 @@ void bitbanger_device::device_start()
const software_list_loader &bitbanger_device::get_software_list_loader() const
{
- return rom_software_list_loader::instance();
+ return image_software_list_loader::instance();
}
@@ -100,16 +87,7 @@ const software_list_loader &bitbanger_device::get_software_list_loader() const
image_init_result bitbanger_device::call_load()
{
- if (loaded_through_softlist())
- {
- auto const length = get_software_region_length("input");
- m_next = get_software_region("input");
- m_end = m_next + length;
- }
- else
- {
- m_next = m_end = nullptr;
- }
+ // we don't need to do anything special
return image_init_result::PASS;
}
@@ -125,5 +103,5 @@ image_init_result bitbanger_device::call_create(int format_type, util::option_re
void bitbanger_device::call_unload()
{
- m_next = m_end = nullptr;
+ // we don't need to do anything special
}
diff --git a/src/devices/imagedev/bitbngr.h b/src/devices/imagedev/bitbngr.h
index 7ffcfd45a2b..5b02417cfc3 100644
--- a/src/devices/imagedev/bitbngr.h
+++ b/src/devices/imagedev/bitbngr.h
@@ -46,8 +46,6 @@ protected:
virtual software_list_loader const &get_software_list_loader() const override;
private:
- uint8_t const *m_next;
- uint8_t const *m_end;
char const *m_interface;
bool m_is_readonly;
};
diff --git a/src/emu/debug/debugcmd.cpp b/src/emu/debug/debugcmd.cpp
index 2915ef342db..bb93f050c95 100644
--- a/src/emu/debug/debugcmd.cpp
+++ b/src/emu/debug/debugcmd.cpp
@@ -1052,7 +1052,7 @@ bool debugger_commands::mini_printf(std::ostream &stream, std::string_view forma
m_console.printf("Not enough parameters for format!\n");
return false;
}
- util::stream_format(stream, "%c", char(*param));
+ stream << char(*param);
param++;
params--;
break;
@@ -1115,7 +1115,7 @@ void debugger_commands::execute_printf(const std::vector<std::string> &params)
/* then do a printf */
std::ostringstream buffer;
if (mini_printf(buffer, params[0], params.size() - 1, &values[1]))
- m_console.printf("%s\n", buffer.str());
+ m_console.printf("%s\n", std::move(buffer).str());
}
@@ -1134,7 +1134,7 @@ void debugger_commands::execute_logerror(const std::vector<std::string> &params)
/* then do a printf */
std::ostringstream buffer;
if (mini_printf(buffer, params[0], params.size() - 1, &values[1]))
- m_machine.logerror("%s", buffer.str());
+ m_machine.logerror("%s", std::move(buffer).str());
}
@@ -1153,7 +1153,7 @@ void debugger_commands::execute_tracelog(const std::vector<std::string> &params)
/* then do a printf */
std::ostringstream buffer;
if (mini_printf(buffer, params[0], params.size() - 1, &values[1]))
- m_console.get_visible_cpu()->debug()->trace_printf("%s", buffer.str().c_str());
+ m_console.get_visible_cpu()->debug()->trace_printf("%s", std::move(buffer).str().c_str());
}
@@ -1189,7 +1189,7 @@ void debugger_commands::execute_tracesym(const std::vector<std::string> &params)
// then do a printf
std::ostringstream buffer;
if (mini_printf(buffer, format.str(), params.size(), values))
- m_console.get_visible_cpu()->debug()->trace_printf("%s", buffer.str().c_str());
+ m_console.get_visible_cpu()->debug()->trace_printf("%s", std::move(buffer).str().c_str());
}
diff --git a/src/emu/diimage.cpp b/src/emu/diimage.cpp
index 6f01f8f26b5..2d192836ddd 100644
--- a/src/emu/diimage.cpp
+++ b/src/emu/diimage.cpp
@@ -26,6 +26,7 @@
#include <cctype>
#include <cstring>
#include <regex>
+#include <sstream>
//**************************************************************************
@@ -683,7 +684,24 @@ bool device_image_interface::load_software(software_list_device &swlist, std::st
else
filerr = m_mame_file->open(romp->name());
if (filerr)
+ {
m_mame_file.reset();
+ std::ostringstream msg;
+ util::stream_format(msg,
+ "%s: error opening image file %s: %s (%s:%d)",
+ device().tag(), romp->name(),
+ filerr.message(),
+ filerr.category().name(),
+ filerr.value());
+ if (!searchpath.empty())
+ {
+ msg << " (tried in";
+ for (auto const &path : searchpath)
+ msg << ' ' << path;
+ msg << ')';
+ }
+ osd_printf_error("%s\n", std::move(msg).str());
+ }
warningcount += verify_length_and_hash(m_mame_file.get(), romp->name(), romp->get_length(), util::hash_collection(romp->hashdata()));
diff --git a/src/emu/romload.cpp b/src/emu/romload.cpp
index f408f865004..4ce34832c78 100644
--- a/src/emu/romload.cpp
+++ b/src/emu/romload.cpp
@@ -1072,7 +1072,13 @@ void rom_load_manager::process_disk_entries(std::initializer_list<std::reference
err = do_open_disk(machine().options(), searchpath, romp, chd->orig_chd(), next_parent);
if (err)
{
- handle_missing_file(romp, std::vector<std::string>(), err);
+ std::vector<std::string> tried;
+ for (auto const &paths : searchpath)
+ {
+ for (std::string const &path : paths.get())
+ tried.emplace_back(path);
+ }
+ handle_missing_file(romp, tried, err);
chd = nullptr;
continue;
}
@@ -1222,7 +1228,7 @@ void rom_load_manager::load_software_part_region(device_t &device, software_list
const software_info *const swinfo = swlist.find(std::string(swname));
if (swinfo)
{
- // dispay a warning for unsupported software
+ // display a warning for unsupported software
// TODO: list supported clones like we do for machines?
if (swinfo->supported() == software_support::PARTIALLY_SUPPORTED)
{