Commit graph

1627 commits

Author SHA1 Message Date
JetSetIlly
d9e0bd0380 corrected thumb2 EOR instruction. shift type was wrong 2024-03-05 10:54:01 +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
608b3a59fe increase control repeat speed for moviecart
changed some OSD related variable names for clarity

related to issue #26
2024-02-25 17:51:47 +00:00
JetSetIlly
d69507b1d8 fixed brightness adjustment for moviecart
OSD area was affected by brightnes and increment was wrong

related to issue #26
2024-02-25 17:49:08 +00:00
JetSetIlly
0ac2a60937 corrected off-by-one error when increasing moviecart volume
fixes issue #26
2024-02-25 15:51:29 +00:00
JetSetIlly
de8da98f61 CPU in KIL start now ticks the TIA and RIOT by one cycle 2024-02-22 18:20:01 +00:00
JetSetIlly
2f156064b2 thumb disassembly ADD operator mislabelled as SUB
the subtract flag was parsed correctly but the SUB operator was given in
the DisasmEntry for both instruction types
2024-02-19 22:37:49 +00:00
JetSetIlly
aedf5b7978 DPC+ and CDF save and restore ARM state, like the ELF and ACE mappers
this isn't strictly necessary for correct operation of DPC+ and CDF due
to how they work but it does allow the coprocessor registers window to
update as expected
2024-02-13 13:26:19 +00:00
JetSetIlly
7d7cbc21ac improved atarivox phoneme flushing
atarivox does not start the engine except for the main emulation. ie.
thumbnailers and preview emulations, etc. do not use festival

atarivox does only steps if the builtin savekey is in the stopped state
2024-02-10 11:33:38 +00:00
JetSetIlly
4d7ec9f109 fixed TV frame size clamping
frame cannot be bigger than the NewSafeVisible values and not smaller
than the AtariSafeVisible values

works well with PAL60 resizing
2024-02-09 11:53:23 +00:00
JetSetIlly
558ec65438 fixed TV frame generation when VSYNC immediately follows natural flyback
the solution isn't perfect but given the current state of how the TV and
pixelRenderes work and interact, it's an adequate solution
2024-02-09 11:39:06 +00:00
JetSetIlly
26bb7ae69d reversed paddle direction for stelladaptor input
fixed overflow of paddle resistance for stelladaptor
2024-02-08 21:17:46 +00:00
JetSetIlly
58315e5182 added VCS.Snapshot() function. simplifies the rewind package
also allows easy access to the VCS snapshot process when there is no
need to use the rewind package
2024-02-05 11:41:17 +00:00
JetSetIlly
5b7a22ebb9 vcs.RunForFrameCount() checks for CPU KIL state 2024-02-03 21:35:17 +00:00
JetSetIlly
df1afc5c21 added preview package
preview can be used to run a ROM for a short period in order to gather
information about the ROM that can only be found through execution. this
is useful for example, for setting the TV dimensions
2024-01-28 20:14:18 +00:00
JetSetIlly
745e977ef2 improved thumbnailing 2024-01-28 20:14:18 +00:00
JetSetIlly
e52f2420b1 screen resizing not performed when TV is unstable
improved screen size detection of PAL and PAL60 during startup (ie. when
TV is unstable)

resizing no longer clears display pixels
2024-01-28 18:34:52 +00:00
JetSetIlly
b450c0bde9 corrected black pixel framing 2024-01-28 10:41:08 +00:00
JetSetIlly
e491cccbff another correction for VBLANK framing 2024-01-28 10:41:08 +00:00
JetSetIlly
7c2686b5e5 ELF symbols with no name now show as "anonymous" is relocation log messages
improved/corrected log messages for R_ARM_THM_PC22
2024-01-28 10:41:08 +00:00
JetSetIlly
f21c693c23 option to select PAL60 missing from the command line
arguments to vcs.SetClockSpeed() more robust
2024-01-28 10:41:08 +00:00
JetSetIlly
81e4a28f51 SRAM for ELF ROMs randomised on startup
controlled by the RandomState preferences values
2024-01-22 12:52:16 +00:00
JetSetIlly
0647cc2740 corrected memory address for MAMCR and MAMTIM (ARM7TDMI) 2024-01-22 09:53:32 +00:00
JetSetIlly
3e88583db0 simplified ARM 'extended memory logging' 2024-01-22 09:53:32 +00:00
JetSetIlly
e3c4c5190e undefined ELF symbols trigger a MemoryFault() when they are accessed
added fault category column to memory faults window
2024-01-22 09:53:32 +00:00
JetSetIlly
86e799b8e8 improved DPC static memory implementation
previously, the static memory was not subject to the Snapshot()
function required by the rewind system. static memory is now copied
on every snapshot. this isn't normally needed because in DPC the data
cannot be changed by the 6507 progam. however we might want to change
the data through the debugger and it is therefore desirable that copies
are kept for comparison and rewind purposes
2024-01-22 08:10:30 +00:00
JetSetIlly
420268ad54 better segment management for DPC+ and CDF
apart from better organisation, these changes fix a bug in CDF that
could cause a crash caused by the ARM program accessing a memory address
that is not represented in the emulation
2024-01-22 08:10:30 +00:00
JetSetIlly
08298ecc1b ELF fails on undefined symbol 2024-01-18 21:06:09 +00:00
JetSetIlly
e8dc4c0b43 corrected which TV spec string is used for vcs.SetClockSpeed()
sometimes the command line argument, AUTO, was sent rather than the
detected specification as a result of the AUTO request. this resulted in
a spurious/misleading log message
2024-01-18 21:06:09 +00:00
JetSetIlly
8bb94f9654 nil protection on disassembly definition 2024-01-16 10:54:54 +00:00
JetSetIlly
8bbbc4f563 PAL-M machines generate NTSC colours and not PAL colours 2024-01-13 18:07:16 +00:00
JetSetIlly
ec3b840af2 television resizing
TV cropping was misaligned by one pixel vertically (gui)
2024-01-10 17:42:55 +00:00
JetSetIlly
7679d96f21 search for TV spec in filename now ignores the path component
for example, in ROM Hunter's archive there are directories called "PAL
VERSIONS OF NTSC ORIGINALS" and "NTSC VERSIONS OF PAL ORIGINALS". these
cause false positives in the TV spec search
2024-01-10 17:42:55 +00:00
JetSetIlly
83e52bdd62 Television Aspect Bias is now constant for all specifications 2024-01-10 17:42:55 +00:00
JetSetIlly
547bba947c Added PAL-M TV specification
this replaces the PAL60 specification. PAL60 can still be specified on
the command line (and embedded in ROM filenames) but it is now treated
exactly the same as PAL
2024-01-10 17:42:55 +00:00
JetSetIlly
0a91777f53 allow TV size to shrink from bottom 2024-01-10 17:42:55 +00:00
JetSetIlly
3a6b1f3a3e changed EventDataPaddle to use integer based (int16) values
EventDataPaddle can now specify whether the values are relative or
absolute values. previously all values were absolute

