From 7e53ef69ed5d66594c3a4789a30bc665915a06e5 Mon Sep 17 00:00:00 2001
From: nattthebear <goyuken@gmail.com>
Date: Wed, 27 May 2020 16:17:05 -0400
Subject: [PATCH] Add soft reset / hard reset to nymacores

most of the work had already been done, just didn't wire it up in C#land
---
 .../Waterbox/NymaCore.Controller.cs                       | 8 +++++++-
 src/BizHawk.Emulation.Cores/Waterbox/NymaCore.cs          | 6 +++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.Controller.cs b/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.Controller.cs
index ac189333b0..d959ef2b96 100644
--- a/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.Controller.cs
+++ b/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.Controller.cs
@@ -39,7 +39,13 @@ namespace BizHawk.Emulation.Cores.Waterbox
 			{
 				var ret = new ControllerDefinition
 				{
-					Name = "Mednafen Controller"
+					Name = "Mednafen Controller",
+					BoolButtons = { "Power", "Reset" },
+					CategoryLabels =
+					{
+						{ "Power", "System" },
+						{ "Reset", "System" },
+					}
 				};
 
 				var finalDevices = new List<string>();
diff --git a/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.cs b/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.cs
index 3aa0a407d4..7d764e0d93 100644
--- a/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.cs
+++ b/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.cs
@@ -144,7 +144,11 @@ namespace BizHawk.Emulation.Cores.Waterbox
 			{
 				SkipRendering = (short)(render ? 0 : 1),
 				SkipSoundening =(short)(rendersound ? 0 : 1),
-				Command = LibNymaCore.CommandType.NONE,
+				Command = controller.IsPressed("Power")
+					? LibNymaCore.CommandType.POWER
+					: controller.IsPressed("Reset")
+						? LibNymaCore.CommandType.RESET
+						: LibNymaCore.CommandType.NONE,
 				InputPortData = (byte*)_frameAdvanceInputLock.AddrOfPinnedObject()
 			};
 			return ret;