Commit Graph

7859 Commits

Author SHA1 Message Date
stephena 46f5aaafd9 Due to some changes I made today, stella-sound would no longer quit when you
exited the emulator.  This is now fixed.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@60 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-28 23:11:21 +00:00
stephena 47ed9dffc1 Removed absolute dependency on stella.pro file. If it isn't present in the
expected locations, then Stella will use built-in generic defaults.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@59 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-28 18:20:35 +00:00
bwmott 3f9a204de1 Modified the palette setting code in the SDL and X11 setup code to use
the entire 256 entry palette returned from the TIA instead of looking
at only the even numbered entries.  This was required since the PAL
color loss code uses all 256 entries in the palette.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@58 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-28 05:13:13 +00:00
bwmott c3aa637f8a Modified the TIA emulation so that it supports the PAL color loss
effect.  Color loss occurs when the previous frame contains an odd
number of scanlines.

The color loss effect is implemented using an idea from Eckhard
Stolberg: "I thought you could have each colour twice in the palette.
In the PAL palette the second colour would only be a shade of
grey. Then when something gets written to the TIA colour registers,
you could set bit0 of the colour according to bit0 of the
scanline counter for the last frame. That way an odd number of lines
would select the grey tones, while an even number would select the
normal colours."


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@57 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-28 05:10:17 +00:00
bwmott 669c93e662 Added pragma to avoid warnings regarding int to bool conversions
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@56 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-28 02:08:50 +00:00
bwmott 36ed979ece Updated the Sound class so it has a new set method which also takes as an
argument the number of CPU cycles elapsed since the last TIA sound update.
The default implementation of this method invokes the old set method for
backwards compatibility with derived classes.

This new set method will be used in the 1.3 release to improve the quality
of the sound emulation (e.g., to support games like Pitfall II which update
the sound registers many times during a frame).

The TIA class was updated to invoke the new set method of the Sound class.
Finally, the TIA pauseState data member was renamed to myPauseState to be
consistent with the other data members.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@55 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-28 02:02:24 +00:00
bwmott e24dd2c994 Added a disclaimer regarding the support for music mode data fetchers and
cleaned up some whitespace.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@54 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-28 01:48:28 +00:00
stephena 735a362381 Updated X11 and SDL versions to use the new Settings class. Currently
working on updating the DOS version.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@53 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-21 22:50:36 +00:00
stephena fff4d40d77 Updated makefile to include the Settings class. It is now a core class that
is added to all versions of Stella.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@52 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-21 22:48:54 +00:00
stephena 6ef82a49f5 Removed redundant code in X11 and SDL versions dealing with setting options
from an INI file or commandline to this new class.

Now the reading of commandline options or from INI files can be used by any
frontend that uses this class.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@51 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-21 22:47:00 +00:00
stephena a6b74d92f0 Added experimental timing code to the X11 and SDL versions. Now its possible
to use the emulator without hogging the CPU.  Usage on most machines I've
tested is around 1% - 2%, versus the 100% that was used before.

SDL version seems to like this new code better.  I think that usleep is
causing some problems in the X11 version.  I'd appreciate some feedback
on this.  Maybe I'll change to select or something.

There is a slight skip in framerate that can't be avoided unfortunately.
You may not even notice it.  Sound may be slightly different as well.  In
my opinion, this is a good tradeoff for basically reducing CPU usage to nil.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@50 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-20 00:03:24 +00:00
gunfight 47f740acdd Fixed "addr" redefinition, so WIN32 version compiles again.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@49 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-18 14:40:07 +00:00
gunfight 3b496cf0dc Properly initiated pause state, so WIN32 version works again...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@48 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-18 14:38:34 +00:00
stephena bf6138c256 Finally implemented pause functionality. It is only enabled in X11 and SDL
versions for now, but can easily be used in other ports.  Press the PAUSE button
to activate and deactivate.

It is started by calling Console.mediaSource().pause(bool state), where state
is either true or false and will enable/disable the pause, respectively.

When pause is enabled, a mute is sent to the Sound device, so other ports must
have coded this Sound::mute method.  While pause is on, all calls to
Console.mediaSource().update() will do nothing.  Only by calling pause() again
can the emulator proceed.

Other ports will probably require a minor rewrite of their main loop, since
the calculation of frames per second will now have to be done differently.

Previously, FPS was based on the time entering the main loop and the time
leaving.  This difference was the total time used in calculating FPS.
Now, since pause can be on for an indefinite amount of time, the total time must
be incremented *per frame* instead of over the whole loop.  Similarly, the total
number of frames drawn is no longer how many times you pass through the loop, but
how many times you pass through the loop *while not paused*.