hardware mice use relative values whereas devices like the stelladaptor
use absolute values

removed gamepad trigger operation of paddles. it was a poor solution to
the problem
2024-01-10 17:42:11 +00:00
JetSetIlly
ed7574db17 paddle improvements
values internal to the paddle implementation are integer based rather
than float based. incoming events are still float based

paddle resistance value set correctly on reset. this means unplugged
paddles are positioned correctly

tick value reset to zero on VBLANK. not resetting to zero could cause
visible jitter on the screen

mouse capture now uses SDL "relative mouse mode" this means the mouse
movement is based on the screen rather than the window
2024-01-10 17:42:11 +00:00
JetSetIlly
a2f683b340 supercharger tape menu entry not shown for supercharger binary ROMs 2024-01-09 15:38:30 +00:00
JetSetIlly
f850429630 enabled two compile time moviecart options by default
enabled 'improve neat start image' and 'improve audio mute'

both options are now effectively part of the lodef's firmware and stella
2024-01-06 09:45:17 +00:00
JetSetIlly
67a682d32c SECAM/PAL60 console timing 2023-12-31 17:02:37 +00:00
JetSetIlly
41c1c05305 previous fix was incorrect. undone
identification of the TIM1 enabling bit is now correct
2023-12-31 09:40:01 +00:00
JetSetIlly
5976dd9be7 ARM TIM1 enabled by default on intialisation 2023-12-30 17:25:56 +00:00
JetSetIlly
7a588bc5c5 Atari (and EF) cartridges no support random bank on startup
improved the detection of the starting bank for Atari cartridges by
searching the banks for a "correct" reset address. basically, if the
reset address is in cartridge space then it is assumed to be correct and
that bank selected, otherwise the next bank is tested
2023-12-12 17:00:12 +00:00
JetSetIlly
7e93107da7 changed F6 mapper to start in bank 0 (instead of bank 1)
Berzerk (Voice Enhanced) does not work with anything other than a
starting bank of 0

extensive commentary added to atari.Reset() function about why bank 0 is
correct
2023-12-12 08:35:10 +00:00
JetSetIlly
d04109fdaa moviecart sends notification when attract screen ends
the TV is reset in the same manner as supercharger on receipt of the
notifcation. This allows the TV to auto-detect the specification from
the movie content and not the attract screen

the disadvantage of this is that the NTSC attract screen will show for a
PAL movie but this is a small complaint. the way around this would be
for the first dozen frames of the movie to be run unseen before the
attract screen starts and for the TV to detect the specification from
that
2023-12-07 16:05:23 +00:00
JetSetIlly
9f6cbdad58 added CYCLE quantum
updated QUANTUM and STEP commands to accoodate new quantum

control window changed to support the three quantum options

improved/corrected the conditions under which the ONSTEP command is run

disassembly.ExecutedEntry() updates existing entry
2023-11-27 07:47:30 +00:00
JetSetIlly
0e6b1adc2a corrected bus sequence for RTS and JSR instructions 2023-11-26 14:47:41 +00:00
JetSetIlly
84ad23c03e moved Patch() from CartMapper to CartPatchable interface
this means that a mapper only needs to implement the Patch() if it makes
sense

mappers that don't need it have had the Patch function removed.
implemented function for SCABS and UA

corrected error messages for atari mappers - some messages weren't
referencing the correct atari mapper and simply stated "atari"
2023-11-26 09:32:28 +00:00