Commit Graph

1178 Commits

Author SHA1 Message Date
Stephen Anthony 185119eed9 When manually changing ystart from auto-detect mode, note when the
manually selected ystart line matches the auto-detected one, and reset
it in the ROM properties.  This makes sure that auto-detected values
are actually stored as '0', and not the auto-detected value.

Fixed ystart for 'Swoops' ROM.
2017-03-04 14:41:05 -03:30
Stephen Anthony 37774e08b8 Re-sync load() and save() methods in TIA class. 2017-03-03 22:04:30 -03:30
Stephen Anthony b5b058c615 Made VblankManager::ystart() always return a valid ystart, either
autocalculated or fixed.  This fixes selecting a scanline with the
mouse in TIA output widget in the debugger.

Made various methods inline for issue #7.
2017-03-03 21:57:36 -03:30
Stephen Anthony 517ac713ad Fixed approx. 100 ROMs that no longer need explicit ystart data
in the ROM properties file (due to fix to ystart autodetection).
2017-02-28 19:55:32 -03:30
Stephen Anthony 2a2797cbaf Fixed 'mystery constant' in M6532 in two other places. 2017-02-26 20:29:18 -03:30
Christian Speckner 10245ea102 Tentatively remove the legacy kludge in RIOT timer handling. 2017-02-27 00:25:06 +01:00
Christian Speckner 8f93704559 Frame manager fixes
* Don't wait until next line before starting frame after vblank is
      deactivated -> fixes white line on top of time pilot
    * Make ystart match stella 4 conventions
2017-02-27 00:15:03 +01:00
Stephen Anthony 5114a8e88e CX22/CX80 trakball controller has half the resolution of an
Atari/Amiga mouse, so do an extra divide by 2 for the counters.
2017-02-24 18:38:26 -03:30
Christian Speckner 38b452e1a0 Make sure that the resistance read from paddle controllers is always in the physical range. 2017-02-24 08:48:52 +01:00
Christian Speckner 41ec98c6c1 Fix small RSYNC regression. 2017-02-22 01:27:16 +01:00
Christian Speckner b173da05a0 Init S to 0xFD on reset. 2017-02-21 22:21:53 +01:00
Stephen Anthony 6846aadadf Fixed 'Maze Craze' NTSC ROMs to not use format autodetection. 2017-02-20 21:18:28 -03:30
Stephen Anthony 0d86649b47 Oops, used incorrect names in inptx serializable name() methods. 2017-02-20 21:10:24 -03:30
Stephen Anthony 8263eb1e7c Implemented Serializable for TIA inptx registers (LatchedInput
and PaddleReader).  For now, PaddleReader is stubbed out, since
it needs to save double values and Serializer can't do that yet.

Fixed bug in Ball, Background and Playfield serialization; they
were correctly saving data, but returning false (indicating failure).
2017-02-20 21:05:54 -03:30
Stephen Anthony 30e1996d5b Fixed reading of VBLANK register in debugger. 2017-02-20 20:42:33 -03:30
Stephen Anthony c99cb33cda The TIA image in the debugger is now correctly rendered in greyscale
below the current electron beam position.

Fix long-standing bug whereby entering the debugger for the first time
and tracing/scanline advancing, the TIA image was blanked, and didn't
work correctly until you exited and re-entered the debugger.

Minor refactoring optimizations, and renaming of methods.
2017-02-20 19:51:59 -03:30
Christian Speckner 39f756f821 Fix paddle input if no paddles are not connected.
Don't charge cap if resistance is maxed.
2017-02-20 00:49:54 +01:00
Christian Speckner 75bd732525 Fix artifacts due to varying frame height and doublebuffering.
Duplicate myLastFrameHeight and swap the values
2017-02-19 22:28:47 +01:00
Christian Speckner 146d0afe4f Set undefined bits on TIA read from last data bus value. 2017-02-19 15:39:54 +01:00
Christian Speckner 0efbbdec45 Debugger fixes:
* Fix scanline stepping during blank
    * Fix start of visible range
2017-02-16 22:58:24 +01:00
Stephen Anthony d9304fa06b Forgot to re-initialize on load() in Playfield. 2017-02-11 22:37:11 -03:30
Stephen Anthony c73c606638 Implemented Serializable for Background, Ball and Playfield classes,
since it looks like they won't be heavily modified any further.
2017-02-11 22:30:58 -03:30
Stephen Anthony 52d3bd9df3 Separated the various trakball-compatible controllers into their
own class, preparing for further work on issue #70.

The 3 classes are now named more appropriately, as mentioned in
issue #70.
2017-02-11 21:07:42 -03:30
Stephen Anthony c80f72b367 Allow configure script to run with clang-5, and fixed a minor
warning when compiling with clang++-5.
2017-02-10 21:32:58 -03:30
Christian Speckner c0a3a5394d Minor RSYNC fixes. 2017-02-09 01:36:47 +01:00
Christian Speckner fd95231722 Refine NUSIZ during draw decode. 2017-02-07 23:55:29 +01:00
Christian Speckner 00bfd088d3 Refactoring, add some buffering to improve performance. 2017-02-06 22:43:35 +01:00
Christian Speckner cef5fb4da0 Avoid side effects if the divider is unchanged by a NUSIZ write. 2017-02-06 21:12:41 +01:00
Christian Speckner 1a7ac60232 Match NUSIZ during player decode or draw to real hardware. 2017-02-06 00:30:39 +01:00
Stephen Anthony 8b4096e1ef Grabmouse is not used when using a virtual controller that doesn't output
analog data (ie, not a mouse).  This fixes the issue of mouse grabbing
when a ROM isn't even using the mouse.
2017-01-28 19:45:30 -03:30
Stephen Anthony 94e77d3b94 Partially implemented step by scanline in the debugger; I still have
some questions for DirtyHairy before I can finish it.
2017-01-28 18:33:44 -03:30
Christian Speckner f1d503a0ef Cleanup. 2017-01-27 01:12:34 +01:00
Christian Speckner 94292bbbd1 Even more accurate RESMx. 2017-01-26 01:02:33 +01:00
Christian Speckner 990fac5895 RESMx simplification and improvements. 2017-01-25 00:11:33 +01:00
Christian Speckner 72b8f6491e More accurately model RESMx during decode or draw. 2017-01-24 22:28:31 +01:00
Christian Speckner efc881a284 Correct slight blunder ;) 2017-01-21 16:10:57 +01:00
Christian Speckner ac14e40bff Fix an oversight. 2017-01-21 00:59:29 +01:00
Christian Speckner 6070291769 Slight improvement of the description of NUSIZ during draw. 2017-01-21 00:45:00 +01:00
Christian Speckner d521a230bd Introduce a one clock delay on ENAM. Fixes Midnight Magic. 2017-01-20 01:02:52 +01:00
Christian Speckner 6bb64d55e2 Fix naming. 2017-01-19 00:25:44 +01:00
Christian Speckner 517b0d167a Refactoring: move ystart detection logic into separate class. 2017-01-18 01:17:19 +01:00
Christian Speckner f189906813 Remove _6502TS_CORE from include guards now that we have just one core. 2017-01-18 00:15:18 +01:00
Stephen Anthony ac226eb6eb Updated ROM properties for Coke Zero demos. 2017-01-15 15:05:16 -03:30
Stephen Anthony 96567dfd4d A few ROM properties updates that I missed before. 2017-01-14 22:42:37 -03:30
Stephen Anthony 46d3532816 Merge branch 'master' of github.com:stella-emu/stella 2017-01-14 21:40:39 -03:30
Stephen Anthony 42122c3465 First pass to get debugger stuff working for TIA display. 2017-01-14 21:39:45 -03:30
Christian Speckner 3303f0560a Finalize and start frames right after vsync -> stabilizes algorithm. 2017-01-15 01:34:05 +01:00
Stephen Anthony c0aa5c83f5 Minor refactoring. 2017-01-14 13:18:12 -03:30
Christian Speckner b0b807407a Fix vsync locked -> floating transition. 2017-01-14 14:08:44 +01:00
Stephen Anthony bf1ff1aae0 Change YStart and Display widgets in GameInfoDialog to be sliders
instead of textboxes.  This allows to eliminate error checking,
since the widget will only allow sane values.

