Commit graph

3073 commits

Author SHA1 Message Date
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
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 9b2359890c tidied up Makefile
updated .gitignore file to include .DS_Store folder. the current line to
ignore executable files has also been beefed up

corrected profile_cpu and profile_trace arguments - the elf argument is
not supported (or required) for PERFORMANCE mode
2023-11-08 19:04:03 +00:00
JetSetIlly 661403147d commentary explaining the ordering of bus changes with regard to AccessPassive()
in particular, there is now extensive commentary on how this impacts the
SCABS cartridge mapper
2023-11-07 07:26:19 +00:00
JetSetIlly db2d84c397 corrected placement of cycle callback in JSR instruction
there is a JSR cycle that does not affect the bus. I now believe that it
is related to the loading of the new program counter value
2023-11-06 20:46:22 +00:00
JetSetIlly 7405212af6 edited memory through the RAM window uses the Poke() function
previously the Write() function was used, which caused the state of the
bus to be changed. generally, this isn't an issue but it caused the
pinout window to change (misleadingly) if RAM was changed through the
RAM window
2023-11-06 20:09:20 +00:00
JetSetIlly 02ead0079f improve bevel effect. added bevel size preference control 2023-11-06 20:00:04 +00:00
JetSetIlly bb556d805f more careful updating of partial disassembly
disassembly.ExecutedEntry() only adds next address to disassembly if the
CPU result is at an instruction boundary (the Final field in the result
type)
2023-11-06 17:53:27 +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 8a243c7e95 bumped golang.org/x/image 2023-11-02 22:05:27 +00:00
JetSetIlly c6418da555 fixed moviecart controls. added "alternativeControl" compile time option
fixed timecode display when movie is rewound to beginning of stream.
this also fixes the display artefact that was visible at the bottom of
the movie image when then movie is resumed (after the rewind to the
beginning)
2023-11-01 20:26:27 +00:00
JetSetIlly 8d768b131f added flicker CRT effect, including preferences 2023-10-28 20:21:08 +01:00
JetSetIlly 0f7293a2d5 improved bevel CRT effect 2023-10-28 20:21:00 +01:00
JetSetIlly e687073426 AccessPassive() implemented by cartridge mappers now returns error
very few cartridge mappers need to return an error but is necessary in
the case of the experimental cartridge shim. merging here because it's a
good change to have
2023-10-27 19:14:50 +01:00
JetSetIlly e8191267a4 improved updating of disassembly when no disassembly exists
there is an entry for an undecoded instruction. ie when the PC is
pointing to an area of memory never seen before
2023-10-27 19:14:50 +01:00
JetSetIlly 3ba63f78ac moviecart fingerprinting
previously, we've relied on the file extension to be set to MVC but this
is a poor solution because it means moviecarts with the .bin file
extension are missed
2023-10-21 19:49:34 +01:00
JetSetIlly a640d179aa moviecart timecode display fixed
bottom edge of the screen is properly masked when the OSD is visible

corrected masking of screen when the OSD isn't visible
2023-10-21 19:26:13 +01:00
JetSetIlly 51053dcd87 nil check in coprocessor disasm window
if a live disassembly is being made without source code being available
then the SourceLine pointer will be nil
2023-10-10 08:39:02 +01:00
JetSetIlly 8ccae4e70f TV rotation
cartridges can control TV rotation if necessary. only movie cart does
this for now

alt + <cursor keys> manually flips the screen rotation
2023-10-07 16:06:56 +01:00
JetSetIlly 54e3abd04f cartridge RAM window not available for atari carts unless superchip is present
the decision whether to show cartridge menu is partly made on whether
the cartridge has a "RAM bus" available. atari cartridges (unlike other
cartridge type) always have a RAM bus but only some have a superchip.
the test for whether a cartridge has cartridge RAM has been made more
stringent
2023-10-03 19:24:22 +01:00
JetSetIlly f18e4e6f08 corrected version check for Moviecart
bad stream data is handled with a log message and a stateful flag
preventing any more data reads
2023-10-02 09:01:13 +01:00
JetSetIlly 889c19b099 implemented moviecart 2 format 2023-09-28 14:50:34 +01:00
JetSetIlly 3cff5da258 updated vidchess bot
can now work with vidchess level 2-8 as well as level 1

image searching now works with sha1 hashes throughout
2023-09-23 20:12:12 +01:00
JetSetIlly 121d5f9cd6 fixed callstack/callers output 2023-09-23 08:57:00 +01:00
JetSetIlly 749940cad9 function name shown in coproc disasm tooltip 2023-09-23 08:55:27 +01:00
JetSetIlly 1cc0a66c70 added SECAM support 2023-09-18 19:19:25 +01:00
JetSetIlly 9035f1f3eb log SDL version on startup 2023-09-18 16:36:19 +01:00
JetSetIlly 520a666053 StrongARM ColorLookup uses the appropiate table for the current TV
specification

added minimal Television interface to Environment type. exposes
GetSpecID() to the hardware emulation
2023-09-15 15:50:47 +01:00
JetSetIlly 40925c9134 ELF will use non-streaming byte injection if GPIO is accessed directly 2023-09-13 20:14:28 +01:00
JetSetIlly 81695c938d added support for busstuff data in byte stream 2023-09-13 20:14:28 +01:00
JetSetIlly 0fe99092ef premption of snoopDataBus() to enable controller input 2023-09-13 20:14:28 +01:00
JetSetIlly cdd82fb68b increased the ELF stream pushBoundary value
comment clarifies why the pushBoundary is required and the reasons for
the value
2023-09-13 20:14:28 +01:00
JetSetIlly a921130414 ELF byte streaming now works with a fixed sized array 2023-09-13 20:14:28 +01:00
JetSetIlly 7de45d3d25 added -elf=none to all profiling invocation of the emulator in the Makefile 2023-09-13 20:14:28 +01:00
JetSetIlly 0b0314fbcd proof-of-concept for streaming injected bytes 2023-09-13 20:14:28 +01:00
JetSetIlly 1f66e0da76 more efficient reading/writing of ARM registers from StrongARM functions 2023-09-13 20:14:28 +01:00
JetSetIlly 9208d4eae9 expanded scope of StrongArmFunctionSpec 2023-09-13 20:14:28 +01:00
JetSetIlly 3b7200280d changed how strongarm support functions are executed
"support" functions are executed immediately and do not cause the ARM to
yield to the VCS
2023-09-13 20:14:27 +01:00