From 41dd8741d59cec3b85e462835bfc2a937dc0875c Mon Sep 17 00:00:00 2001 From: zeromus Date: Mon, 18 Apr 2016 21:46:16 -0500 Subject: [PATCH] dang it, do a better job adding sram memdomain to vbanext --- .../Consoles/Nintendo/GBA/LibVBANext.cs | 1 + .../Nintendo/GBA/VBANext.IMemoryDomains.cs | 2 +- output/dll/libvbanext.dll | Bin 442368 -> 442368 bytes vbanext/instance.cpp | 24 +++++++++++++++++- vbanext/instance.h | 3 ++- 5 files changed, 27 insertions(+), 3 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibVBANext.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibVBANext.cs index 77443abd1c..2ca23cd040 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibVBANext.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibVBANext.cs @@ -175,6 +175,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA public IntPtr rom; public IntPtr mmio; public IntPtr sram; + public int sram_size; } // this isn't used directly at the moment. but it could be used for something eventually... diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.IMemoryDomains.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.IMemoryDomains.cs index 46d6934090..37726abb09 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.IMemoryDomains.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.IMemoryDomains.cs @@ -23,7 +23,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA mm.Add(MemoryDomain.FromIntPtr("VRAM", 96 * 1024, l, s.vram, true, 4)); mm.Add(MemoryDomain.FromIntPtr("OAM", 1024, l, s.oam, true, 4)); mm.Add(MemoryDomain.FromIntPtr("ROM", 32 * 1024 * 1024, l, s.rom, true, 4)); - mm.Add(MemoryDomain.FromIntPtr("SRAM", 128 * 1024, l, s.sram, true, 4)); + mm.Add(MemoryDomain.FromIntPtr("SRAM", s.sram_size, l, s.sram, true, 4)); mm.Add(new MemoryDomainDelegate("System Bus", 0x10000000, l, delegate(long addr) diff --git a/output/dll/libvbanext.dll b/output/dll/libvbanext.dll index 7beffbc6312439f1436f8448debb9fb0141734f5..e7bbdf475b8179dab6c49e4317b29628feb44db6 100644 GIT binary patch delta 3260 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 delta 3199 zcmYjS30M?I7Vc`MT7*$Y78M0_5JgdxzR&4ybjhKTIG~8SiJ~!zxF(qBidRsR5LpDo z_Op|CA(%rG6+`@*RWuOPATf$Z)TkgBkBK5ef-do5YtZoReBVFs)&HtrRsZ$s^~#mO zD^~`uYs1&A&41V*gc^N8w9lr8gfR|`=_)c9Rznh4NPbwbQ3^zW8!ccPh$zX&XZrxD zqz#U+0cb?{MdFvC5$_jj7#`W*0FjaS;T9t*@qaktx7-;kuHUe+GSE3EO4nTJ!JSqxr zxNF2m4adK|Tk>AiO&fl!u4Fdl@&Ri~irA?=0AoD;dp|MgJjC8VVt-I+Ti81Vvtd}y z#w+`AEEP-eJo))~$k!WM39y{ZvVtynD(3cF``K{E_Qikr`TcpZAI*ye2sna|H80jC z-T^t*j%av-z{`KN-r?a+9Q3k6B$#Bw4_&bqsjzn-*k-Pchoiwv^HeI5xC4pw&MSis#BL8 zom8hT`JGg!F7H_-Rj^+d@P>Kv6dVE+>%l3w*bhIXn{Qu&;oxJ_xCA4>0`tHnD29tV z=B@~h<#{F5_Kqlu{i>n=$hZ4BYTz0iDQ-7tGr88GUb(}-qe-Z?G_4FAsj~V z`bU2=S9_n0F?ZI%Az_;zx3`x9q`vo=oH3aFHgq@<0uj7^h}lvH=IQ0cfUuj$^)CDry{p&OJhy+1 z$C)i?TK9mkXVdDOXwOblTS4>#@0e3o5W(=#Ai~kzTC#%hx8b>K&CFHAz^Q3>Am%`* zzYVcs50d3Kh@~O88zDyCML>SC7bxD0Y=Jk1_!xv_gnBg3iEJ7|4f2Z-90)acEPOSw z#}Di<_pK$Qj6$(gJS$!l{iHCdM5>X_Nf)InQoZCW$H=kr%W|CTme7ZI-r6JF0oKMy*+E)!HoIX=e*K_q9`T_lpzfZRgvA`fSf=gCIWhZ;bQpvF*1)GTTll|>a&#nf@?0@X}Cp#te> z+C?YODfD~vdU_XKPM@b6X`BgWDCQ;Rb!GvR#cX5tGbfqr%tOY(MzAh6flXoGV>ht7 z*mCwf+sNWv5I2&G<)(6JTqd`f`-ZFH>bO?UkI!)OJRir;6SCb1@d#l4#O-)c|t4q~fb(>nOR;XvxU)5F>YC&3*Hd>pf ztR3?dei}{e*%#<+IOas%#^gsuovJ=^P>}vKCwwV2atz+-Ab}pQgxp*#x%iuP0 zySWPPGWR>zm3LjAY4|$W(GUnMW3q`^l;d@-lgk>_YXTqN&kTA~lyKJ zXZx`u+0pDIHWl51P3#`_dvptKvrpLoE`rmzIBpKNjLYMSxP4s439cSp1e_1$DgFh1 z3O}D;#%J*b{2soHKg(a|AM-tgIl_A3Goe)YQK%DI1RMJPE8=+Z4b(SoiI2n{Qn(~Y z z`fI~AQk$er*V42#+7_))`%)`MZRNDqpxx4%G^qRQ19U+juP5p$`WpQc)L6dO&*_)- zdi{ppsQ>Ae*hygJ$oP>%ki>E1Hu3}+h)OwunoLbYT_u%TK&4X|R3?=}ZJ;($MbuZQ zyuYI|s;Hl+vs5j0lWIZD2B!n)K6EG@PD^wQ5phzMnh99Y@vvkRy0IAHWCk g{rN%sFrGx6XLMJ78sEe};2-hU!u7=35&5M3f0UbTa{vGU diff --git a/vbanext/instance.cpp b/vbanext/instance.cpp index b748240475..f381b865f5 100644 --- a/vbanext/instance.cpp +++ b/vbanext/instance.cpp @@ -13443,7 +13443,29 @@ templatebool SyncBatteryRam(NewState *ns) mem.rom = rom; mem.vram = vram; mem.oam = oam; - mem.sram = flashSaveMemory; + switch (cpuSaveType) + { + default: + case 0: // auto + mem.sram = flashSaveMemory; + mem.sram_size = 0x10000;; + return; + case 1: + case 4: // eeprom + mem.sram = eepromData; + mem.sram_size = eepromSize; + return; + case 2: // sram + mem.sram = flashSaveMemory; + mem.sram_size = 0x10000; + return; + case 3: // flash + mem.sram = flashSaveMemory; + mem.sram_size = flashSize; + return; + case 5: // none + return; + } } void BusWrite(u32 addr, u8 val) diff --git a/vbanext/instance.h b/vbanext/instance.h index a820d95287..3139a854ba 100644 --- a/vbanext/instance.h +++ b/vbanext/instance.h @@ -28,9 +28,10 @@ struct MemoryAreas void *palram; void *vram; void *oam; - void *sram; void *rom; void *mmio; + void *sram; + uint32_t sram_size; }; #define FLASH_128K_SZ 0x20000