Commit Graph

655 Commits

Author SHA1 Message Date
markgrebe 6b47658483 Main loop code moved to core modules
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@464 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-04 02:11:38 +00:00
stephena 0e0b225122 First pass at the debugger dialog box. Right now, it contains 6 tabs:
Prompt:  will have a command prompt with history
CPU:  contents of CPU registers
RAM:  contents of RAM
ROM:  contents of ROM
TIA:  contents of TIA registers
Code:  code listing/disassembly (still have to figure this one out)

Still TODO is work out the overall functionality of the debugger.  Inspecting
or changing registers is easy.  The hard part is adding features that
developers will actually use.

Also TODO is figure out what will go in the upper-right corner; maybe
buttons to pause, step, etc.

Finally, do we really need separate tabs at all?  I can add full functionality
of a debugger through the prompt commandline with a parser ... ??


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@463 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-03 17:52:06 +00:00
markgrebe 39fe5c8c04 Added Save Properties and Merge Properties to Menu Items in Mac version
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@462 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-03 06:00:22 +00:00
markgrebe 3408b439fd Fixed type in added menus for developer xstart keys
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@461 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-03 05:30:21 +00:00
markgrebe cd4efb7a36 Added Mac Menus for key insertion events back in
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@460 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-03 05:21:01 +00:00
markgrebe 9ac5d2a4d2 Added Mac Menus for key insertion events back in
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@459 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-03 05:05:05 +00:00
stephena b4de09b4f8 Made Stella compile again in MingW. It was apparently a problem with namespaces.
It seems parts of Stella aren't namespace-clean.

Fixed OSX code to use Cmd-Enter for fullscreen (instead of Shift-Cmd Enter).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@458 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-02 21:37:33 +00:00
stephena 57246c69a9 Fixed regression whereby the overlay images were appearing when a snapshot
was taken.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@457 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-31 17:57:50 +00:00
stephena e6e91f3522 Made sure aspect ratio is taken into account when checking for maximum size
of SDL screen.

Still TODO is change OpenGL mode so that aspect ratio and non-integral scaling
are not used when in debugger or launcher mode (ie, when we know the absolute
coordinates of the screen).  We do this since those modes are mostly GUI-based,
and the GUI doesn't look quite right when using OpenGL scaling.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@456 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-30 16:25:47 +00:00
stephena 298c6f2456 Updated Windows port with latest core changes. Except now, the thing
compiles in Visual Studio and not MingW.

Words can't express how much I hate Windows development, and I'm
_THIS CLOSE_ to just making Visual C++ .Net an absolute requirement
and be done with it.  End of rant :_


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@455 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-29 18:54:28 +00:00
stephena 1dc74f75e9 Made sure that dirty-updates are being done correctly wrt overlays.
Fixed bug where sometimes the options menu wasn't being redrawn when
resizing the screen.

Fixed bug where saving the settings in VideoDialog sometimes made the
framerate go to 0, and hence caused the application to take all CPU time.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@454 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-29 16:09:21 +00:00
stephena 5c1775d45c Removed 'mergeprops' commandline argument.
Added Alt-s key to merge current properties into stella.pro.  Together with
the Ctrl-s key which saves current properties to a new properties file,
there was no longer any need for the mergeprops argument.

Major update of the Stella manual, including the further consolidation
of the main codebase with the OSX version, as well as snapshots of the
integrated GUI.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@453 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 23:57:10 +00:00
markgrebe 9e5a330700 Fixed an issue with Mac specific code in EventHandler. Keypresses were being processed for both Key down and Key up events, when they should have been Key down only. I added the && state to the if statements
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@452 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 22:10:43 +00:00
markgrebe 57979ea033 Added handling of Cmd-h, Cmd-m, and Cmd-? back into Macintosh version, as these are standard Mac OS Key shortcuts
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@451 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 21:50:07 +00:00
markgrebe ce294522a7 Changes to allow for command line execution of Stella on the Macintosh
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@450 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 21:06:41 +00:00
stephena 6706fb41f7 Reworked FrameBuffer::update() and FrameBuffer::refresh(). Sometimes the
mediasource and overlay need to redrawn independently of each other.

Added mouse and joystick events passing to the debugger.

