Commit Graph

2605 Commits

Author SHA1 Message Date
stephena 4750c64a17 Phosphor mode now works with Blargg TV effects! It takes an extra 2-3 MB
RAM to do so, which I agonized over for about a week, but I feel it's
a fairly good tradeoff for the features we get.  Eventually, I may come
up with a more accurate phosphor mode which eliminates this approach
entirely.

Reverted OpenGL framebuffer to 32-bit colour mode.  We're using Blargg
effects, so we may as well get the full fidelity out of it.  Besides,
testing has shown that there's not much speed difference between 16
and 32 bit modes, making me think that 16-bit is probably be swizzled
to 32-bit anyway.

Bumped release date to June 1, version to rc1.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2501 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-26 22:18:13 +00:00
stephena feac57253e Now that the Serializer class throws exceptions differently,
we need to modify what is caught.  Ironically enough, this fixes
a bug whereby when certain errors occur, the recovery system
itself would crash, not the issue that actually caused the bug!


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2499 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-25 12:41:19 +00:00
stephena 3375cb9f98 Fix crash in CTY scheme when accessing a zero-byte/non-existent
flash file.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2498 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-25 11:11:01 +00:00
stephena 93deeecadf More work on Chetiry bankswitch scheme. I may not get it finished
before the release tomorrow (since I'm not entirely sure how it
works), but I'm going to give it the old college try.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2497 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-24 21:41:54 +00:00
stephena 3a2865981a Reverted OpenGL framebuffer code to 16-bit colour, and removed blending
for phosphor effects.  It's just not ready to go yet, more research is
needed, and I just don't have the time to fix it.  Besides, it's been
two months since the last release, and I need a vacation.

Because of this, the release date is changed to May 25.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2494 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-24 16:26:33 +00:00
stephena b200260d85 Huge speedup in OpenGL rendering, by only updating part of the texture
instead of the entire area.  This fixes the speed regression from 3.6,
since the main TIA texture is now larger than before.  Previously it
was 160 pixels wide out of 256 total (rounded to power of two), now
it's 560 wide out of 1024 total.  In 3.6 it was updating a buffer 256
pixels wide, in the latest beta releases it was sending 4 times as
much data (256 -> 1024).  Now it sends only 160/560.  Similar
improvements happened with the height as well (210 lines vs 256).
On my test systems at least, this is an extremely large win,
resulting in similar speeds as 3.6 even though we've moved to a 32-bit
framebuffer.

Bumped version # for next beta release.

