aboutsummaryrefslogtreecommitdiff
path: root/arm9/source/devices/system.c
blob: d2aeb7f4243de5b6c52933380d00552e5a02d3a1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "file.h"
#include "system.h"


// Reset a system device.
void system_reset(SystemDevice *system) {
    readbuf_set_pointer(&system->name);
    readbuf_set_pointer(&system->authors);
}

// Return a bitmask representing the connected state of each device.
u16 connected_devices(void) {
    bool devices[16] = {
        /* SYSTEM    */ true,
        /* MEMORY    */ true,
        /* MATH      */ true,
        /* CLOCK     */ true,
        /* INPUT     */ true,
        /* SCREEN    */ true,
        /* TONE      */ false,
        /* SAMPLER   */ false,
        /* STREAM    */ true,
        /* FILE      */ nds_filesystem_enabled(),
        /* CLIPBOARD */ false,
        /* REGISTRY  */ false,
        /* CUSTOM 1  */ false,
        /* CUSTOM 2  */ false,
        /* CUSTOM 3  */ false,
        /* CUSTOM 4  */ false,
    };
    u16 mask = 0;
    for (int i=0; i<16; i++) mask |= devices[i] << (15-i);
    return mask;
}