Commit graph

3266 commits

Author SHA1 Message Date
JetSetIlly
1f23e7217f simplified cartridge loader package
loader is opened at creation time which allows us to remove the
needlessly complicated pointer-to-pointer mechanism
2024-04-16 10:18:13 +01:00
JetSetIlly
18aa6db347 reworked cartridge loader package 2024-04-16 10:18:13 +01:00
JetSetIlly
bf34bab783 window manager concepts 2024-04-16 10:18:13 +01:00
JetSetIlly
a621b4fd04 fixed mouse capture on right-mouse click in playmode
broken in 7e1f1f when the playmode overlay was changed to a full size
window

fix required improvement to the detection of whether the mouse was
hovering over a window (eg. prefs window, etc.)
2024-04-15 18:56:32 +01:00
JetSetIlly
8f2eb8753f rewinding by mouse wheel works in debugger
rewinds/FF by 10 frames or by a single frame if shift key is held
2024-04-12 21:01:59 +01:00
JetSetIlly
7e1f1f17b6 improved prioritisation of state icon in playmode overlay 2024-04-12 19:55:41 +01:00
JetSetIlly
d32262adff simplified how gui implements and handles notifications
debugger no longer sends play, pause notifications to the gui. the gui
polls for that information as required

govern package now has SubState type to complement the State type.
StateIntegrity() function enforces combinations of State and SubState,
called from debugger.setState() function

playmode notifications reworked and contained in a single playmode_overlay.go
file. this includes the FPS and screen detail

preference value sdlimgui.playmode.fpsOverlay replaced with
sdlimgui.playmode.fpsDetail. still toggled with F7 key

coproc icon moved to top-left corner of playmode overlay and only
visible when FPS detail is showing

when FPS detail is showing multiple (small) icons care shown. when it is
not showing, a single (large) icon is shown according to the priority of
the icon. eg. pause indicator has higher priority than the mute
indicator
2024-04-12 18:20:29 +01:00
JetSetIlly
877f282b8b corrected supercharger multiloading for fastload 2024-04-10 20:50:13 +01:00
JetSetIlly
1d40869a6d corrected 4d8c3c9
the mistake was audible in the Mappy sound routine
2024-04-10 20:40:35 +01:00
JetSetIlly
f491504d86 Added preference setting for misaligned memory access
Disabled by default. When enabled misaligned read and writes will be
reported as memory faults
2024-04-08 22:29:18 +01:00
JetSetIlly
110d476389 ARM differenties between architectures for memory alignment
ARM7TDMI (which is an ARMv4 implementation) does not allow misaligned
addressing at all. ARMv7 meanwhile does allow it

ARM emulation no longer logs misaligned addresses. but it does forward
the information to the developer interface

Faults window now has a Clear button and fixed table header
2024-04-08 22:16:12 +01:00
JetSetIlly
5b759fa0bf include Custom ROM section in CDF static memory window 2024-04-08 20:02:27 +01:00
JetSetIlly
a2e1763369 correct toolchain requirement. 1.22.0 instead of 1.22
fixes change made in a0b18e9
2024-04-08 20:02:27 +01:00
JetSetIlly
5d7551cf61 fixed PlusROM data transmission
version number sent to server is taken from the 'new' versioning system
for the project (introduced since the last time the PlusROM network code
was looked at)

http logging flag moved to preferences system, instead of compile time flag
2024-04-07 10:49:20 +01:00
JetSetIlly
24f3f32342 simplified notifications package
notifications interface instance moved to environment from
cartridgeloader. the cartridgeloader package predates the environment
package and had started to be used inappropriately

simplified how notifications.Notify() is called. in particular the
supercharger fastload starter no longer bundles a function hook. nor is
the cartridge instance sent with the notification
2024-04-06 10:12:55 +01:00
JetSetIlly
4ab23ab63e simplified file extensions in cartridge loader package 2024-04-06 10:12:55 +01:00
JetSetIlly
a0b18e9a96 bumbed Go version requirement to 1.22
added go.work.sum to .gitignore
2024-04-06 10:12:55 +01:00
JetSetIlly
08f105af6b added ExpectImplements() function to test package 2024-03-30 07:09:25 +00:00
JetSetIlly
1a26231b5e added load/percentile values for cycles/call profiling 2024-03-28 07:20:23 +00:00
JetSetIlly
f098a31f1c clarified calculation for profiling.Cycles type
simplified accumulation of profiling data and clarified commentary
2024-03-27 18:35:23 +00:00
JetSetIlly
b068a509fa added cycles/call profiling statistics
tidied up cycles and calls statistics
2024-03-27 16:44:38 +00:00
JetSetIlly
ff05d92ca4 simplified process for sorting DWARF types
previous version was too overloaded with functions, likely as an attempt
to simplify, but it was only confusing when trying to add more entities
to the list of sorting methods
2024-03-27 16:43:25 +00:00
JetSetIlly
b8b20a5166 coprocessor profiling is more careful about which profiling focus to use 2024-03-24 17:41:37 +00:00
JetSetIlly
049e4ce39d added call count to coprocessor profiling
NewFrame() functions for profiling statistics takes a rewinding flag.
the flag prevents some statistics from being updated if the flag is true
2024-03-24 15:50:26 +00:00
JetSetIlly
597a8e466d improved toggle button widget
horizontal/vertical orientation
2024-03-24 07:47:53 +00:00
JetSetIlly
053a4aac00 simplified CDF memory access with binary package 2024-03-23 09:38:06 +00:00
JetSetIlly
032bfc7d89 reworked and clarified how addresses are adjusted in DWARF data
previous attempts used language and methodology that was confusing and
in some cases causes excessively long loops when allocating source lines
to addresses
2024-03-23 09:38:06 +00:00
JetSetIlly
5f65c36297 improved ARM/VCS syncing for ACE 2024-03-23 09:38:06 +00:00
JetSetIlly
4d8c3c94fd corrected/improved how BX instruction is implemented 2024-03-23 09:30:53 +00:00
JetSetIlly
ce19219205 corrected memory map for ACE loading
increased CCM memory to 4k
2024-03-23 09:30:53 +00:00
JetSetIlly
016906b077 enabled coproc disasm does not rerun the last 2 frames
it causes problems when the ARM program has yielded on a breakpoint
2024-03-23 09:30:53 +00:00
JetSetIlly
1b15d626d4 fixed static disassembly of ARM instructions
instructions following a 32bit instruction were given the wrong address
2024-03-22 17:01:06 +00:00
JetSetIlly
b7bcf5e090 corrected reflection of HMOVE signal
a new HMOVE would be noted in the reflection array but it would never be cleared
2024-03-19 21:07:48 +00:00
JetSetIlly
f95e65e7b0 added NumCallsInFrame statistics to coprocessor profiling
improved callstack management
2024-03-19 19:24:47 +00:00
JetSetIlly
06b09eb163 coproc disasm window scrolls with item added to end of list 2024-03-13 21:16:52 +00:00
JetSetIlly
5b4d509748 CDF streams window casts font size preference value to int 2024-03-13 20:31:17 +00:00
JetSetIlly
40882a4c24 limit preview emulation to 1 second (in addition to the frame count limit) 2024-03-13 20:31:17 +00:00
JetSetIlly
91d26312a8 allocateSourceLines() obeys EndSequence flag in LineEntry
ignoring the EndSequence flag caused the loop in allocateSourceLines() to be excessive in
some cases. the problem was noticed because of an excessively slow startup but the fix
isn't just about speed - the fix should mean that functions do not include trailing instructions
(which may in fact not be instructions) outside of the function body
2024-03-13 20:30:55 +00:00
JetSetIlly
07e3b95f6e cycle ordering was broken the JSR instruction
bug introduced in db2d84c39, which would have first appeared in release
v0.27.0

this subtle bug broke the alignment of the ball and missile in the worm
whomper demo (by Manuel Rotschkar)

this fix adds the cycle boundary after the lo-byte read of the
destination address
2024-03-13 14:16:32 +00:00
JetSetIlly
5bc7cb809b nilness check for BorrowSource() was done too early
completes changes done in ee1656fc8
2024-03-05 15:57:51 +00:00
JetSetIlly
d9e0bd0380 corrected thumb2 EOR instruction. shift type was wrong 2024-03-05 10:54:01 +00:00
JetSetIlly
954c1485a1 added COPROC MEM DUMP command
context menu in static memory window
2024-03-04 07:40:55 +00:00
JetSetIlly
93cd3fb24f implemented strobed local variables 2024-03-04 07:40:39 +00:00
JetSetIlly
ee1656fc86 performance improvement for static memory window
BorrowSource() was called for every cell drawn. now only called once per frame
for the window
2024-03-03 21:51:47 +00:00
JetSetIlly
b1e89121d1 COPROC ID works correctly
misplaced fallthrough to the COPROC STEP command
2024-03-03 10:58:30 +00:00
JetSetIlly
1cb7ea7eb3 incorrect bit pattern for ASR when decoding ARM for disassembly
correct for decoding for execution - only the disassembly was affected
2024-03-02 14:42:16 +00:00
JetSetIlly
c38db1bf81 check whether ARM PC is at end of program memory
the emulator could crash with an array bounds panic if execution reached
the end of memory

if the check fails (ie. the panic would occur if the check was absent)
then the ARM yields with with a YieldExecutionError
2024-03-02 13:43:03 +00:00
JetSetIlly
30a245d472 improved coproc yield information in terminal prompt 2024-03-01 20:24:23 +00:00
Stephen Illingworth
ec22ebe8b7
github has changed how header texts are presented
this broke the right aligned image of the gopher next to the main header at the top of the README
2024-02-27 08:09:24 +00:00
JetSetIlly
ddccc67ce7 bumped version to 'v0.30.0 pre-release' in Makefile 2024-02-25 20:04:36 +00:00