controller to the RIOT debugger tab. For now, it's very joystick-
centric, and will remain that way for the next release. Also, the
states are inverted, in that selecting 'up' for port 0 actually
turns the checkbox *on*. This is more intuitive from the POV of the
user, but in actual fact behind the scenes the bit is set to 0!
This is all I'm including wrt the controller ports for the next
release. The dumped INPTx registers will have to wait.
Still TODO is add the console switches to the RIOT tab.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1507 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
to be sent to the debugger core. SWCHA and SWACNT can be changed,
SWCHB cannot. The latter will be addressed by a series of labelled
checkboxes that more clearly illustrate the function.
Also, INTIM/TIMINT/TimClks cannot be changed, as it doesn't make sense
to do so (their results depend on other registers; more specifically,
they're calculated, not stored). You can however change the TIMxxT,
which will consequently change the read-only timer registers.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1506 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
*and* read mode. Write mode will allow one to change the value (ie,
poke to SWCHA). Read mode will not allow change of value, and will
show the contents of the previous write to SWCHA (which isn't always
the same as the peek value, as it's influenced by SWACNT). This makes
it much easier to see how the AVox/SaveKey code works with these
registers.
Removed SWBCNT from the RIOT tab, since it's read-only and always the
same thing anyway (hard-wired to input).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1505 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
file. This will have to do for now, until we find a better way of
differentiating between constants and addresses.
Made the ROM disassembly area take advantage of a wide debugger window
by spacing out the label and disassembly areas.
Finalized location of the AVox and SaveKey EEPROM files; they're now
located in the basedir (the actual location depends on the OS).
Made deadzone for analog joysticks configurable from the commandline
and UI. Added '-joydeadzone' commandline argument, which accepts
a value from 0 - 29, specifying a deadzone of '3200 + DEADZONE * 1000'.
Also added UI to InputDialog to set this from dynamically from the UI.
Added code to only save the AVox and SaveKey EEPROM data file when
necessary. This is for those systems based on flash storage, where
unnecessary writes will wear down the drive.
Added SaveKey as a full-fledged controller to GameInfoDialog.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1501 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
working. After about a week of banging my head against the wall, I
happened to try another test ROM, and everything worked. So it seems
that the SaveKey test ROM from Thomas J. (with the optimized I2C
macros) isn't working correctly, or I miscompiled it or something.
All other ROMs I've tested work fine, including MGD, Fall Down,
Stratogems Deluxe, Go Fish, etc. Thomas, if you're reading this, could
we try to figure out what's going on here??
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1500 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
type. Auto-detection runs the system for a little while, and this
interferes with the AtariVox and SaveKey controllers.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1499 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
almost 100% sure the current RIOT write handling is working correctly,
as it works with all ROMs I've tested as well as the SpeakJet portion
of the AtariVox. I2C EEPROM handling still isn't working, but at least
now it's getting the correct values (in the correct order) from the RIOT.
So it should be much easier to finish, now that the RIOT part is taken
care of.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1498 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
have different labels depending on if they're being read or written.
This means that, for example, reading address 0x0 from the TIA will use
label 'CXM0P', while writing the same address will use label 'VSYNC'.
There's still more work to do in this area, since we still need to
differentiate between symbols that hold addresses, and ones that hold
constants. And I'm not sure how to do that, since the DASM .sym file
doesn't export that info.
Added gl_lib = 'opengl32.dll' to the settings for Win32.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1497 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
currently only shows the SWCHx and SWxCNT registers, but it will be
expanded to include all items currently shown by the prompt 'riot'
command.
Added SaveKey controller, which is basically an AtariVox without the
SpeakJet chip. The I2C code still isn't working (same as AtariVox).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1489 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
behaviour after wraparound, which isn't sufficiently defined in any of
the documentation I've read. The new code works with all the ROMs I've
tested, but I still have the feeling it's a bit of a hack. More
research is definitely required.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1487 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
(standard fullscreen) monitors. I only have widescreen monitors here,
and never noticed the problem :)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1486 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
in evaluating the SBC opcode. Technically, the code does the same thing
in C++, but that was only a fluke :) Thanks to JLA for the bug report.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1485 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
understand. Eliminated certains constants that I could never really
explain (like the 0x40000 constant from z26), and more properly emulated
the behaviour when going negative on the timer count (according to the
documentation).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1483 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
SpeakJet portion is working, but still no-go for the I2C stuff.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1482 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Removed debug message from TIA which were mistakenly committed.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1480 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
functionality of the Debugger::riotState() method. It will become
more useful when I add a RIOT tab to the debugger. Also, added
change tracking infrastructure.
Fixed long-standing bug with viewing the contents of TIM{1, 8, 64, 1024}T
registers. Apparently, the output generated by the 'riot' debugger
command showed either INTIM or TIMINT for those registers, and not the
actual value written to those registers.
Added INTIM, TIMINT, and TIMCLKS to the riot output, which show the
current values of the timer, the timer interrupt, and the number of
'timer clocks' resulting from writing to a timer register.
Cleaned up some of the debugger API, removing pointers and using
references instead.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1479 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
can't test it, because I can't get OSX to see the AVox on the systems
here at work.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1475 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
to never write anything to the EEPROM data array. I'll have to speak to
Supercat about that one.
Rearranged controller stuff, and changed the API a little. Basically, I
eliminated pointers to System in the controller classes, so they'll
always have a valid system object.
The savegame screen in MGD now appears, indicating that we're reading
from EEPROM SDA correctly. Of course the score isn't being saved
properly yet.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1471 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
used in the AtariVox and SaveKey. It isn't actually connected yet, and is
basically a C++ wrapper around the I2C routines provided by J. Payson
(aka Supercat).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1469 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
'Mission Survive', 'Solaris' and 'Swoops!'. These are temporary hacks
until the new TIA code is written, which *will* be done before the next
major release. In fact, it might even justify a 3.0 release. Fixing
the TIA is my number one priority over the next few months.
Added debug code to the TIA class pointing out when object positions
are reset less than 24 cycles after an HMOVE (which incidentally is
the cause of most of the TIA emulation bugs). Simply uncomment the
DEBUG_HMOVE declaration at the top of the class to activate this.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1467 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
bad, parity, stop bits, etc. Since the AVox is the only device using
this, and I don't see any new devices making use of it any time soon,
it doesn't make sense to over-engineer the class.
Added '-avoxport' commandline argument and associated UI setting to
set the serial port the AVox will use. I *was* thinking about
auto-detecting this, but apparently it isn't supported on all platforms.
Added AtariVox as a controller type selectable from the GameInfoDialog.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1465 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
I was making, shadowing an instance variable with a local one. I must
be losing it :)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1464 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
new code seems to contradict some documentation on the timer behaviour,
but does work with all ROMs I've tested (it even fixes a few ROMs that
didn't work before). I'm not sure if the documentation is incorrect;
more testing and feedback is needed.
Bumped version number and documentation for 2.5.1 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1459 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba