Commit Graph

4454 Commits

Author SHA1 Message Date
zeromus 2c62d8cf73 add "TurboGECD" disc type identifier. fixes #2043 2020-05-26 13:12:47 -05:00
zeromus 78bde0a5b4 extra fix due to last commit 2020-05-26 13:12:06 -05:00
zeromus 5a6072cdf0 Revert "Move some private helper methods to local methods in DiscSystem"
This reverts commit 6f813edbdb.
2020-05-26 12:51:33 -05:00
nattthebear 7244231cc4 adjust comments 2020-05-26 08:17:39 -04:00
YoshiRulz 33ff00714d
Change more input code to use int for axes instead of float
This probably breaks TAStudio or something, on the bright side a lot of the
float equality checks are gone. see e12b5d813
2020-05-26 21:45:20 +10:00
YoshiRulz 3e5aa1a65f
Add Menees.Analyzers and update FxCop 2020-05-26 17:22:20 +10:00
zeromus 162a151451 don't need to complain when I can do this
This reverts commit 02a70a4457.
2020-05-25 23:15:25 -05:00
YoshiRulz 6e9539157e
Allow searching contents of .gz, .tar, and .rar archives
not .tar.gz though, it thinks it's a nested archive and that's disallowed
somewhere else
2020-05-26 14:08:10 +10:00
YoshiRulz 7ae94c4300
Fix nullability of return type 2020-05-26 13:46:54 +10:00
YoshiRulz 02a70a4457
Show dialog on launch when running an unsupported version of Windows
this time it doesn't happen on dev builds so zeromus can't complain
see 60b7858fb, 8c50945ec
2020-05-26 13:43:11 +10:00
alyosha-tas 3a2aae61aa Merge branch 'master' of https://github.com/TASVideos/BizHawk 2020-05-25 22:34:18 -04:00
alyosha-tas 9be42c5c69 Fix picking GBhawk core 2020-05-25 22:33:15 -04:00
adelikat cd5591a122 remove some redundant code 2020-05-25 21:25:24 -05:00
adelikat 0d12d5a819 CheatList - pass in the DisableCheatsOnLoad config value 2020-05-25 21:25:24 -05:00
adelikat 7778fccd77 add uzebox path entries, fixes #2043 2020-05-25 19:21:31 -05:00
nattthebear a20c3c3ccb Change waterbox to use memory reserve semantics
If a particular core instance doesn't use up too much memory, then we don't charge the host OS for that memory.

The strange thing here is that, testing locally on Windows 10, we were already getting the desired semantics even with SEC_COMMIT and not SEC_RESERVE.  This commit is still important because:
1) Windows might be providing me an optimization it can't guarantee,
2) Linux might not be able to provide the same optimization
3) In any event, this patch also trims down xor snapshots to match the actual needed size.
2020-05-25 20:03:32 -04:00
adelikat 87c48879fc move Global.Emulator to GlobalWin.Emulator now that no Client.Common files reference it 2020-05-25 18:05:34 -05:00
adelikat 5b7d612238 SaveStateManager - simplify video buffer loading and don't use Global.Emulator 2020-05-25 17:59:09 -05:00
adelikat 7a374f0013 CheatList - has memory domains passed in to the Load() method 2020-05-25 17:50:42 -05:00
adelikat 8798d0c03e CheatList - remove some unused code 2020-05-25 17:43:03 -05:00
adelikat e498476b55 CheatList - move a config check to the calling code 2020-05-25 17:29:57 -05:00
adelikat 705af68f65 check if ITasMovie not TasMovie, still not great that it needs to check types but better 2020-05-25 16:50:56 -05:00
adelikat 5e4983c93f TasMovie.RecordFrame() - duplicate desired base class logic instead of calling base, because base does some "VBAStyleLoadState" stuff that is very undesireable in tastudio 2020-05-25 16:47:26 -05:00
nattthebear 472a954da0 Minor cleanup in some waterbox memory functions 2020-05-25 17:31:50 -04:00
feos 5539308398 mame: fix configs being dumped to disk hopefully, also fix the thing
mame lua figuring out cpu and address space every time I read a byte was a dumb idea it seems. accessing maincpu program space directly via C API is much wiser. ram search does the thing now.
2020-05-26 00:04:43 +03:00
adelikat 2ce79fc356 Move SoundMaxBufferDeficitMs and DisableSecondaryThrottling from Global to GlobalWin or Sound class, since only EmuHawk code accesses these 2020-05-25 15:40:23 -05:00
adelikat aec01b794a Have movies maintain a copy of the current core since their lifecycle should never extend past the core, removes a lot of global usage, downside is that it makes IMovie have more things when it is already very complex 2020-05-25 15:03:45 -05:00
nattthebear 07c627cc3e
Merge pull request #2044 from TASVideos/nyma
Add 'nyma' project

