Commit graph

801 commits

Author SHA1 Message Date
JetSetIlly
547bba947c Added PAL-M TV specification
this replaces the PAL60 specification. PAL60 can still be specified on
the command line (and embedded in ROM filenames) but it is now treated
exactly the same as PAL
2024-01-10 17:42:55 +00:00
JetSetIlly
abc96c90a3 more frequent checking of userinput
checking of communication between gui and emulation goroutines
was too infrequent for effective paddle movement

problem introduced in a7513e3e90
2024-01-10 17:42:11 +00:00
JetSetIlly
5524be92fe peripheral swapping with the -swap argument
the PERIPHERAL SWAP command also added

no corresponding setup entry yet. the setup package needs rewriting to
be more flexible before we do that
2024-01-10 17:42:11 +00:00
JetSetIlly
97b08fa389 recording of rewind state was sometimes missed in playmode
a great way of seeing this bug was with Berzerk Voice Enhanced edition.
the voice after leaving a level caused the rewind.Record() function to
be skipped. this meant that there was a gap in the rewind record
2024-01-09 21:51:02 +00:00
JetSetIlly
f26b96c2af fixed catchup loop when stepping back in instruction quantum
the input loop would be called (and the end of the catchup loop delayed)
on the last cycle of the previous instruction that we want to stop on
2024-01-09 10:51:24 +00:00
JetSetIlly
3e9597b8a2 fixed STEP BACK command for non-INSTRUCTION quantums
bug introduced in v0.26.0

the cause were the changes in the STEP terminal command but because the
GUI uses the terminal to send many commands, it affected the GUI also
2024-01-09 10:31:02 +00:00
JetSetIlly
d04109fdaa moviecart sends notification when attract screen ends
the TV is reset in the same manner as supercharger on receipt of the
notifcation. This allows the TV to auto-detect the specification from
the movie content and not the attract screen

the disadvantage of this is that the NTSC attract screen will show for a
PAL movie but this is a small complaint. the way around this would be
for the first dozen frames of the movie to be run unseen before the
attract screen starts and for the TV to detect the specification from
that
2023-12-07 16:05:23 +00:00
JetSetIlly
5213c4e7d2 cycle quantum steps forward correctly after a backward step
paws icons shown in window for all selected quantums because we may be
at a intermediary color clock regardless of selected quantum. for color
clock "3" however the paws are only shown for quantum Clock
2023-11-27 07:47:30 +00:00
JetSetIlly
9f6cbdad58 added CYCLE quantum
updated QUANTUM and STEP commands to accoodate new quantum

control window changed to support the three quantum options

improved/corrected the conditions under which the ONSTEP command is run

disassembly.ExecutedEntry() updates existing entry
2023-11-27 07:47:30 +00:00
JetSetIlly
85adbca367 improved gopher2600.go structure
removed modalflags package. modalflags was added very early in the
project. it's neater and simpler to implement command-line modes with
the standard flag package directly

improved log message for unsupported terminal type

remove rand.Seed(time) on startup. rand.Seed() is a deprecated function
2023-11-19 20:16:17 +00:00
JetSetIlly
b48d487643 added version package
Makefile now sets the version string for the project. the version
package tries to set a meaningful version string if the project is not
built with the Makefile

added VERSION command
2023-11-08 22:05:41 +00:00
JetSetIlly
f60c88fe55 LAST command updates live bank and disam info when in CLOCK quantum
updating live information is expensive and we only do it after every
instruction normally. however, for the LAST command we need that
information to be current
2023-11-06 15:49:30 +00:00
JetSetIlly
1cc0a66c70 added SECAM support 2023-09-18 19:19:25 +01:00
JetSetIlly
4007e6fc37 simplification of how gui interacts with debugger
removed unused caching fields. renamed function and interface names
related to breakpoints sharing

debugger quantum value is atomic for safe reading outside emulation
goroutine. moved quantum definitions to govern package

simplification of how debugger interfaces with coprocessor debugger/developer
2023-08-26 09:14:54 +01:00
JetSetIlly
12b9f19d1f removed lazy update components. made savekey rewind safe 2023-08-26 09:14:40 +01:00
JetSetIlly
b822a49225 sketched in coprocessor registers window 2023-08-20 18:25:25 +01:00
JetSetIlly
74c3457406 coprocessor interface will return extended registers spec
ammended COPROC REGS function to use new spec system. FPU registers
display formatted values

removed RegisterStatus() function for now. the ARM status register is
more complex in reality than how I've modelled it (CSPR vs ASPR and and
an ESPR in some models). the information is there but not in a coherent
way. probably requires adding a status register group
2023-08-20 18:25:25 +01:00
JetSetIlly
aacea11fdb simplified coprocessor interfaces 2023-08-09 15:26:05 +01:00
JetSetIlly
2d02764e60 moved coprocessor interface/types from mapper to coprocessor package
there could be more work to do here to make this more readable
2023-08-09 15:26:05 +01:00
JetSetIlly
3805285115 added COPROC REG FPU command 2023-08-06 19:54:37 +01:00
JetSetIlly
d87740752f added COPROC STEP command 2023-08-04 20:23:42 +01:00
JetSetIlly
6c09425565 macro package improvements 2023-08-03 08:09:44 +01:00
JetSetIlly
c6d7147048 added SetEmulationState() to developer package
this called in the same way as the corresponding functions in the
television and reflection packages

list of locals is updated when emulation is paused. this allows the list
of locals to be visible immediately on program start and when execution
is halted in the VCS part of the execution (as opposed to yielding in
the ARM part of the execution due to a breakpoint)

