Mesen-S (SNES) core

Libretro isn’t building now:

In file included from ../Core/CpuDebugger.cpp:6:
../Core/Disassembler.h:75:21: error: extra qualification 'Disassembler::' on member 'GetSource' [-fpermissive]
   75 |  DisassemblerSource Disassembler::GetSource(SnesMemoryType type);
      |                     ^~~~~~~~~~~~
g++ -O3 -Wall -D LIBRETRO  -std=c++14  -c ../Core/CpuDisUtils.cpp -o../Core/CpuDisUtils.o
make: *** [Makefile:315: ../Core/CpuDebugger.o] Error 1

Thanks, fixed - one day compilers will agree about what is valid C++ and what isn’t… one day… maybe… Who am I kidding, it’s never going to happen :stuck_out_tongue:

2 Likes

Finished up most of the SA-1 implementation a couple of days ago - as far as I know, all SA-1 games should be working properly (the features I haven’t implemented yet aren’t used by any SA-1 game, I believe). Fixed a Super FX bug that was affecting Yoshi’s Island a few days ago, too.

Also, I just committed Multitap+Super Scope support, so other than the 4 games that use chips that aren’t supported yet (SPC7110 & ST018) and 2 games that freeze at the start, everything else within the licensed game library should be playable now (not impossible that some games have issues nobody has found yet, though!)

5 Likes

Excelent work!!! By the way, how can I use bios files with ehancement chip games in the libretro core version? In the stand-alone, the emulator asks for the files.

Thanks!!

They need to be put in a “Firmware” subfolder inside retroarch’s “system” folder, with the same filenames that the standalone version uses. (e.g dsp1.rom, dsp1b.rom, etc.)

1 Like

I can’t seem to find the multitap options.

You should be able to select “Multitap” as the controller type for player 2.

Unrelated: I added MSU1 support yesterday. It expects a folder with the rom (e.g myrom.sfc) + a file called myrom.msu and then tracks called myrom-#.pcm, etc. Alternatively, it’ll also accept a file called msu1.rom (instead of myrom.msu) + tracks named track-#.pcm, etc.

3 Likes

Once you get cheats running on this thing, it’ll be the best core out there.

Game Genie/Pro Action Replay cheats should already be working as of a couple of weeks ago.

1 Like

Just downloaded the core update. Works great.

1 Like

I just started using this emulator and it’s great. The overclocking feature is a godsend in games like Harvest Moon which becomes a laggy mess when you have too many cows.

2 Likes

Just a quick update on things that were added over the last few months.

SPC7110 games are now supported, so only the ST018 coprocessor is still unsupported (which is only used in a single Japanese shougi game)

MSU-1 patches are supported, too (and expect the same file/folder layout as what snes9x uses for them)

BS-X/Satellaview games are also supported (in the form of .bs files). This requires a BsxBios.sfc file to be added to the system folder. The original name for this rom file is BS-X - Sore wa Namae o Nusumareta Machi no Monogatari. You can also configure parts of the Satellaview broadcast by creating a Satellaview folder in the system folder and putting the appropriate .bin files (these can be created with the “Satellaview” application, and a set of files that can be used exists in the Git repo here: https://github.com/SourMesen/Mesen-S/tree/master/UI/Dependencies/Satellaview)

Something that is missing for BS-X in the Libretro core at the moment is the ability to customize the date. As is, it will always use your computer’s current date and time, which may be problematic for some titles.

5 Likes

I wanted to try the new CPU overclocking feature and tested with two games DBZ: Hyper Dimension and Stun Race FX. In both cases I got no audio and very low performance.

If I disable HardSync GPU it plays fine but with no audio, if I enable the disable runahead it doesn’t run at all, if I run it with default config (not my snes config) audio plays fine. I’m still trying to find what setting conflicts with audio.

Win7 x64 SP1, 4790K, GTX1070 16Gb Retroarch 1.7.7 x64

mesen-s_aspect_ratio = "Auto"
mesen-s_blend_high_res = "disabled"
mesen-s_ntsc_filter = "Disabled"
mesen-s_overclock = "Low"
mesen-s_overclock_type = "Before NMI"
mesen-s_overscan_horizontal = "None"
mesen-s_overscan_vertical = "None"
mesen-s_ramstate = "Random Values (Default)"
mesen-s_region = "Auto"
mesen-s_superfx_overclock = "200%"

Edit: ok, it seems to have issues loading through command line, if I manually open the config through the GUI I have no issues.

Edit2: -f flag (fullscreen) is the issue

retroarch.exe “Y:\ROMS\Super Nintendo Entertainment System\Dragon Ball Z - Hyper Dimension (Japan) (P. Eng).zip” -f -L “Y:\Emulators\Super Nintendo Entertainment System\RetroArch 1.7.7 x64\cores\mesen-s_libretro.dll”

Try running it like:

retroarch.exe -L “Y:\Emulators\Super Nintendo Entertainment System\RetroArch 1.7.7 x64\cores\mesen-s_libretro.dll” “Y:\ROMS\Super Nintendo Entertainment System\Dragon Ball Z - Hyper Dimension (Japan) (P. Eng).zip” -f

The order didnt make a difference. I debugged it setting by setting and it has a conflict when the following flycast settings are present in the core-config (even at defaults):

reicast_lightgun1_crosshair = "disabled"
reicast_lightgun2_crosshair = "disabled"
reicast_lightgun3_crosshair = "disabled"
reicast_lightgun4_crosshair = "disabled"
reicast_mipmapping = "enabled"
reicast_oit_abuffer_size = "512MB"
reicast_per_content_vmus = "disabled"
reicast_pvr2_filtering = "disabled"
reicast_region = "Default"
reicast_render_to_texture_upscaling = "2x"
reicast_screen_rotation = "horizontal"
reicast_synchronous_rendering = "disabled"
reicast_system = "auto"
reicast_texupscale = "2x"
reicast_texupscale_max_filtered_texture_size = "512"
reicast_threaded_rendering = "disabled"