Commit Graph

484 Commits

Author SHA1 Message Date
stephena e4f94c55c9 Changed SoundSDL::close() to SoundSDL::closeDevice() to match the SoundX11
class.  Couldn't use close(), since that is a C-style function called in
the SoundX11 code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@137 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-11 22:07:35 +00:00
stephena 9e45aa1ada Introduced the SoundX11::closeDevice() method so that the SoundX11 and
SoundSDL classes are drop-in replacements for each other.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@136 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-11 22:03:00 +00:00
stephena b7f0d2cf79 Added option to use either the OSS or SDL sound backend in the SDL version.
As of now, the OSS sound code is a bit more mature than the SDL code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@135 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-11 22:01:28 +00:00
stephena 48cef96017 Fixed the clicking sound that occured when '-accurate 0' was specified
and Pause was pressed.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@134 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-11 21:11:48 +00:00
stephena a84abcb1bf Modified to process the -Dmerge commandline argument.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@133 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-11 02:56:27 +00:00
stephena 943a4669d3 Added -Dmerge commandline argument, which specifies whether or not
we want to merge any properties changes into the PropertiesSet.

In the X11 and SDL versions, this option also tells the Properties::load()
method to load the properties into memory, since we can't do a merge
unless the properties are stored in memory.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@132 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-11 02:55:16 +00:00
stephena 25bde6512e Added PropertiesSet::merge() method, which merges the given Properties object
into the current PropertiesSet.  This method also accepts a filename specifying
where to save this PropertiesSet to, and a boolean representing whether we want
to actually save the properties on exit.

Cleaned up some variable names, and set some bas initializers in the constructor.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@131 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-11 02:52:02 +00:00
stephena d876ee0766 Added an extra newline character to the Properties::save() method so
that when a Properties object is saved to a properties file, that file
looks more like the default stella.pro.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@130 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-11 02:49:02 +00:00
stephena 009884dad4 Removed all DEVELOPER_SUPPORT #ifdef's from the code. The methods will now
be compiled into the core.  It's up to the GUI's to call (or not call) the
DEVELOPER methods.

Changed the behaviour of Console::saveProperties() in that it now accepts a
boolean variable 'merge', which if true, will make a call to
PropertiesSet::merge() and indicate that these properties are to be saved
into a stella.pro file.

If merge is false, it simply saves the properties to the specified file
(as before).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@129 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-11 02:46:34 +00:00
bwmott 470de4f24a Updated the SDL sound code so that the main thread and the sound thread
stay synchronized with each other.  Also added code to disable the audio
if the driver doesn't support "real time" audio (under linux this usually
means a sound server is running).  This code appears to be working almost
as well as the X11 sound code under the 1.2.5 release of SDL.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@128 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-11 02:07:21 +00:00
stephena 5d592bdfa3 Updated the documentation with information about the new
DEVELOPER_SUPPORT options.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@127 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-10 20:46:58 +00:00
stephena 2dbef125e8 Got rid of some extra DEVELOPER_SUPPORT commandline options that
aren't implemented yet.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@126 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-10 19:43:17 +00:00
stephena 4d149d7885 Updated X11 and SDL ports to make use of the new DEVELOPER_SUPPORT
stuff.  These are availble only if DEVELOPER_SUPPORT as been defined.

The keys are as follows:

Alt+s:    Save the current properties to your home directory named as
          "Cartridge.Name".pro, with all spaces in the filename
          converted to underscore.

Alt+f:    Toggle between NTSC and PAL modes, and update the palette
          accordingly.

PageUp / PageDown:  Increase / decrease the "Display.YStart" variable.

Alt+PageUp / Alt+PageDown:  Increase / decrease the "Display.Height" variable.

Home / End:  Increase / decrease the "Display.XStart" variable.

Alt+Home / Alt+End:  Increase / decrease the "Display.Width" variable.


