本文整理汇总了C++中emu_fatalerror函数的典型用法代码示例。如果您正苦于以下问题:C++ emu_fatalerror函数的具体用法?C++ emu_fatalerror怎么用?C++ emu_fatalerror使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了emu_fatalerror函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: config_load_settings
int config_load_settings(running_machine &machine)
{
const char *controller = machine.options().ctrlr();
config_type *type;
int loaded = 0;
/* loop over all registrants and call their init function */
for (type = typelist; type; type = type->next)
type->load(CONFIG_TYPE_INIT, NULL);
/* now load the controller file */
if (controller[0] != 0)
{
/* open the config file */
emu_file file(machine.options().ctrlr_path(), OPEN_FLAG_READ);
file_error filerr = file.open(controller, ".cfg");
if (filerr != FILERR_NONE)
throw emu_fatalerror("Could not load controller file %s.cfg", controller);
/* load the XML */
if (!config_load_xml(machine, file, CONFIG_TYPE_CONTROLLER))
throw emu_fatalerror("Could not load controller file %s.cfg", controller);
}
/* next load the defaults file */
emu_file file(machine.options().cfg_directory(), OPEN_FLAG_READ);
file_error filerr = file.open("default.cfg");
if (filerr == FILERR_NONE)
config_load_xml(machine, file, CONFIG_TYPE_DEFAULT);
/* finally, load the game-specific file */
filerr = file.open(machine.basename(), ".cfg");
if (filerr == FILERR_NONE)
loaded = config_load_xml(machine, file, CONFIG_TYPE_GAME);
/* loop over all registrants and call their final function */
for (type = typelist; type; type = type->next)
type->load(CONFIG_TYPE_FINAL, NULL);
/* if we didn't find a saved config, return 0 so the main core knows that it */
/* is the first time the game is run and it should diplay the disclaimer. */
return loaded;
}
开发者ID:dezi,项目名称:mame-libretro-odroid,代码行数:44,代码来源:config.c
示例2: emu_fatalerror
void mm5837_device::device_reset()
{
// initialize with something
m_shift = 123456;
if (m_vdd < 16)
m_timer->adjust(attotime::zero, 0, attotime::from_hz(m_frequency[m_vdd]));
else
throw emu_fatalerror("%s: Invalid voltage: %d\n", tag(), m_vdd);
}
开发者ID:Robbbert,项目名称:store1,代码行数:10,代码来源:mm5837.cpp
示例3: emu_fatalerror
device_slot_option *device_slot_interface::static_option(device_t &device, const char *name)
{
device_slot_interface &intf = dynamic_cast<device_slot_interface &>(device);
device_slot_option *option = intf.option(name);
if (option == NULL)
throw emu_fatalerror("slot '%s' has no option '%s\n", device.tag(), name);
return option;
}
开发者ID:BrandoCommando,项目名称:mame,代码行数:10,代码来源:dislot.c
示例4: emu_fatalerror
void device_config_sound_interface::static_reset_routes(device_config *device)
{
// find our sound interface
device_config_sound_interface *sound = dynamic_cast<device_config_sound_interface *>(device);
if (sound == NULL)
throw emu_fatalerror("MCFG_SOUND_ROUTES_RESET called on device '%s' with no sound interface", device->tag());
// reset the routine list
sound->m_route_list.reset();
}
开发者ID:bji,项目名称:libmame,代码行数:10,代码来源:disound.c
示例5: emu_fatalerror
void device_slot_interface::static_set_slot_info(device_t &device, const slot_interface *slots_info, const char *default_card, bool fixed)
{
device_slot_interface *slot;
if (!device.interface(slot))
throw emu_fatalerror("set_default_slot_card called on device '%s' with no slot interface", device.tag());
slot->m_slot_interfaces = slots_info;
slot->m_default_card = default_card;
slot->m_fixed = fixed;
}
开发者ID:fesh0r,项目名称:old-mame,代码行数:10,代码来源:dislot.c
示例6: machine
int configuration_manager::load_settings()
{
const char *controller = machine().options().ctrlr();
int loaded = 0;
/* loop over all registrants and call their init function */
for (auto type : m_typelist)
type.load(config_type::INIT, nullptr);
/* now load the controller file */
if (controller[0] != 0)
{
/* open the config file */
emu_file file(machine().options().ctrlr_path(), OPEN_FLAG_READ);
osd_file::error filerr = file.open(controller, ".cfg");
if (filerr != osd_file::error::NONE)
throw emu_fatalerror("Could not load controller file %s.cfg", controller);
/* load the XML */
if (!load_xml(file, config_type::CONTROLLER))
throw emu_fatalerror("Could not load controller file %s.cfg", controller);
}
/* next load the defaults file */
emu_file file(machine().options().cfg_directory(), OPEN_FLAG_READ);
osd_file::error filerr = file.open("default.cfg");
if (filerr == osd_file::error::NONE)
load_xml(file, config_type::DEFAULT);
/* finally, load the game-specific file */
filerr = file.open(machine().basename(), ".cfg");
if (filerr == osd_file::error::NONE)
loaded = load_xml(file, config_type::GAME);
/* loop over all registrants and call their final function */
for (auto type : m_typelist)
type.load(config_type::FINAL, nullptr);
/* if we didn't find a saved config, return 0 so the main core knows that it */
/* is the first time the game is run and it should diplay the disclaimer. */
return loaded;
}
开发者ID:Robbbert,项目名称:store1,代码行数:43,代码来源:config.cpp
示例7: emu_fatalerror
void device_slot_interface::static_option_add(device_t &device, const char *name, const device_type &devtype)
{
device_slot_interface &intf = dynamic_cast<device_slot_interface &>(device);
device_slot_option *option = intf.option(name);
if (option != nullptr)
throw emu_fatalerror("slot '%s' duplicate option '%s'\n", device.tag(), name);
if (intf.m_options.count(name) != 0) throw tag_add_exception(name);
intf.m_options.emplace(std::make_pair(name, std::make_unique<device_slot_option>(name, devtype)));
}
开发者ID:GiuseppeGorgoglione,项目名称:mame,代码行数:10,代码来源:dislot.cpp
示例8: emu_fatalerror
void device_config_sound_interface::static_add_route(device_config *device, UINT32 output, const char *target, double gain, UINT32 input)
{
device_config_sound_interface *sound = dynamic_cast<device_config_sound_interface *>(device);
if (sound == NULL)
throw emu_fatalerror("MCFG_SOUND_ROUTE called on device '%s' with no sound interface", device->tag());
sound_route **routeptr;
for (routeptr = &sound->m_route_list; *routeptr != NULL; routeptr = &(*routeptr)->m_next) ;
*routeptr = global_alloc(sound_route(output, input, gain, target));
}
开发者ID:johkelly,项目名称:MAME_hi,代码行数:10,代码来源:disound.c
示例9: emu_fatalerror
address_space *devcb_resolver::resolve_space(int index, const char *tag, device_t ¤t)
{
// find our target device
device_t *targetdev = current.siblingdevice(tag);
if (targetdev == NULL)
throw emu_fatalerror("Unable to resolve device '%s' (requested by %s '%s')", tag, current.name(), current.tag());
// make sure the target device has a memory interface
device_memory_interface *memory;
if (!targetdev->interface(memory))
throw emu_fatalerror("Device '%s' (requested by %s '%s') has no memory interface", tag, current.name(), current.tag());
// set the real target and function, then prime a delegate
address_space *result = memory->space(index);
if (result == NULL)
throw emu_fatalerror("Unable to find device '%s' space %d (requested by %s '%s')", tag, index, current.name(), current.tag());
return result;
}
开发者ID:broftkd,项目名称:mess-svn,代码行数:19,代码来源:devcb.c
示例10: emu_fatalerror
void device_sound_interface::static_reset_routes(device_t &device)
{
// find our sound interface
device_sound_interface *sound;
if (!device.dev_interface(sound))
throw emu_fatalerror("MCFG_SOUND_ROUTES_RESET called on device '%s' with no sound interface", device.tag());
// reset the routine list
sound->m_route_list.reset();
}
开发者ID:rogerjowett,项目名称:ClientServerMAME,代码行数:10,代码来源:disound.c
示例11: uv_buf_init
void tcp_connection::write(const uint8_t* data, size_t len)
{
if (m_is_closing)
return;
if (len == 0)
return;
uv_buf_t buffer;
int written;
int err;
// First try uv_try_write(). In case it can not directly write all the given
// data then build a uv_req_t and use uv_write().
buffer = uv_buf_init((char*)data, len);
written = uv_try_write((uv_stream_t*)m_uv_handle, &buffer, 1);
// All the data was written. Done.
if (written == (int)len)
{
return;
}
// Cannot write any data at first time. Use uv_write().
else if (written == UV_EAGAIN || written == UV_ENOSYS)
{
// Set written to 0 so pending_len can be properly calculated.
written = 0;
}
// Error. Should not happen.
else if (written < 0)
{
osd_printf_warning("uv_try_write() failed, closing the connection: %s\n", uv_strerror(written));
close();
return;
}
// osd_printf_info("could just write %zu bytes (%zu given) at first time, using uv_write() now", (size_t)written, len);
size_t pending_len = len - written;
// Allocate a special UvWriteData struct pointer.
tcp_uv_write_data* write_data = (tcp_uv_write_data*)std::malloc(sizeof(tcp_uv_write_data) + pending_len);
write_data->connection = this;
std::memcpy(write_data->store, data + written, pending_len);
write_data->req.data = (void*)write_data;
buffer = uv_buf_init((char*)write_data->store, pending_len);
err = uv_write(&write_data->req, (uv_stream_t*)m_uv_handle, &buffer, 1, (uv_write_cb)on_write);
if (err)
throw emu_fatalerror("uv_write() failed: %s", uv_strerror(err));
}
开发者ID:bradhugh,项目名称:mame,代码行数:55,代码来源:tcp_connection.cpp
示例12: m_minimum_quantum
machine_config::machine_config(const game_driver &gamedrv, emu_options &options)
: m_minimum_quantum(attotime::zero),
m_default_layout(nullptr),
m_gamedrv(gamedrv),
m_options(options)
{
// construct the config
(*gamedrv.machine_config)(*this, nullptr, nullptr);
bool is_selected_driver = core_stricmp(gamedrv.name,options.system_name())==0;
// intialize slot devices - make sure that any required devices have been allocated
for (device_slot_interface &slot : slot_interface_iterator(root_device()))
{
device_t &owner = slot.device();
std::string selval;
bool isdefault = (options.priority(owner.tag()+1)==OPTION_PRIORITY_DEFAULT);
if (is_selected_driver && options.exists(owner.tag()+1))
selval = options.main_value(owner.tag()+1);
else if (slot.default_option() != nullptr)
selval.assign(slot.default_option());
if (!selval.empty())
{
const device_slot_option *option = slot.option(selval.c_str());
if (option && (isdefault || option->selectable()))
{
device_t *new_dev = device_add(&owner, option->name(), option->devtype(), option->clock());
const char *default_bios = option->default_bios();
if (default_bios != nullptr)
device_t::static_set_default_bios_tag(*new_dev, default_bios);
machine_config_constructor additions = option->machine_config();
if (additions != nullptr)
(*additions)(const_cast<machine_config &>(*this), new_dev, new_dev);
const input_device_default *input_device_defaults = option->input_device_defaults();
if (input_device_defaults)
device_t::static_set_input_default(*new_dev, input_device_defaults);
}
else
throw emu_fatalerror("Unknown slot option '%s' in slot '%s'", selval.c_str(), owner.tag()+1);
}
}
// when finished, set the game driver
driver_device::static_set_game(*m_root_device, gamedrv);
// then notify all devices that their configuration is complete
for (device_t &device : device_iterator(root_device()))
if (!device.configured())
device.config_complete();
}
开发者ID:goofwear,项目名称:mame,代码行数:55,代码来源:mconfig.cpp
示例13: io_generic_size
bool g64_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
{
UINT64 size = io_generic_size(io);
UINT8 *img = global_alloc_array(UINT8, size);
io_generic_read(io, img, 0, size);
if (img[VERSION]) {
throw emu_fatalerror("g64_format: Unsupported version %u", img[VERSION]);
}
int track_count = img[TRACK_COUNT];
int head = 0;
for (int track = 0; track < track_count; track++)
{
offs_t track_offset = pick_integer_le(img, TRACK_OFFSET + (track * 4), 4);
if (!track_offset)
continue;
if (track_offset > size)
throw emu_fatalerror("g64_format: Track %u offset %06x out of bounds", track, track_offset);
offs_t speed_zone = pick_integer_le(img, SPEED_ZONE + (track * 4), 4);
if (speed_zone > 3)
throw emu_fatalerror("g64_format: Unsupported variable speed zones on track %d", track);
UINT16 track_bytes = pick_integer_le(img, track_offset, 2);
int track_size = track_bytes * 8;
LOG_FORMATS("track %u size %u cell %ld\n", track, track_size, 200000000L/track_size);
generate_track_from_bitstream(track, head, &img[track_offset+2], track_size, image);
}
global_free(img);
image->set_variant(floppy_image::SSSD);
return true;
}
开发者ID:tweakoz,项目名称:vindigo,代码行数:42,代码来源:g64_dsk.c
示例14: emu_fatalerror
nscsi_full_device::control *nscsi_full_device::buf_control_pop()
{
if(buf_control_rpos == buf_control_wpos)
throw emu_fatalerror("%s: buf_control underflow\n", tag());
control *c = buf_control + buf_control_rpos;
buf_control_rpos++;
if(buf_control_rpos == buf_control_wpos)
buf_control_rpos = buf_control_wpos = 0;
return c;
}
开发者ID:clobber,项目名称:UME,代码行数:11,代码来源:nscsi_bus.c
示例15: card_device
void spectrum_expansion_slot_device::device_start()
{
device_t *const card_device(get_card_device());
m_card = dynamic_cast<device_spectrum_expansion_interface *>(card_device);
if (card_device && !m_card)
throw emu_fatalerror("spectrum_expansion_slot_device: card device %s (%s) does not implement device_spectrum_expansion_interface\n", card_device->tag(), card_device->name());
// resolve callbacks
m_irq_handler.resolve_safe();
m_nmi_handler.resolve_safe();
}
开发者ID:f205v,项目名称:mame,代码行数:11,代码来源:exp.cpp
示例16: printf
void sony_ldp1450_device::set_new_player_bcd(UINT8 data)
{
printf("Frame data BCD %02x\n",data);
m_internal_bcd[m_index_state] = data;
m_index_state ++;
if(m_index_state >= FIFO_MAX)
throw emu_fatalerror("FIFO MAX reached");
m_status = LDP_STAT_ACK;
}
开发者ID:bmunger,项目名称:mame,代码行数:11,代码来源:ldp1450.cpp
示例17: assert
device_t *machine_config::device_find(device_t *owner, const char *tag)
{
// find the original device by relative tag (must exist)
assert(owner != nullptr);
device_t *device = owner->subdevice(tag);
if (device == nullptr)
throw emu_fatalerror("Unable to find device '%s'\n", tag);
// return the device
return device;
}
开发者ID:MASHinfo,项目名称:mame,代码行数:11,代码来源:mconfig.cpp
示例18: io_generic_write
bool g64_format::save(io_generic *io, floppy_image *image)
{
UINT8 header[] = { 'G', 'C', 'R', '-', '1', '5', '4', '1', 0x00, 0x54, TRACK_LENGTH & 0xff, TRACK_LENGTH >> 8 };
io_generic_write(io, header, SIGNATURE, sizeof(header));
int head = 0;
int tracks_written = 0;
for (int track = 0; track < 84; track++) {
offs_t tpos = TRACK_OFFSET + track * 4;
offs_t spos = SPEED_ZONE + track * 4;
offs_t dpos = TRACK_DATA + tracks_written * TRACK_LENGTH;
io_generic_write_filler(io, 0x00, tpos, 4);
io_generic_write_filler(io, 0x00, spos, 4);
if (image->get_track_size(track, head) <= 1)
continue;
UINT8 *trackbuf = global_alloc_array(UINT8, TRACK_LENGTH-2);
int track_size;
int speed_zone;
// figure out the cell size and speed zone from the track data
if ((speed_zone = generate_bitstream(track, head, 3, trackbuf, track_size, image)) == -1)
if ((speed_zone = generate_bitstream(track, head, 2, trackbuf, track_size, image)) == -1)
if ((speed_zone = generate_bitstream(track, head, 1, trackbuf, track_size, image)) == -1)
if ((speed_zone = generate_bitstream(track, head, 0, trackbuf, track_size, image)) == -1)
throw emu_fatalerror("g64_format: Cannot determine speed zone for track %u", track);
LOG_FORMATS("track %u size %u cell %u\n", track, track_size, c1541_cell_size[speed_zone]);
UINT8 track_offset[4];
UINT8 speed_offset[4];
UINT8 track_length[2];
place_integer_le(track_offset, 0, 4, dpos);
place_integer_le(speed_offset, 0, 4, speed_zone);
place_integer_le(track_length, 0, 2, track_size/8);
io_generic_write(io, track_offset, tpos, 4);
io_generic_write(io, speed_offset, spos, 4);
io_generic_write_filler(io, 0xff, dpos, TRACK_LENGTH);
io_generic_write(io, track_length, dpos, 2);
io_generic_write(io, trackbuf, dpos + 2, track_size);
tracks_written++;
global_free(trackbuf);
}
return true;
}
开发者ID:tweakoz,项目名称:vindigo,代码行数:54,代码来源:g64_dsk.c
示例19: find_size
bool upd765_format::load(io_generic *io, uint32_t form_factor, floppy_image *image)
{
int type = find_size(io, form_factor);
if(type == -1)
return false;
// format shouldn't exceed image geometry
const format &f = formats[type];
int img_tracks, img_heads;
image->get_maximal_geometry(img_tracks, img_heads);
if (f.track_count > img_tracks || f.head_count > img_heads)
return false;
floppy_image_format_t::desc_e *desc;
int current_size;
int end_gap_index;
switch (f.encoding)
{
case floppy_image::FM:
desc = get_desc_fm(f, current_size, end_gap_index);
break;
case floppy_image::MFM:
default:
desc = get_desc_mfm(f, current_size, end_gap_index);
break;
}
int total_size = 200000000/f.cell_size;
int remaining_size = total_size - current_size;
if(remaining_size < 0)
throw emu_fatalerror("upd765_format: Incorrect track layout, max_size=%d, current_size=%d", total_size, current_size);
// Fixup the end gap
desc[end_gap_index].p2 = remaining_size / 16;
desc[end_gap_index + 1].p2 = remaining_size & 15;
desc[end_gap_index + 1].p1 >>= 16-(remaining_size & 15);
int track_size = compute_track_size(f);
uint8_t sectdata[40*512];
desc_s sectors[40];
for(int track=0; track < f.track_count; track++)
for(int head=0; head < f.head_count; head++) {
build_sector_description(f, sectdata, sectors, track, head);
io_generic_read(io, sectdata, (track*f.head_count + head)*track_size, track_size);
generate_track(desc, track, head, sectors, f.sector_count, total_size, image);
}
image->set_variant(f.variant);
return true;
}
开发者ID:goofwear,项目名称:mame,代码行数:54,代码来源:upd765_dsk.cpp
示例20: assert
device_t *machine_config::device_find(device_t *owner, const char *tag)
{
// find the original device by this name (must exist)
assert(owner != NULL);
device_t *device = owner->subdevice(tag);
assert(device != NULL);
if (device == NULL)
throw emu_fatalerror("Unable to find device '%s'\n", tag);
// return the device
return device;
}
开发者ID:relimited,项目名称:mame,代码行数:12,代码来源:mconfig.c
注:本文中的emu_fatalerror函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论