Commit Graph

3543 Commits

Author SHA1 Message Date
Stephen Anthony 970804b9f3 Optimization: modify RGB pixel data locally instead of calling functions.
This is allowed, since after analyzing the code, we see the pixel format
will always be ARGB8888 mode, so we can hard-code the logic to do the
conversion.

This leads to a measurable performance improvement, since we eliminate
3 function calls per RGB colour lookup.  And the calls themselves involved
IF statements and various other shifts that weren't needed.  Assuming
normal phosphor mode with 160x210 pixels, this saves 100,800 function calls
per frame!
2017-07-05 14:48:43 -02:30
Stephen Anthony ea59fdd3f2 Code cleanups, commenting fixes, etc for Blargg-related code. 2017-07-05 14:11:41 -02:30
Stephen Anthony 6da07d8dc7 Optimization: eliminate redundant access through a struct. 2017-07-05 13:06:44 -02:30
Stephen Anthony 09af9d09a5 Finally fixed issue #75 (phosphor mode now works with Blargg). 2017-07-05 12:48:39 -02:30
Stephen Anthony 1d293df782 Updated changes for system label lower vs. upper case. 2017-07-04 20:24:19 -02:30
Stephen Anthony d88969adcb Store and lookup system labels (aka, equates) in case-insensitive manner.
This fixes a bug in the debugger parser, where typing (for example)
'trap swchb' doesn't work but 'trap SWCHB' does.
2017-07-04 19:50:32 -02:30
Stephen Anthony 087fccd29f Updated OSX project file for recent class additions.
Eliminated some dead code.
2017-07-03 19:16:14 -02:30
Stephen Anthony 588cd82be9 Updated Visual Studio project file for recent class additions. 2017-07-02 21:08:12 -02:30
Stephen Anthony 7b57d52260 My neverending quest to protect against raw pointers.
Changed many 'const char* ...' to 'const char* const ...'.
2017-07-02 20:46:27 -02:30
Stephen Anthony 9972af022a Fairly huge refactoring of the cart autodetection code.
This has been in patch form for about a year, and I'm finally
getting around to applying it.  Basically, we separate the Cart
class into 3 classes:
  - Cart: stuff specific to cartridge emulation
  - BSTypes: various bankswitch types, both as enum and strings
  - CartDetector: actual bankswitch auto-detection code

Also made more use of smart pointers, and added const in a few
more places.

I promise to get back to the phosphor stuff soon.  This is just
to clear my head a little.
2017-07-02 19:27:27 -02:30
Stephen Anthony 2e776b05b8 Introduced 'tia.dbgcolors' commandline argument, which allows to set
the fixed debug colors to user-defined preferences.  Note that there
are 6 registers (P0,M0,P1,M1,PF,BL), and the option takes a string
of 6 characters, where each represents a colour for the respective
positional register (ROYGBP are the choices).

I may add a UI item for this, but this is as far as I will go with
allowing user editing.
2017-07-01 19:54:02 -02:30
Stephen Anthony bd78683274 Rearranged some Blargg code, added comments, general cleanups.
For now, Blargg phosphor mode simply shows the same image as without phosphor.
This is a WIP, and if we can't get it finished for 5.0, it will be released as-is.

Phosphor blend now defaults to 0 in the base properties, and is converted to
50 before being passed to higher levels.  This needs to change when we
get to issue #144.
2017-06-30 14:10:14 -02:30
Christian Speckner fa76042790 Make sure that pending RDY is handled after stepping the CPU. Closes #155. 2017-06-24 00:35:17 +02:00
Christian Speckner 4515e79b4e Jitter only of frame height has changed for three or more consecutive frames. 2017-06-24 00:09:34 +02:00
Christian Speckner 628133d2dd Don't jitter if frame height differes by less than 3 lines. 2017-06-23 01:01:36 +02:00
Christian Speckner b30ca12731 Fix TIA info in debugger after RSYNC. 2017-06-22 01:08:22 +02:00
Christian Speckner ccafbf2bbd Tie state transitions directly to hctr in order to avoid edge cases during RSYNC. 2017-06-22 01:08:22 +02:00
Stephen Anthony 881dc86ab7 Oops, we need to handle the case where the controller is undefined. 2017-06-18 21:59:04 -02:30
Stephen Anthony 0bc8a928f0 Minor optimization in creating controller device in Console. 2017-06-18 21:52:59 -02:30
Stephen Anthony 21195c20cb Updated OSX project file for recent Blargg changes. 2017-06-17 20:51:32 -02:30
Stephen Anthony 705d42edd8 Updated Visual Studio project file for Blargg code changes. 2017-06-17 20:40:11 -02:30
Stephen Anthony 0f2df7e87b Fairly large reorganization of the Blargg NTSC TV effects code:
- converted many pointers to references
  - merged code from several files into one class
  - broke up some methods into more managable chunks

