☐ Save/load UI
✔ CPU @done(19-08-13 15:41)
✔ Memory @done(19-08-13 15:41)
    ☐ Page tables
    ☐ Skip N3DS RAM if unused
✔ DSP @done(19-12-28 16:57)
    Memory only
✔ Service manager @started(19-12-23 00:36) @done(19-12-23 11:38) @lasted(11h2m3s)
    ✔ Fix or ignore inverse map @done(19-12-23 12:46)
✘ App loader @cancelled(20-01-01 22:59)
    No relevant state
✔ Archive manager @started(20-01-01 23:03) @done(20-01-03 13:23) @lasted(1d14h20m40s)
    NB that 'FileBackend' classes are not persistent
    ✔ NCCH @started(20-01-02 22:50) @done(20-01-03 12:35) @lasted(13h45m50s)
        ✔ Normal @done(20-01-02 22:50)
        ✔ Self @done(20-01-03 12:35)
    ✔ SaveData @started(20-01-02 23:03) @done(20-01-02 23:27) @lasted(25m)
        ✔ Normal @done(20-01-02 23:03)
        ✔ Ext @done(20-01-02 23:26)
        ✔ Other @done(20-01-02 23:21)
        ✔ Source SD @done(20-01-02 23:03)
        ✔ System @done(20-01-02 23:13)
    ✔ SDMC @done(20-01-02 23:34)
        ✔ Normal @done(20-01-02 23:34)
        ✔ Write-only @done(20-01-02 23:34)
    ✘ IVFC @cancelled(20-01-03 13:22)
        Seems IVFCArchive is never used.. which is good because it has a file reference!
    ✘ File refs @cancelled(20-01-03 13:22)
        Not needed as nothing serializes file buffers
    ✘ Replace delay generator with virtual fns @cancelled(20-01-03 13:16)
        While they have no state, the extra refactoring here is unneeded
☐ Custom texture cache
✘ MMIO @cancelled(20-01-01 01:06)
    Seems that this whole subsystem is only used in tests
✘ Movie @cancelled(20-01-01 01:07)
    Doesn't need to be serialized here
✘ Perf stats @cancelled(20-01-01 01:09)
    Doesn't need to be serialized here
✘ Settings @cancelled(20-01-01 01:11)
    For now, let the settings just be whatever they are
✘ Telemetry session @cancelled(20-01-01 01:12)
    Doesn't need to be serialized here
✔ Replace SERIALIZE_AS_POD with BOOST_IS_BITWISE_SERIALIZABLE @started(20-01-03 13:47) @done(20-01-03 13:58) @lasted(11m22s)
☐ Review constructor/initialization code
✔ Fix CI @done(19-12-31 21:32)
✔ HW @done(19-08-13 15:41)
    ✔ GPU regs @done(19-08-13 15:41)
    ✔ LCD regs @done(19-08-13 15:41)
✔ Video core @started(19-08-13 16:43) @done(19-12-22 16:06)
    ✔ Geometry pipeline @done(19-12-22 15:52)
        Required more use of g_state
    ✔ PICA state @done(19-08-13 15:41)
    ✔ Primitive assembly @done(19-12-22 16:05)
    ✔ Shader @done(19-08-13 16:03)
☐ HLE @started(19-08-13 16:43)
    ☐ Kernel @started(19-08-13 16:43)
        Most of these require adding Core::Global
        ✔ Address arbiter @done(19-08-13 16:40)
        ✔ Client port @done(19-08-13 16:40)
        ✔ Client session @done(19-08-13 16:40)
        ✔ Config mem @done(19-08-13 16:40)
        ✔ Event @done(19-12-22 18:44)
        ✔ Handle table @done(19-08-13 16:42)
        ✔ HLE IPC @done(19-12-23 00:36)
        ✔ IPC @done(19-12-23 00:36)
        ✔ Memory @started(19-08-13 16:43) @done(19-12-22 18:34)
        ✔ Mutex @done(19-08-13 16:43)
        ✔ Object @done(19-08-13 15:41)
        ✔ Process @started(19-08-13 16:43) @done(19-12-22 18:41)
        ☐ Code set @started(19-12-22 18:41)
            Needs a way to reference loaded images (so we don't serialize the entire ROM as well)
        ✔ Resource limit @done(19-08-13 16:43)
        ✔ Semaphore @done(19-08-13 16:44)
        ✔ Server port @done(19-08-13 16:44)
        ✔ Server session @done(19-08-13 16:44)
            ☐ Mapped buffer context
                This may not be needed!
        ✔ Session @done(19-08-13 16:44)
        ☐ Shared memory @started(19-12-22 21:20)
            Need to figure out backing memory (a u8*)
        ✘ Shared page @started(19-08-13 16:44) @cancelled(19-12-22 11:19)
            Not needed right now as shared_page is read-only and derived from other data
        ✔ SVC @done(19-12-22 21:32)
            Nothing to do - all data is constant
        ☐ Thread @started(19-08-13 16:45)
            This requires refactoring wakeup_callback to be an object ref
        ✔ Timer @done(19-08-13 16:45)
        ☐ VM Manager @started(19-08-13 16:46)
            Just need to figure out backing_mem (a u8*)
        ✔ Wait object @done(19-08-13 16:46)
    ☐ Service @started(19-12-23 12:49)
        ✔ AC @started(19-12-23 12:48) @done(19-12-24 22:38) @lasted(1d9h50m3s)
        ✔ ACT @done(19-12-24 23:17)
        ✔ AM @started(19-12-24 23:17) @done(19-12-24 23:53) @lasted(36m8s)
        ✔ APT @done(19-12-25 21:41)
        ✔ BOSS @started(19-12-25 21:48) @done(19-12-25 23:18) @lasted(1h30m14s)
        ☐ CAM @started(19-12-26 10:37)
            Need to check capture_result
        ✔ CECD @done(20-01-01 23:58)
        ✔ CFG @done(20-01-02 00:44)
            Also needs archive backend..
        ✔ CSND @started(19-12-26 17:51) @done(19-12-26 17:56) @lasted(5m30s)
        ✔ DLP @done(19-12-26 18:02)
        ✔ DSP @done(19-12-26 18:10)
        ✔ ERR @done(19-12-26 18:14)
        ✔ FRD @done(19-12-26 19:09)
        ✔ FS @done(19-12-27 11:46)
        ✔ GSP @done(19-12-30 12:45)
            ☐ Fix the global weak_ptr to gsp
        ✔ HID @done(19-12-30 14:46)
        ✔ HTTP @done(19-12-30 15:18)
        ✔ IR @done(19-12-30 16:06)
        ✔ LDR_RO @done(19-12-30 16:25)
        ✔ MIC @done(19-12-30 16:53)
        ✔ MVD @done(19-12-31 18:26)
        ✔ NDM @done(19-12-31 18:26)
        ✔ NEWS @done(19-12-31 18:29)
        ✔ NFC @done(19-12-31 20:35)
        ✔ NIM @done(19-12-31 21:08)
        ✔ NS @done(20-01-01 00:46)
        ✔ NWM @done(20-01-01 21:31)
            ☐ Fix wifi_packet_received?
        ✔ PM @done(20-01-01 22:14)
        ✔ PS @done(20-01-01 00:54)
        ✔ PTM @done(20-01-01 22:36)
        ✔ PXI @done(20-01-01 00:53)
        ✔ QTM @done(20-01-01 22:41)
        ✔ SOC @done(20-01-01 00:51)
        ✔ SSL @done(20-01-01 00:48)
        ✔ Y2R @done(20-01-01 22:56)