SearchRegisterWrite() now correctly leaves the found state in a usable
state at a CPU instruction boundary
DeepPoke runs from found ultimate found state to the "current" state
updated README
implemented deep-poking of playfield values. there may be pathological
instances where this does not work. not all addressing modes have been
added to the deep-poke function.
to be clear, non-playfield graphic elements (player, missile, ball) have
not had this feature added yet.
will probably also require some way of feeding back information, making
it clear what has actually happened or actually changed. changing of an
immediate value should probably trigger a redisassembly.
added some icons to debugging screen. more will be added
embedded fontawesome free webfonts and a minimal Gopher2600-Icons font
that contains the controller images
bumped minimal go version to 1.16 to support the new embed directive
result of cartridge Mapping() function can result in strings of varying
length in a very short period, which caused the draw routine to flicker
more flexible Mapping() function required
the amount of travel in the analogue stick is just too small for it to
be useful for paddle control IMO.
triggers still control paddle but no longer self-centre. the center
position is different for different games. also, it makes some games too
easy.
better SYMBOL command
symbols package better understands cartridge hotspots. some hotspot
symbols are very specific about the address and are not mappable in the
same way other symbols are
ejected cartridges now report having one bank, rather than zero. this
is really to sypport the symbols_test but it shouldn't do any harm
elsewhere.
symbols package now safe to use in threaded code
symbols search returns normalised symbol name (ie. as it appears in the
symbols table). the effect of can be seen with the PEEK and POKE
commands for example.
disasm window bank selector will scroll to bank
- useful for cartridges with lots of banks
disasm window follows PC on step as well as run. added new GuiState to
support this.
debugger and playmode refer to userinput package rather than the common
code being in the playmode package
GUI events are now userinput events
more versatile handling of EventData in controller package. parsing of
EventData is handled by the controller types as required. added
EventDataPlayback type to ports package to help distinguish source of
data.
EventDataStick used to specify stick data value. used to help
distinguish between setting a stick direction and toggle a stick
direction. the latter case is useful for (physical) gamepad input and
the former for input from a keyboard.
Gamepad analogue stick can be used for paddle input. PaddleFire removed
and Fire used instead.
version number of playback file increased to 1.1. version detection of
recorder.IsPlaybackFile() improved.
golangci-lint v1.38 replaced maligned with this new linter. I'm not too
bothered about aligned structs except in very limited cases so it's
better to run this manually when those structs change.