Commit graph

2543 commits

Author SHA1 Message Date
JetSetIlly abe3a0837f added a pgo file - performance profile of ARM using ROM
build and release targets in Makefile now use pgo
2023-02-12 13:23:40 +00:00
JetSetIlly 178f05f17b updated go minimum version to 1.20
applied gofmt to source tree to update the documentation comments
2023-02-12 13:09:07 +00:00
JetSetIlly 73a9c91930 disabled paint tool. not ready for v0.20.0 2023-02-11 19:00:33 +00:00
JetSetIlly 044240f9c9 coprocessor function window includes filename
small corrections in some other coprocessor windows
2023-02-11 18:45:25 +00:00
JetSetIlly 8ceeedd93b expanded list of paths in which stockfish is looked for
this relates to the experimental Video Chess bot only
2023-02-11 12:48:18 +00:00
JetSetIlly ce01bbe389 added yield processing to DPC+ mapper 2023-02-11 10:06:03 +00:00
JetSetIlly e1078855e3 readded 'break anywhere' for coprocessor 2023-02-09 19:51:48 +00:00
JetSetIlly c440d7b0de corrected mapping of timer read addresses
removed symbol check from riot/tia read() functions
2023-02-09 19:51:48 +00:00
JetSetIlly 7995609ab0 added delay to plusrom network transmission
in the PlusCart it takes time for the send buffer to be transmitted over
the network. this means that it's possible for the buffer to be
overwritten by the 6507 during that time

this was particularly noticeable in v1.02 of the game HappyBird which
inadvertently triggered the $1ff1 address repeatedly

because the emulation did not account for the delay, the buffer was sent
before it could be overwritten
2023-02-08 07:39:58 +00:00
JetSetIlly 9e70f97db0 added BUS command
renamed lazy mem to lazy bus. better description of it's purpose.
updated field names to reflect historical changes in the hardware
package
2023-02-06 22:16:06 +00:00
JetSetIlly 4d8fdbf242 reimplementation of 3e and 3e+
previous implementations were broken by 8766e794dc
2023-02-06 21:53:45 +00:00
JetSetIlly 8766e794dc refined how cartridge is accessed
cartridge access is now divided into Access(), AccessVolatile() and
AccessPassive()

Access() and AccessVolatile() could easily be combined into one function
but I feel it is clearer to keep them separate

hardware/memory.go Read() function refined to be clearer about how and
when the cartridge is accessed
2023-02-06 21:49:07 +00:00
JetSetIlly e289d15403 added default.pgo to .gitignore file 2023-02-06 21:48:46 +00:00
JetSetIlly e2db5b3a4c improved send/recv buffer display in plusrom network window 2023-02-06 21:44:18 +00:00
JetSetIlly 668290257c added PHANTOM argument to WATCH command 2023-02-06 21:44:18 +00:00
JetSetIlly 487eb9099d plusrom network notification only on 1ff1 and not 1ff0
similarly rewind boundary set only on 1ff1 and not 1ff0

when send buffer is full, the buffer is flushed (discarded rather than
sent over the network)
2023-02-06 21:43:13 +00:00
JetSetIlly 6fa8050068 list of sourcefiles default to "normal filenames" if no "short filenames" can be found
this can happen when the ROM file is in a different location to the
source files

this still isn't ideal but it's good for the time being
2023-02-05 14:04:43 +00:00
JetSetIlly 31be309056 tidied up GPIO implementation for ACE 2023-02-05 14:04:43 +00:00
JetSetIlly 2d0431bc83 regression tests check for CPU KIL state 2023-02-05 14:04:42 +00:00
JetSetIlly 09c039d778 fixed 3e illegal segment on AccessDriven() 2023-02-05 08:23:23 +00:00
JetSetIlly ef545a4dcf small performance improvements for ELF
this actually brings the performance closer to the original
implementation. the slowdown was due to changes to make the debugger
nicer to work with. those improvements have been kept at the same time
as a small speed up
2023-02-04 20:28:46 +00:00
JetSetIlly 131709cf8e fixed the switch from playmode to debugger on ARM yield 2023-02-04 19:10:28 +00:00
JetSetIlly a447a0ccfc implemented 'wickstead design' bankswitching 2023-02-02 14:07:58 +00:00
JetSetIlly 7656bea678 added audio reflection layer
fixed imgui.EndChild() error for tracker window
2023-02-01 16:47:11 +00:00
JetSetIlly a440255be4 corrected CPU SET command that is issued by the CPU window 2023-02-01 10:17:38 +00:00
JetSetIlly cac9ae3f49 linear interpolation for thumbnail image in ROM select 2023-02-01 08:45:25 +00:00
JetSetIlly 896436f2e6 refined stereo effect 2023-01-31 18:52:17 +00:00
JetSetIlly 85c3ac8a2d audio clock no longer sychronised on RSYNC 2023-01-31 18:51:52 +00:00
JetSetIlly 0871202756 function selection window 2023-01-31 07:21:30 +00:00
JetSetIlly c104f738bc nicer filenames in source/global fuzzy matcher
the fuzzy matcher now only include files that are in the same path as the
ROM
2023-01-31 07:20:36 +00:00
JetSetIlly 75a24df2a4 replaced chip icon in source window with coloured bar
the bar indicates whether the line is executable and the colour whether
it has been run recently or not at all
2023-01-30 21:15:24 +00:00
JetSetIlly f744dbdc48 faded breakpoint icon shown on hover in source window
this indicates which source lines can have a breakpoint applied
2023-01-30 18:25:49 +00:00
JetSetIlly bdc2fcc130 corrected live ARM disassembly for Thumb-2 instructions
uses placeholder information for Thumb-2 instructions for now. still
need to figure out an efficient way to add disasm information to a
decoded instruction. the current method for original Thumb instructions
is fine but it seems needlessly complex to use that for the larger
instruction set

