From 802fb54fad88ef98a1ff758cac56cc208371463a Mon Sep 17 00:00:00 2001 From: zeromus Date: Tue, 8 Dec 2015 19:49:31 -0600 Subject: [PATCH] gpgx - support up to 32MB roms (fix #543 probably) --- .../Consoles/Sega/gpgx/GPGX.cs | 3 +-- genplus-gx/core/loadrom.h | 2 +- output/dll/libgenplusgx.dll | Bin 1841152 -> 1897472 bytes 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs b/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs index caba32a817..77318a76ec 100644 --- a/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs +++ b/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs @@ -70,8 +70,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx // http://www.sega-16.com/forum/showthread.php?4398-Forgotten-Worlds-giving-you-GAME-OVER-immediately-Fix-inside&highlight=forgotten%20worlds //hack, don't use - //romfile = File.ReadAllBytes(@"D:\encodes\bizhawksrc\output\SANIC CD\PierSolar (E).bin"); - if (rom != null && rom.Length > 16 * 1024 * 1024) + if (rom != null && rom.Length > 32 * 1024 * 1024) { throw new InvalidOperationException("ROM too big! Did you try to load a CD as a ROM?"); } diff --git a/genplus-gx/core/loadrom.h b/genplus-gx/core/loadrom.h index 3c292eedfc..e152b18739 100644 --- a/genplus-gx/core/loadrom.h +++ b/genplus-gx/core/loadrom.h @@ -40,7 +40,7 @@ #ifndef _LOADROM_H_ #define _LOADROM_H_ -#define MAXROMSIZE 10485760 +#define MAXROMSIZE (32*1024*1024) typedef struct { diff --git a/output/dll/libgenplusgx.dll b/output/dll/libgenplusgx.dll index f9e8e32a89f13ea7ceee923589d92e830230ff3a..5c5d2f008a098200d5faffceb00a82116620bb24 100644 GIT binary patch delta 14115 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