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