From 2e6c828e00165e0a11ee44a144c7ec8ac24a4b60 Mon Sep 17 00:00:00 2001
From: Paul Cercueil <paul@crapouillou.net>
Date: Fri, 3 Nov 2023 20:12:55 +0100
Subject: [PATCH] git subrepo pull --force deps/lightrec

subrepo:
  subdir:   "deps/lightrec"
  merged:   "b9e4089b3b"
upstream:
  origin:   "https://github.com/pcercuei/lightrec.git"
  branch:   "master"
  commit:   "b9e4089b3b"
git-subrepo:
  version:  "0.4.6"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "110b9eb"
---
 deps/lightrec/.gitrepo   |  4 ++--
 deps/lightrec/lightrec.c | 12 ++++++------
 deps/lightrec/lightrec.h |  4 ++--
 3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/deps/lightrec/.gitrepo b/deps/lightrec/.gitrepo
index 8552a079..96c4feea 100644
--- a/deps/lightrec/.gitrepo
+++ b/deps/lightrec/.gitrepo
@@ -6,7 +6,7 @@
 [subrepo]
 	remote = https://github.com/pcercuei/lightrec.git
 	branch = master
-	commit = 9d392272b26a4c9de71b0ccf8806c29fe4ced9ca
-	parent = 88e086706bbe2b1723072ad524bcf154c07eb9cb
+	commit = b9e4089b3b6121f2077dc85a8fe7f934e3ae1c20
+	parent = bbe0dac4b7062d5ead765329d9ddb1e1fe01eee2
 	method = merge
 	cmdver = 0.4.6
diff --git a/deps/lightrec/lightrec.c b/deps/lightrec/lightrec.c
index 696a5ddd..f589ce85 100644
--- a/deps/lightrec/lightrec.c
+++ b/deps/lightrec/lightrec.c
@@ -36,18 +36,18 @@ static void lightrec_mtc2(struct lightrec_state *state, u8 reg, u32 data);
 static u32 lightrec_mfc2(struct lightrec_state *state, u8 reg);
 
 static void lightrec_default_sb(struct lightrec_state *state, u32 opcode,
-				void *host, u32 addr, u8 data)
+				void *host, u32 addr, u32 data)
 {
-	*(u8 *)host = data;
+	*(u8 *)host = (u8)data;
 
 	if (!(state->opt_flags & LIGHTREC_OPT_INV_DMA_ONLY))
 		lightrec_invalidate(state, addr, 1);
 }
 
 static void lightrec_default_sh(struct lightrec_state *state, u32 opcode,
-				void *host, u32 addr, u16 data)
+				void *host, u32 addr, u32 data)
 {
-	*(u16 *)host = HTOLE16(data);
+	*(u16 *)host = HTOLE16((u16)data);
 
 	if (!(state->opt_flags & LIGHTREC_OPT_INV_DMA_ONLY))
 		lightrec_invalidate(state, addr, 2);
@@ -322,10 +322,10 @@ u32 lightrec_rw(struct lightrec_state *state, union code op, u32 base,
 
 	switch (op.i.op) {
 	case OP_SB:
-		ops->sb(state, opcode, host, addr, (u8) data);
+		ops->sb(state, opcode, host, addr, data);
 		return 0;
 	case OP_SH:
-		ops->sh(state, opcode, host, addr, (u16) data);
+		ops->sh(state, opcode, host, addr, data);
 		return 0;
 	case OP_SWL:
 		lightrec_swl(state, ops, opcode, host, addr, data);
diff --git a/deps/lightrec/lightrec.h b/deps/lightrec/lightrec.h
index 4cda1a0a..3be8e0a9 100644
--- a/deps/lightrec/lightrec.h
+++ b/deps/lightrec/lightrec.h
@@ -87,9 +87,9 @@ enum psx_map {
 
 struct lightrec_mem_map_ops {
 	void (*sb)(struct lightrec_state *, u32 opcode,
-		   void *host, u32 addr, u8 data);
+		   void *host, u32 addr, u32 data);
 	void (*sh)(struct lightrec_state *, u32 opcode,
-		   void *host, u32 addr, u16 data);
+		   void *host, u32 addr, u32 data);
 	void (*sw)(struct lightrec_state *, u32 opcode,
 		   void *host, u32 addr, u32 data);
 	u8 (*lb)(struct lightrec_state *, u32 opcode, void *host, u32 addr);
-- 
2.39.5