Commit Graph

155 Commits

Author SHA1 Message Date
stephena 5e03d45bad Added native sound support for the SDL version. The SDL version no longer
requires the external stella-sound program.

Please test extensively.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@108 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-08-15 00:29:40 +00:00
bwmott 35fcaec0ff Added the F4 bankswitching method to the emulator. This is a 32K cartridge
with eight 4K banks.  Marble Craze (a new homebrew game) should work now.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@107 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-08-14 02:30:52 +00:00
stephena d34f42c679 Fixed state loading and saving. When a load failed on a previous attempt,
the next load would cause the program to abort.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@106 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-08-11 17:48:13 +00:00
stephena a6d330fa2c Removed "Experimental timing" as an option from the Makefile. Option is
now always compiled into the SDL and X11 versions.

Default is to use the CPU-intensive (normal) timing code.  The less CPU-
intensive timing can be selected with the commandline argument '-nohog', or
by setting 'nohog = 1' in the rc file.

Note that the nohog setting works much better in SDL vs. X11, since SDL_Delay()
seems to have a finer granularity than usleep().


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@105 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-08-04 00:28:18 +00:00
stephena 457b1edfab Some cleanups for compiling under gcc 3.x.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@104 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-08-03 22:52:39 +00:00
gunfight f313c951fb Check in of Cyberstella 1.2.1
- Completely removed the built-in games
- Renamed "Readme.txt" into "CyberstellaTodo.txt" and moved it into the root of the stella project.
- Added a few initilal Cyberstella informations to changes.txt. The WIN32 version now joins this log.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@103 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-16 11:18:08 +00:00
gunfight 9dfa788040 Check in of Cyberstella 1.2.1
- Completely removed the built-in games
- Renamed "Readme.txt" into "CyberstellaTodo.txt" and moved it into the root of the stella project.
- Added a few initilal Cyberstella informations to changes.txt. The WIN32 version now joins this log.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@102 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-16 10:08:18 +00:00
stephena 367738ecd2 Fully updated X11 and SDL versions to support state loading and saving.
Appropriate error messages are printed to the screen.

Changed location for rc and state files for X11 and SDL versions.
When Stella starts, it will create the directories '.stella' and
'.stella/state' under $HOME, if they don't already exist.

All state files will be placed in '$HOME/.stella/state'.  The locations
for the rc and properties file have also changed.  They are now
found in '$HOME/.stella/stellarc' and '$HOME/.stella/stella.pro'.

Changed shading of the screen when pause is pressed.  Now the colors
are set to 75% of normal, not 50% (as before).  I think this looks
better.  Also, shading is no longer performed in 8-bit modes, since
there weren't enough colors to do it anyway.

Made joystick code optional again in the X11 and SDL versions.  This
is in preparation for a code merge (in the SDL version) for the
Zaurus PDA.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@101 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-14 18:29:45 +00:00
stephena 73008e9290 Fully tested (I hope) almost all the Cartridge types wrt. state loading and
saving.

For now, CartE0 is still being tested, and CartMC has not been implemented at
all.  This is a problem right now, since I don't have access to an MC
cartridge image.

Other than that, all the other Cartridge types are working fine with every
ROM I've thrown at the current code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@100 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-14 15:22:28 +00:00
gunfight a6d9b330c3 Made Cyberstella compile with new serialisation classes added.
Changes I had to do where:
Adding #include "bspf.hxx" to the headers of the new classes.
Fixing a myriad of (in VC++ 6.0  illegal) uInt32 redefinitions


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@99 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-14 10:56:03 +00:00
gunfight db86e73896 - Made Cyberstella compiling without the built-in games for the moment
- Updated Todos in Cyberstella/ReadMe.txt
   Woah! 137 lines of ToDos! The fastest growing branch in the whole project! :-)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@98 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-14 10:16:14 +00:00
gunfight be59a66b2b To avoid probable GPL violations by including non-GPL games into this project, this function is currently disabled.
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
2002-05-14 09:46:11 +00:00
stephena b1df602401 Updated makefile and SDL port for state loading and saving.
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
2002-05-13 19:29:44 +00:00
stephena 8a51196556 Added state save and load methods to each class derived from Device.
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
2002-05-13 19:17:32 +00:00
stephena 158b91f98c These classes are used to provide a platform-independent way (I hope) to
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
2002-05-13 19:14:17 +00:00
stephena 3e3ca7d10e Added initial support for state loading and saving. The relevant methods
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
2002-05-13 19:10:25 +00:00
gunfight 2cafb1d3f0 Sorry Thomas :-)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@92 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-05-13 07:58:57 +00:00
gunfight 5a624b83a4 Added a large disclaimer, just in case and because the first guys seem to be ready to start trouble because of the included games.
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
2002-05-13 07:50:38 +00:00
gunfight b4e885bc4b Fixing various bugs I checked in 4 hours ago.
*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
2002-05-09 20:54:29 +00:00
gunfight 47ce58f23d Added safety bailout, when there's a "" coming
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
2002-05-09 16:58:04 +00:00
gunfight 9666fd6c2a C-Header representations of the following homebrew games:
- 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
2002-05-09 16:43:33 +00:00
gunfight 70ab28879f - Yeeeha! Finally tackled that damn No-ENTER problem!
- 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
2002-05-09 16:11:10 +00:00
gunfight 6fef5ab191 - Games play now when double-clicked in list
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
2002-04-30 09:20:20 +00:00
bwmott 312d234755 Updated with changes for the 1.2.1 DOS release
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@85 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-04-28 18:21:55 +00:00
bwmott 615ec63d0e Corrected a few errors in the manual:
(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
2002-04-28 18:14:21 +00:00
bwmott 1a4da780fb Fixed bug in keyboard interrupt code that caused the PAUSE key not to be
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
2002-04-28 18:06:56 +00:00
gunfight 3714e6308e Relocating Atari icon and adding a new one for Folders.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@81 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-04-25 13:59:08 +00:00
gunfight f4b9aca1d7 Adding sources for the new Listcontrol and removing now obsolete stuff for the old one
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@80 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-04-25 13:53:06 +00:00
gunfight efcb6fa969 Adding new browsing Listcontrol!
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@79 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-04-25 13:44:23 +00:00
bwmott 9fbb171a56 Initial commit of the User's Guide updated for release 1.2.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@77 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-04-22 01:45:08 +00:00
bwmott d3f61e292a Text files have been updated for the 1.2 release of Stella.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@76 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-04-22 01:38:16 +00:00
bwmott de62803eec A number of changes have been made to the DOS interface. Most of these
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
2002-04-22 01:31:22 +00:00
bwmott a6e2e72f66 Changed the BRK instruction so that the B flag is set before the status
register is pushed on the stack.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@74 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-04-22 01:08:51 +00:00
bwmott dfd5cd86bb Erik's latest version of the properties file (Apr 21 2002 8:24AM ET).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@73 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-04-22 00:56:48 +00:00
bwmott 9586b86626 Modified the DOS target so that it deletes the stella.exe right before
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
2002-04-22 00:53:19 +00:00
stephena 227b2178a7 Added basic message code to the TIA. Can be called with
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
2002-04-18 17:18:48 +00:00
bwmott 916abf9394 Several changes have been made to improve the TIA emulation:
* 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
2002-04-13 05:14:51 +00:00
stephena 056904a07b Fixed small memory leak as pointed out by Manuel Polik.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@69 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-04-12 21:53:02 +00:00
stephena e462ac656d Added (probably useless :>) screen tinting to the X11 and SDL versions.
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
2002-04-10 23:51:18 +00:00
bwmott ab1d10bf3a Changed the call to ifstream::read to cast the uInt8* image argument as
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
2002-04-10 04:09:59 +00:00
bwmott f9a2944f56 Changed the C++ standard library includes to use the ANSI/ISO standard
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
2002-04-10 04:07:39 +00:00
bwmott 1e94bb5a91 Modified the copy command which creates the final executable to use the
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
2002-04-10 04:00:58 +00:00
stephena 96de01ffb7 Fixed bug when using EXPERIMENTAL_TIMING would cause a compile error.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@64 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-04-09 16:06:28 +00:00
bwmott 62b7ae6038 A new BIOS has been added to the Supercharger emulation based on code
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
2002-04-05 02:18:23 +00:00
gunfight 5898941bf0 - Fixed bug with missing stella.pro file
- 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
2002-04-03 12:28:23 +00:00
gunfight dd36b9f23d Initial import of Cyberstella project.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@61 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-04-02 09:51:03 +00:00
stephena 46f5aaafd9 Due to some changes I made today, stella-sound would no longer quit when you
exited the emulator.  This is now fixed.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@60 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002-03-28 23:11:21 +00:00
stephena 47ed9dffc1 Removed absolute dependency on stella.pro file. If it isn't present in the
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
2002-03-28 18:20:35 +00:00
bwmott 3f9a204de1 Modified the palette setting code in the SDL and X11 setup code to use
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
2002-03-28 05:13:13 +00:00
bwmott c3aa637f8a Modified the TIA emulation so that it supports the PAL color loss
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
2002-03-28 05:10:17 +00:00