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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
- 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
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
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
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
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
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
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
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
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
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
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