查看: 1817|回复: 10

[新闻] Bsnes Mcfly 106r13 (SNES Emulator for WIN) (Bsnes 濾鏡加強版)

发表于 2018-6-5 23:06:51 | 显示全部楼层 |阅读模式
本帖最后由 lo585983 于 2018-9-8 08:46 编辑

bsnes-mcfly seeks to port the Qt GUI of bsnes v073 upwards to modern higan/bsnes versions, so that the long list of features in this GUI are usable with the latest SNES emulation improvements, both with traditional ROM files and with higan v107-style gamepaks (cartridge folders). The goal is to get users to migrate away from bsnes v073 and bsnes-classic, so that its ancient cartridge folder format with XML manifests can finally be put to rest permanently.

What bsnes-mcfly does NOT do is compete with bsnes v107. I will not actively encourage users of bsnes v107 to migrate to bsnes-mcfly, because bsnes v107 combines the most important features with a relatively bug-free GUI, and I have no desire to harm bsnes v107 in any way.

Current release version: v106r13 (based on higan/bsnes v106r59)

This version of the Qt GUI has the following features (an ! indicates an evil hack that modifies part of the Super Famicom emulator core):

  • Compatibility with higan/bsnes v106r59, including v107-style gamepaks (cartridge folders)
    • Low-level emulation of the HG51BS169 (Cx4) and ARM6 (ST018)
    • Newer MSU1 features such as audio resume
  • Concatenated firmware in game ROMs, as well as a "firmware/" fallback directory.
    • No cartridge folders are created within the user's home directory. It is all handled in memory.
  • Database lookup of SNES and Super Famicom cartridges. The database is embedded right into the application along with heuristics for games not in it, so icarus is not required.
  • Compressed archive support
    • Built-in: Zip, GZip
    • With archive-reader: 7z, BZip2
      • 7z support by Igor Pavlov's LZMA SDK, available in the public domain
      • BZip2 support by Rob Landley under the zero-clause BSD license
  • Copier extensions: SMC, SWC, FIG, UFO, GD3, GD7, DX2, MGD, MGH, 048, 058, 068, 078, BIN, USA, EUR, JPN, AUS
    • All of these extensions are also available for use with BS Memory and Sufami Turbo slot cartridges.
  • Optional 512-byte copier header
  • WASAPI and ASIO audio drivers
  • Exclusive mode for Direct3D and WASAPI
  • Separate directories for save RAM, save states, and other mutable game files
  • Turbo buttons
  • asciiPad (more advanced turbo switches with Off, Turbo, and Auto settings)
  • !Simultaneous up+down and left+right (must be enabled in the settings file)
  • IPS, UPS, and BPS soft-patching
    • IPS and UPS patches are applied before removing the copier header, and BPS patches are applied after.
  • Movie recording and playback
  • Cheats
      • Can omit the address/data separator, use an equals sign, or use a colon; higan supports the equals sign only.
    • Game Genie (GGGG-GGGG)
      • Will remember that you inputted the code in Game Genie format instead of converting it to Pro Action Replay on save and reload.
  • Cheat search (works only on WRAM at 7e-7f:0000-ffff)
  • !Enabling/disabling of individual PPU layers and DSP channels (the former only in the Compatibility and Performance profiles, the latter in every profile)
  • Software filters
    • 2xSaI, Super 2xSaI, Super Eagle
    • HQ2x, LQ2x, Scale2x
    • Pixellate2x
    • blargg's snes_ntsc (with 15-bit precision instead of 13-bit precision)
    • Phosphor3x (was included in some bsnes v08x versions)
  • OpenGL shaders
    • Curvature and Edge Detection from higan v092
    • HQ2x, Pixellate, Scale2x
    • HDR-TV, Watercolor (these were marked “Archive” in bsnes v083 and not restored when bsnes v085 went back to XML from BML)
    • Sepia (converted from Direct3D)
  • Only 1 copy of nall for the overall project instead of a separate copy each for bsnes, snesfilter, and snesreader
  • Performance profile speed hacks (accuracy and compatibility profiles not affected)
    • High-level emulation of the DSP1, DSP2, DSP3, DSP4, ST010, and Cx4, but firmwares are still required
    • SMP and DSP are merged into a single APU class that references blargg's SPC_DSP
    • Mixed opcode/cycle timing for the SMP; slightly faster while still supporting Tales of Phantasia
    • Only the Super Scope and Justifier use cothreading instead of every single peripheral
    • JOY1/JOY2/JOY3/JOY4 registers handled on a controller-by-controller basis

Features missing from bsnes v073:

  • Compressed archives: Z (compress), RAR, JMA
    • All of these have restrictive licenses. Need to think carefully on how to implement them...
  • Selecting one of multiple files in a single Zip archive
  • snes_ntsc configuration dialog
    • Because the palette size was increased from 32768 to 524288, changing a setting causes bsnes-mcfly to freeze while it recreates the palette. This dialog had to go.
  • Binding the Pause/Break key to an input
  • Direct3D shaders
    • As consolation, the Sepia shader was converted to OpenGL

