Commit graph

1523 commits

Author SHA1 Message Date
JetSetIlly
af9817ccdb ARM7: memory access time and clock speed no in preferences
preferences window expanded to accomodate new preferences

lint fixes
2021-06-02 19:30:52 +01:00
JetSetIlly
90eb17e7ec ARM7: mam control now subject to preference settings
added mam preferences to prefs window. reorganised prefs window.

removed hardware prefs from PREFS command and lazy system. the lazy
system doesn't seem to be required and it makes more sense for the PREFS
command to deal solely with debugging topics.

preferences window visible in playmode on (F8). FPS indicator now on F7
2021-06-02 18:41:56 +01:00
JetSetIlly
12936ece96 ARM7: number of cycles in thumb program capped
at 100000 for now but there's no reason for that number. however a cap
does seem to be required when we compare some test ROMs with real
hardware (without a cap in the emulator, the PC will run past the end of
cartridge space).
2021-06-02 15:11:18 +01:00
JetSetIlly
f09e444a2a 6507: added opcode 0x3f (absolute index x RLA) 2021-06-02 14:07:09 +01:00
JetSetIlly
2553013965 ARM7: reviewed cycle profiles for all instruction groups
divided N and S cycles into whether the cycle is while a pc address or
an address to data is on the buss

summation of cycles will multiplying required cycles according to
whether address is to flash or sram

cycles sum() function now expects the current pc address and whether the
mam is active. the pc address is used to decide by how much N and S
cycles should be stretched

if mam is active it is assumed that all address access is optimised and
can keep pace with the base ARM clock

*** timings still not accurate
2021-06-02 13:20:13 +01:00
JetSetIlly
815557b46e ARM7: fixed cycle accumulation for thumb format 19 2021-06-02 07:32:20 +01:00
JetSetIlly
d4ed01e753 ARM7: thumb format 2 instructions disassembled correctly
arm7 execution was not pushing all instructiosn to
disassasmebly.Coprocesser implementation. all instructions should be
correctly disassembled now but in case anything is missed, the opcode is
pushed

fixed thumb format 14 cycle accumulation
2021-06-02 07:32:20 +01:00
JetSetIlly
a543153f52 ARM7: corrected cycle accumulation for thumb format 15 instructions
information about MAM (source documents)
2021-06-01 18:32:04 +01:00
JetSetIlly
004d9236eb ARM7: log unaligned memory access 2021-05-30 11:06:03 +01:00
JetSetIlly
4638c7218b README update (Turbo screenshot)
lint fixes
2021-05-30 08:58:46 +01:00
JetSetIlly
ebb89ba8bc CDFJ+ support added to CDF mapper
better CDF fingerprinting
2021-05-30 08:52:24 +01:00
JetSetIlly
aac205e2a1 fixed static window editing
code copied from cart RAM window and GetRAMBus was not replaced with
GetStaticBus
2021-05-29 20:04:02 +01:00
JetSetIlly
522ad487a3 fixed disasm entry not showing if the first entry in the list has a label 2021-05-29 19:34:06 +01:00
JetSetIlly
b7ccb615e6 removed FUTURE and BUGS files because they're hopelessly out of date
future plans and bugs currently kept on a private wiki
2021-05-25 21:58:30 +01:00
JetSetIlly
0e984b8f9e tidy up of cartridgeloader package
rewrote doc and clarified some concepts
2021-05-25 21:45:03 +01:00
JetSetIlly
b2726e50dc simplified CARTRIDGE HOTLOAD
moved symbols package into disassembly package

Symbols instance lastst throughout the life of the Disassembly instance.
no more race conditioned caused by rereading symbols file.

clarified relationship of symbols instance in the debugger/dbgmem and
the disassembly.
2021-05-24 20:18:38 +01:00
JetSetIlly
8a7356ec78 first attempt at hotloading
added CARTRIDGE HOTLOAD command

only CDF and CDFJ mappers supported and not fully tested

this version will trigger race errors in the disassembly on HOTLOAD.
needs a bit of thought how best to fix that
2021-05-23 22:37:30 +01:00
JetSetIlly
b072be8162 improved CRT preview in debugging screen
readded mouse selection to debugger when in crt preview mode

video-black correction in a separate shader to the the phosphor shader
2021-05-23 20:13:03 +01:00
JetSetIlly
dac8373b18 screenshot method fully selectable with shit and ctrl
F12 without modifiers will create a single screenshot file

Shift+F12 will save a sequence of five files suitable for double-frame
kernels

Ctrl+F12 will save a sequence of five files suitable for triple-frame
kernels
2021-05-22 19:46:21 +01:00
JetSetIlly
080c04744f ARM cyclenotes tooltip in last execution window 2021-05-21 18:33:54 +01:00
JetSetIlly
c7654c9a90 changed default window size/positions for debugger 2021-05-18 19:11:47 +01:00
JetSetIlly
019a5278c1 updated screenshots and readme 2021-05-18 18:56:56 +01:00
JetSetIlly
80be8ea431 lint manual fixes 2021-05-18 18:28:54 +01:00
JetSetIlly
c6b53916ff lint auto fixes 2021-05-18 18:28:50 +01:00
JetSetIlly
1873be9929 RSHIFT+F8 works in addition to LSHIFT+F8 to trigger extended snapshot 2021-05-18 18:17:08 +01:00
JetSetIlly
f9b534eb39 additional PC check in ARM7 emulation
fixes draconian after changes made in 117cc76b94
2021-05-18 18:15:53 +01:00
JetSetIlly
778ea9af92 reworked controller autodetection
less false positives, particularly of mouse triggering paddle control

keyboard detection now treated as absolute
2021-05-18 12:38:28 +01:00
JetSetIlly
6d9bdd5e46 boundary checks in symbols and disassmebl/iterate
indexes can be out of range momentarily on ROM change. GUI is trying to
display old disasm at the moment the new ROM is being disassembled.