Fixed bug whereby if a settings file didn't exist, the default mapping
for a joystick wasn't being done.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@449 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 17:25:41 +00:00
markgrebe 9887210759 Changed compiler to gcc4, and changed version string to 2.0 Alpha
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@448 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 01:37:05 +00:00
markgrebe 1fc5fa9ac2 Added ability for user to open ROM by dropping it on running application's Icon in dock.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@447 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 01:29:29 +00:00
markgrebe e5ea2f99be Added Mac Specific Classes
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@446 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 01:28:36 +00:00
markgrebe cf8b71bb25 Made theOSystem global so that the Mac OS specific object can call the createConsole method to open a cartridge from the user droping a file on the running icon.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@445 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 01:23:54 +00:00
stephena 8a0432af80 And so it begins ... Very rudimentary support for the integrated debugger
has started.  The debugger can only be launched when in emulation mode, and
is toggled by the ` (backquote) key.  Right now, I'm still fine-tuning the
infrastructure.  When you press `, the SDL window resizes itself to 510x382
pixels (large enough at single zoom for 800x600 and under, and at double
zoom for 1024x768 and above).  The emulation is moved to the upper left
corner, and the remaining space will be filled with debugger widgets (making
extensive use of the TabWidget to squeeze as much as possible into the
limited screen real-estate).  It's my intention for at least _minimal_
debugger functionality to be included in the next release.

Removed 10% gap around framebuffer in fullscreen OpenGL mode.  I'm moving
Stella towards a totally unified codebase, so if a feature can't be added
to both types of framebuffers, it won't be added at all.  The one exception
is gl_aspect; I still want to keep that one around.  And I eventually may
add aspect correction to the software mode as well, ala ScummVM.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@444 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-27 18:00:49 +00:00
markgrebe ec27cb2b1c Initial checkin of Mac project for working with new version of Stella
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@443 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-27 17:13:23 +00:00
markgrebe 6dc0465d35 Added required MAC OSX specific code for interface between objective-c and c++
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@442 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-27 17:09:26 +00:00
markgrebe dbfda0f59b Fixed type in MacOSX specific code
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@441 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-27 17:05:44 +00:00
stephena 1017bd3222 Changed some FIXME's to TODO's, since they probably won't be done for the
next release.

Added support for inspecting the modification time of the rom directory,
and forcing a reload if that directory has been changed.  So, if you add
or delete a ROM from the romdir, the next time you start Stella, it will
automatically reload the rom listing for you.  Pretty cool I think :)

Added support for each derived OSystem to set its video drivers, and support
to the VideoDialog to show them in a dropdown menu.  That means that Win32
users will be able to select between 'windib' and 'directx' in the VideoDialog
(when I update the Win32 code to do so).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@440 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-26 18:56:58 +00:00
stephena 9722d7f554 Added continuous key event support to the DialogContainer. That means
one can hold down a key, and after a small delay, the key event will be
repeated.  This is much better than having to push the 'down arrow' 100
times in a large scroll box.  Still TODO is handle mouse clicks in the same
way.  The code is there, but it's commented out.  This will be much harder,
since the GUI code from ScummVM wasn't designed to work that way.

Removed x,y items when sending joystick events, since that information
isn't available in SDL joystick motion.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@439 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-26 15:43:44 +00:00
stephena 46f3e463d9 Re-added joystick support.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@438 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-25 23:22:11 +00:00
stephena 6d53a85e58 Removed the filesystem-related methods (fileExists and mkdir) from OSystem
class into the FSNode class, since that's where all the other filesystem
stuff is.

Add OSX modifiers for event loop.  So Control in Linux/Win32 becomes
Command, and Alt becomes Shift-Command.  No doubt this will cause some
problems with weird key combinations in OSX, but we'll have to work around
them.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@437 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-25 17:17:38 +00:00
stephena fe67d725df A slight reworking of the INTTYPES stuff. If Stella is built using the
makefile, it's obviously using a UNIX/Posix build environment.  And since
inttypes.h is always available under Posix, the #define for HAVE_INTTYPES
can always be used.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@436 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-21 19:55:17 +00:00
stephena 2df00cd64b Fixed inttypes support so that Stella compiles in Visual C+ .Net (which
is currently the lowest supported version of Visual Studio that Stella
can be compiled in).  It seems that VS.Net already knows about the
inttypes, so an explicit 'include <inttypes.h>' isn't required.  However,
when compiling under MingW, the include *is* required.

