Commit Graph

4944 Commits

Author SHA1 Message Date
stephena 6b644925cc StellaX now loads metadata from the stella.pro file (Filename,
Manufacturer, Rarity, Note, etc).

Since the loading of the metadata is slow, I added a cachefile
for the gamelist (named 'stellax.cache').  If this file is present,
the gamelist is created based on the contents of the cachefile.
This is quite fast, since no stella.pro parsing or ROM loading
is done.  The cache file is recreated each time a full reload is
done.

Pressing the 'Reload' button always forces a full reload (not from
cache), so this is useful if you change the ROM directory (or add
ROMs).  Still TODO is add a check to see if the ROM dir has had
any files added to it since last time you ran StellaX, and do a
full reload.

Got rid of the filename field in the game listview.  Now only show
'Cartridge Name', 'Cartridge Manufacturer' and 'Cartridge Rarity'.
If some game doesn't have an entry in the stella.pro file, its
filename will be shown as cartridge name.

Still TODO are add sorting/permanent resizing options to the column
headers in the listview, and add options to the Config Page.  It's
getting close, folks.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@300 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-10 22:25:58 +00:00
stephena 287bf03829 Removed defaultProperties() method from the Console class and put
it in the PropertiesSet class, since it made more sense there.

This also allows the use of Properties and PropertiesSet classes in
StellaX without needing to bring in the Console class (and everything
associated with it).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@299 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-10 13:20:36 +00:00
stephena 14728bf2cc Changed the parsing of lines in the settings file. Instead of stripping
all the whitespace in line, first split the line into key/value pairs
(split by '=' sign), then trim whitespace from beginning and end of both
the key and the value.

This fixes the bug where settings that must contain spaces (pathnames)
are garbled when they have internal spaces removed.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@298 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-09 00:27:39 +00:00
stephena c64b9a6889 Changed some things wrt DEVELOPER_SUPPORT. The only extra things which are
now activated when Stella is built with DEVELOPER_SUPPORT is the ability
to change Xstart, Ystart, Width, and Height.  Specifically, the ability
to change NTSC/PAL mode, toggle different palettes, and save/merge changes
into the properties file is now standard in all ports, and is *not* strictly
a developer-only thing.  So that means that people who use a version of
Stella compiled without DEVELOPER_SUPPORT won't really miss much (the above
features are used by very few people).

Removed the commandline arguments -Dxxx, since they haven't worked for quite
some time anyway, and I doubt that many people really use them.  Besides,
there are still keyboard shortcuts to do the same thing.  To any developers
who don't want to see these things disappear; the next version of Stella
will include a debugger, and _that's_ the proper place to put those things.

Removed starting and ending '|' characters from the -listrominfo output,
since parsers have an easier time when those are present only _between_
elements, not at the beginning and end.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@297 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-07 22:46:01 +00:00
stephena 40f77dc03e Yet more StellaX code cleanup.
The 'Browse for ROM directory' button now works, so you can change ROM
directories while within StellaX.

Added a 'Reload' button to the main dialog, so that when you change the
ROM dir, you can immediately reload the directory (instead of having to
quit and restart the app).

Added quotes around romnames; previously, names with spaces would cause
problems.

Removed old 'beta-testers' and 'thanks to' info from the Help dialog,
since it's over 4 years old and none of those people helped me :)

Still TODO is parse stella.pro info (so you can see romname, ms5sum, rarity,
manufacturer, and notes from the GUI), add a gamelist cache mode (so the
stella.pro and roms don't have to be accessed each time you start the
emulator, only when the romdir has changed), and add more options to the
config dialog.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@296 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-06 22:51:58 +00:00
stephena d77a84297b Removed the virtual Settings::usage() method from the SettingsUNIX
and SettingsWin32 classes, since they both did the same thing, and
placed the method in the Settings class itself (ifdef'ed out for
OSX).  It was done this way when core was still in flux and each port
didn't support all the same options.  Since the core is now unified,
it didn't make sense to have a separate usage() method for each port.

