Skip to content
This repository was archived by the owner on Dec 14, 2025. It is now read-only.

Commit e8d7d65

Browse files
committed
[WIRED] Fixup missing SNES rumble bit on 33 bits frame
1 parent 16b7978 commit e8d7d65

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

main/wired/snes_spi.c

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ static struct snes_ctrl_port snes_ctrl_ports[SNES_PORT_MAX] = {
8383
.miso_delay_num = 2,
8484
.mosi_delay_mode = 0,
8585
.mosi_delay_num = 3,
86-
.write_bit_len = 64 - 1,
87-
.read_bit_len = 64 - 1, // Extra bit to remove small gitch on packet end
86+
.write_bit_len = 33 - 1,
87+
.read_bit_len = 33 - 1,
8888
.inten = 0,
8989
},
9090
.hw = &SPI2,
@@ -113,8 +113,8 @@ static struct snes_ctrl_port snes_ctrl_ports[SNES_PORT_MAX] = {
113113
.miso_delay_num = 2,
114114
.mosi_delay_mode = 0,
115115
.mosi_delay_num = 3,
116-
.write_bit_len = 64 - 1,
117-
.read_bit_len = 64 - 1, // Extra bit to remove small gitch on packet end
116+
.write_bit_len = 33 - 1,
117+
.read_bit_len = 33 - 1,
118118
.inten = 0,
119119
},
120120
.hw = &SPI3,
@@ -256,6 +256,14 @@ static unsigned latch_isr(unsigned cause) {
256256

257257
switch (cmd_sentry) {
258258
case 'b':
259+
if (cmd_data) {
260+
snes_ctrl_ports[port].hw->slv_wrbuf_dlen.bit_len = 64 - 1;
261+
snes_ctrl_ports[port].hw->slv_rdbuf_dlen.bit_len = 64 - 1;
262+
}
263+
else {
264+
snes_ctrl_ports[port].hw->slv_wrbuf_dlen.bit_len = 33 - 1;
265+
snes_ctrl_ports[port].hw->slv_rdbuf_dlen.bit_len = 33 - 1;
266+
}
259267
p->format = cmd_data;
260268
break;
261269
case 'r':

0 commit comments

Comments
 (0)