From 32031d0f6763a74a143b6b2fed2982080a2a8772 Mon Sep 17 00:00:00 2001
From: alyosha-tas <alexei.f.k@gmail.com>
Date: Fri, 3 Jul 2020 16:07:26 -0400
Subject: [PATCH] Atari 7800: support serpentine

---
 Assets/gamedb/gamedb_a7800.txt                            | 1 +
 .../Consoles/Atari/A7800Hawk/A7800Hawk.cs                 | 8 +++++++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/Assets/gamedb/gamedb_a7800.txt b/Assets/gamedb/gamedb_a7800.txt
index cb5ecabc32..4c3ebde33d 100644
--- a/Assets/gamedb/gamedb_a7800.txt
+++ b/Assets/gamedb/gamedb_a7800.txt
@@ -150,6 +150,7 @@ md5:980c35ae9625773a450aa7ef51751c04		Scrapyard Dog	A78		NTSC=true;board=1
 md5:53db322c201323fe2ca8f074c0a2bf86		Scrapyard Dog	A78		PAL=true;board=1		
 md5:b697d9c2d1b9f6cb21041286d1bbfa7f		Sentinel	A78		NTSC=true;board=1
 md5:5469b4de0608f23a5c4f98f331c9e75f		Sentinel	A78		PAL=true;board=1
+md5:9bd70c06d3386f76f8162881699a777a		Serpentine	A78		NTSC=true;board=1;RAM=16
 md5:2d643ac548c40e58c99d0fe433ba4ba0		Sirius	A78		NTSC=true;board=1;RAM=16		
 md5:a84c1b2300fbfbf21b1c02387f613dad		Space Duel	A78		PAL=true;board=0		
 md5:771cb4609347657f63e6f0eb26036e35		Space Duel	A78		NTSC=true;board=0		
diff --git a/src/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.cs b/src/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.cs
index 4b7c19e78b..7e53aefefe 100644
--- a/src/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.cs
+++ b/src/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.cs
@@ -186,7 +186,13 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
 					if (cart_2.Bit(2))
 					{
 						cart_RAM = 8;
-					}					
+
+						// the homebrew game serpentine requires extra RAM, seems to use bit 6 to indicate this
+						if (cart_2.Bit(6))
+						{
+							cart_RAM = 16;
+						}
+					}
 				}
 				else
 				{