Luigi's notes about WiFi
(→Undocumented hardware stuff) |
|||
Line 10: | Line 10: | ||
Based on observations on real hardware, may be wrong or incomplete tho. | Based on observations on real hardware, may be wrong or incomplete tho. | ||
− | * setting bit0 of W_US_COMPARE0 keeps | + | * setting bit0 of W_US_COMPARE0 keeps W_BEACONCOUNT1 from triggering IRQ14 until W_US_COUNT matches W_US_COMPARE |
==NSMB wifi code== | ==NSMB wifi code== |
Revision as of 13:58, 21 August 2011
Current Wifi state
Wifi is WIP and highly experimental, keep it in mind
- Ad-hoc: Nintendo multiplayer games fail to connect together. At one point the host sends data frames, the client receives them right but seems to not care about them or throw them out for some reason. Quite possibly a timing problem.
- SoftAP, WFC: doesn't work. Seems to be due to timing issues.
- SoftAP, homebrew: I was fckin wrong. With some work, homebrews based on the dswifi lib can now communicate with the internet. For example you can use ClIRC to chat on #desmume (irc.freenode.net, port 6667).
Undocumented hardware stuff
Based on observations on real hardware, may be wrong or incomplete tho.
- setting bit0 of W_US_COMPARE0 keeps W_BEACONCOUNT1 from triggering IRQ14 until W_US_COUNT matches W_US_COMPARE
NSMB wifi code
NOTE: THIS CODE IS COPYRIGHT NINTENDO!!! DO NOT PUT IT IN YOUR PROJECTS!!!
ARM assembly code, and, if I amn't too lazy, translation to C++ pseudocode
Packet handling or whatever procedure, 0x037F9F88 -> 0x037FA3C0 (ARM7)
037F:A348 E1C800B0 STRH R0, [R8, #0]
037F:A34C E1A00807 MOV R0, R7, LSL #10
037F:A350 E1A00820 MOV R0, R0, LSR #10
037F:A354 E1C900B4 STRH R0, [R9, #4]
037F:A358 E1C400B0 STRH R0, [R4, #0]
037F:A35C EAFFFF20 B 037F9FE4
label_037fa360:
037F:A360 E3550000 CMP R5, #0
037F:A364 0A00000A BEQ 037FA394
037F:A368 E59F0060 LDR R0, [037FA3D0]
037F:A36C E1D040B0 LDRH R4, [R0, #0]
037F:A370 EB000192 BL 037FA9C0
037F:A374 E3500000 CMP R0, #0
037F:A378 0A000005 BEQ 037FA394
037F:A37C E59F004C LDR R0, [037FA3D0]
037F:A380 E1D000B0 LDRH R0, [R0, #0]
037F:A384 E1540000 CMP R4, R0