TASEmulators / BizHawk

BizHawk is a multi-system emulator written in C#. BizHawk provides nice features for casual gamers such as full screen, and joypad support in addition to full rerecording and debugging tools for all system cores.
http://tasvideos.org/BizHawk.html
Other
2.2k stars 385 forks source link

Core config: Defer Deserialization #2188

Closed nattthebear closed 4 years ago

nattthebear commented 4 years ago

Config file storage of core settings and sync settings would not be in an object whose type was eagerly resolved and deserialized at application start, but rather a JObject with actual deserializer binding to be done later.

Benefits:

This change would help ease some of the issues in https://github.com/TASVideos/BizHawk/issues/2094 but not entirely fix it

YoshiRulz commented 4 years ago

Tried moving BizInvoker usage from QuickNES static ctor to static lazy, but it's not being hit by loading shenanigans for the QuickNES type, it's being genuinely hit by QuickNESSettings.SetDefaultColors (called from QuickNESSettings ctor). That overhead isn't going anywhere until we change deserialisation.

nattthebear commented 4 years ago

I think trying to clean up the static initializers will be whack a mole; a general solution with the serializer is more scaleable

nattthebear commented 4 years ago

2f18ad5