TASEmulators / BizHawk

BizHawk is a multi-system emulator written in C#. BizHawk provides nice features for casual gamers such as full screen, and joypad support in addition to full rerecording and debugging tools for all system cores.
http://tasvideos.org/BizHawk.html
Other
2.2k stars 385 forks source link

Macro-Ticket: Bugs to fix only at major release #971

Closed zeromus closed 1 year ago

zeromus commented 7 years ago

Due to backwards compatibility problems

YoshiRulz commented 5 years ago

There are a few typos visible to users, the ones I've noticed are in errors. edit: fixed in c38fb09d3

"mutli-disk": https://github.com/TASVideos/BizHawk/blob/3b4d82defba557bc2c2988d3b03fa77b2b40e4ac/BizHawk.Emulation.Cores/Computers/AmstradCPC/Media/Disk/CPCExtendedFloppyDisk.cs#L54 https://github.com/TASVideos/BizHawk/blob/3b4d82defba557bc2c2988d3b03fa77b2b40e4ac/BizHawk.Emulation.Cores/Computers/AmstradCPC/Media/Disk/CPCFloppyDisk.cs#L54 https://github.com/TASVideos/BizHawk/blob/3b4d82defba557bc2c2988d3b03fa77b2b40e4ac/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Media/Disk/CPCFormat/CPCExtendedFloppyDisk.cs#L54 https://github.com/TASVideos/BizHawk/blob/3b4d82defba557bc2c2988d3b03fa77b2b40e4ac/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Media/Disk/CPCFormat/CPCFloppyDisk.cs#L54

"emulaors": https://github.com/TASVideos/BizHawk/blob/3b4d82defba557bc2c2988d3b03fa77b2b40e4ac/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Gui.cs#L612

"Geneie": https://github.com/TASVideos/BizHawk/blob/3b4d82defba557bc2c2988d3b03fa77b2b40e4ac/BizHawk.Client.EmuHawk/tools/GameShark.cs#L321 https://github.com/TASVideos/BizHawk/blob/3b4d82defba557bc2c2988d3b03fa77b2b40e4ac/BizHawk.Client.EmuHawk/tools/GameShark.cs#L2492 https://github.com/TASVideos/BizHawk/blob/3b4d82defba557bc2c2988d3b03fa77b2b40e4ac/BizHawk.Client.EmuHawk/tools/GameShark.cs#L3043

"pluging": https://github.com/TASVideos/BizHawk/blob/c3c262db123b6d1982a2c3af54e9034f61b2cc5b/BizHawk.Client.EmuHawk/config/N64/N64VideoPluginconfig.Designer.cs#L545 https://github.com/TASVideos/BizHawk/blob/7df71f2c86f14998f11cf8bf641977704fb3f701/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/NativeApi/mupen64plusCoreApi.cs#L346

YoshiRulz commented 5 years ago

edit: done in c3a359a58

https://github.com/TASVideos/BizHawk/blob/3b4d82defba557bc2c2988d3b03fa77b2b40e4ac/BizHawk.Emulation.Cores/Consoles/Sony/PSX/Octoshock.cs#L221-L222

YoshiRulz commented 5 years ago

CLR target should be bumped to .NET Framework 4.8, the last version (see https://github.com/TASVideos/BizHawk/issues/1415#issuecomment-513712639). Win7 users will need the download, Win8.1 users got it through Windows Update ages ago, and Win10 users have it pre-installed.

YoshiRulz commented 5 years ago

Potential bugs in disasm, found during #1533. SNES moved to https://github.com/TASEmulators/BizHawk/issues/2704#issuecomment-1483978377. GB was not a bug, documented in https://github.com/TASEmulators/BizHawk/commit/44322e6a7d5197b1a2d4f5a7c0b17e08cc6c18b2.

YoshiRulz commented 5 years ago

edit: split to #2199

Can we please have the prereq installer (edit: or EmuHawk) download FFmpeg? Even GitHub knows shipping a copy is dumb: screenshot of terminal emulator showing warnings from git

edit:

ffmpeg should not be installed

EmuHawk could download FFmpeg binaries to its own directory the first time a user opens the AV recording window.

zeromus commented 5 years ago

no, because it would have to be “installed” and ffmpeg should not be installed.

YoshiRulz commented 5 years ago

I'm ashamed I forgot this until now, but we should be providing at least a checksum for each release, preferably signed. Despite OpenSSF Best Practices approving GitHub Releases for the MITM prevention criterion in the gold tier, it's far from a gold-standard solution.


On IRC I suggested to write the (most recent) release to config so later versions can warn the user about importing. edit: done in 8bb9cee9c + https://github.com/TASEmulators/BizHawk/commit/56b9ec2350dccb6ab54ed8174853c6391e9c5fd4


Rename settings called "Autoload" to either "Autoload with EmuHawk" (for tool windows) or "Autoload rom"/"Autoload watches"/"Autoload tasproj"/whatever (for everything else). edit: done in 7062ba5b6


from #1740: "[...] tell you which version [of EmuHawk] was used when you try to load the save state [made with an older version]" edit: calling this done with https://github.com/TASEmulators/BizHawk/commit/ee241dc6263e4261216c454b4a3410850e7530bd


From https://github.com/TASEmulators/BizHawk/issues/1719#issuecomment-549410141:

If there's a way to filter out PRs from the AppVeyor page, the readme needs to point there instead so that nobody downloads what is essentially an out-of-date build while thinking it's the latest.

edit: at some point AppVeyor was changed to only build master

edit edit: also it's barely useful anymore


Changing the Lua API at all—removing broken functions, fixing names, or especially changing behaviour without a rename—is a bad idea. We should do everything we can to freeze it until we've decided its fate, and then change it, all at once. Incremental changes without any backwards compatibility system irritates script authors at best, and forces them to use old BizHawk releases at worst.

edit: benched the .NET API overhaul for now

I believe that my .NET API overhaul which I'm planning for 2.6 (provisional version number) will be a good opportunity to overhaul Lua. Once I'm finished with that, we'll have five options for an overhaul:

  1. reimplement the 2.4 Lua API with the 2.6 .NET API
  2. change the Lua API to mirror the 2.6 .NET API (script authors would have a lot of work, but mirroring the .NET API means my backwards compatibility system would work for Lua scripts too)
  3. change the Lua API to something completely different (again, script authors would have a lot of work; going with this over option 2 needs a good alternative to be proposed)
  4. do both options 1 and 2; have a compatibility mode that replicates the functionality of the 2.4 Lua API as closely as possible
  5. "Lua sux Python rulez"—replace the Lua Console with a Python/Ruby/whatever Console, then pick one of the first four options
  6. drop Lua with no replacement and force everyone from casuals to Isotarge to use the .NET API

If we keep Lua around (options 1 through 3), we'll need to rewrite a large portion of our Lua code. With that in mind, we should consider starting from scratch with MoonSharp.

YoshiRulz commented 1 year ago

Is

Change hooks to combined namespace e.g. "sysbus" read/write/execute to "sysbus.read"/"sysbus.write" etc.

distinct from #759? This looks like you wanted a sysbus library like mainmemory. edit: Or is this moving the events to a new sysbus library?

edit: Nothing left here but "rename Lua functions", closing.