Changed pointers to references in c'tor calls, making things a little safer.
Removed FBSurfaceTIA, since it was tied too closely to SDL itself. Added a
class called TIASurface that is functionally very similar, but is more generic
and accessible by the FrameBuffer directly. Eventually, this class will take
responsibility for all things related to rendering the TIA image (Blargg TV
effects, phosphor mode, etc).
TIA rendering is currently borked; fixes will follow ...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2889 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Rearranged some of the desktop size code, to be more consistent with the
new API.
Beginning to remove the old assumptions that a smaller screen than 640x480
could be used. In the 4.0 release, the smallest (internal) screen
supported will actually be 640x480, and if the real desktop can't display
it, then it will be scaled down. This is one of the nice benefits of
killing pure software rendering support, and letting the hardware just
draw the screen as it likes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2877 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
options have changed names. In particular, all tia-related options
now start with 'tia.'. This includes most of the old options that
started with 'gl_'.
Changed the names of all tv-effects options from starting with 'tv_'
to 'tv.', to match the name changes elsewhere.
Some work on the documentation to reflect the latest changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2858 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
into FrameBufferSDL2 only. This will make conversion to actual SDL2 code much
easier, since it won't be touching any of the core emulation code in src/emucore.
Next TODO is something similar for EventHandler (which uses SDL heavily and is
too tied to a core class).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2846 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
break. First thing to do is update the year. Happy new year to anyone
reading these commit logs.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2833 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the CPU registers (A/X/Y/PS) on ROM load.
Added 'INTIM Clks' to the debugger I/O tab, showing the number of clocks
before the current INTIM value decreases by 1.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2768 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the Settings class to use Variant. Still TODO is modify various UI elements
that currently accept StringMap to use Variant instead.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2726 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
disables normal keyboard input when in the debugger. This fixes issues
where commands/shortcut keys typed in the debugger would be interpreted
as actual CompuMate input.
For now, in-debugger key processing is completely disabled in such a
case. Eventually, we should probably add a virtual keyboard to the
CM RIOT area, and have it send its data directly to the CM handler.
Bumped version # slightly. I hope to get the next release ready to
go in a few weeks.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2705 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
debugger. In the process, I had to spend several days extending
the UI/dialog class to actually contain multiple tabs. This was
harder than expected, and it still isn't quite finished. In many
ways, we're beginning to reach the limits of the current code; it
was never designed for a full-fledged, graphically rich UI.
For now the tab is empty, but eventually it will contain general
info about the ROM bankswitch type (size, virtual layout, etc),
but also cart-specific info, including the ability to change
banks, which can be vary greatly among the different schemes.
Eventually, it may even allow to see/modify very cart-specific
info (like display RAM in DPC, etc).
Better handle errors in opening the serial port (AtariVox support)
for Windows and OSX.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2678 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
'BASEDIR'/nvram. Previously it defaulted to BASEDIR, which was getting
filled with many such files.
Unfortunely, all files will have to moved manually, but it's an easy
one-time operation.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2613 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
display modes wrt both palette and display properties (# of scanlines,
size of window, etc). This means you can now dynamically switch
between these modes at runtime.
Also added 'Shift-Control-f', which cycles through the modes in
reverse order.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2527 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
we need to modify what is caught. Ironically enough, this fixes
a bug whereby when certain errors occur, the recovery system
itself would crash, not the issue that actually caused the bug!
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2499 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
- Alt-9 / Shift-Alt-9 selects (increases/decreases) between
the various adjustables
- Alt-0 / Shift-Alt-0 increases/decreases the actual values for
the previously selected adjustable
Cleaned up the API a little, moving some stuff from Console to
FrameBuffer class. I think we're due for a pretty major
reorganization of parts of the codebase very soon.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2473 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
'tv_scaninter' option. Added Alt-8 keypress to toggle this; still
TODO is add a UI item for it.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2462 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
left to do, but the basic functionality is now there. Alt 1 - Alt 6
selects among TV modes as follows: off, composite, svideo, rgb, bad and
custom. The latter is just composite at this point; there's no code to
actually change specific adjustables yet. Alt 7/Shift-Alt 7 increases/
decreases scanline blend intensity (20% - 100%).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2456 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
instead of having different keys to turn them on and off separately.
This brings the functionality in line with the rest of the objects/
collision key-combos, which were also toggle-only.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2449 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
- delays are now emulated (0.5 ms for reads, 101 ms for writes)
- the flash file is now saved according to the ROM name
- correctly return values with bit 6 set to zero or one, instead
of just using 0x00 or 0xff
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2440 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
rendering code. This is just infrastructure for now. Pressing
Alt-f will toggle the filtering, but there's no output yet.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2430 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
now complete; I just need to define how to pass actual keyboard keys
through the Event system.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2413 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
controllers at once. Stella wasn't initially designed to do this,
and the CompuMate is unique in this regard.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2412 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Checking in first pass at revamping the 'mcontrol' functionality. The idea is
that the mouse will be able to emulate different controllers on each of its
axes. For now, the left mouse button is tied to the X-axis, and the right to
the Y-axis. These modes will be saved per-ROM, meaning that the mapping can
be different for each ROM (it is saved as part of the ROM properties). Only
the paddles and driving controllers will allow this, since they're the only
controllers where a single axis makes sense.
Switching between mouse modes will be done with Control-0 (the Control-1..3
keys have been removed). This will allow switching all possible combinations
(left controller, right controller, per-ROM setting, etc).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2366 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
debugger before it has been initialized.
Tweaked the format auto-detection by also looking at the TIA scanline
at which drawing first occurs.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2359 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the debugger to work correctly when rewinding and interacting with these
parts of the system.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2355 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Cleaned up the Event object in the EventHander, turning
it into a reference instead of a pointer (pointers are evil).
Minor speed optimization to Keyboard class; the update method
isn't required, since all work is done on the initial write().
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2350 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
when the Console runs autodetection routines at startup.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2344 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
first time that paddle movement is able to be set from within
the debugger!
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2337 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
these aren't fully activated yet, but they're the next thing I plan
to work on.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2322 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
these logs!
Moved TODO and Credits info directly to the webpage, where it will hopefully
be easier to maintain.
Fixed 'crackling' sound when loading a new ROM, introduced with the 3.5
sound restructuring. It looks like stale data was being loaded by the
sound processing callback. As well, moved the computation of certain
division variables from the sound callback to the framerate re-calculator
(where it's recomputed 1/5 of the time or less).
Updated AboutDialog with info about Stella DonationWare status, and active
members of Stella development.
Updated OSX in-app HTML documentation about Stella DonationWare status.
Bumped version # to 3.5.1_svn, and the process starts again.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2318 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
separately to different paddles.
Updated documentation for impending 3.5 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2296 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
when it isn't needed. According to SDL this shouldn't be necessary, but
some combinations of video modes and audio hardware cause sound to stop
working if it's repeatedly opened and closed. So we have to keep it open.
Always attempt to use 2 channels (aka stereo) when opening the SDL audio
device. This is now required, since ROMs can request mono or stereo mode,
and the sound system can no longer be closed and re-opened with the
desired settings. So we need to always use 2 channels to accommodate
when it might be needed. This actually more closely emulates the 2600,
which does have two audio channels. The 'mono' vs 'stereo' ROM property
basically controls whether these channels are exposed (ie, does the
virtual console have two-channel audio hardware installed). In that sense,
these settings control how the channels are mixed.
Updated some settings to have more reasonable defaults.
Added acknowledgement for people that have donated hardware to help with
development.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2291 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
console (which doesn't exist on every platform). Also use proper C++
stringstreams instead of C-style arrays (which are evil). If an exception
is thrown, start the debugger with a fatal error message. Currently, this
message is simply printed in the debugger info window. Still TODO is add
a dialog to show the entire input from within the UI, as well as a way
to exit the ROM when a fatal error occurs.
Cleaned up the API a little, adding explicit declarations for when a method
can throw an exception. Also merged some empty classes directly into their
header files.
Added functionality to the System class for querying whether it has
been reset while in 'autodetect' mode. Autodect mode is defined as
when Stella starts and temporarily runs to autoconfigure itself.
Some classes (such as Thumb ARM emulation) need to know this, and
suppress debugging output/throwing exceptions when not running in
normal emulation mode.
I hope to have a new release done by the end of this week, or the end
of the month at the latest.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2232 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
which are specialized paddles classes that invert the axis, direction,
and axis+direction, respectively. Updated all applicable ROMs in the
properties database.
Cleaned up the menus in the OSX port; some of them weren't even tied
to anything. I'm seriously considering removing them all, except for
the Help and Quit items.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2230 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
- mouse can now emulate joystick, booster-grip and driving controllers
- digital and mouse sensitivity for paddles can now be tweaked
separately, and have a greater range
- the mouse now correctly honours its controller setting, and only
controls a device on one one port (not both at the same time)
Added support for 2600-daptor device. Credit for creator of device
is forthcoming. This device is basically an updated Stelladaptor,
with improved handling for paddle data.
Grabmouse functionality is no longer user-definable; the mouse is
always grabbed while playing a game, and released otherwise.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2228 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the various header files. Basically, I'm following advice from
Effective C++, and including only what's absolutely necessary. For
definitions that don't need to be included, the designation 'class xxx'
is used instead. This could potentially lead to faster compile times.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2155 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
screen size (vertically), the window will open in partially truncated mode,
where the top of the PAL image is cut off. This normally won't be a problem,
as it's mostly blank space anyway.
App window centering is now honoured when changing video zoom levels, not
just when changing eventhandler states.
Bumped version # for another test release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2135 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Basically, directories are now guaranteed to always end in the path
separator. Ensuring this makes certain sections of code work faster,
and guaranteeing it allows higher layers of code to not worry about it.
Added 'cfgdir' commandline argument, to specify the default directory
for Distella-like Stella-compatible config files.
Implemented 'loadconfig' debugger prompt command. It's currently
working great with several test config files provided by Omega of
AtariAge.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2125 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Added 'ramrandom' commmandline argument, used to toggle randomizing or
zeroing or all RAM in the system (both zero-page and SARA).
Disassembler now properly supports all test cases, including rewinding
within the debugger.
Added preliminary support for disassembling from zero-page RAM.
Bumped version # for final release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2100 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
window mode. Using modes smaller that 640x480 should now work in
all cases when using the 'maxres' commandline argument. Also, the
lower limit of 320x240 is now strictly enforced in all cases.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2075 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
'Stephen Anthony' (aka, me) in addition to Brad Mott as copyright
holders for Stella. I think I've been with the project long
enough now (almost 10 years) to justify being specifically mentioned
above and beyond 'the Stella Team'.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2001 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
from the write port. Basically, the cartdebug class depended on the
console existing, but it wasn't being created until after it was required.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1979 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
controller uses the directional pad and button 'B' as a normal
joystick, but can also use button 'C' as a second 2600 button
(with the logic reversed).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1950 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
The license file is actually named 'License.txt', not 'license'
The 'Stella Team' has a capital T, not lowercase.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1921 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba