Jump to content
IGNORED

Stella 6.1 released


stephena

Recommended Posts

OK, it's finally here, the "Corona" edition of Stella, to keep you all busy during your extended isolation :)  First of all, this release was over 1 year in the making, and I want to single out the other members of the team that have put in more work than me: @DirtyHairy and @Thomas Jentzsch.  Due to some personal, real-life issues, I wasn't able to dedicate as much time to this release as I'd have liked, and that's partly the reason why it's so late.  Hopefully this can improve for the future.

 

Now, where to begin?  There are major improvements all across the board here, with some subsystems being completely rewritten.  So here's the changelog:

  * IMPORTANT NOTES:
    - Because of major event remapping changes, all remappings will be reset to defaults; if you had custom mappings, they will need to be re-entered again.

    - Because of major internal changes, all state files are now invalid.

    - Support for Windows XP has been discontinued as of this version.  WinXP is now completely out of support from Microsoft, so we are doing the same.

  * Major improvements to display mode handling in NTSC vs. PAL.  The window is now the same size for both modes, and scaling is applied to simulate the height of scanlines (in PAL mode, there are more scanlines and hence each is narrower).  This more properly emulates how the display would look on a real TV.

  * Removed the 'Display_Height' property, changing it to 'Display_VCenter'. This new feature, along with the display mode changes above, almost completely eliminate having to manually tweak each ROM so that it will not have part of the image cut off.

  * Removed the 'Display_YStart' property and all automatic detection of ystart.  It caused problems on some ROMs, and was not the way a real console would work anyway.  Related to this, ROMs now load much faster.

  * Major improvements to event remapping:
    - Allow mapping of modifier-key and button-direction combinations
    - Physical controllers can map the same action to different events on different virtual controllers
    - Many more events can be remapped
    - Events can be filtered by type in UI

  * Paths have been simplified:
    - The following file/directory locations are no longer configurable
      (statedir, nvramdir, cheatfile, palettefile, propsfile); they are now all under the base directory
    - Removed cfgdir; Distella config files are now placed with their associated ROMs
    - Added 'basedir' commandline argument, which allows to change the base directory where almost all config-related items are stored; related to this, discontinued the 'basedir.txt' functionality
    - Added 'baseinappdir' commandline argument, which sets the base directory to the application folder (Windows only for now); this replaces the functionality of 'basedir.txt'

  * Added automatic controller detection.

  * Controllers can be changed during emulation (no ROM reload required anymore).

  * Added support for Light Gun controller.

  * Added limited KidVid support (8, 9 and 0 start the games).

  * Removed superfluous controller option 'PADDLES_IDIR'.

  * Added configurable paddle dejittering.

  * Key-repeat mode improved; entering Time Machine by holding down a key combo continues to send events (previously, you had to release and then press the combo again).

  * Certain buttons in the UI can now be activated repeatedly by holding down the mouse button (Time Machine, debugger step/trace/frame advance, etc.)

  * Added option to configure mouse double click speed.

  * Added option to configure controller input repeat speed.

  * Added high quality scaling.

  * Made scanlines better aligned to scaling.

  * Added 'HiDPI' mode, which scales the UI by 2x when enabled.  This is meant for 4k and above monitors, but can actually be used at any lower resolution that is large enough to display the scaled UI.

  * Fixed TIA 'Center' option, Stella now remembers the last windowed position.

  * Added fractional (25% increments) TIA zooms.

  * Removed 'tia.fsfill' option, replacing it with 'tia.fs_stretch'.  This new option allows to preserve TIA image aspect ratio in fullscreen mode, or stretch to fill the entire screen.

  * Added configurable 'Overscan' option for fullscreen modes.

  * Fullscreen TIA modes no longer assume that desktop taskbars, etc are present, hence they are scaled to the proper fullscreen size.

  * Added option to display dialogs in screen corners.

  * Added hotkey for sound on/off.

  * Enhanced 'Command' menu to display current state and more commands.

  * Added option to save and load all TimeMachine states at once.

  * Added option to automatically load/save states when entering/exiting emulation.

  * Added option to change pitch of Pitfall II music.

  * ROM Info Viewer size is not limited to fixed zoom steps anymore.

  * ROM Info Viewer can now display multiple lines per property and the bank switching type.

  * In file listings, you can now select directories by holding 'Shift' on the first character entered.  Entering characters in lowercase still selects files, as before.

  * Fixed bug when starting ROMs via MacOS finder.

  * Added various developer options for oddball TIAs:
    - stuffed player, missiles and ball move
    - delayed playfield bits and color
    - delayed players and ball VDEL swap

  * Disabled some developer options for 'Player settings'.

  * Writes to RAM read ports are ignored now.

  * Added Developer setting, which breaks on writes to read ports.

  * Improved breakpoints to now consider the banks.

  * Improved debugger's TIA display and zoom windows.

  * Improved hotkeys, now many emulation keys work in debugger too.

  * Fixed display of negative values in debugger; sometimes they were shown as positive.

  * Reworked ROM properties database, making it load faster in certain cases.

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

  * Fixed 'Dancing Plate (Unknown) (PAL)' to use joystick.

  * Fixed cheatcode handling in 2K and 4K ROMs.

  * Fixed bug where ROMs smaller than 64 bytes were not recognized.

  * Fixed bug where frying one ROM was continued with the next ROM.

  * Fixed not working 7800 pause key.

  * Enhanced UA bankswitching to support certain Brazilian carts.

  * Fixed WD bankswitching.

  * Added FC bankswitching for Amiga's Power Play Arcade Video Game Album.

  * Added auto-detection of display format based on filename.

  * Auto-detection of bankswitch scheme by file extension now includes more human-readable formats (not restricted to DOS 3-char length). See the documentation for the new names.

  * Fixed bug in DPC+ scheme; 'fast fetch mode' was enabled at startup, when it should be disabled by default.

  * Some more work on DPC+ playfield 'jitter' effect for certain older DPC+ driver versions; more ROMs are now detected properly.  Special thanks to SpiceWare for his research in this area.

  * Added proper Retron77 port.

  * Added proper libretro port, and fixed display for OpenGLES renderers.

  * PNG/ZIP image support is now conditionally compiled into Stella. All major ports (Linux/macOS/Windows) have it enabled by default.

  * SDL/GUI support is now conditionally compiled into Stella.  All major ports (Linux/macOS/Windows) have it enabled by default.  This is currently needed by the libretro port.

  * Updated included PNG library to latest stable version.

  * Updated UNIX configure script to work with the gcc version 10 and above.

 