The goal is to eventually update all of our Mednafen cores. For now, there is a work in progress import of the Mednafen pce core. Basic gameplay with hucard, turbocd, and supergrafix is supported, but the core is not complete yet.
2020-05-25 13:54:35 -04:00
nattthebear 9ec8536a5e Finish getting saveram working on PCE (theoretically)
This actually makes saveram saving and loading somewhat slower on all waterbox cores, but whatever... it's more important to be simple and readable in this code than fast.
2020-05-25 13:49:47 -04:00
adelikat fbb47b2297 StateManagerDecay - pass in Global.Emulator.Frame instead of referencing it directly 2020-05-25 12:47:30 -05:00
nattthebear f9b5b9e374 pce - implement most memory domains our existing core does
The mednafen debugger system makes this easy, unfortunately that has a lot of other baggage, so do it this way
2020-05-25 12:49:36 -04:00
nattthebear 1000b74f2d tweak waterbox hash detection
A game could wild pointer into a slightly out of range part of the sealed heap during init, and then do so differently on a subsequent init, and we wouldn't detect it
2020-05-25 12:49:35 -04:00
nattthebear 4ec0753f52 all that stylecopp shizz and it doesn't have a line length limit =/ 2020-05-25 12:49:35 -04:00
nattthebear f37a51ef27 Rework memory block os abstraction
The existing code had a lot of copy paste and things that needed to be done twice to keep both impls in sync.  Refactor to use a minimal abstraction layer and keep all other code common
2020-05-25 12:49:35 -04:00
nattthebear b871f95dc0 pce - fix drive light 2020-05-25 12:49:35 -04:00
nattthebear 586117462e add back the old wonderswan controller config category labels
no hack this time
2020-05-25 12:49:35 -04:00
nattthebear bc8d298a88 support pce-cd and sgx in nyma 2020-05-25 12:49:34 -04:00
nattthebear 8c9f4e24d8 settings infra 2020-05-25 12:49:34 -04:00
adelikat daaa28f451 wire up as much as I can pcecd to TerboGrafix core 2020-05-25 12:49:34 -04:00
adelikat e332096731 wire up more pce core picker 2020-05-25 12:49:34 -04:00
adelikat d9eb9c86ec prep work for pce core picker 2020-05-25 12:49:34 -04:00
nattthebear 69d3dbc35f pce: basic rom loading and playing works 2020-05-25 12:49:33 -04:00
nattthebear d82d67996f Rework controller config
What _was_ this?  A new categoryLabel abstraction was added so we'd need fewer hacks, but in order to use it you need to add extra hacks to it per core?  Nonsense code, too.  Fix it properly.  (Maybe; I didn't test it.  Why bother?  No one else puts any effort into this either.)
2020-05-25 12:49:33 -04:00
nattthebear 257aa991fd progress, or regress, or somegress 2020-05-25 12:49:33 -04:00
nattthebear 24286be735 Linking and unwinds
The goal here is to provide an unwind implementation that works.  We (probably) don't have a working ldso, so reconfigure libunwind to work without that.  To do that, it needs __eh_frame_* variables which it can addressof to find the locations of .eh_frame and .eh_frame_hdr.  There is no way I could get gold to add these at all, so switch back to ld and add a custom linkscript.  The custom linkscript gives us the opportunity to simplify the savestate memory mapping stuff inside ElfLoader, which should knock a bit of time off of state loads -- those VirtualProtect calls are not cheap.  This also removes a potential source of nondeterminism with certain clever out of range pointers.