cycle order is not reset if a 32bit instruction is being decoded. this
didn't affect cycle accumulation (which is correct as far as possible)
but it did affect cycle reporting for 32bit instructions

(cycle counting for the Thumb-2 instructions is still incomplete.
however, the majority of cycles will be accounted for because they occur
as the instruction is being deocded)

live disassembly and source level disassembly (coprocessor/developer
package) structures are still distinct. they use the same decoding
functions so the information should be identicaly but how we handle the
information is different depending on context
2023-01-30 14:40:54 +00:00
JetSetIlly 1572f9f836 corrected ExecutableOrigin() value for ACE 2023-01-29 17:50:11 +00:00
JetSetIlly 0babdfd2a5 result of ELF Segments are sorted by name 2023-01-29 12:19:32 +00:00
JetSetIlly bb7f871d2a corrected ARM memory boundary checks 2023-01-29 11:35:32 +00:00
JetSetIlly cb4fd9ed14 always create frame and loclist sections for DWARF data
even when those sections aren't in the ELF data they are required for
DWARF variable address resolution
2023-01-28 22:43:32 +00:00
JetSetIlly f123573f2b framebase address calculation no longer offset by origin address 2023-01-28 22:19:48 +00:00
JetSetIlly 635b812cf0 loclist and framebase use a coprocessor shim to avoid rewind problems 2023-01-28 22:12:05 +00:00
JetSetIlly 791dc5e87e placement of global variables is now correct
DWARF data relocation is now performed entirely in the ELF loader -
relocatable ELF files are not permitted for other cartridge types
2023-01-28 22:12:05 +00:00
JetSetIlly 64c5c05712 loclist operation decoder uses binary.ByteOrder function everywhere 2023-01-27 21:22:38 +00:00
JetSetIlly 79e966df67 limit loading of ELF files to 32bit files 2023-01-26 20:25:41 +00:00
JetSetIlly 86c0ad0953 GREP COPROC parses 32bit address (rather than a 16bit address) 2023-01-25 22:55:51 +00:00
JetSetIlly b1cb526e0f gotoSourceLine() sets focusYieldLine to false
focusYieldLine is set to true on source window creation and remains on
until the window has been drawn at least once. this prevents
gotoSourceLine() going to the correct line if the source window has not
been opened in the session
2023-01-25 22:49:43 +00:00
JetSetIlly a4945f6cb9 added ReqCoProcSourceLine to gui requests
GREP COPROC will send the request to open the source window at the
correct line
2023-01-25 22:41:45 +00:00
JetSetIlly 949a3b7457 added GREP COPROC command 2023-01-25 22:41:45 +00:00
JetSetIlly dce98c2fc3 source window search searches all files at once 2023-01-25 22:41:45 +00:00
JetSetIlly cf91d2b392 reverted to allowing coproc breakpoints only on lines where the DWARF data allows it
the source window is now misleading perhaps because you can no longer
break on any line with a chip symbol

more work required on this
2023-01-25 22:40:45 +00:00
JetSetIlly d4dcf3e259 32bit Thumb-2 instructions corrections/implementations
corrected LDR (register) instruction when target is PC register

implemented EOR (register) with arithmetic right shift

implemented ROR (immediate)
2023-01-25 20:00:32 +00:00
JetSetIlly 90b746f191 correct ELF relocation of DATA_MODER symbol
additional calls to runARM() in Elf.AccessPassive()
2023-01-25 20:00:32 +00:00