Commit Graph

1650 Commits

Author SHA1 Message Date
stephena f12a1a658c Added scanline and framerate counter during emulation mode, similar to
the one in z26 with the '-n' option.  This is activated with the new
'-stats' commandline argument as well as dynamically during emulation
with the 'Alt-l' key combo.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1521 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-20 13:42:50 +00:00
stephena bd0393352e Changed framerate timing to be based on the number of scanlines found
in auto-detect mode.  This fixes an issue with the latest JunoFirst beta,
which had sound skipping because it has 266 scanlines but ran at 60fps
(when it should have been ~59.09 fps or so).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1520 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-19 21:16:58 +00:00
stephena b270f7f231 Similar to the last commit, added cycle resetting the TrackBall class.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1519 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-19 03:15:12 +00:00
stephena f35ef466c6 Fixed issue with EEPROM access as reported on AtariAge. The AtariVox,
SaveKey and EEPROM are 'smart' controllers, making use of cycle counts
for timing.  All such devices may periodically need their counters reset
to prevent overflow, and this was missing from the aforementioned
controllers.

Removed some debugging code from AtariVox class.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1518 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-19 02:53:58 +00:00
stephena 52db865c0e Further improvements to the EquateList symbol handling. Symbol
addresses are now determined over the entire address map (taking
into account mirroring), not just the ones defined in the internal
symbol map.

Fixed issue with mirrored TIA write addresses $40; they were actually
being defined as at $30.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1517 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-18 20:04:30 +00:00
stephena 0ae02cb0be Made an empty EEPROM default to all $FF.
Fixed bug in commandmenu where console command buttons weren't working.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1516 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-17 15:16:45 +00:00
stephena a45191dbe3 Well, that didn't take long; we already need a 2.6.1 release.
Fixed issue where some F6 carts were being autodetected as E7.

Updated RIOT timer behaviour yet again; Summer Games was broken.  I think
I've finally got it now.

Made random number generation actually generate random numbers, by seeding
the generator based on the current 'ticks'.