Added YStart/Display min/max variables to FrameManager, and
refactor for other parts of the codebase to use these variables.
2017-01-13 22:49:38 -03:30
Stephen Anthony 6c33dda9dd Updated ROM properties for a few ROMs I missed before. 2017-01-13 21:08:42 -03:30
Christian Speckner 0a8b1debfc Fix PAL autodetection:
* Be more tolerant when waiting for vsync during TV mode autodetect.
  * Count PAL and NTSC frames during autodetect, use the mode with
    more statistics.
2017-01-13 09:20:56 +01:00
Stephen Anthony 2ccb559138 Finalized update of Display.YStart in ROM properties. 2017-01-12 20:31:36 -03:30
Stephen Anthony 3cccb8bc57 Partial update of ROM properties for Display.YStart removal. 2017-01-12 14:23:32 -03:30
Christian Speckner aba48e85cf Limit the number of lines FrameManager waits for frame with large scanlines, refactoring. 2017-01-10 23:59:36 +01:00
Christian Speckner a6725f2436 Enable manual TV mode selection:
* Make mode autodetection in FrameManager conditional, disable by
      default
    * Add glue for externally setting up TV mode
    * Properly setup TIA TV mode in Console
    * Refactoring
2017-01-10 01:22:25 +01:00
Christian Speckner ef000d2ae5 Support manual height, remove vertical centering logic (no easy way to get this to work with ystart autodetect). 2017-01-10 00:12:25 +01:00
Christian Speckner bd46bb4174 Implement RSYNC. 2017-01-09 00:10:55 +01:00
Christian Speckner df1b2a99ce Fix invalid access in FrameManager. 2017-01-09 00:10:26 +01:00
Christian Speckner 7b733d6126 Start removing ystart from props where it isn't required. 2017-01-08 00:57:27 +01:00
Christian Speckner 452f083fc1 Support fixed ystart, change ystart default to 0 = autodetect. 2017-01-08 00:31:35 +01:00
Christian Speckner 602b7b9d0d Improve NUSIZ during player draw counter decode. 2017-01-06 00:52:25 +01:00
Christian Speckner 14ebb9772a Fix RESM during draw counter decode. 2017-01-05 21:07:41 +01:00
Christian Speckner eb1fe88176 Fix player decode logic reset during hblank. 2017-01-05 14:43:26 +01:00
Christian Speckner 6a2259ef2f Avoid possible issues during bogus vsync writes. 2017-01-02 00:10:06 +01:00
Christian Speckner a5f1a8624f Fix what looks like an inconsistency in the calculation of scanline count. 2017-01-01 22:34:28 +01:00
Christian Speckner a83e7eb26d Fix garbage for ROMs with varying visible frame heights:
* Keep track of max frame height
  * Blank out any missing scanlines
  * Refactoring
2017-01-01 22:28:13 +01:00
Stephen Anthony abb7097cb7 Removed $Id$ stuff from codebase, since it's Subversion-specific.
Whitespace cleanup and update copyright to 2017.
2016-12-29 20:30:30 -03:30
Christian Speckner cbb3c46461 Tentatively adjust RESMPx for 32 pixel players by one pixel. 2016-12-21 22:39:51 +01:00
Christian Speckner 0d37bbe132 Movement from starfield effect does only affect objects less four pixels wide. 2016-12-21 21:54:40 +01:00
Stephen Anthony 44acd10973 Updated ROM properties:
- Star Castle Arcade (Thomas J.)
 - Meltdown and Mega Bitmap Demo (fully working for the first time)
2016-12-19 18:11:57 -03:30
Stephen Anthony a6bc247852 WSYNC should only work when the last access was a read. 2016-12-19 15:56:26 -03:30
Christian Speckner f66a61f3b7 Tweak immediate ball rendering after RESBL -> fixes Keystone Kappers 2016-12-19 01:05:42 +01:00
Christian Speckner 7d7c0f6c9e Refine and unify late RESx during hblank, comments. 2016-12-18 22:47:24 +01:00
Christian Speckner f4932b8bf5 Fix INPT5. 2016-12-18 21:58:33 +01:00
Christian Speckner b700149cde Add a 1 cycle delay to ENABL (including delayed mode) -> fixes Super Challenge Football. 2016-12-18 14:39:24 +01:00
Christian Speckner 7b7f8767aa Emulate final movement counter reset -> fixes Masters of the Universe. 2016-12-18 00:48:17 +01:00
Christian Speckner 39ee43ee66 Fix wide player positioning, adjust NUSIZx during decode to better match real hardware. 2016-12-17 21:46:52 +01:00
Stephen Anthony e618a6c72c Fixed display of FPS in the TIA message window. This also fixes sound
issues, since the correct framerate is being communicated to the
emulation core.
2016-12-17 13:06:56 -03:30
Christian Speckner d77d2f2e61 Try to implement side effects of nusiz after draw dispatch -> fixes meltdown. 2016-12-17 15:17:40 +01:00
Christian Speckner 48d90768f3 Fix wide player dispatch after resp -> fixes missile command. 2016-12-16 23:40:26 +01:00
Christian Speckner a982a334a8 Fix RESMP for 8 pixel players. Fixes frostbite ice pans. 2016-12-15 01:01:20 +01:00
Christian Speckner 65008135b8 Fix CompuMate TV mode detect
* Make sure that compumate runs with the proper controllers attached
    * Make sure that CompuMate::myKeyTable is always valid
    * Whitespace fix
2016-12-14 21:02:52 +01:00
Christian Speckner b4eb78b127 Yet another adjustment to positionining during extended hblank. 2016-12-14 00:40:36 +01:00
Stephen Anthony 760d889478 Fixed crash in auto-detecting Compumate ROM.
The PAL version is still mistakenly detected as NTSC, though.
2016-12-13 20:03:12 -03:30
Christian Speckner 839ba71f20 Effectively fix the mystery positioning bug. 2016-12-14 00:03:17 +01:00
Christian Speckner 12fe183890 Simplify FrameManager state machine, smarter ystart / vblank detection. 2016-12-13 22:28:20 +01:00
Christian Speckner f0828c597d Checkpoint. 2016-12-13 22:28:20 +01:00
Stephen Anthony f982f0257f Enabled viewing TIA collision and playfield info in the debugger. 2016-12-13 12:03:54 -03:30
Stephen Anthony 7b0a82f04a Enabled some more TIA stuff in the debugger. 2016-12-13 10:57:15 -03:30
Christian Speckner b28dfaa31f Add call to resetCycles. 2016-12-12 22:51:42 +01:00
Christian Speckner a35f378d87 Improve TV mode detection logic:
* Skip the first view frames
    * Change the algorithm to be more eager to accept mode changes until the
      mode has settled for at least five frames
    * If in doubt, assign odd frames to NTSC