Pushed release date to June 1, to make absolutely sure I have
everything fixed and ready to go.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2493 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-22 15:22:02 +00:00
stephena e1ebfec032 Fixes for some issues picked up when compiling in OSX. This is
why compiling for multiple platforms with different compilers
really helps the robustness of code ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2492 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-21 21:33:39 +00:00
stephena beb18bfc43 CTY scheme now contains logic to determine when 'LDA #$F2' is executed.
The documentation states that this command is aliased, the current
frequency should be returned instead of $F2; this part isn't done yet,
since I'm still working on actually calculating the frequency.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2491 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-21 17:30:14 +00:00
stephena cac0eb609a Updated documentation for Chetiry (CTY) bankswitch scheme in the
source code header file.  As you can see, this is one of the more
complex schemes (and it isn't even finished yet!).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2490 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-21 00:15:47 +00:00
stephena ad8dd1d27e The OpenGL code now uses 32-bit textures. This is required for
blending in conjunction with phosphor effect.

For the Chetiry scheme, when loading or saving the 64 byte score
table, we now ignore the first 4 bytes (as specified by the
documentation).  These 4 bytes/addresses are actually a type of hotspot.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2489 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-20 21:10:19 +00:00
stephena 4281ac2436 Removed a few redundant FIXME and TODO's.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2488 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-20 18:26:59 +00:00
stephena 01c9bc30c3 More work on Chetiry bankswitch scheme. Preliminary version can
now load and play test ROMs, complete with emulation of timing delays
due to slow accesses on real Harmony hardware.  Still TODO is the tunes,
DPC+ stuff, which is stubbed out at this point.

Fixed bug in EFSC bankswitching; state files didn't contain extended RAM
information.

Cleaned up the Serializer API, resulting in slightly faster operation
and smaller state files.  Because of this, the state file format
has changed for this release (old state files will no longer work).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2487 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-20 14:23:48 +00:00
stephena f14d47f042 Updated Changelog for ZP-RAM fixes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2486 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-19 19:34:40 +00:00
stephena 86372a5fa4 Fixed disassembly issue for zero-page code; system equates weren't being
properly marked as such.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2485 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-19 19:14:52 +00:00
stephena 344c672f89 Fixed bug in disassembly in zero-page RAM when accesses were made
outside the $80-$FF area.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2484 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-19 18:51:30 +00:00
stephena 2724beeaa9 Add RGBA_8888 mode to TV effects.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2483 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-18 14:21:53 +00:00
stephena 3ae0359c73 Not ready for release candidates yet.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2482 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-18 14:01:50 +00:00
stephena 0b133867bc Bumped release date to next week, since we're not ready yet.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2481 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-18 10:52:39 +00:00
stephena d238762a46 More documentation updates.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2479 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-16 22:50:50 +00:00
stephena fd34439d8d Updated VS 2005 project files for Chetiry class addition.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2478 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-16 21:03:50 +00:00
stephena aa544ecfe9 Fixed bug when loading from ZIP files created in OSX. In some
cases, these archives contain directories named '__MACOSX' which
contain link files that were being erroneously detected as actual
ROMs.

Added FilesystemNode::isFile() method, and updated several places
in the code to use it.  Previously, determining whether something
was a file was simply testing if it wasn't a directory, but this
logic isn't always valid (it's possible to be neither a regular
file *nor* a directory).

Bumped version # for RC release.  It's getting very close ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2477 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-16 20:52:33 +00:00
stephena 042afc2edb Allow Blargg filtering to correctly show PAL color-loss effect.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2476 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-16 11:54:48 +00:00
stephena f1e25447f7 Some minor cleanups to the OpenGL class. I still need to figure out
how to integrate phosphor mode with Blargg filtering.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2475 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-15 21:43:19 +00:00
stephena 4fdfbde53a Bumped version # for beta release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2474 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-14 16:52:16 +00:00
stephena e7b38e9963 Custom TV 'adjustables' can now be changed dynamically as follows:
- Alt-9 / Shift-Alt-9 selects (increases/decreases) between
    the various adjustables
  - Alt-0 / Shift-Alt-0 increases/decreases the actual values for
    the previously selected adjustable