Any waterbox core that I didn't recompile for this commit will assert now until it is recompiled, because .wbxsyscall is in the wrong palace.
2020-05-25 12:49:32 -04:00
nattthebear 815d49bd63 cap nullemulator to <=200fps
realistically, about 160-165fps for me
2020-05-25 12:49:32 -04:00
nattthebear a1ce5e514c Some changes, most notably syscall cleanup 2020-05-25 12:49:32 -04:00
nattthebear 0f65351e13 Marching onward 2020-05-25 12:49:31 -04:00
adelikat 4e3ae130e2 move some logic out of TasLagLog that belongs at the caller level 2020-05-24 19:56:29 -05:00
alyosha-tas 43e796d256 SubGBHawk: no longer add vblank count to header 2020-05-24 18:37:24 -04:00
adelikat c22e02d22b ToTasMovie() extension method - remove vestigial default bool param 2020-05-24 17:10:14 -05:00
adelikat 0acb697808 use MovieService more 2020-05-24 16:43:04 -05:00
adelikat e980932356 Tastudio - don't show inaccurate core nag, if a movie is already loaded, since the movie has the inaccurate core in sync settings, this royal jacks things up 2020-05-24 16:26:35 -05:00
adelikat 44b5d12e39 Recent menus - add freeze/unfreeze icons to the freeze menu, hopefully will help it be more noticeable when the mode has changed from a misclick 2020-05-24 16:12:22 -05:00
TiKevin83 cab89ef182 Cleanup unused libretro shader code 2020-05-24 15:29:01 -05:00
alyosha-tas 21779a2a6f GBHawk: ppu refactor for window and bus 2020-05-24 16:26:07 -04:00
alyosha-tas 334844bde2 SubGBHawk: use cycle count to correctly track time 2020-05-24 16:25:14 -04:00
adelikat 23c1ccac7e BkmControllerAdapter - simplify and get rid of legacy support for random buttons, not such a good idea on an importer 2020-05-24 14:07:47 -05:00
zeromus 831a64c7de fix layout of bsnes registers fetch payload (broken in 36be9e9fc7). fixes #2040 2020-05-23 23:46:52 -05:00
YoshiRulz 5b5b6bd483
Unify ApiContainer instantiation
fixes c1cd1b9e0
2020-05-24 14:19:14 +10:00
YoshiRulz af2f460356
Make this WriteLine in FrameBufferResized conditional on DEBUG 2020-05-24 14:01:09 +10:00
YoshiRulz 5689d69bfb
Make gamedb's WriteLine flooding conditional on DEBUG 2020-05-24 13:57:08 +10:00
adelikat 340370fd68 simplify Bkm importing 2020-05-23 20:58:00 -05:00
adelikat 1a6931bdb1 Simplify bkm importer 2020-05-23 20:44:38 -05:00
adelikat f70fcdc3b2 remove LoopOffset support from BkmMovie 2020-05-23 20:34:49 -05:00
adelikat d4aa057664 Simplify getting core names by using the constant instead of reflection 2020-05-23 20:28:28 -05:00
alyosha-tas e94432dbd8 GBHawk: fix audio for games that turn off wave chanel rapidly to fill wave ram 2020-05-23 19:19:41 -04:00
adelikat a540a2fe85 consolidate movie instantiation code more 2020-05-23 15:04:30 -05:00
adelikat 1e9dcd2e9b for fixes to bk2 and tasmovie creation, fix a conversion bug that did StartsFromSavestate TasMovie logic for movies that start from saveram 2020-05-23 14:08:36 -05:00
adelikat 22bab8361a ugh, didn't mean to remove the lock in Input.cs 2020-05-23 14:02:43 -05:00
adelikat 0f1066fe93 restrict and consolidate new-ing of IMovie classes 2020-05-23 13:53:47 -05:00
adelikat 0e59ef1679 documentation fix 2020-05-23 13:39:30 -05:00
adelikat 1326a30287 remove some unnecessary .ToString() calls 2020-05-23 13:36:23 -05:00
adelikat 63cd1c603e Input.cs - simplify and remove a todo, I think not creating a copy is fine here 2020-05-23 13:36:23 -05:00
adelikat 54de7ad178 Use more movie mode extension methods, make MovieSession null until a movie is loaded 2020-05-23 13:36:23 -05:00
adelikat d0d526f746 Some fixes to movie mode extensions, these aren't bugs, yet, as the scenarios never occur 2020-05-23 13:36:23 -05:00
alyosha-tas 2e4609ff02 GBHawk: implement some minor audio hardware bugs 2020-05-23 14:35:55 -04:00
adelikat f2f2de8bdd Rip out the Infinite movie feature, it was a gimmick that has run its course. It isn't much code but it does complicate the API for a feature that would never lead to a published tas movie 2020-05-23 12:57:24 -05:00
adelikat 3174a676f5 make a struct readonly, and private 2020-05-23 12:57:24 -05:00
alyosha-tas 216580f693 GBHawk: center sound waveform. Seems to help ready to rumble and cannon fodder. Sounds closer to what I hear in videos. 2020-05-23 12:06:23 -04:00
adelikat 5912f6d491 MovieApi - simplify some long winded comment and subtitle generation. This class seems to very thinly wrap the IMovie api, why not just provide an IMovie? 2020-05-23 10:00:55 -05:00
adelikat 8d5cbd728e simplify SimpleController API 2020-05-23 09:43:38 -05:00
adelikat 049a79c996 separate the logic of creating an inputlog from generate on screen input display. Some duplicated code by doing this but I'll take that over tangled code, and more importantly, this separates the need of having an instaniated movie in order to display input 2020-05-23 09:27:47 -05:00
YoshiRulz c1cd1b9e0f
Cleanup some ApiHawk management code 2020-05-23 20:44:32 +10:00
YoshiRulz 9e4595c184
Remove remaining reflection in ClientApi and cleanup 2020-05-23 16:20:42 +10:00
alyosha-tas 74ef5b4b1f GBHawk: tune audio a bit 2020-05-22 21:28:58 -04:00
upthorn e5efeb49ac Add DrawImage and DrawImageRegion overloads to Gui API to allow for drawing an image from a prepared Image object rather than requiring a file in all cases. 2020-05-22 15:02:48 -07:00
upthorn 2437e0dba9 Make ClientApi calls safer by avoiding reflection where possible.
Add InvisibleEmulation and SeekFrame to allow CamHacks to function
2020-05-22 15:02:48 -07:00
adelikat bf6f6a54d0 When loading a movie - account for a missing core header entry, fallback to the user's preferred core but give them a pop up warning about it 2020-05-22 11:52:56 -05:00
alyosha-tas 78f0b9252d GBHawk: controller IRQs enabled by write delayed 4 cycles 2020-05-22 12:17:42 -04:00
YoshiRulz b65ad5afbd
Inherit ElfSharp dependency
my bad; fixes 6e0148d92 and 4f10b9780; re: #2035
2020-05-22 14:44:56 +10:00
zeromus 4f10b97809 this suffices to get elfsharp going. when i added it myself as a package in VS, it didnt touch the nuget json config files but did add it as a reference here. Nuget was invented after my time, so I don't know what's going on. (fixes #2305) 2020-05-21 15:35:17 -05:00
alyosha-tas db91189668 GBHawk: fix audio 2020-05-21 13:38:34 -04:00
nattthebear 09f75c281c Play musical names with MemoryBlock
The refactoring of platform abstractions should never have changed the name of the public interface.  No one cares about MemoryBlockWindows or MemoryBlockUnix - those names are impl details.
2020-05-21 12:59:36 -04:00
YoshiRulz 174a7cc46d
Silence NU1702 (Framework dep in Standard project) 2020-05-21 17:33:53 +10:00
YoshiRulz 69b8539d55
Fix defaults button in GenericCoreConfig not updating _settingsChanged 2020-05-21 17:32:26 +10:00
YoshiRulz 6e0148d921
Cleanup references 2020-05-21 17:25:35 +10:00
YoshiRulz ab1dca3e41
Fix NRE on passing empty string to LoadRom, simplify HawkFile creation
HawkFile now correctly sets FullPathWithoutMember to "" and Exists to false,
meaning RomLoader will return false instead of crashing.
2020-05-21 17:00:43 +10:00
YoshiRulz 9ae272e778
Import MainSlnCommon.props in BizHawk.Tests
fixes 1bfaaab87
2020-05-21 16:39:46 +10:00
YoshiRulz 7ddf6c26b9 Refactor DiscMountJob.RunBizHawk() to remove goto 2020-05-21 04:45:01 +00:00
YoshiRulz b2982825d8 Make DiscJob abstract 2020-05-21 04:45:01 +00:00
YoshiRulz 6f813edbdb Move some private helper methods to local methods in DiscSystem 2020-05-21 04:45:01 +00:00
YoshiRulz d436b9b9aa Fix colection/LINQ usage in DiscSystem
except the garbage that is byte[].Skip().Take(), I CBB fixing that
2020-05-21 04:45:01 +00:00
YoshiRulz 0ccf30396d Use modern `??=`, `is`, casts, etc. in DiscSystem 2020-05-21 04:45:01 +00:00
YoshiRulz ae22cd9f1b Use explicit visibility modifiers in DiscSystem 2020-05-21 04:45:01 +00:00
YoshiRulz 0706b96afe Fix encapsulation of IN_*/OUT_* in DiscSystem
these properties imply builder semantics but the classes aren't builders
2020-05-21 04:45:01 +00:00
nattthebear 21cdf5120b
Revamp waterbox build environment and runtime. (#2027)
Create an all new waterbox build environment:
WSL2 + Ubuntu 20.04 LTS (Other linuxes may work)
Musl libc with waterbox customizations
LLVM's libclang-rt, libunwind, libcxxabi, libcxx
Static linking to elf files

Compared with the old system, this is easier to set up a dev env for and easier to update in the future. The executables are larger but produce smaller savestates due to static linking. The modern toolchain means advanced library features and language features that sometimes appear in some upstream cores will be reusable.
2020-05-20 15:34:24 -04:00
alyosha-tas acf7926629 Add iscgb flag for subgbhawk 2020-05-20 15:04:05 -04:00
alyosha-tas 8ef5c18fcb GBHawk: bug fix and start wok on audio 2020-05-20 11:32:03 -04:00
adelikat b5ad1e636e add .uze (uzbox) to the Load Rom dialog filter 2020-05-19 20:48:53 -05:00
adelikat 123dbcc46d make uzebox and pcfx games not throw an exception on load, fixes #2022 2020-05-19 20:46:07 -05:00
adelikat 0a12f9e742 more tests for Bk2LogEntryGenerator 2020-05-19 20:29:55 -05:00
adelikat 0b5047b64a fix test namings, make Client.Common internals visible to tests, add a Bk2LogGenerator tests (more to come) 2020-05-19 20:05:12 -05:00
adelikat 1bfaaab872 https://www.youtube.com/watch?v=Ya2xifdO_l0 2020-05-19 19:55:08 -05:00
adelikat 21e4d30f98 remove another string extension method that was unused, and consolidate classes 2020-05-19 19:37:52 -05:00
adelikat 6d7d36c1d0 delete HowMany() extension method and just use .Count() instead, the one value add of null/empty checking was never utilized anyway 2020-05-19 19:30:24 -05:00
adelikat 96b0b37673 consolidate and rename tests project into a single project, delete commented out tests, add a unit tests that tests a thing 2020-05-19 19:24:53 -05:00
YoshiRulz d91c477e5a Add test projects and solution using MSTest, add scripts, upgrade CI 2020-05-19 23:54:14 +00:00
adelikat 0f1f463bcb I nitpick interface refactor 2020-05-19 18:01:09 -05:00
YoshiRulz 74a6da509a
Add NumLock and PrintScreen to OpenTK and to DirectInput->OpenTK map 2020-05-19 23:47:54 +10:00
YoshiRulz 2c817e3057
Use Range.Count extensions 2020-05-19 23:37:59 +10:00
YoshiRulz 7613748390
Fix some code flagged by StyleCop
SA1106 x4, SA1113 x2, SA1142 x2, SA1206
2020-05-19 23:33:16 +10:00
alyosha-tas c96a233d5d GBHawk: Speed switch timing fix. 2020-05-18 15:43:51 -04:00
feos e075012b70
Rundum (#2019)
fix #1701
fix #1285

Co-authored-by: nattthebear <goyuken@gmail.com>
2020-05-18 21:11:18 +03:00
RetroEdit 4555be85bc
tastudio: fix Changes wrongly being set false (#2018)
tastudio: fix Changes wrongly being set false
2020-05-18 12:29:23 -05:00
adelikat 28d859e2d8 SavestateManager - make a public method private 2020-05-18 11:59:25 -05:00
RetroEdit 88b038f24e
Improve frame insertion/deletion efficiency, particularly for undos (#2017)
* Replace unnecessary fromHistory parameters

* Improve frame insert efficiency, particularly for undos

* Improve frame delete efficiency, particularly for undos
2020-05-18 10:58:29 -05:00
adelikat 4b6e6d996a Simplify some Bkm code 2020-05-17 15:34:47 -05:00
adelikat 100fc2bad5 Rewinder - remove message callback, I dont' think this message is worth the code, especially since mainform always adds a message 2020-05-17 15:14:40 -05:00
adelikat 78c1482720 Rewinder - remove Movie active check when deciding about keeping the last frame of a rewind. It seems to work without it, but more significantly, rewind is not MOVIE SAFE, it used to be disabled while recording, and somehow got enabled, I guess someone wanted their desyncs 2020-05-17 15:06:23 -05:00
adelikat 1e0ae62041 Rewinder - pass stuff in, instead of using globals 2020-05-17 15:01:44 -05:00
adelikat b140143791 Watch classes - remove "LIAR logic" 2020-05-17 13:35:49 -05:00
adelikat b2d482ea66 Hex editor - cleanup a bit 2020-05-17 12:26:53 -05:00
adelikat 07225c06de oops - fix multi-byte views in hex editor 2020-05-17 12:25:04 -05:00
adelikat 5ffc26b5e9 AutoFireStickyXorAdapter - pass in on/off instead of getting them directly from Global.Config 2020-05-17 11:59:24 -05:00
adelikat c91b17877d Simplify MovieSession a bit 2020-05-17 11:23:52 -05:00
adelikat 3e354ed230 Simplify Movie extensions ToBk2() 2020-05-17 11:22:22 -05:00
adelikat 42356dd32b roll back RomLoader cleanups from e4563570f9, ref implicit tuples and todos don't make the situation better 2020-05-17 11:05:44 -05:00
adelikat 604f4ce833 TasStateManager - simplify MaxState logic and actually fix the math so it isn't 2x of what is intended 2020-05-17 10:41:39 -05:00
adelikat 45fd7ee81e nuke most of SubstringExtensions, and make it where i can at least read it 2020-05-17 10:39:24 -05:00
adelikat 04aab3c41b add an IStatable extension method that will return a byte array that's safe to hold on to, but isn't optimized for speed, to be used in basic situations where we are making movies from savestate or getting a savestate length 2020-05-17 10:08:00 -05:00
adelikat 0154222737 a bit of reorg - put Emulation.Common sound files in the sound folder not unecessarily nested 2020-05-17 09:50:05 -05:00
YoshiRulz 0632560899
Split StringExtensions, fix and add to substring extensions 2020-05-17 23:02:30 +10:00
YoshiRulz e4563570f9
Cleanup RomLoader
splitting methods from LoadRom makes it ~150 LoC instead of ~850
2020-05-17 19:41:30 +10:00
YoshiRulz 01460cec1b
Re-add docs for MemoryBlockBase, rename End to EndExclusive
see 4a5ece207, 4abe3f793
2020-05-17 15:07:41 +10:00
alyosha-tas 4ac3cb861d GBHawk: timing and access fixes 2020-05-16 19:57:53 -04:00
zeromus ad26b09717 change dll check descriptions to match prereq installer (and be more googlable); also remove vcruntime140.dll since I think vcruntime140_1.dll obsoletes it. I could be wrong, though. We'll readd it if its proven so. 2020-05-16 19:52:23 -04:00
adelikat 513e2287c4 Hex Editor - bulk read the char viewer as well, fixes #2012 2020-05-16 18:51:52 -05:00
adelikat a0769d4bd9 Lua - fix client.getavailabletools() 2020-05-16 15:30:04 -05:00
adelikat de97abf6e5 convert some more core name strings to constants 2020-05-16 14:51:47 -05:00
adelikat 3808a6d88f RomLoader - simplify 2020-05-16 14:43:50 -05:00
adelikat 8da52d985b more RomLoader cleanup 2020-05-16 14:21:44 -05:00
adelikat a77988e9be RomLoader - remove redundant if check 2020-05-16 14:13:49 -05:00
adelikat b4b0debd59 RomLoader - remove no longer accurate comment 2020-05-16 14:09:27 -05:00
adelikat 71698d5571 fix A7800 rom loading - remove unused and legacy .csv gamedb path, and convert to use CoreInventory 2020-05-16 14:04:11 -05:00
adelikat c830452775 move a bit more logic from RomLoader to Disc 2020-05-16 13:51:58 -05:00
adelikat 32aa623eff RomLoader consolidate some Disc creation logic between xml and m3u code paths and abstact some of it out to the DiscSystem project 2020-05-16 13:46:48 -05:00
adelikat 8269b7dec4 RomLoader - remove some redundant cases, if all you need need to do is run CoreInventory.Instance() then the default case handles that 2020-05-16 13:12:36 -05:00
adelikat 14c117e92e RomLoader - GPGX - support rom + cd .xml files 2020-05-16 11:54:36 -05:00
adelikat e547a0eb6f add GEN to multidisk bundler dropdown 2020-05-16 11:38:37 -05:00
YoshiRulz c248ee495a Replace ILinkedLibManager.LoadOrNull w/ LoadOrZero
see aa8fe56ef and 4baefd874
2020-05-16 11:41:58 +00:00
YoshiRulz 7afa4a2f98 Replace GetProcAddrOrNull with GetProcAddrOrZero
both in ILinkedLibManager and its inheritors, and in IImportResolver and its
inheritors; see aa8fe56ef
2020-05-16 11:41:58 +00:00
YoshiRulz 3e51bbe5c2 Revert "Fix up Nullable<IntPtr> brain damage"
This reverts commit aa8fe56ef9.
2020-05-16 11:41:58 +00:00
nattthebear 9944c9d989 add check for another dll file that we now require 2020-05-16 07:19:24 -04:00
alyosha-tas 11806fa178 GBHawk: timing and DMA work 2020-05-15 21:47:41 -04:00
nattthebear 61f269f097 maybe fix a maybe bug in maybe code that maybe will ever be run 2020-05-15 19:44:28 -04:00
nattthebear de6208d264 fix a warning in pce
looks like something was swept under the rug with the PutSettingsDirtyLikeYourMomBits refactor
2020-05-15 19:01:40 -04:00
nattthebear aa8fe56ef9 Fix up Nullable<IntPtr> brain damage
It'd be one thing if we needed a sentinel value distinct from IntPtr.Zero but we don't.  It's a pointer, and 0 is globally understood to be The Bad Value.

Some brain damage remains:
* LoadLibrary abstraction also returns Nullable<IntPtr>
* I named it `Resolve` and not `GetProcAddr` because I didn't want to see win32 everywhere I went :(
2020-05-15 18:56:34 -04:00
adelikat 63ef4125dc lua - fix client library being null on null emulator 2020-05-15 10:43:30 -05:00
nattthebear 4abe3f7932
Revert 4a5ece2076 (#2007)
Because of intervening commits, there may be some other incidental changes.

While well intentioned, the refactoring was just a mess when it came to actually groking this low level memory block shuffling code.
2020-05-15 07:40:28 -04:00
YoshiRulz 1ee38dcac2
Fix IList<T>.ToLuaTable() extension (resolves #2004) 2020-05-15 18:07:37 +10:00
YoshiRulz 7725d59636
Enable SA1124 "Do not use regions" and fix compliance 2020-05-15 17:00:53 +10:00
YoshiRulz 87ec2618a1
Revert "delete all regions"
This reverts commit e566d8e258.
2020-05-15 17:00:49 +10:00
YoshiRulz a1b501fe5a
Fix OpenAL sound on Unix
TODO copy this file from NuGet cache w/ MSBuild
2020-05-15 15:37:29 +10:00
YoshiRulz fd9da66a85
Revert "Force DummySoundOutput on Mono for now"
This reverts commit aaa75a19aa.
2020-05-15 15:37:23 +10:00
nattthebear 00aebc110c
Fix 3 band equalizer in Genesis (#2008)
If you tried setting your gains to 100 in the previous patch, it worked sort of, but I decided to incorporate ekeeke/Genesis-Plus-GX@f6f4556 as well to actually fix it completely, and rescale the setting properly so that 1.0 really is neutral gain.

Fixes #1319
2020-05-14 20:29:02 -04:00
nattthebear 68dc12dab7 Prohibit U+D/L+R at the core level in SGB
fixes #1308
2020-05-14 19:51:19 -04:00
nattthebear 5892059fc3 Add bulk peek byte for waterbox cores
This should speed up the hex editor significantly in one byte mode, but it doesn't because the hex editor is buggy
2020-05-14 18:40:56 -04:00
nattthebear a49a372410 add bulk read of intptr memory domains.
speeds up ram search in quicknes
2020-05-14 18:10:16 -04:00
nattthebear e566d8e258 delete all regions 2020-05-14 17:33:40 -04:00
upthorn 01089645cc Merge branch 'master' of https://github.com/TASVideos/BizHawk 2020-05-13 09:25:35 -07:00
upthorn d48651e668 Prevent crashes on Set*ExtraPadding
Prevent crashes when needing to invoke private methods from MainForm.
2020-05-13 08:57:12 -07:00
zeromus 8d1a1e4c92 Properly skip presentation and user prescale steps when taking "raw" screenshot. About a 10% chance of other regressions. fixes #1997. 2020-05-12 22:39:41 -04:00
alyosha-tas f089fe5fcd O2Hawk: Fix Catch the Ball collision detection (timer and counter can't be enabled at the same time.) 2020-05-11 16:30:09 -04:00
zeromus 453baebdcc neshawk - fix poking wram (fixes ancillary unrelated issue in #1994) 2020-05-10 20:59:40 -04:00
adelikat cb55cdd0dd delete a bit more PCE menu stuff 2020-05-09 19:11:52 -05:00
adelikat 35bed42042 PCE - remove menu items and config dialogs in favor of simply having a GenericCoreConfig dialog 2020-05-09 19:10:54 -05:00
alyosha-tas e7f603c396 GBHawk: optimizations and serial port cleanup 2020-05-09 18:59:52 -04:00
nattthebear a040e67c95
Add option to force sram in genesis core (#1991)
gpgx upstream automatically gives 64KiB sram to every game of size 2MB or lower, unless specifically overrided.  That sucks and we don't do it.  But some games do need it; there's not enough information to autodetect otherwise.  So add a flag that we can set in gameDB for it, and set it true for two known games that have problems otherwise.
2020-05-09 13:48:46 -04:00
adelikat 976ea4967b cleanup IAsyncSoundProvider hacks and consolidate code that is only used for PCE 2020-05-09 11:01:02 -05:00
adelikat b16684b4c7 YM2413 - don't implement IMixedSoundProvider, it isn't used 2020-05-08 18:04:04 -05:00
adelikat 05cffd887a SMS - cleanups 2020-05-08 17:31:20 -05:00
adelikat 099e2f4f97 remove unused YM2612.cs 2020-05-08 16:29:32 -05:00
adelikat 0a512dac4a SoundMixer - remove an unused and uneeded method, I think it is a reasonable contract that you have to pass in all sound sources during construction 2020-05-08 09:05:32 -05:00
adelikat 3c76e6014a HuC6280PSG - make some public things private or internal 2020-05-07 20:52:27 -05:00
adelikat 3ae16c4248 Ram search - reduce some unnecessary recreating of the entire ram search list during load. Also remove some Reboot() logic that happens right before a NewSearch that immediately negates it 2020-05-07 17:51:40 -05:00
adelikat 1c51d5b012 Multidisk Bundler - add logic to properly restart when the Rom changes 2020-05-07 15:41:48 -05:00
alyosha-tas 227084c2dd GBHawk: better emulate unmapped memory 2020-05-07 15:27:07 -04:00
alyosha-tas 8bd739a4c8 GBHawk: ppu cleanup and more aaccuracy edge case work 2020-05-07 11:24:08 -04:00
feos 697bb84808 tweak 2020-05-07 18:12:44 +03:00
adelikat c50c38d88b GPGX - keep a savestate buffer for SaveStateBinary, yeah maybe it shoudln't be every cores responsibility, but until it doesn't, this greatly improves rewind and tastudio performance 2020-05-06 20:22:23 -05:00
adelikat a118763409 a few worthless nitpicks 2020-05-06 20:22:23 -05:00
nattthebear 722358c1b1
Fix pokeymans pirate roms on gpgx (#1986)
mapper_32k_w expects to be able to write to rom area, so those roms now need larger savestate space
We could be extra clever and alloc_invisible the space and then restore after loadstate, but this pokeymans garbage doesn't deserve that work
2020-05-06 09:39:51 -04:00
nattthebear 974792cdfe
Make waterbox consistency check ui option only skip the memory check, not the core check (#1979) 2020-05-06 07:46:40 -04:00
adelikat a0d825084a virtual pad support for GB 3x and 4x 2020-05-05 16:44:09 -05:00
zeromus ca24b31640 waterbox - skip only memory consistency check 2020-05-05 17:29:12 -04:00
zeromus 74ba281463 readd opentk/dinput options to gui 2020-05-05 17:26:13 -04:00
adelikat 53c1f5f784 BasicBot - fix Load event not being called on load 2020-05-05 13:06:33 -05:00
adelikat 22ee71b0cf refactor lua shenanigans in mainform, instead move frame based logic to lua console update hooks, control SupressScripts in lua itself not in mainform. Also, this breaks the logic that automatically stop countihng rerecords if loadstate happens from script, the logic appeared to be broken and can/should be managed by the script itself 2020-05-05 12:40:57 -05:00
alyosha-tas 4391c97a8e GBHawk; VRAM access cleanup 2020-05-05 09:03:22 -04:00
YoshiRulz 8c005e6ffa
Add assembly list to ext. tool Attribute, allows shipping dependencies
DBMan works again
2020-05-05 09:26:37 +10:00
YoshiRulz aaa75a19aa
Force DummySoundOutput on Mono for now 2020-05-05 08:54:21 +10:00
feos 4e60e164be mame: deconstruct Update() 2020-05-04 16:48:26 +03:00
feos ae448f3cb2 minor tweaks 2020-05-04 15:48:44 +03:00
feos e836ce343e mame: let non-fatal "NOT FOUND" problems slide 2020-05-04 13:17:28 +03:00
feos 8e5e1929b2 mame: reduce copypaste 2020-05-04 12:49:25 +03:00
feos 82dcccf6cd allow exit too 2020-05-04 11:58:27 +03:00
feos 6f72012d6a move launchers around 2020-05-04 11:27:35 +03:00
feos 7370b4e949 explanations 2020-05-04 11:25:23 +03:00
feos 5c2e6d35c3 mame: finally make mem reading work with frame advance
proof that it's a good idea to go to bed with a problem, because your brain keeps solving it while you're sleeping. so when you wake up, it presents you the solution that actually works.
2020-05-04 10:53:29 +03:00
zeromus 7ce9a56dda fix display manager custom AR/size. broken by 45e0abe39d. fixes #1975 2020-05-04 00:37:12 -04:00
zeromus 4c7ade126c disable architecture mistmatch warning on emuhawk 2020-05-04 00:33:20 -04:00
adelikat cfdb5ffeb6 remove unsupressing too 2020-05-03 20:34:35 -05:00
adelikat e906f41dc7 TAStudio - don't disable lua scripts while seekinng, even the comment suggests this is a sloppy copy/paste from lua code that definitely would want to disable things 2020-05-03 20:33:39 -05:00
YoshiRulz 1b17cb4297
Replace batch/shell script with MSBuild 2020-05-04 09:41:30 +10:00
YoshiRulz 31d4662ab6
Change executables' build paths and names 2020-05-04 07:22:48 +10:00
YoshiRulz 245cbfbcea
This is dumb
This reverts commit d694213000.
2020-05-04 07:22:26 +10:00
zeromus d694213000 Revert "Revert "fixes" to EmuHawk.csproj"
This reverts commit cf252b7ba0.
2020-05-03 17:04:44 -04:00
YoshiRulz bdd622681d
Remove explicit parenting on Properties/Resources.cs 2020-05-04 06:21:14 +10:00
YoshiRulz b3b5dcf64d
Add SharpCompress <PackageReference/> to EmuHawk 2020-05-04 05:41:36 +10:00
YoshiRulz 73231a59a9
Use batch/shell script to copy DiscoHawk to output as well 2020-05-04 05:24:35 +10:00
YoshiRulz 50461f17ee
Move copy-to-output scripts to Build/ and make them work 2020-05-04 05:24:32 +10:00
YoshiRulz cf252b7ba0
Revert "fixes" to EmuHawk.csproj
This reverts the 5 commits ddddb309f through 664fb5cb3.
2020-05-04 03:55:47 +10:00
adelikat 588eeeca27 remove core specific game genie menu items that now simply load the Cheat converter tool 2020-05-03 12:38:12 -05:00
adelikat 158bff1c08 fix MainForm designer 2020-05-03 12:30:04 -05:00
adelikat ea634daa7c
Convert Tools to use NewUpdate and remove legacy methods (#1976)
* ToolForm - add General type, remove UpdateValues from IToolForm and start refactoring to NewUpdate, a lot of things are broken

* remove boilerplate Update methods from tool dialogs that do not need them

* convert more tools

* update more tools to use NewUpdate

* update more tools

* update more tools

* convert more tools to use ToolFormBase, remove UpdateBefore property

* set up fast update in some tools

* more fixes to fast update

* Ram Watch/Search - fix fast update

* rename stuff

* rename NewUpdate() to UpdateValues()

* ToolManager - remove unused Cheats convenience property

* cleanup
2020-05-03 12:22:02 -05:00
adelikat da5ddf3217 put a virtual AskSaveChanges method in ToolFormBase, and only override it when needed, reduces a lot of boilerplate 2020-05-03 09:52:41 -05:00
zeromus 664fb5cb31 properly fix that net48 directory business 2020-05-03 00:59:09 -04:00
zeromus 399a50ab17 put an extra .. on asset copy to keep it from getting put in net48 dir 2020-05-03 00:34:27 -04:00
zeromus 0bda6ac71e fix asset copying... mostly... but it's copied into a "net48" subdirectory. in another commit i will fix that (because we will need to undo it when we fix this to stop building multiply) 2020-05-03 00:33:03 -04:00
zeromus d9cba0b156 fix loading emuhawk csproj 2020-05-03 00:24:03 -04:00
zeromus ddddb309fc Revert "Migrate EmuHawk's post-build targets to shell scripts"
This reverts commit 0ff90bf131.
2020-05-03 00:03:32 -04:00
YoshiRulz 0ff90bf131
Migrate EmuHawk's post-build targets to shell scripts
(because MSBuild's <Copy/> doesn't want to co-operate)
fixes 2bf1dfbd0, but the batch script is empty so build is still technically
broken on Windows
2020-05-03 13:45:30 +10:00
YoshiRulz 2bf1dfbd09
Migrate EmuHawk to new .csproj format 2020-05-03 11:52:49 +10:00
YoshiRulz 178c491a9f
Migrate DiscoHawk to new .csproj format 2020-05-03 11:52:40 +10:00
zeromus 84c4310120 support skip option on everything else 2020-05-02 21:10:53 -04:00
zeromus f00320b90c support skip option on bsnes 2020-05-02 21:10:52 -04:00
zeromus 4cd6e6fe8a support skip option in waterbox 2020-05-02 21:10:51 -04:00
zeromus 6fc522072b plumbing for that skip option. do not look at this commit, it will displease you. 2020-05-02 21:10:50 -04:00
zeromus a59b6c29b5 revert EmuHawkOptions to pre-layoutpanel state, so that I can actually edit it without it turning into crap. probably fix a label concerning the waterbox skip stuff that I messed up in the last commit because I was so confused 2020-05-02 21:10:48 -04:00
adelikat 388e18a8f5 consistently use ToolFormBase on tools 2020-05-02 20:09:01 -05:00
YoshiRulz 1bded467b3
Replace $(SolutionDir) with $(ProjectDir) in src/ 2020-05-03 11:05:26 +10:00
YoshiRulz 5a8349b5a5
Update paths in projects (fixes build) 2020-05-03 10:58:35 +10:00
YoshiRulz 3a3b22c03b
Move projects to src subdir (breaks build) 2020-05-03 10:57:38 +10:00