Also, cleaned up the code a bit wrt C functions.  Got rid of all sprintf
C-style functions, and used C++ style sstream instead.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@125 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-10 19:18:35 +00:00
stephena a12078de97 Made sure that when properties are saved in Console::saveProperties,
all spaces are removed from the filename.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@124 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-10 19:05:57 +00:00
stephena 3dbc0b7193 Modified the commandline parsing to accept the following options:
-Dformat  (changes Display.Format)
-Dxstart  (changes Display.XStart)
-Dystart  (changes Display.YStart)
-Dwidth   (changes Display.Width)
-Dheight  (changes Display.Height)

These are only activated if 'DEVELOPER_SUPPORT' is defined.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@123 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-10 00:27:26 +00:00
stephena 4bf5ac3615 Added 'DEVELOPER_SUPPORT' #define to the (de)activate the latest options
for developers (added to the Console class).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@122 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-09 23:34:35 +00:00
stephena c3f834561a Added ability to change XStart. YStart, Width, Height, and Format
both from the commandline (by passing in a user-defined properties
object to the Console constructor) and at runtime (by calling various
methods in the Console class).

Methods are defined as follows:

Console::changeXStart() & Console::changeYStart()
 - Changes the "Display.XStart" and "Display.YStart" variables.

Console::changeWidth() & Console::changeHeight()
 - Changes the "Display.Width" and "Display.Height" variables.

Console::toggleFormat()
 - Changes the "Display.Format" variable, switching between NTSC and PAL
   modes.

Console::saveProperties()
 - Saves the current properties (including changes made in the current
   session) to the given filename.

Some notes on the new methods:
 - The GUI's will need to be adapted to see the updated information
   and act accordingly.
 - This new code is only activated by '#define DEVELOPER_SUPPORT'.
   You are encouraged to wrap calls to these new methods (in the GUI)
   in an appropriate #ifdef.  Publicly released binaries probably
   SHOULD NOT have this stuff activated.
 - All change methods (except for NTSC/PAL switching) currently do a full
   system reset after making a change, so that the whole system will see the
   changes.  This means that if you are playing a game and call one of these
   methods, the game will be reset.  In the future, the core may be enhanced
   so that changes are detected without a full reset.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@121 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-09 23:29:51 +00:00
stephena f2f97105f6 Added info about where the stellarc file can be located (for the X11 and
SDL versions).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@120 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-03 22:24:49 +00:00
stephena b439feda32 More documentation changes listing the new features in the CVS code which will
eventually (hopefully soon) become Stella 1.3.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@119 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-11-03 22:22:32 +00:00
stephena ddaab4dcae Fixed sound problems when saving and then reloading a state file. Now
the contents of the TIA sound registers are saved/loaded with the state,
resulting in a much more consistent state file.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@118 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-10-31 20:46:07 +00:00
stephena 7824e7b2c5 Added compile flags for Athlon XP based processors (the one I use now).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@117 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-10-31 20:44:26 +00:00
stephena 88b0994efb Some fixes to the latest SDL sound code. Sounds seem to keep better
sync with the video updates in this version.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@116 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-10-12 15:24:49 +00:00
stephena 1810444904 Changes for the SDL port to use the new sound API. This is still beta
code, and there are still some audio/video sync'ing problems.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@115 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-10-11 13:07:01 +00:00
bwmott 36a5c1575d A number of files have been updated, added, or removed to implement a
new sound mechanism for Stella. The TIASound library is now part of the
emulation core and each time a frame is created a corresponding set of
audio samples is added to a bounded queue. The GUIs are responsible for
getting the samples from the MediaSource object after each update and
sending them to a sound driver as needed. Currently, only the X11 port
has been updated to use the new API. The new APIs are not backwards
compatible so the other GUIs will not compile until they are updated.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@114 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-10-09 04:38:12 +00:00
stephena 9d758a41b6 Changed some text messages involving state loading/saving in the X11
and SDL ports.

Added 'Shift-F10' key combo to X11 port to cycle downwards through state
slots.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@113 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-10-05 12:49:49 +00:00
stephena ba45df86da Updated the section on commandline argument changes for the X11 and SDL ports.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@112 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-09-29 14:11:56 +00:00
stephena 781e6d094f Changed how options are specified in the X11 and SDL ports. Those
commandline options that were previously booleans now take either a 0 or
1 after them, specifying false or true, respectively.  For example, one
can now specify window centering be on with "-center 1" and off with
"-center 0".

