Commit Graph

18686 Commits

Author SHA1 Message Date
alyosha-tas 4165b2893d Cores: All cores must update Frame counter post-emulation. NOTE: This is a sync breaking change for MGBA movies using RTC, as the time sent to the core was the pre-incremented time. 2021-05-20 09:24:49 -04:00
alyosha-tas 7c661b5520 Autofire Controller: Latch frame number with controller latch, avoids midframe conflicts when cores update frame pre-emulation. 2021-05-20 09:21:42 -04:00
alyosha-tas bf9c6d784d NESHawk: add missing mapper variable to state. Only for some pirate games so won't fix any reported issues, just something I noticed. 2021-05-17 20:45:36 -04:00
alyosha-tas 94a851ef9e O2Hawk: fix #2684 2021-05-17 18:29:00 -04:00
alyosha-tas 4f24c6ac70 GBHawk: fix #2709 , also fixes a test that previously passed for the wrong reason 2021-05-17 17:10:25 -04:00
alyosha-tas 9f71f9b424 GBHawk: #2715 , still needs vram open bus fix but that's seperate 2021-05-17 17:07:00 -04:00
alyosha-tas 12b5ea62eb C64: implement memory callbacks 2021-05-17 15:10:09 -04:00
YoshiRulz 270ee700fb
Fix unassigned field warning 2021-05-17 10:47:43 +10:00
YoshiRulz 1aa9481a2a
Flip expected/actual in PlayMovie 2021-05-17 10:43:19 +10:00
nattthebear bc21f296a0 Romloader: Add `DontTryOtherCores` config setting
If set, only the first preference core (whether it be through gamedb or preferredcore or priority or whatever) will be tried, and a failure for it will immediately fail the entire thing.  This is mostly a developer feature to aid in debugging.
2021-05-16 11:57:30 -04:00
nattthebear e0a357f68d Support `ref structType` in BizInvoker
Could be useful if you need a struct type on the C# side for perf reasons, maybe to avoid allocations.  Like with passing classes, this is just a pointer conversion:  BizInvoker's design philisophy explicitly leaves out any sort of recursive field conversion that would necessitate making new objects.
2021-05-16 11:38:08 -04:00
nattthebear a18ea12bc0 Bsnes new - delegate refactoring
Fix reliance on GetFields() ordering which, per MDN, is unspecified.
CallingConventionAdapters.MakeWaterbox(...) doesn't care what order they're in, but snes_set_callbacks(...) does.
2021-05-16 10:03:03 -04:00
YoshiRulz fe6bf7ba12
Disable Tool Box on Linux (fixes #2741)
Was going to Close() the instances made by ToolBox.SetTools, which is probably a
good idea still, but it didn't cause my overridden LogWindow.OnClosing to run so
I gave up. The Tool Box is dumb anyway.
2021-05-16 08:57:12 +10:00
Morilli e2b38732dd Fix bsnes memory domains and add bsnes.wbx.gz 2021-05-15 19:36:08 +02:00
Moritz Bender 5d20862f26
Implement bsnes version 115 as a new core (#2740)
* Slam all this shit in here i don't care

* no lzma pls

* un-hack things that i hacked earlier (closer to bsnes source now)

* remove more unused files

* remove more files

* get some stuff working on this weird ass branch

* do this to get actual video (holy shit it works) while palette is incorrect

* make video look correct and hopefully fix stack waterbox allocation size uh ?

* Move the new bsnes core to its own dir as a new core and get input working

* remove leftover files from old bsnes

* fix some shit for now

* make lag frame detection work

* Improve cartridge loading to hopefully make sgb work (haven't tested)

- also changes some audio buffer stuff, might be better or worse than before idk
- need to figure out the saveram stuff
- path requests might actually completely fail atm, no idea how to verify that

* refactor to use a switch instead of some weird array with function pointers

- and implement snes_get_mapper, might be helpful or smth idk

* implement entropy c++-side and delete all this useless code holy

* delete dumb unnecessary code

* implement snes_peek_logical_register c++-side

* normalize all indentation

* attempt to properly support sharprtc and epsonrtc data loading and writing

* Duplicate winforms code to add entropy support c#-side and implement layer_enable functionality

The duplicated code is just so i can have a proper window for the new bsnes core. I do not like duplicating code like this, so this should be improved if possible

* Checkpoint for the start of getting rid of the ugly api wrapper stuff

* Next checkpoint for a full api refactor

* bullshit denied

just no.
every file is either copied or manually edited or written from scratch etc.
do not. force. one indent_style on every single file.
It just does not work.

* remove the entire eMessage_CMD handling and convert to native function calls

* general improvements regarding functionality

- adds hotfixes and fast_ppu core options
- add back the alwaysDoubleSize setting
- use bsnes's own serialize function for savestating now
- generate and use the color palette only in c# cause it doesn't need to be on the c++-side
- and more cleanup like always

* somewhat implement IMemoryDomains

* Implement trace logger and cleanup more unused stuff

* Implement ISaveRam, fix controller mapping for TAStudio and remove the pwrap stuff

* Fix ISaveRam, add a controller configuration box for the new core, (hopefully) fix controller inputs

- also differentiates BG prio0 and prio1 now (with options for it)
- some minor irrelevant edits in bsnes source

* Cleanup some more and optimize a bit

* Support firmware loading and make sgb work (hopefully)

* Remove all unused files

* Add back CropSGBFrame option and cleanup snes_video_refresh logic

* Some hopefully sensible changes

* One more cleanup pass

* Change to new PortedCore attribute

necessary after the changes in 98b07c42d5

Co-authored-by: nattthebear <goyuken@gmail.com>
2021-05-14 20:06:13 -05:00
YoshiRulz 68ba190c2f
Fix text wrapping in SNESOptions
fixes 64d14a7f9
2021-05-14 15:28:47 +10:00
YoshiRulz fdb5dfb7e5
Silence flood of prints on startup (in Debug), obviously no-one cares 2021-05-14 13:41:28 +10:00
YoshiRulz a9facd895a
Fix accelerator on system menu 2021-05-14 13:26:18 +10:00
YoshiRulz f614e41834
Use mnemonic instead of long name for system menu
fixes 553319ec9
2021-05-14 12:44:48 +10:00
YoshiRulz a357da360e
When mGBA fails with missing firmware, throw MissingFirmwareException 2021-05-14 12:19:45 +10:00
YoshiRulz c57cd97f56
Make MainForm.RebootCore return bool, read in MainForm.StartNewMovie
resolves #2147
2021-05-14 12:16:53 +10:00
YoshiRulz 5229d664c4
Remove duplicate TOC entry from readme 2021-05-13 13:39:14 +10:00
YoshiRulz 07f637fef0
Remove garbage from misbehaving Gambatte build 2021-05-13 13:35:57 +10:00
TiKevin83 3dcc487df2
Fix Gambatte RTC on Hard Reset (#2739) 2021-05-12 23:25:28 -04:00
feos 1c79afe8c8 update mame version 2021-05-12 23:32:36 +03:00
feos 9b2fce578c make LogWindow automatically scroll to last added line 2021-05-11 21:14:14 +03:00
YoshiRulz 567cb0c8fd
Disable the partial implementation of haptic feedback 2021-05-12 03:59:38 +10:00
YoshiRulz f7e38d499d
Update mGBA binary for Linux
https://gitlab.com/TASVideos/BizHawk-ports-CI/-/jobs/1254060848
2021-05-12 03:12:44 +10:00
feos 8cc5488de3 update mgba to release 0.9.1 2021-05-11 19:17:46 +03:00
zeromus 6f992e92e7 ok let's try this a different way so that mupen can work. now I allow the _lines and listcount to not get updated atomically, but hopefully the listcount gets updated before the user ever gets a chance to see it or interact with it (regardless of whenever that update actually happens) 2021-05-09 15:42:11 -04:00
zeromus a886a9b12a fix thread problems in log window (should address #2694 but I'm not calling it closed because maybe someone will jettison this log type completely)
note: in principle
1. _lines and the VirtualListSize are meant to be updated atomically
2. these can be written to from a different thread while the gui thread reads them
this necessitates a high degree of caution around how those variables are accessed, which is made complicated because VirtualListSize isn't a variable but rather done as a win32 call on the gui thread only
2021-05-09 14:54:16 -04:00
YoshiRulz f67de7a23b
Fix NRE when loading HelloWorld ext. tool 2021-05-10 04:35:59 +10:00
YoshiRulz cfad22e80d
Change UI for rewind buffer size (resolves #2302) 2021-05-10 03:33:23 +10:00
feos 2832df893b mame: added more mnemonics 2021-05-08 23:07:00 +03:00
feos 701d340e00 mame: probably fix audio 2021-05-08 21:01:45 +03:00
nattthebear 547bf6d308
Add delta compression rewinder (#2733)
Good size reduction for some cores, less useful for others.  Typically moderately slower.  Has some threading built in (cannot be disabled).

Example speeds with PSX core:

104 fps with delta rewinder
112 fps normal rewinder (no compression)
124 fps without rewinder
2021-05-08 08:47:12 -04:00
YoshiRulz 3ea71a2dda
EXTERMINATE SPACES 2021-05-08 08:16:10 +10:00
YoshiRulz 8f7b01bffe
Fix whitespace in defctrl.json 2021-05-08 06:26:17 +10:00
YoshiRulz b9e29e78b4
Fix default PCE gamepad bindings (fixes #2720) 2021-05-08 06:23:23 +10:00
YoshiRulz 9cd3d0b57f
Finish null-safety in BizInvokerUtilities
fixes b6f1afcce
2021-05-08 05:57:24 +10:00
YoshiRulz 98b07c42d5
Extract subtype PortedCoreAttribute from CoreAttribute 2021-05-07 00:14:37 +10:00
YoshiRulz 796d0652e4
Clean up ported vs hawk core handling in BizBoxInfoControl 2021-05-07 00:11:43 +10:00
YoshiRulz 54301e9616
Correct info in melonDS' [Core] attr
not sure on the version
2021-05-06 23:28:08 +10:00
YoshiRulz d570cc2fcc
Return correct CPU name from GBDisassembler (Gambatte)
fixes b0095927b
2021-05-06 22:33:58 +10:00
CasualPokePlayer db97427ae1
Add rgbds syntax for GB/C disassembly (#2706)
* replace current GB/C syntax with rgbds syntax
* make rgbds syntax an option, only works for Gambatte tracelogger

* fix add sp/ld hl,sp+
These opcodes aren't disassembled correctly at all; they seem to just use the exact same logic as jr, which doesn't really work here since these are explicit adds, and these opcodes use sp, not the pc. This is probably the most logical approach to this opcode.

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2021-05-05 21:52:25 -04:00
CasualPokePlayer 3372556ef0
[Gambatte] MBC3 RTC Refactor (And add a way to set initial RTC state) (#2724)
* slightly fix gambatte peeking
* fix gambatte layer masking, move layer masking to sync settings (these settings affect sync, they shouldn't be normal settings)
* block toggle layer hotkeys when movie recording
* refactor Gambatte's RTC
* add a way to set an inital RTC state during a movie recording
* prevent Gambatte from saving RTC data when recording a movie, needed to create save-anchored movies
2021-05-05 21:40:36 -04:00
YoshiRulz 7a7522f282
Add path helpers, normalise rom path from CLI, update readme
see #2077
2021-05-05 06:48:05 +10:00
YoshiRulz 3fee117c5f
Clean up toggle/refresh buttons in Lua Console 2021-05-04 23:57:12 +10:00
YoshiRulz 0a9d496ece
Accept all 4 colour formats in all Lua functions, update docs/wikitext
resolves #2602
2021-05-03 19:06:15 +10:00
YoshiRulz 893396a009
s/long/int/ in Lua so addresses 0x80000000..0xFFFFFFFF are usable
see #1734
2021-05-03 16:54:13 +10:00