this means that a mapper only needs to implement the Patch() if it makes
sense
mappers that don't need it have had the Patch function removed.
implemented function for SCABS and UA
corrected error messages for atari mappers - some messages weren't
referencing the correct atari mapper and simply stated "atari"
very few cartridge mappers need to return an error but is necessary in
the case of the experimental cartridge shim. merging here because it's a
good change to have
AudioTick() function in tracker interface accepts TrackerEnvironment
instance. tracker implementation differentiates emulation instances and
records AudioTick() information accordingly
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
cartridge access is now divided into Access(), AccessVolatile() and
AccessPassive()
Access() and AccessVolatile() could easily be combined into one function
but I feel it is clearer to keep them separate
hardware/memory.go Read() function refined to be clearer about how and
when the cartridge is accessed
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
addresses and bus interface removed and split into cpubus and chipbus
packages.
ReadZeroPage() no longer has any distinction from normal Read()
function.
double-click in ROM selector loads the cartridge. cartridgine
information below thumbnail. save ROM selection to preferences.
automatically select previous ROM on next session.
lazy system now pulses the update time. is used by the disasm window to
synchronise updating
clearer method of switching between play and debugmodes (not fully
implemented yet)
extended mapper.BankInfo fields to include Name (useful for identifying
BIOS in the supercharger, probably not much else)
cart summary info moved from disam window to menubar
a new demo ROM from Splendidnut (Congo Bongo) was not being detected
correctly.
during testing I noticed that the 8k version of Bump n Jump was not
supported so the MNetwork mapper now supports 8k ROMs in addition to the
documented 16k.
error message corrections.
cart ram/static areas show changes across time
supercharger TV reset after tape load no longer resets frame number.
this affected the rewind system and how it stores historical data.
improved responsiveness of service loop polling
VCSReturnChannel so the television can inform the VCS about a change in
television spec. The VCS uses this information to forward clock
information to the cartridge.Step function
DPC and DPC+ music generators now use correct VCS clock value in all
instances
- 3e
- 3e+
- cbs
- df
- dpc
- dpc+
- mnetwork
- parker bros.
- supercharger
- tigervision
reworked atari cartridge implementations
plusrom passed through all Snapshot() and Plumb() calls to the child
mapper as normal. it adds nothing additional to the saved state.
moved cartridge debugging buses to mapper package
removed banks package and moved/renamed those types to mapper package
renamed IterateBanks() to CopyBanks(). function now returns all banks as
an array.
removed global Passive setting from cartridge. disassembly now only
accesses cartridge memory through a copy of the bank data (CopyBanks())
so it is not needed
removed all messages from errors package. the strings are now hard coded
in place. the original reason for extracting the error strings like that
was (a) for redundancy and (b) for localisation possibilities. However,
in reality there is not much redundancy and since the project started
the scope of localisation is much larger (particularly due to the
addition of a GUI)
this is the first step. the next step is to remove the errors package
altogether. recent additions to Go mean that the functionality of the
errors package is no longer required. moreover, the original idea for
the errors package functions turns out not to have been as useful as
first appeared (the Error() functionality which makes sure no repeating
sub-strings occur is probably better achieved with static tooling).
one idea that comes from this which is quite interesting is the idea of
a curated error. that is, any error that has been "wrapped" as some
'generic' type. the IsAny() function in the errors package effectively
serves this purpose. we use that in one place in the input loop of the
debugger. not strictly necessary but nice to have so it would ideal
if we could remove the errors package but keep that idea.
very rough currently. race conditions in network access, requires
restructuring.
no logging from network access. again, requires some engineering in the
log package to avoid race errors
the note about historical versions also being covered wasn't strictly
needed and was ugly. the LICENCE being in the root file from the very
first commit is sufficient.
all fingerprint code is in the one place (fingerprint.go)
reworked tape loading in preparation for real tape based loading.
introduced tape interface and renamed existing tape structure as
FastLoad. renamed TapeLoaded error to FastLoaded. silenced fastload
debugging messages for now (will re-add when I've implemented the
logging package)
supercharger sends TapeLoaded error signal to indicate when a tape as
finished loading. payload is a function to call in the context of the
VCS hardware, allowing changes to be made to the VCS.
split CartDebugBus into CartStaticBus and CartRegistersBus
moved BankDetails from memorymap to banks package. renamed to Details
removed SetBank() function. not flexible enough to handle all mapper
types and not required except for the CARTRIDGE BANK command, which is
not particularly important.
supercharger not working yet
disassembly window shows "executing from cartridge RAM" message
better disassembly decoding loop. clarified and corrected commentary in
disassembly package. identified some more critical sections in
disassembly package
this results in a better mnetwork disassembly
origin and memtop for disassembled entries are now definable. added
disassembly.FxxxMirror to preferences. PREF command can now set
FxxxMirror option. Added checkbox to win_prefs
renamed Iterate to IterateBank and added IterateCart
UpdateEntry() ignores any result not in the cartridge ROM space
tidied-up/unified preference files in debugger/disassembly/hiscore
packages
removed SaveState() and RestoreState(). added Passive flag to prevent
active changes caused by reading of cartridge
corrected disassembly iteration when first match is the first entry in
the list
tidied up String() values for all cartridge types
debugger now displays cartridge filename in menu bar, instead of disasm
window
CARTRIDGE command reports filename without args and mapping summary with
BANK command