Skip to content

Commit

Permalink
wifi: only allow setting TXSLOT_CMD bit15 if CMDCOUNT is nonzero, as …
Browse files Browse the repository at this point in the history
…per GBAtek
  • Loading branch information
Arisotura committed Jul 14, 2023
1 parent f432e55 commit a2033a6
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/Wifi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit a2033a6

Please sign in to comment.