See ui/sdl/mainSDL.cxx or ui/x11/mainX11.cxx for more info.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@47 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-17 19:37:00 +00:00
stephena c67481c440 Fixed some memory leaks. Some things which were new'ed weren't being
deleted.

Barring any major bugs or memory leaks, this will be my last release for
the next major version (Stella 1.2).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@46 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-12 19:27:11 +00:00
stephena 3c3bc5b9b3 I FINALLY have Snapshot support working. The same snapshot code can
now be used in the X11 and SDL versions, and in the DOS and Win32
versions if someone wants to add support for it.  The only requirement
is the PNG library.  This is because the snapshot is now taken from the
'MediaSource' framebuffer, which is common to all versions.

Changed SDL to take advantage of the common snapshot code.

The X11 version no longer requires Imlib for snapshot support, as it now
uses the common snapshot code.

Removed (and buried) the SnapSDL code for good :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@45 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-10 01:29:55 +00:00
stephena 6e1e8f3870 Big performance boost for SDL version. Switched from updating the whole
screen to only those parts that changed.

Switched back to using native bpp mode in SDL, since emulating 8-bit
display was causing a performance hit.

Because of previous modifications, snapshot support in SDL in broken in
both windowed and fullscreen mode again.  Its on my TODO list :)

SDL snapshot support now configurable in the makefile.  Now you can use
the SDL version without needing libpng (and without snapshot support).

Fixed a bug in SDL version when no joysticks were present on system.

Changed commandline argument from '-winsize' to '-zoom' since it more
accurately describes whats happening (X11 and SDL versions).

Removed F11 key (fullscreeen mode) in X11 version since that code hasn't
actually been written yet.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@44 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-05 22:39:47 +00:00
stephena cc8ea20d1e Added '-sssingle' commandline argument to the X11 and SDL versions.
If specified, this will save single snapshots instead of generating multiple
snapshots saved as 'filename_x.png'.

Updated stellarc file to select 'sssingle' command.

Fixed some problems in the SDL snapshot code.

Fixed long-standing bug in the X11 version where closing the window did not
properly exit the emulator.  Now exits are done correctly.  No more
zombie stella-sound processes :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@43 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-02-23 16:05:52 +00:00
stephena 5a8ca97c59 Reworked snapshot support for the SDL version. Imlib is no longer needed
for SDL version, just the PNG library.  Fullscreen snapshot support is
working again.

Removed choice of adding snapshot to SDL version; now it is always added.
As a result, the 'libpng' library is needed to compile SDL version.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@42 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-02-17 04:41:42 +00:00
stephena 24050a1ce6 Added '-pro' commandline argument to use an alternate stella.pro file
to the X11 and SDL versions.

This is only a commandline option and can't be specified in the stellarc
file.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@41 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-02-06 00:59:36 +00:00
stephena 9fb178961d Added Left-Control key for fire button on joystick 0.
Changed the key for entering fullscreen mode on the SDL version
from F11 to Alt-Enter.  Will make the same change in the X11
version when I figure out how :)

Changed '-showfps' to '-showinfo' since it was showing more than the
fps anyway.  Added printing of the romname and md5sum to this option.

Temporarily removed support for fullscreen snapshot support in the
SDL version.  Windowed snapshot mode is still available in X and SDL.

Changed the requirements for snapshot support.  Now requires regular
Imlib instead of Imlib2.  More users have Imlib than Imlib2.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@40 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-02-03 16:51:22 +00:00
stephena de2df715ea Added new commandline options -ssdir and -ssname to snapshot support.
-ssdir <path>  : Path which specifies where snapshots are saved.
-ssname <name> : Can be either "romname" or "md5sum".  Will name the snapshot
   file according to the specified option (from stella.pro file).

Some cleanups of the snapshot code.

