Commit graph

1021 commits

Author SHA1 Message Date
JetSetIlly
92d4f170f8 hsync events differentiated by typedefed integer instead of a string 2022-05-28 19:12:16 +01:00
JetSetIlly
d7b1f0df71 simplified conditions underwhich playfield and sprites tick()
also triggerMissileReset() is passed to missile at init time and not on
call to Missile.tick()

small performance improvement
2022-05-28 19:12:16 +01:00
JetSetIlly
8241f85f0f corrected when playfield "ticks" and added an early return condition 2022-05-27 23:19:54 +01:00
JetSetIlly
bacfa2c2f1 added UpdateTracker() to Audio package. not part of the Step() function
this isn't a performance improvement but it Step() is now clearer and
UpdateTracker() can be called less often
2022-05-27 22:15:24 +01:00
JetSetIlly
6b089f5f57 ChipHasChanged() used to decide whether to call Step() or QuickStep()
small speed increase because we can use QuickStep() more often than
Step() when processing the TIA and RIOT
2022-05-27 21:27:11 +01:00
JetSetIlly
7ee76e030a note about supercharger tape regulator timings 2022-05-26 21:10:28 +01:00
JetSetIlly
d47bbe01c3 readded Supercharger WAV loading using go-audio/wav package 2022-05-26 16:31:45 +01:00
JetSetIlly
7e57bbe46c removed unused/unwanted dependencies
go-wav, statsview and memviz all indirectly used gopkg.in/yaml.v3 which
I do not want to depend upon

WAV functionality is no longer available for wav writing or reading
(supercharger tapes). will try to reintroduce functionality in the
future
2022-05-26 12:14:34 +01:00
JetSetIlly
3d67309adc commenting and variable naming change in TIA implementation
changes intended to clarify the thinking behind optimisation strategy in
the TIA
2022-05-26 08:37:34 +01:00
JetSetIlly
6cd9b8c8e1 previous frame of audio signals resent when realtime mixer is starved 2022-05-25 13:56:01 +01:00
JetSetIlly
8fb2d16b00 reording of CDF MapAddress() decisions 2022-05-25 09:23:56 +01:00
JetSetIlly
aa3facd2a8 moved baud count check in AtariVox to before the state check 2022-05-25 08:16:54 +01:00
JetSetIlly
e36b068305 fixed program memory boundary check in ARM
the incorrect code has never caused an issue to my knowledge but it can
easily be seen that it might cause a out-of-bounds array access
2022-05-25 08:16:54 +01:00
JetSetIlly
bf6a785e70 CDF/DPC+/DPC and ParkerBros all returned errors on cartridge write
... regardless of whether the write address was a recognised register.
this resulted in the CPU string formatting the error, which was wasted
CPU load and resulted in memory allocations

the error wasn't noticed because the CPU error was never logged
2022-05-23 19:56:06 +01:00
JetSetIlly
5230bf80b4 check for disasm==nil in ARM before formatting disasm notes
resulted in needless call to formatting functions and to malloc
2022-05-23 19:07:19 +01:00
JetSetIlly
a9710d55ef corrected how atarivox is muted/disabled
mute/disable only prevents engine.SpeakJet() being called. it no longer
disables any other atarivox or savekey updating
2022-05-23 18:56:43 +01:00
JetSetIlly
7e0e2a4714 altered how ineffective TIA/RIOT writes are handled
removed frequent and relatively expensive map lookups resulting in a
small performance increase
2022-05-23 18:02:40 +01:00
JetSetIlly
6422c08ddf QuickStep() added to complement Step() for TIA and RIOT
QuickStep() removes all checking for changed memory state. moreover, if
the CPU RDY flag is false, we can say that QuickStep() is always
prefered to Step() because by definition the state of memory cannot have
changed

a small but significant performance improvement. a side effect of this
improvement is that execution speed will increase depending on the
number and length of WSYNCs
2022-05-23 18:02:40 +01:00
JetSetIlly
5fb2bcc5b2 triggerMissileReset() only called on missile tick when necessary
small but significant performance improvement. the previous method by
which triggerMissileReset() could be considered a bug as it differed
from the intention. current code is correct with regards to intention
2022-05-23 18:02:40 +01:00
JetSetIlly
8edd79a9e8 removed writeSignal check in TIA and RIOT memory modules
the check was added as a protection/warning against incomplete TIA/RIOT
implementations. the removal has resulted in a small performance
improvement
2022-05-23 18:02:13 +01:00
JetSetIlly
a5468fc215 simplified CPU cycleCallback function. removed nil check 2022-05-23 14:29:33 +01:00
JetSetIlly
bb707e5818 tidied Audio.Step() function 2022-05-23 14:29:33 +01:00
JetSetIlly
997411743d abstract filepath.Abs() in fs package (for wasm target) 2022-05-22 21:45:51 +01:00
JetSetIlly
618e239bf6 operator field in instructions.Definition is now numeric
this significantly increases the speed of lookup in the cpu
2022-05-22 20:52:54 +01:00
JetSetIlly
08ec430643 small performance bump by removing implicit call to runtime.assertI2I 2022-05-22 19:47:00 +01:00
JetSetIlly
c20b20d5f7 clarified some concepts in the prefs package. "fixed" the Generic type 2022-05-16 13:05:26 +01:00
JetSetIlly
ee07cd0a54 muting of peripherls must now go through the central ports.MutePeripherals() function
this allows the ports type to apply the mute state on newly inserted
peripherals

