Jump to content
IGNORED

Stella 4.5 released


stephena

Recommended Posts

Another new year, another release of Stella. The new version is 4.5, which is a somewhat large jump from 4.2 since the code is now C++11 based. That means we need slightly newer compilers, and in some cases a new OS. There are many bugfixes here, specifically the annoying joystick issues, and fixes for other crashes. Also, there's a new bankswitching scheme for a previously unreleased ROM (more info in the coming days about this). Anyway, I think it's a nice update overall. Changes are as follows:

 

* The conversion to C++11 has begun :) From this point on, to build Stella you will need a C++11 compatible compiler (Visual Studio 2013, Clang 3.3, gcc 4.9, Xcode 6, etc). Eventually, this will bring more bug-free and (hopefully) faster code.


* Fixed major bug with joysticks, where mapping was being lost on reset, the app would crash when plugging/unplugging certain sticks, etc.

* Fixed major (but rare) crash that could occur when state files were zero'ed or corrupted.

* Added dialog which shows the internal joystick database (all the joysticks that Stella knows about) and the ability to remove (currently unplugged) joysticks from this database.

* Added preliminary support for 'WD' (Wickstead Design) bankswitching scheme, used for a previously unreleased prototype ROM.

* Improved ZIP file handling, so that it now works as a normal filesystem does (it properly shows nested files and directories).

* The debugger 'reset' command now does a complete system reset, instead of simply setting the PC to the reset vector address.

* The 'listdelay' command now accepts a value of zero, indicating that list-skipping (jumping to a line in a list by keypress) is disabled.

* The 'ctrlcombo' command now has a GUI item, allowing it to be changed from within the application.

* Added 'Shift-Alt/Shift-Cmd s' keyboard shortcut, to enable continuous snapshot mode for each frame. This is really only useful if you save snapshots in 1x mode; using it in high-resolution mode is not recommended. Special thanks to SvOlli for the idea and code.

* The minimum supported version for the OSX port is now OSX 10.7. Because of this, the 32-bit version is also discontinued, as 10.7 supports 64-bit Intel only apps.

* Updated internal ROM properties database to ROM-Hunter version 10 (thanks go to RomHunter for his tireless research in this area). Related to this, updated the snapshot collection.

* Updated included PNG library to latest stable version.

 

As usual, Stella can be downloaded from here, and donations are welcome here. Any bug reports or feedback can be in this thread or by PM. Happy New Year to everyone.

  • Like 14
Link to comment
Share on other sites

Mostly because of Apple. I've converted the code to C++11, which bring many improvements, makes it easier to eliminate memory leaks, etc. However, Apple/Xcode only supports C++11 on OSX 10.7 or above. There's no technical reason on my end why 10.6 wouldn't be compatible, but Apple forces developers to constantly upgrade :(

 

If anyone reading this has any information on compiling C++11 code in Xcode and targeting 10.6, I'll gladly look into it, even if it means releasing a separate build. As of now, I have no viable solution. Sorry about that.

Link to comment
Share on other sites

Mostly because of Apple. I've converted the code to C++11, which bring many improvements, makes it easier to eliminate memory leaks, etc. However, Apple/Xcode only supports C++11 on OSX 10.7 or above. There's no technical reason on my end why 10.6 wouldn't be compatible, but Apple forces developers to constantly upgrade :(

 

If anyone reading this has any information on compiling C++11 code in Xcode and targeting 10.6, I'll gladly look into it, even if it means releasing a separate build. As of now, I have no viable solution. Sorry about that.

 

That's real unfortunate. I should probably look into dual booting with a more modern iteration...

Link to comment
Share on other sites

The only thing I can think of is to make sure you're using the most recent video drivers available. So go to Nvidia/AMD/Intel website and download the most recent drivers for your video card hardware. And also, try switching between Direct3D and OpenGL renderers; perhaps one of them works better for you than the other.

Link to comment
Share on other sites

stephena, I wonder if it would be possible to add a little function to the ROM launcher? It would be great if one could mark favourite games (with an asterisk or bold text)? It would also be great if one could filter that list so that either all ROMs are shown or only favourites. Perhaps more filters like PAL or NTSC could be added too?

 