Added the '-listrominfo' argument (can only be called from the commandline,
not set with the INI file).  This returns selected info from the stella.pro
file and exits immediately.  It returns data in the form of:

   # of roms (first line)
   MD5|Name|Rarity|Manufacturer|Note (# of roms lines) ...

This makes it much easier for GUI frontends to interface with Stella,
since all stella.pro parsing is now done within Stella itself.

Added various print() methods to Properties and PropertiesSet to
facilitate the above '-listrominfo' argument.

Fixed a bug in PropertiesSet::size(); it always returned 0.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@295 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-05 00:53:48 +00:00
stephena 3496d66495 Some more code cleanups on StellaX. StellaX now launches the Stella
executable when you select 'Play' in the GUI.

Still todo are add more options to the config page, figure out why the
'Browse ROM Dir' button doesn't work, and have StellaX parse the
stella.pro file (so you can see romname, manufacturer, notes, etc).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@294 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-04 20:16:03 +00:00
stephena f3fd04d5c4 Added '-gl_fsmax' description to the list of commandline options.
Added Snapshot and OpenGL support to the Stella VC7 project files.
Snapshot support will require the PNG and ZLIB development files,
and OpenGL will require the OpenGL32 development files.  I haven't
hardcoded any of these into the project; you must have the relevant
files set up in Visual C++ itself (through default search paths, etc)

I'll be keeping the ability to compile Stella with the makefile
(through MinGW), since the resulting binary from MinGW seems to work
a little better than the one from VC7.  VC7 support was added strictly
for those developers who wish to work on Stella using a GUI dev
environment.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@293 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-04 15:23:20 +00:00
stephena 59e4b7e7d8 Added '-gl_fsmax' description to the list of commandline options.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@292 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-04 15:16:22 +00:00
stephena 674db1275a Renamed the Switches structure to KeyList, since Visual C++ was
complaining that there's also a class named Switches (which there is).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@291 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-28 23:16:24 +00:00
stephena 3cc7c5998b Added a new VC7 solution called 'Stella_Emulator' which contains the
following two projects:

Stella  - the commandline Stella application
StellaX - the Windows GUI frontend

As of now, Stella compiles *without* the snapshot and OpenGL options
and works fine.  Adding these options will be as simple as finding
the required libs/include files and activating the relevant DEFINE's.

StellaX compiles and runs, but it doesn't do much ATM.  There is still
some amount of work to do in this area.

Since the Linux version is completely finished, and the MacOSX version
just needs some minor updates, most of my time will be spent getting the
StellaX GUI up to speed.  Then release 1.4 will be ready ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@290 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-28 23:13:54 +00:00
stephena 3948112d35 Removed old StellaX project and files in preparation for the
new VC7 solution which includes the Stella and StellaX projects.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@289 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-28 23:01:54 +00:00
stephena e77dea4627 Updated the makefile for the recent changes wrt *.ins files.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@288 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-28 02:06:21 +00:00
stephena 82b7a61cf5 Readded these files, since the Windows and Mac ports need them, but only
Linux can easily generate them.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@287 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-28 01:24:09 +00:00
stephena b68b555b7a Added a new OpenGL feature (I promise, this is the last new feature before
the 1.4 release :)  The commandline argument '-gl_fsmax true|false' determines
how fullscreen OpenGL mode works:

 - if gl_fsmax is false (the default), the screenmode used will be the closest
   one that matches the image dimensions.  For example, if the image is 740x520
   and the closest matching resolution is 800x600, then 800x600 will be used.
   If your desktop resolution is not 800x600, there will be an (annoying)
   mode change.

 - if gl_fsmax is true, the screenmode used will be the largest one available
   for your videocard/monitor, with the logic being that most people use the
   maximum resolution for their desktop.  In this case, a mode change
   shouldn't be required.  The image is scaled so that there's at least 10%
   black area on all sides, which when used with the gl_aspect argument, can
   provide a very authentic looking emulation experience.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@286 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-27 22:44:04 +00:00
stephena 76e5371bb3 Updated the documentation for the 1.4 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@285 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-26 21:31:28 +00:00
markgrebe 80f596924b Added CartUA.cxx to Macintosh build
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@284 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-26 02:38:26 +00:00
stephena 5048e21845 Added CartUA to the list of objects to compile for the Linux/Windows
version.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@283 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-25 13:33:11 +00:00
stephena e703bffe5d Fixed warning of variable not used.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@282 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-25 13:32:16 +00:00
bwmott 4977085d49 Modified the default CPU emulation mode to be "High" instead of "Low".
This is a better default now since most machines are more than fast enough
to handle the additional processing required by the high compatibility
mode.  This change was needed to get Pleiades to work correctly since it
uses "trash" on the data bus that's not correctly updated when the "Low"
CPU compatibility mode is used.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@281 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-25 03:50:47 +00:00
bwmott ab78d1da4f Added support for UA Limited style bankswitching. Funky Fish and
Pleiades should now work.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@280 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-25 03:44:12 +00:00
stephena e20857ee48 Now that fullscreen OpenGL mode works in Windows, we can enable
mode switching in the event loop.

That's it, stick a fork in it, I'm done.  It's after 1:30AM here
and I'm going to bed ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@279 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-23 03:59:59 +00:00
stephena 5b6f1c5f5e Reworked the OpenGL class yet again. I figured out how to fix the problems
in Windows without all the invasive changes, so I reverted most of it.

Snapshots are now fully working in both software/OpenGL and windowed/fullscreen
modes.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@278 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-23 03:43:47 +00:00
stephena 6ddd117edf Moved the screen clearing code out of the texture creation method
and into the createscreen method.

Under Windows, it didn't matter, since createTextures() was called every
time createScreen() was.  Under Linux, createTextures() is only ever
called once.  Hence, the screen is never cleared.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@277 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-23 00:33:37 +00:00
stephena db6d064ebf Reworked the fullscreen OpenGL mode. Finally, Windows fullscreen OpenGL
works!

Still to do is scale the OpenGL text to the current screen size.  Right now,
it still shows up very small (and not centered).  Also, fullscreen OpenGL
snapshots aren't quite working right yet.  Both of these are easy to fix.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@276 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-23 00:15:32 +00:00
stephena 464972cc31 Added snapshot support for both software and OpenGL modes. Snapshots
are now created from the framebuffer() instead of directly from the
Mediasource.

Removed all snapshot-related code from the Console, since it didn't
really belong there.  A static snapshot object is now created each
time a snapshot is done (in the EventHandler).

These changes should make it easier for those ports (like MacOSX) that
have native PNG-saving support to not use *any* of the snapshot code
at all.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@275 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-20 23:30:48 +00:00
stephena 44584196ab Added fix that I forgot to include in the last commit.
The sound queue should be emptied before reloading the sound
registers, and the sound callback must not be called during this
time.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@274 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-20 01:12:12 +00:00
stephena 2d543a8af9 Fixed the state loading code wrt sound handling. The TIA sound register
queue is now cleared when a new state is loaded.  This should eliminate
the weird sounds that sometimes happened when a new state was loaded
(sound from the previous state was still playing).

Removed the '-paddle real' option from the description in the UNIX
commandline help code.  This option hasn't been used since Stella 1.2
and has been obsoleted by the Stelladaptor support.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@273 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-20 00:52:37 +00:00
stephena 2b64fd4217 Made the windows port create a 'state' directory to save state files
into if the directory didn't already exist.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@272 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-19 21:51:12 +00:00
markgrebe d877d0a95b This commit was generated by cvs2svn to compensate for changes in r269,
which included commits to RCS files with non-trunk default branches.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@270 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-16 02:30:32 +00:00
stephena e4c22f2815 Disabled switching to fullscreen mode in Windows when using OpenGL.
Something is seriously screwed up there, and I'm not even attempting
to get it working for this next release.

It seems that sometimes switching to fullscreen in Windows in software
mode causes crashes as well.  I really hate Windows ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@268 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-16 00:31:32 +00:00
markgrebe 7975fa9ce3 Updated Mac OSX specific sound generation for Brads new sound changes
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@267 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-13 19:22:45 +00:00
stephena 9e287b0e8c Fixed SDL_Quit() not being called on program exit.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@266 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-13 18:14:03 +00:00
bwmott d902a9b237 Added a few comments and updated the "high-water" mark for the sound
register queue so that it's based on the fragment size.  This should
help ensure the queue isn't cleared for larger fragment sizes.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@265 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-13 17:14:25 +00:00
stephena 50767f4bb1 - Fixed some compile warnings under gcc.
- Adding better error checking to the mainSDL class (SDL_WasInit),
thanks to Joshua Rodman.

 - Removed the bufsize argument, since it's no longer used.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@264 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-13 16:51:15 +00:00
bwmott f4aced6c64 Removed bufsize argument to Sound creation and added framerate argument
to Console creation so the code works with the latest sound changes.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@263 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-13 05:09:37 +00:00
bwmott 2e09e2c00c A fairly major rewrite of the class to improve the sound support. The
enhanced sound in games like Pitfall II and Quadrun should be working
now.  Also the overall sound in most has should be improved since the
TIA sound register writes and sample generation are somewhat synchronized.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@262 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-13 05:03:26 +00:00
bwmott 3d231acd53 Added new argument to constructor to pass in the desired frame rate
to the Console.  This information is needed by the SoundSDL class to
properly schedule the sound.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@261 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-13 04:59:40 +00:00
bwmott 21af97fb43 Minor change to invoke mute() method instead of pause() on the sound
object.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@260 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-13 04:57:17 +00:00
bwmott 69df04607e Added a volume setting function which allows the generated sample's
volume to be controlled.  There's some code for the Mac which will
need to be updated for this to work in that environment.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@259 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-13 04:56:29 +00:00
bwmott e08568a3d1 Restructured the Sound class to support the improved SoundSDL class.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@258 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-13 04:54:25 +00:00
bwmott f7d5d44594 Changed calls to the sound object so that the current CPU cycle is
passed when a TIA register is modified.  Also added code to stop a frame
once it reaches the maximum number of scanlines for the current TV
mode (i.e., PAL or NTSC).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@257 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-13 04:53:04 +00:00
bwmott 6af61c8b79 Modified the constant representing the 2600's CPU speed based on
information in the 2600 Field Service Manual


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@256 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-13 04:49:03 +00:00
stephena 4c15baa3b1 - Added Driving Controllers to the list of devices supported by the
Stelladaptor.

 - Thanks for Mark Grebe for this code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@255 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-06-04 12:22:12 +00:00
stephena c9f9448e77 Integrated the Settings/SettingsWin32 classes into the StellaX frontend.
That means I was able to ditch the ugly INI file code, and use the Settings
classes directly.  It also means I don't have to pass many options to Stella
commandline program through commandline arguments, since they'll already
be in the config file.

This is the beginning of fully integrating the Stella commandline program
with the StellaX GUI.  It won't happen for this release, but in later
releases these may become one program again.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@254 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-05-28 23:16:26 +00:00
stephena 6f9618a4da Removed dependency of Console from the Settings class. It didn't make
sense for the Settings class to have to depend on Console, especially
since I plan to use the Settings class in the Windows frontend.

Removed the snapshot filename code from the individual SettingsXXX classes,
since it was redundant.  Instead, added a ::fileExists() method, which
is the only thing that was really platform-specific about the code
anyway.

Linux and Windows ports have been updated.  The Mac port will have to be
updated to work with this.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@253 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-05-28 22:07:57 +00:00
stephena af928f7dad Made the Driving class actually refer to Driving Controller events
instead of joystick events.

This bug has been present in the codebase for over 3 years (at least).
Thanks to Mark Grebe for pointing it out.

This means that you will no longer be able to use a gamepad/joystick
for both joystick *and* driving controller events at the same time;
you'll have to map a particular device to either an internal Atari
joystick *or* an internal Atari Driving Controller.

This also means that the Driving Controller remapping now actually
works.  Previously, it didn't do anything.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@252 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-05-28 19:08:12 +00:00
stephena 1753bb8b48 Removed the event mapping of 'Escape' ==> 'Quit Emulation' for the MacOSX
port, since Mac users are accustomed to using Control-Q instead.

To any Mac users who are testing the code at this point; you'll have to
delete your Stella config file for this change to take effect.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@251 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-05-28 18:25:19 +00:00
stephena 2f1d07c207 Some more code cleanups for the StellaX frontend. The configuration
dialog actually works now without crashing the program.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@250 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-05-27 22:02:35 +00:00
stephena a0f6eaa4ff Start of updating the StellaX binary for use with the commandline
Stella program.  Right now it doesn't do anything, but at least it
compiles :)

Since most options can be toggled at run-time in the Stella binary,
and most of those changes are saved by Stella itself, I'm probably
not going to add many options to StellaX (only the ones that can't
be changed through Stella itself).  The next version will hopefully
have more configurable options.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@249 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-05-26 22:04:15 +00:00