Commit Graph

1522 Commits

Author SHA1 Message Date
stephena 0f0625d9fe Cleaned up the SDL event gathering loop. It now almost exclusively
makes use of switch/case statements instead of the slower if/elseif
structure.  Hopefully this will fix event problems some users were
experiencing.

The Control or Alt button can actually now be used in event remapping.
Due to the old event handling, the Control key could be assigned to
an event but would never actually be usable.

Removed the option to remap the exit event (for now), since I haven't
figured out a way to remap it *back* to 'Escape' if that mapping is
ever removed.

Added beginning of support for Stella to automatically determine the
correct framerate based on ROM format type.  The final version of this
will probably wait until Stella 1.5.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@329 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-28 23:54:39 +00:00
stephena e060f52112 Added the Event::Quit event to the remapping menu. This was requested by
quite a few people.  The only problem is that if you ever erase the 'Escape'
mapping for Event::Quit, there's no way to add it back, since while in menu
remap mode, the Escape key is used to erase an entry.  It can't be assigned
to any event.  So if you erase it, you'll have to delete the stellarc/
stella.ini file.  I can see this generating quite a few questions ...

Reworked the sound code for PAL games.  Now they sound just as good as NTSC.
Still TODO is research the correct speed for playing PAL games, since 60 fps
seems too fast.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@328 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-22 01:54:08 +00:00
stephena 4c6eddb427 Removed 'replace' command from different sections of code. This allows
filenames to be saved exactly how they're present in the stella.pro file.

Originally I added it since some OS don't like spaces in filenames.  But
since there are also other weird characters in the names (like
parenthesis and # symbols), it doesn't make sense to only remove spaces.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@327 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-21 00:15:08 +00:00
stephena ec4ddd4994 Included a different SDL patch to enable Stelladaptor support. This one
is much less invasive and stands a better chance of being integrated into
the main SDL codebase.

This fixes a problem with Windows 98 users not being able to use Stella
(oops).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@326 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-21 00:07:50 +00:00
stephena cd1e2fb4dc Fixed a last-minute bug with StellaX not showing a game in the gamelist
if it didn't have an entry in the stella.pro file.

It never ends ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@325 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-17 19:34:01 +00:00
stephena 2ff215b543 Zipped the SDL patchfile, since committing it to CVS changed it,
and thus subsequent patch attempts would fail.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@324 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-15 21:50:41 +00:00
stephena 52a79c583a OK, this is really the last documentation update :)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@322 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-15 19:59:54 +00:00
stephena 46806969f3 Updated the documentation with a few last-minute changes.
That's it.  I'm off to make source and binary images for Linux and Windows.
If there are any more bugs (and I'm sure there are :), they'll be fixed in
Stella 1.4.1.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@321 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-15 19:37:10 +00:00
stephena 859a97579e Provided the correct name for the Mac OSX distribution.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@320 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-15 18:11:27 +00:00
stephena b05178d523 Added a patchfile against SDL-1.2.7 to let Stella see input devices
by actual name, instead of by driver name.  This is required for
automatic Stelladaptor detection.  Also added a README explaining
how to rebuild the SDL source to include this patch (required by GPL).

Since Linux, Mac, and other SDL variants work out of the box wrt
input device naming, I consider this an SDL/Windows bug, and this
patchfile is a workaround.  Hopefully, future versions of SDL will
incorporate the patch.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@319 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-15 18:08:55 +00:00
stephena e44e59cc13 Added new headers to all the .cxx and .hxx files with updated
copyright information.

Fixed the bug in StellaX where pressing the close button in the title
bar would not call the MainDlg::Quit() method (and hence not save
certain settings and free some memory).

Cleaned up the formatting of most of the source code, which was honestly
in such a sorry state that parts of it were difficult to read.

Got rid of CSimpleString class and references that were no longer used.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@318 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-15 03:03:27 +00:00
stephena 17e7653f34 Added some message boxes wrt the loading of the ROM cache file.
Various code cleanups.  I REALLY HATE Hungarian notation.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@317 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-15 00:11:07 +00:00
markgrebe 20408dcae0 Updated Mac documentation for keys
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@316 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-14 19:43:55 +00:00
stephena 909c72b1d5 Updated the makefile for default builds.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@315 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-14 16:49:45 +00:00
stephena af074fe330 Removed old code that wasn't being used.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@314 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-14 16:15:06 +00:00
stephena a18f034095 Updated a FIXME in this file, now that I actually know what the OSX
distribution is called.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@313 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-14 16:13:36 +00:00
markgrebe 21cd37170b Added missing developer keys for height and width
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@312 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-14 06:54:53 +00:00
markgrebe db2cfb8963 Finished Mac doc changes
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@311 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-14 06:53:27 +00:00
markgrebe dd4a6a17aa Update for core changes
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@310 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-14 05:31:51 +00:00
markgrebe a267454d2f Partial update of Mac port documentation
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@309 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-14 05:30:28 +00:00
stephena daf64396d6 Updates across the board wrt the manual and release files, etc. It looks
like the next release will be on July 17 (or I'll have to edit all these
files again).

Ran the various PNG images through pngcrush, which squeezed them
down a little.  Every little bit helps.

Included the latest version of my personal stella.pro file.  It seems that
the original maintainer for this file has gone MIA, so I guess that's
*yet another* thing I'll be maintaining ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@308 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-13 01:09:50 +00:00
stephena 8876c9878b Fixed -listrominfo output; it wasn't outputting manufacturer (typo).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@307 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-12 04:05:03 +00:00
stephena d246f9f3f4 Bumped the version number from 1.4_cvs to 1.4. You know a release is
close when that happens ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@306 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-12 02:26:57 +00:00
stephena 9faebe5d59 Updated the Stella manual for Windows and reorganized things a little.
All that's left is the inclusion of Mac OSX specific information.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@305 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-12 02:24:25 +00:00
stephena 1a82add67b Added the ability to sort (in alphabetical order) by Name, Manufacturer
or Rarity columns in the game listview.  The currently selected sort column
is also saved, and then used when StellaX starts again.

The current width of columns is also saved, and reused when StellaX starts
again.

Still TODO is get the titlebar close button to 'hook' into the
MainDlg::Quit() method, so that it works the same way as pressing
the 'Exit' button or pressing 'Alt-F4'.  Right now, pressing the close
button in the titlebar bypasses the Quit() method, and AFAICT also
the freeing of any memory.  This bug seems to have been present in StellaX
since the beginning.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@304 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-11 22:04:22 +00:00
stephena eda901519b Removed the old Windows frontend code. Most of it has serious bit-rot
anyway, and some of it has been in an uncompilable state for almost
4 years!

All future Windows development will be on the StellaX GUI, and even
that may eventually disappear if the same functionality is integrated
into Stella itself.

So, for any Windows developers reading this, all Win32 development
occurs in the src/win32 directory.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@303 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-11 21:55:32 +00:00
stephena 1859b80f16 Removed the included files, since I figured out that they're regenerated
by VC7 anyway.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@302 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-11 03:16:59 +00:00
stephena b26087f2ba Added ability to configure more stuff to the Config Page. This is all
I'm adding to it, since the other options can be toggled within the emulation.

All I have to figure out is how to fix scrolling down in a integer-box making
the number get bigger.  It's a confirmed bug, and the VC++ docs say that
it's counterintuitive but that's the way it works.  Damn, I really hate Windows.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@301 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2004-07-11 03:13:24 +00:00
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