This will allow it to be easy to add the phosphor code during
NTSC TV emulation.
2017-06-17 20:08:36 -02:30
Christian Speckner 5da20a3a7a Savestate handling. 2017-06-15 17:16:06 +02:00
Christian Speckner bdded5e600 Wait for frame handling to stabilize before drawing. 2017-06-15 17:12:39 +02:00
Christian Speckner c2ce1943ca Fix loading and saving TIA state. 2017-06-15 16:13:07 +02:00
Christian Speckner cf55f5d413 Fix buggy blanking of line 0. 2017-06-14 12:37:57 +02:00
Stephen Anthony 861778f627 Fixed minor datatype difference in Blargg filtering. 2017-06-11 18:48:15 -02:30
Stephen Anthony 4a2e4b666c Started cleaning up Blargg code:
- Converted some stuff to C++
  - PAL colour-loss now works with Blargg enabled, but not yet for phosphor mode
2017-06-11 17:01:40 -02:30
Stephen Anthony a7b3ee4448 Debugger lst and sym files now follow ROM filename, not properties filename. 2017-06-11 13:02:47 -02:30
Stephen Anthony 44ead7b926 Updated std::map to use emplace instead of insert (optimization). 2017-06-09 14:50:11 -02:30
Stephen Anthony 3355183d03 Updated OSX build script for change from Deployment to Release. 2017-06-04 18:21:43 -02:30
C.W. Betts c9a3097946 Add some retina formats to Stella.icns. 2017-06-04 17:44:17 -02:30
C.W. Betts 04ad81ce67 Use more modern names for the build configurations: Debug and Release, and delete Default. 2017-06-04 17:34:21 -02:30
C.W. Betts 15a7d1e520 Add the Atari cartridge file type to the InfoPlist.strings file.
It is localizable.

Update the version number in InfoPlist.Strings.
2017-06-04 17:34:21 -02:30
C.W. Betts 649c054d54 Add src/macosx/M6502.ins to the git ignore file. 2017-06-04 17:34:21 -02:30
C.W. Betts fbf642a130 Xcode project maintenance:
Fix the docs name.
Bring back InfoPlist.strings.
Have the Xcode groups point to the project's directory structure.
2017-06-04 17:34:21 -02:30
C.W. Betts 6c5ce1081a More Mac improvements:
Use UTF-8 for saving/getting preferences: It's more reliable.
Retain defaults in the Preferences Objective-C class.
Fill out the types for the IBOutlet
2017-06-04 17:11:38 -02:30
C.W. Betts 9dce4c9db1 Fix possible issue resulting from being launched from Finder in 10.9 and later OSes.
Taken from SDL 1.2.
2017-06-04 13:33:52 -02:30
C.W. Betts c3397d271d Add Xcode files to ignore .gitignore. 2017-06-04 13:27:30 -02:30
C.W. Betts b489a61e03 Fix over-release.
Add autorelease around the Preferences methods.
2017-06-04 13:27:30 -02:30
Christian Speckner 1ecb8852de Use console timing instead of frame layout in order to determine clock in paddle reader. 2017-05-31 00:01:11 +02:00
Stephen Anthony 6f16ee9c0b Bumped version # for another pre-release. 2017-05-29 16:30:42 -02:30
Stephen Anthony bc1fc44f75 Make Video dialog defaults match those in Settings class. 2017-05-29 11:17:23 -02:30
Stephen Anthony 5dbd9fee51 Some changes to phosphor blending:
- Updated default phosphor blend to '30'.
 - Added shortcut keys Alt-i and Alt-o to decrease/increase phosphor
blend mode dynamically, while a ROM is running.
 - Made range of blending 0 - 100.
2017-05-29 10:49:50 -02:30
Stephen Anthony 47aa5d4e5f Bumped version # for another pre-release. 2017-05-28 19:56:48 -02:30
Stephen Anthony ef9816014d Set default phosphor blend to 60; looks the most realistic on my test systems. 2017-05-28 19:53:48 -02:30
Stephen Anthony c8abbf50fb Fixed minor compile warnings in Visual Studio. 2017-05-28 18:51:46 -02:30
Stephen Anthony f8ea61875c Implemented new phosphor mode by Thomas Jentzsch.
- Phosphor mode with Blargg effects is currently broken.
2017-05-28 16:15:39 -02:30
Stephen Anthony e419bbbcab Sample playback update for BUS & CDF. 2017-05-28 14:40:51 -02:30
Stephen Anthony 79d8ed0010 Fixed TIA image in debugger being two frames behind. 2017-05-28 13:55:23 -02:30