User:AlvinWong

From DeSmuME
(Difference between revisions)
Jump to: navigation, search
(WiFi)
Line 8: Line 8:
  
 
It works with both raw WiFi capture and udp capture with DeSmuME.
 
It works with both raw WiFi capture and udp capture with DeSmuME.
 +
 +
=== WiFi IO register 0x0228 and 0x0244 ===
 +
 +
(mkds) It appears to be read and written on the client/slave every time when a multiplayer command is received (possibly after the auto mp reply is sent).
 +
 +
Sequence:
 +
 +
* Read 244
 +
* Write 244 = 0x0080
 +
* Read 244
 +
* Write 244 = 0x0000
 +
 +
This happens when the program detects something is wrong (and the program disabled auto mp reply, or more accurately, cleared the AID (player id)):
 +
 +
* Read 244
 +
* Write 244 = 0x0040
 +
* Read 244
 +
* Write 244 = 0x0000
 +
* Write 228 = 0x0008
 +
* Write 228 = 0x0000
 +
 +
From this, it seems that register 228 is write-only, while 244 is read/write.
 +
 +
If gbatek is right, then 244 = 0x0080 probably has something to do with IRQ7 (TXSTART) while 0x0040 is with IRQ6 (RXSTART). But what is the relationship?
 +
 +
(some multiboot test) Only the first case mentioned above happens, after flooding mp reply for a moment it just doesn't send anything again.

Revision as of 13:45, 7 June 2014

Contents

Qt Frontend

Main article: Qt Frontend

WiFi

Analysing the protocol with Wireshark

I am writing a script for analysing the NDS local WiFi protocol (OSI Layer 3):

https://gist.github.com/alvinhochun/b7fb10bdfc7647c22847

It works with both raw WiFi capture and udp capture with DeSmuME.

WiFi IO register 0x0228 and 0x0244

(mkds) It appears to be read and written on the client/slave every time when a multiplayer command is received (possibly after the auto mp reply is sent).

Sequence:

  • Read 244
  • Write 244 = 0x0080
  • Read 244
  • Write 244 = 0x0000

This happens when the program detects something is wrong (and the program disabled auto mp reply, or more accurately, cleared the AID (player id)):

  • Read 244
  • Write 244 = 0x0040
  • Read 244
  • Write 244 = 0x0000
  • Write 228 = 0x0008
  • Write 228 = 0x0000

From this, it seems that register 228 is write-only, while 244 is read/write.

If gbatek is right, then 244 = 0x0080 probably has something to do with IRQ7 (TXSTART) while 0x0040 is with IRQ6 (RXSTART). But what is the relationship?

(some multiboot test) Only the first case mentioned above happens, after flooding mp reply for a moment it just doesn't send anything again.

Personal tools