Commit Graph

1414 Commits

Author SHA1 Message Date
stephena 7f3a2781d7 Some tweaks to the RomInfoWidget snapshot size, and upped maximum size of
the launcher to 1920x1200.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1432 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-15 19:11:02 +00:00
stephena 7e0314a9c2 Finalized 'ROM audit' functionality. Still TODO is test in Windows and OSX.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1431 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-14 23:52:17 +00:00
stephena ea4305760b More work on the ROM audit functionality.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1430 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-14 19:34:57 +00:00
stephena bea44bafff Initial UI code for the new 'ROM Audit' functionality. Basically, one
will be able to select a ROM directory to scan, and have all files
identified as a ROM (by extension) renamed according to their properties
name.  This will create ROMs with 'pretty names', and takes the place
of the previously removed 'non-browse' mode.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1429 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-14 15:23:24 +00:00
stephena b6598c1d9b Fixed 'rom info viewer' mode, and added a checkbox to 'UI Settings' to
enable/disable it.  Currently, you have to exit and restart the program
for this to take effect.

Fixed issues with resizing and toggling video renderers and the
image not being updated correctly.  Also, saving a snapshot within
emulation mode and exiting to launcher mode now shows the new
snapshot.

Currently, the rom info viewer only works with PNG images 320x250 or
less (ie, 1x zoom mode in Stella).  If the image is bigger, a message
is displayed stating that fact.  At some point I have to add another
snapshot mode where it always saves in 1x mode (or maybe not; it
depends on how many people will want to save snapshots for viewing in
the rom info viewer).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1428 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-13 22:58:07 +00:00
stephena 90dce82289 Fixed 'Game Info' button in Options Dialog to only be shown when a valid
ROM has been selected in the ROM launcher (or if we're in emulation mode).

BTW, I forgot to mention in the previous commit that Stella now only
recognizes ROMs if they're named with the following extensions: .bin,
.a26, .rom, .zip, .gz (not case sensitive).  Right now, attempting to
select something else prints an error message.  Eventually, a MessageBox
will be shown indicating that the filename isn't valid.

For now, this restriction is only for files started from the built-in
launcher.  I haven't decided if it should apply to the commandline as well.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1427 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-12 22:04:53 +00:00
stephena 3b32d07c1d Removed 'non-browse' mode in the ROM launcher, this time for good. I
actually removed it from 2.4.1, and re-added it in 2.4.2.  But I think
I've figured out a way to get the best of both worlds, and only have
one browsing mode.  This will become clearer once I finish the ROM
auditing feature.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1426 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-12 19:42:36 +00:00
stephena cb0b5ae1ee Upon advice from Eckhard, changed the default location of the Stella
config folder to "My Documents\Stella".  Note that 'My Documents' will
mean different locations in different versions of Windows.  But the
user shouldn't have to worry about that, since the 'Stella' folder will
be in whatever 'My Documents' is on your system :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1425 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-09 20:38:44 +00:00
stephena 1d10a63af6 Made Win32 port use %USERPROFILE%\Stella as the base folder for the various
config files and the state folder.  This is more in line with the Linux and
OSX ports, which have a pre-defined basedir folder ($HOME/.stella).  This
also makes Stella behave better with limited accounts in Windows, since
writes are no longer done to the app folder.

Since the Win32 port didn't work this way before, many people may
require the old behaviour.  In this case, one may create a file named
'disable_profiles.txt' in the app folder to restore the old behaviour.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1424 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-09 17:52:40 +00:00
stephena 8e499bcf59 Oops, forgot to remove some debugging stuff from configure.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1423 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-09 15:32:09 +00:00
stephena 2cc674a0f7 Removed more unused cruft from the UNIX build scripts, and reorganized
things a little (I hope I didn't break the recent GP2X changes).

Removed more PSP stuff, since that port is no longer maintained in this
codebase, but by someone else externally.

Building the 'win32dist' target is now tailored to a Linux environment,
and now properly converts text files and zips up the result
automatically.  So automated building just became that much closer ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1422 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-09 15:30:27 +00:00
stephena 8e76c31e4c Added cross-compile support for Win32 from Linux using MinGW. This is
accessed using a new 'host' type in configure (mingw32-cross).  For
my system, the command would be as follows:

configure --host=mingw32-cross
          --with-sdl-prefix=/home/stephena/.mingw/usr/i386-mingw32msvc

This allows you to compile the Windows version in Linux, which is my
main development platform.  It will also allow me to get the automated
build page working again :)

Removed all NASM checking from the config scripts, since we're never
going to use it (it goes against the philosophy of Stella compiling
everywhere).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1421 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-09 14:17:03 +00:00
stephena 157b723502 Updated Win32 Visual Studio project for recent X07 cart support. Also fixed project files in debug compilation mode for both Win32 and x64 support. These haven't been working in a *long* time. Note that if you're using Visual Studio, the required zlib files are now zlibwapi, which can be downloaded from the main zlib webpage.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1420 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-08 23:34:24 +00:00
stephena bc272789ba Updated Win32 Visual Studio project for x86_64 support.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1419 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-08 13:22:12 +00:00
stephena f1eb370637 Added '-tiafloat' boolean commandline argument, which defaults to 1/true.
This ties into the TIA floating pin on read logic that Eckhard recently added.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1418 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-03 18:54:51 +00:00
estolberg 9e8e2fac6c Started to add support for optionally playing games on 'CMOS EPROM'. When the game is stored on a CMOS EPROM, the six unused bits in TIA reads will not be floating freely. Instead they all will be pulled high. Programmers might use this to help finding the commom problem where they intend to read an immediate value, but are reading from zero-page instead, because they forgot the '#'.
To test this feature set 'myFloatTIAOutputPins' to 'false' in TIA::reset() and play the old version of Reindeer Rescue where you can see how Santa gets stuck in the background.

TODO: add a command line switch to control this feature. Steve can you help?


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1417 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-03 17:51:55 +00:00
estolberg 9e23fa3c72 Fixed a bug that was preventing driving controllers on the Stelladaptor to coexist peacefully with other PC inputs. Also corrected the driving controller movement drection for the Stelladaptor.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1416 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-03 16:27:16 +00:00
stephena 3fde38a1b0 Fixed crash when toggling software and OpenGL mode with a Stelladaptor
plugged in.  It seems SDL sends button events for buttons 2, 3, 4, 5
in this case, which really doesn't make sense; a Stelladaptor can only
have two buttons.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1415 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-03 16:14:50 +00:00
stephena 6f2f1da0f9 Added '-bs' commandline argument, which does the same thing as '-type'
(sets the bankswitch type).  I'm leaving the '-type' there as well,
just in case there are people (or frontends) that depend on it.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1414 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-03 14:53:34 +00:00
stephena 0550990c59 Added one setting to change the speed for all digital paddle emulation
movement, named 'pspeed'.  This replaces the 4 'pXspeed' commandline
arguments.  Also removed 'pthresh', since it no longer serves any purpose.

Updated UI to change this setting dynamically from within Stella.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1413 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-02 20:48:51 +00:00
stephena 9dd3582a86 Large number of changes related to controller input and handling.
Moved a lot of the code into the respective Controller classes, in the
process cleaning up the EventHandler (which was starting to get a little
unwieldy).

I've borrowed some code and ideas from z26, but also improved on it as
well:

1)  Stelladaptor devices now send their events directly to a
controller class, allowing for any Stelladaptor device to emulate
a controller (to the limits of the input device, of course).

