looking beyond this limit is unlikely to reveal any data of value and it
can only cause excess slowdown for very large files, which are unlikely
to be cartridge files in any case
removed all references to hotloading. will reimplement in the future
made sure then cartridgeloader.Loader instances are closed when no
longer needed. added commentary where required to explain
information pane in the ROM selector window is not disabled when
animation emulation is not running. the load button is still visible
based on the animation emulation
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
preview can be used to run a ROM for a short period in order to gather
information about the ROM that can only be found through execution. this
is useful for example, for setting the TV dimensions
previously, we've relied on the file extension to be set to MVC but this
is a poor solution because it means moviecarts with the .bin file
extension are missed
CDFJ+ fingerprint now accepts any size file so long as the magic string
is present
all CDF variants can be specfied with the -mapping argument or by file
extension (in case fingerprinting does not work)
CDF0
CDF1
CDFJ
CDFJ+
CDF implies CDFJ
curated package predated the standard errors package introduced in
go1.13
the standard package does a better job of what curated attempted to do
the change of package also gave me a opportunity to clean up the error
messages a little bit
this is a curiosity as much as anything else and added to support this
game https://forums.atariage.com/topic/345290-going-bananas-atari-2600/
reading the description however and it seems likely that this will be
subsumed into a larger cartridge at some point. but still, it was an
easy addition
this facilitates A/B testing of two binaries. normally you would want to
prevent a playback with a ROM binary different to one used in the
original recording, but in some instances it is useful
moved controllers and savekeys package to new peripherals package
removed auto controller
changed lazy.Controllers to lazy.Peripherals and Controllers window to
Peripherals window
changed CONTROLLER command to PERIPHERAL command. removed AUTO option
added savekey as an option to PERIPHERAL command and Peripheral window
file extension and -mapping option to indicate superchip for mappers
that support it, changed SC rather than +. For example, "2KSC" and not
"2k+". This avoid confusion with mappers that use the + symbol for other
purposes (for example, DPC+)
cartridge.Attach() will log cartridge insertion with mapping ID
information
removed description field from all cartridge mappers that still had it.
the field was no longer referred to but we may add something similar in
the future
this replaces the supercharger and plusrom activities used with the
VCSHook mechanism
guis can no accept ReqCartridgeEvent feature requests
added tape icon which will show when tape/soundfile is playing
The error mecahnism worked but the VCSHook solution is more general and
has the added benefit of keeping all special-cartridge-handling code
together and keeping it out of the input-loop
regressionDB wasn't storing the requested cartridge mapping correctly.
for example, if no mapping was specified by the user but a mapping was
detected by file extension then the detected mapper was stored. this
caused problems with supercharger audio files - the AR mapping was
stored in the DB but no that it was an audio file
DB now stores the user specified mapping in all instances (ie. not the
mapping detected by the file extension).
related to this was that the deserialisation of DB entries was not using
the cartridgeloader package correctly. instead of using NewLoader, the
deserialisation was populating the Loader type manually.