Commit Graph

16764 Commits

Author SHA1 Message Date
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 0caa087684 recompile all remaining existing cores that weren't compiled since the linkscript change 2020-05-25 12:49:33 -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 a213423efd recompile libcxx and friends with nopic nopie, and recompile libsnes to test it out
once again, roughly 10% filesize savings.  seems to be about 3% faster too
2020-05-25 12:49:32 -04:00
nattthebear c8d558a275 fix set_thread_area + get_thread_area, recompile libc nopic nopie
So far I've only recompiled gpgx against the new libc, but I get a 10% smaller wbx file, which is cool
2020-05-25 12:49:32 -04:00
nattthebear 0f65351e13 Marching onward 2020-05-25 12:49:31 -04:00
nattthebear 2de9c1d117 Teach yourself C++ in 5000 easy crashes 2020-05-25 12:49:31 -04:00
nattthebear 39c0402bd8 Starting to work on some api stuff
ngp only for now
2020-05-25 12:49:31 -04:00
nattthebear 9f358bc8cc pcfx compiles 2020-05-25 12:49:31 -04:00
nattthebear 9fe80952ff zlib blah blah 2020-05-25 12:49:30 -04:00
nattthebear fa139cbcf8 lynx and wonderswan compile
At least one of these is in need of upstream updates, so maybe we waterbox them, maybe we don't
2020-05-25 12:49:30 -04:00
nattthebear e892dcef82 milestone: vb and ngp compile 2020-05-25 12:49:30 -04:00
nattthebear 311b549b6f Add mednafen sobmodule 2020-05-25 12:44:22 -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
nattthebear 7bda234fe1 Port upstream gpgx commit
56f3d64265

Theoretically fixes https://github.com/TASVideos/BizHawk/issues/1390 but I haven't tested it
2020-05-21 10:39:59 -04:00
nattthebear 3b207f54ce 32x - fix crash, fixes #1826
Trigger condition:  Any 32x rom smaller than 4MB in total size that tries to read out of bounds between its actual end and the 4MB limit

I've fixed the emulator crash, but I do not know if such roms are actually mirroring correctly - they probably aren't
2020-05-21 10:04:12 -04:00
YoshiRulz 72c0fab145
Update BuildTest*.sh
fixes 1bfaaab87
2020-05-21 17:37:29 +10: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