2)  Hopefully fixed Stelladaptor driving controller support.  Eckhard,
could you test this, since I don't have any of those myself?

3)  Improved interaction with different input devices.  For example,
a Stelladaptor, mouse, joystick (digital and/or analog axis), and
the keyboard can now simulate paddle events at the same time.  So it
shouldn't matter what input devices you have plugged in; things should
'just work'.  In the case of Stelladaptor paddles, you may have to
'zero' them by turning completely left, however.

4)  Related to (3), changed mouse events to use relative motion.  This
should fix the issues with paddle emulation/movement behaving
differently based on the window size.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1412 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-03-02 19:20:50 +00:00
stephena c51a8368da After long delay, finally added 0840 ECONObanking support. Still TODO
is add autodetection for this type.

Changed number of carts defined in GameInfoDialog to a constant, so we
only have to update it in one place.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1411 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-02-27 20:13:55 +00:00
stephena 897e05d58a Made the SUPERbank bankswitching code a little easier to follow, and
fixed a bug in the startup bank.  According to the documentation, it
should always start in the last bank.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1410 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-02-27 17:02:06 +00:00
stephena 6baa7c8311 Updated Xcode project for recently added X07 bankswitching support.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1409 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-02-27 15:20:43 +00:00
estolberg 6b7419f2d1 Added support for X07 bankswitching, which is used by Stella's Stocking, the 2007 AtariAge Holiday Cart. TODO: Find a way to autodetect this bankswitching type.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1408 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-02-27 14:16:52 +00:00
estolberg 7112444714 Added support for X07 bankswitching, which is used for the 2007 AtariAge Holiday Cart. TODO: Find a way to autodetect this bankswitching type.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1407 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-02-27 14:14:38 +00:00
estolberg 3882e8e841 UA Ltd and SUPERbanking couldn't be selected as bankswitching types in the game properties dialog, because some counter variables hadn't been updated from 21 to 23. Maybe we should use a constant instead?
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1406 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-02-24 20:02:09 +00:00
stephena 4d9cdbc56a Partially fixed issue with RAM labels (and also PC labels) not being
displayed in the debugger GUI.  I say 'partially', since it's not really
distinguishing between different types of labels with the same address, so
in some cases what you see in the debugger GUI won't be correct (but at
least you'll see *something*).  I need to determine how the DASM sym file
is generated to fix this final issue.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1405 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-02-24 16:51:52 +00:00
stephena 360a5711ed Fixed bug with SBC opcode in decimal/BCD mode, similar to the previously
fixed ADC issue.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1404 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-02-23 20:06:37 +00:00
stephena 0c15f5daeb Fixed bug in emulation of ADC opcode while in decimal/BCD mode. Thanks
to Thomas Jentzsch for advice on this.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1403 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-02-23 16:26:29 +00:00
stephena e3ee622633 Removed some debugging code from 4A50 handler (thanks again to Eckhard).
The 4A50 scheme now works on all test ROMs I have, whether or not display
autodetection is activated.

