mirror of
https://github.com/holub/mame
synced 2025-07-02 08:39:21 +03:00
Merge pull request #6748 from vadosnaprimer/rom_entry
luaengine: add rom_entry library
This commit is contained in:
commit
1e70d64d56
@ -1699,6 +1699,7 @@ void lua_engine::initialize()
|
|||||||
* device.spaces[] - device address spaces table (k=name, v=addr_space)
|
* device.spaces[] - device address spaces table (k=name, v=addr_space)
|
||||||
* device.state[] - device state entries table (k=name, v=device_state_entry)
|
* device.state[] - device state entries table (k=name, v=device_state_entry)
|
||||||
* device.items[] - device save state items table (k=name, v=index)
|
* device.items[] - device save state items table (k=name, v=index)
|
||||||
|
* device.roms[] - device rom entry table (k=name, v=rom_entry)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
auto device_type = sol().registry().create_simple_usertype<device_t>("new", sol::no_constructor);
|
auto device_type = sol().registry().create_simple_usertype<device_t>("new", sol::no_constructor);
|
||||||
@ -1754,6 +1755,13 @@ void lua_engine::initialize()
|
|||||||
}
|
}
|
||||||
return table;
|
return table;
|
||||||
}));
|
}));
|
||||||
|
device_type.set("roms", sol::property([this](device_t &dev) {
|
||||||
|
sol::table table = sol().create_table();
|
||||||
|
for(auto rom : dev.rom_region_vector())
|
||||||
|
if(!rom.name().empty())
|
||||||
|
table[rom.name()] = rom;
|
||||||
|
return table;
|
||||||
|
}));
|
||||||
sol().registry().set_usertype("device", device_type);
|
sol().registry().set_usertype("device", device_type);
|
||||||
|
|
||||||
|
|
||||||
@ -2764,6 +2772,26 @@ void lua_engine::initialize()
|
|||||||
sol().registry().set_usertype("dev_space", dev_space_type);
|
sol().registry().set_usertype("dev_space", dev_space_type);
|
||||||
|
|
||||||
|
|
||||||
|
/* rom_entry library
|
||||||
|
*
|
||||||
|
* manager:machine().devices[device_tag].roms[rom]
|
||||||
|
*
|
||||||
|
* rom:name()
|
||||||
|
* rom:hashdata() - see hash.h
|
||||||
|
* rom:offset()
|
||||||
|
* rom:length()
|
||||||
|
* rom:flags() - see romentry.h
|
||||||
|
*/
|
||||||
|
|
||||||
|
auto rom_entry_type = sol().registry().create_simple_usertype<rom_entry>("new", sol::no_constructor);
|
||||||
|
rom_entry_type.set("name", &rom_entry::name);
|
||||||
|
rom_entry_type.set("hashdata", &rom_entry::hashdata);
|
||||||
|
rom_entry_type.set("offset", &rom_entry::get_offset);
|
||||||
|
rom_entry_type.set("length", &rom_entry::get_length);
|
||||||
|
rom_entry_type.set("flags", &rom_entry::get_flags);
|
||||||
|
sol().registry().set_usertype("rom_entry", rom_entry_type);
|
||||||
|
|
||||||
|
|
||||||
/* memory_manager library
|
/* memory_manager library
|
||||||
*
|
*
|
||||||
* manager:machine():memory()
|
* manager:machine():memory()
|
||||||
|
Loading…
Reference in New Issue
Block a user