bsnes-hd Beta 10
bsnes-hd (called "HD Mode 7 mod, for bsnes" in early betas) is a fork of bsnes (great SNES emulator by byuu, currently based on version 107r3) that adds HD video features.
HD Mode 7
Rendering the rotated, scaled or pseudo perspective backgrounds at higher resolutions. This does not involve new custom imagery or upscaling algorithms. It is a higher resolution version of the process the SNES uses.
Extending the scenes to the left and right, without distorting them. Works for most Mode 7 scenes, but also for some other scenes/games, after some setting tweaking.
Color calculation are done at true color instead of the SNES color depth (38 instead of 35 bit). With the optional line color smoothing color "steps" turn into actual gradients (without influencing the sharpness of the artwork).
Other high resolution features
Smother color gradients and window effect, not limited by the original resolution or integer precision.
plus some non-HD related features
like the ability to disable background layers, sprites and window effects for screenshots for wallpapers or soft crop to zoom in, leaving maps or static art off the sides of the screen.
more to come
Feel free to suggest features. Please remember that this fork focuses on HD and visual output.
Converting C++ Rendering Code to Shaders for Optimization
Currently all the HD rendering is running on the CPU cores. This will have to be moved to the GPU to achieve usable performance. I'd really appreciate any help with that, even if it's just to get started. Please open an issue if you want to contribute, or contact me on Reddit.
all in Settings / Emulator
The resolution Mode 7 is rendered at. Higher setting drastically increase CPU usage. "disable" uses the classic Mode 7 code, disabling some of the following features. (defaults to 2x, to show the effect with the smallest possible CPU impact)
Whether and how pseudo 3D perspective are optimized, avoiding limitations of SNES integer math.
How to handle Mosaic effects on Mode 7 backgrounds.
Allows basing every resulting pixel on the average of multiple pixels. At 1x scale it allows using the higher precision at the original resolution, e.g. for use with CRT-shaders. At higher resolutions it is basically expensive anti-aliasing. (defaults to "none") Keep in mind that to estimate the performance impact you have to multiply(!) this value with the "scale" value.
Enables experimental widescreen functionality
Specifies the widescreen aspect ratio. The actual AR are slightly wider than the selection, use some "soft crop" "left" and "right" for the ideal fullscreen experience. "HD" at 5x scale results in a width of 1920, which (combined with "soft crop" "top" and "bottom" at 10, output/center and shader/none) results in perfect 1080p fullscreen. (defaults to 16:9)
Sets how the backgrounds of the widescreen areas are filled
Allows highlighting the edges of the widescreen areas in some ways.
Specifies how translucent the widescreen markers are. (defaults to 1/1)
Settings for the background layers.
Settings for sprites/objects.
The x-coordinate used as fallback for "ignore window". (defaults to 128 (the center))
Line color HD
The amount of neighboring lines used to smooth color gradients that are applied to the frame, e.g. to improve perspective Mode 7 effects, by fading to dark for the "far away" top. "0" disables this smoothing. The default is "4".
The amount of neighboring lines used to smooth Window effects, like iris transitions, shadows or spell effects. "0" disables smoothing and is the default. (This feature is considered a preview, as the lines at the top and bottom of effects are currently not entirely HD and it, in general, is not that well tested. Please let me know about any games/scenes/effects that work noticeable badly or well)
Allows widths at the four edges of the image to be declared uninteresting. So when sizing and placing the image, especially in fullscreen, they can overflow the screen, allowing the significant parts of the image to be larger. So to focus on the top part of "Super Mario Kart" set "bottom" to 130 and "top" to 0. Further tweaking based on your monitor AR and liking may be required.
The soft crop widths for all four edges. (defaults to 10, 10, 20, 20)
|GitHub - DerKoun/bsnes-hd: bsnes fork that adds HD video features|
Tags Super F.C Nintendo S.N.E.S Emus S.F.C Super Family Computer Emulator Emulators S.N.E.S Super Nintendo Entertainment System 32-Bit Intel Super Famicom Emulated Linux macOS Super N.E.S Super NES SNES Emu SFC Windows bsnes-hd Android Super FC Source Code Nintendo SNES
Commentsblog comments powered by Disqus