I noticed there's some graphical glitches in the various 'Ruby Runner'
demos below the lowest wall of the maze.  I'm not sure if this is a
bankswitching issue or TIA emulation problem, but I'm leaning towards the
latter.  More testing is required ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1402 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-02-22 16:27:07 +00:00
stephena f3c1b6308a Added 4A50 bankswitch autodetection. Currently, it only works with one
ROM that follows the specs.  Also, it seems the final ROM that wasn't
working with this scheme actually *does* work; it just doesn't work
when display format autodetection is turned on.  So that's what I'll
work on next.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1401 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-02-22 15:29:52 +00:00
stephena c1f887f731 Second pass at 4A50 bankswitch support. This time it actually works
on all but one of the test ROMs I have :)  Thanks must go to Eckhard
Stolberg, who did about 95% of the work on this scheme.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1400 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-02-21 23:58:09 +00:00
stephena 03cd7ea291 Fix comments in zero-page bankswitching code in 4A50 cart format.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1399 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-02-21 16:11:15 +00:00
stephena e5d3ddb467 Updated GP2X to latest code changes, and added overscan compensation
when displaying output on a TV.  Thanks to D. MacCormack for this code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1398 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-02-20 00:17:49 +00:00
stephena 266f02e9d0 More updates for 4A50 bankswitching support; I think it's very close now.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1397 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-02-19 12:33:07 +00:00
stephena 242c3b940d Updated codebase copyright info for 2008.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1396 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-02-06 13:45:24 +00:00
stephena f0c75eb1ff Finished changes to 4A50 class so it compiles again. It's still not
working though.  I think there still needs to be TIA/RIOT chained from
the peek/poke methods.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1395 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-01-24 23:43:24 +00:00
stephena 41ad0de1fb Oops, that wasn't supposed to be committed.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1394 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-01-24 20:45:05 +00:00
stephena 34665d7f40 First real pass at 4A50 support. It still doesn't compile yet, and may
not even work when it does :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1393 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-01-24 20:43:41 +00:00
stephena 5da06ccdca Now that OpenGL support seems to be working in Windows, I'm removing these dead D3D files. I *really* don't want to add yet another renderer to Stella.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1392 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-01-20 22:36:12 +00:00
stephena 09ff92d46c Added missing file for Visual Studio build.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1391 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-01-20 22:31:19 +00:00
stephena c1dbb4468b Fixed OpenGL issues in Windows Vista. I still have to make sure it hasn't
broken support on other platforms.

