sourmesen / mesen-s Goto Github PK
View Code? Open in Web Editor NEWMesen-S is a cross-platform (Windows & Linux) SNES emulator built in C++ and C#
License: GNU General Public License v3.0
Mesen-S is a cross-platform (Windows & Linux) SNES emulator built in C++ and C#
License: GNU General Public License v3.0
Start the third game and look at the top. Some flickering is going on there. ^^;
bsnes: https://streamable.com/2rdju
Mesen-S: https://streamable.com/v7qhf
Edit: Sound seems to be a little bit off as well.
Hello again,
A quick feature request here. Having a HUD appear when you toggle BG & Sprite layers on/off would be great! Sometimes in certain areas and games, you literally cannot tell if something is on or off until you move around, which isn't always ideal. The text overlay area for when saves get loaded/saved would work just fine.
Please consider. Cheers & Thanks!
Both Mesen and Mesen-S have become an emulator I use daily. both lack one feature I find very important.
The ability to select screen resolution.
Those of us using giant screens on media centers or those of us using a weaker machine can benefit greatly if we have the option to set different exclusive full screen resolution rather than desktop resolution.
most stand alone emulators till recent did this.
Examples can be seen in Mednafen, snes9x, nestopia ue, kega fusion etc.
Please consider adding this ability one day.
Thank you.
Several areas that are supposed to display text in the game ActRaiser 2 are not doing so. They have invisible text in the 0.3.0 release, whereas in version 0.2.0 they displayed just fine.
Here's some screenshots to show what I mean. The first image is with version 0.3.0, and the second is 0.2.0:
In both instance I'm loading the rom from a ZIP archive, and additionally my 0.3.0 release was upgraded from a 0.2.0 one, if that helps.
PLease supply a list of supported firmware roms.
seems cx4.rom not required or supported (using HLE emulation?)
dsp1b.rom is required and supported.
WHat else?
Thank you
Video Output 4:3 and 8:7 ratios produce wider than expected image
Doesn't seem like most of the filters work or they don't work well. Here is a video of me trying to get them to work. Mesen-S Ver. 01.0.5. Also if I try to go to https://www.mesen.ca/snes/ I get a 403 Forbidden error.
https://www.youtube.com/watch?v=dA1H3QzqNuc&feature=youtu.be
exception inside UnhandledException handler: The type initializer for 'System.Windows.Forms.WindowsFormsSynchronizationContext' threw an exception.
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: The type initializer for 'System.Windows.Forms.WindowsFormsSynchronizationContext' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Windows.Forms.ThemeEngine' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Windows.Forms.ThemeWin32Classic' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Drawing.KnownColors' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Drawing.GDIPlus' threw an exception. ---> System.DllNotFoundException: libgdiplus.so.0
at (wrapper managed-to-native) System.Drawing.GDIPlus.GdiplusStartup(ulong&,System.Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&)
at System.Drawing.GDIPlus..cctor () [0x000b0] in <2721d3953df14566a54b9fdff288b758>:0
--- End of inner exception stack trace ---
at System.Drawing.KnownColors..cctor () [0x0001a] in <2721d3953df14566a54b9fdff288b758>:0
--- End of inner exception stack trace ---
at (wrapper managed-to-native) System.Object.__icall_wrapper_mono_generic_class_init(intptr)
at System.Drawing.Color.FromKnownColor (System.Drawing.KnownColor color) [0x00007] in <2721d3953df14566a54b9fdff288b758>:0
at System.Drawing.Color.get_Black () [0x00000] in <2721d3953df14566a54b9fdff288b758>:0
at System.Windows.Forms.ThemeWin32Classic..cctor () [0x00000] in <40fc4fd150ac4c6e8103dd90b12f43df>:0
--- End of inner exception stack trace ---
at System.Windows.Forms.ThemeVisualStyles..ctor () [0x00000] in <40fc4fd150ac4c6e8103dd90b12f43df>:0
at System.Windows.Forms.ThemeEngine..cctor () [0x00007] in <40fc4fd150ac4c6e8103dd90b12f43df>:0
--- End of inner exception stack trace ---
at System.Windows.Forms.SystemInformation.get_MenuAccessKeysUnderlined () [0x00000] in <40fc4fd150ac4c6e8103dd90b12f43df>:0
at System.Windows.Forms.Control..ctor () [0x000d6] in <40fc4fd150ac4c6e8103dd90b12f43df>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control..ctor()
at System.Windows.Forms.WindowsFormsSynchronizationContext..cctor () [0x00000] in <40fc4fd150ac4c6e8103dd90b12f43df>:0
--- End of inner exception stack trace ---
at (wrapper managed-to-native) System.Object.__icall_wrapper_mono_generic_class_init(intptr)
at System.Windows.Forms.WindowsFormsSynchronizationContext.get_AutoInstall () [0x00000] in <40fc4fd150ac4c6e8103dd90b12f43df>:0
at System.Windows.Forms.Control..ctor () [0x0000d] in <40fc4fd150ac4c6e8103dd90b12f43df>:0
at System.Windows.Forms.ScrollableControl..ctor () [0x00000] in <40fc4fd150ac4c6e8103dd90b12f43df>:0
at System.Windows.Forms.ContainerControl..ctor () [0x0000e] in <40fc4fd150ac4c6e8103dd90b12f43df>:0
at System.Windows.Forms.Form..ctor () [0x00012] in <40fc4fd150ac4c6e8103dd90b12f43df>:0
at System.Windows.Forms.MessageBox+MessageBoxForm..ctor (System.Windows.Forms.IWin32Window owner, System.String text, System.String caption, System.Windows.Forms.MessageBoxButtons buttons, System.Windows.Forms.MessageBoxIcon icon, System.Boolean displayHelpButton) [0x0000c] in <40fc4fd150ac4c6e8103dd90b12f43df>:0
at System.Windows.Forms.MessageBox+MessageBoxForm..ctor (System.Windows.Forms.IWin32Window owner, System.String text, System.String caption, System.Windows.Forms.MessageBoxButtons buttons, System.Windows.Forms.MessageBoxIcon icon) [0x00000] in <40fc4fd150ac4c6e8103dd90b12f43df>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.MessageBox+MessageBoxForm..ctor(System.Windows.Forms.IWin32Window,string,string,System.Windows.Forms.MessageBoxButtons,System.Windows.Forms.MessageBoxIcon)
at System.Windows.Forms.MessageBox.Show (System.String text, System.String caption, System.Windows.Forms.MessageBoxButtons buttons, System.Windows.Forms.MessageBoxIcon icon) [0x00000] in <40fc4fd150ac4c6e8103dd90b12f43df>:0
at Mesen.GUI.Forms.MesenMsgBox.Show (System.String text, System.Windows.Forms.MessageBoxButtons buttons, System.Windows.Forms.MessageBoxIcon icon, System.String[] args) [0x00077] in <91966e149435474797b7c37b482f0bea>:0
at Mesen.GUI.Program.CurrentDomain_UnhandledException (System.Object sender, System.UnhandledExceptionEventArgs e) [0x0001b] in <91966e149435474797b7c37b482f0bea>:0
openSUSE Tumbleweed, x86-64
While debugging, trying to load a save state to go back to a previous state causes the emulator to just hang forever.
Steps to reproduce:
Hi, this fixes problem. Rendering Ranger R2 now plays!
https://github.com/softtwo/Mesen-S/tree/spc
edit: small fix
Just wanted to say, thank you for this amazing emulator so far. I only use Mesen for NES emulation and I'm sure Mesen-S will replace all my other SNES emulators eventually. :)
So with that said, I noticed some potential layering and transparency issues with this title. World 1-2, after bouncing on the up arrow ball, there is a layer of the foreground that should vanish/appear as you enter/exit it. Currently it fades out correctly, but it doesn't fade back in.
Before it fades out, I noticed that my star counter was falling behind the foreground in some spots. I'm assuming both issues are one in the same.
[ 451s] mkdir -p Core/obj.x64 && cd Core/obj.x64 && clang++ -fPIC -Wall --std=c++14 -O3 -m64 -flto -c ../Ppu.cpp
[ 466s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 466s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 466s] ^
[ 466s] ../Ppu.cpp:1839:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, true, true, true>' requested here
[ 466s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, true>();
[ 466s] ^
[ 466s] ../Ppu.cpp:1829:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, true, true>' requested here
[ 466s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, true>();
[ 466s] ^
[ 466s] ../Ppu.cpp:437:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, true>' requested here
[ 466s] RenderTilemapMode7<1, forMainScreen, true>();
[ 466s] ^
[ 466s] ../Ppu.cpp:497:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<true>' requested here
[ 466s] RenderMode7<true>();
[ 466s] ^
[ 466s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 466s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 466s] ^
[ 466s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 466s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 466s] ^
[ 466s] ../Ppu.cpp:1841:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, true, true, false>' requested here
[ 466s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, false>();
[ 466s] ^
[ 466s] ../Ppu.cpp:1829:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, true, true>' requested here
[ 466s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, true>();
[ 466s] ^
[ 466s] ../Ppu.cpp:437:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, true>' requested here
[ 466s] RenderTilemapMode7<1, forMainScreen, true>();
[ 466s] ^
[ 467s] ../Ppu.cpp:497:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<true>' requested here
[ 467s] RenderMode7<true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1839:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, true, false, true>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1831:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, true, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:437:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, true>' requested here
[ 467s] RenderTilemapMode7<1, forMainScreen, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:497:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<true>' requested here
[ 467s] RenderMode7<true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1841:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, true, false, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1831:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, true, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:437:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, true>' requested here
[ 467s] RenderTilemapMode7<1, forMainScreen, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:497:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<true>' requested here
[ 467s] RenderMode7<true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1839:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', true, false, true, true>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1829:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', true, false, true>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:440:2: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', true, false>' requested here
[ 467s] RenderTilemapMode7<0, forMainScreen, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:497:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<true>' requested here
[ 467s] RenderMode7<true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1841:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', true, false, true, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1829:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', true, false, true>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:440:2: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', true, false>' requested here
[ 467s] RenderTilemapMode7<0, forMainScreen, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:497:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<true>' requested here
[ 467s] RenderMode7<true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types be[ 429.793297] serial8250: too much work for irq4
[ 467s] fore C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1839:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', true, false, false, true>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1831:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', true, false, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:440:2: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', true, false>' requested here
[ 467s] RenderTilemapMode7<0, forMainScreen, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:497:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<true>' requested here
[ 467s] RenderMode7<true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1841:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', true, false, false, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1831:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', true, false, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:440:2: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', true, false>' requested here
[ 467s] RenderTilemapMode7<0, forMainScreen, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:497:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<true>' requested here
[ 467s] RenderMode7<true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1839:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, false, true, true>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1829:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, false, true>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:443:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, false>' requested here
[ 467s] RenderTilemapMode7<1, forMainScreen, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:497:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<true>' requested here
[ 467s] RenderMode7<true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1841:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, false, true, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1829:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, false, true>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:443:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, false>' requested here
[ 467s] RenderTilemapMode7<1, forMainScreen, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:497:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<true>' requested here
[ 467s] RenderMode7<true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1839:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, false, false, true>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1831:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, false, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:443:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, false>' requested here
[ 467s] RenderTilemapMode7<1, forMainScreen, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:497:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<true>' requested here
[ 467s] RenderMode7<true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1841:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, false, false, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1831:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, false, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:443:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', true, false>' requested here
[ 467s] RenderTilemapMode7<1, forMainScreen, fal[ 429.952664] serial8250: too much work for irq4
[ 467s] se>();
[ 467s] ^
[ 467s] ../Ppu.cpp:497:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<true>' requested here
[ 467s] RenderMode7<true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1839:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', false, true, true, true>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1829:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', false, true, true>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:437:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', false, true>' requested here
[ 467s] RenderTilemapMode7<1, forMainScreen, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:498:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<false>' requested here
[ 467s] RenderMode7<false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1841:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', false, true, true, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1829:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', false, true, true>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:437:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', false, true>' requested here
[ 467s] RenderTilemapMode7<1, forMainScreen, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:498:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<false>' requested here
[ 467s] RenderMode7<false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1839:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', false, true, false, true>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1831:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', false, true, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:437:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', false, true>' requested here
[ 467s] RenderTilemapMode7<1, forMainScreen, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:498:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<false>' requested here
[ 467s] RenderMode7<false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1841:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', false, true, false, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1831:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', false, true, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:437:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x01', false, true>' requested here
[ 467s] RenderTilemapMode7<1, forMainScreen, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:498:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<false>' requested here
[ 467s] RenderMode7<false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1839:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', false, false, true, true>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1829:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', false, false, true>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:440:2: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', false, false>' requested here
[ 467s] RenderTilemapMode7<0, forMainScreen, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:498:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<false>' requested here
[ 467s] RenderMode7<false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1841:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', false, false, true, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1829:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', false, false, true>' requested here
[ 430.111074] serial8250: too much work for irq4
[ 467s]
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:440:2: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', false, false>' requested here
[ 467s] RenderTilemapMode7<0, forMainScreen, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:498:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<false>' requested here
[ 467s] RenderMode7<false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:848:17: error: constexpr variable cannot have non-literal type 'const (lambda at ../Ppu.cpp:848:24)'
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] ../Ppu.cpp:1839:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', false, false, false, true>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, applyMosaic, true>();
[ 467s] ^
[ 467s] ../Ppu.cpp:1831:3: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', false, false, false>' requested here
[ 467s] RenderTilemapMode7<layerIndex, forMainScreen, processHighPriority, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:440:2: note: in instantiation of function template specialization 'Ppu::RenderTilemapMode7<'\x00', false, false>' requested here
[ 467s] RenderTilemapMode7<0, forMainScreen, false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:498:4: note: in instantiation of function template specialization 'Ppu::RenderMode7<false>' requested here
[ 467s] RenderMode7<false>();
[ 467s] ^
[ 467s] ../Ppu.cpp:848:24: note: lambda closure types are non-literal types before C++17
[ 467s] constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
[ 467s] ^
[ 467s] fatal error: too many errors emitted, stopping now [-ferror-limit=]
[ 467s] 20 errors generated.
[ 467s] make: *** [makefile:131: Core/obj.x64/Ppu.o] Error 1
As of the latest dev builds:
Other than the games listed above, everything else should be working properly. If you find issues with any other game, please let me know!
This one's a bit hard to explain, but I'll do the best I can.
Occasionally, when trying to load a state, the "SAVE" function gets executed instead. I'm using the default shortcuts for this (Shift + F keys to save, F keys to load), while also extending them out to F8-F10. I've noticed that it thinks the Shift is held, when its not (and no, it's not my keyboard to my knowledge, I've tested that too). While in this odd phase where the error has at least once occurred, if I continue to press F10 again in an attempt to load, it will continously keep saving.
The only way I've found that I can break out of this behavior is to press "SHIFT" as a standalone. Then when I go to load, it'll work correctly. I used my keyboard's opposite shift key when doing this, as opposed the one I normally use, just to make sure.
When trying to compile the Linux version:
[ 207s] mkdir -p Core/obj.x64 && cd Core/obj.x64 && clang++ -fPIC -Wall --std=c++14 -O3 -m64 -flto -c ../TraceLogger.cpp
[ 210s] ../TraceLogger.cpp:181:17: error: array initializer must be an initializer list or string literal
[ 210s] constexpr char activeStatusLetters[8] = cpuType == CpuType::Cpu ? cpuActiveStatusLetters : spcActiveStatusLetters;
[ 210s] ^
[ 210s] ../TraceLogger.cpp:182:17: error: array initializer must be an initializer list or string literal
[ 210s] constexpr char inactiveStatusLetters[8] = cpuType == CpuType::Cpu ? cpuInactiveStatusLetters : spcInactiveStatusLetters;
[ 210s] ^
[ 210s] ../TraceLogger.cpp:295:10: warning: enumeration values 'D', 'DB', and 'CycleCount' not handled in switch [-Wswitch]
[ 210s] switch(rowPart.DataType) {
[ 210s] ^
[ 211s] 1 warning and 2 errors generated.
[ 211s] make: *** [makefile:131: Core/obj.x64/TraceLogger.o] Error 1
[ 211s] error: Bad exit status from /var/tmp/rpm-tmp.OY4vT9 (%build)
OS: openSUSE Tumbleweed and Fedora 29, x86-64
See https://build.opensuse.org/package/show/home:KAMiKAZOW:Test/mesen-s
Will we see a Cheat finder like Mesen has? Will Mesen-S be able to use Snes9s 1.60 Cheat codes someday? Also Snes9x 1.60 had a search database here is the search database file.
This is probably known since the emulator is still young, but sometimes the beginning of sound bytes are a little chopped off when they play, be it just sound effects or music when it begins to play.
If there is a way to fix this by adjusting the latency, I'd like to know. The buffer size in Snes9x is 64 by default and I notice it is 60 in Mesen-S.
I have my 65816 code reading from an aboluste address around $4400 with the data bank register being $7E, and EventViewer recognizes that read as one from Register.
I assume this problem is attributed to CpuDebugger::ProcessRead only accepting a uint16_t address rather than a uint32_t and discarding the bank information?
The same problem happens to Write as well.
Bug : The map of the game is shaking one time when selecting a level on the level select screen.
Expected behaviour : The map should not shake at all.
How to reproduce the bug : Using the save state, validate the level to enter and the bug will appear on the left of the screen.
Super Mario World 2 - Yoshi's Island (USA)_SaveState.zip
Same problem happen on all regions and revisions of the game
Hi SourMesen,
Thanks again for this great piece of software, it's becoming my first choice for SNES emulation.
I found something strange when using Bilinear Interpolation and certain games that use Hi-Res.
Most noticeable on Seiken Densetsu 3 / Trials of Mana. The filter is much better (clearer) when there is a dialog displaying on screen, however when there is no text, the image turns noticeably blurrier. It is a bit annoying during dialog scenes, you can notice the change in between characters speaking. I suppose this kind of issues might pass unnoticed to some people, but if you try full screen I think it's easier to see.
I'm using Linux x64, and it's happening in both the Libretro core and the UI builds, compiled from source.
Just wanted to inform that when performing one of Blargg's SNES Hardware Test ROMs, the Mesen-S emulator does not seem to report the correct Controller Strobe Behavior, and fails the test.
Both Bsnes/Higan, and Snes9x pass the test.
Test ROMs can be found here if needed:
https://snescentral.com/homebrew.php
I know you have a webpage for your NES Accuracy: https://mesen.ca/#Accuracy
Didn't know if there will be one for SNES.
DevWin-0.1.0.52
Here's my settings file if you need it.
Operating System
Windows 10 Pro 64-bit
CPU
Intel Pentium G3240 @ 3.10GHz
Haswell 22nm Technology
RAM
8.00GB Dual-Channel DDR3 @ 698MHz (10-10-10-25)
Motherboard
Gigabyte Technology Co. Ltd. H81-D3 (SOCKET 0)
Graphics
ELEFW328 (1360x768@60Hz)
Intel HD Graphics (Gigabyte)
1023MB NVIDIA GeForce GT 720 (EVGA)
ForceWare version: 417.35
SLI Disabled
Storage
931GB TOSHIBA DT01ACA100 (SATA )
Optical Drives
HL-DT-ST DVDRAM GH24NSC0
Audio
Realtek High Definition Audio
Congratulations on this amazing emulator! I'm enjoying it very much, although I think I found a small bug.
Enabling 'Tools > Preferences > Advanced > Show game timer' makes the emulator crash on next start. Most times just enabling it works fine during the running session. However the emulator won't start afterwards, unless disabled manually in settings.xml:
false or delete de settings.xml as if it was a new setup.
Using Linux x64 compiled from source. Tried several updates since 0.20.0.10 to latet.
Mesen-S is currently using DXGI_FORMAT_B8G8R8A8_UNORM as its format for Textures and Backbuffer, and it should be changed to DXGI_FORMAT_B8G8R8A8_UNORM_SRGB.
The common SRGB color space is not a linear color space. It is a pre-compressed color space where one half of White 255,255,255 is actually 187,187,187, and not 128,128,128. Compare a checkerboard of Black and White pixels, and you will see that 187,187,187 matches the intensity better.
Article about that here: https://blog.johnnovak.net/2016/09/21/what-every-coder-should-know-about-gamma/
Another article: http://www.ericbrasseur.org/gamma.html
Direct3D 11 has built in support for SRGB correction.
If you declare your Texture as SRGB, then it automatically performs an SRGB to Linear RGB correction when sampling from the texture. So reading your 187,187,187 pixel will result in 0.5, 0.5, 0.5 values being used in the math.
And if you create the render target or backbuffer as SRGB, it performs a Linear RGB to SRGB correction back when writing to the destination. So writing 0.5, 0.5, 0.5 will write the 187,187,187 pixel.
This applies even in the simple case where you just draw one quad with Linear filtering.
This has no effect on the 8-bit RGB values you are putting into the texture. They are the same numbers as before.
As a side effect, thin white lines on a black background will look much brighter after being scaled this way than the old way (misinterpreting SRGB as a linear color space), so it takes a little time to get used to it if you have been doing things the wrong way for so long.
I think that the Makefile needs -stdlib=libc++
or something, but I cannot seem to get it to work. It apparently did compile at some point, as the core is here: https://buildbot.libretro.com/nightly/apple/ios-arm64/2019-08-26_cores/
The error is below:
c++ -arch arm64 -marm -miphoneos-version-min=8.0 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.0.sdk -miphoneos-version-min=5.0 -O3 -Wall -D LIBRETRO -fPIC -std=c++14 -fPIC -c ../Core/BaseCartridge.cpp -o../Core/BaseCartridge.o
make: *** [../Core/AluMulDiv.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from ../Core/AviRecorder.cpp:1:
../Core/stdafx.h:6:10: fatal error: 'memory' file not found
#include <memory>
^~~~~~~~
clang: warning: argument unused during compilation: '-mno-thumb' [-Wunused-command-line-argument]
warning: include path for stdlibc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
1 warning and 1 error generated.
1 warning and 1 error generated.
make: *** [../Core/AviRecorder.o] Error 1
make: *** [libretro.o] Error 1
In file included from ../Core/BaseCartridge.cpp:1:
../Core/stdafx.h:6:10: fatal error: 'memory' file not found
#include <memory>
Does this emulator support this title correctly?
Memory randomization?
$ make --trace
makefile:95: update target 'ui' due to: InteropDLL/obj.x64/libMesenSCore.x64.dll
mkdir -p bin/x64/Release/Dependencies
rm -fr bin/x64/Release/Dependencies/*
cd UpdateHelper && msbuild /property:Configuration="Release" /property:Platform="AnyCPU"
/bin/sh: 1: msbuild: not found
makefile:95: recipe for target 'ui' failed
make: *** [ui] Error 127
C:\Projects\Mesen-S\Core\Ppu.cpp(850): error C2127: 'clip': illegal initialization of 'constexpr' entity with a non-constant expression
Lambdas cannot be constexpr
until C++17:
constexpr auto clip = [](int32_t val) { return (val & 0x2000) ? (val | ~0x3ff) : (val & 0x3ff); };
To fix this, change Core's project settings to say C++17 in Properties / C/C++ / Language / C++ Language Standard. Or remove constexpr
.
This breaks compilation on MSVC 2019.
What's up with the Linux build? Am I doing it wrong? All I did was LTO=true make -j.
Whenever you set the Keep Rewind Data option to something other than 30 minutes, it doesn't stick. Pressing OK and then coming back to the option it is always stuck at 30. Exiting and reopening the emu doesn't make the setting change either.
As an aside, why doesn't this have a "Disable Game Selection Screen" option in Preferences/Advanced like Mesen does? I like that option and honestly wished it was turned on by default. And why no Turbo button option either?
Another thing I'd like to add is how good this emulator is. I've been playing Wild Guns and it plays much better than Snes9x. The controls are much tighter and the collision detection is on point (Snes9x hiccups a lot with this game). And everything just looks smoother, even Blargg's filter has the slight jitter like a real television of the time if you look closely enough.
Right now, it copies the wrong file name, which forces it to fail compiling.
To fix, change the following in the Makefile:
else ifneq (,$(findstring ios,$(platform)))
TARGET := $(TARGET_NAME)_libretro.dylib
to
else ifneq (,$(findstring ios,$(platform)))
TARGET := mesens_libretro_ios.dylib
Then it works.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.