Jump to content

jfperusse

Members+
  • Posts

    8
  • Joined

  • Last visited

Posts posted by jfperusse

  1. I just reflashed my DS Lite with FlashMe V7, and wifi now works!

     

    It is somewhat annoying that the wifi lib does not work properly with the stock DS Lite firmware, but at least it can be noted as an issue. I still wonder why it worked for DSOrganize and nothing else.

     

    FYI, I got flashme v7 from:

     

    http://forums.maxconsole.net/showthread.php?t=28470

     

    If you have an EZ-Flash 4 Lite, you do not need to use the EZ Client software to transfer the flashme file, but you have to rename the flashme.nds to flashme.bin.

     

    What's weird is that I tried the sample program on my friend's DS Lite (not flashed) and it worked for him, exactly the same setup... (same router, same flash cart, same ezpass, etc.)

     

    :blink:

  2. I've implemented a simple TFTP-server that I'm going to use for a project later. TFTP works by sending one DATA packet, wait for ACK, send next DATA, and so on. This means only one packet is in the queue at any time and therefore the protocol is very sensitive to latency.

     

    I've only gotten about 5 kb/s transfer rates. I've discovered that the bottleneck is the communication between the ARM7 and the ARM9 processors. The ARM9 polls for new packages every 50 ms, when the Wifi_Timer_50ms() function is called. That means new packages are recieved 10 times every second. Since TFTP sends 512 bytes in every package you only get a transfer rate of 10 * 512 ~ 5 kb/s.

     

    This leads me to two questions:

     

    1. Why is it using polled communications between the processors when the IPC interrupts could be used?

     

    2. Why is the IP stack implemented on the ARM9 processor and not ARM7? It would be much more efficient if I could implement the TFTP-server in ARM7... The socket functions could be made available on both processors using IPC for ease of use.

     

    And another question:

     

    3. In wifi_lib_test TIMER3_DATA is set to -13106. Doesn't that give an interrupt every 100 ms instead of 50 ms?

     

    PS. using wifi_lib 0.2b

     

    Ack! didn't notice this thread

    1) to not interfere with whatever the end user wanted to do. there *will* be support for instant notification via IPC in the next version.

    2) ease of use, speed, etc... It was a design decision.

    3) afaik it is 50ms, at least based on the documentation I had - it might be wrong, but the behavior I've seen is consistent with it being 50ms. New version will allow for any timer speed in an elegant fashion :)

     

    -Stephen

     

    1) Is it in the current version? The hacked dswifi link is not working anymore. What are the changes required in the wifi lib???

  3. Hi,

     

    I'm currently working on a DS multiplayer action game (only 2 players for now). This is a port from a PC game that uses TCP for the networking.

     

    In that game, I send the stylus position and buttons to the other player every "n" frames (where n is a compile time constant and I use a modulo to update/send the controls only every n frames).

     

    The PC game used to run fine at 30 FPS while sending the inputs every frame (on a LAN with 4 players), so what I'm trying to do on DS is to send the inputs at least every 2 or 4 frames (after more than 6 frames we start to notice the "lag" with the inputs.)

     

    However, I seem to be having latency problems... With ~6 frames of delay (~100ms), after a few seconds, I start receiving the inputs lately (network lag waiting for recv). I created a simple PC v.s. DS program to calculate the round trip time on the PC. The program is very simple. The PC connects to the DS and when you press a key, it sends a short message to the DS and wait for an answer. That way, I calculated a round trip around 50-60ms, which is really high... PC to PC, it was never going higher than 20ms...

     

    I tried changing the timer3 frequency (the timer used to call Wifi_Timer(ms) and update the wifi). If I use a higher frequency without changing the Wifi_Timer parameter (ms since last call), I seem to have a better round trip time, but I really don't know what should be change in my case to have the best results...

     

    Any idea?

     

    (By the way, I'm using PAlib, so I changed the timer3 period defined in PAlib (50ms).)

     

    Thanks for your help!

     

    JF

     

    P.S. I'm using blocking sockets. In order not to block on recv() calls, I use select().

  4. I erased all WFC settings and then added a new AP. After this, any program using wifilib works(beup, wifi test,...), but after another reset, it doesn't work anymore until i erase all WFC settings again.

     

    I'm not sure I understand. You erased all WFC settings in a commercial game and added back an AP in that game, then loaded a program using the wifi lib? How can you "not reset" between the time you add a new AP and the time you load a wifilib program?

  5. I have a problem connecting with dswifilib. I downloaded version 0.3a and tried the wifi_lib_test app, but it will not connect to the access point. It stops at ASSOCSATUS_SEARCHING. I tried using WFC settings and manually. Wardriving will not see any access points either, even though I know there are a few in radio range. Packet capture does not capture anything. The wifi_example program cannot connect, either.

     

    I have tried other homebrew too. DSMail does not work, but strangely DSOrganize can connect. I'm not sure what the difference is, since it uses dswifilib as well.

     

    Official games can connect and use wifi without a problem. I am using a DS Lite (in the US, if there are different regions) with a EZ Flash 4 Lite.

     

    I have tried compiling my own copy of dswifilib and testing apps. The wifi_example app does not work (will not connect; same as provided binary), and the wifi_lib_test app will not compile (missing ascii_bin.h).

     

    Any thoughts?

     

    I have the same problem using M3 minsd on DS clasic, the strange thing is that I was able to connect but only a few times... this is not a router problem because my original mariokart can connect without problems to my router.

     

    I was trying to use beup but the problem happens, after adding another accesspoint to WFC, beup ran with no problems but after reset the same problem happens and adding more accesspoints did not help. After that, I tried deleting the WFC data in firmware (using MarioKart orginal) then I tried beup and it works again.. but after two resets the problem happens again.. since that I cant connect to my router. I've got the same problem with the two examples in wifilib, so I think it is a bug in the lib.

     

    I was trying to do some debug and I found that in someway the lib doesn't initializate correctly... for example: when I call Wifi_GetData(WIFIGETDATA_NUMWFCAPS,...) returns the correct number of APs in WFC but Wifi_GetNumAP() returns zero and thats why the lib keeps in searching state... I will try to do more research and post it if i found something

     

    NUMWFCAPS is not the same as GetNumAP! The first one is the number of APs you have configured in retail games on your DS. GetNumAP is the number of APs that were found by the scan. No?

×
×
  • Create New...