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
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
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
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
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
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
*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
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
- 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
- Added a Tooltip for the Play button as requested by Thomas :-)
- Items are now sorted even when stella.pro is missing.
-Aded a warning message when stella.pro is missing.
- Display states are updated: Now correct path and # games are shown.
- Built in Gunfight, Thrust, Jammed & Qb with permission from their authors.
- The usual minor changes here and there...
- updated Cyberstella readme.txt with tons of feature requests and todos...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@87 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Hi there!
Check Cyberstella/ReadMe.txt for my current ToDo list.
Feel free to add/edit/remove/suggest :-)
When the *urgent* stuff is done, Cyberstella is ready to be released.
Main problem at the moment is: Window does neither send me the
ItemActivate message when ENTER is pressed, nor do WM_KEYDOWN
messages come through when the ENTER key is pressed. Hm...
Any ideas appreciated... :-)
(Not really a bug, as you can start games via menu, toolbar and
direct doubleclick now, but it should do on ENTER too, I'd say...)
Greetings,
Manuel
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@86 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
(1) Indicated that the pause function was added to the DOS version
as well
(2) Fixed the statement regarding what happens if a stella.pro file
isn't found
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@84 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
recognized correctly. Also removed some race-conditions which may have
been causing the application to lockup when the PAUSE key was pressed.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@82 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
are ports of functionality found in the X11 and SDL versions. Also a few
improvements have been made. The changes are:
- Pause feature is supported by pressing the pause button on the keyboard
- Status messages are displayed when the color mode or difficulty settings
are changed
- Added the '-showinfo' command line option to display information about
the game when the program exists
- Added '-pro <props file>' command line option so the user can specify
which properties file to load
- Display timing code was changed to use the constant UCLOCKS_PER_SEC
instead of 1000000
- Code which sets up ModeX was changed to fix problems with some video cards
- Finished the update display code for ModeX so that it works if near
pointers are not available
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@75 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
it creates the new one. The copy command that follows the delete was
not working if the executable already existed.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@72 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
MediaSource.showMessage(string& message uInt32 duration), where duration is the
number of frames to display the message.
All messages are converted to upper case, since the fonts are very limited.
Fonts exist for A..Z and 0..9 only. Some fonts are not the clearest, but its
the best I can do with only 4-pixel widths :) Besides, they have an 'Atari'
look.
Updated the SDL and X11 versions to print messages under the following
conditions:
1) switching color modes (BW or color)
2) setting left and right difficulty for controllers
3) state loading/saving/changing (see below for this one)
Added methods that form the beginning of state loading and saving. This
functionality is NOT currently present, and won't be for the 1.2 release. The
methods added are for state saving, state slot changing, and state loading, and
are tied to function keys F9, F10, F11, respectively. For now, they don't
actually do anything :)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@71 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
* If the playfield priority bit and score bit are set in CTRLPF then
the score bit is ignored (this fixed a display problem in Pole
Position where the MPH gauge was displayed as white instead of red)
* Modified the HMOVE blank code so that collision detection works
during the HMOVE blanks. This should allow Fatal Run to work
correctly, however, the stella.pro file has to be updated to
display the all 160 pixels.
* Added "positioning hacks" to fix display problems with Dolphin,
Pitfall II, Decathlon, Robot Tank, and Hole Hunter.
* Changed the delays associated with poking RESM0, RESM1, and RESBL
to 8 clocks to fix the display problem with Polaris.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@70 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Now when you press pause, the screen colors are tinted by half. Probably
not very useful, but I saw it in other emulators and liked the look of it.
Various cleanups to X11 and SDL code, such as initially setting pointers
to NULL, etc.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@68 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
a char* since GCC 3.0.x doesn't seem to like it as a uInt8*.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@67 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
for accessing them. This should allow the core to be compiled without
any special defines for C++ compilers based on the standard. For older
compilers BSPF_OLD_STYLE_CXX_HEADERS will need to be defined for
complication to work.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@66 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
DJGPP environment variable instead of assuming DJGPP is installed on the
current drive.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@65 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
from Eckhard Stolberg. This version simulates the progress bar and
leaves the TIA in a state more like the real thing. This fixes some
display problems with games (e.g., Mindmaster). In addtion, the bank
switching and RAM writing emulation has been improved.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@63 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
- Cleaned up Toolbar & Menubar
- Moved Play Button into Toolbar & Menubar
- Moved Options Button into Menubar
- Moved all contents of StellaXMain into CyberstellaView and subsequently
removed the StellaXMain files from the project. This was done in order
to simplify the commando-chain for executing screenshots, pause/unpause
as well as a future windowed/fullscreen switch.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@62 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
expected locations, then Stella will use built-in generic defaults.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@59 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the entire 256 entry palette returned from the TIA instead of looking
at only the even numbered entries. This was required since the PAL
color loss code uses all 256 entries in the palette.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@58 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
effect. Color loss occurs when the previous frame contains an odd
number of scanlines.
The color loss effect is implemented using an idea from Eckhard
Stolberg: "I thought you could have each colour twice in the palette.
In the PAL palette the second colour would only be a shade of
grey. Then when something gets written to the TIA colour registers,
you could set bit0 of the colour according to bit0 of the
scanline counter for the last frame. That way an odd number of lines
would select the grey tones, while an even number would select the
normal colours."
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@57 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
argument the number of CPU cycles elapsed since the last TIA sound update.
The default implementation of this method invokes the old set method for
backwards compatibility with derived classes.
This new set method will be used in the 1.3 release to improve the quality
of the sound emulation (e.g., to support games like Pitfall II which update
the sound registers many times during a frame).
The TIA class was updated to invoke the new set method of the Sound class.
Finally, the TIA pauseState data member was renamed to myPauseState to be
consistent with the other data members.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@55 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
from an INI file or commandline to this new class.
Now the reading of commandline options or from INI files can be used by any
frontend that uses this class.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@51 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
to use the emulator without hogging the CPU. Usage on most machines I've
tested is around 1% - 2%, versus the 100% that was used before.
SDL version seems to like this new code better. I think that usleep is
causing some problems in the X11 version. I'd appreciate some feedback
on this. Maybe I'll change to select or something.
There is a slight skip in framerate that can't be avoided unfortunately.
You may not even notice it. Sound may be slightly different as well. In
my opinion, this is a good tradeoff for basically reducing CPU usage to nil.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@50 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
versions for now, but can easily be used in other ports. Press the PAUSE button
to activate and deactivate.
It is started by calling Console.mediaSource().pause(bool state), where state
is either true or false and will enable/disable the pause, respectively.
When pause is enabled, a mute is sent to the Sound device, so other ports must
have coded this Sound::mute method. While pause is on, all calls to
Console.mediaSource().update() will do nothing. Only by calling pause() again
can the emulator proceed.
Other ports will probably require a minor rewrite of their main loop, since
the calculation of frames per second will now have to be done differently.
Previously, FPS was based on the time entering the main loop and the time
leaving. This difference was the total time used in calculating FPS.
Now, since pause can be on for an indefinite amount of time, the total time must
be incremented *per frame* instead of over the whole loop. Similarly, the total
number of frames drawn is no longer how many times you pass through the loop, but
how many times you pass through the loop *while not paused*.
See ui/sdl/mainSDL.cxx or ui/x11/mainX11.cxx for more info.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@47 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
deleted.
Barring any major bugs or memory leaks, this will be my last release for
the next major version (Stella 1.2).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@46 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba