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
peeking/poking by cpubus.register didn't work. this didn't effect
peeking/poking via debugger memory but it did when peeking/poking
directly into VCS memory, like we do in the lazy value system
sharing of preferences between emulation instances is safe due to the
nature of the underlying prefs package.
however for performance purposes the TIA emulation requires plain
variables rather than the goroutine-safe prefs values. this caused
race-errors when two emulation instances were running side by side and
when the TIA revision information was changed
to remedy this, the instance package now makes a copy of the live
revision preference values. the TIA emulation accesses revision
information through the LiveRevisionPreferences type rather than the
RevisionPreferences type directly
"Follow CPU" will focus when option is set. disasm will not focus on PC
address on pause if "Follow CPU" is not set.
additional notification in disasm window to indicate when coprocessor is
active
moved DefnCycles from disassembly.Entry to instructions.Cycles type.
and now created during generation of instructions table. it makes more
sense to have the formatted string nearer the source of definition and
simplifies the disassembly.Entry type.
removed LookupSource() from CartCoProcDeveloper interface - there is no
need to call it from a coprocessor implementation
added COPROC command. includes ID and LIST ILLEGAL and LIST SOURCEFILES options
moved disassembly.coprocessor package to coprocessor.disassembly.
main disassembly package no longer cares are about the coprocessor
disassembly.
fixed caused by crash when switching carts (from ARM to nonARM) when the
CoProc Disasm window is open (there's a brief moment when the cartridge
reports having a CoProcessor bus but there is no coproc disassembly in
the debugger. the difference is caused because the coproc disasm is not
part of the lazy system so we see the results first)
a change in how frametriggers on mode change caused multiple reflection
counters to be added - meaning that every counter after the first simply
returned 0 counts of a NewFrame()
two solutions to prevent this from happening:
1: in Debugger.setMode() all debugging frame triggers are removed before
(re)adding the ones we want for the mode
2: AddFrameTrigger() checks the trigger list for the pointer and only
adds if that specific pointer is not present (also added this check
for pixel renderers and audio mixers)
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.
INPTx input is masked correctly
RIOT.Ports no longer keep private copies of SWCHA, SWACNT, SWCHB or
SWBCNT. added ChipRefer() to ChipBus interface. this makes the interface
with memory more natural. for example, a POKE command will now correctly
be referred to by the Ports implementation in all instances.
INPTx data mask was wrong. bit 6 is now "driven"
ZeroPageIndexedX and ZeroPageIndexedY did not cause a phatom read as
they should. cycles were accumulated correctly but no phantom read - I
missed this when adding the phantom reads to the CPU
autodetction of ARM memory model for CDF format
mapfile and objdump file opened and parsed and used to identify illegal
memory access
ARM function addressed for CDF mapper corrected so they work with PlusROM
playback/recorder and driven input systems moved out of the the ports
package and into a new input package. how the input systems interact has
been clarified and improved - for example, it is now posssible for a
playback file to be used to drive two emulations for comparison purposes
the debugger startup procedure has been clarified with two distinct
startup functions for playmode and debugger - each of which take
different arguments. the clarity has allowed the reintroduction of
recording and playback to the main play mode
this is now used when passing events and event data around. it also
records the port and time (in TV coordinates) which are required by
driver/passenger synchronisation and playback recording
removed television interfaces from signal package and moved the
interfaces to where they are needed
set defaults for revisions, rewind and ARM tabs of the prefs window (in
addition to the CRT tab). set defaults button labelled appropriately
fixes some race conditions caused by pre/post hooks on prefs values -
prefs values are generally goroutine safe, except when pre/post hook is
defined