the GUI and emulation could perhaps be better synchronised to avoid this
but these checks should be in place anyway.
2021-05-17 23:08:05 +01:00
JetSetIlly
133bacc5d6 simplified dbgscr overlays
reverted to combobox selection

removed brightness option

key shown in dbgscr not in custom combobox

imguiColorLabel() changed to use font glyph rather than imgui drawlist
shenanigans. savekey i2c window changed to match
2021-05-17 23:08:05 +01:00
JetSetIlly
33afbb7275 edge case when switching from element/uncropped to CRT preview
for one frame CRT is true but the element texture to have been selected.
this resuls in a disconcerting element cropped image while the rendering
settles down.

fixed by forcing the use of the normal texture if CRT preview is true at
render time.
2021-05-17 18:44:47 +01:00
JetSetIlly
5ffd818a49 debugger audio mute option can be saved
enabled/disabled audio button replaced with icon button
2021-05-17 09:53:36 +01:00
JetSetIlly
2011ecc76d breakpoint indicated in disasm window with an exclamation point
unicode f12a instead of an ASCII asterisk *
2021-05-17 09:53:36 +01:00
JetSetIlly
60ee2030db terminal shows "running" prompt only on running and not on rewinding etc.
removed chevron prompt indicator and brackets. those are useful for
plan text terminals but it's not really necessary for a GUI based
terminal.
2021-05-16 18:28:55 +01:00
JetSetIlly
aecc5a1518 reverted ccdf6224d0
pausing lazy system is way too heavy handed. it upset Log retrieval and
made the rewind system feel sluggish.

pausing everything execpt log and rewind updates was considered but it
was felt things were starting to get messy so the pausing system was
removed completely.
2021-05-16 07:50:42 +01:00
JetSetIlly
65e2fdd10a lowered debugSleepPeriod to 10ms
50ms felt too sluggish. I think when combined with the lazyupdate
system, which happens in two half (refresh and update) the delay is
visually a lot longer in some situations (for example, when editing the
PC value and seeing the change in the disasm window)
2021-05-16 06:51:18 +01:00
JetSetIlly
377eb4465a imgui.InputText() did not have the flag (InputTextFlagsEnterReturnsTrue) set
this caused some uses of it via (imguiHexInput() and others) to fill up
the terminal sidechannel (and consequently the debuggers pushrawevent
channel) too quickly
2021-05-16 06:14:38 +01:00
JetSetIlly
e16287d2ac dotted screen guides in uncropped dbgscr 2021-05-15 19:32:38 +01:00
JetSetIlly
6d0c3bc68d tidy up dbgscr fragment shader. clarification of some concepts
removal of crit section acquisition in glsl_playscr and glsl_dbgscr

variable naming & commentary clarification
2021-05-15 19:32:38 +01:00
JetSetIlly
b719b9e97b playscr window scaling/sizing clarified
replicates changes to dbgscr seen in the previous commit
2021-05-15 15:36:37 +01:00
JetSetIlly
f936f937d2 CRT preview in debugger TV screen can never shown uncropped/debugging colors or overlay
it was felt that allowing CRT to be combined with debugging guides adds
nothing. however, simply removing the CRT preview option didn't feel
correct either.

in addition, the opportunity to clarify how window scaling works was
taken. in particular the scaledWidth() function and similar functions
were removed in favour of single values which are updated as necessary
every render frame.
2021-05-15 14:19:52 +01:00
JetSetIlly
b4619a36a0 lastMaxIdx in television type initialised correctly
new initialisation value means GotoFrameCoords() when pushed from the
debugging screen will not cause an array out of bounds error between
television reset and the first NewFrame()
2021-05-14 21:28:43 +01:00
JetSetIlly
5fb9a026af scanlines/shadowmask drawn only if texture is big enough 2021-05-14 10:30:29 +01:00
JetSetIlly
6eb829a251 alert() polling system on dbgscr window resize and container window change
improved responsiveness of dbgscr sizing
2021-05-13 22:13:08 +01:00
JetSetIlly
4161c9c801 crtshader sequence for play/debug screen improved
phosphor will be recreated on framebuffer change. this prevents changing
of brightness that can be seen on change of size.
2021-05-13 18:22:41 +01:00
JetSetIlly
b3f6025377 better chromatic abberation
removed flicker effect. it added nothing and was distracting in debug mode.
2021-05-13 15:01:53 +01:00
JetSetIlly
c5b1ee01e5 makefile tidy 2021-05-12 19:27:43 +01:00
JetSetIlly
b475d78ab5 removed plugging.PlugMonitor implementation from sdlimgui
was not being used
2021-05-12 14:47:02 +01:00
JetSetIlly
ccdf6224d0 added PauseUpdates() function to lazy system
this helps to keep lazy values when changed via the GUI to keep
synchronised with the real values

currently, this is only employed in the terminal.pushCommand() function.
if values are changed any other way, for example in the TIA window, then
the GUI will momentarily flicker as the lazy system is updated.

two solutions:

1) add PauseUpdates() in front of every change of value that is pushed
   to the emulation goroutine (via PushRawEvent())

2) only ever change values via the debugger command system.

note that both these solutions imply that the 'play' mode needs a
PushRawEvent() implemented. currently, it doesn't have that.
2021-05-11 12:43:36 +01:00
JetSetIlly
ece76c6927 fixed HMOVE slider/value input for Missile in TIA window 2021-05-11 12:08:40 +01:00
JetSetIlly
6fb33f8ff0 added hardward.instantARM option
this will cause the ARM program to run instantaneously relative to the
6507 program

added to preferences window
2021-05-10 21:14:23 +01:00