As usual, Stella is available to download at https://stella-emu.github.io, and donations are accepted at https://stella-emu.github.io/donations.html.  Feel free to respond here with any issues you find.  You can also PM, but feedback here is better, so everyone can see it (and to eliminate duplicate reports).  Enjoy :)

  • Like 14
  • Thanks 4
Link to comment
Share on other sites

I'm noticing improvements to my video display in this version (on MacOS). With the previous release, with 96-pixel displays like my WIP, it appeared to flip between the frames at an uneven rate at times. I haven't seen any evidence of that in 6.1 so far.

Link to comment
Share on other sites

10 minutes ago, Karl G said:

I'm noticing improvements to my video display in this version (on MacOS). With the previous release, with 96-pixel displays like my WIP, it appeared to flip between the frames at an uneven rate at times. I haven't seen any evidence of that in 6.1 so far.

Pretty sure this is due to:

  * Added high quality scaling.

  * Made scanlines better aligned to scaling.

 

Two small points in the bullet list, but actually quite a bit of work behind the scenes.  Good to see that it's being noticed.  Also, we moved to Metal from OpenGL for the Mac renderer, so that should help too.

Link to comment
Share on other sites

2 hours ago, Karl G said:

I'm noticing improvements to my video display in this version (on MacOS). With the previous release, with 96-pixel displays like my WIP, it appeared to flip between the frames at an uneven rate at times. I haven't seen any evidence of that in 6.1 so far.

In addition to what Stephen wrote, Stella 6.1.0 now uses Metal by default on MacOS. With OpenGL, vsync is broken - I guess that‘s the reason for the difference that you‘re seeing.

  • Like 1
Link to comment
Share on other sites

26 minutes ago, Keatah said:

Is openGL with vsync broken on windows?

It shouldn't be, as what's talked about above is an issue with MacOS basically discontinuing support for OpenGL over the past few years, and not fixing bugs.  Windows uses Direct3D by default, and unless you have a good reason to use something else, Direct3D works best.

 

