Main » Emulation » bsnes v107 released » New reply
    Alert
    You are about to bump an old thread. This is usually a very bad idea. Please think about what you are about to do before you press the Post button.
    New reply
    Post help

    Presentation

    [b]…[/b] — bold type
    [i]…[/i] — italic
    [u]…[/u] — underlined
    [s]…[/s] — strikethrough
    [code]…[/code] — code block
    [spoiler]…[/spoiler] — spoiler block
    [spoiler=…]…[/spoiler]
    [source]…[/source] — colorcoded block, assuming C#
    [source=…]…[/source] — colorcoded block, specific language[which?]
    [abbr=…]…[/abbr] — abbreviation
    [color=…]…[/color] — set text color
    [jest]…[/jest] — you're kidding
    [sarcasm]…[/sarcasm] — you're not kidding

    Links

    [img]http://…[/img] — insert image
    [url]http://…[/url]
    [url=http://…]…[/url]
    >>… — link to post by ID
    [user=##] — link to user's profile by ID

    Quotations

    [quote]…[/quote] — untitled quote
    [quote=…]…[/quote] — "Posted by …"
    [quote="…" id="…"]…[/quote] — ""Post by …" with link by post ID

    Embeds

    [youtube]…[/youtube] — video ID only please
    Thread review
    MT
    Posted by byuu
    In the mean time, I didn't notice any performance penalty from using "System (Enhanced)" mode with bsnes here. A few text labels clipped a bit, but it was entirely usable.
    Forgot to mention the crucial difference between the “System (Enhanced)” workaround and the true DPI-aware mode:

    with the workaround, the application actually works at a virtual resolution proportionally smaller with OS-level zoom. So e.g. on a 4K monitor at 200% zoom in Windows, the app works as if the monitor resolution was Full HD.

    When using integer-ratio scaling (“Integral scaling” in higan v104+ and “Center” in bsnes/higan v107+), non-DPI-aware modes potentially lead to wasting screen space due to thicker black borders around the image than they could be in the true DPI-aware mode. Aspect-ratio correction may also be less precise.

    For example, in bsnes v107 with the “Center” output mode, on a 4K monitor in both the default non-DPI-aware mode and the “System (Enhanced)” mode, the ratio is 8 and the black bars above and below the image are 184+184 physical pixels.

    In the true DPI-aware mode, the ratio is 9, and the black bars above and below the image are 72+72 physical pixels. So the lost space is 2.5 times smaller.

    Also, the pixel-size fluctuation during aspect-ratio correction is much more significant in non-DPI-aware modes (8×8–8×10 — 25%) than with true DPI-awareness (9×10–9×11 — 10%).
    MT
    Posted by BearOso
    Sounds like you need the sharp-bilinear filter.
    Thanks, interesting option potentially useful in some scenarios. However I personally prefer to be sure scaling is actually pixel-perfect, not just that resulting image looks pixelated enough.

    My point here is different though:

    the new bsnes v107 lacks the important feature higan already has since the version 104 (2017-08-12) — it’s called “Integral scaling” in higan settings:

    Settings → Video → Windowed Mode / Fullscreen Mode → Integral scaling.

    Update: Incidentally reading the current higan docs (apparently related to the new unreleased-yet higan version that is going to feature a revamped user interface), I figured out that the integral scaling is now apparently used by default in the “Center” mode instead of the forced 1x scale. Same applies to bsnes v107+.
    BearOso
    Posted by sureanem
    If I understand the source code correctly, it still has some artifacts since some lines will be sharper than others. (e.g. scale to nearest integer multiple, then the last mile with bilinear)

    In practice, because the scaling ratio is so high, especially on a 4k monitor, you don't notice that. There's a couple other options in that shader pack that do something similar with different methods that change this up, AANN and Pixellate. Smoothstep and Quilez filters aren't available in that pack, but they will give you the complete uniformity you want, as they're more alike to band-limited sampling. They won't be as sharp, though.
    ‮strfry("emanresu")
    Posted by BearOso
    Posted by MT

    Pure Nearest Neighbour leads to distortion due to pixels of different size at fractional scaling ratios.

    Sounds like you need the sharp-bilinear filter. Get the shader pack at https://github.com/hizzlekizzle/quark-shaders and extract all the .shader files into your user's AppData\Local\bsnes\shaders directory, which you need to create. Load up bsnes and select sharp-bilinear from the Settings->Shader menu, and voil� ! It's pixelated, but no aliasing artifacts.

    If I understand the source code correctly, it still has some artifacts since some lines will be sharper than others. (e.g. scale to nearest integer multiple, then the last mile with bilinear)
    BearOso
    Posted by MT

    Pure Nearest Neighbour leads to distortion due to pixels of different size at fractional scaling ratios.

    Sounds like you need the sharp-bilinear filter. Get the shader pack at https://github.com/hizzlekizzle/quark-shaders and extract all the .shader files into your user's AppData\Local\bsnes\shaders directory, which you need to create. Load up bsnes and select sharp-bilinear from the Settings->Shader menu, and voilà! It's pixelated, but no aliasing artifacts.
    MT
    Posted by byuu
    The reason it took this long is because I didn't have a 4K monitor until very recently.
    Sounds familiar. Didn’t care about HiDPI on my sites too until bought a 4K monitor Dell P2415Q 4 years ago.

    Posted by byuu
    To get rid of the blur in bsnes, choose Settings->Video Shader->None
    Thanks, better than nothing, but Afaict, it just switches to Nearest Neighbour, not to integer-ratio scaling (called integral scaling in higan). Pure Nearest Neighbour leads to distortion due to pixels of different size at fractional scaling ratios.

    Posted by byuu
    HiDPI in bsnes, well ... the core is undergoing a very large rewrite, and I will need to shift focus away to other things for a while, so v108 is a very distant thing. If bsnes v107 were to catch on, and there's significant demand for HiDPI, then I can backport it to a v107.1 or something release.
    Well, I demand this for 4 years already. :-)

    Posted by byuu
    In the mean time, I didn't notice any performance penalty from using "System (Enhanced)" mode with bsnes here. A few text labels clipped a bit, but it was entirely usable.
    I would still prefer to use it in regular DPI-aware-forced mode since I previously experienced heavy slowdown and graphics glitches with some VST instruments in the “System (Enhanced)” mode. So my current usage scenario would be this: first tweak the emulator settings at the default DPI settings (pixelated at integer ratios and blurry at fractional ratios in Windows 10 and always blurry in Windows 7), then switch to forced DPI-awareness for playing.

    Unfortunately I noticed some serious periodical jerkiness (stuttering) in the “Donkey Kong Country” (US, rev.2) (the only tested so far) game (e.g. in the very first level) compared with higan v106 — this looks like this: smooth and jerky performance are following each other each several seconds — maybe not time-related, but bound to some specific parts of the game level, not sure. So with this issue and missing integral scaling, I would probably still prefer higan in general for now, though such bsnes features as Zip archives loadable directly are nice.

    Though looks like neither keyboard nor gamepad work in higan again (though work when mapping keys in the settings window), and neither removing settings.bml nor switching the Advanced/Input dropdown help. :-(
    Near The reason it took this long is because I didn't have a 4K monitor until very recently.

    I now own a really, really, really bad, low-quality one that manages 144dpi (150%.) Good enough I guess.

    To get rid of the blur in bsnes, choose Settings->Video Shader->None, and don't use the DirectDraw driver because that one lacks the ability to control the magnification filter. I just confirmed it works here.

    HiDPI in bsnes, well ... the core is undergoing a very large rewrite, and I will need to shift focus away to other things for a while, so v108 is a very distant thing. If bsnes v107 were to catch on, and there's significant demand for HiDPI, then I can backport it to a v107.1 or something release.

    In the mean time, I didn't notice any performance penalty from using "System (Enhanced)" mode with bsnes here. A few text labels clipped a bit, but it was entirely usable.
    MT
    Posted by Screwtape
    byuu spent the past couple of days wrestling with Windows' HiDPI APIs to get things working.
    Cool, thanks.
    Screwtape > I wonder whether it’s going to support HiDPI after 5 years of the 4K era.

    You're in luck, byuu spent the past couple of days wrestling with Windows' HiDPI APIs to get things working. It won't be in v107, but it should be ready for v108 whenever that arrives.
    MT And can’t find a way to disable scaling blur and enable integer-ratio scaling (called “Integral scaling” in higan). Regression?..

    This is how it looks in bsnes:



    This is how it looks in higan with “Integral scaling” enabled and all blur options disabled:

    MT I wonder whether it’s going to support HiDPI after 5 years of the 4K era. This is how it currently looks by default in Windows 10 at OS-level zoom of 200% (note pixelization; Windows 7 uses blur instead of pixelization):



    This is how it looks with HiDPI mode forced (DPI-scaling disabled) via executable-file properties (note the Settings window and its contents are small and buggy-rendered):



    And this is how it should look like with proper HiDPI support (simulated with the slow and buggy “System (Enhanced)” DPI mode via executable-file properties — this mode is not actually a solution, just a better-than-nothing workaround for hopeless outdated software that bsnes and higan are hopefully not):



    Consider font size in the window titlebar as the reference size to figure out how it looks in reality.

    Same applies to higan.
    Broseph Once again: amazing. Truly.

    bsnes .107 has been a long time in the making and the (non-exhaustive) change list really shows this. So congrats on this major release ^_^
    jarsonic Excellent! Gave it a little run-through, and looks really nice and polished. :)


    Unless I'm missing something, there's not way to do full screen, is there? I know that process was surprisingly hacky in the past. Just wanted to confirm.

    [Edit] It's F11, duh. Never mind. :)
    Screwtape Because this isn't an official higan release, I've pushed it to a separate branch of the git repo. I don't expect any further releases in the v107 family, but if there are any, I'll put them also on the branch.

    For technical reasons the higan documentation site *does* provide docs for "higan v107" but that's for the hypothetical version of higan one might get by building higan from the bsnes source tarball. Most of it's not very relevant for bsnes, because the UI is quite different, but where the changelog says "firmware folder for unappended coprocessor firmware (see documentation for more)" you probably want to look at the "games with co-processor firmware" section of the higan v107 docs.
    Screwtape The release announcement and changelog is on the front page of byuu's site, but the permanent download link is on the official bsnes page.

    Posted by "Change log"
    Today I am posting the first release of the new bsnes emulator.

    bsnes is designed to be a revival of the classic bsnes design, focusing specifically on performance and ease of use for SNES emulation.

    In addition to all of the features of higan, bsnes supports the following features:

    300% faster (than higan) scanline-based, multi-threaded graphics renderer
    option to disable sprite limits in games
    option to enable hires mode 7 graphics
    option to enable more accurate pixel-based graphics renderer
    option to overclock SuperFX games by up to 800%
    periodic auto-saving of game save RAM
    save state manager with state screenshots
    several new save state hotkeys such as increment/decrement slot#
    option to auto-save states when unloading a game or closing the emulator
    option to auto-load aforementioned states when loading games
    save state undo and redo support (with associated hotkeys)
    speed override modes (50%, 75%, 100%, 150%, 200%)
    recent games list
    frame advance mode
    screenshot hotkey
    path selection for games, patches, saves, cheats, states, and screenshots
    dynamic video, audio, input driver changes
    direct loading and playing of games without the use of the higan library
    ZIP archive and multiple file extension support for games
    firmware folder for unappended coprocessor firmware (see documentation for more)
    compatibility with sd2snes and Snes9X MSU1 game file naming
    compatibility with higan gamepaks (game folders)
    soft-patching support for both BPS and IPS patches
    menubar that does not pause emulation when entered
    video pixel shaders (requires OpenGL 3.2)
    built-in game database with over 1,200 games to ensure perfect memory mapping
    (Linux, BSD only:) audio dynamic rate control to eliminate stuttering
    and much more!

    The one feature I regret not being able to support in this release is Windows dynamic rate control. I put in my best attempt, but XAudio2's API is simply not fine-grained enough, and the WASAPI driver is not mature enough. I hope that DRC support can be added to the Windows port in the near future, and I would like to offer a large cash bounty to anyone who can help me make this happen.
      Main » Emulation » bsnes v107 released » New reply
      This does not actually go there and I regret nothing.