GithubHelp home page GithubHelp logo

marat-tanalin / bsnes-mt Goto Github PK

View Code? Open in Web Editor NEW
52.0 4.0 5.0 3.59 MB

bsnes-based SNES emulator featuring pixel-perfect integer-ratio scaling, PNG screenshots, built-in hotkeys, multi­language user interface, bug fixes, etc.

Home Page: http://tanalin.com/en/projects/bsnes-mt/

License: Other

C++ 76.28% Makefile 0.39% C 23.20% CSS 0.01% HTML 0.12%
emulation emulator emulators bsnes snes png pixel-perfect image-scaling integer-scaling

bsnes-mt's People

Contributors

erendel avatar karlkox-fr avatar marat-tanalin avatar theherogac avatar wtuemura avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

bsnes-mt's Issues

Suggestion: Reincorporate 'Find Cheats' option

Regards mt. The original bsnes has the option to add already preset cheats in some games.

Desktop 5-01-2023 11-55-38-800

However in this version this feature seems to be missing, so I think it would be a good idea to add it in the future.
Desktop 5-01-2023 13-00-28-402

Suggestion: support MacOS and Linux

Just a suggestion: could you change this to support MacOS and Linux platforms?

Vanilla bsnes compiles and runs on MacOS and Linux but your modifications appear to be Windows specific. I wanted to merge this integer scaling idea into my own fork of bsnes but all the Windows-specific code put a damper on that: it wouldn't compile on my main MacOS development machine. For my bsnes fork I maintain the cross-platform support of vanilla bsnes and offer continuous builds for all supported platforms.

If all of that is too much to ask, then may I ask if it is okay if I just implement your main integer scaling algorithm in my own bsnes fork?

Option for saving window position and size

When I used the original BSNES, I always had to resize the window to be more rectangular because I didn't really like the default square sizes it had built-in. Every time I close BSNES and re-open, it's back to being a square window.

SNES9x had this "Save window position/size" feature added in as a "permanent feature" from one of it's updates and I really loved it!

Emulator inaccuracy in US version of Final Fantasy, Mystic Quest

I just shifted from playing the European "Mystic Quest Legend" to it's US counterpart: "Final Fantasy, Mystic Quest". In the process, I noticed that when I go to the northwestern most battlefield in the water area and perform the Gather battlefield glitch, which causes it to have 255 rounds left out of 10, the textbox that says "Battlefield Round 255 of 10" doesn't appear. It does appear when playing "Mystic Quest Legend".

The only emulator I found that has the textbox appear correctly for the US version is Snes9x v1.43, Rerecording v18.1 from TASVideos.org. The Snes9x v1.51, Bsnes HD, Bsnes+, SnesGT, Ares, and Higan emulators didn't work correctly, with the textbox invisible in each one. Snes9x v1.43 does show that it should be there, so it doesn't appear to be a problem specific to the US version of the game.

Command-line option for GUI-less full-screen mode

Hi,

Just a small enhancement/feature request...
Can you please add a new setting or option wherein users can specify if bsnes-mt should load a game without any GUI?
Currently, If I load a game via command line:
bsnes-mt.exe --fullscreen SomeSNESGame.sfc, the main GUI of bsnes-mt will appear briefly then a second window will take up the whole screen and the game will be loaded.
Perhaps a new command can be added like: bsnes-mt.exe --fullscreen --nogui SomeSNESGame.sfc
The goal is to start the game in full-screen via command line or batch file without having to show the main interface of bsnes-mt.
This would be really useful for people who use emulator frontends. I wish I can do this myself but unfortunately I don't have a PC I could use for coding and building bsnes.

Would this be possible? Thank you!

CRT Display Aspect Ratio for SNES is NOT 4:3

In reference to this article:

https://tanalin.com/en/projects/bsnes-mt/

The SNES dot clock for it's 256x240p signal sends a display aspect ratio of 128:105 to the CRT (and the CRT when properly calibrated does NOT stretch signal sources to 4:3).

To properly calibrate for CRT aspect correction on the horizontal axis in SNES emulation, you need multiply 256 by 8/7 (which is the pixel aspect ratio). Thus, 8/7 = 1.142857 (repeating) and then you multiply 256 with that, which comes out to 292.571428 (repeating). For emulation, it's even more accurate to scale first before applying the 8/7 PAR correction. Example at 4x:

256 * 4 = 1024, and then applying DAR for CRTs: 1024 * 8/7 = 1170 (rounded to nearest even pixel count).

Does not start on some systems