fixed race condition caused by local variable window
2023-08-01 18:02:13 +01:00
JetSetIlly
3f6bd27324 modal dialog warning that non-supported DWARF data is being used
improved how modal dialogs are handled
2023-07-31 08:57:41 +01:00
JetSetIlly
28a22ab2b3 added coprocessor developer icon to cartridge notification area
corrected display of existing notifications. for example, emulation
notifications (pause, mute, etc.) would not display if cartridge
notification was visible
2023-07-31 08:57:41 +01:00
JetSetIlly
a815f9c6ae improved terminal output for DWARF LOCALS command 2023-07-31 08:57:41 +01:00
JetSetIlly
8a93f5b404 framebase derivation output
improved display of error messages in local variable tooltip
2023-07-29 14:21:53 +01:00
JetSetIlly
59e4b373f6 removed DisableExpensive() from developer package
it's added complexity for very little performance gain
2023-07-28 06:03:58 +01:00
JetSetIlly
b5a7a6f884 removed "ROM Setup" from coprocessor profiling
"ROM Setup" is too confusing a state to be useful. Initialisation, based
on the current emulation state, might be more helpful but it fails for
the same reason as "ROM Setup" (which was based on screen stability) in
that it doesn't really fit in with the current method of keeping
profiling statistics

renamed KernelVCS (from profiling package) to Focus. this better
describes what the intention of the type is

renamed Performance window to Profiling
2023-07-28 06:03:58 +01:00
JetSetIlly
e462abcfa8 moved coprocessor/developer illegalAccesses into dedicated faults package
renamed references to illegal accesses to faults. the new name is
simpler and more flexible

faults locking was already independent of source lock

single MemoryFault() function in coproc developer interface

simplified faults window
2023-07-28 06:03:58 +01:00
JetSetIlly
784143f920 moved coprocessor/developer yield into dedicated package
yield locking was already independent of source lock
2023-07-28 06:03:58 +01:00
JetSetIlly
00a941b8c7 moved coprocessor/developer breakpoints into dedicated package
breakpoint locking independent of source lock
2023-07-28 06:03:58 +01:00
JetSetIlly
82ab2d4568 moved coprocessor/developer callstack into dedicated package
callstack locking independent of source lock
2023-07-24 16:11:48 +01:00
JetSetIlly
e5045458cf coprocessor/developer package refactor
after work on callstack in the previous commit it became more apparent
than ever that this package needs a major refactor in order to improve
clarity
2023-07-24 16:11:48 +01:00
JetSetIlly
f1b019f45b work on improving callstack in the developer package 2023-07-24 16:11:48 +01:00
JetSetIlly
5cfb04aa97 corrected stack protection bug that caused false positives 2023-07-23 02:44:34 +01:00
JetSetIlly
020ca25f50 corrected ARM breakpoint detection after a branch
because of how we have implemented branches we need special
consideration for breakpoints afterwards. the branch instruction will
have altered the PC and adjusted it for the pipeline fill (cycle
accumulation for the pipeline fill is handle indpendently). because of
that we need to test for a breakpoint for the PC before the pipeline
fill
2023-07-19 20:34:28 +01:00
JetSetIlly
61b4c07b65 thumbnailer (animation and image) implement CartYieldHook
a cartridge with a coprocessor that had failed for some reason would
cause the thumbnailer goroutine to halt

in the case of the thumbnailer.Image type this would lock the UI
goroutine. and in the case of the thumbnail.Anim type it would lock the
goroutine that had been launched to produce the animation

added YieldHookResponse to better indicate the intention of the
CartYieldHook
2023-07-18 09:26:39 +01:00
JetSetIlly
81f4a83490 more flexible yield information 2023-07-17 15:50:07 +01:00
JetSetIlly
655fcb7760 added govern.Initialising test to debugger.CartYeild implementation
this prevents the emulation getting itself into a bad situation on
insertion of an ARM using cartridge
2023-07-17 15:50:07 +01:00
JetSetIlly
732c433cd2 tidied and simplified test package 2023-07-06 13:49:18 +01:00
JetSetIlly
7f4126d226 added COMPARISON command
timeline window uses new command to make changes

comparison point can be locked
2023-06-18 21:25:07 +01:00
JetSetIlly
bde74a49b2 more timeline improvements/fixes
orange TV icon used to show current rewind position

fixed frame guide labelling

comparison point can be set from the popup menu
2023-06-18 21:25:07 +01:00
JetSetIlly
7b352310e3 fixed bug that cause terminal to open on debugger.UserQuit
the debugger.UserQuit error needs to be filtered before it can printed
to the terminal. the test was there but the logic was inverted causing
all errors except debugger.UserQuit to be filtered
2023-06-17 06:54:29 +01:00
JetSetIlly
12061a4aaa added DWARF CALLERS command 2023-06-14 19:06:24 +01:00
JetSetIlly
80518367b2 corrected rewind behaviour at beginning of ROM
added rewind.Peephole() function to better illustrate the current state
of the rewind history
2023-06-05 11:30:19 +01:00
JetSetIlly
a8009b513f simplified the setting of FPS cap from the command line
command line now only accepts true/false as options. previously, the
options were aimed at allowing different syncing methods with the
monitor but that's not needed now
2023-05-23 20:26:50 +01:00
JetSetIlly
9cb6cce02e added macro package and command line option
screenshot request to GUI system can specify a filename
2023-04-20 23:01:31 +01:00
JetSetIlly
6c3035e143 renamed hardware/instance package to environment 2023-04-16 21:24:09 +01:00
JetSetIlly
aa4da3d979 improved tracker behaviour when rewinding
better visuals for tracker window

sketched in idea for a tracker "replay" feature that will allow a
selection of audio output to be replayed. it works in principal but is
not currently used
2023-04-16 10:46:57 +01:00