2016-12-12 22:25:47 +01:00
Christian Speckner b9e2fc9022 Fix VSYNC during kernel, retain conditional debug logging for later use. 2016-12-11 20:50:12 +01:00
Christian Speckner 18c31ebc2b Add a 1 clock delay to vblank. 2016-12-11 01:27:09 +01:00
Stephen Anthony 510c103030 More of the TIA stuff in the debugger is now enabled. 2016-12-10 16:37:47 -03:30
Stephen Anthony ac7670225b Updated OSX project files for removal of old TIA core.
Re-added comments to TIA class header.
2016-12-10 14:43:46 -03:30
Stephen Anthony 4d0147f3d1 Made new TIA core the default (code now compiles). 2016-12-10 13:38:28 -03:30
Stephen Anthony 4b5a02903e Delete old TIA core (files are only moved for now). 2016-12-10 12:45:00 -03:30
Stephen Anthony f7e712386b Fixed bug with SaveKey and AtariVox not properly closing their
memory files before starting another instance of the same ROM.
2016-12-09 19:04:14 -03:30
Christian Speckner b3c0993dcc Delay REFP[01] by one clock. 2016-12-09 12:50:26 +01:00
Christian Speckner f360e7fba2 Fix iniital player width --- fixes Yar's revenge. 2016-12-09 08:27:31 +01:00
Christian Speckner 400b333386 Effective discription of starfield width modulation for missiles and ball. 2016-12-09 00:47:52 +01:00
Christian Speckner a9d1ed3741 Fix undeflow in RESMP. 2016-12-08 22:20:51 +01:00
Christian Speckner 38d8d893aa Fix RESMP for 16 and 32 pixel players. 2016-12-08 21:17:56 +01:00
Christian Speckner afae00a654 Fix analog I/O:
* Premature optimization killed the cat --- approximated exponentioal does
      not converge fast enough, replace with real thing
    * Make sure that the readout circuit is updated before read