MingW is still the preferred environment for compiling Stella though, as
VS.Net doesn't read the SDL environment variables.  So if you're working
on Stella, feel free to use VS.Net (as long as you don't use anything
specific to that environment).  But all binary releases of Stella will use
MingW, and code that doesn't work in MingW will be reworked/removed.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@435 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-21 19:35:59 +00:00
stephena 0572e86e9e My first attempt at compiling Stella under an x86_64 system with gcc 4.0.
System is Fedore Core 4 test 3.  There were surprisingly few issues,
considering I've never used 64bit mode before.  Thanks to Brian Watson
for initially pointing out potential problems.

Fixed some 32/64 bit pointer to int problems.  Fixed some C++ warnings,
since gcc 4.0 is much stricter about that type of thing.

Made the GUI scrollbar move two lines at a time when using the mouse
scrollwheel.

Now I have to see if this broke anything in 32bit mode.  Note that sound
is a bit scratchy under this distro, and seeing how it's on the same
hardware (as the 32bit development box) I don't know what could be happening.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@434 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-21 16:12:13 +00:00
stephena 628a1e53ab Fixed problem with OpenGL in 24/32-bit color modes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@433 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-19 19:43:38 +00:00
stephena 0a7a36bede Finally got Win32 port working again. Still TODO is contact the OSX
maintainer and see how hard it will be to update that port.

