Commit graph

3103 commits

Author SHA1 Message Date
JetSetIlly a75909c5ab async archivefs could include incorrect entries
this could happen when changing directories when a previous list was
ongoing. this was supposed to have been fixed in fcb8439 and 02bb6a33
but both were incorrect in some sitations

the new solution correctly waits for a cancel to complete using a mutex
2024-05-30 23:12:50 +01:00
JetSetIlly f65241fce2 improved communication of preview results from animation thumbnailer 2024-05-29 14:47:40 +01:00
JetSetIlly e2c89701a3 added vet target to Makefile
this runs 'go vet' but filtered through awk so we ignore noisy errors
that we're not interested in

fixed vet error caused by unreturned error type in input package
2024-05-29 11:47:33 +01:00
JetSetIlly 1f036eb565 removed sync.Mutex from properties type
it's not necessary and in fact is an error to make copies of a
sync.Mutex due to how we're using instances of the properties type
2024-05-29 10:33:24 +01:00
JetSetIlly fcb8439531 archivefs fix committed in 02bb6a33 was incorrect/incomplete 2024-05-29 10:23:45 +01:00
JetSetIlly 0c8b2d2450 added audio comparison to comparison package
changed comparision/diff texture to linear and clamped scaling

comparison window will not be open on following session

if a comparison window was left open on program exit, it remained
open when the program is started again, even if there was no
comparison ROM specified. comparison window will now be closed
under those circumstances
2024-05-28 16:43:23 +01:00
JetSetIlly 02bb6a3355 solved deadlock in asynchronous use of archivefs
setting a new path could deadlock if a previous set was still being processed
2024-05-28 16:43:23 +01:00
JetSetIlly e0a792083c corrected RemoveRealtimeAudioMixer() function
the function is not used currently but it should be correct none-the-less

reset realtime mixer in television on Reset()
2024-05-28 16:43:23 +01:00
JetSetIlly 42ff5a2587 spelling correction of "Thomas Jentzsch" in comments :-) 2024-05-28 16:43:18 +01:00
JetSetIlly 5d49542e94 added hash for WF8 variant of Zaxxon
we'll continue to use MD5 hashes for matched WF8 until more examples are found,
at which point a more general fingerprint will be more appropriate
2024-05-28 08:37:20 +01:00
JetSetIlly ab35aae516 implemented WF8 mapper 2024-05-27 16:39:15 +01:00
JetSetIlly 873dac62d4 moved monitorSyncHigher test in screen.go
the test now affects whether the wait channel is used. the frameQueue is
not affected directly

this fixes problems with the screen not appearing to update (in
playmode) when the TV is of a higher refresh rate than the monitor. this
happened intermittently depending on where the frame queue indexes where
at the time the TV settled on the problem frequency, so it was difficult
to debug. however it happened more-or-less consistently when running the
Todd Frye version of xevious
2024-05-25 21:55:47 +01:00
JetSetIlly 6abcc220fc mNetwork incorrectly fingerprinted
bug introduced in 69620c50
2024-05-24 09:52:20 +01:00
JetSetIlly ef8d32e107 tracker replay emulation uses current TV spec of main emulation 2024-05-22 12:46:00 +01:00
JetSetIlly f285835540 global cycle regulator for ARM instructions 2024-05-22 10:31:34 +01:00
JetSetIlly fa54b74198 TV SPEC shows 'actual' and 'requested' spec ID 2024-05-21 22:46:18 +01:00
JetSetIlly 03b9854e92 improved TV spec selection combobox in debugger TV screen window
AUTO is a checkbox that can be toggled
2024-05-21 19:34:15 +01:00
JetSetIlly 5bd9cd1f5a changing TV SPEC while paused will update the spec as expected
the rewind system is used to rerun the previous 10 frames thereby creating
an image that immediately reflects the selected specification
2024-05-21 19:18:12 +01:00
JetSetIlly a4b848e0c8 thumbnail animation changed TV spec on Create() function 2024-05-21 18:20:43 +01:00
JetSetIlly 2aa2a11ba6 SetSpec() to AUTO and with the forced works as expected
setting the spec in this manner changes the creation Spec ID. this means
that is the spec is changed by the TV SPEC command or by via the debugger
window, newly loaded ROMs will prefer the creation ID. if the new creation
ID is AUTO then auto-detection and filename directives are preferred

changing the creation ID to AUTO with the forced flag also resets the
stable frames counter. this means that the auto-spec identification will
work as expected on change
2024-05-21 18:09:50 +01:00
JetSetIlly 83ace43f86 NewTelevision called with correct creation spec ID
for example, the ROM selector created a new thumbnail animation with
the AUTO spec when it's more appropriate to use the creation spec of
the main emulation
2024-05-21 18:09:50 +01:00
JetSetIlly 17df98c1ec added "creation Spec ID" to television
this is in addition to the requested Spec ID and the current Spec ID
2024-05-21 18:09:50 +01:00
JetSetIlly 4813dae6c4 ELF system argument uses the television requested spec ID
tracker package uses television spec ID correctly

movie cart tested for PAL60. it should be PAL-M

rewind search functions uses the TV spec of the main emulation

command line "performance" and "regress add" -spec option renamed to -tv