Fixed bug where segmentation fault occurred if there was no stella.pro
present.  Now an error is printed.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@39 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-02-01 02:13:08 +00:00
stephena cccf418bc6 Updated NTSC palette by Thomas Jentzsch. I think this one is pretty
close to the original :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@38 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-27 02:10:04 +00:00
stephena cd9f9a18cb Fixed bug where using -center and -fullscreen at the same time didn't work
correctly.  The emulator would start fullscreen, but if switched to
windowed mode, it wouldn't be centered.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@37 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-19 02:17:19 +00:00
estolberg 72d209a88d Added support for Commavid extra RAM cart and for the Megaboy.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@36 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-18 16:04:46 +00:00
estolberg 351469d1a1 new header for 64K Megaboy cart
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@35 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-18 16:02:30 +00:00
estolberg 4b63d245cc new class for 64K Megaboy cart
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@34 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-18 16:01:43 +00:00
estolberg 0818aba023 new header for Commavid extra RAM carts
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@33 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-18 15:59:40 +00:00
estolberg 97d2e0fc34 new class for Commavid extra RAM carts
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@32 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-18 15:58:46 +00:00
stephena 97c2fc83b0 Removed these files since they should be automatically generated by the
tools that the user has.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@31 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-16 15:12:38 +00:00
stephena f257327aa1 Removed all references to DefProps from the makefile and related classes.
There is no longer a builtin stella.pro file.  You must supply one with
the program.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@30 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-16 15:09:21 +00:00
stephena 2f55b22d2b Changes to the PropertiesSet class which give a choice between storing the
properties in memory or always reading from the .pro file.  Removal of the
.pro file from the executable (now it MUST be included with the executable).

Typical improvements are 38% less memory usage and 46% reduction in
executable size.

Changes to all 4 frontends to accomodate changes made to the
PropertiesSet class.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@29 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-16 02:14:25 +00:00
bwmott bf5cae4704 Updated PAL and NTSC palettes from Thomas Jentzsch. The NTSC palette
has been adjusted to make the colors look a bit stronger (more saturated).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@28 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-15 04:00:33 +00:00
bwmott efa220b996 Incorporated a modified NTSC palette, provide by Thomas Jentzsch, which
is more like the real 2600 colors.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@27 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-13 05:17:33 +00:00
bwmott eb6636dfbe Improved the emulation of values read from the TIA based on the results
Eckhard Stolberg obtained from a real 2600 showing that the TIA always
defines bits 6 & 7 and lets bits 0 to 5 float.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@26 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-13 04:26:42 +00:00
stephena efa1675e00 Patch to fix compilation with new PropertySet code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@25 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-10 20:03:05 +00:00
stephena 40224e7459 Extra error checking, commenting, and some cleanups.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@24 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-10 19:53:33 +00:00
stephena b463645966 Extra error checking, commenting, and some cleanups.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@23 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-10 19:22:58 +00:00
stephena 0a10a2d475 Modified makefile to pick up sdl-config stuff.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@22 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-08 19:17:58 +00:00
stephena 9b1481a34d Initial SDL version of stella. Uses stella-sound program for sound output.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@21 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-08 19:11:13 +00:00
stephena 59ce106a71 Stella config file for X11 and SDL versions.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@20 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-08 18:00:41 +00:00
stephena 4584f6184c *** empty log message ***
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@19 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-08 17:58:42 +00:00
stephena 1a1a107313 Stella config file for X11 and SDL frontends.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@18 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-08 17:56:40 +00:00
stephena 875baa25c2 makefile : cleaned up options, changed method of selecting options, added sdl frontend
Console.cxx :  changed lookup of current rom to be always based on md5sum
Console.hxx :  changed lookup of current rom to be always based on md5sum
Props.cxx :  added method to get rom info based on md5sum
Props.hxx :  added method to get rom info based on md5sum
PropsSet.cxx :  changed storage of properties to a BST based on md5sum
PropsSet.hxx :  changed storage of properties to a BST based on md5sum
OSS.c : added volume command-line argument and mixer functions
SndUnix.cxx :  added code to pass volume to stella-sound process
mainX11.cxx :  major enhancements, see Changelog


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@17 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-08 17:11:32 +00:00
bwmott 7d7d406f94 Initial import of the source code for version 1.1.3a of the DirectX based
Windows port of Stella.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@16 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-01-08 05:01:08 +00:00
bwmott cf68f6d4b4 Updated for preliminary Pitfall II support.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@15 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2001-12-30 18:43:30 +00:00
bwmott cb1a8d4565 Updated based on the new System code for accessing the data bus state.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@14 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2001-12-30 18:42:09 +00:00
bwmott c7e4831786 Improved the emulation of values read from the TIA of undefined bits.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@13 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2001-12-30 18:38:54 +00:00
bwmott 7ba178b55b Enhanced class so that it maintains the last value placed on the data bus.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@12 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2001-12-30 18:36:02 +00:00
bwmott 4f214fecfa Modifed to support all of the undocumented 6502 instructions.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@11 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2001-12-29 17:55:59 +00:00