Commit graph

3103 commits

Author SHA1 Message Date
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
JetSetIlly 14dc6cb618 simplified the ELF/strongarm loop 2023-09-13 20:14:27 +01:00
JetSetIlly 75c3f602a2 corrected mapping of executable memory for ELF when address is at the very beginning of the block 2023-09-13 17:24:56 +01:00
JetSetIlly 717348c167 simplified ARM disassembly process particularly the static disassembly
removed execution notes from ARM disassembly. the notes were useful but
the implementation was ugly. not currrently needed so removed for now
2023-09-01 19:55:18 +01:00
JetSetIlly 33ca591b0b simplified branching logic for Thumb set of instructions
in particular the operation of the BL instruction is clearer and
disassembled in a more natural manner
2023-09-01 09:59:51 +01:00
JetSetIlly 65d74d796c added detail to disassembly of Thumb-2 instructions
reorganised logic of function handling decoding of "A6.6 32-bit transfer
between ARM core and extension registers"

fixed live disassembly of 32bit instructions
2023-09-01 09:59:51 +01:00
JetSetIlly db2af1984b improved caching for Thumb instructions
this change was done simply to bring the treatment of Thumb instructions
in line with Thumb-2 instructions. there is definitely more work to be
done with regard to making the caching more efficient
2023-08-31 08:54:37 +01:00
JetSetIlly a0afd5c03b improved caching of decoded Thumb2 (16bit) instructions 2023-08-31 08:54:37 +01:00
JetSetIlly 27df3bd5f5 improved caching of decoded Thumb2 (32bit and FPU) instructions
previously, the cached instructions still required a significant amount
of decoding. the new method captures the state of the decoding much
closer to the variable element of the instruction (eg. using what's in
the register etc.)

most of the benefit of the caching still comes from not having to reread
program memory every instruction but the new method does add a small
performance increase and arguably, more clarity to the code
2023-08-31 08:54:33 +01:00
JetSetIlly 6774404aaf TIM2 in ARMv7-M updates are queued until results are required 2023-08-30 07:34:19 +01:00
JetSetIlly b3c743d8df tiny efficiency improvement in ACE 2023-08-30 07:34:19 +01:00
JetSetIlly 1ba0b164d3 ELF files run .init_array and .preinit_array sections
(init sections are detected by section type rather than name)
2023-08-30 07:34:19 +01:00
JetSetIlly 4fd1d9ef90 corrected hotspot information for F4 mapper 2023-08-29 13:14:40 +01:00
JetSetIlly 6639b8b490 reading ARM opcodes uses binary.ByteOrder (like data access does already) 2023-08-26 14:48:06 +01:00
JetSetIlly 9e332bd4d6 improved coprocessor registers window. can set registers from window
added TIM2 group to ARMv7-M extended registers specification
2023-08-26 09:14:54 +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 6c7dc2ec75 changing sync rate no longer resets frame queue
a constantly changing sync rate, caused by inconsistent scanlines every
frame, would cause bad image stutter
2023-08-17 19:16:19 +01:00
JetSetIlly a9c64def68 correct check for .debug_info section in DWARF loading 2023-08-15 15:24:59 +01:00