EventDataPaddle can now specify whether the values are relative or
absolute values. previously all values were absolute
hardware mice use relative values whereas devices like the stelladaptor
use absolute values
removed gamepad trigger operation of paddles. it was a poor solution to
the problem
float32 pair defined as ports.EventDataPaddle
added functions to convert the float32 to and from a playback entry.
conversion from the playback entry tolerates a single float32 value
meaning that old recording files will work
rename plugging.PortLeftPlayer and plugging.PortRightPlayer to just
plugging.PortLeft and plugging.PortRight
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
userinput for two emulations synced by RIOT ports. RIOT port
driver/passenger synchronisation ensures user input is seen by the
emulations at the same time (relative to the emulation's television)
does not yet handle RNGs (randomise on startup or the RNG in the DPC or
DPC+ formats yet). we need to add a context type first
this prevents thumbsticks from interfering with rewind/pause when it is
in the deadzone but not perfectly centered
correct icon is shown when rewind reaches beginning of buffer. was
showing pause ||. now showing the rewind/pause |<<
this allows more elegant handling of unpause on controller input - no
unpause unless the controller is plugged in. ie. paddle input won't
cause the game to unpause unless the paddle controller is "plugged in"
added gamepad bumper (rewind in playmode) and guide button
(debugger/playmode switcher)
update userinput.EventKeyboard to support Repeat keypresses
in playmode rewind forward/backward occurs on shift-left or shit-right
cursor keys (with repeat)
removed the pause feature (sdlimgui) that caused two-frame kernels to
appear "complete" when paused.
a) it wasn't consistent
b) it can cause single-frame kernels to shimmer
c) it doesn't really work with the rewind system
it'll be addressed in a future commit
added PeripheralID type to complement PortsID type. renamed keyboard
peripheral to keypad, which is more accurate and removes any potential
confusion with the physical keyboard the user might be using
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.
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.