Commit graph

2910 commits

Author SHA1 Message Date
JetSetIlly
04f485b157 bumped version to v0.28.0 in Makefile 2024-01-10 18:39:55 +00:00
JetSetIlly
ec3b840af2 television resizing
TV cropping was misaligned by one pixel vertically (gui)
2024-01-10 17:42:55 +00:00
JetSetIlly
7679d96f21 search for TV spec in filename now ignores the path component
for example, in ROM Hunter's archive there are directories called "PAL
VERSIONS OF NTSC ORIGINALS" and "NTSC VERSIONS OF PAL ORIGINALS". these
cause false positives in the TV spec search
2024-01-10 17:42:55 +00:00
JetSetIlly
83e52bdd62 Television Aspect Bias is now constant for all specifications 2024-01-10 17:42:55 +00:00
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
0a91777f53 allow TV size to shrink from bottom 2024-01-10 17:42:55 +00:00
JetSetIlly
13ee6f901f simplified relative mouse movement (for paddle)
the most recent relative mouse value is used only, rather than
accumulating all values sent by the mouse over the course of the frame
2024-01-10 17:42:11 +00:00
JetSetIlly
0163b8d146 improved control of the framequeue via the preferences window 2024-01-10 17:42:11 +00:00
JetSetIlly
d1224bd0dc mouse y-axis mixed with x-axis for paddle input 2024-01-10 17:42:11 +00:00
JetSetIlly
9d78053261 relative mouse movement values accumulated and smoothed 2024-01-10 17:42:11 +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
26eab2cb17 fixed cursor visibilty when switching to debug mode
bug introduced when moving to SDL relative mouse mode
2024-01-10 17:42:11 +00:00
JetSetIlly
3a6b1f3a3e changed EventDataPaddle to use integer based (int16) values
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
2024-01-10 17:42:11 +00:00
JetSetIlly
ed7574db17 paddle improvements
values internal to the paddle implementation are integer based rather
than float based. incoming events are still float based

paddle resistance value set correctly on reset. this means unplugged
paddles are positioned correctly

tick value reset to zero on VBLANK. not resetting to zero could cause
visible jitter on the screen

mouse capture now uses SDL "relative mouse mode" this means the mouse
movement is based on the screen rather than the window
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
bb45d4c6e7 timeline window bug fixes
if thumbnail cannot be generated then the existing thumbnail would be
shown regardless of where the mouse is

scrubbing past the beginning of the timeline would cause out-of-bounds
panic
2024-01-09 18:33:05 +00:00
JetSetIlly
6c70b3c5ca removed LICENCE file, leaving COPYING file only
GNU GPL version 3 licence has not changed
2024-01-09 16:30:36 +00:00
JetSetIlly
93dc63489c removed .golangci.yml file 2024-01-09 16:24:30 +00:00
JetSetIlly
a2f683b340 supercharger tape menu entry not shown for supercharger binary ROMs 2024-01-09 15:38:30 +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
f850429630 enabled two compile time moviecart options by default
enabled 'improve neat start image' and 'improve audio mute'

both options are now effectively part of the lodef's firmware and stella
2024-01-06 09:45:17 +00:00
JetSetIlly
67a682d32c SECAM/PAL60 console timing 2023-12-31 17:02:37 +00:00
JetSetIlly
41c1c05305 previous fix was incorrect. undone
identification of the TIM1 enabling bit is now correct
2023-12-31 09:40:01 +00:00
JetSetIlly
5976dd9be7 ARM TIM1 enabled by default on intialisation 2023-12-30 17:25:56 +00:00
JetSetIlly
b02be76278 fixed rewind notifications
the rewind/fast-forward notification was never initialised

bug introduced in v0.25.0
2023-12-21 19:22:17 +00:00
JetSetIlly
78d12a9769 coproc globals window could cause panic in some scenarios 2023-12-13 18:58:05 +00:00
JetSetIlly
7a588bc5c5 Atari (and EF) cartridges no support random bank on startup
improved the detection of the starting bank for Atari cartridges by
searching the banks for a "correct" reset address. basically, if the
reset address is in cartridge space then it is assumed to be correct and
that bank selected, otherwise the next bank is tested
2023-12-12 17:00:12 +00:00
JetSetIlly
7e93107da7 changed F6 mapper to start in bank 0 (instead of bank 1)
Berzerk (Voice Enhanced) does not work with anything other than a
starting bank of 0

extensive commentary added to atari.Reset() function about why bank 0 is
correct
2023-12-12 08:35:10 +00:00
JetSetIlly
27a3314540 corrected information in DWARF popup
the DWARF popup shows when unsupported ARM debugging data is loaded
2023-12-08 18:46:14 +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
4937c4d866 bumped version to 'v0.28.0 pre-release' in Makefile 2023-11-27 17:58:42 +00:00
JetSetIlly
e2665e7957 bumped version to v0.27.0 in Makefile 2023-11-27 08:58:06 +00:00
JetSetIlly
d1adcca9f8 fixed imgui related crashes caused by parent window being too small
the crashes are caused by BeginTable() failing and then EndTable() being
called. Or BeginChild() failing and EndChild not being called.
2023-11-27 08:22:43 +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
0e6b1adc2a corrected bus sequence for RTS and JSR instructions 2023-11-26 14:47:41 +00:00
JetSetIlly
fd53a04918 crt effect improvements
improved interference noise. using perlin noise rather than gold noise

shine/vignettes is smoothed out by small amout of perlin noise if
interference is not active
2023-11-26 14:47:41 +00:00
JetSetIlly
84ad23c03e moved Patch() from CartMapper to CartPatchable interface
this means that a mapper only needs to implement the Patch() if it makes
sense

mappers that don't need it have had the Patch function removed.
implemented function for SCABS and UA

corrected error messages for atari mappers - some messages weren't
referencing the correct atari mapper and simply stated "atari"
2023-11-26 09:32:28 +00:00
JetSetIlly
6bb531104c implemented UA cartridge mapper 2023-11-26 09:32:20 +00:00
JetSetIlly
821ff26a79 screenshotting improvements for OpenGL 3.1
OpenGL 2.1 renderer does not support screenshotting
2023-11-22 10:12:31 +00:00
JetSetIlly
08a7695d01 command line arguments are forwarded to default RUN mode 2023-11-22 08:04:19 +00:00
JetSetIlly
5a4b01fd13 added rendering support for OpenGL2.1
all references to opengl are now made through the renderer interface.
which renderer is to be used is controlled by buildtags

now requires minimum go version of 1.21

CRT preferences and CRT preview in debugger TV window are disabled for
OpenGL2.1
2023-11-20 16:58:32 +00:00
JetSetIlly
cf88f5e520 corrected bitmask for random DPC registers
this fixes a compile error on the raspberry pi
2023-11-20 16:58:32 +00:00
JetSetIlly
aec9109e76 add command line --help for submodes 2023-11-19 20:28:55 +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
8addbe5251 more moviecart fixes
better and more reliable masking - now more like the reference
implementation

more potential improvements to the reference implementation. not
currently enabled but can be activated by changing value of the
"improve" group of constants
2023-11-13 16:11:46 +00:00
JetSetIlly
8f920d767b corrected .gitignore for .DS_Store entries 2023-11-09 18:17:38 +00:00
JetSetIlly
89160e44a6 removed tidy as a dependency to generate in Makefile
goimports is not a part of the standard Go distribution
2023-11-09 07:36:06 +00:00