If anyone has any reason whatsoever to switch back to bsnes v073 or bsnes-classic after trying my emulator, please let me know. I will rectify that situation as soon as I can. My goal is to kill XML manifests, and anything that causes bsnes-classic to remain popular is also something that keeps XML manifests alive, so I will take any legal means necessary to stop that from happening.

That said, the official bsnes v107 is the preferred option, so if you are satisfied with the feature set of bsnes v107, then use that instead. bsnes-mcfly is only concerned with replacing bsnes v073 and bsnes-classic, not bsnes v107.


Original post: “Is AWJ still in the scene? Regarding bsnes-classic”

Hello everyone. I was highly reluctant to come back to NesDev after a heated dispute between me and some of the forum members here on NesDev last year, but today, I will make a one-time exception.

AWJ made a fork of bsnes v073, which he called “bsnes-classic”. In it, he revived the Qt-based GUI and backported low-level emulation of the uPD96050 coprocessor used by F1 Race of Champions II and Hayazashi Nidan Morita Shougi from bsnes v074. Since then, he has backported a few of higan's emulation accuracy improvements, all to an ancient version of bsnes, all for the sake of a feature-rich GUI based on a bug-plagued toolkit. bsnes-classic was further forked into the debug-oriented bsnes-plus.

I believe that this practice is unsustainable. As higan's accuracy increases, so too does the effort needed to keep track of its changes and backport them. Most importantly, bsnes-classic preserves a badly-aged XML-based manifest format for cartridge folders; today, higan uses a slimmer syntax named “BML” for manifests, and many years of experience have shaped the syntax into what it is today, so that ROM hackers have greater control over their memory maps than they did back in the days of bsnes v073. Unfortunately, the convenience of the Qt GUI means that ROM hackers such as Tom (Far East of Eden: Tengai Makyou Zero) must force themselves to hack the older XML manifest which, given its age, is prone to errors and failure. The situation is not unlike ZSNES, by far the most popular and simultaneously the most bug-filled emulator, whose tremendous userbase holds back progress with translations and ROM hacks that won't work on real SNES hardware.

Therefore, I seek to do the exact opposite: to forwardport the Qt GUI and make it work with higan v106 and later versions. I have documented my efforts on byuu's message board. The current working name for this fork is “bsnes-classic”, exactly the same name as AWJ's fork, and that is not a coincidence.

It cannot be denied that what I am doing is predatory; I am writing a higan fork with exactly the same name as another fork and with the same goals, with the sole exception that it be based on higan v106 instead of bsnes v073 and use the former's BML manifest format both with traditional ROM files (both headered and headerless) and with cartridge folders. Therefore, I believe I owe it to AWJ to inform him of the existence of my fork named “bsnes-classic” so that he can share his opinion on whether I should keep using the name and what he will do with his fork.

And therein lies the reason for my return to NesDev, despite my better judgement: AWJ has been offline from NesDev since October, and neither has he shown any signs of life on GitHub. Even on Freenode's #retroarch channel, hunterk searched and could not find him. If I cannot get in contact with AWJ, then the future of bsnes-classic (my fork, not AWJ's) and the ideals that come with it look bleak.

I hesitate to ask NesDev about this after the way a few of its key members have treated me in the past, but for now, I will steel myself against any flames that come my way. Does anyone here on NesDev know about AWJ's current status within the emulation community as a whole?



文件大小:14.19 M

文件大小:14.43 M

文件大小:13.10 M

文件大小:13.10 M

文件大小:13.06 M

文件大小:13.10 M

文件大小:13.11 M

发表于 2018-6-6 06:42:28 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2018-6-6 08:07:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2018-6-6 10:39:06 | 显示全部楼层
本帖最后由 lw12131155 于 2018-6-6 10:41 编辑


使用道具 举报

发表于 2018-6-6 12:10:48 | 显示全部楼层
本帖最后由 hawkhanye 于 2018-6-6 12:16 编辑
天崖无雪 发表于 2018-6-6 08:07

回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-17 05:36:57 | 显示全部楼层
Bsnes Mcfly 106r05 (SNES Emulator for WIN) (Bsnes 濾鏡加強版)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-19 22:55:35 | 显示全部楼层
Bsnes Mcfly 106r08 (SNES Emulator for WIN) (Bsnes 濾鏡加強版)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-25 03:30:45 | 显示全部楼层
Bsnes Mcfly 106r010 (SNES Emulator for WIN) (Bsnes 濾鏡加強版)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-9 04:38:38 | 显示全部楼层
Bsnes Mcfly 106r11 (SNES Emulator for WIN) (Bsnes 濾鏡加強版)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-22 14:38:24 | 显示全部楼层
Bsnes Mcfly 106r12 (SNES Emulator for WIN) (Bsnes 濾鏡加強版)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-8 08:46:26 | 显示全部楼层
Bsnes Mcfly 106r13 (SNES Emulator for WIN) (Bsnes 濾鏡加強版)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册


小黑屋|手机版|Archiver|琵琶行论坛 ( 赣ICP备12000882号  

GMT+8, 2019-3-22 16:23 , Processed in 0.062043 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表