all SetPixel() function now set VBLANK pixels to 'VideoBlack' via a call
to GetColor(), rather than setting the RGBA values directly. except the
video digest, which remains a special case
this complete work from the previous commit 68263991f
calls to Logf() which do no formatting replaced with Log()
calls to Log() with Sprintf() replaced with Logf()
error types sent without use of Error(), taken advantage of new logger
package features
correct construction of wrapped errors in eeprom package
for example, the ROM selector created a new thumbnail animation with
the AUTO spec when it's more appropriate to use the creation spec of
the main emulation
this is instead of swapping FrameInfo information and setting the
resizer values based on that. this is used by the television in
conjuction with the preview package
this fixes a problem where some ROMs when given the command line
directive to use the PAL spec is contradicted by the preview emulation.
this seems to be a particular problem with PAL ROMs that never set a
valid VSYNC signal. Nightstalker is a good example of such a ROM
the logger.Permission interface indicates whether the environment making
the logging request is allowed to create new log entries. the
environment.Environment type satisifies the Permission interface
logger.Allow is provided as a convienient way of indicating the the log
entry should always be created
notifications interface instance moved to environment from
cartridgeloader. the cartridgeloader package predates the environment
package and had started to be used inappropriately
simplified how notifications.Notify() is called. in particular the
supercharger fastload starter no longer bundles a function hook. nor is
the cartridge instance sent with the notification
a cartridge with a coprocessor that had failed for some reason would
cause the thumbnailer goroutine to halt
in the case of the thumbnailer.Image type this would lock the UI
goroutine. and in the case of the thumbnail.Anim type it would lock the
goroutine that had been launched to produce the animation
added YieldHookResponse to better indicate the intention of the
CartYieldHook