Updated properties for several AtariVox ROMs.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1515 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-16 23:56:31 +00:00
stephena 1d879fa79a Final 2.6 changes for OSX.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1513 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-16 12:34:38 +00:00
stephena 7ed4ef1b58 A few more BoosterGrip related changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1512 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-16 12:17:23 +00:00
stephena 9d51e63d86 Final changes for the 2.6 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1511 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-16 12:04:35 +00:00
stephena cd184d1c69 Bumped version # for impending 2.6 release, and also for the state file
format (it's broken again since 2.5).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1510 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-15 19:10:10 +00:00
stephena 0a00daf111 Minor optimization in the EEPROM emulation code; we only initialize
data when necessary.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1509 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-15 19:05:09 +00:00
stephena bba25a39d8 Added console switches to debugger RIOT/IO tab. Barring any huge
problems, we'll soon be ready for a new release (after I update the
documentation).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1508 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-15 18:59:56 +00:00
stephena ff48c93a02 Added ability to change controller port pins from the POV of the
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
2008-05-15 15:07:29 +00:00
stephena 865fc88e7c Added timer registers to the debugger RIOT tab, and enabled the changes
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
2008-05-14 18:04:58 +00:00
stephena 2b07fcab04 Updated RIOT tab in debugger to show values of SWCHA in both write
*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
2008-05-13 15:13:17 +00:00
stephena 9fe48afffd Updated OSX project files for recent TrackBall class.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1504 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-13 11:09:35 +00:00
stephena b43b2d62b8 Updated Visual Studio project file for TrackBall class changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1503 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-12 22:48:20 +00:00
stephena 30ee2804b8 Added support for CX-22, CX-80 and AmigaMouse trackball-type controllers.
This code was heavily borrowed from z26.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1502 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-12 22:40:26 +00:00
stephena 19be269077 Relaxed recent equate changes to allow all symbols to be used from a .sym
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
2008-05-11 21:18:35 +00:00
stephena 694d175f36 Success at last!!! I finally have the AVox and SaveKey EEPROM emulation
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
2008-05-10 22:21:09 +00:00
stephena ca174e4032 Only add the actual Console controllers after auto-detection of console
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
2008-05-08 20:23:31 +00:00
stephena 44913019b8 Yet more work on the RIOT SWCHA/SWACNT write functionality. I'm now
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
2008-05-06 16:39:12 +00:00
stephena 27441fadbf Updated debugger symbol handling to differentiate between addresses that
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
2008-05-04 17:16:39 +00:00
stephena d6ed407f1b Checking in WIP code for new debugger symbol file handling. Symbol
loading is currently broken.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1496 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-02 01:19:48 +00:00
stephena 43d64f7eec Cleaned up the EquateList API a little, in preparation for enhanced
symbol support.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1495 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-05-01 23:08:24 +00:00
stephena 35ac942cc8 Updated OSX project files for recent class additions.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1494 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-04-30 16:50:20 +00:00
stephena d6da90fc27 Commented out some debugging code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1493 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-04-29 20:06:14 +00:00
stephena 2195280203 Updated Visual Studio project files for recent class additions.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1492 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-04-29 19:20:43 +00:00
stephena 97404cde2a And yet another set files I forgot to add. I really need to add files
as soon as I create them.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1491 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-04-29 19:11:42 +00:00
stephena 6e51d951ef Oops, forgot to include the SaveKey class.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1490 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-04-29 15:49:34 +00:00
stephena 0b272431ca Added preliminary support for a RIOT (I/O) tab in the debugger. It
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
2008-04-29 15:13:16 +00:00
stephena 38a98d9420 Fixed some typos in the comments.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1488 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-04-28 21:31:40 +00:00
stephena f91bf67995 Yet another tweak to the RIOT emulation. This one concerns the timer
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
2008-04-28 20:59:39 +00:00
stephena 2f34d50c39 Fixed bug where GL stretching wasn't actually being done on 4:3
(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
2008-04-28 15:53:05 +00:00
stephena 41f27f31a4 Fixed typo with double ampersand instead of the required single ampersand
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
2008-04-27 11:53:22 +00:00
stephena bdedb60d9d Fixed issue with Win95/98 not having a required function which is required to determine the 'My Documents' folder. This issue was actually causing Stella not to start at all in those environments. Thanks to the Lyx project for the relevant code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1484 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-04-26 16:51:13 +00:00
stephena 74362c3f0f Cleaned up the RIOT class a little more, hopefully making it easier to
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
2008-04-23 16:51:11 +00:00
stephena 0682a85999 Some more experimentation with the RIOT and AVox 'connection'. The AVox
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
2008-04-20 19:52:33 +00:00
stephena b0d9de7344 Updated OSX project files for recent RiotDebug class.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1481 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-04-19 23:55:15 +00:00
stephena 3020cd3a38 Updated Visual Studio project files for RiotDebug class.
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
2008-04-19 22:49:00 +00:00
stephena 735144457d Added RiotDebug class, which for now only duplicates the previous
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
2008-04-19 21:11:52 +00:00
stephena 6cde4a35af Bumped version number past 2.5.1.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1478 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-04-18 18:41:18 +00:00
stephena dcf1d6be93 Another fix for the RIOT code. Reading SWCHA also depends on the last
value written if SWACNT as been set to output.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1477 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-04-17 13:39:14 +00:00
stephena ea4aba5887 Finally got AtariVox serial output working in OSX. It's amazing what
can happen once the hardware actually works :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1476 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-04-14 18:50:35 +00:00
stephena 0c55ff0bad Actually added serial port classes to the OSX project this time. I still
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
2008-04-14 15:45:30 +00:00
stephena d45f6bef60 Added SerialPort classes for OSX. I still have to test if it actually
compiles though.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1474 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-04-14 15:12:55 +00:00
stephena f7a1d3d147 Added EEPROM classes to OSX project files.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1473 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-04-14 10:26:19 +00:00
stephena e6bb277f82 Oops, the timer was wrong in the I2C code. It still isn't working
though.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1472 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-04-14 01:39:59 +00:00
stephena b5a52b566c Some more work on the EEPROM code. I still can't get it working; it seems
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
2008-04-13 23:43:14 +00:00