wifi: only allow setting TXSLOT_CMD bit15 if CMDCOUNT is nonzero, as per GBAtek

This commit is contained in:
Arisotura 2023-07-14 11:39:58 +02:00
parent f432e559d4
commit a2033a62fd
1 changed files with 4 additions and 2 deletions

View File

@ -2214,13 +2214,15 @@ void Write(u32 addr, u16 val)
val &= 0x0FFF;
break;
case W_TXSlotCmd:
if (CmdCounter == 0)
val = (val & 0x7FFF) | (IOPORT(W_TXSlotCmd) & 0x8000);
// fall-through
case W_TXSlotLoc1:
case W_TXSlotLoc2:
case W_TXSlotLoc3:
case W_TXSlotCmd:
// checkme: is it possible to cancel a queued transfer that hasn't started yet
// by clearing bit15 here?
// TODO: "W_TXBUF_CMD.Bit15 can be set ONLY while W_CMD_COUNT is non-zero."
IOPORT(addr&0xFFF) = val;
FireTX();
return;