EDIT: To be clear, 'vsync broken in OpenGL' applies to MacOS only.  It should be working in Windows, and most definitely works in Linux.

  • Thanks 1
Link to comment
Share on other sites

2 hours ago, Keatah said:

Is openGL with vsync broken on windows?

 

 

Nope, just on MacOS (at least on my Macbook). Apple has deprecated OpenGL in favor of Metal, and it is starting to show signs of bitrot. This has nothing to do with Stella, and nothing to with other platforms either.

  • Thanks 1
Link to comment
Share on other sites

The plan is that this will be true for the RetroArch port too, although there may be a little lag due to their release dates being difference from ours.  But when we do a new release, at least it will work for Linux/MacOS/Windows and R77/RetroArch.  At least that's the plan, as Thomas said.

Link to comment
Share on other sites

On 3/23/2020 at 4:47 PM, stephena said:

It shouldn't be, as what's talked about above is an issue with MacOS basically discontinuing support for OpenGL over the past few years, and not fixing bugs.  Windows uses Direct3D by default, and unless you have a good reason to use something else, Direct3D works best.

 

EDIT: To be clear, 'vsync broken in OpenGL' applies to MacOS only.  It should be working in Windows, and most definitely works in Linux.

It works great on Windows 10, but with my Fluid City Sillyventure Game/Demo you can see the occasional frame stutter Karl is talking about on both the Retron77 community build and Flashback 9 Linux builds - no screen tearing on either unit just a frame stutter once in awhile. 

 

Hope the game is helpful finding it, it's noticeable playing Fluid City because gameplay depends on a constant frame rate in order for the player to have a chance to achieve the precise timing to beat the game.

 

Link to comment
Share on other sites

Couple of quick questions versus beta2 for the Retron77:

 

- Scanlines on beta2 were perfect (using Composite filtering) out of the box...scanlines on the release version have that "bunched up" look like when scanlines are applied and then the screen is slightly stretched (i.e. a noticably uneven look on games with brigher backgrounds like Adventure).  Is there a setting I need to change (presumably to achieve vertical integer scaling)?

 

- I previously set the NTSC Aspect to 88% as the most 'accurate' looking to my eye...this setting doesn't seem to exist anymore.  Was it moved to somewhere I haven't been able to find it?

 

MUCH thanks for making this device the go-to gold standard for TV gaming!

Link to comment
Share on other sites

With Stella 6.1 we introduced a new kind of filtering (QIS). This became necessary because we corrected the way Stella emulates different vertical resolutions (e.g. NTSC vs PAL). There is no integer vertical scaling anymore, a scanline's height has become variable now. Unfortunately it turned out, that the R77 is too slow to handle TV effects combined with QIS. 

 

We also removed the independent NTSC and PAL aspect ration settings and replaced them with V-Size. This allows you to fine tune the displayed height so that the aspect ratio matches a TV best. Maybe you can use it to reduce the scanline look.

Link to comment
Share on other sites

I am having issues with screenshots in this release (OS X Catalina). It seems to take a screenshot of the upper left corner of the screen unless I choose "ignore scaling" to take a 1x mode screenshot. I'm not sure if it's a bug, or I'm missing a setting somewhere.

 

1928499718_Ms.Pac-Man(1983)(Atari).thumb.png.2fc12e590151928183bfe17ff3d9668e.png

 

1089142833_Ms.Pac-Man(1983)(Atari)_1.png.e93d6261d9f2b69aa489812865afb613.png

Link to comment
Share on other sites

10 hours ago, Karl G said:

I am having issues with screenshots in this release (OS X Catalina). It seems to take a screenshot of the upper left corner of the screen unless I choose "ignore scaling" to take a 1x mode screenshot. I'm not sure if it's a bug, or I'm missing a setting somewhere.

Thanks, that was a bug with the native support for retina displays introduced in 6.1. Fixed.

  • Like 1
Link to comment
Share on other sites

Just did a quick 6.1.1 bugfix release.  Changelog as follows:

  • Fixed crash in 3E bankswitching scheme when writing to ROM addresses.
  • Fix snapshots on Retina HiDPI displays capturing only the top-left corner.
  • Fixed wrong color for BK (background) swatch in the debugger.
  • Fixed 'Right Diff' button in Command menu changing left difficulty instead.
  • Fixed compilation of libretro port on Debian Buster.
     
  • Like 5
  • Thanks 2
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...