turn memory lua libraries into their own objects
This commit is contained in:
parent
6db76dd265
commit
18f0704a7c
|
@ -4,10 +4,74 @@ using BizHawk.Client.Common;
|
|||
|
||||
namespace BizHawk.MultiClient
|
||||
{
|
||||
public partial class EmuLuaLibrary
|
||||
//TODO: this needs a major refactor, as well as MemoryLuaLibrary, and this shoudl inherit memorylua library and extend it
|
||||
public class MainMemoryLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public MainMemoryLuaLibrary(Lua lua)
|
||||
: base()
|
||||
{
|
||||
_lua = lua;
|
||||
}
|
||||
|
||||
public override string Name { get { return "mainmemory"; } }
|
||||
public override string[] Functions
|
||||
{
|
||||
get
|
||||
{
|
||||
return new[]
|
||||
{
|
||||
"getname",
|
||||
"readbyte",
|
||||
"readbyterange",
|
||||
"readfloat",
|
||||
"writebyte",
|
||||
"writebyterange",
|
||||
"writefloat",
|
||||
|
||||
"read_s8",
|
||||
"read_u8",
|
||||
"read_s16_le",
|
||||
"read_s24_le",
|
||||
"read_s32_le",
|
||||
"read_u16_le",
|
||||
"read_u24_le",
|
||||
"read_u32_le",
|
||||
"read_s16_be",
|
||||
"read_s24_be",
|
||||
"read_s32_be",
|
||||
"read_u16_be",
|
||||
"read_u24_be",
|
||||
"read_u32_be",
|
||||
"write_s8",
|
||||
"write_u8",
|
||||
"write_s16_le",
|
||||
"write_s24_le",
|
||||
"write_s32_le",
|
||||
"write_u16_le",
|
||||
"write_u24_le",
|
||||
"write_u32_le",
|
||||
"write_s16_be",
|
||||
"write_s24_be",
|
||||
"write_s32_be",
|
||||
"write_u16_be",
|
||||
"write_u24_be",
|
||||
"write_u32_be",
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
private Lua _lua;
|
||||
|
||||
#region Main Memory Library Helpers
|
||||
|
||||
private static int U2S(uint u, int size)
|
||||
{
|
||||
int s = (int)u;
|
||||
s <<= 8 * (4 - size);
|
||||
s >>= 8 * (4 - size);
|
||||
return s;
|
||||
}
|
||||
|
||||
private int MM_R_S_LE(int addr, int size)
|
||||
{
|
||||
return U2S(MM_R_U_LE(addr, size), size);
|
||||
|
@ -66,13 +130,7 @@ namespace BizHawk.MultiClient
|
|||
Global.Emulator.MainMemory.PokeByte(addr, (byte)v);
|
||||
}
|
||||
|
||||
private int U2S(uint u, int size)
|
||||
{
|
||||
int s = (int)u;
|
||||
s <<= 8 * (4 - size);
|
||||
s >>= 8 * (4 - size);
|
||||
return s;
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -4,10 +4,68 @@ using BizHawk.Client.Common;
|
|||
|
||||
namespace BizHawk.MultiClient
|
||||
{
|
||||
public partial class EmuLuaLibrary
|
||||
public class MemoryLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public override string Name { get { return "memory"; } }
|
||||
public override string[] Functions
|
||||
{
|
||||
get
|
||||
{
|
||||
return new[]
|
||||
{
|
||||
"getcurrentmemorydomain",
|
||||
"getcurrentmemorydomainsize",
|
||||
"getmemorydomainlist",
|
||||
"readbyte",
|
||||
"readfloat",
|
||||
"usememorydomain",
|
||||
"writebyte",
|
||||
"writefloat",
|
||||
|
||||
"read_s8",
|
||||
"read_u8",
|
||||
"read_s16_le",
|
||||
"read_s24_le",
|
||||
"read_s32_le",
|
||||
"read_u16_le",
|
||||
"read_u24_le",
|
||||
"read_u32_le",
|
||||
"read_s16_be",
|
||||
"read_s24_be",
|
||||
"read_s32_be",
|
||||
"read_u16_be",
|
||||
"read_u24_be",
|
||||
"read_u32_be",
|
||||
"write_s8",
|
||||
"write_u8",
|
||||
"write_s16_le",
|
||||
"write_s24_le",
|
||||
"write_s32_le",
|
||||
"write_u16_le",
|
||||
"write_u24_le",
|
||||
"write_u32_le",
|
||||
"write_s16_be",
|
||||
"write_s24_be",
|
||||
"write_s32_be",
|
||||
"write_u16_be",
|
||||
"write_u24_be",
|
||||
"write_u32_be",
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
private int _current_memory_domain; //Main memory by default
|
||||
|
||||
#region Memory Library Helpers
|
||||
|
||||
private static int U2S(uint u, int size)
|
||||
{
|
||||
int s = (int)u;
|
||||
s <<= 8 * (4 - size);
|
||||
s >>= 8 * (4 - size);
|
||||
return s;
|
||||
}
|
||||
|
||||
private int M_R_S_LE(int addr, int size)
|
||||
{
|
||||
return U2S(M_R_U_LE(addr, size), size);
|
||||
|
@ -30,7 +88,9 @@ namespace BizHawk.MultiClient
|
|||
{
|
||||
uint v = 0;
|
||||
for (int i = 0; i < size; ++i)
|
||||
{
|
||||
v |= M_R_U8(addr + i) << 8 * (size - 1 - i);
|
||||
}
|
||||
return v;
|
||||
}
|
||||
|
||||
|
@ -42,7 +102,9 @@ namespace BizHawk.MultiClient
|
|||
private void M_W_U_LE(int addr, uint v, int size)
|
||||
{
|
||||
for (int i = 0; i < size; ++i)
|
||||
{
|
||||
M_W_U8(addr + i, (v >> (8 * i)) & 0xFF);
|
||||
}
|
||||
}
|
||||
|
||||
private void M_W_S_BE(int addr, int v, int size)
|
||||
|
@ -132,7 +194,6 @@ namespace BizHawk.MultiClient
|
|||
return false;
|
||||
}
|
||||
|
||||
|
||||
public int memory_read_s8(object lua_addr)
|
||||
{
|
||||
int addr = LuaCommon.LuaInt(lua_addr);
|
||||
|
|
|
@ -8,7 +8,6 @@ namespace BizHawk.MultiClient
|
|||
{
|
||||
private Lua _lua = new Lua();
|
||||
private readonly LuaConsole _caller;
|
||||
private int _current_memory_domain; //Main memory by default
|
||||
private Lua currThread;
|
||||
|
||||
public LuaDocumentation Docs = new LuaDocumentation();
|
||||
|
@ -107,87 +106,6 @@ namespace BizHawk.MultiClient
|
|||
"textbox",
|
||||
};
|
||||
|
||||
public static string[] MainMemoryFunctions = new[]
|
||||
{
|
||||
"getname",
|
||||
"readbyte",
|
||||
"readbyterange",
|
||||
"readfloat",
|
||||
"writebyte",
|
||||
"writebyterange",
|
||||
"writefloat",
|
||||
|
||||
"read_s8",
|
||||
"read_u8",
|
||||
"read_s16_le",
|
||||
"read_s24_le",
|
||||
"read_s32_le",
|
||||
"read_u16_le",
|
||||
"read_u24_le",
|
||||
"read_u32_le",
|
||||
"read_s16_be",
|
||||
"read_s24_be",
|
||||
"read_s32_be",
|
||||
"read_u16_be",
|
||||
"read_u24_be",
|
||||
"read_u32_be",
|
||||
"write_s8",
|
||||
"write_u8",
|
||||
"write_s16_le",
|
||||
"write_s24_le",
|
||||
"write_s32_le",
|
||||
"write_u16_le",
|
||||
"write_u24_le",
|
||||
"write_u32_le",
|
||||
"write_s16_be",
|
||||
"write_s24_be",
|
||||
"write_s32_be",
|
||||
"write_u16_be",
|
||||
"write_u24_be",
|
||||
"write_u32_be",
|
||||
};
|
||||
|
||||
public static string[] MemoryFunctions = new[]
|
||||
{
|
||||
"getcurrentmemorydomain",
|
||||
"getcurrentmemorydomainsize",
|
||||
"getmemorydomainlist",
|
||||
"readbyte",
|
||||
"readfloat",
|
||||
"usememorydomain",
|
||||
"writebyte",
|
||||
"writefloat",
|
||||
|
||||
"read_s8",
|
||||
"read_u8",
|
||||
"read_s16_le",
|
||||
"read_s24_le",
|
||||
"read_s32_le",
|
||||
"read_u16_le",
|
||||
"read_u24_le",
|
||||
"read_u32_le",
|
||||
"read_s16_be",
|
||||
"read_s24_be",
|
||||
"read_s32_be",
|
||||
"read_u16_be",
|
||||
"read_u24_be",
|
||||
"read_u32_be",
|
||||
"write_s8",
|
||||
"write_u8",
|
||||
"write_s16_le",
|
||||
"write_s24_le",
|
||||
"write_s32_le",
|
||||
"write_u16_le",
|
||||
"write_u24_le",
|
||||
"write_u32_le",
|
||||
"write_s16_be",
|
||||
"write_s24_be",
|
||||
"write_s32_be",
|
||||
"write_u16_be",
|
||||
"write_u24_be",
|
||||
"write_u32_be",
|
||||
};
|
||||
|
||||
public static string[] SaveStateFunctions = new[]
|
||||
{
|
||||
"load",
|
||||
|
@ -207,6 +125,8 @@ namespace BizHawk.MultiClient
|
|||
new ConsoleLuaLibrary().LuaRegister(lua, Docs);
|
||||
new InputLuaLibrary(_lua).LuaRegister(lua, Docs);
|
||||
new JoypadLuaLibrary(_lua).LuaRegister(lua, Docs);
|
||||
new MemoryLuaLibrary().LuaRegister(lua, Docs);
|
||||
new MainMemoryLuaLibrary(_lua).LuaRegister(lua, Docs);
|
||||
new MovieLuaLibrary(_lua).LuaRegister(lua, Docs);
|
||||
new NESLuaLibrary().LuaRegister(lua, Docs);
|
||||
new SNESLuaLibrary().LuaRegister(lua, Docs);
|
||||
|
@ -225,21 +145,6 @@ namespace BizHawk.MultiClient
|
|||
Docs.Add("emu", t, GetType().GetMethod("emu_" + t));
|
||||
}
|
||||
|
||||
lua.NewTable("memory");
|
||||
foreach (string t in MemoryFunctions)
|
||||
{
|
||||
lua.RegisterFunction("memory." + t, this, GetType().GetMethod("memory_" + t));
|
||||
Docs.Add("memory", t, GetType().GetMethod("memory_" + t));
|
||||
}
|
||||
|
||||
lua.NewTable("mainmemory");
|
||||
foreach (string t in MainMemoryFunctions)
|
||||
{
|
||||
lua.RegisterFunction("mainmemory." + t, this,
|
||||
GetType().GetMethod("mainmemory_" + t));
|
||||
Docs.Add("mainmemory", t, GetType().GetMethod("mainmemory_" + t));
|
||||
}
|
||||
|
||||
lua.NewTable("savestate");
|
||||
foreach (string t in SaveStateFunctions)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue