Commit graph

3073 commits

Author SHA1 Message Date
JetSetIlly d431974c76 playback files no longer created cartridge loader directly
the information used to create the loader is storied in
the playback type rather than a created loader itself

this is more flexible and gives us better control of when
the loader is disposed of

checking of cartridge hash must now be performed explicitely
when the cartridge loader is created from the playback information
2024-04-17 09:54:09 +01:00
JetSetIlly 7ed001c4c1 changed when cartridgeloader is created for log/video regression
creating the cartridgeloader later in the regression process gives a
clearer indication of when and if the cartridgeloader is closed properly
2024-04-16 22:42:28 +01:00
JetSetIlly 28ae543e36 cartridgeloader commentary and documenation
removed all references to hotloading. will reimplement in the future

made sure then cartridgeloader.Loader instances are closed when no
longer needed. added commentary where required to explain

information pane in the ROM selector window is not disabled when
animation emulation is not running. the load button is still visible
based on the animation emulation
2024-04-16 22:15:39 +01:00
JetSetIlly e3f4a743b6 added archivefs package and support in cartridgeloader and ROM select window
archivefs allows opening of files inside a zip archive. support for
other archive file type will be added in the future when possible
2024-04-16 19:22:38 +01:00
JetSetIlly 8edee622cc peripheral fingerprinting only considers the first 64k of cartridge data 2024-04-16 19:08:35 +01:00
JetSetIlly 8308e4037c io.EOF error checked in moviecart nextField() function 2024-04-16 17:37:37 +01:00
JetSetIlly da83fc311b removed complexity from cartridge fingerprinting process
all cartridge data is read through cartridgeloader io.Reader interface
2024-04-16 10:18:13 +01:00
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