☐ Save/load UI ✔ Basic version @done(20-01-03 15:27) ☐ Multiple slots etc. ☐ Custom texture cache ☐ Review constructor/initialization code ☐ Review core timing events ☐ Review base class serialization everywhere Make sure that all base/derived relationships are registered ☐ Serialize codeset with an apploader reference instead ✔ CPU @done(19-08-13 15:41) ✔ Memory @done(19-08-13 15:41) ✔ Page tables @done(20-01-05 16:33) Need to change uses to shared_ptr ✔ Skip N3DS RAM if unused @done(20-01-03 23:26) ✔ 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 ✘ 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) ✔ 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) @done(20-01-06 20:37) @lasted(20w6d4h54m19s) ✔ Kernel @started(19-08-13 16:43) @done(20-01-06 20:37) @lasted(20w6d4h54m17s) 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(20-01-04 21:09) ✔ 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) @done(20-01-03 15:15) @lasted(1w4d20h34m2s) 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 @done(20-01-03 15:25) This is needed because IPC can take as long as it takes Changed the unique_ptr to vector ✔ Session @done(19-08-13 16:44) ✔ Shared memory @started(19-12-22 21:20) @done(20-01-04 21:09) @lasted(1w5d23h49m26s) Need to figure out backing memory (a u8*) ✔ Shared page @done(20-01-04 21:09) ✔ SVC @done(19-12-22 21:32) Nothing to do - all data is constant ✔ Thread @started(19-08-13 16:45) @done(20-01-06 20:01) @lasted(20w6d4h16m22s) 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) @done(20-01-04 21:09) @lasted(20w4d5h23m42s) Just need to figure out backing_mem (a u8*) ✔ Wait object @done(19-08-13 16:46) ✔ Service @started(19-12-23 12:49) @done(20-01-05 16:41) @lasted(1w6d3h52m17s) ✔ 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) @done(20-01-03 23:38) @lasted(1w1d13h1m50s) 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 @done(20-01-04 00:29) Didn't quite 'fix' it but worked around it ✔ 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 @done(20-01-05 16:41) ✔ 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)