Two users (RichterEX2 via Reddit and Philip via email) reported that bsnes-mt does not start on their systems. This might be related to different default settings, but using settings.bml (renamed to bsnes-mt-settings.bml used by bsnes-mt) from original bsnes v115 seems not to help. This also might be related to certain antivirus software.

Details from RichterEX2:

  • Tested bsnes-mt versions: 1.0, 1.1.1.
  • Restarting computer didn’t help.
  • bsnes v115 does work.
  • Windows 10 x64
  • UI Language: English

Details from Philip:

  • Tested bsnes-mt version: 1.3.
  • bsnes v115 does work.
  • In bsnes v115, all drivers work, regardless of the “Synchronize” video setting.
  • Antivirus: none (probably Windows Defender then).
  • Resetting drivers with --resetdrivers command-line option does not help.
  • System specs:
    • Windows 10
    • Intel Pentium 4415U 2.30GHz
    • 8GB RAM
    • Intel HD Graphics 610
    • Display: 1366×768
    • OS-level zoom: 100%

Information that those who would like to help could provide

  • Does original bsnes v115 work on the same system?
  • System specs (at least GPU).
  • Exact version of Windows 10: e.g. version 1909, build 18363.1082.
  • Graphics-driver version.
  • Desktop resolution and whether it’s equal to display’s native resolution.
  • OS-level zoom (e.g. 100, 150%, or 200%).
  • Name of the antivirus software used.

How to get Windows 10 version information:

  1. Press Win+R keyboard shortcut.
  2. Type winver command.
  3. Press Enter key or OK button.

Suggestion: Update Drivers

Is it possible that drivers could be updated to DirectX 11 / Vulkan, update XAudio and full Xinput support? This in order to improve performance and compatibility with modern platforms, hopefully it could be possible ...

Rebasing with the original bsnes source

According to the author's website, they occasionally merge updates from the community bsnes repo, which has not seen activity since last October. While I am not certain what Mr. Tanalin defines as important changes, I believe it would serve this project well to merge over technical improvements made to the community repo.

Individual save states

I like documenting a perfect playthrough with a set of savestates, ordered by progression through a game. There are many times where I will miss a savestate and have to go back to make it. Since bsnes makes a single savestate file that contains 25 saves, I end up needing to shift older saves forward so that I can insert a previously missed savestate into the proper position. I also have to be really careful not to overwrite good saves in the process.

In most other emulators each save is made separately. bsnes plus does this with savestates labeled "filename-1.bst", "filename-2.bst", etc.). In such cases it's easy to go back, capture a missed savestate using any save slot, and then renumber savestates to get the ordering correct.

I am hoping that bsnes-mt can be given a toggle button to go between savestates being placed in one .bsz file (25 at a time) and each savestate being made individually (so that I can make sets of 25 separate files).

What would really be awesome is if such individual savestates could be renamed and still be usable. With Final Fantasy, Mystic Quest Legend as an example, saves could normally be "Mystic Quest Legend.sv1", "Mystic Quest Legend.sv2", etc. but a player could choose to make Mystic Quest saves in particular use FFMQL (or any other 1-9 letters) so that savestates could be labeled something like "Tower of Babel, Southeastern Entrance.FFMQL.sv1", "Aquaria.FFMQL.sv2", etc. This would make it much easier to keep precise track of hundreds of savestates. Don't know if that's possible, especially to assign unique letters to every game, but it would be quite lovely.

In fact, I wish savestates for all emulators worked that way.

Add “Toggle Fast Forward” hotkey

A suggestion by Vecna:

Can you add this shortcut: "Toggle Fast Forward"? I ask that 'cause in some RPG is awkward to keep pressed the Fast Forward key when you grind monsters... I prefer that the key is always pressed instead to do that manually.

Fullscreen Screen Recording Issue

I'm using Xbox Game Bar to record my game, but somehow when I do Fullscreen all it records is a black blank screen with the gray menu bar on top. Why is this? Can you fix it for me?
Proof
Bad Recording

Lua script support

enhancement/feature request: it would be really nice to have lua scripting support like other emulators do, if possible.

Suggestion: Optionally cut off 2x4 lines for better aspect ratio and more screen height usage

You mention that for Full HD screen height usage is only 83%, with an AR error of 7%.
An optional solution that would work for most games is as follows:
Cut off 8 lines (e.g. 4 at the top and 4 at the bottom). Then you can scale one step larger, using 100% of the height and reducing the error to less than 2.8 percent.
The same can be done at 4K, with the same result.
I hope I explained it well enough. If not just let me know.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.