2016-12-08 00:37:12 +01:00
Stephen Anthony 072015c82a Removed toggling of displaying HMOVE blanks. With the old core, what
it drew in that area was sometimes garbage, and with the new core it
draws nothing at all (which is the correct behaviour).  Hence the
feature is obsolete.
2016-12-06 16:36:04 -03:30
Stephen Anthony 12bdff67b6 Missing newline at end of file (compilers complain about this). 2016-12-05 19:35:02 -03:30
Stephen Anthony 6d33db8646 Writes to TIA GFX registers are now seen in the ROM disassembly. 2016-12-05 16:55:31 -03:30
Christian Speckner 61155ace46 First stab at getting retriggering delays correct. 2016-12-05 20:32:47 +01:00
Stephen Anthony 1f54f3e263 Updated Visual Studio project file for new 6502ts TIA core classes. 2016-12-04 18:45:33 -03:30
Stephen Anthony b9630f5e2a Re-enable compilation with DEBUGGER_SUPPORT. The TIA stuff in the
debugger is currently broken, but at least the code compiles (needed
for the Windows and OSX test releases, as they aren't set up to be
compiled without the debugger.
2016-12-04 16:05:21 -03:30
Stephen Anthony 0de35eab7e For some reason, the top comment header is missing in some files. 2016-12-04 14:50:36 -03:30
Stephen Anthony c526d260a0 Re-enable fixed debug colors. 2016-12-04 14:48:17 -03:30
Stephen Anthony 9ca6f89778 When the new TIA core is enabled in a build, set it to the default when no
defaults have been specified.  The reason being, testers will be running old
and new versions of Stella, and with the previous settings, they would have
to continually reset 'tia.core' every time they run a new build.  Besides,
the point is for the new core to be the default, so we may as well enforce that
in the code.
2016-12-02 10:43:46 -03:30
Stephen Anthony 7bfaf10e80 Turning off HMOVE display doesn't work in the new TIA core, and really was
only a hack in the old core.  We will eventually remove this.
2016-12-02 10:22:59 -03:30
Stephen Anthony 3bb21cdbf3 Restored TIA::height functionality, otherwise the window won't be properly sized. 2016-12-02 10:16:49 -03:30
Stephen Anthony b34514e7f4 Implemented TIA::scanlines(), which now shows the proper scanline count in
the info window in the upper-left of the screen.  Still TODO is tie it to the
framerate, so that when the scanline count changes, it also auto-calculates
the framerate.

Some formatting cleanups in various classes.
2016-12-02 10:07:25 -03:30
Christian Speckner a8a4545222 Typo, more concise variable names. 2016-12-02 09:30:40 +01:00
Christian Speckner a717890c29 Microoptimization: pre-invert collision bitmasks. 2016-12-02 09:05:35 +01:00
Christian Speckner a1eb8fd9ab Add toggle logic to all sprites. 2016-12-02 08:58:19 +01:00
Christian Speckner 920787aa9f Sprite toggeling for missiles. 2016-12-02 01:11:54 +01:00
Christian Speckner 042dc72e66 Paddles / analog input. 2016-11-28 12:54:46 +01:00
Christian Speckner 3e4b975489 Add missing file. 2016-11-26 21:08:23 +01:00
Christian Speckner d66a58557b Always trigger draw during resbl, even during hblank. 2016-11-26 21:05:03 +01:00
Christian Speckner 34810ab25e Fix uninitialized value. 2016-11-26 15:36:43 +01:00
Christian Speckner 92ec526d68 Simplify priority logic in score mode. 2016-11-26 13:37:19 +01:00
Stephen Anthony 1924013daf Fixed write to CTRLPF with score mode enabled and playfield priority disabled;
the priority as well as the colours change from left/right screen.

Made getPixel method from each of the TIA objects inline, since they're called
so often.
2016-11-25 22:02:00 -03:30
Christian Speckner 7fad9b7cfa Fix fractiona counter initial value. 2016-11-26 00:18:18 +01:00
Christian Speckner 2bd5074828 Add latched input. 2016-11-26 00:08:32 +01:00
Christian Speckner e786b3307e Add resmp. 2016-11-25 23:23:04 +01:00
Stephen Anthony 6818da1566 Added savestate 'plumbing', for when the new TIA classes are finalized.
Bumped lowest version of state file format to 4.8, to make sure old
state files will not be loaded.
2016-11-25 14:58:07 -03:30
Christian Speckner eebf8c046f Collisions, basic input (no lateched input, no paddles). 2016-11-25 01:31:57 +01:00
Christian Speckner d2c9813da1 Fix timing to properly account for "fractional" system clocks -> bang! runs glitch free. 2016-11-23 23:59:32 +01:00
Christian Speckner cac9bf76c7 Delay queue fixes --- should be academic. 2016-11-23 23:55:10 +01:00
Christian Speckner d02c985a91 Add ball. 2016-11-22 23:22:16 +01:00
Christian Speckner 95c1d2b08c CS. 2016-11-22 21:56:50 +01:00
Christian Speckner 3a4827e0b8 Add a missing line cache invalidation -> fixes bang! plasma field. 2016-11-22 21:56:12 +01:00
Stephen Anthony ec2ee2c570 Added some 'Stella-isms' to the new TIA core code, like brace placement,
comment lines above each method, deleting new/d'tors whenever possible, etc.

Rename Missile.cpp to Missile.cxx.
2016-11-22 15:44:20 -03:30
Christian Speckner 14b701ef72 Fix accidential fallthrough in switch -> fixes funky space invaders. 2016-11-20 23:39:47 +01:00
Christian Speckner d9f91caab3 Don't reset autodetected TV mode on reset -> fixes TV mode autodetection. 2016-11-20 22:22:07 +01:00
Christian Speckner ac4520917e Add players. 2016-11-20 22:07:10 +01:00
Christian Speckner 87b24a5bba Coding style, hmmClocks can be 8bit. 2016-11-18 00:08:12 +01:00
Christian Speckner 594c460bc7 CS. 2016-11-17 23:25:13 +01:00
Christian Speckner 666028b66d TODO. 2016-11-17 23:24:38 +01:00
Christian Speckner baecc4e3a1 Fix timing glitch, port missiles. 2016-11-17 23:24:12 +01:00
Christian Speckner c8dc5e2db9 Fix delay queue, add delay to pfx writes. 2016-11-16 23:19:54 +01:00
Christian Speckner cdafe8d0a4 Playfield. 2016-11-16 01:18:44 +01:00
Christian Speckner 2d76b7fb98 Hook up audio. 2016-11-15 21:24:20 +01:00
Christian Speckner 6d76d65d82 Add wsync, vsync and vblank, fix bugs and connect the dots -> main loop + tv mode detection work. 2016-11-15 21:16:36 +01:00
Christian Speckner 70dc29f077 Port main loop. 2016-11-15 19:26:23 +01:00
Christian Speckner b6a2e266aa CS. 2016-11-13 22:56:58 +01:00
Christian Speckner ea6abb0fe6 Implement delay queue. 2016-11-13 22:56:02 +01:00
Christian Speckner b874269065 Replace executor class with a template --- we've got closures, after all :) 2016-11-13 00:10:40 +01:00
Christian Speckner 208f630a3c Implement delay queue (untested). 2016-11-08 23:54:22 +01:00
Christian Speckner a99a4e1efd Stub implementation of new core. 2016-11-08 01:26:57 +01:00
Christian Speckner ffccc351f6 Allow to switch between TIA implementations via command line / config. 2016-10-31 00:12:52 +01:00
Christian Speckner 2075ff082a Prepare build system for new core. 2016-10-30 21:00:08 +01:00
Christian Speckner c642de2671 Remove unnecessary dependencies on TIA, namespace default core, remove friends. 2016-10-30 20:29:41 +01:00
Christian Speckner 83417e976f Isolate TIA implementation in sub-module, remove all direct references in favor of AbstractTIA. 2016-10-30 00:31:55 +02:00
Christian Speckner 9a85bf5405 Fixes, refactor TIA to extend AbstractTIA . 2016-10-26 15:25:48 +02:00
Christian Speckner cdfac18f1c Fix build w/o debugger. 2016-10-26 14:59:52 +02:00
Christian Speckner 74a840f341 First stab at abstracting the TIA interface. 2016-10-11 00:23:40 +02:00
Christian Speckner 7d072fc874 Move TIA specific enums into separate header. 2016-10-11 00:23:09 +02:00
stephena 883971985e Removed some redundant includes in various Cart classes.
Introduced Cartridge::initializeRAM() method, to eliminate duplicate
blocks of code in every bankswitch scheme that uses extra RAM.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3316 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-08-24 23:57:07 +00:00
stephena 087d382280 Added 3E+ bankswitching scheme by Thomas Jentzsch.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3311 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-08-21 21:37:06 +00:00
stephena 1ecfee71e7 Reverted new TIA sound code until it is more mature. There are other
improvements in the pipeline waiting to be done, and are being delayed
by the sound stuff.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3310 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-08-18 18:44:57 +00:00
stephena 40cfd6a475 Cleaned up usage of 'using namespace ...'. I'm currently teaching that using
that approach is a bad idea (and using Stella as example code), so it doesn't
make sense to not do something as it's being taught; the correct way.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3308 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-05-24 16:55:45 +00:00
stephena 9d1c2085e6 Forgot to fix up TIA register writes in a few locations, so it was possible
that the register held values up to 255 (when it should only contain 0-159).
Thanks to Omegamatrix for the report and fix.

On another note, I hope to get back to Stella development soon; it's been a
rough time since the last release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3307 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-05-13 16:23:53 +00:00
stephena 81e9480100 OK, this is the first pass at adding the new TIA sound emulation
core to Stella, as outlined in a thread on AtariAge.  It's currently
not working 100% due to timing issues with the TIA class.

Expect breakage over the next few months, as this code and the TIA
code in general will be borked from time to time.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3306 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-04-03 17:15:19 +00:00
stephena 8dbd545433 After thinking about it a little, I wondered why we even need to wrap several
std:: functions into BSPF namespace at all.  So I removed them, and have the
calls map directly to the std:: versions.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3304 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-04-03 00:35:00 +00:00
stephena eb56efc3d5 Convert BSPF C-style macros to C++ namespace equivalent.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3302 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-04-02 23:47:46 +00:00
stephena f431e3e3a5 A few more constexpr additions, and removal of redundant comments.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3301 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-04-02 22:52:29 +00:00
stephena abf4a4a44c I was a little too eager with the 'constexpr'; it currently doesn't work on
enum types.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3300 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-04-02 21:27:10 +00:00
stephena dd96a80e7e Updated build requirement for Windows to Visual Studio 2015. This allowa to use 'constexpr', which this patch does for a few classes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3299 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-04-02 20:46:02 +00:00
stephena f3fce85633 Re-added CTY scheme to the list of selectable bankswitch schemes,
and fixed some minor warnings generated from GCC 6.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3294 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-03-05 18:35:25 +00:00
stephena dae8205029 Cleaned up a few more warnings.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3292 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-02-27 22:18:30 +00:00
stephena 983c6361f2 Updated thumbulator code from latest in repo.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3290 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-02-27 19:58:20 +00:00
stephena 24051e4ddf (Hopefully) fixed bug when entering/exiting the debugger, whereby the
"`" key (or equivalent) was being shown in the prompt widget.

Added method stubs for clipboard cut/copy/paste/select.  Actually
implementing them will come next.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3287 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-02-24 20:49:49 +00:00
stephena 1e56f18b7e Fixed annoying warning about left-shifting negative values.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3285 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-02-18 00:38:21 +00:00
stephena ee0369255a Added E.T. hack by 'recompile' to the ROM properties database.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3280 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-02-13 17:46:19 +00:00
stephena 7e1e3f0b31 Changed description of tv.jitter to not mention scanlines.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3277 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-02-12 14:28:30 +00:00
stephena 79cfdb294c TV jitter recovery time can now be set through a commandline argument
(tv.jitter_recovery).  Next, this will be added to the UI.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3276 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-02-12 14:23:40 +00:00
stephena a35c66e806 Fixed bug occurring when more than 2 controllers had the same name; information
was being saved about only two of them.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3273 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-02-06 21:06:23 +00:00
stephena 3b2f534bf7 Added 'jitter recovery' emulation from SpiceWare, in which large
scanline count differences can take multiple frames to recover.
Currently the code uses a hard-coded delay; next I'll make it a
variable, changable within the UI (and on the commandline).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3272 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-02-01 23:43:00 +00:00
stephena 65bb073968 Got rid of another d'tor. In this case, it was redundant anyway,
since when a vector is deleted it automatically calls clear on itself.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3271 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-31 03:57:08 +00:00
stephena 6dd12ef088 Got rid of nasty c-strings and with it the EventHandler d'tor.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3270 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-31 03:42:23 +00:00
stephena 0d4e8d60f0 Increased 'Medieval Mayhem' paddle range so that # of players can
actually be selected.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3269 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-30 01:59:40 +00:00
stephena 14471590cf 'Racer Prototype' F8 ROM from RomHunter v/11 has a bug, in that it
crashes if started in bank 1 (the default for Stella).  So we special-case
this ROM, and have it start in bank 0.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3268 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-30 00:57:04 +00:00
stephena bcda343aee And so it begins again ...
Updated properties database to RomHunter v11.  I would have done this in the
last release, but nobody told me that v11 had been released.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3267 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-29 19:36:12 +00:00
stephena 5cf32f4b95 Of course, there's a problem with perfectly valid C++ code in Visual Studio
at the last minute ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3264 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-25 21:16:04 +00:00
stephena 86c7b229f0 Final commit for 4.7 release, updating docs and some minor last-minute
code cleanup.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3263 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-25 20:49:21 +00:00
stephena 647aeb62b0 Fixed TIA score mode bug, as reported on AtariAge.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3261 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-25 17:28:49 +00:00
stephena 211454f699 Fixed minor warning detected in Visual Studio.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3260 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-24 22:09:35 +00:00
stephena 755611a5c1 In my quest to remove all d'tors, converted many more raw pointers to
unique_ptr.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3258 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-23 22:56:16 +00:00
stephena e1e071c875 Oops, forgot to remove some debugging info from CV+ scheme.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3255 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-23 18:17:23 +00:00
stephena ed766b5bb2 Cleanup some whitespace issues.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3254 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-23 18:16:09 +00:00
stephena 143b22baec Added 'CV+' bankswitching scheme.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3253 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-23 17:58:00 +00:00
stephena b7cb83bffa Updated ROM properties for paddle games to properly use the MouseAxis
property for range information.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3251 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-22 22:10:55 +00:00
stephena a85debea63 Fixed bug in ROM launcher; hasConsole() would be true even when the console
is closed (since it's not deleted until the next console is created).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3249 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-18 16:03:22 +00:00
stephena e0676f2432 The properties database is now smarter, and automatically discards entries
if they are already present in the built-in data.  This eliminates a 'bug'
where entries were being saved to the external properties file that were
also present in the app itself.  The app still worked, but it bloated the
external file for no reason.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3248 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-16 00:13:52 +00:00
stephena a0536fb450 First pass at allowing a max range for paddle emulation when using
the mouse or digital input.  This will fix those ROMs that don't
use much of the range on a real paddle, and as such have a huge
deadzone in emulation.

For now, only the Paddle class is modified.  Still TODO is add the
ability to change this from the UI (per-ROM, obviously).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3247 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-30 23:57:54 +00:00
stephena 5ec561a191 Fixed the last remaining C++11 "= default" for d'tors.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3244 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-30 19:07:11 +00:00
stephena 2aec7bc1b1 Converted classes in src/emucore to properly use C++11 '= default'
for destructors.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3240 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-29 21:28:10 +00:00
stephena 8f2d3a6cbb Updated copyright to 2016, even though it's a few days early.
To anyone reading this, Merry (belated) Christmas and Happy New Year!


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3239 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-29 19:22:46 +00:00
stephena fd8eb1aa1d Fixed more Coverity-reported errors. We're now down to a 0.02 defect
rate (0.5 or so is the average for a codebase of this size)!


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3237 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-10 16:34:24 +00:00
stephena 336536745f More Coverity fixes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3236 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-09 17:08:52 +00:00
stephena 8b7043d74a More bugfixes as indicated by Coverity.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3235 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-06 18:12:17 +00:00
stephena 9e23bc3580 Some bugs indicated by running Stella through Coverity. Note that many
of these aren't actually bugs per-se, but are to follow good programming
practices.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3234 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-05 01:30:17 +00:00
stephena 47911eff21 Some cleanup of redundant spacing. Now that I'm free for basically the next month,
I'll be starting work on Stella again.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3233 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-04 19:08:14 +00:00
stephena 3517259982 Fixed bug in reading paddle input from Stelladaptor; I was a little too
eager in code cleanup from 4.6.1.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3229 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-10-28 15:27:34 +00:00
stephena 23cfae3025 Fixed error in MDM scheme; an IF condition was always true.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3228 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-10-12 15:49:55 +00:00
stephena c4b94f008d Fixed MDM bankswitch bug; it was only looking for addresses below $C00,
and ignoring mirrored addresses.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3225 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-10-11 14:51:50 +00:00
stephena f5eca188ce And the process starts again.
Added shortcut key to toggle TV scanline jittering, and have it default
to off.  I'd really like to enable it again eventually, or perhaps use some
of the code in the case where scanline jumps are *really* large (since it
seems to emulate the output for every TV I've ever seen).

Bumped version #.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3221 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-09-29 21:14:12 +00:00
stephena ef5f1bad4d More clang warning cleanups.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3209 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-09-15 15:50:25 +00:00
stephena 75893a6a3e Fixed some more C 'old-style-cast' code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3208 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-09-15 12:39:07 +00:00
stephena ffc9ac65a7 A few more fixes wrt the recent pruning for Visual Studio.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3207 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-09-14 22:18:55 +00:00
stephena 2ccebc9720 Oops, a little too much pruning, detected by compiling in OSX.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3206 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-09-14 21:44:24 +00:00
stephena d83d91570e More clang warnings fixed; these apply mostly to 'old-style-C' casts.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3205 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-09-14 21:33:50 +00:00
stephena 687b638437 Second pass at cleaning up warnings generated by -Weverything in clang.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3204 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-09-14 18:14:00 +00:00
stephena f539cef173 I decided to turn on '-Weverything' compiler flag in Clang++ to
see what errors are present in the code.  This is the first pass
in cleaning up the errors it found.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3203 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-09-13 23:23:12 +00:00
stephena 92fcba53a5 Fixed a few code warnings in the new jitter code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3201 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-09-12 18:51:35 +00:00
stephena a331fb228b Added emulation for frame 'jitter' based on inconsistent scanline
counts.  Thanks to Spiceware for the idea and implementation.

Tweaked 'MDM' autodetection; the identifying string can be in
either bank 0 or bank 1 (or both).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3199 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-09-11 22:46:13 +00:00
stephena 74b2a209e2 Cleaned up some code in Thumb ARM emulator, and clearly marked compiler
warnings that should eventually be fixed.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3193 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-08-09 21:19:10 +00:00
stephena 38dce5194e Some minor improvements, self-documentation, etc.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3191 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-08-09 18:07:04 +00:00
stephena f1a10c3143 Eliminated superfluous drawTIA() method, made it inline.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3187 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-07-13 17:33:38 +00:00
stephena e456406b69 Fixed OSX snapshot bug; the TIA image wasn't being completely drawn before
taking a snapshot.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3186 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-07-13 14:46:52 +00:00
stephena 05623c52eb Remove several BSPF defines that are obsolete.
Changed valid() method Serializer to an explicit bool() operator,
to function similar to C++ streams.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3185 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-07-11 22:03:12 +00:00
stephena 4792b534d5 Fairly large commit, but basically it is only enabling the 'override'
C++11 keyword.  This makes developing/maintaining class hierarchies
more manageable.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3182 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-07-10 18:59:03 +00:00
stephena 74cf5e6f5f Changed 'Swap' to 'Toggle' in the names of the Event class for toggling
certain other events.  A small change to be sure, but the name more
appropriately describes what the event does.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3181 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-06-29 11:41:22 +00:00
stephena 7350e8f6c1 Added mappable events for toggling TV color type and left/right A/B difficulty.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3180 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-06-28 22:32:36 +00:00
stephena 26e9f15b86 Changed 'hidecursor' to 'cursor', and allowed it to set cursor visibility
for UI and emulation modes separately.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3179 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-06-28 18:16:33 +00:00
stephena 8dbd5d7f48 Converted more new/delete pairs to unique_ptr. This actually made me notice
a memory leak where the Console was never being deleted.

For FSNode read, change 'uInt8[]' arrays to BytePtr, which is an alias to
a unique_ptr array.  Again, this enables automatic deletion when the object
goes out of scope.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3173 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-06-14 20:02:32 +00:00
stephena c7ef1607be Some code cleanups.
Added updated C++14 make_unique templates, which now allow to also
use unique_ptr for arrays.

Updated SoundSDL class to use unique_ptr, eliminating another new/delete
pair.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3171 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-06-13 23:58:37 +00:00
stephena c5819cae46 In my never-ending attempt to eliminate pointers whereever possible,
change all throws of 'const char*' to runtime_error.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3168 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-06-12 20:44:09 +00:00
stephena 99f88719e5 C++ streams can now use a 'string' filename; it no longer has to be 'const char*'.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3167 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-06-12 17:37:58 +00:00
stephena a8a30a1746 Cleaned up I/O in a few places, using C++ streams where appropriate.
For those reading these logs, I hope to get back to Stella development soon.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3166 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-06-11 00:26:13 +00:00
stephena e9e3670134 Fixed shadowing of local variables.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3165 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-04-28 20:18:44 +00:00
stephena e7fb7318fb Bumped version #.
Introduce namespace to class MD5, so the method call is now MD5::hash()
instead of simply MD5().

Added C++11 '= delete' constructors to most classes, to more clearly
indicate the intent of the class.  Note that this isn't absolutely
necessary, but is considered good form.  I will be teaching a C++ class
over the summer using Stella for examples, so it makes sense to follow
the standard and the textbook recommendations :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3164 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-04-26 19:02:42 +00:00
stephena 5c23739f00 Snapshots now work in PAUSE mode.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3150 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-03-15 21:53:28 +00:00
stephena 6d8b115b34 Removed concept of single vs. double buffering, and simply update the frame
on every call to FrameBuffer::update().  This will the same CPU usage for TIA mode,
and a slight increase CPU usage for launcher and debugger modes.  The code to do
this was just too fragile, and not worth the extra effort.

This fixes several rendering issues, such as garbage in fullscreen mode in Linux
when using Intel GPU, triple-buffering issues in Windows, etc.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3148 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-03-15 17:36:46 +00:00
stephena 2549e4f4c1 Fixed error messages in state loading, and reverted some C++11 features
so that Stella is supported in GCC 4.8.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3144 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-02-06 16:34:01 +00:00
stephena ebfc207d3e Fixed bug in closing SerialPort explicitly; it takes care of closing itself.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3142 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-01-24 16:28:06 +00:00
stephena e1dae564e2 Forgot another ROM from RomHunter v10.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3141 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-01-01 22:32:00 +00:00
stephena b52c866a64 And so it begins again; bumped version #.
Added 'Reindeer Rescue' 2005 Holiday cart to properties database.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3140 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-01-01 21:43:37 +00:00
stephena c03bb5dc6b Added patch support to 'WD' scheme.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3136 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-01-01 16:50:18 +00:00
stephena df5f3c1c5a Updated ROM properties database to RomHunter v/10.
Added a specific closeConsole method, since the test for hasConsole was returning
true in cases where it shouldn't have.

Fixed PERL PropSet saving so that properties are always saved in sorted order
(by MD5).  This isn't technically necessary, but it will eliminate huge changelogs
when only a small part of the file has changed.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3134 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-01-01 16:21:30 +00:00
stephena 0afb189322 Updated copyright to 2015. Happy New Year to anyone reading these logs :)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3131 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-01-01 03:49:32 +00:00
stephena 0afe070d9c Fixed crash on loading state files; try/catch was missing for the first
bit of data loaded from the file.

Changed Serializer class to unique_ptr, eliminating d'tor.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3130 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-01-01 03:23:06 +00:00
stephena b729a8013f Updated ROM database yet again for WD ROM.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3128 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-01-01 02:00:08 +00:00
stephena 14f2779763 Updated ROM properties for PP ROM.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3127 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-12-30 15:36:52 +00:00
stephena 22abe68097 Updated ROM database, fixing ROM info from the last commit.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3126 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-12-29 22:36:54 +00:00
stephena d7c7be76d9 Finalized 'WD' scheme, and added ROM properties entry for associated ROM.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3125 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-12-29 22:26:20 +00:00
stephena 3da47efe59 Fixed bug in 'WD' scheme; bankswitching is only supposed to trigger on
reads from $30 - $3F, whereas it was triggering on *all* TIA reads.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3124 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-12-29 20:17:35 +00:00
stephena 1460947005 Move ZipHandler from OSystem directly into FSNodeZip class, since it's the
only class that uses it.  This is in preparation for improvements to ZIP
file handling.

Use emplace_back instead of push_back in several places, as it's faster.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3121 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-12-26 17:19:36 +00:00
stephena 233fd75522 Added dialog showing internal joystick database, with ability to
completely remove (currently unplugged) sticks from it.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3115 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-12-23 00:44:09 +00:00
stephena 3b02c309c1 Fixed bug in adding multiple joysticks with the same name, and
bumped version # for next beta test.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3114 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-12-21 16:47:50 +00:00
stephena 7fee57808c Dynamic joystick add/remove/mapping is now working again. Or at least
it is on all my test systems with 4 different controllers.  We still
need bugtesters for this ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3112 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-12-21 00:42:52 +00:00
stephena 04b99e3503 Fixed some shadowed variable warnings detected by Xcode.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3111 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-12-20 22:59:43 +00:00
stephena f5ceb39149 Cleaned up the various methods for setting default mappings for the keyboard
and joysticks.  It's now easier to read/follow, and has less code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3110 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-12-19 21:32:19 +00:00
stephena b0e27be2e3 Replaced a few macros with lambdas.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3109 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-12-13 23:00:50 +00:00
stephena 6c900cdec5 Some minor code cleanups, and converting 0 to nullptr.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3106 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-12-13 21:00:33 +00:00
stephena 31ca88d283 Changed CartWD hotspots from $30 - $3F of the cart RAM area to the TIA area (I really need
to learn to read the specs more closely).  Changed hotspot change to trigger 3 cycles after
initiated instead of 3 address changes.

Added CartWDWidget debugger class, to view/change cart-specific functionality from within
the debugger.

Still TODO is CartWD patching.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3105 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-12-13 19:45:18 +00:00
stephena 068f07d919 A few optimizations, and removal of some dead code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3101 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-23 18:53:11 +00:00
stephena 763143544b Updated Visual Studio project for new 'WD' scheme.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3099 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-21 23:54:41 +00:00
stephena b1609e05eb We can't have simply 'Experimental' in the cart list; there needs to be
something else to differentiate them.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3098 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-21 23:41:21 +00:00
stephena 2f82e32fe5 Renamed experimental bankswitch scheme to WD.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3097 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-21 23:37:21 +00:00
stephena fdc54072f4 Second pass at the new experimental scheme; it's a little closer now.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3096 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-21 23:01:06 +00:00
stephena 10fbcdc00c First pass at implementing a new experimental scheme for a previously unreleased ROM.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3095 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-21 15:53:51 +00:00
stephena fb4332a0c7 Catch very early fatal warning from SDL when it can't even initialize itself.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3094 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-20 14:20:03 +00:00
stephena c8400dcfe6 Fixed debugger 'reset' command help documentation.
Renamed 'Vlist' to 'VarList', since it's more descriptive.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3092 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-19 22:29:33 +00:00
stephena 37d9c6c99f Converted from C-style 'typedef' to C++ 'using' where appropriate.
I find the newer syntax more readable, since it acts exactly like
an assignment statement.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3088 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-19 12:10:45 +00:00
stephena 0d5ae3acf5 Added ability to save continuous snapshots per frame to Shift-Alt-s.
Eventually this may lead to proper movie output.  Thanks to SvOlli
for the code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3087 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-19 00:03:11 +00:00
stephena cf10f4c24f Now that we're using C++11 and cstdint is standard, we no longer need to
worry about inttypes.h and associated defines.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3085 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-17 20:57:15 +00:00
stephena 3a04afcf96 Use BSPF-defined datatypes where appropriate.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3083 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-17 14:17:19 +00:00
stephena f12732042a Updated Visual Studio for recent class removal.
Removed constexpr, since VC++ 2013 doesn't support it yet.

git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3076 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-16 16:50:46 +00:00
stephena 29fe39dd99 Made M6502 own all breakpoint/trap info instead of sharing pointers to
it with the debugger (this eliminates more new's and empties another d'tor.

Re-wrote PackedBitArray to use a bitset instead of home-made code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3075 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-16 16:13:58 +00:00
stephena c997fc3001 Converted M6502 class to use unique_ptr Expressions, and removed some dead code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3074 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-16 00:28:39 +00:00
stephena 690b681fe7 Convert FrameBuffer/FBSurface to use shared_ptr instead of raw pointers.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3072 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-15 18:29:13 +00:00
stephena 4544f59b53 Replaced #define'd macros with lambdas where possible. Did I mention
I also love lambdas?

Minor cleanups to other parts of the code (missing virtual, cleanup
d'tors, move methods from public to private, etc).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3071 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-10 23:35:24 +00:00
stephena 49eadb7463 More conversions from normal for to range-based for. Yes, I really love
range-based for that much.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3070 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-10 21:59:56 +00:00
stephena b863b55594 Some more optimizations and small code cleanups.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3066 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-10 16:13:28 +00:00
stephena 4c9e139fcc Cleaned up the OSystem code for managing Console and Debugger, removing
stuff from destructors and using unique_ptr.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3063 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-09 22:03:50 +00:00
stephena db139bef1a Converted FrameBuffer surface storage to unique_ptr. In the process,
I realized that they didn't need to be stored in a map, since the integer
ID was never actually being used.  This must have been part of a proposed
API that I've since deleted??


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3062 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-09 15:10:47 +00:00
stephena 92aa5c2e36 Just when I thought there were no more cleanups to do ...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3059 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-09 03:05:19 +00:00
stephena 4f91fd96ed A few more optimizations. It looks to be close to the end of the conversion.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3058 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-08 23:50:23 +00:00
stephena b89dfa7436 Updated OSX project file, fixed some minor compile warnings,
and bumped version # to 4.5 for the next release (whenever it
may happen).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3057 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-08 22:40:50 +00:00
stephena 7b9169c18d Convert all arrays in the codebase to vectors, so that we get all
the advantages of C++11 (move semantics, list initialization, etc).
I'd hoped to somehow wrap a vector behind Common::Array and not have
to change the codebase to this extent, but it didn't work out.  And
I've since read that it's bad form to extend from std::vector anyway.
This is *THE LAST* bit of work I'm doing with arrays; everything is
now a proper vector.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3055 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-08 21:27:36 +00:00
stephena 740eeed579 You know what's better than adding move semantics and initializer
lists to the Array class?  Completely deleting all that code and
using a std::vector directly :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3054 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-07 23:28:40 +00:00
stephena affd95d94e Removed home-grown sharedptr class for the real thing.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3044 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-05 15:56:27 +00:00
stephena 73badae2d0 OK, this is the last commit about pointers for the CompuMate stuff.
Again, still learning the best way to use C++11 here.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3042 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-04 23:26:23 +00:00
stephena 51737b9720 Still learning the difference between shared and unique pointers.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3041 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-04 22:03:40 +00:00
stephena 7e25d13b13 OK, this is the last pointer change for Console; the d'tor is now empty.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3039 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-04 00:52:00 +00:00
stephena a48c4fc6a8 A slight restructuring of the Controller classes, to fix CompuMate
support broken in rev 3034.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3038 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-04 00:34:56 +00:00
stephena 03f760cceb A few more nullptr and unique_ptr fixes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3037 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-03 17:36:28 +00:00
stephena 3949101fb7 Some 'nullptr' updates to Cart classes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3036 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-03 17:16:43 +00:00
stephena 6f5c5b2df5 Integrated NullDevice into one header file.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3035 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-03 16:39:26 +00:00
stephena 5dbb2e4261 More pointer rearrangment for Console class.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3034 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-03 16:24:05 +00:00
stephena a21f3be6e4 Turned variable into static constant in M6502, since it has never changed
since Stella was created.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3033 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-03 13:22:57 +00:00
stephena 79ada8685c The long march to converting Stella to C++11 has finally started. Already,
I've found and fixed a few memory leaks.  You will need an up-to-date compiler.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3031 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-02 23:40:20 +00:00
stephena bd1a391eb3 Fix warning in VC++.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3030 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-02 23:02:02 +00:00
stephena 27e005d7a5 Final batch of fixes from cppcheck.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3024 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-27 14:41:46 +00:00
stephena d891357cad More cleanups from cppcheck.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3021 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-26 19:51:02 +00:00
stephena 958d8940fc Pass OSystem and DialogContainer as reference instead of pointer in
all GUI classes.  This makes sense, since the underlying classes
were returning them as references anyway.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3019 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-26 17:45:42 +00:00
stephena 09912c689b A few more pointer to reference conversions.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3018 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-26 16:19:58 +00:00
stephena af33538d5a Some cleanup of the Random class, and converting several classes
in emucore to use references instead of pointers.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3017 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-26 15:54:02 +00:00
stephena 1a09d37d1b Speed up accesses to System by using constants. It's fine to make
a class more generic, but when it's never used, all it does it slow
things down.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3016 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-26 00:40:27 +00:00
stephena 6d753fd335 CPU registers can be selectively randomized with cpurandom option.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3014 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-23 15:52:39 +00:00
stephena 920dcdb8a5 More const cleanups.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3011 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-21 23:02:20 +00:00
stephena f8be548312 Fixed bug in initial size for the debugger; it would sometimes try to use a size larger
than the desktop.

Some code cleanups; add const and optimize some methods.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3010 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-21 22:12:50 +00:00
stephena fe1713ee87 Fixed some warning that showed up in gcc but not clang++, and vice
versa (I guess it's useful to test under multiple compilers).

Bumped version # for next test release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3008 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-18 15:57:03 +00:00
stephena 537eef7384 'cpurandom' includes the SP register, and is now turned off by default.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3005 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-13 23:59:49 +00:00
stephena c21220ce2c Joysticks are now detected dynamically, meaning that they can be added/removed
while the emulator is running.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3002 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-13 22:37:15 +00:00
stephena 5959f69405 MDM scheme now uses hotspots from $800-$BFF instead of $800-$FFF.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3001 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-01 22:36:15 +00:00
stephena ab2e086fe0 Minor cleanup of d'tor in various classes, removing d'tors with no
implementation, and using virtual d'tor only when absolutely necessary.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3000 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-09-29 20:39:28 +00:00
stephena 33047a286b MDM now triggers a bankswitch on hotspot writes, which was
actually in the original spec.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2999 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-09-29 19:34:24 +00:00
stephena 56d84a3c04 Fixed some dead code warnings generated by llvm scan-build.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2992 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-09-06 00:33:17 +00:00
stephena 4b6f589a4e Re-added 'uipalette' option.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2989 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-09-03 13:27:33 +00:00
stephena 8c3c668276 Applied multi-monitor fix from Magnus Lind.
Bumped version # for 4.1 release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2987 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-09-01 21:17:33 +00:00
stephena adce15f86e MDM carts were only working with 16 banks, due to overflow in a 16-bit int.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2985 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-09-01 14:56:06 +00:00
stephena ddafc3a650 Added cart debugger tab for 'MDM'.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2981 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-08-29 15:33:04 +00:00
stephena f6dd1ba27b The ROM launcher now uses a separate FBSurface for snapshots, so that
any-sized PNG can be loaded and then scaled to the available space.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2979 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-08-28 14:21:44 +00:00
stephena 8da55d8eac Added infrastructure to attach a surface to a dialog, so that it can be rendered
on top of the dialog surface.  This is useful when the surfaces are using
different resolutions, and we don't want to draw the exact overlaying surface
pixels directly into the the dialog surface.

For now, this is most useful for rendering snapshots in the ROM launcher, and 
eventually it will allow arbitrarily-sized images to be scaled (in hardware)
to the picture area of the launcher.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2978 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-08-24 21:47:51 +00:00
stephena 5a89990cc1 Add some extra logging to SDL Init and joystick handling, in an attempt
to debug joystick issues that some users are having.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2977 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-08-15 15:13:00 +00:00
stephena fa6127d53a Added 'MDM' bankswitch scheme from Edwin Blink, as documented in the AtariAge thread:
http://atariage.com/forums/topic/56073-cheap-2k4k-x-in-1-menu-driven-multicart-for-atari-2600

Fixed declaration of bankswitch type so it isn't in two places, which necessitated
modiying two files and keeping them in sync.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2974 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-08-14 00:03:56 +00:00
stephena 05f455789e Changing banks in the DASH debugger tab is now working.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2968 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-07-31 17:05:21 +00:00
stephena af254b3d85 Fixed DASH bug when changing banks; the debugger didn't recognize the change,
and hence didn't re-disassemble.

Fixed long-standing bug in the debugger disassembly; addresses marked as $F000
(or equivalent) were never being highlighted in the disassembly view.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2967 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-07-31 15:54:14 +00:00
stephena cced0aef33 The DASH debugger tab now correctly shows the state of all banks/segments
currently in use.  Still TODO is activate the 'Commit' buttons, so that
the banks can be changed from the UI.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2966 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-07-29 22:37:17 +00:00
adavie 301926ebfc Implemented autodetect for DASH scheme.
Requires 'TJAD' to be present in ROM.

git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2965 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-07-29 13:25:23 +00:00
stephena 21eff3b800 First version of DASH debugger tabs. The bankswitching tab is still a WIP.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2964 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-07-29 00:29:02 +00:00
stephena 9f172cbb42 Fixed potential bug in Cartridge API; renamed bank() to getBank(),
since there are issues with mixing overloading and virtual functions.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2963 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-07-28 13:40:37 +00:00
stephena 82ef198585 Fixed DASH scheme to work according to spec; it now works with the
test ROM from Thomas.  Still TODO is work on patch support, and add
debugger tabs for bankswitching and extra RAM.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2962 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-07-26 20:32:33 +00:00
adavie 756a55fd82 Updated the comment/explanation of the bankswitch scheme so that it reflects our current thinking on how the scheme should work.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2961 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-07-25 11:03:27 +00:00
stephena 2f4a3e7966 Cleaned up the Cartridge::bankXXX API. Carts which are non-bankswitched
or those which implement their own unique scheme no longer have to
implement bank and bankCount; this base class versions will be used
instead.

Removed the debugger 'bank' command, since it didn't work for all cart
types, and is obsolete now that the UI allows to change banks for
all cart types.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2960 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-07-24 17:15:28 +00:00
stephena ef183beab7 Slight cleanup of the System::PageAccess API. Since all c'tor calls will
*always* pass in 0,0,0 for the various bases, it is redundant to pass that
data in on each invocation.  So now the c'tor does it automatically.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2959 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-07-24 16:24:27 +00:00
adavie c83b8f7d7e Fixed RAM crash. I had neglected to allocate RAM after 'myImage' ROM section. Whoops. Now passes my very simple write stuff to a few locations, and read back.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2956 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-07-24 11:41:19 +00:00
stephena 06e99c8719 For now, disable entering menu mode on window minimize, since it
may be causing problems.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2952 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-07-02 11:57:27 +00:00
stephena c8eed372db Updated Windows code to specifically load an icon, otherwise the default window title icon is used.
For the Windows release packages, the VS 2013 runtime libraries are now installed with Stella, so the user doesn't need to manually install vcredist.

git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2944 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-30 22:46:33 +00:00
stephena 534f7680e6 Updated changelog and some dates.
Updated to latest PNG code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2942 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-30 14:38:18 +00:00
stephena e3cc672368 Added an oft-requested debugger feature: add buttons to the AtariVox/SaveKey
controller area to reset the EEPROM to default values.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2937 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-29 23:25:53 +00:00
stephena 2dccc2df15 Partially reverted FrameBuffer changes, since it *still* didn't fully
fix issues in Ubuntu Unity, and caused CPU usage to spike to 100% in
all other tested platforms.  So for now, I'm putting it back to low
CPU usage for all other platforms (Linux w/o Unity, OSX, Windows, etc),
and treating this as a Unity bug (which isn't unheard of).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2935 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-23 15:34:25 +00:00
stephena da86a3b175 Removed the last remains of dirty-rect updating from the FrameBuffer.
This code was originally there for software mode, where it was very
expensive to update pixels, so it was done as little as possible.
However, it was also a bit of a hack, and sometimes interfered with
double-buffered hardware rendering.  So now showing the various UI's
will burn slightly more CPU, but will be guaranteed to work under
all conditions.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2934 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-21 20:51:08 +00:00
stephena 78f5a2acef Reworked the PNG save code a little, making it more abstract and not
having to know about TIA, Properties, etc.  Basically, it now saves
a snapshot of either the FrameBuffer or an FBSurface, and adds 
text comments passed into it.  The contents of the surface and comments
are no longer calculated (or known) by the PNG code.

This is in preparation for saving FBSurface from anywhere, which will
help in the debugger for taking snapshots.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2928 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-19 16:45:07 +00:00
stephena 2d32f3d39a Fixed rendering issues in OSX, by never destroying and re-creating the window.
This sometimes results in a window resize being visible, but better that than
an outright crash.  This issue has been reported to the SDL mailing list,
so this fix may be backed out in the future.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2927 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-17 11:49:38 +00:00
stephena 61972b350a Finally some love for the OSX port. The Xcode project now compiles and runs,
and contains only one Objective-C warning (more research required).  There
are also some fixes for minor warnings.

There are still some issues, though.  First, SDL2.0.3 has to compiled
manually, as the public binaries don't work (this is documented and
a bug reported on the SDL mailing list).  Second, fullscreen->window
transition is causing a crash, which I still need to track down.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2926 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-16 16:34:48 +00:00
stephena 05c007cbae Made StellaMod an actual enum, rather than simply typedef'ing
to SDL mod.

Added a hack/fix for Alt-key combos being printed in the debugger
prompt (ie, when stepping though a frame with Alt-f, the 'f' character
was shown in the prompt).  This will be fixed when PromptWidget
becomes an EditableWidget (not for the 4.0 release).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2922 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-13 19:34:35 +00:00
stephena 5c75ff1c15 Finally added a large patch from SpiceWare which adds an extended
cart RAM tab to the debugger.  This is tailored to each respective
cart bankswitch type, allowing much more information to be shown than
you'd see in the normal RAM area.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2921 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-13 16:28:28 +00:00
stephena d275773413 OK, I originally intended to fix FrameBuffer::scanline for SDL2,
which I though a just a one or two-liner equivalent to glReadPixels.
Turns out that SDL2 doesn't return 24-bit RGB data (only 16 or 32-bit),
so the PNGLibrary had to massage the data.  In the process, converted
the PNG saving functions to actually use PNG library functions, which
greatly simplified converting packing from 32 -> 24-bit.  Historically,
the PNG save functions were written before libpng was a requirement,
so they were hand-rolled.  Once libpng was integrated into the codebase,
it didn't make much sense to not use it anymore.

So an expected two-line code fix became this commit ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2919 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-13 13:35:41 +00:00
stephena 6cb3b5c58a Fixed typo in default assignment of key mapping for keypad 0.
It looks like this bug has been present for a long time.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2917 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-11 16:11:10 +00:00
stephena 0b74f63a44 Some more removal of SDL-specific code from the emulation core.
The EventHandler now queries EventHandlerSDL2 for names of keys
instead of keeping a list itself.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2916 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-11 16:06:17 +00:00
stephena 90248b2701 First pass at converting text input to the new SDL2 scheme. Basically,
the old way mixed both single-key events and Unicode input into one
method, and the new way separates them (using a new handleText method).

Currently it seems to be working fine in the ROM launcher (yay!, I
can now quickly jump to ROMs by name again).  There are still some
issues in the debugger, which I'll work on next.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2913 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-10 16:43:35 +00:00