Updated Visual Studio project to VS 2008 (where parallel compilation
actually works, and uses all cores on a multi-core CPU).

Updated OSX project files.  I'm using Leopard now, and since the 10.2.8
SDK has been removed, it looks like 10.3 is the minimum supported version
(unless someone can suggest a fix).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1390 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-01-20 18:16:42 +00:00
stephena 62860e8b81 Added support for SB "SUPERbanking" 128k-256k bankswitched games. Thanks
to Fred Quimby (aka Batari) for the code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1389 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2007-10-12 14:45:10 +00:00
stephena 2ad8f1efac Removed specific events for BoosterGrip buttons, and instead made them
generic joystick buttons.

Added complete keyboard/joystick support for all 4 paddles.  Associated
paddle resistance decrease/increase/fire to joystick events in the
'spirit' of z26 (ie, joy0 left/right/fire is paddle 0, joy1 left/right/fire
is paddle 2, etc).  These events can still be remapped independently
of joystick events, of course.

First real attempt at adding 4A50 bankswitch support, which is currently
being modelled on the E0 scheme (they're somewhat similar).  The code
still doesn't work, of course.

Fixed bug in FASC scheme whereby reading from a write port didn't generate
an associated write as a side-effect.  Thanks to Kroko of AtariAge for
the advice and partial code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1388 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2007-10-09 23:56:57 +00:00
stephena ffbc2a18f8 Fixed some minor warnings under gcc 4.2.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1387 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2007-10-08 01:59:20 +00:00
stephena 989c21b58a Updated Win32 Visual Studio build files.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1386 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2007-10-08 00:45:22 +00:00
stephena 714b940ac9 OK, another huge commit. I need to commit this now, because things are
starting to go out of sync on my development machines.  OK, where to
begin ...

Changed state file format, so older state files will no longer work.  The
changes aren't finalized yet, so expect more breakage.

Added getByte() and putByte() methods to serialized data, resulting in
smaller state files (previously, 1-byte values were stored as 4-byte ints).

Totally reworked controller handling code.  Controller state is now
explicitly set with an ::update() method, making it easier to serialize.
Some work is still required on the serialization stuff for more advanced
controllers.

Added a 'Serializable' interface to all carts, device, controllers, etc
that can be (de)serialized.  This fixes a long-standing design issue
which I personally caused many years ago.

Console switches state (SWCHB register) is now saved to state files.

Added beginnings of movie support.  Basically, this saves an initial
state file, and thereafter continuously saves controller and console
switches state.  Support is still somewhat rough and there's no UI for
it, but it does successfully save and later load/play state movies.

Removed specific events for driving controllers, and have them use
joystick events instead.  This has the nice side effect that
joystick direction remapping 'just works' for driving controllers too.

Fixed issues with paddle emulation seen in 'Night Driver' ROM.  Related
to this, removed a hack wrt paddles when grabmouse is enabled.  There's
still some work to do when using the mouse to emulate paddles, but the
Stelladaptor and real paddles work fine.

Added beginnings of TrackBall CX-22 controller emulation.  It doesn't
actually do anything yet, but the class is there :)

Probably some other stuff that I'm forgetting ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1385 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2007-10-03 21:41:19 +00:00
stephena e444ba6901 Updates so the OSX version can build again.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1384 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2007-09-28 18:01:15 +00:00
stephena 2d047f2f6f Reverted FrameBufferGL loadFuncs logic, since it causes problems in OSX,
and doesn't fix Vista issues anyway.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1383 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2007-09-28 16:24:44 +00:00