this prevents the situation on startup in which the mute is applied
before the peripheral is inserted
2022-05-15 21:29:31 +01:00
JetSetIlly
deb0887165 atarivox implementation will not produce sound if audio is muted
audioEnabled preference values renamed to audioMute

this is to facilitate the differentiation of muting and disabling
AtariVox output. muting of AtariVox is a subset of audio mute.
2022-05-13 11:30:55 +01:00
JetSetIlly
e3432cf1ab frame relative statistics collated by coprocessor.developer package
should work even if no source is present (unlike the other performance
statistics)

performance window shows "summary relative to TV" data
2022-05-08 17:55:53 +01:00
JetSetIlly
a18bd571cc Added reference to the TIA colour chart used for TV colour values 2022-05-08 14:40:50 +01:00
JetSetIlly
07a148dba0 note which 2600 kernel an ARM program is run in
added column in performance window
2022-04-30 13:30:36 +01:00
JetSetIlly
8cd1cbd343 mnetwork bank selector was broken for ROMS <16k 2022-04-29 14:16:23 +01:00
JetSetIlly
fd591dd46d peripherals weren't being fingerprinted when loading from an initial ROM selector 2022-04-29 13:50:33 +01:00
JetSetIlly
b393ef0ec5 reverted f09ac1501c 2022-04-29 12:07:21 +01:00
JetSetIlly
7112abb5a9 Stack collisions now appear in illegal access log/window
once a stack collision has occured illegal memory accesses are no longer
checked
2022-04-24 19:14:51 +01:00
JetSetIlly
dd20c1b18c ARM stack collision detection
if ARM SP register has changed the new value will be compared with the
highest memory address occupied by a variable in the source. collisions
will be logged

preference added to abort thumb program early if a collision happens
2022-04-23 23:15:11 +01:00
JetSetIlly
f09ac1501c ARM stack pointer only reset on processor instantiation 2022-04-23 20:30:44 +01:00
JetSetIlly
0b1a883984 RAM window indicates whether address has a symbol
applies to Cart RAM window too

VCS RAM window shows extent of stack. tooltip shows predicted address in
event of RTS

DrawByteGrid() function is more flexible. old method is available as
DrawByteGridSimple()
2022-04-23 15:59:47 +01:00
JetSetIlly
e8194e29d5 adjust missile reset missile conditions for double width player
noticed by @ale-79 in https://github.com/stella-emu/stella/issues/889
2022-04-22 17:00:55 +01:00
JetSetIlly
ca0b6ffe18 refined hotload functionality. only enabled for CDF carts
still not really useful except for simple CDF carts
2022-04-22 14:32:28 +01:00
JetSetIlly
02f91de198 F4 bank switching scheme hard-wired to start from bank 0 and not bank 7 2022-04-13 14:16:43 +01:00
JetSetIlly
39c7969657 updated CDFJ+ mapper. now supports fast LDX/LDY and stream offsets 2022-04-12 20:20:04 +01:00
JetSetIlly
44e383923c reworking of CartStaticBus interface and related types
easier to look at and should be more flexible when going forward with
DWARF variable handling
2022-04-12 20:20:04 +01:00
JetSetIlly
65bd001d9c global variables window. proof of concept implementation.
ammended mapper.StaticBus to support Reading from address. some DPC+
features temporarily not available as a result
2022-04-12 20:20:04 +01:00
JetSetIlly
897db2e0ea added SWCHB truth table to comment for deriveSWCHB() 2022-04-12 09:46:17 +01:00
JetSetIlly
2c5a543489 fixed logic behind SWCHA. it is not the same as SWCHB
SWCHB was working fine. logic for SWCHB was mistakenly applied to SWCHA
2022-04-11 23:04:45 +01:00
JetSetIlly
154442e4cb added CDF streaming window
clarified CDF implementation, particularly how registers are handled

increased the number of nominal datastream registers to the correct 32

update of DPC and DPC+ windows to mirror cosmetic changes in CDF
registers window

cosmetic changes to disabled widgets
2022-04-10 22:15:08 +01:00
JetSetIlly
8633e2e2e6 gamepad correctly raises the high bit of INPT0 (and INPT2 for right player)
Unplug() function correctly implemented for gampad, stick, paddle and keypad
2022-04-09 15:24:16 +01:00
JetSetIlly
3972842419 added left and right arguments for debugger and playmode
PERIPHERAL command now accepts AUTO parameter. this will (re)fingerprint
the cartridge and insert the "detected" peripheral

implementation temporary in lieu of an improved setup package
2022-04-09 15:24:16 +01:00
JetSetIlly
2800c911c8 ARM access of address 0x00 is treated as illegal (probably null derefernece) 2022-04-09 15:24:16 +01:00