From c02a2a4661a8a8a17b1bd5eecfe929200dc9de09 Mon Sep 17 00:00:00 2001 From: feos Date: Wed, 31 Oct 2018 00:23:35 +0300 Subject: luaengine: add description comments for emu.item() --- src/frontend/mame/luaengine.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/frontend/mame/luaengine.cpp b/src/frontend/mame/luaengine.cpp index 44c4fc94b3a..3d7feb38c55 100644 --- a/src/frontend/mame/luaengine.cpp +++ b/src/frontend/mame/luaengine.cpp @@ -925,7 +925,7 @@ void lua_engine::initialize() * thread.result() - get thread result as string * thread.busy - check if thread is running * thread.yield - check if thread is yielded -*/ + */ emu.new_usertype("thread", sol::call_constructor, sol::constructors>(), "start", [](context &ctx, const char *scr) { @@ -981,6 +981,14 @@ void lua_engine::initialize() "busy", sol::readonly(&context::busy), "yield", sol::readonly(&context::yield)); +/* + * emu.item(item_index) + * item.size - size of the raw data type + * item.count - number of entries + * item:read(entry_index) - read entry value by index + * item:read_block(entry_index, count) - read array of entry values + * item:write(entry_index, value) - write entry value by index + */ emu.new_usertype("item", sol::call_constructor, sol::initializers([this](save_item &item, int index) { if(!machine().save().indexed_item(index, item.base, item.size, item.count)) { @@ -1340,7 +1348,7 @@ void lua_engine::initialize() * device:debug() - debug interface, cpus only * device.spaces[] - device address spaces table * device.state[] - device state entries table - * device.items[] - device save state items table + * device.items[] - device save state items table (item name is key, item index is value) */ sol().registry().new_usertype("device", "new", sol::no_constructor, -- cgit v1.2.3 From dd9531ea70d44919ce9d236f85e3b2e341e67da5 Mon Sep 17 00:00:00 2001 From: feos Date: Wed, 31 Oct 2018 00:54:32 +0300 Subject: forgot newline --- src/frontend/mame/luaengine.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/frontend/mame/luaengine.cpp b/src/frontend/mame/luaengine.cpp index 3d7feb38c55..ee1c08073b9 100644 --- a/src/frontend/mame/luaengine.cpp +++ b/src/frontend/mame/luaengine.cpp @@ -989,6 +989,7 @@ void lua_engine::initialize() * item:read_block(entry_index, count) - read array of entry values * item:write(entry_index, value) - write entry value by index */ + emu.new_usertype("item", sol::call_constructor, sol::initializers([this](save_item &item, int index) { if(!machine().save().indexed_item(index, item.base, item.size, item.count)) { -- cgit v1.2.3 From 0b3108f56042866f154b611c8093b464a380772e Mon Sep 17 00:00:00 2001 From: feos Date: Wed, 31 Oct 2018 22:10:36 +0300 Subject: actually use offset argument in item:read_block(offset, count) improve comment wording --- src/frontend/mame/luaengine.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/frontend/mame/luaengine.cpp b/src/frontend/mame/luaengine.cpp index ee1c08073b9..bb1ada557a4 100644 --- a/src/frontend/mame/luaengine.cpp +++ b/src/frontend/mame/luaengine.cpp @@ -985,9 +985,9 @@ void lua_engine::initialize() * emu.item(item_index) * item.size - size of the raw data type * item.count - number of entries - * item:read(entry_index) - read entry value by index - * item:read_block(entry_index, count) - read array of entry values - * item:write(entry_index, value) - write entry value by index + * item:read(offset) - read entry value by index + * item:read_block(offset, count) - read a block of entry values as a string (byte addressing) + * item:write(offset, value) - write entry value by index */ emu.new_usertype("item", sol::call_constructor, sol::initializers([this](save_item &item, int index) { @@ -1026,7 +1026,7 @@ void lua_engine::initialize() if(!item.base || ((offset + buff->get_len()) > (item.size * item.count))) buff->set_len(0); else - memcpy(buff->get_ptr(), item.base, buff->get_len()); + memcpy(buff->get_ptr(), (uint8_t *)item.base + offset, buff->get_len()); return buff; }, "write", [](save_item &item, int offset, uint64_t value) { -- cgit v1.2.3