The option previously named "-nohog" has been renamed "-accurate", which
more accurately describes its function.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@111 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-09-29 14:11:11 +00:00
stephena efcdd80028 Added Shift-F10 key to the SDL version. Used to cycle downwards for the
current state slot.  The F10 key cycles upwards.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@110 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-08-17 16:24:24 +00:00
stephena 79c96dbe39 Added a box around the message output (when changing color modes,
saving/loading states, etc).  Makes the message much easier to see.

Implemented in the core code, so DOS, X11 and SDL will take advantage
of it.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@109 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-08-17 15:29:28 +00:00
stephena 5e03d45bad Added native sound support for the SDL version. The SDL version no longer
requires the external stella-sound program.

Please test extensively.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@108 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-08-15 00:29:40 +00:00
bwmott 35fcaec0ff Added the F4 bankswitching method to the emulator. This is a 32K cartridge
with eight 4K banks.  Marble Craze (a new homebrew game) should work now.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@107 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-08-14 02:30:52 +00:00
stephena d34f42c679 Fixed state loading and saving. When a load failed on a previous attempt,
the next load would cause the program to abort.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@106 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-08-11 17:48:13 +00:00
stephena a6d330fa2c Removed "Experimental timing" as an option from the Makefile. Option is
now always compiled into the SDL and X11 versions.

Default is to use the CPU-intensive (normal) timing code.  The less CPU-
intensive timing can be selected with the commandline argument '-nohog', or
by setting 'nohog = 1' in the rc file.

Note that the nohog setting works much better in SDL vs. X11, since SDL_Delay()
seems to have a finer granularity than usleep().


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@105 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-08-04 00:28:18 +00:00
stephena 457b1edfab Some cleanups for compiling under gcc 3.x.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@104 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-08-03 22:52:39 +00:00
gunfight f313c951fb Check in of Cyberstella 1.2.1
- Completely removed the built-in games
- Renamed "Readme.txt" into "CyberstellaTodo.txt" and moved it into the root of the stella project.
- Added a few initilal Cyberstella informations to changes.txt. The WIN32 version now joins this log.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@103 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-16 11:18:08 +00:00
gunfight 9dfa788040 Check in of Cyberstella 1.2.1
- Completely removed the built-in games
- Renamed "Readme.txt" into "CyberstellaTodo.txt" and moved it into the root of the stella project.
- Added a few initilal Cyberstella informations to changes.txt. The WIN32 version now joins this log.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@102 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-16 10:08:18 +00:00
stephena 367738ecd2 Fully updated X11 and SDL versions to support state loading and saving.
Appropriate error messages are printed to the screen.

Changed location for rc and state files for X11 and SDL versions.
When Stella starts, it will create the directories '.stella' and
'.stella/state' under $HOME, if they don't already exist.

All state files will be placed in '$HOME/.stella/state'.  The locations
for the rc and properties file have also changed.  They are now
found in '$HOME/.stella/stellarc' and '$HOME/.stella/stella.pro'.

Changed shading of the screen when pause is pressed.  Now the colors
are set to 75% of normal, not 50% (as before).  I think this looks
better.  Also, shading is no longer performed in 8-bit modes, since
there weren't enough colors to do it anyway.

Made joystick code optional again in the X11 and SDL versions.  This
is in preparation for a code merge (in the SDL version) for the
Zaurus PDA.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@101 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-14 18:29:45 +00:00
stephena 73008e9290 Fully tested (I hope) almost all the Cartridge types wrt. state loading and
saving.

For now, CartE0 is still being tested, and CartMC has not been implemented at
all.  This is a problem right now, since I don't have access to an MC
cartridge image.

