shithub: sms

Download patch

ref: d29ada40266f131b7432d76a0135edcc2d5144f4
parent: d0935bf042b3eb387e9d76ba2878167db7cc8e07
author: Jean-André Santoni <jean.andre.santoni@gmail.com>
date: Wed Jul 10 06:45:44 EDT 2024

Set flags X and Z properly in ed52

--- a/sms.c
+++ b/sms.c
@@ -136,7 +136,7 @@
 void
 retro_set_audio_sample_batch(retro_audio_sample_batch_t cb)
 {
-    audio_cb = cb;
+	audio_cb = cb;
 }
 
 void
--- a/z80.c
+++ b/z80.c
@@ -295,6 +295,8 @@
 		s[rF] |= FLAGS;
 	if(((HL() ^ u) & (HL() ^ v) & 0x8000) != 0)
 		s[rF] |= FLAGV;
+	if ((v & 0x08) != 0) s[rF] |= FLAGX; else s[rF] &= ~FLAGX;
+	if ((v & 0x20) != 0) s[rF] |= FLAGY; else s[rF] &= ~FLAGY;
 	s[rL] = v;
 	s[rH] = v >> 8;
 }
@@ -527,14 +529,8 @@
 			s[rF] |= FLAGS;
 		if(!parity(s[rA]))
 			s[rF] |= FLAGV;
-		if ((s[rA] & 0x08) != 0)
-			s[rF] |= FLAGX;
-		else
-			s[rF] &= ~FLAGX;
-		if ((s[rA] & 0x20) != 0)
-			s[rF] |= FLAGY;
-		else
-			s[rF] &= ~FLAGY;
+		if ((s[rA] & 0x08) != 0) s[rF] |= FLAGX; else s[rF] &= ~FLAGX;
+		if ((s[rA] & 0x20) != 0) s[rF] |= FLAGY; else s[rF] &= ~FLAGY;
 		return 12;
 	case 0x61: z80out(s[rC], s[rH]); return 12;
 	case 0x69: z80out(s[rC], s[rL]); return 12;
--