notaz.gp2x.de
/
pcsx_rearmed.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4cccc4d
)
try a workaround for ff8 analogs
author
notaz
<notasas@gmail.com>
Fri, 20 Oct 2023 23:45:06 +0000
(
02:45
+0300)
committer
notaz
<notasas@gmail.com>
Sat, 21 Oct 2023 21:12:19 +0000
(
00:12
+0300)
notaz/pcsx_rearmed#54
libpcsxcore/plugins.c
patch
|
blob
|
blame
|
history
diff --git
a/libpcsxcore/plugins.c
b/libpcsxcore/plugins.c
index
868493b
..
a617187
100644
(file)
--- a/
libpcsxcore/plugins.c
+++ b/
libpcsxcore/plugins.c
@@
-622,6
+622,14
@@
static void log_pad(int port, int pos)
#endif
}
#endif
}
+static void adjust_analog(unsigned char *b)
+{
+ // ff8 hates 0x80 for whatever reason (broken in 2d area menus),
+ // or is this caused by something else we do wrong??
+ if (b[6] == 0x80)
+ b[6] = 0x7f;
+}
+
// Build response for 0x42 request Pad in port
static void PADstartPoll_(PadDataS *pad) {
switch (pad->controllerType) {
// Build response for 0x42 request Pad in port
static void PADstartPoll_(PadDataS *pad) {
switch (pad->controllerType) {
@@
-699,6
+707,7
@@
static void PADstartPoll_(PadDataS *pad) {
stdpar[5] = pad->rightJoyY;
stdpar[6] = pad->leftJoyX;
stdpar[7] = pad->leftJoyY;
stdpar[5] = pad->rightJoyY;
stdpar[6] = pad->leftJoyX;
stdpar[7] = pad->leftJoyY;
+ adjust_analog(stdpar);
memcpy(buf, stdpar, 8);
respSize = 8;
break;
memcpy(buf, stdpar, 8);
respSize = 8;
break;
@@
-711,6
+720,7
@@
static void PADstartPoll_(PadDataS *pad) {
stdpar[5] = pad->rightJoyY;
stdpar[6] = pad->leftJoyX;
stdpar[7] = pad->leftJoyY;
stdpar[5] = pad->rightJoyY;
stdpar[6] = pad->leftJoyX;
stdpar[7] = pad->leftJoyY;
+ adjust_analog(stdpar);
memcpy(buf, stdpar, 8);
respSize = 8;
break;
memcpy(buf, stdpar, 8);
respSize = 8;
break;