Commit graph

1430 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
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
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