I had a version of cnquake that compiles with the current devkitarm. I put it on github:
https://github.com/elhobbs/cnquake
This is the version for network play. it supports connecting to an AP with the ds default connection settings or connect locally with "DSNIFI". one ds selects "Create new DSNIFI" after starting cnquake - and the other systems select "Connect to DSNIFI". the other system will see the username of the host ds in the list. Once the host starts a network game then the other systems can can search for a local game and connect. so basically the first ds acts as an AP.
it takes about 30 seconds for "Connect to DSNIF" to show a list - so dont assume it has crashed or that is hung. sometimes the second ds will fail to connect - you can tell as the ip address will be 192.168.0.1 (as shown in the quake join a game menu). the last digit should be greater than 1. if it fails then you generally have to do a hard power off before trying again, but it generally seems to work most of the time. This version has also been updated to work in dsi mode, but it still just uses the ds wifi hardware.
C:\Users\TheMiningBoy\Documents\cnquake-main\cnquake-main>make
make -C arm7
make[1]: Entering directory '/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7'
hw_auth.c
arm-eabi-gcc -MMD -MP -MF /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build/hw_auth.d -g -Wall -O2 -mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer -ffast-math -mthumb-interwork -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/fixpt/pub -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/ds/common/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../common/include -I/opt/devkitpro/libnds/include -I/c/devl/cnquake/helix/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -DARM7 -DARM -DUSE_DSNIFI -c /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_auth.c -o hw_auth.o
hw_beacon.c
arm-eabi-gcc -MMD -MP -MF /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build/hw_beacon.d -g -Wall -O2 -mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer -ffast-math -mthumb-interwork -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/fixpt/pub -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/ds/common/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../common/include -I/opt/devkitpro/libnds/include -I/c/devl/cnquake/helix/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -DARM7 -DARM -DUSE_DSNIFI -c /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_beacon.c -o hw_beacon.o
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_beacon.c: In function 'hw_send_auth_resp_frame':
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_beacon.c:114:6: warning: unused variable 'i'
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_beacon.c: In function 'hw_process_auth_request':
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_beacon.c:159:6: warning: unused variable 'data'
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_beacon.c: In function 'hw_process_probe_request':
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_beacon.c:170:32: warning: unused variable 'channel'
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_beacon.c:170:22: warning: unused variable 'ssid_len'
hw_data.c
arm-eabi-gcc -MMD -MP -MF /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build/hw_data.d -g -Wall -O2 -mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer -ffast-math -mthumb-interwork -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/fixpt/pub -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/ds/common/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../common/include -I/opt/devkitpro/libnds/include -I/c/devl/cnquake/helix/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -DARM7 -DARM -DUSE_DSNIFI -c /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_data.c -o hw_data.o
hw_init.c
arm-eabi-gcc -MMD -MP -MF /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build/hw_init.d -g -Wall -O2 -mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer -ffast-math -mthumb-interwork -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/fixpt/pub -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/ds/common/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../common/include -I/opt/devkitpro/libnds/include -I/c/devl/cnquake/helix/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -DARM7 -DARM -DUSE_DSNIFI -c /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_init.c -o hw_init.o
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_init.c: In function 'GetWfcSettings':
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_init.c:220:6: warning: unused variable 'wfcBase'
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_init.c:218:16: warning: unused variable 's'
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_init.c:217:8: warning: unused variable 'n'
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_init.c:216:5: warning: unused variable 'data'
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_init.c: In function 'hw_init':
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_init.c:252:2: warning: implicit declaration of function 'isDSiMode'
hw_intr.c
arm-eabi-gcc -MMD -MP -MF /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build/hw_intr.d -g -Wall -O2 -mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer -ffast-math -mthumb-interwork -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/fixpt/pub -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/ds/common/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../common/include -I/opt/devkitpro/libnds/include -I/c/devl/cnquake/helix/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -DARM7 -DARM -DUSE_DSNIFI -c /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_intr.c -o hw_intr.o
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_intr.c: In function 'hw_interrupt2':
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_intr.c:347:3: warning: implicit declaration of function 'Wifi_Intr_CntOverflow'
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_intr.c: At top level:
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_intr.c:397:6: warning: conflicting types for 'Wifi_Intr_CntOverflow'
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_intr.c:347:35: note: previous implicit declaration of 'Wifi_Intr_CntOverflow' was here
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_intr.c:151:12: warning: 'tx_count' defined but not used
hw_util.c
arm-eabi-gcc -MMD -MP -MF /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build/hw_util.d -g -Wall -O2 -mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer -ffast-math -mthumb-interwork -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/fixpt/pub -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/ds/common/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../common/include -I/opt/devkitpro/libnds/include -I/c/devl/cnquake/helix/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -DARM7 -DARM -DUSE_DSNIFI -c /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/hw_util.c -o hw_util.o
main.c
arm-eabi-gcc -MMD -MP -MF /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build/main.d -g -Wall -O2 -mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer -ffast-math -mthumb-interwork -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/fixpt/pub -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/ds/common/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../common/include -I/opt/devkitpro/libnds/include -I/c/devl/cnquake/helix/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -DARM7 -DARM -DUSE_DSNIFI -c /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/main.c -o main.o
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/main.c: In function 'main':
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/main.c:86:2: warning: implicit declaration of function 'ledBlink'
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/main.c:92:2: warning: implicit declaration of function 'touchInit'
wifi.c
arm-eabi-gcc -MMD -MP -MF /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build/wifi.d -g -Wall -O2 -mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer -ffast-math -mthumb-interwork -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/fixpt/pub -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/ds/common/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../common/include -I/opt/devkitpro/libnds/include -I/c/devl/cnquake/helix/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -DARM7 -DARM -DUSE_DSNIFI -c /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/wifi.c -o wifi.o
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/wifi.c: In function 'wifi_address_handler':
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/wifi.c:358:18: warning: assignment discards qualifiers from pointer target type
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/wifi.c:359:18: warning: assignment discards qualifiers from pointer target type
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/wifi.c:354:2: warning: enumeration value 'WIFI_MSG_SEND' not handled in switch
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/wifi.c: At top level:
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/wifi.c:344:12: warning: 'tx_count' defined but not used
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/wifi.c: In function 'wifi_process_ap_data':
C:/Users/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/source/wifi.c:140:22: warning: 'ssid_len' may be used uninitialized in this function
mp3_7.c
arm-eabi-gcc -MMD -MP -MF /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build/mp3_7.d -g -Wall -O2 -mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer -ffast-math -mthumb-interwork -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/fixpt/pub -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/ds/common/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../common/include -I/opt/devkitpro/libnds/include -I/c/devl/cnquake/helix/include -I/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build -DARM7 -DARM -DUSE_DSNIFI -c /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/ds/arm7/source/mp3_7.c -o mp3_7.o
mp3_7.arm.s
arm-eabi-gcc -MMD -MP -MF /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/build/mp3_7.arm.d -x assembler-with-cpp -g -mthumb-interwork -c /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/../helix/ds/arm7/source/mp3_7.arm.s -o mp3_7.arm.o
linking cnquake-main.elf
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-eabi/4.5.1/../../../../arm-eabi/bin/ld.exe: cannot find -lhelix
collect2: ld returned 1 exit status
make[2]: *** [/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/Makefile:114: /home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7/cnquake-main.elf] Error 1
make[1]: *** [Makefile:96: build] Error 2
make[1]: Leaving directory '/home/TheMiningBoy/Documents/cnquake-main/cnquake-main/arm7'
make: *** [Makefile:32: checkarm7] Error 2