diff options
author | 2020-05-26 19:44:11 +0300 | |
---|---|---|
committer | 2020-05-26 19:46:01 +0300 | |
commit | 1bc22667898f32def9fe6e224065a77235b35904 (patch) | |
tree | 4353dac540dc85d587fcbaab1a9f535214cbac86 | |
parent | b500f2d24175ff2bd8efdb889a6c5eea12e96314 (diff) |
luaengine: rom_entry library
-rw-r--r-- | src/frontend/mame/luaengine.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/frontend/mame/luaengine.cpp b/src/frontend/mame/luaengine.cpp index 8d3bd043ce0..283ac310ba1 100644 --- a/src/frontend/mame/luaengine.cpp +++ b/src/frontend/mame/luaengine.cpp @@ -1697,6 +1697,7 @@ void lua_engine::initialize() * device.spaces[] - device address spaces table (k=name, v=addr_space) * device.state[] - device state entries table (k=name, v=device_state_entry) * 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); @@ -1752,6 +1753,13 @@ void lua_engine::initialize() } 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); @@ -2762,6 +2770,26 @@ void lua_engine::initialize() 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 * * manager:machine():memory() |