* Lazily update readout circuit simulation as soon as the pin
changes
* Always assume that "max resistance" means "connected to ground"
* Minor accuracy improvements
until after an instruction was executed. Also, toggle-able widgets
(pixel and bits) in the debugger can now be toggled with a single
mouse click, not a double-click. These fix issue #15.
This is enabled in the UI or through the 'tv.phosphor' commandline
argument. Note that what was previously 'tv.phosphor' (for setting
the blend level) is now 'tv.phosblend'.
Updated documentation in various places.
Fixed crash when attempting to enter "Video Settings" from the
ROM launcher; in that case, 'Debug Colors' must be disabled, since
the widgets only take effect in emulation mode.
Added new 'tv.phosphor' commandline argument to accomplish the above,
and associated UI item in Video Settings.
Updated docs for 'tv.phosphor' and 'tia.debugcolors'. More work is
needed on this, since I need to add screenshots for this new functionality.
This is allowed, since after analyzing the code, we see the pixel format
will always be ARGB8888 mode, so we can hard-code the logic to do the
conversion.
This leads to a measurable performance improvement, since we eliminate
3 function calls per RGB colour lookup. And the calls themselves involved
IF statements and various other shifts that weren't needed. Assuming
normal phosphor mode with 160x210 pixels, this saves 100,800 function calls
per frame!
This has been in patch form for about a year, and I'm finally
getting around to applying it. Basically, we separate the Cart
class into 3 classes:
- Cart: stuff specific to cartridge emulation
- BSTypes: various bankswitch types, both as enum and strings
- CartDetector: actual bankswitch auto-detection code
Also made more use of smart pointers, and added const in a few
more places.
I promise to get back to the phosphor stuff soon. This is just
to clear my head a little.
the fixed debug colors to user-defined preferences. Note that there
are 6 registers (P0,M0,P1,M1,PF,BL), and the option takes a string
of 6 characters, where each represents a colour for the respective
positional register (ROYGBP are the choices).
I may add a UI item for this, but this is as far as I will go with
allowing user editing.