From 8c4696609d53c2744dc0d5497ad967fab3a7c777 Mon Sep 17 00:00:00 2001 From: goyuken <goyuken@4bbf4f03-6f44-549e-7e59-35d4b0962838> Date: Sat, 16 Aug 2014 05:45:31 +0000 Subject: [PATCH] vba next: memory domains --- BizHawk.Emulation.Common/MemoryDomain.cs | 14 ++++--- .../Consoles/Nintendo/GBA/LibVBANext.cs | 20 ++++++++++ .../Consoles/Nintendo/GBA/VBANext.cs | 32 +++++++++++++++- .../Consoles/Nintendo/QuickNES/QuickNES.cs | 23 +----------- output/dll/libvbanext.dll | Bin 443392 -> 443392 bytes vbanext/instance.cpp | 35 ++++++++++++++++++ vbanext/instance.h | 12 ++++++ 7 files changed, 106 insertions(+), 30 deletions(-) diff --git a/BizHawk.Emulation.Common/MemoryDomain.cs b/BizHawk.Emulation.Common/MemoryDomain.cs index dd7ef12e33..7c4c3a7849 100644 --- a/BizHawk.Emulation.Common/MemoryDomain.cs +++ b/BizHawk.Emulation.Common/MemoryDomain.cs @@ -32,8 +32,9 @@ namespace BizHawk.Emulation.Common /// <param name="size"></param> /// <param name="endian"></param> /// <param name="data">must remain valid as long as the MemoryDomain exists!</param> + /// <param name="writable">if false, writes will be ignored</param> /// <returns></returns> - public unsafe static MemoryDomain FromIntPtr(string name, int size, Endian endian, IntPtr data) + public unsafe static MemoryDomain FromIntPtr(string name, int size, Endian endian, IntPtr data, bool writable = true) { if (data == IntPtr.Zero) throw new ArgumentNullException("data"); @@ -53,15 +54,16 @@ namespace BizHawk.Emulation.Common }, delegate(int addr, byte val) { - if (addr < 0 || addr >= size) - throw new ArgumentOutOfRangeException(); - p[addr] = val; + if (writable) + { + if (addr < 0 || addr >= size) + throw new ArgumentOutOfRangeException(); + p[addr] = val; + } } ); } - public MemoryDomain() { } - public override string ToString() { return Name; diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibVBANext.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibVBANext.cs index 04956d9e07..6977b50dcf 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibVBANext.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibVBANext.cs @@ -122,6 +122,26 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA public static extern bool SaveRamSave(IntPtr g, byte[] data, int length); [DllImport(dllname, CallingConvention = cc)] public static extern bool SaveRamLoad(IntPtr g, byte[] data, int length); + [DllImport(dllname, CallingConvention = cc)] + public static extern void GetMemoryAreas(IntPtr g, [Out]MemoryAreas mem); + [DllImport(dllname, CallingConvention = cc)] + public static extern void SystemBusWrite(IntPtr g, int addr, byte val); + [DllImport(dllname, CallingConvention = cc)] + public static extern byte SystemBusRead(IntPtr g, int addr); + + + [StructLayout(LayoutKind.Sequential)] + public class MemoryAreas + { + public IntPtr bios; + public IntPtr iwram; + public IntPtr ewram; + public IntPtr palram; + public IntPtr vram; + public IntPtr oam; + public IntPtr rom; + public IntPtr mmio; + } } } diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs index 2fe873e8ba..fb251ba7f5 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs @@ -73,6 +73,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA savebuff = new byte[LibVBANext.BinStateSize(Core)]; savebuff2 = new byte[savebuff.Length + 13]; + InitMemoryDomains(); } catch { @@ -253,11 +254,38 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA #region Debugging - public MemoryDomainList MemoryDomains + void InitMemoryDomains() { - get { return MemoryDomainList.GetDummyList(); } + var mm = new List<MemoryDomain>(); + var s = new LibVBANext.MemoryAreas(); + var l = MemoryDomain.Endian.Little; + LibVBANext.GetMemoryAreas(Core, s); + mm.Add(MemoryDomain.FromIntPtr("IWRAM", 32 * 1024, l, s.iwram)); + mm.Add(MemoryDomain.FromIntPtr("EWRAM", 256 * 1024, l, s.ewram)); + mm.Add(MemoryDomain.FromIntPtr("BIOS", 16 * 1024, l, s.bios, false)); + mm.Add(MemoryDomain.FromIntPtr("PALRAM", 1024, l, s.palram, false)); + mm.Add(MemoryDomain.FromIntPtr("VRAM", 96 * 1024, l, s.vram)); + mm.Add(MemoryDomain.FromIntPtr("OAM", 1024, l, s.oam)); + mm.Add(MemoryDomain.FromIntPtr("ROM", 32 * 1024 * 1024, l, s.rom)); + + mm.Add(new MemoryDomain("BUS", 0x10000000, l, + delegate(int addr) + { + if (addr < 0 || addr >= 0x10000000) + throw new ArgumentOutOfRangeException(); + return LibVBANext.SystemBusRead(Core, addr); + }, + delegate(int addr, byte val) + { + if (addr < 0 || addr >= 0x10000000) + throw new ArgumentOutOfRangeException(); + LibVBANext.SystemBusWrite(Core, addr, val); + })); + MemoryDomains = new MemoryDomainList(mm, 0); } + public MemoryDomainList MemoryDomains { get; private set; } + public Dictionary<string, int> GetCpuFlagsAndRegisters() { throw new NotImplementedException(); diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.cs index d5b2d0e89e..9e7477b07f 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.cs @@ -319,28 +319,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES if (data != IntPtr.Zero && size > 0 && name != IntPtr.Zero) { - byte* p = (byte*)data; - - mm.Add(new MemoryDomain - ( - Marshal.PtrToStringAnsi(name), - size, - MemoryDomain.Endian.Unknown, - delegate(int addr) - { - if (addr < 0 || addr >= size) - throw new ArgumentOutOfRangeException(); - return p[addr]; - }, - delegate(int addr, byte val) - { - if (!writable) - return; - if (addr < 0 || addr >= size) - throw new ArgumentOutOfRangeException(); - p[addr] = val; - } - )); + mm.Add(MemoryDomain.FromIntPtr(Marshal.PtrToStringAnsi(name), size, MemoryDomain.Endian.Little, data, writable)); } } // add system bus diff --git a/output/dll/libvbanext.dll b/output/dll/libvbanext.dll index 60350c839f64ede8c4194f67ea3f8db65ab5816c..afa0071028305aaa5766cba28d54544617bb88dc 100644 GIT binary patch delta 72320 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%0AUT&;GtWhWR~V zuP?Qi+)^KDxD=FTNXi0fowP$bB4s+7I#|cGj)9Jmj){)hj%AKd9C62SM-AuYPP_AF z=V0e!&XDtUocFshqbHoTU1pcnbt6{!!>-A$Ij)tieAgitB{z{dtopm<N8~B;T=_kD zn|x6IQ*Pky==Qq%y6<;C<$lq<(7n#R%bjqWJk1pkhs(yDo@~!Ep4pyvJ)e3Gc#2SX zTzgUWI&3@E%MM^ivXj_(?ECC?_7M9gTOYqI;IQ0m8Dx3b@{DD+WsxOn$+H}={A9`G z8glJ97uSm$%}wXt#0j;X`vHro8P4x(c|ZRMKOGBo4ZofLfzPyFX6<BEJk|l$fc0tX zT&%Ax*4;QoD4~wfPT+)_g@HnjFjn}Fuw3|1*d-hlvc%@1DE1Hsi=)No#06MPyTqen zmaU~twDqtJwLNKj!M4Emp>3D#s4dIh66Nn<A8a3Of6o4vJ!=2be#A~o%_UyCQMy|i zB~6oFmp)LWJn67xbTmQnuXEh#$Z<?|%yr~C@*D+@633;^F3zi+w>w8VCpj14f}7_& z;5_E6j?&v)H@k+o6xU2w#I?b--}Sqzq1;*SCf_DMC{M)o;9Yr({2dD4(B0YH&3&8u zL0lJJaW8dmaewXp-CZ9SBd@2Q=K+s0-ZRs))bojFKPfw7q6VYv_1VtswXC0gjGfNT zXV<X>><N~^k2=^b-7S8s`-zs9ED_6E%V(B@mY*#&cPZD7v*8LhlAFlQ;udmixqMs^ zvv3M_;@x~telQCE4A%Y%{xiOS|DCU6ZDqAuud@!fKCW1&S?5@nTQ{QgKU%8^4YB&K z5^fcS36BWVg?YjX;bS2#{3MvfCSn)SDPAw$C5{ju6Q^tIf2(*vJTBI-wXiub0e9PS zY?Ev++ZN*t*lGL8X0$i8ceP(-?`t1!f6_k7zR<qTzTJMv{wL0Xwm1j6OG71PH0EKh zv{?F7isR;LbX?}JIIeLFaEx$_c1&`F9Sa?+9G^SBcARk3bq;kt=X?#<w9U@F&ZD^V zwRSmOx47<ceeU`W6Hr%fE!(j6-;vkK`6zy|T-$AS^X}g6W$umcJy`FVp2nWe9?EQ@ znxo1rmiBCgHCP_9yl45)veB{y<^0jYa4on_9Lx3P?&1O{=*!$3tmG)Sp3CF*qpU|b zny<;X<Zb*d{H^@GxTws;<#z#}&+q2r{5QA*{>Im^wnKrtTVJt$YHc8N7kUZ(g*%18 z!f@e1VU(Z<6ND+k^TI4)uAs~pmI`Zxjlve;bKxuDTdeXw1fy7AY$RSLwiYGPi<0*g z9}riHQE?mYZ3Vco8f=%^TG?#2TWkYtGi<YLt88m+qwG)Er{Pw+*1o~sRkBJB$t(4g z?vNgoo|j&g-jS9|A4r>|V^XnXa@2CvcQkgiz>AoUb+GP5$5mMQM{u$EJ$Jwi(;Hp> E51*pAAOHXW delta 76468 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 diff --git a/vbanext/instance.cpp b/vbanext/instance.cpp index d89585f572..44626f4ca0 100644 --- a/vbanext/instance.cpp +++ b/vbanext/instance.cpp @@ -13321,6 +13321,27 @@ template<bool isReader>bool SyncBatteryRam(NewState *ns) return lagged; } + void FillMemoryAreas(MemoryAreas &mem) + { + mem.bios = bios; + mem.iwram = internalRAM; + mem.ewram = workRAM; + mem.palram = graphics.paletteRAM; + mem.mmio = ioMem; + mem.rom = rom; + mem.vram = vram; + mem.oam = oam; + } + + void BusWrite(u32 addr, u8 val) + { + CPUWriteByte(addr, val); + } + u8 BusRead(u32 addr) + { + return CPUReadByte(addr); + } + }; // class Gigazoid // zeroing mem operators: these are very important @@ -13447,5 +13468,19 @@ EXPORT void TxtStateLoad(Gigazoid *g, FPtrs *ff) g->SyncState<true>(&loader); } +EXPORT void GetMemoryAreas(Gigazoid *g, MemoryAreas *mem) +{ + g->FillMemoryAreas(*mem); +} + +EXPORT void SystemBusWrite(Gigazoid *g, u32 addr, u8 val) +{ + g->BusWrite(addr, val); +} + +EXPORT u8 SystemBusRead(Gigazoid *g, u32 addr) +{ + return g->BusRead(addr); +} #include "optable.inc" diff --git a/vbanext/instance.h b/vbanext/instance.h index 028302d5e6..68b043823b 100644 --- a/vbanext/instance.h +++ b/vbanext/instance.h @@ -20,6 +20,18 @@ struct FrontEndSettings }; +struct MemoryAreas +{ + void *bios; + void *iwram; + void *ewram; + void *palram; + void *vram; + void *oam; + void *rom; + void *mmio; +}; + #define FLASH_128K_SZ 0x20000 #define EEPROM_IDLE 0