Cleaned up the API a little, moving some stuff from Console to
FrameBuffer class.  I think we're due for a pretty major
reorganization of parts of the codebase very soon.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2473 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-14 15:06:06 +00:00
stephena 732ccaca76 The 'Defaults' button in Video Settings now applies defaults to
the currently selected tab only.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2472 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-13 20:01:47 +00:00
stephena 440da3b4a0 OSystem now controls loading and saving of settings, by calling
Settings::loadConfig() and Settings::saveConfig() when required.
This fixes an issue with OSX in particular, or any port where
those methods are overrided.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2471 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-13 18:06:56 +00:00
stephena ceaae994ae More documentation updates.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2470 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-13 16:22:48 +00:00
stephena d5b2d62c90 Some documentation updates for the upcoming release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2469 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-13 00:35:24 +00:00
stephena 3850cb7879 Blargg now has knobs! The TV effects settings are now accessible from
the Video Settings UI.  Still TODO is add key shortcuts for the various
adjustable TV effects (contrast, brightness, etc).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2468 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-12 22:21:59 +00:00
stephena 12d0a4732e More UI changes for TV effects.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2467 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-10 19:30:53 +00:00
stephena e171eddfd2 OK, now it's time to start adding adjustable knobs for the TV effects.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2466 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-10 15:36:20 +00:00
stephena 3a63ef57c3 Fix float vs. int pixel offsets which are causing graphical glitches.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2465 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-10 10:30:58 +00:00
stephena 29a38af737 Oops, roundf is only in C99, which isn't implemented in Visual Studio 2010.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2464 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-09 17:28:46 +00:00
stephena 6314ef2549 Fixed graphical glitch with scanlines in TV modes when using non-integral
fullscreen scaling.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2463 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-09 16:06:19 +00:00
stephena f59f5ab5e8 Added scanline interpolation option (blended scanlines) with the
'tv_scaninter' option.  Added Alt-8 keypress to toggle this; still
TODO is add a UI item for it.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2462 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-08 19:37:04 +00:00
stephena 7d3ea13a01 TV scanline intensity range is now 0 - 100%, where 0 means scanlines
are essentially invisible.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2461 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-08 13:33:36 +00:00
stephena 9c17d43c6f Fixed bug in loading ROMs from a multi-file ZIP archive; ROMs
below the base directory weren't being detected.  The ROMs can
now be in any directory arrangement (although they'll still be
presented in the UI as if they're all in the base directory).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2460 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-08 13:24:10 +00:00
stephena 090390b415 Fixed huge performance issue in TV effects; CPU usage dropped from
26-27% to 11-12% on my test system.  This is from a baseline of 8-9%
for normal rendering, so the TV effects are now quite fast (only an
extra 2-4% CPU usage).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2459 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-07 15:39:01 +00:00
stephena 17d7b16be6 Updated VS 2010 project files for recent class additions, and fixed some C99/C++ issues.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2458 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-06 18:33:29 +00:00
stephena e8e15bd65b Updated OSX project files for recent class additions.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2457 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-06 18:09:34 +00:00
stephena e3fa8da1f9 OK, Blargg is now officially in the codebase! There's still quite a bit
left to do, but the basic functionality is now there.  Alt 1 - Alt 6
selects among TV modes as follows: off, composite, svideo, rgb, bad and
custom.  The latter is just composite at this point; there's no code to
actually change specific adjustables yet.  Alt 7/Shift-Alt 7 increases/
decreases scanline blend intensity (20% - 100%).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2456 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-06 17:45:48 +00:00
stephena 1e8f45a10f Fix scanline count info viewer when values are out of the normal range.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2455 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-01 19:09:28 +00:00
stephena bace21c40b More updates to Blargg filtering. The current code now corresponds to
the patches I received in the past, but also includes stuff from newer
versions.  It compiles correctly; now I just have to activate it and
pass it a framebuffer and see what happens ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2454 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-04-30 20:12:43 +00:00
stephena 3ec9fe888d Added 'tunes.bin' data to Chetiry scheme, and updated romtohex
to correctly generate the data from a bin file.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2453 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-04-29 19:43:28 +00:00
stephena 68f739914f Initial check-in of Chetiry bankswitch scheme from cd-w. For now, it's
basically the skeleton of F4SC, since it's partly modeled after that
(8 4K banks, etc).  More work will come after the 3.7 release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2452 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-04-29 18:04:47 +00:00
stephena 42225de183 OK, I'm about to tackle Blargg filtering, and I hope to have the first
implementation ready by the end of the coming week.  First, I have to
convert a patch against Stella 2.8.4 and an old Blargg version to the
current codebase (and a newer Blargg version).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2451 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-04-28 18:22:23 +00:00
stephena 973a8edf30 Added ability to descend into multi-ROM ZIP archives.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2450 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-04-27 13:34:30 +00:00
stephena e3ba9f0ec2 TIA objects and collisions are now toggle with the Alt-period keys,
instead of having different keys to turn them on and off separately.
This brings the functionality in line with the rest of the objects/
collision key-combos, which were also toggle-only.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2449 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-04-20 21:32:24 +00:00
stephena 6737091149 Replaced 'uselauncher' with 'exitlauncher', which specifies how the
ROM launcher should be used when exiting from a ROM.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2448 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-04-20 20:47:53 +00:00