Hi,
This code:
Code:
#include <nds.h>
#include <stdio.h>
int main()
{
consoleDemoInit();
iprintf("Hello World!\n");
soundEnable();
int i;
for (i = 0; i < 60; i ++) swiWaitForVBlank();
soundDisable();
iprintf("Now try to close the lid!\n");
for(;;);
swiWaitForVBlank();
}
has a problem after soundDisable() is called: if the lid is closed, the ARM7 hangs. I've done some debugging, and this ARM7 line appears to produce the problem:
Code:
void disableSound() { // libnds/source/arm7/audio.c, line 139
(...)
powerOff(POWER_SOUND);
}
I'm using the latest version of everything.
EDIT: libnds/source/arm7/system.c, line 64, function powerValueHandler():
Code:
swiChangeSoundBias(0,0x400);
(...)
swiChangeSoundBias(1,0x400);
This won't work because sound registers don't work when the sound HW is powered off. I'd suggest to add a check to only call swiChangeSoundBias() when REG_POWERCNT's bit0 is 1.