template for TV terminal command uses specification.ReqSpecList
2024-05-21 18:09:50 +01:00
JetSetIlly 8b2f630417 television can inherit resizer instance
this is instead of swapping FrameInfo information and setting the
resizer values based on that. this is used by the television in
conjuction with the preview package
2024-05-21 18:09:50 +01:00
JetSetIlly 141a5f34d2 refresh rate calculation uses correct HSR value for PAL/SECAM
the value for NTSC/PAL-M was already correct
2024-05-21 18:09:50 +01:00
JetSetIlly 9a358831a5 improved SetRotation() functions 2024-05-21 18:09:50 +01:00
JetSetIlly 7fb177c9bc cartridgeloader uses properties to decide on TV spec
properties made goroutine safe
2024-05-21 18:09:50 +01:00
JetSetIlly 69620c5038 amount of data used for mapper fingerprinting reduced to 1k 2024-05-21 18:09:50 +01:00
JetSetIlly d7c71fd49a ELF arguments to main corrected
TV Type set to either NTSC or PAL. Defaults to NTSC

ARM clock speed set correctly
2024-05-20 13:36:54 +01:00
JetSetIlly f3f6008912 corrected all user facing instance of PAL-M
PAL-M string rather than PALM
2024-05-20 09:06:06 +01:00
JetSetIlly 25523d350d data race in thumbnail.Anim.PreviewResults()
actual preview results are sent over the channel rather
than just a signal to retrieve the results
2024-05-19 16:02:57 +01:00
JetSetIlly 1c95bc94b8 preview emulation uses TV spec from command line option
this fixes a problem where some ROMs when given the command line
directive to use the PAL spec is contradicted by the preview emulation.
this seems to be a particular problem with PAL ROMs that never set a
valid VSYNC signal. Nightstalker is a good example of such a ROM
2024-05-18 17:25:09 +01:00
JetSetIlly f9cdb366dd improved reliabilty of archivefs.List()
there was a very small % chance that the List() would end before all
entries had been received

'go test -shuffle on -count 100000 ./archivefs' reports no failures
2024-05-18 15:46:06 +01:00
JetSetIlly 483957986c ROM Select window correctly scrolls to previously selected file 2024-05-17 20:35:36 +01:00
JetSetIlly dd06910403 archivefs optionally sets a 'fallback' path
if the requested path to Set() does not exist, the function will
fallback to largest sub-path that does exist
2024-05-17 20:35:36 +01:00
JetSetIlly 30f9326a82 better asynchronous listing of directory with archivefs 2024-05-17 11:20:22 +01:00
JetSetIlly 51fdd7b822 magnify tooltip/window now uses the current tv colours
texture in magnify tooltip no longer has any transparancy. the tooltip
window has a slight transparancy that the texture inherits
2024-05-16 22:24:08 +01:00
JetSetIlly abce9f0e13 mouse wheel in playmode ignored if mouse if over open imgui window
previously, the open window was ignore. this is most likely to have been
an annoyance when scrolling the listview in the ROM Select window
2024-05-15 21:07:01 +01:00
JetSetIlly fb7c2577de motion screenshot changed to flicker 2024-05-15 11:49:52 +01:00
JetSetIlly 5d8d65d0f1 simplified framebuffer pipeline
clarified how and when the vertex shader should flip the texture

occassional graphical artefacts no longer appear. the artefacts appeared
(or were more noticeable) when the TV image was scaled to certain sizes.
they were caused by incorrect use of the framebuffer. using the same
texture as the source and destination of the shading process does not
work as expected
2024-05-15 11:16:55 +01:00
JetSetIlly f995efa41e better solution for problem in 5549230c
clarified how preset sizing works for the television resizer
2024-05-11 14:46:39 +01:00
JetSetIlly 16761aebe7 reverted 9cd2552 and added comment instead 2024-05-11 14:46:39 +01:00
JetSetIlly 5549230c69 equalised new/atari safe top/bottom value for PAL/SECAM
NTSC still needs this in practice because of the propensity of NTSC
roms to assume a larger screen (eg. Spike's Peak)
2024-05-10 19:37:15 +01:00
JetSetIlly 9cd255202f change of CRT framebuffer caused visual artefacts
the solution in this commit doesn't seem ideal but it works well enough
2024-05-10 19:37:15 +01:00
JetSetIlly 265020e1a6 ARM program memory reset on Plumb()
bug introduced in 578e2a846
2024-05-10 17:28:05 +01:00
JetSetIlly ede7847b76 module replacement for inkyblackness/imgui-go
now using jetsetilly/imgui.go so that patches can be applied

updated statsviz.patch
2024-05-08 21:29:11 +01:00
JetSetIlly c9ee3fc20f added MEMUSAGE PROFILE command
mem profile saved on ctrl+alt+m

memory profiles can be used with "go tool pprof"
2024-05-06 09:59:23 +01:00
JetSetIlly 47c7c95fd7 bumped version to 'v0.32.0 pre-release' in Makefile 2024-05-05 20:19:52 +01:00
JetSetIlly ed67f97c5c corrected fa2866c 2024-05-05 17:31:47 +01:00
JetSetIlly 8313ea19b6 bumped version to v0.31.0 in Makefile 2024-05-05 17:01:53 +01:00