Other than that, all the other Cartridge types are working fine with every
ROM I've thrown at the current code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@100 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-14 15:22:28 +00:00
gunfight a6d9b330c3 Made Cyberstella compile with new serialisation classes added.
Changes I had to do where:
Adding #include "bspf.hxx" to the headers of the new classes.
Fixing a myriad of (in VC++ 6.0  illegal) uInt32 redefinitions


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@99 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-14 10:56:03 +00:00
gunfight db86e73896 - Made Cyberstella compiling without the built-in games for the moment
- Updated Todos in Cyberstella/ReadMe.txt
   Woah! 137 lines of ToDos! The fastest growing branch in the whole project! :-)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@98 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-14 10:16:14 +00:00
gunfight be59a66b2b To avoid probable GPL violations by including non-GPL games into this project, this function is currently disabled.
We're working on a GPL conform solution though, so check back soon.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@97 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-14 09:46:11 +00:00
stephena b1df602401 Updated makefile and SDL port for state loading and saving.
For now, state support is present only in the SDL port.  The following
keys are used to access state stuff:

F9:  save state to current slot
F10: change current slot (cycles from 0 through 9)
F11: load state from current slot

Messages will appear onscreen indicating success or failure.

State files are saved named as the md5sum of the current ROM, with an
extension of .stx appended, where x is the current slot (from 0 through 9).

For now, these state files are saved in the current working directory.
I plan on moving them to a $HOME/.stella/state directory for both the X11
and SDL ports.  The Windows and DOS versions can choose other, more relevant
locations.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@96 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-13 19:29:44 +00:00
stephena 8a51196556 Added state save and load methods to each class derived from Device.
Not all cartridges have been implemented.  Some are working perfectly,
such as those without RAM.  Others are hopefully working, but require
further testing (like bank switching).  A few are not working at all,
most notably CartAR and CartMC.

Please test extensively.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@95 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-13 19:17:32 +00:00
stephena 158b91f98c These classes are used to provide a platform-independent way (I hope) to
store integers  and booleans, even on systems with different variable
widths.

Currently, they are used to implement the storage and retrieval of binary
data that make up the state files.

I'd appreciate testing on systems with different variable widths and
endianness (other than i386).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@94 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-13 19:14:17 +00:00
stephena 3e3ca7d10e Added initial support for state loading and saving. The relevant methods
are in System.cxx, and can be accessed from the various ports through
the Console.

To save state, call theConsole->system.saveState(string filename, string
md5sum).  The filename should include the full path and can be anything.
The md5sum is obvious and is used to make sure that the filename is actually
a state file for the current ROM.

To load state, call theConsole->system().loadState(string filename, string
md5sum.  These variables have the same meaning as above.

For now, only the SDL port has access to these.  Support will be added for
all ports when I do some more testing.

I'd appreciate some bug reports, especially related to sound handing on
state load.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@93 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-13 19:10:25 +00:00
gunfight 2cafb1d3f0 Sorry Thomas :-)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@92 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-13 07:58:57 +00:00
gunfight 5a624b83a4 Added a large disclaimer, just in case and because the first guys seem to be ready to start trouble because of the included games.
After spending some hours of reading through all sorts of licensing nonsensense, I think we might be on the save side with this new disclaimer now.
Maybe someone with more sense for such crap and more understanding for the english language might read through that stuff again and see if there's yet still any possible trapdoors I've overlooked.
Anyway, if there's no other choice, I'll remove these games completely again without any trace, before I risk that any rights to these games get drawn away from their original authors.

Greetings,
     Manuel.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@91 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-13 07:50:38 +00:00
gunfight b4e885bc4b Fixing various bugs I checked in 4 hours ago.
*GRMBLFX*
Someday I should know how windows messages work...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@90 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-09 20:54:29 +00:00
gunfight 47ce58f23d Added safety bailout, when there's a "" coming
in when stella.pro is to be loaded. I hope this is ok
for the other versions, too?


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@89 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-09 16:58:04 +00:00
gunfight 9666fd6c2a C-Header representations of the following homebrew games:
- Gunfight added with permission from Manuel Polik
- Jammed Full Version(!)  added with permission from Thomas Jentzsch
- Qb added with permission from Andrew Davie
- Thrust added with permission from Thomas Jentzsch

Conversions done with BIN2H, a utillity created by
Manuel Polik with help from Thomas Jentzsch.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@88 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-09 16:43:33 +00:00