Regardless, thank you for all your work on Stella and thanks for any reply. :)

Link to comment
Share on other sites

I noticed about a 50% jump in cpu usage when compared against 3.9.3 if I use stella on a "classic" machine, like a Pentium-M 1.7GHz.

 

3.9.3

software - 45

opengl & tv - 58

 

4.5

software - 94

software & tv - 100 and everything is in slow-mo about 25 fps more or less.

opengl - 47

opengl & tv - 58

direct3d - 32

direct3d & tv - 60 and the occasional brief spike to 100.

 

Sometimes I get a slight thumping sound at random it seems.

 

I've also seen a few crashes that made my videocard look like it was defective. A semi-random dot patterns from the 1990's vga card. And the occasional CTD when exiting either by ctrl-q or clicking on the menu.

 

I've never experienced any of this on 3.9.3.

 

Granted this is all vague info and sourced from an older machine. So you may or may not want to dig into these issues. I'm good either way.

 

 

This is just some performance info on an older marginal machine.

Link to comment
Share on other sites

  • 2 weeks later...

I don't know if this has been brought up before, but I'll ask anyway. Can the phosphor effect be enabled as the default condition when Stella starts up? People could press Alt + p if they don't want it on, but it seems like most people would want it enabled if they knew it existed.

 

Homebrewers wouldn't have to constantly remind people to turn it on and newbie users wouldn't have to be told that it can make certain classic games look better.

  • Like 1
Link to comment
Share on other sites

Homebrewers wouldn't have to constantly remind people to turn it on and newbie users wouldn't have to be told that it can make certain classic games look better.

It makes ALL the other games look worse, as it adds a lot of blur to fast moving objects, way more than on a real CRT screen. (look at the word "FUEL" on the tanks in River Raid with the effect enabled, for example)

 

 

Is there a reason (legacy support etc) that it's default is 'off'?

It doesn't default to 'off', actually. The effect is set on a game-by-game basis in the internal Stella database and some games have it enabled as default. If you load a rom which is not in the database, hit TAB to open the game properites and you can enable it in the "display" tab. After that, Stella will remember the setting for that specific game. Homebrew authors who whish to have it enabled by default could just send the rom to Stephen so it can add it to the database in the next release.

 

In the current implementation the effect is just a quick hack to eliminate flicker from certain games (it only works in games with 30Hz or 25Hz flicker), and the result doesn't reflect real hardware behaviour at all. I really hope that a realistic CRT phosphor emulation will be added to stella at some point, and in that case it will make sense to have it as a global setting, but until then I prefer to keep the current behaviour, so to use it only when absolutely necessary.

 

A compromise could be to have a global setting with 3 options for the Phosphor effect:

- Use game properties setting (Default)

- Always ON

- Always OFF

Edited by alex_79
Link to comment
Share on other sites

The fast moving object on a crt doesn't excite the phosphors long enough to get them to stay lit for any length of time after the object passes. Stella doesn't appear to do that. Each represented pixel and simulated phosphor is full on.

 

To improve appearance, the intensity of the phosphor trail would need to be variable based on how long the object sat on a group of pixels.

Link to comment
Share on other sites

I have prepared some better phosphor code for Stella which works by mixing the current calculate frame with the displayed previous frame.This should come pretty close to what a phosphor looks like on a CRT.

 

The problem is, that this code has to be integrated into the TV effects too. And that code goes beyond my limited C++ knowledge.

Link to comment
Share on other sites

Is there a way to force the television format from the command line? I found no mention of such a feature in the user's guide, so I suppose it's not possible at the moment.
It would be useful when developing PAL60 software, else you have to set the format with CTRL+F each time you run a new version of the rom.

Edited by alex_79
Link to comment
Share on other sites

Is there a way to force the television format from the command line? I found no mention of such a feature in the user's guide, so I suppose it's not possible at the moment.

It would be useful when developing PAL60 software, else you have to set the format with CTRL+F each time you run a new version of the rom.

 

 

The 'format' commandline argument does this, and takes ntsc/pal/secam/ntsc50/pal60/secam60.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...