I just found some problems in the OpenGL code in Win32; the colors are
off.  I don't know if it's a Win32 thing, or it affects all ports.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@432 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-19 18:42:39 +00:00
stephena 891ad6f7fe Forgot to add FSNode for Win32.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@431 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-19 13:52:55 +00:00
stephena 6f68c3b20e Second pass at getting Windows version to compile.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@430 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-18 22:54:02 +00:00
stephena 69c0767fa2 Some minor code refactoring, and first pass at getting Windows version to
compile.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@429 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-18 22:35:37 +00:00
stephena fa9786253d Scratch another most-requested feature of the list.
Just added support for zipped ROMs.  Right now, it assumes that the
first file in a zipped archive is the ROM (if it's a multi-file archive).
I thinks that's the way I'll leave it, since otherwise I need another way
to determine which one is the ROM, and that means looking at extensions
or something (which is something I *don't* want to do).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@428 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-18 16:02:53 +00:00
stephena 61d3922e70 Added a ProgressDialog class, which shows a sliderwidget that represents the
progress of some activity.

Some additions to the LauncherDialog.  When populating the ROM list by
directly examining the ROM files, it now uses a ProgressDialog to show
the current status (since this operation sometimes take a long time).

The last selected ROM is now re-selected when starting Stella.

Some minor code refactoring to take into account zipped ROM support
(yes, its coming soon).

Re-added paddle support.  Still TODO is tweak the sensitivity of mouse
movements.  Also still TODO is re-add joystick support.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@427 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-17 18:42:23 +00:00
stephena e12d010c45 Added a Dialog::reset() method, which basically makes sure that any
dialog boxes are in a known, closed state.  Simply calling Dialog::close()
on those dialog boxes *should* have done the trick, but it occasionally
results in a segfault.  My code doesn't ;)  It's probably a hack, but
it's a small and necessary one at this point.  When I eventually run Stella
through Valgrind, I'll probably find the segfault is caused by a dangling
pointer or something ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@426 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-16 15:37:30 +00:00
stephena 9c557fb016 Decided not to add a MiscDialog box, since there weren't really any options
to add to it.

Reworked the EventMappingDialog to take up less screen real-estate, and added
the "Mouse is paddle x" option there (since technically it's also a mapping).

Added an 'emphasized' text color to the list of available GUI colors, and
made some text in the EventMappingDialog use that color.

Added AboutDialog, which lists info such as version of Stella, supported
features, list of developers and contributors, and thanks to certain groups.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@425 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-16 00:02:32 +00:00
stephena addac558c1 Fixed ordering of OK/Cancel buttons for OSX vs. Linux/Windows.
Added better sanity checks to file browser dialog through FSNode.  It now
checks if a user-specified directory name is correct, and if not, it uses
a valid default. Still TODO is add similar checks to the Win32 FSNode.

Totally finished the LauncherOptionsDialog.  You can now change Snapshot
settings there as well.

Fixed potential memory leak in PopUpWidget.  It was needlessly creating
and destroying PopUpDialog objects, and under certain circumstances the
objects were never deleted.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@424 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-14 03:26:29 +00:00
stephena 8bed0dfc75 Added TabWidget and modified LauncherDialog to use it.
Changed many conflicting instances (in overloaded methods) of uInt32, uInt16,
Int32 and Int16 to just plain 'int'.  After spending two hours trying to find
out why a method wasn't being called, only to see it was because of conflicting
definitions of 'int', I said to hell with it and removed all instances of
those portability functions from the GUI stuff (thank Brian for the advice).

Eventually, they'll be removed from the whole codebase.  Already we're running
into problems with them on 64-bit machines.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@423 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-13 18:28:06 +00:00
stephena fc8240239a Beginning work on the options dialog box for the launcher dialog.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@422 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-13 01:03:27 +00:00
stephena 0567bb6d94 Fixed some 32->64 bit bugs; many more fixes are coming (thanks to B. Watson).
Added commandline options to change almost all properties of a ROM.  Very
useful for developers who constantly change these features but don't want
to re-generate a new stella.pro entry each time.  Thanks again to B. Watson
for original idea and partial implementation.

Fixed problem with events getting 'stuck' when changing states.  For
example, one could be playing a game and, while pressing "Left", exit
the game.  Then, when another game is started, the left direction would
still be selected.  This is a side-effect of Stella initially being a
"one game per launch" application.

For similar reasons as the previous step, fixed problem whereby a
messagebox seen just before ending one game was showing up in the next
game as well.  Still TODO is make sure the sound buffer is cleared
before each new game (sometimes you can hear some sounds from a
previous game).

Further tweaked the '-framerate' commandline argument to override the
defaults when used, but never be saved to the settings file.

Renamed '-altpro' commandline argument back to '-pro', and moved it into
the DEVELOPER_SUPPORT area.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@421 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-12 18:45:21 +00:00
stephena bc40ce9ad4 Fixed huge memory leak in when contructing the gamelist.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@420 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-11 23:06:52 +00:00
stephena 468f680725 Made LauncherDialog look for a system-specific gamelist cache file.
Modified the framerate argument, in that it can only be changed from the
integrated GUI, and only for the current game.  The framerate is now
properly set when starting a new game, or when switching between NTSC/PAL
mode, and is based on the ROM format.  The ability to change the framerate
may disappear entirely before the next release (I see no real need for it
anymore).

Some minor code cleanups.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@419 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-11 19:36:00 +00:00
stephena ee742cb0a3 Made the game listview show the actual game names (from the stella.pro file).
Added ability to cache the reading of ROM info, since it can take up to
30 seconds on slower systems.  If such a cache file exists, the display
of ROM info normally takes a few seconds or less.  I plan to add a progress
dialog box for the first case, since even on an Athlon64 3200+, it can still
take almost 10 seconds.  Fortunately, this won't happen very often (only
when you change ROM directories, or do a reload to detect a new game).

Still TODO is add support to FSNode to determine last access time of a
directory.  Then, if the ROM dir has been changed since we last ran Stella,
the program will 'see' that and automatically do a full reload (just like
KStella).  Neat, eh? :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@418 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-11 01:44:39 +00:00
stephena 781f8b8d2e Implemented BrowserDialog functionality. That means we can now browse
for the correct ROM folder, and the folders contents will be shown in the
listview.

Still TODO is modify GameList so that it contains all relevant info for
a ROM.  Then, the listview will contain the actual names of the ROMS
(as specified in stella.pro) instead of their on-disk filenames.  And at
that point, we can actually start a game directly from that listview.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@417 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-10 19:20:45 +00:00
stephena 011588bbb1 Added 'Note' textwidget to the launcher window. It's not yet active, but
eventually it will show any associated notes for the currently selected
ROM (like StellaX frontend).

Resized the launcher window to a more reasonable size of 320x240, instead
of 400x300.  All the extra space was just wasted.  Maybe sometime in the
future I'll make the window look more 'Atari like', with graphics, etc.
For now, just a list of game names will do.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@416 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-10 01:12:59 +00:00
stephena 7deea3a6a6 Added first pass of filesystem handling. We can now see a listing in the
launcher window, and double-clicking on a listed file will start that ROM.

Some optimizations WRT launcher stuff.  Specifically, it was not necessary
to delete and re-create the launcher dialog all the time.

It's all starting to come together ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@415 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-09 18:58:19 +00:00