diff --git a/Good Core Bad Core.txt b/Good Core Bad Core.txt new file mode 100644 index 0000000000..3985f8cfff --- /dev/null +++ b/Good Core Bad Core.txt @@ -0,0 +1,20 @@ +Good Core: + +Completely separated from UI. +Minimal MSVCisms or GCCisms in code. +No OS-specific code. +All file IO access can be abstracted away to streams or byte arrays. +Optical disk access, if applicable, through GetToc() and GetSector() type primitives. +Multi-instance capable. +Multi-threading, if applicable, is handled internally. The frontend will call FrameAdvance() + on a single thread and callbacks will be marshalled back to that thread. + +Bad Core: + +Core intertwined with UI and movie recording systems. +Compiles only with oddball/crappilers. +OS-specific system calls everywhere. +Direct file IO that can't be trapped or rerouted easily. +Optical disk access through cruddy cuebin system that can't be replaced easily. +Single instance. +Sloppy multithreading, or main program loop that can't be easily factored out.