Commit graph

2843 commits

Author SHA1 Message Date
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
JetSetIlly
7dafebc099 added SBC (register)
corrected ADC (register) and RSB (register)
2023-08-15 15:24:59 +01:00
JetSetIlly
072e0c5239 VLDR correction 2023-08-14 20:28:51 +01:00
JetSetIlly
c4c926ed60 corrected VFMA/VFMS and VFNMA and VFNMS and saturation functions
beefed up FPU tests
2023-08-14 20:28:51 +01:00
JetSetIlly
cc06de58ee arm disassembly reset only on 'expected' yields. ie. not breakpoints 2023-08-14 20:28:51 +01:00
JetSetIlly
17aff38d51 general tidy up. developer source ranges in particular 2023-08-14 20:28:51 +01:00
JetSetIlly
bd1ce44244 T1 encoding (64bit floats) for VLDR and VSTR 2023-08-14 20:28:51 +01:00
JetSetIlly
f81b237ee6 added []uint8 as a supported type for DW_AT_const_value 2023-08-14 20:28:51 +01:00
JetSetIlly
5c8b0a4bfd added VMOV (immediate). implemented VFPExpandImm() 2023-08-14 20:26:49 +01:00
JetSetIlly
045425e5eb corrected VCMP/VCMPE instruction 2023-08-14 20:26:49 +01:00
JetSetIlly
af085b46eb corrected VSTM and VLDM and VMOV instructions 2023-08-09 21:06:27 +01:00