to officially move to XCode 3.0, which means a minimum of OSX 10.3
for Stella. Sorry 10.2 users, but I no longer have the operating
system version to keep compatibility. On a lighter note, it looks
like XCode 3.0 uses a more recent version of gcc for Intel, so there
may be some speedups ...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1593 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
three entries:
1) Override properties - temporarily override ROM properties, so that
(for example) the left diff switch can be set to 'A' even if its
property says to use 'B'.
2) Filter ROM listing - still TODO.
3) Reload ROM listing - functionality was already present with Ctrl-r;
this just adds a UI element for it.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1592 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
a created console is now shown on the commandline again.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1591 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the user. Previously, the only way to see certain info was at the
commandline (a bias on my part, as I always launch Stella from the console
and view the output there). Now, we can see bankswitch type and cart
display format as part of the 'stats' message in TIA emulation.
Reporting this info to the commandline is currently broken. Also todo
is start on the cart random startup bank infrastructure, and also show
this in the stats message.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1589 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
already has the correct name, we no longer rename it anyway (renaming
a correctly-named ROM was updating a counter that should only show
ROMs that *really* had to be renamed).
First pass at integrating RomHunters V4 romset database into internal
properties.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1586 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
snapshots to the selected mode. This means that you no longer have
to make sure that snapshots are taken in 1x mode (as was the previous
functionality).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1585 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
1x snapshots (which the core code can no longer generate) and doesn't
resize properly into 2x mode.
Reworked '-romviewer' commandline argument (and associated UI) to
indicate the zoom level for snapshots in the viewer ('0' means to not
turn it on at all, otherwise '1' or '2').
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1584 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the new FrameBuffer surface-based instrastructure. Thank God, since it
was really starting to get on my nerves :(
Made the Alt- and Alt= keys (for changing videomodes) only be active
in TIA emulation mode. This solves the final remaining positioning
issues with ContextMenus, since now a ContextMenu is never onscreen when
the VideoMode changes size (and hence we don't have to worry about
re-positioning it).
Now to fix the RomInfoWidget, and then UI-wise we'll have parity with
the 2.6.1 release ...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1583 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
and always update entire surfaces when changes are made. This is
basically a workaround for the next release, as I don't want to spend
time on fixing this right now (since it only happens in fullscreen
software mode, which isn't the optimal code-path in OSX anyway).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1582 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
which only applies to TIA mode (in fullscreen, of course).
Some code/debugging cleanups across the various FrameBuffer classes.
Finally fixed software rendering mode crashes. It now works just as
well as OpenGL mode, with all dialog positioning working the same in
both.
Reactivated OpenGL filtering (GL_LINEAR and GL_NEAREST). Only the TIA
image can be changed; the UI dialogs are always using GL_NEAREST).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1579 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
in OpenGL mode now, and I think I've finally finished the major UI stuff
there. Now for software mode.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1578 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
double-buffered modes don't have flicker. Basically, the core FrameBuffer
class has been modified to draw dialogs multiple times when necessary,
above and beyond when changes are made (ie, if a new surface is to be
overlaid, all surfaces underneath must be drawn to BOTH buffers in
double-buffered mode first).
Software rendering is currently broken in fullscreen mode, but I know
why. It's basically the optimizations I try to make for large software
surfaces (the 'isBase' functionality). This is going to disappear before
the next release. And in case I haven't mentioned it for a while; I
REALLY HATE software mode.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1577 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
and allows you to change it for the next Stella run, but doesn't
actually change it for this run (since Stella now has to be
restarted for toggling between software and OpenGL mode).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1575 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
tested 32-bit mode for now; more testing to come.
Made changes in OSystem so creating a framebuffer is only ever done
once. This means that switching between software and OpenGL mode is
no longer dynamic (ie, it can no longer be done while Stella is running).
With the forthcoming changes to VideoDialog, you'll be able to set the
mode to change the next time Stella runs. It just adds too much
complexity to support dynamic switching, especially when I don't think
many people do it too often.
Updated CommandDialog to be font-resizable (ie, take advantage of the
new UI fonts).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1574 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
something which was the basis for this whole surface restructuring in
the first place; updated fonts in the UI.
Switched out the old normal and larger sized fonts for higher
resolution ones. The surfaces are now mostly larger than 320x210,
which means 1x TIA zoom mode is no longer allowed (which was actually
disabled some time ago).
I'm getting close to the end of a single surface design to what we have
now; a multi-level surface infrastructure. This allows higher-res UI's
(which have just been committed), and optimizations for OpenGL TIA
rendering (which were committed over the last week). In the future,
this will also make it easy to add TIA filters to OpenGL mode (ScalexX,
HQxX, etc).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1573 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Fixed compile warning in converting integer values to hex strings in the
debugger. The resulting code was actually causing crashes in the RIOT
tab of the debugger.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1572 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
now correctly positioned, but there's still an issue with ContextMenus
which are used by PromptWidgets.
Finally, we see the first performance improvements in OpenGL TIA
rendering coming from the new 'surface' infrastructure. Now that TIA and
UI surfaces are rendered separately, we no longer have to double the TIA
width in software; it can be hardware-accelerated (ie, a 160x200 texture
is stretched in hardware).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1571 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
to being finished now (thankfully, since I want to move to other parts
of the codebase).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1570 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
It seems the fix for OpenGL issues in OSX do work, so now the OpenGL
code is working the same on all systems again. So now I can get to
the fullscreen positioning issues ...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1569 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
behaviour differs between OSX and other systems.
Disabled output of the TIA display while in the debugger; this code
needs to be rewritten.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1567 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
I'm really beginning to tire of the OpenGL stuff right now, since it
seems everything works differently between Linux, OSX and Windows. And
surprise, surprise, there never seems to be any problems in Linux ...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1564 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
of FBSurfaces should belong solely to FrameBuffer, so that different
parts of the code don't try to delete what they don't own.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1561 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Basically, all textures/surfaces need to be reloaded each time the GL
context changes (which seems to be more often under OSX than on other
systems). This new code takes care of that.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1560 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
textures in OSX. It seems the textures have to be completely reloaded
after the window changes size, even if it's still large enough to hold
the previous textures. I assume the GL context is being reset each
time SDL_SetVideoMode is called (although this doesn't happen in Linux
or Win32).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1559 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Can you believe it was because of ONE #$&#%&** line of code!
Still TODO, a general cleanup of the positioning code (ie, switching
from windowed to fullscreen & vice-versa) used the 'old' coordinates,
so things often aren't centered.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1557 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Fixed crash when displaying 'popup' messages with OpenGL.
Changed OpenGL internal format to be the same as OSX. Based on my
experimentation and research, this is the fastest format independent
of the platform/operating system.
Updated TODO marking the reload ROM listing functionality as being
complete.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1556 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
some time; I guess it's time to make it public. I expect to add many
of the top items for the next release (at this point hopefully in
January 2009).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1554 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Partial fixes to F8 bankswitching code, also adding hardcoded support
for HES Challenge/Surfers Paradise double cart (the lower bank was
never accessible). More work is required in this area.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1552 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the UI stuff, but at least emulation mode is now working. But for
some strange reason, starting a ROM from the commandline gives a blank
screen, while it works fine from the ROM launcher.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1549 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
surfaces are still separate and blitted separately, but the actual
screen updates are now done all at once, at the end of the frame (as in
the previous code). This makes things a little faster, and eliminates
an annoying flicker because of SDL_UpdateRect being called at different
times.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1547 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
that randomization was only done once per game invocation, and not each
time Device::reset() was called (which according to its definition is
when it should be done). This has the side-effect of fixing A. Davies
notBoulderdash ROM, which didn't work if display-type was set to
auto-detect.
Some fixes for dynamic menus generated by PopUpWidget and its
associated dialog/surfaces.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1546 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Those widgets now take two items per entry; the string to display, and
the one to use (in essence a key/value pair). This really shortens the
code in quite a few places.
TIA graphical filters are now selectable from the UI, and correctly change
video mode (in TIA mode).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1545 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
fullscreen resolutions will be automatically chosen based on the required
size for the window. The image will be centered and keep the same aspect
ratio, however, so operation will still work correctly on widescreen
monitors. 'Auto' will be the new default. Otherwise, if a specific
resolution is requested, Stella will try to accomodate it *only* if it fits
into the resolution; otherwise the smallest resolution that fits will be
used.
Removed 'zoom_ui' and 'zoom_tia'. The UI can now only be at 1x mode.
Aded 'tia_filter' commandline argument, which specifies to the filter
to use when rendering the tia image. For now, these accept 'zoom1x',
'zoom2x'..., up to 'zoom10x', and duplicate previous behaviour. Eventually,
Scalexx and HQxx filters may be added. Still TODO is add this to the UI.
First pass at making the standard build use a minimum of zoom2x for the TIA,
so the UI can be larger and use a better looking font. There's still work
to do in this area, especially for those ports with limited hardware that
support zoom1x only.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1544 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba