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
static bool dbg_save_roms(void)
{
    char buf[0x2000];

    int old_irq = disable_irq_save();

    /* map rom at 0 */
    SCU_REMAP = 0;
    commit_discard_idcache();

    /* copy rom */
    memcpy((void *)buf, (void *)0, 0x2000);

    /* map iram back at 0 */
    SCU_REMAP = 0xdeadbeef;
    commit_discard_idcache();

    restore_irq(old_irq);

    int fd = creat("/rom.bin", 0666);
    if(fd >= 0)
    {
        write(fd, (void *)buf, 0x2000);
        close(fd);
    }

    return false;
}