Compare commits

..

10425 Commits

Author SHA1 Message Date
YoshiRulz 93d3c55fd4
Limit log flooding to Debug config in Mapper116 (NesHawk) 2025-08-27 03:09:16 +10:00
CasualPokePlayer 74fd512526 Fix PresentGL method 2025-08-22 07:01:52 -07:00
CasualPokePlayer c6f7054546 Remove useless != NDSSyncSettings.ThreeDeeRendererType.Software check
I added this in as I missed the above != NDSSyncSettings.ThreeDeeRendererType.Software so this was pointless.
2025-08-22 06:56:20 -07:00
CasualPokePlayer 77a96ce527 Present GL again for melonDS post load state 2025-08-22 06:52:32 -07:00
CasualPokePlayer 171465a475 Add in method to present GL again for melonDS, minor cleanup/fixes 2025-08-22 06:50:16 -07:00
CasualPokePlayer 917f796bd0 Add in missing .cpp file in melonDS makefile
This doesn't affect anything other than allowing debug builds to actually build
2025-08-22 06:50:16 -07:00
Morilli 4906fee14b CI: fix melonDS build 2025-08-20 18:30:58 +02:00
CasualPokePlayer 393c7e2dbc make melonDS camera stub produce an all black image
all 0s (default) is green in yuv (what always gets used in practice)
2025-08-19 23:12:28 -07:00
YoshiRulz 87034faa17
Fix inability to save/load TAStudio branch 10 via quick slots
see #4073
007d862c5 (for #3112) removed `0` intending to replace it with `10`, but
it did not for `IControlMainform` (which is just TAStudio branches)
2025-08-19 05:34:51 +10:00
YoshiRulz cfcb71e5a8
Add real-time clock to `Emulation` menu above core name
`MovieClock.lua` can stay as it is
2025-08-17 02:49:18 +10:00
CasualPokePlayer 5feda201f8 Increase melonDS's sbrk heap
JIT recompiler likes to use this a lot
2025-08-16 01:53:54 -07:00
CasualPokePlayer 98a7b02d34 Fix mono AAC decoding 2025-08-16 01:48:49 -07:00
CasualPokePlayer 460c65cbe4 Fix melonDS resampling 2025-08-15 23:50:05 -07:00
CasualPokePlayer e70d92c1c4 Implement AAC decoder for melonDS 2025-08-15 23:12:18 -07:00
CasualPokePlayer 7b47f76c91 Actually pass userdata to cartridges 2025-08-15 17:28:54 -07:00
CasualPokePlayer 6c9d6f7995 Update melonDS c# side for melonDS update 2025-08-15 16:55:51 -07:00
CasualPokePlayer e79d7c3b48 fix permissions of newly added files 2025-08-15 16:54:21 -07:00
CasualPokePlayer 426a32309c Update melonDS (after DSP HLE merge)
A bit more work is needed (for the AAC decoder)
2025-08-15 16:51:36 -07:00
CasualPokePlayer c8ef4b7923 Fixup 32X loading
Broken since fa15e35603

Resolves #4419
2025-08-14 17:55:46 -07:00
YoshiRulz 7c7114b27e
Fix extra period in filename `LagLog..json.zst` in movies
fixes 576b08a88 (#4337)
2025-08-14 19:27:22 +10:00
YoshiRulz 61ce55ab4c
Add top-level dir to all states and movies on Linux (resolves #4416) 2025-08-14 13:34:56 +10:00
YoshiRulz 0cc09027ba
Rename type parameters of `CoreLoadParameters<,>` 2025-08-14 13:12:39 +10:00
Morilli 25e71267b8 Don't zstd-compress most text files
Except LagLog as it's arguably the least user-editable and also the largest (compressed) text file.

See comments on 5d891e0683 for more context.
2025-08-13 14:22:58 +02:00
Morilli 9c4bf46cb0 save bk2 savestate framebuffer as bmp
instead of the raw int array, see #3734

also save them without zstd compression
2025-08-13 14:22:28 +02:00
CasualPokePlayer b719360f0b Revert "Don't compress most text files in states/movies (resolves #4415)"
This reverts commit 5cbc1de0b8.

On principle of the previous revert, no acceptance of any Copilot or other ML tool code.
2025-08-12 23:06:05 -07:00
CasualPokePlayer 71448df654 Revert "Don't compress screenshot of state in from-savestate movie"
This reverts commit 5c3f81fe44.

On principle of the previous revert, no acceptance of any Copilot or other ML tool code.
2025-08-12 23:04:47 -07:00
CasualPokePlayer 0568b2af29 Revert "Add GitHub Copilot config, limiting it to managed code"
This reverts commit 29e7f3971d.

We're not having Copilot be allowed here without further discussion.
2025-08-12 23:03:17 -07:00
YoshiRulz 5cbc1de0b8
Don't compress most text files in states/movies (resolves #4415)
fixes 5d891e068
2025-08-13 15:52:26 +10:00
YoshiRulz 5c3f81fe44
Don't compress screenshot of state in from-savestate movie
fixes e0222f13e, see #3734
2025-08-13 15:37:18 +10:00
YoshiRulz 29e7f3971d
Add GitHub Copilot config, limiting it to managed code
Crucially, having it self-identify on every change, and leave comments.
I'll look into other agents later; there's no standard for how to
configure them like there is for IDEs, but on the bright side the config
is all natural language so a symlink to this file would probably work.
2025-08-13 15:14:45 +10:00
YoshiRulz a630b729aa
Add GitHub Actions badge to PR template 2025-08-12 23:11:06 +10:00
CasualPokePlayer 35c3f76d89 Shrink the decompressed ELF size of melonDS down by 128MiBs
This more just reduces memory usage when decompressing the .zst if anything.
2025-08-11 23:45:05 -07:00
CasualPokePlayer b1dbdf7986 Increase invisible heap size for melonDS by 128MiBs 2025-08-11 23:44:21 -07:00
CasualPokePlayer ddba1f21ff Fix NRE when JIT is enabled for melonDS 2025-08-11 20:22:53 -07:00
CasualPokePlayer d9ae6d9a4f C# side changes for melonDS JIT support 2025-08-11 20:20:26 -07:00
CasualPokePlayer 5aeb1ada48 Add JIT support for melonDS 2025-08-11 12:48:56 -07:00
Morilli a7a76c9af7 fix state manager Unreserve logic to always reject Unreserve(0)
by simply flipping these two ifs. It was not expected for a state manager to have only one state, which was the only scenario in which this would throw.
2025-08-11 07:18:14 +02:00
Morilli feb6b870a6 add failing ZwinderStateManager test 2025-08-11 07:16:15 +02:00
CasualPokePlayer b3a006eff2 Remove experimental label CGB-0 to C in SameBoy
This was placed in to match how upstream showed these settings, which now no longer considers these experimental, so remove them now that we've updated the core.
2025-08-10 11:12:59 -07:00
CasualPokePlayer 0b1b5c2ecd Remove debug print 2025-08-10 05:16:23 -07:00
CasualPokePlayer 72d077f51b Fix OOM with Clear NAND 2025-08-10 05:15:20 -07:00
CasualPokePlayer ff7015ecad Add better handling for cert.sys 2025-08-10 05:06:24 -07:00
CasualPokePlayer eef4093efd C# changes for DSi full bios boot, DLDI, DSi SD card 2025-08-10 04:59:10 -07:00
CasualPokePlayer 1e08789fe6 Add support for full DSi BIOS booting, DLDI, and DSi SD card 2025-08-10 04:56:33 -07:00
CasualPokePlayer 3b5ee836a2 For Clear NAND, shrink System Menu tmd if it is larger than normal
This might be larger than normal for Unlaunch exploited NANDs, shrinking the TMD undos unlaunch's install and restores the NAND back to a clean state
2025-08-09 12:50:57 -07:00
YoshiRulz 0ab971d4ef
Fix polyfill failure with `$(TestProjTargetFrameworkOverride)`
fixes ef600c574
2025-08-09 00:28:57 +10:00
YoshiRulz ad8d960157
Enable CA1721, muting existing violations
"Property names should not match get methods"
2025-08-08 17:56:43 +10:00
YoshiRulz a3c988f4c4
Enable CA1715, muting existing violations
(Interface) "Identifiers should have correct prefix"
2025-08-08 17:56:12 +10:00
YoshiRulz 47e2f53d33
Include all native libraries in all test projects
fixes ef600c574
probably could be narrowed but that wouldn't make the tests any stronger
2025-08-08 15:10:59 +10:00
Morilli e3203bbefd remove now-unnecessary compatibility arg 2025-08-08 07:07:47 +02:00
CasualPokePlayer 8a8a9de538 Fix pointer marshalling in BizInvoker
Fixes #4412
2025-08-07 21:59:12 -07:00
Morilli 77d5b7c300 align SDL axes directions
SDL2 reports positive right and down, so use that as default for both sticks and touchpad "axes". Because this swaps the orientation of up and down (for stick inputs), adjust the AxisPairOrientation enum to consider RightAndDown the default.
2025-08-08 06:48:42 +02:00
Morilli 64d2faefce change all touch inputs to RightAndDown orientation
that's how these work:  (+,+) is the bottom right corner.
2025-08-08 06:46:16 +02:00
YoshiRulz cbc2a8c411 Nix expr: Regen NuGet lockfile 2025-08-08 04:00:14 +00:00
YoshiRulz ef600c5745
Split unit test project 2025-08-08 13:57:50 +10:00
YoshiRulz f329e4c3e2
Some misc. cleanups to project files and assembly metadata 2025-08-08 13:57:50 +10:00
YoshiRulz e89ba513c0
Add Analyzer to suggest `span.IsEmpty` over `span.Length is 0` 2025-08-08 13:57:50 +10:00
YoshiRulz d9a42ff3db
Add Analyzer to ban `override bool Equals(object?)` on `ref struct`s
It's pointless to call this method, and when you omit it the compiler
tries to emit a call to the base method which is a simple build error.
Also ban overriding `GetHashCode`, because I don't think that's useful
outside of hash tables (which you obvously can't use ref structs in),
and implementing one without the other is a bad practice anyway and will
be picked up by another Analyzer.
2025-08-08 13:57:43 +10:00
YoshiRulz 4b4a0d27dd
Simplify `ReflectionCacheGenerator` by reading `$(RootNamespace)` prop 2025-08-08 13:39:54 +10:00
YoshiRulz de09c513cc
Copy MSBuild's `StableStringHash` and use in testroms project 2025-08-08 13:39:54 +10:00
YoshiRulz 0bcaffb4b3
Bump Magick.NET and MSBuild 2025-08-08 13:39:54 +10:00
YoshiRulz 40979ac2a1
Get testroms building again
fixes bba93b33d, ffa5d45aa, and fcb5d0d27
2025-08-08 13:39:54 +10:00
Morilli e190a40176 implement analog axes for libretro
only X and Y for now, no analog buttons
2025-08-08 02:54:52 +02:00
Morilli 8a2dee8dad apply AxisSpec.IsReversed in controller input
now specifying the AxisPairOrientation actually does something!
2025-08-08 02:45:32 +02:00
Morilli 336d37cfcf fix asserts in LibretroBridge
these probably *shouldn't* be asserts in the first place but then again they should never be hit.
2025-08-08 02:42:39 +02:00
CasualPokePlayer 79f8542c5c Fix loading NDS ROMs when "Use Real BIOS" is false
fixes 4424a71
2025-08-07 16:02:47 -07:00
Morilli 752dc8aaaa don't fail on MovieSession.QueuedCoreName with libretro cores
fixes cc59818d6d
2025-08-07 09:44:18 +02:00
Morilli 44236fc19b Only check SyncSettings on savestate load if the core has SyncSettings
fixes 656e173f64
2025-08-07 08:44:41 +02:00
Morilli bb40bfde7b correct sameboy version number
fixes 5a83736679
2025-08-07 00:09:58 +02:00
CasualPokePlayer 0fa1b3aeff Don't NRE on disposing WaterboxCore before PreInit is called
Some cores throw and dispose early on junk passed in, resulting in throwing again here
2025-08-06 04:02:57 -07:00
CasualPokePlayer 4424a7103c Add support for loading in backup TAD files
Kind of silly usecase, but it's not too bad to implement anyways
2025-08-06 04:02:57 -07:00
YoshiRulz c2b1e0110b
Fix mixed line endings in DSDA
fixes 080017b80
2025-08-06 13:00:31 +10:00
YoshiRulz 656e173f64
Include sync settings in regular states and check them (fixes #2090) 2025-08-06 12:47:33 +10:00
YoshiRulz e0222f13e3
Don't compress state/branch screenshots (resolves #3734) 2025-08-06 12:14:24 +10:00
SuuperW 5d891e0683 zstd compress text files, since zstd compressed files are now properly marked and accessible 2025-08-05 16:05:17 -05:00
SuuperW 576b08a88d Rename json files to use .json extension. Since the loader ignores extensions, this has no consequences for users not manually opening our archive files. 2025-08-05 16:05:17 -05:00
SuuperW df73d492d5 Mark zstd compressed files in movies and savestates.
This resolves #3734. Bitmaps are still compressed, but clearly marked as such. Both Windows 11 File Explorer and 7-Zip File Manager can nicely decompress them.
Making zstd compression optional while loading also means files can be edited or replaced if necessary, e.g. changing the SRAM of a movie.
2025-08-05 16:05:17 -05:00
CasualPokePlayer a707d3c6dc Fix save type for Legacy of Ys - Books I & II 2025-08-03 15:15:08 -07:00
YoshiRulz 43666a8335
Add a commit to .git-blame-ignore-revs
and remove this pair since that doesn't work
2025-08-03 04:54:55 +10:00
YoshiRulz 2274bc011f
Ban instantiating `System.Random`
-_-
2025-08-03 04:38:33 +10:00
YoshiRulz 71d3d659b3
Enable SA1508 and fix noncompliance
"Closing braces should not be preceded by blank line"
2025-08-03 04:38:33 +10:00
YoshiRulz fb1061c7ea
Make `PPU` (GBHawk) `abstract` 2025-08-03 04:38:33 +10:00
CasualPokePlayer 3fd021d359 Rebuild sameboy linux 2025-08-02 02:29:05 -07:00
CasualPokePlayer 954a27e930 Reduce the amount of system apps transferred over with "Clear NAND"
The current code breaks down currently for some NANDs (in particular Chinese and Korean NANDs) due to making some faulty assumptions. Instead of adding more code to handle these edge cases, I'm just opting to reduce the "Clear NAND" transfer to only the minimum core apps (System Menu, System Settings, and the various non-executable data files). With 51d92d328e (and later commits) if the user really wants to use these "fun" system apps for a movie (where Clear NAND is forced) they can do so by directly loading them as ROMs.
2025-08-02 00:26:08 -07:00
Morilli 5a83736679 Update sameboy to v1.0.2 2025-08-01 19:41:29 +02:00
YoshiRulz ef9d64eb8a
Clean up how Analyzer rules are globally muted in Cores project 2025-08-01 14:02:24 +10:00
YoshiRulz 1570d4d786
Fix a bug in `FileID` and clean up some style issues 2025-08-01 14:02:24 +10:00
YoshiRulz bb9c20ecde
Unmute BHI1104 in Cores and resolve warnings
see 2a5d4b903
"Don't use ^= (XOR-assign) for inverting the value of booleans"
`LinkConnected` in `GambatteLink` was the only prop among these
2025-08-01 14:02:24 +10:00
YoshiRulz 3491c3cfe3
Unmute CA1825 in Cores and resolve warnings
"Avoid zero-length array allocations"
2025-08-01 14:02:24 +10:00
YoshiRulz 6a4b523228
Enable CA2214, muting existing violations
"Do not call overridable methods in constructors"
2025-08-01 14:02:24 +10:00
YoshiRulz a88cf4a3ae
Mute MA0084 in individual files instead of in the whole Cores project
and bump to error-level
"Local variable should not hide other symbols"
2025-08-01 14:02:24 +10:00
YoshiRulz 5f5ba6816c
Unmute MEN018 in Cores and resolve warnings
see 21cdc86e8
"Use Digit Separators" in integer literals
2025-08-01 14:02:23 +10:00
YoshiRulz 0f337930bd
Replace `BitConverter` calls in `Tape`(C64Hawk) with `MemoryMarshal`
see 10ebea4dd
2025-08-01 14:02:23 +10:00
YoshiRulz f0bb8675ee
Refactor `N64.GetCpuFlagsAndRegisters`
see 10ebea4dd
2025-08-01 14:02:23 +10:00
YoshiRulz 8fd7e682b6
Unmute SA1120 in Cores and resolve warnings
see dd455580d
"Comments should contain text"
2025-08-01 14:02:23 +10:00
YoshiRulz e4e9798e46
Fix indentation of attribute in `Lynx.cs` 2025-08-01 14:02:23 +10:00
YoshiRulz 691bff2a16
Unmute SA1205 in Cores and resolve warnings
"Partial elements should declare an access modifier"
for each of these, I've mirrored all modifiers except `unsafe` across
every partial
2025-08-01 14:02:23 +10:00
YoshiRulz 336be18285
Unmute SA1400 in Cores and resolve warnings
"Element should declare an access modifier"
2025-08-01 14:02:23 +10:00
YoshiRulz cf9168b15d
Refactor some list inits in Cores that were missing trailing commas 2025-08-01 14:02:22 +10:00
YoshiRulz 8e4c595b96
Add blank lines between declarations in `CoreInventory`+related types 2025-08-01 14:02:22 +10:00
YoshiRulz b8258db1b5
Fix a bunch of unsorted `using`s in Cores 2025-08-01 14:02:10 +10:00
YoshiRulz 44fadfb228
Add settings to the bundled `MovieClock.lua`, allowing for RTA timing 2025-08-01 06:55:07 +10:00
YoshiRulz f1fe5a03ee
Improve encapsulation of global `IEmulator` for `ClientLuaLibrary` 2025-08-01 06:55:07 +10:00
YoshiRulz bd433c8156
Enable CA1044 and fix noncompliance
"Properties should not be write only"
2025-07-31 01:40:54 +10:00
YoshiRulz 795055076c
Fix memoisation in `FilesystemFilterSet`
fixes 1232157cc, 0743a1f8e
2025-07-31 00:27:27 +10:00
YoshiRulz 0743a1f8ea
Add Analyzer for banning `init;` props
turns out you can write to `readonly` fields from these, which is a
convention I'm not willing to break
2025-07-30 03:35:45 +10:00
YoshiRulz f89949520e
Fix code style warnings in iso-parser
fixes 5de736af0, 7df0cef0d
2025-07-30 03:35:09 +10:00
CasualPokePlayer 0cdfec89b3 Fix DSiWare detection 2025-07-28 22:47:48 -07:00
CasualPokePlayer e8322dc5d6 melonDS unmanaged side changes for previous commit 2025-07-28 21:35:22 -07:00
CasualPokePlayer 51d92d328e Add support for importing in DSi NAND apps that are not DSiWare
They'll be considered internally "DSiWare" for purposes of save management and the movie header (although they aren't technically DSiWare, just system DSi NAND apps)
2025-07-28 21:33:24 -07:00
feos c5dbf34ccd dsda: advance finale in doom2 & co 2025-07-28 23:38:10 +03:00
CasualPokePlayer 56f3a2d692 Remove FS304 class, fix Mapper162 with UNIF
FS304 is the same mapper as Mapper162, although it appears to be an earlier attempt at implementing it, with it being less complete than Mapper162 (and not even having savestate code implemented). It even having the same UNIF mapper string used seems to also make it so there's some "randomness" in terms of which class gets used for a UNIF ROM of this mapper (in my experience, 2.10 resulted in Mapper162 being used, while my own dev builds resulted in FS304 being used). UNIF configuration from FS304 is needed for it to be functional in Mapper162 however, so that was ported over.
2025-07-26 23:36:00 -07:00
CasualPokePlayer 6248c9326e Fix NES 2.0 exponent-multiplier ROM size parsing 2025-07-26 16:01:32 -07:00
CasualPokePlayer 14c84e655d Rebuild quickerNES Linux 2025-07-26 13:46:52 -07:00
YoshiRulz 00f32b3506
Fix hang on rom loading when gamedb is missing
fixes 00d2a51ed
2025-07-27 04:31:00 +10:00
CasualPokePlayer f794a82fdb Fix quickerNES string error handling 2025-07-26 05:35:36 -07:00
CasualPokePlayer d0f94df0c1 Add NES 2.0 parsing to quickerNES
This is more just to reject more ROMs that quickerNES cannot run (as it runs under simple iNES assumptions and can't handle complicated cases)

Also resolves #4402 (quickerNES won't be accepting any NES 2.0 ROM indicating it needs PAL or Dendy timing)
2025-07-26 05:35:36 -07:00
YoshiRulz 14032a5b1c
Convert `Bit` to a `readonly record struct` 2025-07-26 12:11:22 +10:00
YoshiRulz f458acbbb4
Remove 5 unused `Bit` methods and reduce visibility of 2 2025-07-26 12:11:22 +10:00
Morilli f7866ce0b7 Nix expr: Regen NuGet lockfile 2025-07-26 01:39:48 +00:00
CasualPokePlayer 120c652cb0 Use iNES v2 region for iNES v1 if available
iNES v1 doesn't have any way reliable way to detect the region. While there are bits for such, they were added late to the spec and thus no ROM bothers to set them. The only reliable way to detect the region with iNES (outside of gamedb) is to use iNES v2's region indicator.

Commit also fixes up the region detection for the case of Dendy (which later iNES v2 gives a bit for)

See #4402, doesn't completely fix it as quickerNES is still accepting the ROM (it doesn't support PAL, so it should be rejecting it outright)
2025-07-25 18:20:58 -07:00
YoshiRulz e727ca4a96
Bump a couple third-party Analyzers 2025-07-26 11:18:46 +10:00
YoshiRulz 79b511c690
Run StyleCop in GitHub Actions better
fixes bbb0e5c1d
FFS this is still not automatic in $currentYear -_-
2025-07-26 11:18:42 +10:00
Morilli 737e2336f7 fix formatting
fixes a82dc1e6cd
2025-07-26 03:11:34 +02:00
Morilli bbb0e5c1d3 run stylecop in ci 2025-07-26 02:57:30 +02:00
YoshiRulz 7b7d5d1154
Remove references to obsolete prop `$(RunAnalyzersDuringBuild)`
fixes 69b923ad5
2025-07-26 10:06:02 +10:00
YoshiRulz d611e800ba
Change `SerializationStabilityTests` to explicitly fail on events
see #4377
2025-07-25 22:11:30 +10:00
SuuperW a82dc1e6cd Add some hotkeys for markers, and display them in tool tips. 2025-07-25 01:08:22 -05:00
SuuperW 9d2bc341b3 Fix: TAStudio would not update selected frames display when changing selection via arrow keys. 2025-07-24 14:41:52 -05:00
CasualPokePlayer 6960e99846 Fix TMD content size read 2025-07-17 15:10:39 -07:00
CasualPokePlayer ea34856fb0 Harden NAND clearing again, ensure file sizes are as expected 2025-07-17 14:55:49 -07:00
CasualPokePlayer 4d9a9fe44f Better handle cert.sys when clearing NAND 2025-07-17 12:39:24 -07:00
CasualPokePlayer 323fbe0ba3 Add blank private.sav files for system files 2025-07-16 19:34:21 -07:00
CasualPokePlayer 22fa04c80b Fix Jan 1, 2000 timestamp 2025-07-16 17:18:39 -07:00
CasualPokePlayer 84e9d131fe Fix pit.bin file path; make sure fat time is always DS epoch (Jan 1, 2000) instead of time(0) 2025-07-16 16:19:29 -07:00
CasualPokePlayer c551f1c5ad Also push rebuild of previous commit 2025-07-16 15:45:49 -07:00
CasualPokePlayer f15c494f13 Harden NAND clearing
This takes a more sledgehammer approach, as it seems even tiny minor difference in the NAND structure can cause sync issues. This is even the case if the entire directory tree and every file is identical (I guess order of files internally matters here or whatever). The entire partition will be recreated here with files manually readded as to minimize NAND differences (assuming system files are the same version anyways)
2025-07-16 15:45:49 -07:00
CasualPokePlayer a05c16d89b Workaround compiler crash 2025-07-16 15:45:49 -07:00
CasualPokePlayer 4cd30674e8 Adjust link script for newer clang versions
melonDS compilation complained the sections weren't aligned to 128, so I guess that's needed for alignment now?
2025-07-16 15:45:49 -07:00
feos af62d83865 dsda: fix defctrl.json 2025-07-14 18:38:31 +03:00
YoshiRulz 35ce3f56c5
Fix `NoTargetTypedThrowAnalyzer` choking on `throw obj.AField;` 2025-07-13 17:11:00 +10:00
YoshiRulz aaefdeaadc
Add BHI6660 to rules declared by several `BizHawk.Analyzer.*Analyzer`
will rebuild in later commit
2025-07-13 17:10:46 +10:00
YoshiRulz 8fcaac676a
Make shader file picker (in `DisplayConfig`) open in data base dir 2025-07-13 16:07:05 +10:00
YoshiRulz b4b95a1e41
Raise level of CA1065 to error
fixes fcb5d0d27
just forgot to stage this
2025-07-13 16:06:26 +10:00
YoshiRulz fcb5d0d273
Enable CA1065 and fix noncompliance
"Do not raise exceptions in unexpected locations" (e.g. static ctors and
`IDisposable.Dispose`, but also prop getters which is a bit annoying)
2025-07-13 15:57:27 +10:00
YoshiRulz 2ccddbd99e
Fix behaviour of `SharpCompressArchiveFile` around disposal 2025-07-13 15:40:07 +10:00
Morilli 766dce5105 fix DATParser 2025-07-12 14:56:05 +02:00
YoshiRulz 25203c59aa
Revert "Set `MONO_THREADS_SUSPEND=preemptive`" (fixes #4396)
This reverts commit 83098604fa.

Caused EmuHawk to hang after some minutes of running emulation, on
Ubuntu (Mono 6.8.0.105) and I think NixOS (Mono 6.12.0.182).
2025-07-12 15:28:58 +10:00
Morilli 6284b56e81 bsnes: implement r/w callback value passing
The value will now be passed to the frontend for read callbacks and both read and write callbacks' values can now be changed in the callback.

execute would probably be possible but would require some additional code changes which I'm not sure about
2025-07-10 20:06:29 +02:00
Morilli 6fe1b2d190 remove heuristic A/V desync exception in NutMuxer
- closes #4394

I assume this was meant as a sanity check expecting it to never be hit. Well, turns out if you break games hard enough this does get hit, so just remove it.
2025-07-10 02:41:34 +02:00
Morilli 2f184c99fe use ArrayPool instead of custom ReusableBufferPool in NutMuxer 2025-07-10 02:40:04 +02:00
YoshiRulz e230178b22
GitHub Actions: Specify artifact retention explicitly 2025-07-09 17:45:36 +10:00
Morilli 97031fdc95 "fix" encore build scripts for cmake 4 2025-07-08 00:58:31 +02:00
CasualPokePlayer 21b8331331 Update encore for clang 20 support, rebuild on Linux 2025-07-07 15:13:49 -07:00
CasualPokePlayer 0eb2f9fd64 Update Encore, rebuild
Resolves #4374
2025-07-07 13:25:29 -07:00
Morilli f6c027f10e NLua: remove this[string field] overloads on LuaTable and LuaUserData
- closes #4387

Those overloads try to imitate lua's "a.b" parsing by navigating tables recursively, e.g. `table["a.b"]` == `table.a.b`. This is not what's intended by 100% of the use cases of these overloads, so I've removed them.
2025-07-07 18:26:54 +02:00
Morilli b01ae4b757 fix nlua build with analyzers 2025-07-07 18:11:06 +02:00
Morilli e4cf5d2955 fix virtu keyboard serialization
- closes #4392
2025-07-07 15:21:44 +02:00
Morilli fa77b408ff fix virtu build with analyzers 2025-07-07 15:21:25 +02:00
YoshiRulz 8486b56395
Explicitly disable many Roslynator rules 2025-07-07 15:55:43 +10:00
YoshiRulz 6381c93a61
Explicitly enable some Roslynator rules 2025-07-07 15:51:57 +10:00
YoshiRulz 1a5bb54b8a
Enable RCS1249 and fix noncompliance
"Unnecessary null-forgiving operator"
2025-07-07 15:51:57 +10:00
YoshiRulz 64ab7a6663
Enable RCS1246 and fix noncompliance
"Use element access" (indexer, instead of LINQ)
2025-07-07 15:51:57 +10:00
YoshiRulz 734038dc97
Fix some typos in doc comments and enable RCS1243
"Duplicate word in a comment"
2025-07-07 15:51:50 +10:00
YoshiRulz 45b9e30328
Enable RCS1240 and fix noncompliance
"Operator is unnecessary" (`Array.Length` can't be negative)
2025-07-07 15:49:17 +10:00
YoshiRulz 002fb15db4
Enable RCS1236 and fix noncompliance
"Use exception filter" (`catch when`)
2025-07-07 15:47:58 +10:00
YoshiRulz 7df0cef0db
Enable RCS1226, except in Cores, and mute 2 other existing violations
"Add paragraph to documentation comment" (line break without markup
results in collapsed space, like in HTML)
2025-07-07 15:39:58 +10:00
YoshiRulz 5d76b92a41
Reformat docs of `IController.To{BoolButton,AxisControl}NameList` 2025-07-07 15:39:50 +10:00
YoshiRulz 9c452a42ce
Enable RCS1224, muting existing violations
"Make method an extension method"
2025-07-07 15:38:36 +10:00
YoshiRulz f3882d1eec
Remove unused method `StringExtensions.CharCodepointsToString` 2025-07-07 15:38:36 +10:00
YoshiRulz ea710e8387
Enable RCS1195 and fix noncompliance 2025-07-07 15:33:29 +10:00
YoshiRulz c4eb5f98da
Enable RCS1160 and fix noncompliance
"Abstract type should not have public constructors"
2025-07-07 15:27:37 +10:00
YoshiRulz 14fa099cdf
Enable RCS1130 and fix noncompliance
"Bitwise operation on enum without Flags attribute"
2025-07-07 14:52:15 +10:00
YoshiRulz 5a6f95a131
Enable RCS1157 and RCS1191 and fix noncompliance
"Composite enum value contains undefined flag"
and "Declare enum value as combination of names"
2025-07-07 14:48:35 +10:00
YoshiRulz 2a1ee02a21
Dispose `IEnumerator` in `CollectionExtensions.Unanimity`
fixes b4105f942
2025-07-07 14:43:18 +10:00
YoshiRulz deaee2a648
Fix buttons named `"."` being given the mnemonic `'.'` (fixes #4391)
see a41817b70
2025-07-07 14:41:46 +10:00
Morilli 8f01fb755e BSNESv115+: update from upstream 2025-07-06 01:26:03 +02:00
YoshiRulz c9bbb81c15
Blindly attempt to wire up screen reader support for OSD messages
no pun intended
2025-07-06 08:24:46 +10:00
YoshiRulz 6d34456cd7
Ensure OSD messages go via `IDialogController.AddOnScreenMessage` 2025-07-06 07:55:04 +10:00
YoshiRulz 00d2a51ed9
Allow EmuHawk to run with a missing gamedb (resolves #2939) 2025-07-06 07:10:06 +10:00
YoshiRulz e25253f3f1
Ban `ToString` w/o format on `Guid` 2025-07-04 07:12:59 +10:00
YoshiRulz 906937b3f2
Refactors to UUID handling in Lua libs 2025-07-04 07:12:49 +10:00
YoshiRulz 86c1a84fd7
Extract helper `Util.GetRandomUUIDStr` 2025-07-04 07:03:48 +10:00
YoshiRulz 83d04b0481
Fix `NLuaTableHelper.EnumerateValues` not working under .NET 8
fixes 7bd9e218c
not sure why the one in `CollectionExtensionTests` doesn't also fail,
but I've fixed it just in case
will look into writing an Analyzer for this after we bump SDK version
2025-07-03 11:17:40 +10:00
SuuperW 979233512b Fix: Copy/paste hotkeys in TAStudio would not work if the Edit sub menu had been opened with no rows selected. 2025-07-01 03:33:50 -05:00
Morilli de403967aa Nix expr: Regen NuGet lockfile 2025-06-29 16:24:21 +00:00
Morilli 48af5c7f1a bump sharpcompress 2025-06-29 18:22:16 +02:00
Morilli a33021354a Add CI script to update nix dependencies 2025-06-29 18:21:34 +02:00
feos 5a105a156f dsda: full vision option
I was unable to make it launch with full vision on the very first frame unless it's set during init. which means there will be savestate problems if we allow switching this on the fly. setting it on init only is probably fine too.
2025-06-28 23:45:44 +03:00
feos 396d67caac dsda: drop strict mode setting
nobody's gonna use hawk for making doom demos for dsda site, so we don't need to restrict users to whatever their rules ban

cleanup
2025-06-28 23:45:44 +03:00
Morilli 2b2a038c92 fix build on .NET 8
???
2025-06-28 21:05:10 +02:00
Morilli d1fd6c30b9 workaround mono url open bug
- closes #4379
2025-06-28 20:34:33 +02:00
Morilli 4eec7acaab Fix controllerconfig display issue on mono
- closes #4376

Yeah I have no idea why or what
2025-06-28 19:21:19 +02:00
feos 815bf95d24 dsda: -coop_spawns option 2025-06-28 19:43:53 +03:00
feos 080017b800 dsda: set full render info before we emulate anything
gamma was correct on startup but other settings were only applied on first emulated frame

frame 0 will be blank with and without wipescreen
2025-06-28 17:05:54 +03:00
YoshiRulz adf8e38c7e
Accept the typical file extension for RetroArch shaders 2025-06-28 12:13:48 +10:00
YoshiRulz 5e7fb1c42f
Revert "Nix expr: Upgrade to Nixpkgs 25.05"
This reverts commit 5dc678f3a1.
2025-06-26 15:09:48 +10:00
YoshiRulz 5dc678f3a1
Nix expr: Upgrade to Nixpkgs 25.05 2025-06-26 14:53:30 +10:00
YoshiRulz a3ab70d63f
Nix expr: Regen NuGet lockfile
fixes bb7e5bc02
2025-06-26 14:53:14 +10:00
YoshiRulz ec6b3b6c4e
Use `Span` throughout `NLuaTableHelper.EnumerateValues`
resolves #4356
it was the `IndexOf` call, not an off-by-one
2025-06-24 17:44:11 +10:00
Morilli 7fe2ddaee5 break test 2025-06-23 13:32:40 +02:00
YoshiRulz 70299014d2
Minor refactor to `NLuaTableHelper.EnumerateValues` 2025-06-23 19:15:33 +10:00
YoshiRulz 43e07e3c94
Fix happy path in `NLuaTableHelper.EnumerateValues` (resolves #4356) 2025-06-23 19:15:11 +10:00
YoshiRulz 7670023a39
Add unit tests for `NLuaTableHelper.EnumerateValues` 2025-06-23 19:04:10 +10:00
SuuperW 5f24e26b6b Fix: InputRoll wasn't refreshing on certain key presses that scroll and select. 2025-06-22 13:52:22 -05:00
SuuperW 3a7fc057a1 Fix the stupid of my last commit. 2025-06-22 12:21:42 -05:00
YoshiRulz 4fd37732ad
Fix code style warning
fixes b9d78a604
2025-06-22 18:36:02 +10:00
SuuperW 61801f253b Fix: Scrolling to current frame, with follow cursor to method set to center, after extending movie by recording did not work. 2025-06-22 02:48:40 -05:00
SuuperW face2bf267 Fix regression from #4347 where painting inputs beyond visible rows would sometimes not scroll. 2025-06-22 02:39:52 -05:00
SuuperW 131f16796d revert accidental change that contradicts comment and somehow snuck in when updating said comment 2025-06-21 20:10:40 -05:00
SuuperW b9d78a6046
Merge pull request #4347 from SuuperW/auto_restore
Fixes to seeking and auto restore
2025-06-21 14:35:17 -05:00
SuuperW d8bd53d1c6 Safety for any custom or future tools that want to use this. 2025-06-21 14:29:37 -05:00
YoshiRulz b31e973a8a
Encapsulate PCEHawk in new service for Sound Debugger 2025-06-21 20:13:47 +10:00
YoshiRulz 04d3fe707c
Simplify `PCESoundDebugger.lvChEn.ItemChecked` handler 2025-06-21 20:13:41 +10:00
CasualPokePlayer d733430861 Rebuild quickerNES linux 2025-06-19 22:29:10 -07:00
CasualPokePlayer 66c547e41a Disable MMC5 support in QuickerNES
Restores b1f4a77251
Fixes #4244
2025-06-19 22:21:10 -07:00
CasualPokePlayer ff96acdfe2 Set 3DS RetroAchievements memory map to use the System Bus (all userland virtual memory) 2025-06-19 20:23:29 -07:00
Morilli 1a438c6a8c simplify CustomCollections.Contains
don't think we need an explanatory comment for the return value of a library function
2025-06-18 09:40:21 +02:00
Morilli 515b510da0 gracefully handle existent saveram when core does not support it
- closes #4358

Fixes 291dd80c27 and now matches previous behavior. Usual reason for this happening seems to be cores interpreting "saveram" differently.
2025-06-18 09:39:22 +02:00
Morilli 62040a3ba2 don't save garbage/nonexistent saveram in quickernes 2025-06-18 09:26:52 +02:00
SuuperW cc59c7102f Clarify why we do what we do. (comments) Also use ancient logic when resizing state buffers. 2025-06-18 07:45:29 +02:00
SuuperW 25a850c6d2 Pass new tests: ensure we don't create gaps larger than the ancient state interval. 2025-06-18 07:45:29 +02:00
SuuperW 8669ff3920 Add tests for the AncientStateInterval setting of TAStudio.
The dialog says this should be set as high as possible, and that it should not be "overly cumbersome to replay this many frames". Thus, the user should never have to replay more than this many frames (since that would be overly cumbersome) unless states were invalidated. Currently the user may have to replay up to double the specified interval.
2025-06-18 07:45:29 +02:00
YoshiRulz 7bd9e218ca
Rewrite `NLuaTableHelper.EnumerateValues` (fixes #4356) 2025-06-17 04:48:47 +10:00
YoshiRulz a67798ea21
Remove the now redundant `NLuaTableHelper.EnumerateEntries` 2025-06-17 04:16:41 +10:00
YoshiRulz f3b19b8d27
Simplify `SerializeTable` in `ConsoleLuaLibrary` further
see b6bcd083a
2025-06-17 03:39:03 +10:00
YoshiRulz 701ef1e960
NLua: Implement `IReadOnlyDictionary<object, object>` on `LuaTable` 2025-06-17 03:33:12 +10:00
YoshiRulz a7252cdb8e
NLua: Dedup in `LuaTable`
will rebuild in later commit
2025-06-17 03:33:08 +10:00
YoshiRulz b4e410ee76
Allow background input from gamepads on misc. forms 2025-06-17 01:59:33 +10:00
SuuperW 88cf00d4b6 Fix: Using tastudio.setplayback to seek to a non-existent marker would permanently suppress Lua.
Fix: Using tastudio.setplayback with a Lua number that happens to not currently be represented as an integer would throw.
2025-06-16 03:56:34 -05:00
SuuperW 2749b1b675 Fix: tastudio.setplayback would refuse to seek past the end of a movie 2025-06-16 03:54:08 -05:00
SuuperW 65e4133883 Remove redundant code. 2025-06-16 03:54:08 -05:00
SuuperW 80127dcd00 Show seek progress bar if we are seeking more than 1 frame. We don't know how long it's going to take! Also if the user ends up pausing there should be a visual indication of seeking. 2025-06-16 03:54:08 -05:00
SuuperW cf86c1d3b1 Fix: Manual seeks past the end of the movie were not respected if AutoPause was on. 2025-06-16 03:54:08 -05:00
SuuperW 620304e948 Deprecate client.seekframe. This had the same issue as tastudio.setplayback, freezing the UI. Since seekframe cannot go backwards, updating it to return immediately results in it doing absolutely nothing.
Note that it never was doing a "seek" as defined by MainForm, so we aren't removing that feature. And turbo-seek isn't relevant both because it wasn't a seek and because currently the only way to have a turbo-seek is to use the Play Movie dialog. If true seeking is desired a new lua method should be made. Also also, it did not actually touch InvisibleEmulation.
2025-06-16 03:54:08 -05:00
SuuperW 009667e65a TAStudio should own TAStudio logic. Fix: The green arrow would move when making multiple edits with auto-restore off if the edit caused a seek of >1 frame. 2025-06-16 03:53:52 -05:00
SuuperW ee35ad2179 Feature, from TASeditor: middle-click resumes seek if seek is in progress. This might be what StartSeeking's fromMiddleClick parameter (removed in last commit) was attempting to do. 2025-06-16 03:53:52 -05:00
SuuperW d889cb133c add hotkey for go to green arrow (manual restore position)
Also, fix: Middle-click restore would not update seek begin frame, potentially causing seek progress indicator to be wrong.
2025-06-16 03:53:52 -05:00
SuuperW 4379fa70c7 Fix: Seeks from Lua would freeze the UI and not return to Lua until the seek has completed, making the Lua script unable to see the frames during the seek. 2025-06-16 03:53:52 -05:00
SuuperW 1cc085e26c Fix: Greenzone would be invalidated if pasting or clearing a frame even if no change was made. 2025-06-16 03:53:52 -05:00
SuuperW 0634b37cc0 Call our new FrameEdited thing for auto restore whenever greenzone is invalidated, instead of manually calling at each edit point. This fixes auto-restore for undo/redo actions. 2025-06-16 03:53:52 -05:00
SuuperW 23f0716199 Fix: turbo seek did not work when navigating while unpaused 2025-06-16 03:53:51 -05:00
SuuperW 672581476a inline function that is only called from one place 2025-06-16 03:53:51 -05:00
SuuperW bbf3560bd0 Convert remaining auto-restore points to the new system. Also include refreshing in FrameEdited. Fixes more bugs. 2025-06-16 03:53:47 -05:00
SuuperW ffc50444f9 Revert commit a1c8c4ed3a. It was always pointless because it didn't fix the issue it was supposed to fix, and the later commit that actually fixes it was all that was needed all along. 2025-06-16 03:34:27 -05:00
SuuperW 553336ccd5 Replace some auto restore code with something simpler. Fixes auto-restore for right-click edits. 2025-06-16 03:33:21 -05:00
SuuperW 850d3c58a5 Windows weirdness: MouseUp event is not guaranteed to be raised. 2025-06-16 03:33:20 -05:00
SuuperW 68f7824f91 Fix: Clicking on an axis value while in axis editing mode would disable recording mode, regardless of whether an edit was made.
Fix: Clicking on an axis value while in axis editing mode would trigger auto-restore, even if no edit was made (seek to last edit frame).
2025-06-16 03:33:20 -05:00
SuuperW fe29ffd8d1 simplify a bit of logic 2025-06-16 03:33:20 -05:00
SuuperW 5575739187 Fix: modifier key + right click would jump to the last edited frame (even if this right click made no edits) 2025-06-16 03:33:20 -05:00
SuuperW 3ef7dce1ed GoToFrame's "future frame" cases were just buggy versions of the normal case. So just use the code of StartAtNearestFrameAndEmulate instead. Fixes multiple bugs when seeking to frames past the end of the movie. 2025-06-16 03:33:20 -05:00
SuuperW fb231b04b5 Fix: Mouse drag seeking was broken while seeking. (It would not change the target seek frame until prior seek had completed.) 2025-06-16 03:33:20 -05:00
SuuperW 31e6eeb113 Remove obsolete conditional. 2025-06-16 03:33:20 -05:00
SuuperW a3af98718f Make TAStudio take ownership of its own seeking logic and simplify some code, fixing a few bugs:
1) Auto-restore did not work when painting "axis" inputs.
2) If unpaused in recording mode, manual seek to frame A (click cursor column) then before that seek finishes seek to frame B. It would not unpause after reaching frame B to resume recording.
3) TAStudio would fail to pause with auto-restore if a second edit was made to a non-greenzoned frame while auto-restore seek was in progress.
4) Canceling seek would not remove the seek progress bar.
2025-06-16 03:33:20 -05:00
SuuperW e2acfa61ea tastudio should own tastudio logic 2025-06-16 03:33:19 -05:00
SuuperW fe9f876d55 move safety check inside StartSeeking, instead of making caller responsible 2025-06-16 03:33:01 -05:00
YoshiRulz b6bcedcb6d
Add "Clear Moved/Deleted" to recents auto-submenus
see #2115
2025-06-15 21:42:24 +10:00
SuuperW 6c48f7c7fd rename variable 2025-06-14 19:44:23 -05:00
feos a030b16916 doom script: spacing 2025-06-14 23:06:05 +03:00
YoshiRulz 51b7e914d2
Change type of `*Watch.ValidTypes`/`Watch.AvailableTypes` to list 2025-06-15 02:47:07 +10:00
YoshiRulz 822b105bd1
Clean up all deconstructing ints to bytes in main solution 2025-06-15 01:40:47 +10:00
YoshiRulz 5fb1a32eb4
Clean up all reconstructing ints from bytes in main solution 2025-06-15 01:40:47 +10:00
YoshiRulz b61769b136
Move bitwise `|` to start of next line in Emulation.Cores 2025-06-15 01:40:46 +10:00
YoshiRulz de08716aff
Replace some bespoke endianness helpers w/ BCL `BinaryPrimitives` 2025-06-15 01:40:38 +10:00
YoshiRulz d3d4f237b3
Make `MediaConverter.GetBEInt32FromByteArray` (ZXHawk) throw on fail
...instead of silently discarding bytes
2025-06-15 00:17:32 +10:00
YoshiRulz cb266413b5
Clean up dumb bitwise comparisons in `AY38912`s (CPCHawk and ZXHawk) 2025-06-15 00:14:54 +10:00
YoshiRulz 4d8bc3f265
Use `BitReverse.Byte8` LUT in GBHawk and IntelliHawk 2025-06-15 00:14:51 +10:00
YoshiRulz 5679500886
Expose experimental throttle setting in dev builds too
(:
2025-06-15 00:13:29 +10:00
YoshiRulz eff989f26a
Move `&&`/`||` to start of next line in Emulation.Cores project, pt 2
see 8967f58df and prior commits, namely 5685befe1
2025-06-15 00:13:26 +10:00
YoshiRulz 5ecbe6c30f
Use pattern matching for a bunch of enum checks across main solution 2025-06-15 00:11:17 +10:00
YoshiRulz 3540f48847
Use pattern matching to simplify some string comparisons 2025-06-14 23:32:18 +10:00
YoshiRulz 4ac8d55fb1
Simplify some conditions in `DskIdentifier.CalculateFormat` 2025-06-14 23:32:13 +10:00
YoshiRulz 69a8899fa6
Refactor `Timestamp` ctor (DiscSystem) to use pattern matching 2025-06-14 23:30:56 +10:00
YoshiRulz bee07cca7e
Remove some redundant `fi.Directory?.Exists` checks 2025-06-14 23:30:04 +10:00
YoshiRulz af51ca1513
Deduplicate some copy-pasted WinForms key event handling code 2025-06-14 23:27:35 +10:00
Chris Siebert 85f90604bd
Fixed behavior of SHA, SHX, SHY, and SHS in NesHawk (squshed PR #4309)
* Fixed incorrect behavior of SHA, SHX, SHY, and SHS

Opcodes $93, $9B, $9C, $9E, and $9F, also referred to as the "Unstable High Byte Group", all rely on the High Byte of the target address being incremented internally when the processor adds the X or Y register as an offset, and this new value of the high byte is ANDed with the value being stored.

* Fixed a typo

In the comment made for private byte H, changed the word "varaible" to "variable"

* Added H to the 6502 SyncState

Added H to the 6502 SyncState, which is used during the final cycles of a few unofficial instructions.

* Updated LxaConstant for Chip6510.cs

This now passes Disk2.d64's "LXAB" test.
Does this need to change in Drive1541.cs as well?

* Updated AneConstant for Chip6510.cs

This now passes Disk2.d64's "TRAP1" test.
Does this need to change in Drive1541.cs as well?

* Updated the 6502's unstable high byte group for RDY beahvior.

SHA, for example, typically writes a value of A & X & H, but if the RDY line is low 2 cycles before the write occurs, (tested with a DMC DMA) the value written is just A & X. To recreate that behavior, H is set to $FF if the RDY line is low during that particular stage of the instruction.

* Removed trailing whitespace added in previous commit

* The 6502 ext_ppu_cycle variable is now updated in NesHawk

The ext_ppu_cycle was only used in SubNesHawk, though it would still appear in the tracelogger for NesHawk, just always with a value of 0.
This value is now incremented at the end of runppu() in PPU.cs, and reset at the beginning of a frame inside DoFrame() of SubNesHawk, and FrameAdvance() for NesHawk.

* Fixed formatting of a line added in the previous commit.

Added spaces around the equal sign.

* Added the 6502 address bus, and DMC DMA Halt cycles occur on the correct cycles

Added the 16 bit address bus as a public variable to Execute.cs
The 6502 Address Bus is not updated by the DMC DMA or OAM DMA.
The DMC DMA's "halt cycles" and "put cycles" read from wherever the 6502 address bus currently is. This can result in extra reads from read-sensitive PPU and APU registers.
Likewise, APU Register Activation is tied to the 6502 address bus. (Previously using the value of the PC, as the address bus will be the value of the PC during OAM DMAs)

* Removed unnecessary includes

I have no idea what added these, but it was a mistake.

* Added the 6502 address bus to the SyncState

Added the 6502 address bus to the SyncState

* Updated controller strobing and clocking

Controllers only get strobed when the CPU transitions from a get cycle to a put cycle.
Controllers only get clocked if the previous CPU cycle was not reading from the controller port.

* Updating timing of clearing the Frame Counter Interrupt Flag

The Frame Counter Interrupt Flag is only cleared on "put" cycles.
This can be detected by running an instruction that double-reads address $4015, such as the unofficial SLO $4015, X instruction. The Value in the A register after that instruction will have different results depending on if the cycle this ran on was a get or a put cycle, since the flag is only cleared on the put cycle after the read occured.

* Update src/BizHawk.Emulation.Cores/CPUs/MOS 6502X/Execute.cs

Co-authored-by: YoshiRulz <OSSYoshiRulz+GitHub@gmail.com>

* Update src/BizHawk.Emulation.Cores/CPUs/MOS 6502X/Execute.cs

Co-authored-by: YoshiRulz <OSSYoshiRulz+GitHub@gmail.com>

* Update src/BizHawk.Emulation.Cores/CPUs/MOS 6502X/Execute.cs

Co-authored-by: YoshiRulz <OSSYoshiRulz+GitHub@gmail.com>

* Update src/BizHawk.Emulation.Cores/CPUs/MOS 6502X/Execute.cs

Co-authored-by: YoshiRulz <OSSYoshiRulz+GitHub@gmail.com>

* Update src/BizHawk.Emulation.Cores/CPUs/MOS 6502X/Execute.cs

Co-authored-by: YoshiRulz <OSSYoshiRulz+GitHub@gmail.com>

* Update src/BizHawk.Emulation.Cores/CPUs/MOS 6502X/Execute.cs

Co-authored-by: YoshiRulz <OSSYoshiRulz+GitHub@gmail.com>

* Update src/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Chip6510.cs

Co-authored-by: YoshiRulz <OSSYoshiRulz+GitHub@gmail.com>

* Update src/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs

Co-authored-by: YoshiRulz <OSSYoshiRulz+GitHub@gmail.com>

* Update src/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.Core.cs

Co-authored-by: YoshiRulz <OSSYoshiRulz+GitHub@gmail.com>

* Update src/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.Core.cs

Co-authored-by: YoshiRulz <OSSYoshiRulz+GitHub@gmail.com>

* Fixed a typo

* Updated formatting, and fixed a potential bug.

Two read cycles in a row, one from either controller port, will still clock both controllers once.

* Update src/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.Core.cs

Co-authored-by: YoshiRulz <OSSYoshiRulz+GitHub@gmail.com>

* Updated sprite evaluation for misaligned OAM

If a write to $2003 occurs on a visible scanline before sprite evaluation, the initial index into OAM for the evaluation will not begin at OAM index 0. If the OAM index was not a multiple of 4 when this occurs, an interesting phenomenon becomes visible, where the lower two bits of the OAM index are cleared if the Y position is out of range for the scanline. Surprisingly, the X position makes this same "in range" check, resulting in the lower two bits being cleared if not in range.

* Updated glitchy increment of OAM index when writing to $2004

When this occurs, reg_2003 needs to increment, and this also results in a bitwise AND with $FC.

---------

Co-authored-by: YoshiRulz <OSSYoshiRulz+GitHub@gmail.com>
2025-06-14 17:34:42 +10:00
feos 4636cd8cd7 add doom script 2025-06-12 18:43:48 +03:00
feos 9143bdcee1 dsda: expose linedef coords 2025-06-12 18:43:48 +03:00
YoshiRulz 9214e2418e
Change lazy init of `HeaderKeys.AllValues` in preparation for C# 14 2025-06-10 15:31:43 +10:00
YoshiRulz 933d626a95
Simplify enumeration of NesHawk `[MapperProp]`s 2025-06-10 15:29:57 +10:00
Daniel Peter Rutschmann 3ab4a96404
Make the number of frames per TAStudio rewind configurable (squashed PR #4319)
* allow a TAStudio rewind to go back a configurable number of frames.

* rename FramesPerRewind to RewindStep.

* make whitespace consistent.

Use tabs for regular lines, but use spaces in argument lists that are formatted as one argument per line.

* remove tiny designer resizes.

* refactor isFastForwarding variables in main form.

* refactor isFastForwarding variables in main form, v2.

Copy IsFastForwarding into a local variable to minimize recalculations.

* add doc string to MainForm.IsFastForwarding.

* refactor if statement shape in TAStudio.MenuItems.cs .
2025-06-10 13:45:27 +10:00
YoshiRulz 95a01894de
Fix line endings in `Bk2MnemonicLookup.cs`
fixes 513c1ca8e
2025-06-10 00:03:38 +10:00
feos ffb469540e dsda: expose linedefs as mem domain 2025-06-09 01:27:51 +03:00
YoshiRulz bda2c2b5a0
When processing `--lua` flag, treat unknown file extensions as scripts 2025-06-08 15:55:15 +10:00
feos df708a3a8e order 2025-06-07 18:32:19 +03:00
feos 8b43c98657 dsda: fix reading OUT OF BOUNDS of mobj_t 2025-06-07 18:28:11 +03:00
YoshiRulz f2ccc9af90
Simplify `DSDA.PutSettings`
fixes a150bb433
2025-06-08 00:36:53 +10:00
feos 2dfdd8f7c3 mute 2 complaints 2025-06-07 16:57:34 +03:00
feos a150bb433a is this overkill? 2025-06-07 15:37:41 +03:00
feos 4f8beb5536 cleanup 2025-06-07 15:36:59 +03:00
feos 6ab684dba6 cleanup 2025-06-07 12:37:21 +03:00
feos 7a50343173 ok 2025-06-07 12:05:35 +03:00
feos 987a9f96f8 dsda: get input format from db 2025-06-07 11:53:11 +03:00
feos 513c1ca8ed dsda: raven defaults and mnemonics
rename controller so all 3 games can share binds
2025-06-07 10:17:20 +03:00
YoshiRulz 971fc61c42
Corrections to notes re: Analyzers/linting in the contribution guide 2025-06-07 12:36:42 +10:00
YoshiRulz f576e320bb
Update some links in the contribution guide 2025-06-07 12:33:03 +10:00
feos 0a8b57cf55 dsda: flylook buttons 2025-06-06 23:33:36 +03:00
feos 1783c28fc2 dsda: expose raven inventory selection 2025-06-06 21:29:38 +03:00
YoshiRulz b68649ed70
Fix mixed line endings in `DSDA.IVideoProvider.cs`
fixes 2d2318356
2025-06-06 10:00:05 +10:00
SuuperW 61b44d72ba
Simplify movie stopping+saving logic, fixing bug where opening a new movie while in recording mode in TAStudio would save the current movie even if the user said not to. (#4341) 2025-06-05 22:55:10 +02:00
feos e82d5fcd08 reduce copypaste
ideally this thing would be stored as a bitfield but we have to keep the bool for each player separated in syncsettings
2025-06-05 20:57:33 +03:00
feos 58d6dea596 dsda: things got too wide 2025-06-05 20:41:18 +03:00
feos 0d40ea955e dsda: fix fist selection for boom compat
initially I read the code wrong. `demo_compatibility` means vanilla complevel, not "demo is running". for vanilla hitting 1 would switch to first only if you have berserk, otherwise it'd stick to chainsaw (provided you have it of course). that part was working ok. but for boom compat hitting 1 swaps fist and chainsaw at all times, and that part was broken: chainsaw would not get selected even if you have it.

pass button values directly (same can be done for arti)
2025-06-05 20:34:16 +03:00
YoshiRulz ad7dd09a82
Remove line-end whitespace in `DOSBox.cs`
fixes d09d215aa
2025-06-06 00:00:28 +10:00
feos d09d215aa0 dosbox: don't shrink the image
it'd arguably make sense to shrink, if we could downscale it with some smooth algo. this is based on the fact that on a CRT monitor you also see scanlines at fixed thickness (unless you adjust the output) and only width is variable (and depends on pixel density + size of overscan). so upscaling 240p by exactly 2 and then adjusting with made sense on the paper (and it's what we do for CRT encodes). but hawk can't default to a smooth algo, and it can't only apply it on shrink while everything is resized using point. so it's better to just never shrink and let height also be variable. that's kinda what everyone else is doing anyway.
2025-06-05 16:52:10 +03:00
Morilli c2b767f1f8 check MovieEndAction on savestate load
- closes #4346
2025-06-05 06:23:10 +02:00
Morilli f4eb779883 simplify MovieSession.HandleLoadState
also partially reverts c57657bbd4
2025-06-05 06:22:33 +02:00
Morilli ef2ce91527 fix potential exception in AutosaveSaveRAMSeconds setter
previous default was 0 which is now disallowed
2025-06-05 01:02:21 +02:00
Morilli 21e4636eec fix missing dispose in LoadSaveRam
fixes 291dd80c27
2025-06-05 00:32:30 +02:00
CasualPokePlayer 156fb5062b Rebuild SDL2 Linux 2025-06-04 14:44:41 -07:00
Morilli 6aa7f325d1 bump SDL2 and libusb
SDL2: ~2.31 => 2.32.8
libusb: 1.0.27 => 1.0.29

someone else rebuild linux with proper glibc version
2025-06-04 22:57:26 +02:00
Morilli 18c29ca57c refactor saveram saving error handling in CloseGame
The previous code did nothing when a new rom was loaded or the emulator was closed. Now the user at least gets the chance to try again, however much that will help.
2025-06-04 22:23:39 +02:00
Morilli 1b7e858977 Harden FlushSaveRam
more try = more catch. Disk errors while writing saveram are rare and probably user error, but they're unrecoverable and shouldn't crash the emulator outright.

See #4258 and #1466
2025-06-04 22:00:49 +02:00
Morilli 291dd80c27 refactor LoadSaveRam
The code will now consider both autosaveram and normal saveram files on load. Normal saveram is preferred unless an autosave exists that is more recent than the normal save, in which case the user is prompted to select which saveram to load.
2025-06-04 21:23:55 +02:00
Morilli f1ecb13249 ensure autosaveram interval is always set and fix off-by-1 2025-06-04 19:38:24 +02:00
Morilli 93fbb0202c bump minimum AutoSaveRAM interval to 1 second
I don't think we need the option to backup saveram every frame
2025-06-04 19:10:26 +02:00
Morilli 150fc2f4c2 don't check SaveRamModified on shutdown
let's flush the saveram unconditionally instead of relying on SaveRamModified which could get unset from autosaves or elsewhere

see also #4344
2025-06-04 18:51:04 +02:00
Morilli a2cf4e0797 clarify semantics and implementation of ISaveRam.SaveRamModified 2025-06-04 18:51:04 +02:00
feos 5fa597ad8a dsda: fix automap inputs crashing outside level
update settings descriptions
2025-06-04 16:14:56 +03:00
YoshiRulz abba6ed260
Add help on changing peripherals to TAStudio's `Columns` menu
see #2449
2025-06-03 10:49:35 +10:00
YoshiRulz bc0090f414
Move TAStudio `Columns` > `Show Player #` into those submenus
resolves #2449
2025-06-03 10:22:43 +10:00
YoshiRulz c5c760afa6
Change behaviour of TAStudio `Columns` > `Show Player #`
partially reverts b62f4bc6a
see #2449
No longer hides the submenu, and toggling individual columns updates the
whole-player checkbox, which is now tri-state.
Same for the "Show Keys" item.
And after all that, Mono doesn't distinguish Indeterminate :P
2025-06-03 10:22:36 +10:00
YoshiRulz 094adb0cb0
Some refactors to `TAStudio.SetUpToolStripColumns` 2025-06-03 10:10:01 +10:00
YoshiRulz b4105f9423
Add `IEnumerable<bool>.Unanimity` extension 2025-06-03 10:10:01 +10:00
YoshiRulz bb7e5bc02c
Add Meziantou.Polyfill 2025-06-03 10:10:01 +10:00
YoshiRulz 071423fe8b
This is polyfilled already 2025-06-03 10:09:58 +10:00
CasualPokePlayer 74647e4dc8 Linux sameboy build (with actual rumble mode changes this time) 2025-06-01 23:39:16 -07:00
CasualPokePlayer f5588c1464 Forgot to commit these sameboy changes re rumble mode 2025-06-01 23:38:54 -07:00
CasualPokePlayer 803f72e85a Make SameBoy's rumble mode configurable, default to rumble pak games only
see #4343
2025-06-01 23:38:54 -07:00
CasualPokePlayer 6c10ccd1d1 Linux sameboy build 2025-06-01 23:37:43 -07:00
Morilli 327c45f418 fix initial FeedbackBind display 2025-06-02 07:27:23 +02:00
Morilli 6c396f964a fix outdated description 2025-06-02 07:14:24 +02:00
Morilli 4743a2af87 fix feedback binds not allowing unbinding
see #4343
2025-06-02 07:14:14 +02:00
YoshiRulz 5cf2d1a7d1
Further clarify `joypad.setanalog` docs
fixes d48bea5
see #2310
2025-06-02 06:01:19 +10:00
Morilli 3c774e2607 remove old dispose hack in MovieSession
no longer relevant since recent commits and didn't fail since the TasStateManager changes a while back anyway
2025-06-01 20:34:05 +02:00
Morilli 047e1556cb cleanup MovieConversionExtensions
none of these clear calls are required, also resolved TODOs
2025-06-01 20:34:05 +02:00
Morilli 1da70c884d refactor bk2->tasproj conversion
- don't mutilate the bk2movie during the conversion
- don't immediately set MovieSession.Movie without having loaded the taproj
2025-06-01 20:34:05 +02:00
Morilli 10f57bad2c remove unnecessary SetMainformMovieInfo calls in TAStudio 2025-06-01 20:34:05 +02:00
YoshiRulz c3dd2c2d63
Set `trim_trailing_whitespace` in EditorConfig 2025-06-02 03:57:49 +10:00
YoshiRulz f98476b825
Fix code style warnings in `LibDSDA.cs`
fixes f0564300c
2025-06-02 03:57:36 +10:00
feos 40b7b49f8c dsda: announce gamma on front end
they say the code should be so verbose that you won't need comments. indeed comments that restate the same thing that the code is doing are considered sloppy, because code will change and comments will become outdated. but if a comment is describing the logic of decision making or some unintuitive quirk, they're perfectly fine. so in a few places I go crazy with comments because the decision made there took a long time and a lot of changes, so it kinda summarizes the best result. that's it, no elaborate description of the change itself here... because I put it into that comment instead XD
2025-06-01 19:41:37 +03:00
feos f0564300c7 dsda: set gammma after core seal but before first frame advance 2025-06-01 16:23:40 +03:00
feos 2d23183569 dsda: decide aspect once on init 2025-06-01 13:25:55 +03:00
YoshiRulz 4fd52088e4
Drop outdated part of `joypad.setanalog` docs
fixes d48bea505
see #2310
2025-06-01 11:05:19 +10:00
feos 93ebbc60d6 add all other official freedoom versions to db
(and remove unofficial ones)
2025-05-31 21:29:10 +03:00
YoshiRulz b01436bdc6
Include Stella's B&W/colour switch in savestates
fixes b5e13206c
2025-06-01 01:14:18 +10:00
feos 6190a0573b dsda: woops
it was there twice... with different values!
2025-05-31 11:26:35 +03:00
YoshiRulz a0a06a58ab
Add `bizstring.{decode,encode}` (resolves #3035) 2025-05-31 10:35:49 +10:00
YoshiRulz 933e1616db
Fix code style warnings
fixes f86b7aed6
2025-05-31 09:35:50 +10:00
feos f86b7aed68 dsda: simplify
predefine a set of resolutions per aspect ratio for those that can't be calculated without complicated logic (hacks)
2025-05-31 02:10:53 +03:00
YoshiRulz 7ae2f9372d
Add missing `leaveOpen: true` in `MainForm.FlushSaveRAM`
fixes f0daba69b
2025-05-31 08:59:43 +10:00
YoshiRulz 8c9f6bd8ce
Fix copy-paste error in `MainForm.LoadRomInternal` hiding a warning
fixes 348cbd18d
2025-05-31 07:59:58 +10:00
YoshiRulz f0daba69be
Call `FileStream.Flush` for SaveRAM and movies (resolves #3419)
...and anything else which uses `FrameworkZipWriter`/`ZipStateSaver`,
which I think is just savestates
2025-05-31 07:53:57 +10:00
YoshiRulz fe1b973132
Remove line-end whitespace in `DSDA.cs`
fixes 621ad8e45
2025-05-31 07:53:49 +10:00
feos 621ad8e454 dsda: remove the workaround because it broke the FOV
increase the resolution for 1x 16:9 instead
2025-05-31 00:51:07 +03:00
feos 8632e9d3be dsda: a little bit less logic and more notes 2025-05-30 23:52:24 +03:00
Morilli 6b9cf49e15 delete redundant CreateDirectory wrapper 2025-05-30 22:06:56 +02:00
Morilli 4215ea81a3 remove redundant directory creation in RecordMovie
added in 5fc78efe85 and no longer necessary since... idk
2025-05-30 22:06:56 +02:00
feos ec65117fdf dsda: add some freedooms to db
support other aspect ratios (otherwise hires automap looks bad if we only correct aspect in frontend)
2025-05-30 22:35:02 +03:00
YoshiRulz 83169be667
Skip platform chooser when reloading core
if you make a mistake, you can still reopen via the recents menu
2025-05-31 05:19:19 +10:00
YoshiRulz 7665448202
Convert `LoadRomArgs` to a `record class` 2025-05-31 05:15:45 +10:00
YoshiRulz b0ffdd9073
Fix possibly nonexistent dir `MainForm.ScreenshotAsMenuItem_Click` 2025-05-31 04:18:39 +10:00
Morilli ecd694d66b mask gpgx memcallback addresses to actual address bus size
should resolve #3862
2025-05-30 05:31:35 +02:00
YoshiRulz b5e13206cf
Wire up B&W/colo(u)r switch in Stella (resolves #3203)
unmanaged side was done in 3af38050f (#4178)
2025-05-30 08:24:36 +10:00
YoshiRulz 15d920550a
Fix whitespace in `Stella.IEmulator.cs` 2025-05-30 08:24:01 +10:00
YoshiRulz 2538f9e16c
Remove a print left over from debugging
fixes 631e5c37b
2025-05-30 08:01:28 +10:00
CasualPokePlayer 92b280a3f0
Add .git-blame-ignore-revs (squashed PR #3349)
* Add starting .git-blame-ignore-revs

This could be used for ignoring giant whitespace changes in git blames.
With this we could commit to doing giant tab/space + newline normalization in .cs files without blame noise.

* Add more entries

---------

Co-authored-by: YoshiRulz <OSSYoshiRulz+git@gmail.com>
2025-05-30 04:06:01 +10:00
YoshiRulz 10894c690d
Fix code style warning on `PathEntryCollection._displayNameLookup`
fixes e513a856b
2025-05-30 02:07:42 +10:00
Morilli db555f6087 remove _playbackInterrupted bool in TAStudio
Should fix the bug mentioned in #4184. See 1f6ead6354, #2324, #2371 and 98498f9d50 for more confusion. This change might break any or all of the above.
2025-05-29 17:44:40 +02:00
feos e513a856b7 release dosbox and add dos/doom to paths
alphabetize _displayNameLookup
2025-05-29 17:30:29 +03:00
feos 0a01e0dc64 dsda: fix palette not changing
note on using PALETTE_SIZE as offset. normally it's `256 colors * 3 bytes per color = 768`, but in our headless mode it's 256. upstream does `SDL_SetPaletteColors(screen->format->palette, playpal_data->colours + 256 * pal, 0, 256);` when palette is updated, so clearly it means offsetting by 256 colors=bytes. but PALETTE_SIZE I used as my offset is not for stuff upstream uses it for. just something better than a magic number.
2025-05-29 14:34:03 +03:00
YoshiRulz 8c9e49cd1d
Move `--version` handling up so there's no window and no other prints 2025-05-29 14:48:35 +10:00
YoshiRulz 4a3631ef3e
Remove old Mono-specific process kill call
I tried putting an uncaught exception in a bunch of places and it exited
in every case
2025-05-29 14:36:50 +10:00
Morilli b0b93fe0df update/downgrade gpgx
reverted a problematic upstream commit, resolves #4206 and resolves #4293
2025-05-29 00:35:25 +02:00
VelpaChallenger ffa5d45aaf
Memory Hook Improvements (Return value) (#4283)
* new callback system with callback return values

If the lua callback returns a value, the core will update the addr with it. Otherwise, the old value sent by the core will be used unmodified

* update MemoryCallbackDelegate return value to uint?

* throw NotSupportedException for GBA memory callbacks

* docs: return value of MemoryCallbackDelegate and CallMemoryCallbacks
2025-05-29 00:20:52 +02:00
feos 3aed6f1823 dsda: multi-wad hashes
just like mame we're hashing the wad files, concating them, hashing that, and the result goes to movie header. for singular IWADs loaded on their own just the actual hash is used instead, to make it clear to users.

printing hashes of all files to header might be cool, but I'm not sure it's warranted - usually there's only 1 PWAD
2025-05-28 13:48:42 +03:00
YoshiRulz 6fc7ac6b61
Attempt to fix parsing mapper 4 from NES 2.0 header (resolves #4336) 2025-05-28 05:43:26 +10:00
YoshiRulz 8e3e16b888
Improve error message when a PE `.exe` is loaded (see #3042, #4300) 2025-05-28 01:10:21 +10:00
YoshiRulz f4a5b1fd1b
Fix executable bits on prebuilt native libs (and 1 wbx lib?) 2025-05-28 00:51:33 +10:00
Morilli edda865afb "fix" debugger display after breakpoint hits
Breakpoint hits don't actually pause execution, so it's necessary to immediately update the disassember view as the core will continue executing after. This isn't great design but whatever
2025-05-27 14:27:12 +02:00
YoshiRulz a6b8bd86ab
Actually check `MovieSession.QueuedSysID` too
fixes cc59818d6
2025-05-27 11:11:01 +10:00
YoshiRulz a4ce9e93dc
Don't do checks on `MovieSession.QueuedCoreName` when no movie queued
fixes cc59818d6
2025-05-27 11:06:56 +10:00
YoshiRulz 285d8560cb
Add a few more issue tracker search links to readme 2025-05-27 10:55:50 +10:00
YoshiRulz ffa5738ffc
Ensure `SqliteConnection`s are initialised with absolute paths
resolves #3796
2025-05-27 08:05:24 +10:00
YoshiRulz cc59818d6d
Improve UX when movie `Core` header can't be honoured (see #3582) 2025-05-27 08:00:58 +10:00
Morilli a21b9e049f always prompt filename in tastudio bk2 export
- resolves #4172
2025-05-26 00:38:24 +02:00
YoshiRulz 0e3d786c70
Sort services by name in `Help` > `Features...` 2025-05-26 06:23:57 +10:00
feos ab587289a8 dsda: add all official IWADs I could find to database
some of them the core can't even run but for completeness sake it's better
2025-05-25 17:33:05 +03:00
YoshiRulz ade8248832
Use '/' as path separator in `.xml` bundles on Windows (fixes #4082) 2025-05-25 23:10:34 +10:00
Morilli caeb811fe1 remove zlib1.dll
I don't think this is used anymore
2025-05-25 02:41:07 +02:00
YoshiRulz 984957a4f7
Safely handle null pointers in `Util.UnsafeSpanFromPointer` 2025-05-25 07:45:19 +10:00
YoshiRulz 2441dd1223
Comment out `Util.UnsafeSpanFromPointer<T>`
see 245f0e227
2025-05-25 07:45:19 +10:00
YoshiRulz 0a958c829d
Remove unused import
fixes eef983cc2
2025-05-25 07:26:49 +10:00
feos b0d59e15d8 dsda: hide UI related internal messages
user will be changing those options from hawk side dialog so it's impossible to miss what you're changing (you can look at the dialog again if you're THAT sloppy)

but since we're now initializing with default nonsync settings and changing them on the fly, those UI messages would be appearing all the time

automap messages are left intact since they appear upon in-game button press

worst case scenario, UI messages are moved to hawk side, but then why limit them to only whatever upstream reports and not report every change? which is never done anyway, so I doubt it'd come to this
2025-05-25 00:16:12 +03:00
feos eef983cc2c dsda: put non-sync settings to ini but not pass them on init
if we set them on core init that's how it'd remember them in the reference state, so loading states made with different init options would fail to load

instead we set everything to default on init and then change to what the user set during the first frame advance. that way reference state remains the same so states using different options keep working across all variants

need to not show core messages tho when something is changed from default, because now they appear on init and state load rather than only on explicit change
2025-05-24 23:33:45 +03:00
Morilli 8fcaaedd2c remove unused method 2025-05-24 22:24:10 +02:00
YoshiRulz 4025d36b18
Avoid parsing `.xml` bundles twice (resolves #4277) 2025-05-25 01:10:51 +10:00
YoshiRulz bba93b33d6
Replace direct `CoreComm` usage in `RomLoader` w/ `IDialogParent`
resolves #4208
partially reverts ddd14d527
2025-05-25 00:58:01 +10:00
feos c0f93b05fc dsda: load wads correctly regardless of their order in xml
internal wad goes first, then whatever IWAD we found, then all the PWADs

show all files in rom info
2025-05-24 17:48:31 +03:00
YoshiRulz 631e5c37b4
Improve how simple (number-indexed) Lua tables are printed
also might change sort order for associative tables in some edge cases
2025-05-25 00:40:29 +10:00
YoshiRulz b6bcd083a3
Simplify `SerializeTable` in `ConsoleLuaLibrary` 2025-05-25 00:30:51 +10:00
YoshiRulz f3799fbb0e
Clean up hack in `MemoryLuaLibrary.GetMemoryDomainList` 2025-05-24 09:59:59 +10:00
YoshiRulz 6abed2b052
Fix typos in readme and add some links 2025-05-24 03:57:48 +10:00
feos 5064a1a1c7 release dsda 2025-05-23 19:12:20 +03:00
YoshiRulz 0f5ad4bcee
Nix expr: Fill out `meta` on assemblies and executable derivations 2025-05-23 10:42:18 +10:00
YoshiRulz 27e711dbe1
Fix code style warnings
fixes eb94bd88b
2025-05-23 09:54:18 +10:00
feos fe3d45bb97 dsda: default scale 2 2025-05-22 23:51:29 +03:00
feos dce6253c8a default doom controls 2025-05-22 23:43:15 +03:00
feos eb94bd88b9 dsda: completely remake input system init 2025-05-22 22:34:31 +03:00
YoshiRulz 498fabc576
Make binding an axis to the same mouse axis twice switch to relative
resolves #4310
2025-05-23 03:53:21 +10:00
YoshiRulz f614b01cfb
Remove unused import 2025-05-23 03:51:48 +10:00
feos 8197c9ba66 dsda: scale back MmapHeapSize
slaughter maps have gigantic savestates so they're not very tasable until we move from wbx to native. so no point in claiming complete support for them right away. okuplok launches, but might crash maybe
2025-05-22 20:45:23 +03:00
feos 0fe3c33c46 dsda: disable BOOM demo import for now
passing rngseed didn't fix sync, and passing all the settings is too much work for this release. will support it afterwards.

instead just tell the user BOOM demos are not supported
2025-05-22 20:18:00 +03:00
YoshiRulz c84d292aa9
Remove unused helpers `Util.{Memcmp,Memset}` 2025-05-21 10:50:35 +10:00
YoshiRulz e5d641fc09
Fix `ReflectionCacheGenerator` choking on dummy projects 2025-05-21 10:50:35 +10:00
YoshiRulz fda159a8ca
Remove no-op cast in `DoomLmpImport`
fixes b2c33aa54
2025-05-21 10:50:21 +10:00
feos e1374d27d2 dsda: fix 3 missing params for boom demos
the rest may have to be implemented in the first place, like initial seed
2025-05-20 23:25:22 +03:00
feos b2c33aa548 dsda: initial support for boom demos
parser vastly rewritten to match upstream
TODO: fix sync
2025-05-20 22:10:04 +03:00
feos d97fe551b8 dsda: print eventual complevel 2025-05-20 22:10:04 +03:00
YoshiRulz 84c535f701
Fix encoding of `Bk2MnemonicLookup.cs` and add trailing comma
fixes 243bf8077
2025-05-21 03:30:06 +10:00
Morilli 2e539b3c47 gpgx: fix invalid system checks
- closes #4324
2025-05-19 21:42:18 +02:00
Morilli eade36456c Update openal-soft to 1.24.3
- probably resolves #4325

built from 1.24.3 tag without router dll (so OpenAL32.dll is effectively soft_oal.dll). As far as I understand this has no implications other than disallowing other openal implementations
2025-05-19 19:48:25 +02:00
YoshiRulz c92005e3a4
Link endof10.org from readme 2025-05-19 01:15:05 +10:00
feos b6a2785517 dsda: descriptive complevel enum values 2025-05-18 12:10:49 +03:00
feos 31a867db13 dosbox .hdd: missed couple places 2025-05-18 09:51:36 +03:00
feos 302983bfca dos: output and accept .hdd
fix filename report for CD swapping
restore 4sec message duration for swaps (there's no way to read it for long filenames otherwise)
2025-05-17 22:01:38 +03:00
YoshiRulz 3df637ab84
Migrate `BizHawk.SrcGen.*` to `IIncrementalGenerator` 2025-05-16 18:29:59 +10:00
YoshiRulz 7c8c2c0a4b
Use SHA512 checksums for ext. tool "permission" dialog 2025-05-15 16:21:49 +10:00
YoshiRulz 9de825bac3
Add `SHA512Checksum` helper 2025-05-15 16:21:31 +10:00
YoshiRulz 9e3a8ff9c9
Mute SA1028 for satellite .NET projects
fixes 33be880bb
2025-05-13 16:44:37 +10:00
YoshiRulz b5253317d0
Attempt to fix melonDS log line prefixing (resolves #4317)
doesn't properly handle the case of changing loglevel w/ an "unfinished"
message, but neither did the naive impl.
2025-05-13 16:21:39 +10:00
feos 243bf80777 dos: fix some mnemonics 2025-05-12 19:37:41 +03:00
YoshiRulz e7e31d5792
Improve wording of missing firmware message 2025-05-13 01:39:14 +10:00
YoshiRulz dc67699b9e
Print CLI flags as received back to stdout 2025-05-12 21:55:56 +10:00
feos 3a4ebe95f0 dsda: add wbx pages mem domain 2025-05-11 22:54:06 +03:00
Morilli 4c809d0ba6 fix typo and analyzer 2025-05-11 15:03:54 +02:00
Morilli a103564210 unregister IStatable for dosbox
see #4311
2025-05-11 14:58:38 +02:00
Morilli 72d9071080 check nonexistent saveram better in RecordMovie
- resolves part of #4311
2025-05-11 14:58:38 +02:00
feos dfabe85181 dsda: condition for some av updates 2025-05-11 15:39:43 +03:00
feos 61a6074bd1 dsda: fix shorttics and lmp import (not all) 2025-05-11 14:38:27 +03:00
Morilli e97a154f30 workaround mono display bug in About dialog
apparently under mono `LinkLabel` doesn't work properly with padding, so just remove it.
2025-05-11 09:22:22 +02:00
Morilli c1866c4649 reduce zstd compression level in chd writing
in my testing this increased the output size by <1% and increased compression speed by more than an order of magnitude
2025-05-11 07:29:53 +02:00
YoshiRulz d261e65058
Ensure `RCheevos._gameData` is never `null` (fixes #4312) 2025-05-11 12:28:48 +10:00
YoshiRulz 24b30243a9
Adjust terminology in PR template to match GitHub interface
committer != author (which I think is a distinction Git itself makes)
2025-05-11 00:52:43 +10:00
YoshiRulz 063a6f2fa3
Add missing import
fixes f7b148250
2025-05-11 00:48:34 +10:00
YoshiRulz f7b148250d
Extract constant string `MD5Checksum.Dummy` 2025-05-11 00:34:22 +10:00
YoshiRulz 6e10064ca4
Use system display names in Multi-disk Bundler 2025-05-10 17:23:02 +10:00
YoshiRulz e734c88071
Trim line-end whitespace in Opera managed side
fixes 654544b32
2025-05-10 01:01:46 +10:00
Sergio Martin 654544b329
Adding Opera (3DO) as emulation core in Bizhawk (#4264)
* Adding base

* Progress with opera and adding 3do firmwares

* Adding missing callbacks

* Adding missing callbacks

* 3DO core starting

* Now passing inputs

* Passing gamepad inputs

* Fixing input names

* Now supporting mouse

* Adding mouse support

* Added flightstick

* Added flight stick

* Adding last inputs and fixing audio

* Adding controllers and fixing audio

* Adding orbatak

* Fixing mnemonics, added orbatak

* Adding font roms

* Adding font roms

* Adding region

* Adding region

* Fixing mouse issue

* Fixed initialization bug in fresh installs

* Setting mouse to relative inputs

* Using mouse as relative

* Bypassing bios checks to enable bizhawk to pass whatever bios it wants

* Adding default inputs for 3DO

* Adding detection of nvram changes

* Adding lag frame and nvram saving

* Adding cd use detection

* Adding cdrom light

* Using cd callbacks

* Using cd callbacks

* Bypassing image name check

* Adding multidisc support

* Removing 3do-iso special extension

* Fixing build

* Attempting to add disc swapping

* Trying to add multidisc support

* Uncommenting cd functions

* revert unrelated changes

* misc unmanaged integration

* Update waterbox-cores.yml

* Added reset button, removed eject/insert

* Added reset button, removed eject/insert

* Fix line endings in `Bk2MnemonicLookup.cs` changes

* Fix indentation

* Fix spaces in `Opera.cs`

* Alphabetise

* Make `Opera`'s `ISaveRam` implementations `override`

* Misc. code style changes

* Fix casting array index to `uint` for comparisons

* Adding default framerate and removing message duration parameter

* Refactoring input parsing and fixing some errors

* Fixing indentation

* Exposing non volatile ram

* Adding automatic sram management

* Now letting bk manage saveram automatically

* Fixing indentation and removing unncessary flag

* Removing dead code

* Removing dead code

* Removing unnecessary mnemonic fallbacks

* Keep fixing indentation errors

* Removing struct for memory areas

* Adding proper detection of input reading

* Changing namespace to not have an underscore

* fix whitespace in PlatformFrameRates

* make waterbox function non-virtual

* Update src/BizHawk.Emulation.Cores/Consoles/3DO/Opera.cs

Co-authored-by: feos <vadosnaprimer@users.noreply.github.com>

* Fixing controller mapping

* Fixing controller mapping, 3DO->Panasonic3DO, added submenu

* Fixing controller

* Fixing controllers

* Removing unnecessary function

* Fixing namespace and default ctrls

* Fixing 3DO detection

* Adding submodule branch

* Adding PAL framerate for opera

* controller pic

* Fixed firmware naming

* Fix line endings

* Recompress image

* Realphabetise after namespace/sysID change

* Move this `case` block up

* Minor code style fixes

* Renaming user-facing Panasonic3DO strings to 3DO

---------

Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
Co-authored-by: YoshiRulz <OSSYoshiRulz+git@gmail.com>
Co-authored-by: feos <vadosnaprimer@users.noreply.github.com>
Co-authored-by: feos <feykomylce@gmail.com>
2025-05-09 10:04:14 +03:00
CasualPokePlayer 42a96fb996 Add iNES 2.0 support for NROM
NROM usually doesn't have WRAM, but iNES 1.0 doesn't specify WRAM size, so its detection just assumes 8KiB WRAM. iNES 2.0 can precisely identify WRAM size.
2025-05-08 19:48:18 -07:00
100thCoin ff8a2bdf22 Fix NesHawk APU Status open bus behavior
Reading from $4015 no longer updates the data bus.
2025-05-09 10:58:03 +10:00
YoshiRulz edac0266e5
Fix `InputRoll.RowCount`, caused crash on removing row in Lua Console
fixes d7b0af9f4
also I think there was an unnecessary copy because this ctor was missing
2025-05-07 15:56:26 +10:00
Morilli b5893c0a0b fix tastudio SaveTas implementation
somewhat fixes 21fbee01de I guess, in particular AskSaveChanges would not save if no file name had been chosen.
This doesn't behave correctly when trying to save a backup or bk2 but when no filename has been chosen that makes no sense anyway, so...
2025-05-07 04:37:06 +02:00
Morilli c8e82ba1e5 dispose discs in dosbox
see #4301
2025-05-05 20:31:06 +02:00
feos 8a70238e75 dsda: fix settings changes dying on loadstate
handle gamma changes on the hawk side
DoUpdate is no longer needed
2025-05-02 09:32:47 +03:00
feos 1ec5d2e81c dsda: we can now ignore turn input during strafe50
impossible for a human to send to the game via keyboard and mouse, but works fine in movies, so it's been used in tases for decades (?). but we control what happens between frontend and core so why not block this particular input if needed
2025-05-01 02:07:00 +03:00
feos 13c3a83988 dsda: allow full byte range in BOTH directions for frac turn
since they're split and we can't set hi byte to -0, there was no way to turn below -1. [-256, 256] is not an accurate range per se, but due to how things are added on the managed side before sending inputs to the core, it feels like the most useful one. for shorttics one would only have access to hi byte, and with longtics one can still simulate that behavior - by only controlling said hi byte! and only introduce "sub-angle" when it's actually needed for something specific
2025-04-30 16:13:33 +03:00
Sergio Martin e04fd79574
Add DOSBox Windows Support (#4294)
* Decoupling HDD from SRAM

* Modifying memory area

* Adding win-specific config

* Mods

* Adding option to save hdd contents

* Fixing period

* Passing hdd contents in chunks to prevent excess mem usage

* Reverting changes to gui

* Revert "Reverting changes to gui"

This reverts commit 004a6b3382.

* Updating configurations

* Created custom submenu for DOS

* Renaming function nam names

* Refactoring function names

* Adding failure check for memfile alloc

* Adding logging on hdd size

* Re-adding configuration menu

* Fixes

* Demoting cd recognition of yet unsupported cores

* Fixing timing

* Reducing diff

* Fixing style

* Reducing diff

* Reducing diff

* Reducing diff

* Reducing diff

* Reverting change in cast in ticks target

* Reverting change in cast in ticks target

* Adjusting hdd precision

* Removing compatibility flag (not needed)

* Fix line endings

* Remove reference to Speccy

* Revert changes to `Bk2MnemonicLookup`

* Move DOS submenu initialisation to `MainForm_Load`

* Minor code style fixes

* Update src/BizHawk.Emulation.Cores/Computers/DOS/DOSBox.ISettable.cs

Co-authored-by: feos <vadosnaprimer@users.noreply.github.com>

* Strip line-end whitespace

* Update src/BizHawk.Emulation.Cores/Computers/DOS/DOSBox.ISettable.cs

Co-authored-by: feos <vadosnaprimer@users.noreply.github.com>

* Fixing byte notation to B

* Fixing byte notation to B

* Update src/BizHawk.Emulation.Cores/Computers/DOS/DOSBox.ISettable.cs

---------

Co-authored-by: YoshiRulz <OSSYoshiRulz+git@gmail.com>
Co-authored-by: feos <vadosnaprimer@users.noreply.github.com>
2025-04-30 14:38:58 +03:00
feos 9347a95f98 dsda: split turning axis into 2
editing a short in tastudio would be a nightmare, so we split it:
- high byte represents shorttics mode and whole angle values
- low byte is fractional part only available with longtics
2025-04-30 14:38:42 +03:00
feos 164d2d425b dsda: fix analog turning 2025-04-29 19:36:24 +03:00
feos 6733cee5f3 dsda: less intense coord description 2025-04-28 21:32:09 +03:00
YoshiRulz 33be880bb0
Set StyleCop rule SA1028 to error-level so CI will catch regressions
"Code should not contain trailing whitespace"
2025-04-29 02:22:32 +10:00
YoshiRulz 605deb682d
Remove line-end whitespace across main solution
...except in Designer files. Done with
`find src -type f -name '*.cs' -exec sed 's/[ \t][ \t]*$//' -i {} \;`
(and again w/ `\r`) followed by
`git restore src/*.Designer.cs`
2025-04-29 02:21:04 +10:00
feos 4cfc20e3ff dsda: rename cinterface because this thing is not limited to it 2025-04-27 23:36:39 +03:00
feos e733d28600 dsda: extract render updates 2025-04-27 23:20:31 +03:00
feos 8f0cd0699e dsda: volumes 2025-04-27 23:10:52 +03:00
feos 3416af401f dsda: refer to vanilla options 2025-04-27 16:34:59 +03:00
feos 314b96f1ca dsda: coordinates, map details, and map overlay
fix messages status appearing when unchanged
drop scale factor from render info
2025-04-27 15:49:10 +03:00
feos 358515e07e revert "change res on the fly"
there's a major slowdown when doing several res changes in the same session, and its need is questionable anyway, because of potential inconsistency of screensize across states and stuff.
2025-04-26 19:26:38 +03:00
YoshiRulz 6da42f7559
Revert unrelated work from `MainFormMouseCaptureForcesTopmost` commit
partially reverts 6dccb759c
2025-04-27 01:20:35 +10:00
CasualPokePlayer faf3c3336e Prevent MainModule usage from Silk.NET code 2025-04-23 15:15:04 -07:00
YoshiRulz 33f4d134e7
Print to console when no matching entry found in `PlatformFrameRates` 2025-04-24 05:59:16 +10:00
YoshiRulz 685a5cd119
Fix some tiny float imprecisions in `PlatformFrameRates` 2025-04-24 05:50:35 +10:00
YoshiRulz 5516281381
Add citations for Amiga in `PlatformFrameRates` and fix values 2025-04-24 05:50:33 +10:00
YoshiRulz 9ae37ee239
Reformat citations for NES and PSX in `PlatformFrameRates` 2025-04-24 05:50:13 +10:00
YoshiRulz 5e2c1b9ddf
Revert alphabetisation of `PlatformFrameRates` source
partially reverts 93f33815e
why split up related systems? also I have a set of refactors pending
which can't be reconciled with the alphabetised list
2025-04-24 05:49:55 +10:00
YoshiRulz f656f07bfe
A couple refactors for `RoslynUtils` and `DefaultSetterGenerator` 2025-04-24 04:51:48 +10:00
YoshiRulz b4cb0b7612
Remove redundant `unsafe` from a couple classes 2025-04-24 04:51:48 +10:00
YoshiRulz 8931f05703
Remove redundant `IPipeline.SetUniformMatrix` overload 2025-04-24 04:51:47 +10:00
Morilli 1fd6e2e085 fix dosbox cycle timing code
- closes #4295
2025-04-23 03:43:48 +02:00
Morilli 0001707a42 make "Show Keys" item set all keys instead of toggling them
see also #2779 for a similar fix for the "Show Player X" item
2025-04-22 20:52:42 +02:00
Morilli d8062cf731 [CI] remove unnecessary install actions
Somehow this broke the windows workflow and as lua is shipped by bizhawk on windows and liblua5.3 is installed on ubuntu we don't need any explicit install action.
2025-04-22 20:21:48 +02:00
feos d446c6c46d dsda: resolution now changes on the fly
TODO: fix slowdown after a few changes
2025-04-22 21:15:27 +03:00
YoshiRulz 77b4507ad3
Let `LuaTests` run in CI 2025-04-23 03:40:07 +10:00
YoshiRulz 164a89aaf6
Fix code style warnings 2025-04-22 04:25:38 +10:00
Morilli 8a9f185f5d Fix HexEditor rom path handling
`Config.RecentRoms.MostRecent` is not a path apparently
2025-04-21 14:23:06 +02:00
Morilli 092accbba0 fix dosbox Bk2MnemonicLookup 2025-04-21 12:06:04 +02:00
Sergio Martin 236ff74b2b
Adding DOSBox as core for DOS TASing (#4217)
* Adding dosbox

* Adding placeholder

* Adding initial placeholder for DOSBox

* update

* Update

* Update

* progress

* Progress

* Increasing mem capacity

* Progress

* Now running timer correctly

* Progress

* Stable

* Parsin inputs

* Keyboard working

* stable before using memfiles

* Now accepting rw hdds

* Hard disk rw working

* Fixing conflict

* Getting samples

* Reading samples but sounds too low

* Reading samples but sounds too low

* Now accepting multiple cdrom/floppy images

* Allowing swapping

* Enabling cdrom and disk swapping

* Simplifying

* Simplifying

* Simplifications

* Simplfiications

* Capturing sdl delay

* Adding configuration presets

* Enabling joystick

* Enabling joysticks

* Added mouse support

* Adding mouse support

* Progress with hard disk

* Adding default hard disk images and making them selectable

* Adding mnemonics, more configs, and some refactoring on the standard confs

* Processing file extensions

* Adding sram

* Adding saveram

* Adding drive lights

* Adding drive lights

* Adding memory domains

* Removing warnings

* Fixing warning

* Revert unrelated changes to Multi-Disk Bundler

* Re-alphabetise lists and clean up diff

* Missed a bit

* Make `DOSBox`' `ISaveRam` implementations `override`

* Fix `DOSBox`' `[PortedCore]`

* Clean up string comparisons in `DOSBox` ctor

* Set values for `WriteableHardDiskOptions` instead of translating

* Clean up reading of DOSBox config presets from embedded resources

* Fix code style warning

* Removing duped line

* Fixing extension parsing

* Small adjustments

* Aligning fps to that of normal DOS

* Aligning fps to that of normal DOS

* Simplified extension getting and adding base config file resource

* Remove unused import

* Properly measuring extended mem size

* Adding more settings and simplifying machine presets

* Adding check for SRAM size to prevent wrong-sized HD being loaded

* Removing unnecessary directive

* Update correct DOS framerate

* Adding sensible configuration presets

* Adding to the config preset description text

* Update src/BizHawk.Emulation.Common/Base Implementations/Bk2MnemonicLookup.cs

Co-authored-by: feos <vadosnaprimer@users.noreply.github.com>

* Removing stale config files

* Fixed mouse emulation

* Fixed mouse emulation

* Removing unused keyboard flag

* Addressing feos' comment about virtual height/width

* Fixed bug with saveram

* fix VirtualWidth

scanlines remain constant so they aren't stretched, and width is adjusted to be 4/3 of height, because video modes in DOS were designed for a 4:3 monitor. exact pixel shapes may slightly differ depending on exact pixel clock but setting 4:3 for DOS is standard.

* DependentUpon

* Making FPS configurable

* Making FPS configurable

* Adding fps num/denom

* Implementing proper fps numerator / denominator defaults for DOS

* Passing mouse deltas from bk

* Passing mouse deltas from bk to the core

* expose and use deltas directly

to make it work in hawk, one needs to bind RMouse X/Y for Mouse X/Y Delta in config.ini, by manually editing the file (for now)

* Implementing support for .cue+.bin and other cdrom types

* Fixing sensitivity

* Adjusting mouse sensitivity

* Fixing integration for windows

* [WIP] loading cds from bk

* [WIP] loading cds from bk

* Using .cdrom extension for cdroms, and passing disk name to the read callback

* Using .cdrom extension for cdroms, and passing disk name to the read callback

* Cleanup and fixing .iso loading and swapping

* Fixing .iso loading and cdrom swapping

* Adding default controllers

* Added callback for video updates to prevent tearing

* Removing unnecessary message

* Fix line endings in `Bk2MnemonicLookup.cs`

* Fix indentation

* Fix misc. whitespace crimes

* Drop redundant `<None Remove/>`

* More whitespace fixes

* More code style fixes

* Small fixes

* Fixing misc comments

* Adjusting naming

* Fixing values

* Removing dead code

* Clarifying the source of DOS framerate chosen

* Removing unused variable

* Removing duped assignments

* Fixing typo

* Removing no-longer required SRAM management

* Removing no longer required sram management functions

* Removing no-longer needed SRAM logic

* Fixing framerates as per feos's comment

* Passing init struct for a more tidy initialization. Also fixing identation for good

* Fixing hard landing on failure to load SRAM. This is needed to prevent crashes in dosbox when preserving hard disk contents

* Added missing submodule and artifact

* Reverting unnecessary change

* Removing no longer needd dosbox-iso extensions

* Removing no-longer necessary virtuals

* fix

* Adding lines into readme

* fixing indentation

* Reducing job concurrency for dosbox -- otherwise the server gets overloaded

* adding recursive submodule for dosbox-x

* Simplifying

* Simplifying

* Simplifying

* Simplifying

* Only offer drive switching if more than one drive is present

* Adding proper Disc identification for ISO9660 / Joliet (default target DOS)

* Adding CDROM case

* Moving comments to proper place

* Moving comments to proper place

* Code style fixes

* Clean up handling of Next Disc buttons

* Clean up `DOSBoxKeyboard` definition

* Remove redundant button mnemonic overrides

* remove leftover hack from my initial 2-byte range

it's hard to tell from upstream code what the range should be...

* Fixing mouse buttons getting stuck and aligning mouse speed minmaxes to what dosbox expects

* Removing default framerate for DOS

* set mouse speed range to match raw deltas range
(see 93bc50288f)

since this makes minimal mouse delta 1 now instead of 2 or 3 (they were different for x and y because ranges were different), I readjusted default sensitivity to match default turning in doom in upsteam

* fix casing on public fields
we use PublicField, _privateField, and localVariable casing

this commit also includes WIP to expose attoseconds like mame does, so that 1 value could be used to determine framerate, and movie parsers won't need too many changes to support DOS framerates

* fix num/denom values to match dosbox-x for when it launches into dos
video dump info was not super clear so I relied on values that are actually assigned to `fps` in `VGA_SetupDrawing()`

TODO: check other machines, update sync settings descriptions when we expose render fps info to user

* use an existing thing instead of GetFullName
it was copied from uae where I made it because I didn't know about `Path.GetFileName(rom.RomPath)`, it's now fixed in master too

increased message duration so user could read potentially long filenames (copied from uae too)

* Move init of new `MouseState` to top and eliminate locals

* fix naming for mouse states

* update submodules

* Adding function to get video refresh rate

* Adding report on video refresh rate update

* Revert "Merge branch 'dosbox' of github.com:SergioMartin86/BizHawk into dosbox"

This reverts commit e5b16a6307, reversing
changes made to ced12c51b4.

* Merge branch 'dosbox' of github.com:SergioMartin86/BizHawk into dosbox

* Removing unnecessary directive

* Fixing reboot

* fps notice formatting

* Zero init fps vals

* Using variable framerates

* Now accepting variable framerates as given by the core

* Moving ISO9660 detection lower

* Storing refresh rate in savestate -- update it on load if different

* fix GetFullName()

* Adding function to get number of ran cycles

* Adding ICycleTiming

* attoseconds are obsolete now

* fix loading CDs with spaces in their name

* Message duration needs to be left to the user to configure. Just passing a null

* Setting notify times back to 4 seconds cause these require a bit more time to read/understand

* Updating CycleCount from within wbx

* Simplifying cycle timing

* Removing FPS change notification, using default waiting times

* Updating submodule

* Fixing bug in disc swapping

* Adding drive selection functionality

* fixing period input

* Adding logic to present disc swapping operations from repeating when holding the button

* added defines for drive id

* point submodule to specific branch

---------

Co-authored-by: YoshiRulz <OSSYoshiRulz+git@gmail.com>
Co-authored-by: feos <vadosnaprimer@users.noreply.github.com>
Co-authored-by: feos <feykomylce@gmail.com>
2025-04-20 16:19:38 +03:00
feos 770c2954b1 dsda: we don't need reboot for settings yet 2025-04-19 23:07:01 +03:00
feos 45e16c0ec2 dsda: pass all non-sync settings to the core once they change 2025-04-19 21:44:15 +03:00
Morilli 9d80ea12b3 fix O2 mnemonic lookup
fixes a41817b703
2025-04-19 17:49:41 +02:00
YoshiRulz a41817b703
Prevent devs from setting '.' as a button's mnemonic
see c2ba2d7d4, #4217
2025-04-19 20:49:05 +10:00
feos c2ba2d7d4a mnemonics: comma means no input
TODO: unit test
2025-04-19 09:28:15 +03:00
Morilli 508aaa4400 add additional #if-directives 2025-04-18 19:45:12 +02:00
Morilli 7adc5619d7 remove redundant control overloads
no longer necessary since c# language version 10
2025-04-18 18:34:47 +02:00
YoshiRulz 3eb77a7567
Stop passing `--test-adapter-path` to `dotnet test` in scripts
this was causing a warning to appear, see microsoft/vstest#3475
don't entirely remember why it was necessary to pass
this, originally `-a`, at all; it's in the first commit d91c477e5
2025-04-17 04:08:44 +10:00
YoshiRulz 45f6bcb465
Nix expr: Regen NuGet lockfile
fixes 85dd9c816
2025-04-17 04:05:39 +10:00
YoshiRulz 0ab22359e1
Make `CustomCollectionTests.TestSortedListRemoveAfter` generic 2025-04-16 23:47:01 +10:00
YoshiRulz 3017459a3a
Mute remaining MSTest usage warnings 2025-04-16 23:35:16 +10:00
YoshiRulz 1fb2daaac0
Adopt new assert methods for exceptions 2025-04-16 23:35:16 +10:00
YoshiRulz ac95bf49bc
Fix swapped actual and expected values in `ZwinderStateManagerTests` 2025-04-16 23:35:16 +10:00
YoshiRulz 85dd9c816a
Bump MSTest to 3.8.3 and enable its new Analyzers 2025-04-16 23:12:56 +10:00
YoshiRulz aea450542a
Don't need this partial config migration anymore 2025-04-15 20:56:44 +10:00
YoshiRulz a88ba40bb5
Simplify some save slot UI event handlers 2025-04-15 20:50:43 +10:00
feos 1b301229ce Revert "uae: use existing thing instead of GetFullName()"
This reverts commit 13f49a1e3f.

fixed GetFullName() instead
2025-04-13 23:42:19 +03:00
feos 6dccb759cb Config.MainFormMouseCaptureForcesTopmost (config -> display -> window)
useful when some obscure window can overlay bizhawk while in mouse capture mode if the hidden mouse pointer is too close to it (pop-up panel on the edge of the screen in my case). topmost+fullscreen makes those unreachable, but automatic topmost is set to false since normally it's potentially bad
2025-04-13 23:31:17 +03:00
feos f3847c881d `Toggle Stay on Top` hotkey 2025-04-13 22:47:28 +03:00
CasualPokePlayer ca8bf2fb49 fix bsnescore and snes9x rompath usage (matches behavior before, maybe this should be changed but should be slightly more sensible now); remove unused imports 2025-04-13 11:12:45 -07:00
CasualPokePlayer cb50a24c0c Make RomPath consistent between xml and not xml
Previous implementation was broken and differed between the two in practice in the case of archives. Standard single file just passed archive loaded, without archive binding info. Xml case was even more nonsense, giving a completely nonexistent path using the internal archived file name. RomPath now will properly report the binding info in the case of archives. Cores should be very careful with using RomPath with file apis, as the | used for binding info is not a valid file char and will throw most file apis (some cores were already doing this, I've fixed most of the cores not doing so save for UAE and DSDA).

TODO: Need to fix the edge case of the file being in the same archive as the xml (represented specially in xml and that code path seems to already been broken)
2025-04-13 01:19:44 -07:00
feos 75fc58041e bind mouse capture to middle mouse button
pretty standard across emus that do this upon hotkey
2025-04-13 10:44:59 +03:00
feos 13f49a1e3f uae: use existing thing instead of GetFullName() 2025-04-13 08:48:21 +03:00
Morilli bf1930c3ff evict savestates on branch update 2025-04-12 23:55:12 +02:00
Morilli f20d09c8c1 fix marker state eviction logic
yeah this never worked
2025-04-12 22:55:08 +02:00
Morilli 52f08a9a6c cleanup TasView_CellDropped 2025-04-12 22:53:21 +02:00
YoshiRulz 1983c9ce08
Reflow single-line enum definitions 2025-04-12 20:26:57 +10:00
Morilli cd699d7c52 fix separator conflict in mame dipswitch option code
"@" was used as part of a description string, breaking the parsing. Surely no description includes a newline... (is there a better way to do this?)

- closes #4288
2025-04-12 06:48:18 +02:00
YoshiRulz d94fb910c7
Fix sysID in error dialog from `.xml` load failure
I think this predates the multi-disk bundler lmao
2025-04-12 01:33:05 +10:00
YoshiRulz 6c0f2a0ebf
Restore import in `TasMovie.cs`
reverts e672cc4cd
fixes 48c545a06
2025-04-12 01:13:27 +10:00
CasualPokePlayer 48c545a063 Revert "don't reserve branch frame savestates"
This reverts commit 8d066ff295.
2025-04-11 06:45:06 -07:00
Morilli e672cc4cd8 remove unused using 2025-04-11 14:32:47 +02:00
Morilli e32ec48c8a optimize tas history SetRedoLog allocation 2025-04-11 14:18:32 +02:00
Morilli 8d066ff295 don't reserve branch frame savestates
There was no eviction logic so the reserved frames would accumulate and never be cleaned, leading to continuously increasing memory usage.

Additionally I don't know why they would need to be reserved in the first place
2025-04-11 14:14:32 +02:00
YoshiRulz a09803e793 Copy metadata to linked and subframe cores from base core 2025-04-11 13:09:43 +10:00
YoshiRulz 5571d2e2a6 Update author/source metadata for several cores where it's missing
see #4168
2025-04-11 13:09:43 +10:00
YoshiRulz 6e63322f3f
Fix rewind indicator not being updated on core close
fixes eb7296dcd
2025-04-10 21:35:53 +10:00
CasualPokePlayer f1dce8964d Fix clang Linux building 2025-04-09 12:24:19 -07:00
CasualPokePlayer 2100168ed7 rebuild waterboxhost .so 2025-04-09 12:14:19 -07:00
feos 590d6bdc01 dsda: split out common buttons from players and only send them once 2025-04-09 21:45:40 +03:00
CasualPokePlayer 5409d0964e QuickerNES rebuild 2025-04-09 11:28:39 -07:00
CasualPokePlayer d9f2ce45fb Add CD WORD RAM (2M) to exposed Sega CD memory in RetroAchievements 2025-04-09 10:57:24 -07:00
feos efaa313d01 dsda: carry fractional x mouse movement for shorttics 2025-04-09 20:32:46 +03:00
feos 93bc50288f dsda: fix horizontal mouse range
the core uses 2 bytes, but if we use that range then raw mouse input is automatically recalibrated somehow and sends values multiplied by 272. that way maximum actual value is 120 (after dividing the range cap by 272), which is even more limiting than shorttics. and min value is 272 itself, which is not very useful if we have to divide it, because we need it to be 1!

the range of [-180, 180] is somehow the highest range that still gives minimal movement of 1, while providing maximum room for bigger movement.
2025-04-09 19:37:31 +03:00
feos 0f0d84489f Revert "mouse capture: restrict to center"
This reverts commit b0b32bea6a.

see commit discussion
2025-04-09 19:08:02 +03:00
feos d88f70aba5 dsda: x-mouse strafing 2025-04-09 19:04:47 +03:00
YoshiRulz da62f29d70
Add host mute indicator to status bar (see #2308) 2025-04-09 21:21:11 +10:00
YoshiRulz eb7296dcd5
Add rewind indicator to status bar (resolves #2308) 2025-04-09 21:19:05 +10:00
YoshiRulz 1d6583e42d
Un-mark DSDA-Doom as released 2025-04-09 14:32:38 +10:00
YoshiRulz 2f12b1efcc
Remove unused import
fixes 06bf689e8
2025-04-09 14:01:46 +10:00
YoshiRulz 06bf689e8d
Fix bank switching in NesHawk's MMC5 impl. w/ 128 KiB WRAM 2025-04-09 13:52:58 +10:00
feos f58644cb5a dsda: make strafe50 possible
in vanilla doom, turn key + strafe key = strafe in the direction of the turning key. but if directional strafe key is added to the mix, both strafe speeds are ADDED TOGETHER. on top of that, max strafe speed is max vertical movement speed (50), NOT the speed you get if you strafe while holding the run key (40). all of this makes strafe50 possible in vanilla, and turning is impossible at that time (because strafe key turns turning into strafing).
2025-04-08 22:49:56 +03:00
feos ffb1af4902 dsda: option to show input history 2025-04-08 22:49:56 +03:00
YoshiRulz 967ae76dfd
Make SNES layer hotkeys work for new BSNES 2025-04-08 15:45:10 +10:00
YoshiRulz 28264c6dee
Set core icon for new BSNES 2025-04-08 15:36:37 +10:00
YoshiRulz 57d612f4b4
Allow NesHawk to load MMC5 w/ 128KiB WRAM from NES 2.0 headers
don't think this is working correctly but it doesn't crash
2025-04-08 14:07:10 +10:00
YoshiRulz 60fdcb3f72
Fix parsing of PRG-/CHR-ROM size from NES 2.0 headers (NesHawk) 2025-04-08 12:24:54 +10:00
YoshiRulz 41ad4ff6e9
Fix copying of SDL2 lib to `/Assets` when building w/ debug symbols 2025-04-07 10:07:15 +10:00
CasualPokePlayer 976f430531 Rebuild gambatte linux 2025-04-05 13:04:30 -07:00
CasualPokePlayer 085437a346 [Gambatte] Revert AGB forcing DAC enable code (not really accurate), adjust SGB transfers to not invoke UB nor endian dependencies 2025-04-05 12:39:33 -07:00
feos dd28599451 dsda: show_messages setting 2025-04-05 21:54:07 +03:00
feos ba48066748 dsda: automap controls (and live gamma toggle)
limited to vanilla functionality
currently only works for doom, will require refactoring to work universally
2025-04-03 23:34:18 +03:00
feos a74100ff9f more buttons 2025-04-03 23:34:18 +03:00
VelpaChallenger 53cdf182ae
Pass values to memory callbacks in GPGX (squashed PR #3821)
* fix on_bus_read issue for genplus-gx core

- related to issue #3813
- update signatures, create new value variable in each of the memory read core functions, pass it to the callback and return it instead of the inline calculations. Also, pass val to write and exec callbacks in IDebuggable since they all use the same mem_cb signature and it would break otherwise. I want to update write and exec callbacks in next commit though to ensure nothing unexpected happens.

* update write callbacks for genplus-gx

- related to issue #3813

* update exec callbacks for genplus-gx

- closes #3813

* twice memory peek for deep freeze via on_bus_read bizhawk

Read a first time to pass the read value to the callback, read a second time to read the updated value in case it was updated by the callback and effectively deep freeze the value, no matter if 8, 16 or 32 width

* remove lines from unknown source

I have no idea where those lines came from. But I never meant to add them. This should look like it currently looks in master

* reinsert const, use implicit delegate constructors

* update submodule commit to before override memory values

* rename a to addr, unsigned int to just unsigned
2025-04-04 05:46:57 +10:00
CasualPokePlayer a562a0d23c Try to use UTF8 for OpenAL device strings
Hopefully fixes #4281
2025-03-31 10:17:11 -07:00
Morilli cf12159f55 make do-everything.sh fail properly 2025-03-31 02:56:48 +02:00
Morilli 96d192735e fix libcxx configure 0 for cmake 4 2025-03-31 02:55:25 +02:00
CasualPokePlayer 5a020c1e9e Prevent crash in SoundOutputProvider due to negative sample count being computed
In practice this doesn't occur ever except with subframe core abuse with tiny sample counts being spammed
2025-03-28 16:47:39 -07:00
CasualPokePlayer 60d7ddbffc Prevent submitting more XAudio2 buffers than XAUDIO2_MAX_QUEUED_BUFFERS (64)
Resolves #4116
2025-03-28 16:22:24 -07:00
YoshiRulz 76cf9127d4
Fix typo in `DWordWatch.ResetPrevious` (4-byte)
broken since at least migration to Git
2025-03-29 08:18:21 +10:00
YoshiRulz 6b06d50085
Enable CA1868 and fix noncompliance
"Unnecessary call to 'Contains' for sets"
2025-03-29 08:11:16 +10:00
YoshiRulz 5de736af0e
Enable CA1854 and fix concompliance
"Prefer the `IDictionary.TryGetValue(TKey, out TValue)` method"
2025-03-29 08:11:16 +10:00
YoshiRulz c5d4e8b783
Enable CA2019 and fix noncompliance
"`ThreadStatic` fields should not use inline initialization"
2025-03-29 08:11:16 +10:00
YoshiRulz 8cfb0599e5
Enable SA1413 except in Cores and satellite .NET projects
"Use trailing comma in multi-line initializers"
2025-03-29 07:18:53 +10:00
YoshiRulz ba12785fe2
Add trailing commas to object initialisers and `with` expressions 2025-03-29 07:18:53 +10:00
YoshiRulz 613ff73a5a
Add trailing commas to collection initialisers 2025-03-29 07:18:52 +10:00
YoshiRulz a8e7c3d031
Add trailing commas to `switch` expressions 2025-03-29 07:18:49 +10:00
YoshiRulz dcd78b4107
Reflow and add trailing commas to enum definitions 2025-03-29 07:18:31 +10:00
YoshiRulz 4c76aeba8a
Reflow `NESMusicRipper.FreqTable` 2025-03-29 07:18:31 +10:00
YoshiRulz 8a99246796
Fix comma placement 2025-03-29 07:18:30 +10:00
YoshiRulz bdf22bb1b8
Simplify some misc. `Substring` usage 2025-03-29 07:18:30 +10:00
YoshiRulz f25b992a4e
Simplify `EmulatorExtensions.ToControlNameList`
also fixes it for controllerNum >= 10
2025-03-29 07:18:30 +10:00
YoshiRulz 5f76e3cc74
Minor refactors in `WatchEditor` 2025-03-29 07:17:08 +10:00
YoshiRulz 1aa83b7c12
Add and use `ComboBox.ReplaceItems` extension 2025-03-29 07:16:07 +10:00
YoshiRulz e8df779cc7
Missed a spot for `ReplaceDropDownItems` extension 2025-03-29 07:05:19 +10:00
YoshiRulz 72c8a00462
Fix code style warnings in testroms projects 2025-03-29 07:05:19 +10:00
YoshiRulz ec0510367a
Fix compilation of Bizware.Test app 2025-03-29 07:05:19 +10:00
YoshiRulz 9ac560d49d
Remove unused enum `BizHawkExternalToolUsage` 2025-03-28 10:29:56 +10:00
YoshiRulz 32a8193c74
Fix value of `CLSCTX.ALLOW_LOWER_TRUST_REGISTRATION` 2025-03-28 10:00:46 +10:00
YoshiRulz a80399860d
Merge `--gdi` handling into `ArgParser` (resolves #4201)
funny story, the `--gdi` handler didn't remove it from the `args` array,
so it's always been parsed as a rom filename and obviously failing, but
before bd58bde07 it was failing silently
2025-03-28 04:40:14 +10:00
YoshiRulz 4bc2f31d77
Simplify `MovieEndPlaySoundMenuItem_Click`
fixes 289c5cff9
also standardise these menu items to title case
2025-03-27 05:18:46 +10:00
Morilli c9d8ab0e43 fix test
fixes 289c5cff9b
2025-03-26 19:57:26 +01:00
Morilli b88c557b46 speedup BizBox (About dialog) load 2025-03-26 19:23:25 +01:00
Morilli 289c5cff9b add option to play sound on movie end
requested in #2926
2025-03-26 19:20:13 +01:00
Morilli 6ead2ddee8 increment rerecords when rewinding
- closes #3707
2025-03-25 06:18:41 +01:00
Morilli a24311c2d1 fix exception in faust constructor
- closes #4278, fixes ab8eb0405c
2025-03-25 04:57:21 +01:00
Morilli 861166080f make autopause at tend of movie work in tastudio
- closes #2622

not sure if this should always apply or only in playback mode but probably doesn't matter too much.

Also changed the default to false because that's what it's effectively been for many years
2025-03-25 04:38:23 +01:00
Morilli 69862fef70 simplify frame advance bool logic
this now also prevents _runloopFrameProgress from potentially getting stuck after rewinding and fixes some other obscure interactions with frame advance and rewind.

- added 2 bugs
2025-03-23 15:20:09 +01:00
Morilli 98e8901076 simplify Throttle.Step
this should also fix bugs where skipNextFrame could be stuck at true and otherwise not change behavior.

Surely this won't introduce any bugs
2025-03-23 03:16:11 +01:00
Morilli 0e0fe37ffa fix CheatCollection.UpdateDomains throwing when separators exist 2025-03-23 01:03:59 +01:00
YoshiRulz 39ab7af657
Restore package name in readme
fixes 7280236e7
This was an intentional choice to leave room for a .NET Core package
developed in parallel. The maintainer(s) of the AUR package changed its
name without consulting me, which they are of course free to do.
2025-03-23 04:22:48 +10:00
YoshiRulz 3a6b42278a
Revert "TAStudio marker lua (#4272)"
This reverts commit eb79f2e735.
2025-03-23 04:14:27 +10:00
Bemmy 7280236e75
Update AUR package link in the README (#3961)
* Update AUR package link in the README

* Fix the alternative text not matching with the badge
2025-03-22 17:58:33 +01:00
Luke Stadem 3af38050f8
[A26][Stella] Adds support for the console Select switch (#4178)
* [Stella] Added the Select switch input

* [Stella] Reduced console switches into a single int corresponding to the SWCHB register
2025-03-22 17:49:27 +01:00
c7fab eb79f2e735
TAStudio marker lua (#4272)
* getmarkers

Lua method to get a table with  all markers for the current TasMovie, with Frame and Text as fields

* getmarkerabove

Returns a table of the marker at or above the given frame

* getbranchmarkerabove

same as getbranchmarker, but for getting the marker from a branch

* getbranchmarkers

returns a list of all markers for the given branchId, with fields Frame and Text
2025-03-22 16:56:26 +01:00
feos df33165b5a dsda: reorder player pov because multiplayer mode is not frequent 2025-03-22 13:00:07 +03:00
feos ac81c393e1 dsda: secret report option
disabled to be closer to vanilla on fresh boot, like most other modern features
2025-03-22 12:56:46 +03:00
feos f9a3890ac1 dsda: positioning 2025-03-21 20:23:53 +03:00
feos 92df238d9e dsda: fix button turning for shorttics
move shorttics cals to frontend to explicitly show all the logic that reproduces upstream input handling
2025-03-21 20:00:23 +03:00
YoshiRulz fef3b526b6
Simplify rom padding step in `PCEngine.Init` 2025-03-21 20:24:20 +10:00
YoshiRulz aad3c90a5e
Clean up how collections are asserted on in unit tests 2025-03-21 09:33:07 +10:00
YoshiRulz c391c6ff58
Implement missing interfaces on `SortedList<T>` 2025-03-21 09:33:07 +10:00
YoshiRulz 2b587f2061
Enable CA1820 and fix noncompliance
"Test for empty strings using string length"
2025-03-21 09:33:07 +10:00
Morilli 04949a10b3 CI: edit mame path condition
i believe the musl/** condition didn't work because musl is a submodule
2025-03-20 21:18:11 +01:00
Morilli 0272f7e44b CI: remove waterbox push build trigger
cores will still be built, there's no need to build waterbox explicitly as well
2025-03-20 21:04:22 +01:00
Morilli b7a0fe647e Update musl 2025-03-20 20:44:36 +01:00
Morilli 604398a8bc include musl commit in waterbox cache key
This still doesn't include everything nyma, but let's just ignore that
2025-03-20 20:41:55 +01:00
YoshiRulz ca0ddeffef
Improve highlight locations of some BizHawk.Analyzer diagnostics 2025-03-20 07:35:47 +10:00
YoshiRulz df11522190
Minor refactor to `HawkSourceAnalyzer` (for BHI1110)
will rebuild in later commit
2025-03-20 07:35:27 +10:00
YoshiRulz d8ee7f5f61
Refactor `DefineCheckedOpAnalyzer`
will rebuild in later commit
2025-03-20 07:35:23 +10:00
YoshiRulz a93da782e0
Simplify some `ReportAt` calls in BizHawk.Analyzer
will rebuild in later commit
2025-03-20 07:35:09 +10:00
feos e79ab84d98 dsda: doom doesn't have potentiometers
potentiometers are hardware devices used in some controllers, but doom is pure software so it only has axes
2025-03-19 20:34:49 +03:00
CasualPokePlayer 008911a6d9 Force enable leaderboards and rich presence while in RetroAchievements hardcore mode
Newer requirements for RetroAchievements hardcore mode
2025-03-18 19:25:29 -07:00
YoshiRulz fb1ef7ba7a
Add `SetMembership` and `ToggleMembership` helpers 2025-03-19 08:36:34 +10:00
Morilli 24a82551b9 fix stella frame_advance function declaration 2025-03-18 16:03:30 +01:00
Morilli 0e9c21e7d3 handle null GreenzoneInvalidated in tasproj recording
this previously hardcrashed the entire program when TAStudio was not open
2025-03-17 20:57:15 +01:00
Morilli 96885ce146 cleanup RecordMovie.MakePath
this now allows creating tasproj files as originally intended but that will probably crash immediately because good coding
2025-03-17 20:47:44 +01:00
feos 19374203da dsda: expose huds and automap stats
make settings changes require reboot explicitly. unsure if I still want them to have immediate effect
2025-03-17 20:33:55 +03:00
feos ebbdc1ad5c dsda: send inputs by struct pointer
greatly simplifies adding more inputs (like automap control)
2025-03-17 19:19:00 +03:00
Morilli 6b012ef433 differentiate between RollColumn vertical width and horizontal height
don't really like this code too much, but it works. And the RollColumn has no idea what orientation it has, so it can't do the logic itself.

see #3708
2025-03-17 13:45:50 +01:00
Morilli 1e397432af change TAStudio layout when rotation changes
- addresses #3708
2025-03-16 22:00:39 +01:00
Morilli 8efeda8af9 change internal TAStudio sideview layout
the layout difference should be effectively imperceptible, but this change will help with altering the layout programatically
2025-03-16 21:58:55 +01:00
Morilli bb3b59a5cb regenerate TAStudio.Designer.cs
nonfunctional change
2025-03-16 21:58:55 +01:00
feos d6ac62e261 dsda: disable wipe for imported demos
internally, wipe is rendered within a single "frame" so no input is processed. but we can't know from the movie which frame is wipe, so we can't insert empty frames to make imported movies work with our wipe - which has to happen across frames so we could capture every interim state of it. when exporting movies, wipe frames can be dropped based on lag info which we're currently setting for wipe only.
2025-03-16 23:07:20 +03:00
feos f0765a3a72 fix build
remove underscore from non-private fields
expose wipe screen setting
2025-03-16 23:03:15 +03:00
feos 9351a045c0 dsda: detect wipe as lag
automap mnemonic
2025-03-16 22:44:37 +03:00
feos 89b6da50d0 WIPE!!! 2025-03-16 22:20:12 +03:00
feos 93ebd91971 dsda: wipe wip 2025-03-16 16:21:48 +03:00
YoshiRulz 28498da7c1
Fix mixed line endings in main solution 2025-03-16 19:55:27 +10:00
YoshiRulz 7f0b55c550
Fix namespace of `SimpleSyncSoundProvider`
wow this is old dbdac5e3f
2025-03-16 19:38:11 +10:00
CasualPokePlayer 9d239fbdcf Ignore alpha for ImageSequenceWriter 2025-03-15 15:44:54 -07:00
YoshiRulz 30c9ea4f03
Remove unused import 2025-03-16 01:54:19 +10:00
feos b6b7f56e02 mame: use utf8 parsing for lua strings 2025-03-15 18:06:15 +03:00
feos 2775b13edb mame: sort views according to their index 2025-03-15 17:59:35 +03:00
feos 7a0c4d398f mame: fix crash for view names containing commas
the way the initial lists are populated is kinda hacky because we need some separators and split the results using them. it's impossible to make sure they won't use that separator in a name in the future. maybe there's a better way than listing every available name in entire mame and finding which symbols never appear there and using them as separators (tho I admit for views I didn't even do that and relied on users running the thing).
2025-03-15 16:57:04 +03:00
CasualPokePlayer 38f8e3a9b4 Add Void Linux liblua naming method
Yes, it's actually named liblua5.4.so.5.4
2025-03-15 01:53:12 -07:00
Morilli c5aa085a8a CI: split up waterbox compile jobs into multiple workflows
This allows finetuning the on: conditions for each workflow and gives a better base for future work where we might want more workflows or more separation between waterbox cores.

Quicknes being in the waterbox workflow made no sense to begin with.

I've also used the cache action to cache the waterbox build which should prevent unnecessary rebuilds and improve speed slightly. I'm not really happy with the way reusable workflows work as they require re-cloning the repository and re-fetching clang, but the alternative would be copy-pasting the waterbox build action everywhere as far as I can tell.
2025-03-15 09:19:14 +01:00
feos 4a3ad3a1d1 dsda: fix build, spacing 2025-03-14 18:10:43 +03:00
Morilli 6665e0e35e fix dsda CI build 2025-03-14 14:59:20 +01:00
Morilli 44dc0f4461 pass args and fix ares build call 2025-03-14 14:49:41 +01:00
Morilli 3a4815d3da make make-all-cores.sh error properly 2025-03-14 14:41:36 +01:00
feos aa7b78894a dsda: convert c++ to c 2025-03-14 16:07:28 +03:00
CasualPokePlayer 8e8d718c7e Make sure to recreate stored pipelines on resetting D3D11 device
Fixes crashes whenever a reset ends up occurring due to a lost device
2025-03-12 15:32:14 -07:00
YoshiRulz 6cedcc2221
Resolve a code style warning in `HuC6280` 2025-03-13 07:16:29 +10:00
bigbass1997 abc6900c72 Changed print statement to only appear in debug builds 2025-03-13 07:11:13 +10:00
YoshiRulz 7ccd69bd5b
Add a couple dumps to gamedb
`U` is very different from the `G` but still loads?
see #4268
2025-03-13 06:43:54 +10:00
YoshiRulz e94a20877a
Improve one of the Satellaview header heuristics (resolves #4268) 2025-03-13 06:43:54 +10:00
feos 6965767328 dsda: fix -warp
only doom1 uses episode number in -warp, all the rest ignore it and use the first digit to set map (episode is forced to 1 for them). to detect this we now ask the core which gamemode it is (which determines it internally too).

rename complevel setting
2025-03-12 20:40:29 +03:00
Morilli c826344637 update snes9x
- closes #4260, closes #4194
2025-03-08 22:20:28 +01:00
YoshiRulz ce21993ec4
Print caught exception in `SavestateFile.Load`
fixes 1c0e72b16
2025-03-08 15:25:29 +10:00
Morilli 1fa31fe0e9 update quickernes
- closes #4243
2025-03-07 22:40:36 +01:00
Morilli 1c0e72b169 catch exceptions in savestate load
see also #2090. This can reasonably catch and handle simple load failures like all waterbox loads and some others.

Not calling the issue fixed because there is more that can be done to prevent cores from trying to load invalid savestates.
2025-03-07 22:23:43 +01:00
feos b0b32bea6a mouse capture: restrict to center
various toolbars may exist near screen edges, we don't want them to be triggered when hawk has "captured" the mouse, especially in fullscreen. I considered taking into account when hawk window is partly offscreen but it's hard to expect anyone would play that way - normal scenario is fullscreen, so screen edges are automatically pushed away from. dialogs covering hawk are even less likely to remain during mouse capture, so we don't care about mouse appearing on them.
2025-03-05 19:47:13 +03:00
feos ca214fc4f0 dsda: actually send -fast 2025-03-05 19:47:13 +03:00
YoshiRulz 957029fc30
Add and use `Insert{Before,After}{,Last}` helpers 2025-03-05 20:09:57 +10:00
CasualPokePlayer 7d876dee2c Fix XkbAllocKeyboard declaration 2025-03-04 16:36:47 -08:00
Morilli 8ba8bd61b4 increase initial toolbox size
also increase image size on high dpi
2025-03-04 19:54:08 +01:00
Morilli 843051a2fd handle dpi properly in NES ppu viewer
- also fixes #4246
2025-03-04 10:35:32 +01:00
Morilli a64d7627ce make UIHelper.Scale* scale with dpi
trust me
2025-03-04 10:30:56 +01:00
YoshiRulz f56cc896d8
Alphabetise lists of cores in `EmulationApi` methods
see 724a7393e
2025-03-04 15:07:42 +10:00
Kevin Watters 443faae403 implement emu.setrenderplanes in EmulationApi for snes9x 2025-03-03 22:37:43 +10:00
YoshiRulz 7f25044498
Improve display of errors from Cheat Code Converter 2025-03-03 13:24:00 +10:00
YoshiRulz fa15e35603
Remove `GEN` `[CoreConstructor]` from PicoDrive32x
fixes a42b25976
2025-03-03 13:03:27 +10:00
feos 11cb444b2c dsda: fix aspect on 3x+ and add pistolstart 2025-03-02 11:13:33 +03:00
CasualPokePlayer 05722664e0 Throw Lua errors on lua cothread they were done on (instead of the main cothread)
Fixes #4252
2025-03-01 22:29:55 -08:00
CasualPokePlayer a42b259762 Stop exposing PicoDrive as a selectable option for Genesis
The core as it is is a very poor choice for Genesis. Much worse compatibility, very noticeably worse audio, and it's not like GPGX is hurting badly in the performance department. It's also very outdated compared to upstream (making these problems much worse than if it was updated). It was only in BizHawk to handle 32X games to begin with (as there aren't many options for 32X to begin with), with Genesis fallback support (without user selectability!) just tacked on "because we can."

Perhaps with a core update it could be more reasonable to allow users to select this, but for now, nope.

Closes #4251, #4250, #4235
2025-03-01 17:56:23 -08:00
Morilli c476dbbf79 draw axis numbers rotated in horizontal tastudio
see https://github.com/TASEmulators/BizHawk/issues/3708#issuecomment-2501398001
2025-03-02 00:34:42 +01:00
feos 5b7e7b4642 dsda: bit closer to vanilla
todo: make these optional
2025-03-01 23:33:11 +03:00
feos 7c5d050cde dsda: expose resolution factor and gamma
see #4236

rename Core to _core since it's private
2025-03-01 20:58:23 +03:00
feos 4a7e0c6008 dsda: fix missing sounds
proper aspect ratio
2025-03-01 17:19:56 +03:00
YoshiRulz f409cc445d
Make Lua `savestate.*` functions return `false` when C# call throws 2025-03-01 09:00:35 +10:00
YoshiRulz 6b4d0faba9
Work around Mono bug (resolves #4248) 2025-03-01 08:52:10 +10:00
feos 905c972738 dsda: parse our own config file
set vanilla res as a start
2025-02-27 23:16:44 +03:00
feos cde108b928 dsda: mouse movement should be accurate now (barring obscure tweaks)
demos still sync btw

horizontal mouse was calibrated for my machine, dunno about others. for me 1-pixel relative movement results in 272-pixel deltas, so I divide it inside the core for now

when the global sensitivity option is there, I'll drop sensitivity syncsettings and rely on client ones that I'll configure to match default dsda sensitivity.
2025-02-26 23:37:23 +03:00
feos dd6beccfb0 dsda warnings 2025-02-26 19:50:16 +03:00
Morilli 927b41bd41 Revert "Set `$(AnalysisLevelStyle)` to 9 to work around SDK bug/footgun"
This reverts commit ae4af29849.
2025-02-26 14:51:37 +01:00
feos f6538289dc dsda: fix lmp import
only tested on doom, no idea if movies for other 2 even exist lol
2025-02-25 23:21:23 +03:00
feos d628f035f7 dsda: commit c_cpp_properties.json 2025-02-25 20:09:20 +03:00
feos 09fcf37d79 meaningless tweaks 2025-02-25 19:19:58 +03:00
feos 5539557b27 dsda: "always run" option
upstream uses a hotkey toggle instead but vanilla didn't have it. even "always run" itself was just a vanilla bug. I don't want to have a special on-the-fly input for autorun toggle, hopefully user either wants to always run + occasional mouse movement, or only run using the proper button
2025-02-25 19:05:33 +03:00
CasualPokePlayer 0311bb5d39 Make mouse capture handle window moving/resizing/focus change, cleanup presentation panel resize handling 2025-02-24 16:09:01 -08:00
feos a2daa48cf4 dsda: actually fix turning for demos 2025-02-24 23:25:51 +03:00
feos 4cf20df155 dsda: pass turning resolution to controller ctor
this allows to properly set available range which makes demos sync again (aside from weapon switching that I broke)
when importing demos we now force shorttics (even tho some source ports can record demos with longtics depending on compatibility level but importing those is for the later time)
2025-02-24 22:02:04 +03:00
YoshiRulz ae4af29849
Set `$(AnalysisLevelStyle)` to 9 to work around SDK bug/footgun
https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/language-rules#option-format
2025-02-25 03:14:25 +10:00
CasualPokePlayer 559093460e Fix some Xlib import definitions 2025-02-24 03:15:47 -08:00
CasualPokePlayer c3b0f46ae3 Make Linux mouse capture work more or less properly
There's 3 approaches here, of which only 1 appears to work more or less correctly

1. Use XFixes "pointer barriers." Introduced in XFixes version 5.0 (end of 2010), these effectively allow 1:1 mapping with Windows ClipCursor, giving behavior BizHawk wants.
2. Use XGrabPointer, with the confine_to argument set to the presentation panel. This mostly works, however, it changes how some events operate and for whatever reason prevents Mono from responding to mouse buttons. This approach can be used with 1. too for a simple warp of the mouse cursor over to wherever the window is.
3. Use Mono's internal CaptureWithConfine function. This is just internally using XGrabPointer with the confine_to argument. Somehow it makes mouse buttons work, but it ends up working too well as it can respond to the menu bar somehow, and interacting with such or the right click menu cancels the grab (seems to be internal Mono code doing such in this case here?).

Note a lot of weirdness with previous code came down to testing being in a VM and mouse integration being enabled. That apparently just prevents any kind of mouse warping from happening so nothing appeared to work correctly. Disabling such allows these approaches to work as above, also makes relative mouse values sane (previous values with mouse integration were completely bonkers).

TODO: Need to check if this works on XWayland (maybe it does?). Also need to refresh mouse capture on window resize and move (needed in general for both Windows and Linux)
2025-02-24 02:23:27 -08:00
CasualPokePlayer 2f2c3e4f68 Try fixing pointer barriers harder (still doesn't work :( ), also fix XI2 raw motion polling (IsNormal was always returning false for whatever reason, seems to work fine with just simple Inf/NaN checks). XI2 raw motion polling however seems to use a far larger scale compared to Windows (seemingly in the hundred thousands??? although this is in a VM so this might just be a quirk of such) 2025-02-23 21:42:30 -08:00
CasualPokePlayer 778c880d54 Try fixing pointer barrier code, also make X errors more verbose 2025-02-23 20:14:59 -08:00
CasualPokePlayer ec66447c20 Restore startup asm version check (accidentally commented out in previous commit) 2025-02-23 19:29:43 -08:00
CasualPokePlayer 2009b24adb Try using pointer barriers for locking the mouse to the window on Linux instead of grabbing the mouse 2025-02-23 19:28:16 -08:00
YoshiRulz 938ac8c7ff
Fix code style warnings in NLua
see 69b923ad5
2025-02-24 10:44:10 +10:00
YoshiRulz 484e5e996b
Mute MEN018 for Virtu
"Use Digit Separators"
see 69b923ad5
2025-02-24 10:36:34 +10:00
YoshiRulz 54d33b09ee
Fix code style warnings in ext. tools
see 69b923ad5
2025-02-24 10:35:05 +10:00
YoshiRulz 5220ed4179
Fix code style warnings in test project when targeting .NET 8
see 69b923ad5
2025-02-24 10:30:00 +10:00
YoshiRulz 48f4a98a61
Remove unused import
not sure why this wasn't being flagged earlier, probably to do w/ recent
$(RunAnalyzersDuringBuild) change
2025-02-24 05:42:55 +10:00
YoshiRulz d4adc8282c
Discard return value from `XCloseDisplay`
fixes c5029cb2b
2025-02-24 05:42:08 +10:00
YoshiRulz 69b923ad55
Make all Analyzers except StyleCop run all the time
see #1813, 4a2627337
2025-02-24 05:39:16 +10:00
YoshiRulz 4a26273379
Disable a bunch of slow Analyzer rules
thanks Morilli for the data
2025-02-24 05:38:53 +10:00
feos b0c2ef831c dsda: automap command 2025-02-23 20:31:49 +03:00
YoshiRulz ac529ee191
Add this title (+loc. patch) to quickerNES' blocklist (resolves #4240) 2025-02-24 01:55:45 +10:00
feos 3e0ed9dd7e analyzers gonna analyze 2025-02-23 16:24:43 +03:00
feos 5c662effdf hotkey for mouse capture
hide it when captured on widnows
2025-02-23 16:03:43 +03:00
feos 82523d9e1c dsda: lower speed for tapping turn buttons (match upstream) 2025-02-23 15:34:52 +03:00
feos 3d6241f53a dsda: handle movement speeds in IEmulator
allows to factor in syncsettings and savestates (for turnheld)
2025-02-23 14:59:55 +03:00
feos 9ad6eb8971 dsda: turnheld wip
dsda halves turn speed for turn button if it's held for 5 or less frames. currently I use that reduced value for all button turning.
2025-02-23 14:02:00 +03:00
CasualPokePlayer c5029cb2bb Add function to lock the mouse
Unused currently. Cursor.Clip code copied from feos. Hopefully works on Linux too
2025-02-23 02:54:54 -08:00
feos 49297ca9b7 dsda: use actual relative mouse movement
currently requires manually binding RMouse X/Y in config.ini (and zero deadzone I guess)

empirically match dsda default settings with sensitivity syncsettings (defctrl.json wasn't touched yet)
TODO: look at mouse calc inside the core
2025-02-23 13:01:12 +03:00
feos d804496cc2 dsda: cache syncsettings until reboot
works around crash described in #4104
2025-02-23 11:41:27 +03:00
feos 918783126e dsda: match button names to dsda
(except for weapon keys since they may mean different thing for non-doom)

tweak doom mnemonics too
and push core submodule
2025-02-23 11:00:01 +03:00
feos 72070a63de dsda: reduce copypaste 2025-02-23 09:34:54 +03:00
CasualPokePlayer f444d6b0a5 More relative input handling
Needs UI for adjusting mouse sensitivity (think it should be 1-400) and a button in bindings for swapping an WMouse axis to the RMouse axis
2025-02-22 15:55:45 -08:00
feos fe29eb12dd dsda: process longtics and fix turning speed
rename some enum values
contains hack to work around export problems with dsda_Flag()
2025-02-23 02:30:40 +03:00
YoshiRulz 804717c71a
Fix code style warnings in DSDA ctor
fixes f47136be4
2025-02-23 05:36:23 +10:00
YoshiRulz 8f9d47a706
Add this romhack to quickerNES' blocklist (resolves #4239) 2025-02-23 05:29:19 +10:00
feos f47136be46 dsda: pass commandline args to core from hawk
that way we don't have to rebuild the core for every commandline option that it already supports and we decide to use, also more meaningful presentation of those options on the managed side
2025-02-22 22:22:54 +03:00
CasualPokePlayer 8c351433d5 Make MEN018 analyzer happy 2025-02-22 09:40:15 -08:00
CasualPokePlayer e1ea8a3371 Fix build 2025-02-22 09:38:33 -08:00
CasualPokePlayer 2f39991b44 Begin to add raw mouse input to input system
native api side done. trying to map it probably interferes with absolute inputs, needs some global relative mouse sensitivity setting for input translation purposes. hopefully everything else doesnt break
2025-02-22 09:22:31 -08:00
Morilli efcbe54f36 fix encore touch and tilt ranges 2025-02-22 14:44:05 +01:00
YoshiRulz 8d71c8a505
Add Analyzer for suggesting adding `checked` operators 2025-02-22 17:07:35 +10:00
YoshiRulz 9a388c6693
Extract helpers for `Diagnostic.Create` in Analyzers
will rebuild in later commit
2025-02-22 16:22:23 +10:00
YoshiRulz 6eef3668a7
Unify `BizHawk.Analyzer` failures into a dedicated diagnostic rule
will rebuild in later commit
2025-02-22 16:22:03 +10:00
YoshiRulz d4b3b22c9e
Mute BHI1005
"Default branch of switch expression should throw
InvalidOperationException/SwitchExpressionException or not throw"
2025-02-22 14:59:41 +10:00
YoshiRulz 03bf156a91
Clean up registration in `BizHawk.Analyzer`
will rebuild in later commit
2025-02-22 14:55:41 +10:00
YoshiRulz 57921a9206
Clean up a few misc. spots in `BizHawk.Analyzer`
will rebuild in later commit
2025-02-22 14:31:55 +10:00
YoshiRulz 507b30a1dc
Use global imports in Analyzer projects 2025-02-22 11:15:18 +10:00
YoshiRulz e72548b68b
Fix parenting of TAStudio child dialogs (should fix #4103) 2025-02-22 02:21:12 +10:00
Morilli af4089380a make TAStudio not rely on the global MovieEndAction setting
- closes #3989
2025-02-19 19:32:08 +01:00
Sergio Martin 3c5f699af9
Adding DSDA as Doom/Hexen/Heretic core (#4196)
Co-authored-by: feos <feykomylce@gmail.com>
Co-authored-by: YoshiRulz <OSSYoshiRulz+git@gmail.com>
2025-02-19 00:21:47 +03:00
Morilli e094721de8 bump gpgx max rom size to 32MB
- closes #4229

This rom size was present in 2.9.1 but was reverted in a cleanup commit.
2025-02-18 17:15:31 +01:00
Morilli 52766e67fc fix recent waterboxhost warnings 2025-02-18 16:54:05 +01:00
Morilli d386a4fdcb attempt to make rewind perform well while paused
attempts to resolve #3053 by shuffling some bools around.

Specifically, `_runloopFrameProgress` is now set when either (continuously) frame advancing or rewinding.
2025-02-18 14:26:40 +01:00
Morilli b6a175bddf fix SMS controller definition (in Bkm) 2025-02-18 10:38:10 +01:00
Morilli 85e2d18780 fix .bkm import
- closes #3909

Effectively best-effort for now, may or may not work for some movies.
2025-02-18 01:07:11 +01:00
YoshiRulz d3362f5e0c
Add novel throttle experiment (locked behind build flag for now)
:)
2025-02-18 05:12:06 +10:00
Morilli 72f880db27 add default rumble binds
- closes #4081
2025-02-17 10:58:01 +01:00
Morilli 46c1273dbd don't restart ram search when changing watch size
- closes #2974
2025-02-17 10:25:16 +01:00
YoshiRulz 9df29c036e
Replace non-mutated `List<byte>`s w/ arrays/`Span`s/nothing
see #2927 re: `IMemoryApi`
2025-02-16 08:27:05 +10:00
YoshiRulz 59b2dba901
When GPGX is in SMS mode, don't advertise `IDisassemblable`
see #4226/33571d4cd
2025-02-15 09:51:29 +10:00
Morilli 6184afddc9 don't call disengage when tastudio load failed 2025-02-14 22:10:10 +01:00
YoshiRulz d7b0af9f4e
Resolve a TODO in `InputRoll.RowCount` 2025-02-15 05:54:49 +10:00
YoshiRulz 5a236fdbee
Implement remaining `IList<T>` methods on `SortedList<T>` 2025-02-15 05:53:14 +10:00
YoshiRulz 33571d4cd3
Set `GPGX.PCRegisterName` correctly in SMS/etc. mode (resolves #4226) 2025-02-15 04:37:47 +10:00
Morilli 084497a28a fix UserDataApi key getter 2025-02-14 19:14:43 +01:00
Morilli 283ed40f33 fix ToDictionary extension
fixes a9bfd96027
2025-02-14 19:14:35 +01:00
Morilli 5d6b35e2c9 fix single usage of GetValueOrDefault(IDictionary) 2025-02-14 18:50:34 +01:00
Morilli f12f90366b Revert "Add more `GetValueOrDefault` overloads"
This reverts commit 34d71e90bc.

This was hardly used and caused trouble in .net 8 with the way it was defined.
2025-02-14 18:50:10 +01:00
Morilli 426c743da9 fix SpanSplit for .net8
removed the NETCOREAPP3_0 code because it didn't even compile; lots of internals missing and we probably wouldn't need the 1% speedup anyway (the function using it is unused currently too)
2025-02-14 18:28:42 +01:00
Morilli 24641433e4 improve estimated time display in RewindConfig
now takes the estimated rewind interval into account to display the actual estimated rewind range, which is what people care about
2025-02-14 15:13:32 +01:00
Morilli 84c79b9053 fix some edge case display values in RewindConfig
specifically when rewind is disabled or if it's enabled and no state exists.
2025-02-14 14:41:20 +01:00
Morilli 8bc446bfa3 rename target frame length option for more clarity
- closes #3309
2025-02-14 14:32:15 +01:00
Morilli 89ea856ba4 implement command field in DsmImport
see #3555
2025-02-14 13:18:17 +01:00
Morilli 582a25b851 handle missing return gracefully in tastudio.onqueryitem* functions
- closes #4219
2025-02-14 08:22:40 +01:00
Morilli 95cbbecb97 harden TasView_QueryItemText exception handling
by immediately throwing out the current movie. This should prevent this message box from coming up repeatedly, not providing any additional useful information and just blocking all other windows.

should resolve #2332
2025-02-13 16:49:16 +01:00
YoshiRulz 7568a29912
Fix implementation of `NumberExtensions.Log10` and add docs
fixes fbd45915c
2025-02-13 22:19:49 +10:00
YoshiRulz cf70cc9ef4
Add unit tests for `NumberExtensions.Log10` 2025-02-13 22:15:38 +10:00
Morilli d9d1bfd1e8 remove unused using 2025-02-13 04:18:27 +01:00
Morilli 26115624e4 make circular analog range setting work in ares 2025-02-13 04:07:35 +01:00
YoshiRulz 69a938f29b
Pad frame indices in TAStudio to 5 digits from the start 2025-02-13 08:41:01 +10:00
YoshiRulz fbd45915cb
Add `Log10(int)` helper 2025-02-13 08:39:16 +10:00
YoshiRulz 6049d5e4f5
Show placeholder for VSystem menu when no rom loaded 2025-02-13 00:41:02 +10:00
YoshiRulz f92565549c
When the only option for a FW record has a dummy hash, mark it unknown
fixes c4ff97111, 296145ba2
2025-02-12 08:55:34 +10:00
YoshiRulz 3771601916
Update security policy, prioritising reporting through GitHub
forgot to include this in readme updates
2025-02-12 08:38:21 +10:00
YoshiRulz b66672f97f
Add missing import
fixes 724a7393e
obviously didn't mean to add and then immediately remove this, it got
lost in a rebase
2025-02-11 21:17:37 +10:00
YoshiRulz 724a7393e2
Alphabetise lists of core names in source
fixes 18078c876
and some others, maybe as far back as the commits introducing the lists,
I haven't checked
also I left a marker so it's easier to find these later
2025-02-11 21:12:09 +10:00
YoshiRulz f5dc73086a
Allow Stella's settings to be edited without the core loaded 2025-02-11 21:11:00 +10:00
YoshiRulz 59d875aecc
Clean up `LibUAE.ControllerType`
see #4110
2025-02-11 20:37:54 +10:00
YoshiRulz 6a115e4e65
Add `Edit` > `Go to Frame...` to TAStudio (resolves #2373) 2025-02-11 01:24:30 +10:00
YoshiRulz 59be77248a
Remove pointless indirection from `BookmarksBranchesBox` events 2025-02-10 09:21:04 +10:00
Morilli b33d7f5ce4 simplify RemoveFrames 2025-02-09 08:17:45 +01:00
Morilli 30c67cd297 fix incorrect logic in RemoveFrames 2025-02-09 07:45:38 +01:00
Morilli b0c1be30c9 make OSD text scaling configurable 2025-02-09 07:12:20 +01:00
Moritz Bender ef3b92dab4
Add more courier font sizes instead of upscaling the 16px one (#4210)
* add more courier font sizes instead of upscaling the 16px one

* use 25px font instead of 26px

* remove now-unused property
2025-02-09 07:03:43 +01:00
YoshiRulz f3c4425bf1
Nix expr: Regen NuGet lockfile
fixes 8332a6bd5
2025-02-09 02:05:55 +10:00
feos c5807662b6 uae: a game requiring empty input port found
see #4213
2025-02-08 14:46:21 +03:00
Sergio Martin bd58dd1d95
QuickerNES NES 2.0 header read fix (squashed PR #4211)
* Integrating NES2.0 cart loading fixes

* Adding windows dll

* Update bizinterface.cpp according to Morilli's recommendation
2025-02-08 05:11:33 +10:00
feos 47089a3f02 uae: don;t build debug 2025-02-06 20:17:23 +03:00
feos 74fcbc28eb uae: include more scanlines into image
fixes #4204

RANT TIME

visible area is largely nonsense when it comes to CRT TVs, because they may cover different amounts of the screen based on model, and you can adjust some of them also based on model to show more or less of it.

4:3 aspect ratio is also somewhat nonsense because TVs don't automatically rescale your video input to the entire screen like modern computers do. they just stretch or shrink it based on pixel frequency of the input and how it relates to whatever the given TV is configured to.

Rec601 was created in order to somewhat standardize this but it only contained RECOMMENDATIONS (hence the name) on how to digitize analog video, not how analog devices should be configured. so a lot of TVs looked different from what it would be digitized to based on this spec.

in gaming it's a common misconception that console output is meant to be resized to 4:3 DAR of the TV. in reality it's stretched according to PAR - pixel shape which comes from differences between color frequency of the input and standard NTSC or PAL color frequency.

if the console updates color more often than the standard, analog signal with higher pixel density will be put on the screen as is, and pixel will look "squished", sometimes up to 2x for 512px resolution modes (PS1). if the console updates color rarer, pixels will look stretched (A2600).

Amiga PAL mode has 1:1 PAR, no stretching is needed, so whatever aspect we're outputting will just go to encodes as is. NTSC Amiga PAR is 6:7, so we're shrinking a bit in encodes and when hawk is configured to device aspect.

this all means that it doesn't matter how many pixels we take of the rendered image, all we care about is stretching it to proper PAR. whether it contains overscan only affects fullscreen because extra blank area means less of useful data. and since some exceptional games decide to render AT THE VERY BOTTOM there's little to no harm in showing all 574 rendered scanlines. who hates it and wants 568 can crop it, but I don't expect anyone to care (or even notice).

so while nominal internal res for Amiga is 576 and canonical UAE default is 568 (tho it lets you adjust visible area and we don't), I think we can safely output our heretical number at all times.
2025-02-06 19:43:32 +03:00
CasualPokePlayer 08266f9450 update comment
fixes previous commit
2025-02-05 23:08:24 -08:00
CasualPokePlayer 1f276242ec Fix usage of BizHawk within a folder with a semicolon in it
Semicolons are perfectly valid for path names, but windows disallows dll paths to contain such (presumingly internally using them as path separators like with PATH env var)
A workaround for this is to simply use the "short name path" instead, which does not have a semicolon (but these names aren't guaranteed to exist, and in certain cases if they don't,GetShortPathNameW will just return the long name back, so semicolon still needs to be rechecked)
2025-02-05 22:53:16 -08:00
YoshiRulz f382ec7590
Update testroms project docs to reflect TFM change
fixes 9fb98ef5e
see 66e6aa7eb
2025-02-04 20:54:01 +10:00
YoshiRulz 924b5c7fae
Update `DummyFrontend` for `CoreComm` signature change
fixes ddd14d527
2025-02-04 17:31:01 +10:00
YoshiRulz 756c79fb60
Clean up HelloWorld sample 2025-02-01 14:57:11 +10:00
YoshiRulz de1a7b1e30
Use `SpecialType` where possible in BizHawk.Analyzer 2025-01-31 17:52:49 +10:00
YoshiRulz ae97d1f49d
Remove unused class `CoreInventory.Core.RomGameFake` 2025-01-31 14:51:50 +10:00
YoshiRulz cc0f1417f1
Enable a bunch of Analyzer rules re: `.Count()`/`.Any()` and fix cases 2025-01-31 14:49:41 +10:00
YoshiRulz adcbc8a030
Fix some redundant length checks around `foreach` 2025-01-31 14:49:41 +10:00
YoshiRulz 2874ce14c8
Reduce intendation in a couple methods on `BreakpointControl` 2025-01-31 14:49:41 +10:00
YoshiRulz d56413bfb1
Extract a couple helper props in `HexEditor` and clean up 2025-01-31 14:49:41 +10:00
YoshiRulz 6ec2f0c49f
Enable RCS1156 and fix noncompliance
"Use string.Length instead of comparison with empty string"
inb4 this introduces an NRE somewhere
2025-01-31 14:49:40 +10:00
YoshiRulz af32948756
Add Analyzer to warn about LINQ calls on string receivers 2025-01-31 14:49:40 +10:00
SaxxonPike 0bb940ea7a [C64] Disk: 1541 drive saveram now works properly when rewind is disabled
[C64] Disk: Use raw track capacity values per the G64 file format specification, should fix some disk loaders that are expecting data not to be so sparse (Spindle demos in D64 format particularly)
[C64] Disk: fix 1541 drive address decodes
[C64] VIA: 6522 core facelift, shift register and use of low-order timer latches implemented, should fix some disk loaders ("Sprite B*****e 2" demo plays, yes they called it that, and it's not what it sounds like)
[C64] CIA: fix PB6/PB7 outputs when enabled on CRA/CRB
2025-01-30 12:43:58 +10:00
Tony Konzel 4a48d945c7
[6502] Pass Lorenz C64 tests (squashed PR #4177)
* [6502] Pass Lorenz C64 tests

* [C64] make sure the 1541 drive uses the same 6502 undocumented behavior as the main CPU

* [6502] Use field instead of delegate for ANE/LXA system constants
2025-01-30 12:43:48 +10:00
YoshiRulz 87ffdb5cd2
Fix typo
fixes 12cd7885e
good catch by Morilli
2025-01-30 12:42:43 +10:00
Morilli 504b2d57f2 fix lua autocompletions missing
fixes ea810cb89b
2025-01-29 16:27:06 +01:00
Morilli 0681dd2590 set proper libretro game data
- closes #4202
2025-01-29 16:15:19 +01:00
YoshiRulz c934e6b5d1
Memoise reflection in `HeaderKeys.Contains`
only used for `.bkm` anyway
2025-01-29 23:11:09 +10:00
YoshiRulz fe7ecceb64
Enable RCS1043 and fix noncompliance
"Remove 'partial' modifier from type with a single part"
2025-01-29 22:29:59 +10:00
YoshiRulz 8332a6bd5e
Add `Roslynator.Analyzers` 2025-01-29 22:16:49 +10:00
YoshiRulz 12cd7885ec
Enable CA1862 and fix noncompliance
"Use the 'StringComparison' method overloads to perform case-insensitive
string comparisons"
2025-01-29 22:11:54 +10:00
YoshiRulz 96207e80ea
Extract some extensions for string `OrdinalIgnoreCase` comparisons
`Contains`/`Equals`/`StartsWith`
refactored a few call-sites while I was at it
2025-01-29 21:51:21 +10:00
YoshiRulz a9fd86689e
Replace `InvariantCultureIgnoreCase` str. cmps. w/ `OrdinalIgnoreCase`
doesn't matter for ASCII-only strings, and `InvariantCultureIgnoreCase`
is arguably correct in some circumstances, but IMO it's more foolproof
to simply ban it
2025-01-29 21:48:33 +10:00
YoshiRulz 5f29b50940
Fix indentation in `SpectrumBase.Media.cs` 2025-01-29 21:47:28 +10:00
YoshiRulz 45581b2370
Fix loading discs for systems we don't emulate when it's for Libretro
fixes d9da3cfa6
(...since the Libretro core may emulate any system, and the intent here
was always to just pass the file through)
2025-01-29 12:12:56 +10:00
Morilli 1f53cec80b fix AdjustDescriptionHeightToFit calculation
- closes #3962
2025-01-28 21:41:23 +01:00
Morilli 26ef1ac2af improve SDLResampler
this distorts audio less when muting the stream for a while + general cleanup
2025-01-27 17:47:57 +01:00
YoshiRulz 032dea62d6
Update core port request template to use new label+type, and fix typo 2025-01-27 06:42:20 +10:00
Morilli cc45a6ec2d improve GetProcAddrOrThrow/LoadOrThrow error messages 2025-01-24 10:57:15 +01:00
YoshiRulz 83098604fa
Set `MONO_THREADS_SUSPEND=preemptive`
see #4117
2025-01-23 05:32:54 +10:00
feos 146e297a94 tastudio: position restore logic was missing when drawing analog 2025-01-19 21:35:43 +03:00
feos fe13b85d17 tastudio: nuke NewTASMenuItem accelerator
fixes #3376
2025-01-19 20:49:35 +03:00
YoshiRulz 4c3ea14efc
Allow empty string (for "recent") in `MainForm.SanitiseForFileDialog`
fixes 1cee9dff6
2025-01-20 02:09:14 +10:00
feos 8310e5420c Revert "fix wrong pause in AutoAdjustInput()"
This reverts commit b2f3bb3cba.

Revert "fix removing everything"
This reverts commit a0da874431.

YEP. this "feature" is COMPLETELY, ABSOLUTELY, UNIVERSALLY fucked. sure #4184 can be "fixed" by flipping some bools, like setting MainForm.HoldFrameAdvance back to false in TasView_MouseWheel. but then there's still the problem of removing actual input if farther lag picture changed after initial removal, and I'm not going to debug that. taseditor's ONLY bug was related to erroneous detection of lag change that we were never able to consistently reproduce or figure out, and it's completely impossible to replicate identical behavior in tastudio due to crazy overhead. but even SIMULATING that behavior would involve touching that minefield of bools that control everything in insane ways. given zero requests for this feature during tastudio's decade of existence, I'm considering it too useless for all the chaos it introduces.

so instead I'm closing #4184 by disabling the "feature" that caused it
2025-01-19 16:02:56 +03:00
YoshiRulz d8508acb69
Fixups to signature of `HttpCommunication.ContentObjectFor` method
fixes 41547824a
2025-01-17 08:25:12 +10:00
YoshiRulz 1437bc3a98
Include unreleased cores in About dialog (resolves #4168) 2025-01-17 06:54:44 +10:00
YoshiRulz ced4db461d
Nix expr: Regen NuGet lockfile
fixes 7f3bf7022
2025-01-17 04:55:59 +10:00
YoshiRulz 58213f3534
Undo unrelated changes from previous commit
partially reverts 6c4cea23e
2025-01-17 04:53:52 +10:00
CasualPokePlayer 6c4cea23e6 Don't do checked decimal -> float/double conversions
fixes exception on viewing movie info with Arcade movies
2025-01-16 09:59:08 -08:00
CasualPokePlayer 87a740d09a [TIC80] Don't read uninitalized local variables in lua_ttri
Fixes #4190
2025-01-16 09:47:49 -08:00
CasualPokePlayer ec297bf215 [TIC80] Add lbitlib.c to vendor sources
Dead code in practice, but this is needed so debug builds actually build
2025-01-16 09:47:49 -08:00
Morilli 7f3bf70229 bump various packages 2025-01-16 17:31:54 +01:00
YoshiRulz 41547824aa
Minor refactor to `HttpCommunication` 2025-01-17 01:30:12 +10:00
YoshiRulz cbacebcee4
Bump PolySharp 2025-01-17 01:30:12 +10:00
YoshiRulz 08dd34f42b
Rename `HttpCommunication.ExecPost` and add docs 2025-01-17 01:30:12 +10:00
YoshiRulz 88c54d11b6
Don't persist `ExpectContinue` setting through multiple requests
fixes 544b8007d
2025-01-17 01:25:30 +10:00
papercrane 544b8007dc
Only send `Expect` header for `comm.httpPost` when payload is large (squashed PR #4188)
* BizHawk#4187 Add a method to the comm LUA library to allow setting ExpectContinue

* Instead of exposing ExpectContinue set it automatically based on a threshold
2025-01-17 00:32:28 +10:00
Morilli 6c6986d79e Fix mupen rom mirroring
As reported on discord, this broke paper mario JP/US versions and potentially many more non-power-of-2 rom size games.

fixes d2fe532f6d
2025-01-16 10:05:36 +01:00
YoshiRulz 0d05c1d263
Prevent CDL's "Disassemble..." when not implemented crashing EmuHawk
(by disabling the button)
see #1274
2025-01-16 05:34:04 +10:00
feos 93f33815ed alphabetize PlatformFrameRates and add amiga 2025-01-15 19:07:17 +03:00
feos 1e839b8802 uae: implement IRegionable 2025-01-15 19:06:48 +03:00
CasualPokePlayer fe8bc2d227 Linux rebuild encore 2025-01-14 08:57:16 -08:00
CasualPokePlayer f3629a9e86 [Encore] Fix System Bus endianness 2025-01-14 08:01:12 -08:00
CasualPokePlayer 1a1de0fa67 [Encore]
Remove GetVideoVirtualDimensions (no longer used)
Add System Bus domain
Fix deterministic time functionality using timezones when they should not
2025-01-14 07:08:23 -08:00
CasualPokePlayer 20d7355227 Do not create File On Disk domain for 3DS 2025-01-12 12:49:03 -08:00
YoshiRulz c5a4ec9b81
Make `HawkFile.ReadAllBytes` seek to start
fixes 633681804
2025-01-11 22:28:16 +10:00
YoshiRulz 09f8e8c544
Document semantics of `Stream.ReadAllBytes` extension 2025-01-11 22:24:10 +10:00
CasualPokePlayer 633681804d Actually don't dispose hawkfile stream after ReadAllBytes()
fixes a30c0efb78
2025-01-10 15:52:35 -08:00
CasualPokePlayer a30c0efb78 Don't dispose hawkfile stream after ReadAllBytes(), fix ReadAllBytes callsites to do disposal properly 2025-01-10 15:00:49 -08:00
YoshiRulz 4aa334244e
Fix `ObjectDisposedException` when loading non-disc rom into Libretro
fixes d9da3cfa6
2025-01-11 07:36:29 +10:00
CasualPokePlayer 6adab25fac Make EncryptString/DecryptString arguments be nullable and properly check for null/empty 2025-01-10 08:31:16 -08:00
YoshiRulz 89e94be8c1
Memoise a value during Lua lib function enumeration 2025-01-10 23:14:21 +10:00
YoshiRulz ea810cb89b
Hide unavailable Lua libs from REPL autocomplete
see #4167
2025-01-10 23:12:20 +10:00
YoshiRulz 7149609229
Gen docs for methods in Lua lib classes even w/o `[RequiredService]`s
resolves #4167
2025-01-10 23:06:27 +10:00
YoshiRulz cefe986797
Post-2.10 readme updates (squashed PR #4169)
* Update core/system lists in readme

* Update the parts about prereqs

* Users don't need to worry about DirectX

also it's not called the "MSVC++ Runtime" oops

* Linux stuff

* Legacy Windows stuff

* More cores (I may have gone overboard with the links)

* A couple misc changes

* Another typo

* These were alphabetised

* Missing ChannelFHawk from first-party project list

* Mention DiscoHawk and hopefully we'll get fewer questions

* Update README.md

Co-authored-by: Moritz Bender <35152647+Morilli@users.noreply.github.com>

---------

Co-authored-by: Moritz Bender <35152647+Morilli@users.noreply.github.com>
2025-01-10 22:50:40 +10:00
CasualPokePlayer 52848a3d27 Add Haswell to GL interop blacklist 2025-01-10 02:40:22 -08:00
YoshiRulz 1cee9dff60
Ensure file pickers (via `IDialogParent`) don't choke on bad paths
see also #4077 but that's still open while this is clear-cut
2025-01-10 07:20:58 +10:00
YoshiRulz 58de1a0486
Nix expr: Update for 2.10 2025-01-10 00:56:13 +10:00
YoshiRulz 3021ba78d5
Nix expr: Fix checksum (`fetchpatch` strips some info before hashing)
fixes f5af95c432
2025-01-10 00:38:18 +10:00
YoshiRulz fe871ba5c7
Prompt to switch cores before recording with A2600Hawk or TI83Hawk 2025-01-09 22:35:08 +10:00
YoshiRulz da993c77fd
Fix typo in ChannelFHawk settings UI 2025-01-08 04:24:05 +10:00
YoshiRulz ebd9cde063
Bump `VersionInfo.MainVersion` for dev builds 2025-01-08 03:11:21 +10:00
feos dd23282049 release uae 2025-01-07 19:29:10 +03:00
feos 2aa331213e 2.10 2025-01-07 18:54:34 +03:00
YoshiRulz 0666c21748
Cleaner fix for locale files
reverts 6db32e997
2025-01-08 00:44:26 +10:00
YoshiRulz 6db32e9979
Fix System.CommandLine leaking locale files into output
see #3888
2025-01-08 00:00:26 +10:00
YoshiRulz 6ba50f5eb2
Remove duplicate button names from SMSHawk's SK-1100 ControllerDef
fixes #4134
2025-01-07 22:54:04 +10:00
saxxonpike 0adf2f97d7 [C64] Fix up implementation of SaveRam 2025-01-07 22:06:17 +10:00
saxxonpike 6f7097ee07 [C64] DiskTrack implementation to simplify delta tracking 2025-01-07 22:06:17 +10:00
saxxonpike 6a8a5aa41e [C64] Move SaveRam implementation to its own partial 2025-01-07 22:06:17 +10:00
CasualPokePlayer ce44d7e4f8 Disable GC Adapter support by default (due to it interfering with other controllers)
Resolves #4165, resolves #4083
2025-01-07 04:01:10 -08:00
CasualPokePlayer 24a4b47adf don't try to "fix" y axis in touchpad (it should just match the mouse convention), add touchpad button to default controls for nds/3ds touch
note that touchpad axes aren't put in default controls, can't actually have multiple axes bound at the same time
2025-01-07 02:11:10 -08:00
CasualPokePlayer cf1c2a9d7e Whitespace fix from last commit 2025-01-07 01:43:12 -08:00
CasualPokePlayer 2bc4a7ee56 Add support for game controller touchpads (i.e. on PS4/PS5 controllers) 2025-01-07 01:41:58 -08:00
CasualPokePlayer e4a4493843 Make IsCGBDMGMode actually work for movies 2025-01-06 13:49:20 -08:00
CasualPokePlayer 08e3246ec9 Use config SoundVolume for retroachievement sound effects
Probably want this to be a separate setting later on, but this is probably better than forced 100% volume
2025-01-06 13:35:14 -08:00
CasualPokePlayer fafb1ab3e3 [RetroAchievements] Separate leaderboard complete sound effect.
Default file is just a duplicate of unlock.wav, a user can put in their own wav file if they choose to.

Resolves #4166
2025-01-06 13:27:40 -08:00
YoshiRulz d9da3cfa60 Set game name for Libretro when available
resolves #4144
2025-01-05 23:03:38 +10:00
YoshiRulz 407c26e9d5 Encapsulate `LibretroHost` constructor 2025-01-05 23:03:38 +10:00
YoshiRulz ddd14d5274
Attempt to locate `.cue` for PSX `.bin` before synthesising one
see #4146
2025-01-05 22:12:46 +10:00
YoshiRulz 04955ea228
Use deterministic filenames for synthesised PSX `.cue`s
resolves #4146
2025-01-05 22:12:18 +10:00
YoshiRulz 7514ea73c7
Revert "Remove "direct" bin file handling"
This reverts commit a2d97dfb5f.
2025-01-05 22:12:17 +10:00
feos e29a4bc052 add amiga to default controls 2025-01-05 14:30:46 +03:00
YoshiRulz e2fb1c7f08
Improve documentation of some `gui`, `forms`, and canvas Lua functions
see #3851
2025-01-05 21:10:48 +10:00
YoshiRulz 82b22266b0
Improve error messsages for `forms.draw{Icon,Image,ImageRegion}` 2025-01-05 20:30:11 +10:00
YoshiRulz 6ffc71b183
Minor improvement to `LuaPictureBox.DrawPolygon` 2025-01-05 20:30:08 +10:00
Tony Konzel ed59b5e874
[C64] Fix Domark/HES/MagicDesk cartridge mapper bank loading (squashed PR #4162)
* [C64] Fix loading Domark cartridges that don't have a bank count that is a power of 2, and add a memory domain for the ROM image

* [C64] Fix bracket styling
2025-01-05 20:14:30 +10:00
saxxonpike 99ca3be22a [C64] EasyFlash overhaul
- Implement the AM29F040B flash device as its own component
- Fix save data for games that use the standard EasyAPI driver
- Fix "Briley Witch Chronicles 2": the flash driver checks AutoSelect register 02 to see if the cartridge is write-protected
- Rom is stored as bytes instead of ints, saves a lot of memory
- EasyFlash now has proper hard reset and clock operations
- SaveRam deltas fixed
2025-01-04 18:19:23 +10:00
saxxonpike 83ea4bfb1c [C64] Fix a situation where the SID filter stage would pass through voices selected to be filtered while no filters are actually enabled 2025-01-04 18:19:01 +10:00
Morilli 9dc3e0cf84 Respect queued movie's logkey in RunQueuedMovie
should (resolve) #4159
2025-01-03 14:12:02 +01:00
YoshiRulz 05fd64a5e6
Remove now-unused prop `IMainFormForTools.OnPauseChanged`
fixes 7b904b171
2025-01-03 02:23:31 +10:00
Morilli 5f36cacfd2 cleanup some debugger calls
this also fixes double-load on start, which is especially noticeable in debug with waterbox cores
2025-01-02 15:18:45 +01:00
Morilli 238e7bca1e don't disassemble unnecessarily many instructions in the debugger
fixes fc92d3c63e
2025-01-02 14:51:50 +01:00
Morilli 7b904b1715 don't rely on PauseChanged in debugger
this doesn't work anymore with 7c38810e9e and was questionable to begin with
2025-01-02 14:50:54 +01:00
Morilli b93a995083 unsubscribe from events in core Dispose methods
- closes #4157

Not sure this is the best way to fix the linked issue, but considering this is a hard crash I'd rather fix it somehow than not at all for now.
2025-01-02 14:26:24 +01:00
Morilli b8baf21788 fix selection color in TAStudio
- closes #4158

fixes bd3f919129
2025-01-02 05:00:25 +01:00
Morilli 7c38810e9e short-circuit EmulatorPaused setter when value isn't changing 2025-01-02 04:36:53 +01:00
YoshiRulz c50a4f4e6a
Nix expr: Use `lib.getExe` 2024-12-31 16:51:06 +10:00
YoshiRulz 2cb6d2c0fc
Use lazy initialisation for `IOExtensions.ShiftJISEncoding`
see #4150
2024-12-30 22:09:30 +10:00
CasualPokePlayer 0ec54fe9d6 Make touch input interpolation configurable 2024-12-29 22:08:54 -08:00
CasualPokePlayer 3a8024b235 Only stop/start sound on resize on Windows
Windows will "freeze" the main thread in message pumping while resizing is occurring, while this does not occur on Linux.

Resolves #4145
2024-12-28 23:16:08 -08:00
CasualPokePlayer 24d549ddb8 Apply volume setting to BizBox not hawk sfx 2024-12-27 07:06:11 -08:00
CasualPokePlayer af0b10fb58 linux rebuild mgba 2024-12-27 06:39:54 -08:00
CasualPokePlayer 2202e4f9b9 Update mgba
quite a few commits would be wanted here (mainly 109fbe60f5)
2024-12-27 06:35:36 -08:00
YoshiRulz 694aa867ec
Fix artifacting on firmware status icons under Mono 2024-12-26 00:57:15 +10:00
YoshiRulz 31dd2dbd2f
Use `SortedDictionary` for `FirmwareConfig.Status{Descs,Icons}` 2024-12-26 00:55:51 +10:00
YoshiRulz 9b72b2292e
Nix expr: Regen NuGet lockfile 2024-12-23 21:54:36 +10:00
YoshiRulz 7350e0f7ce
Remove unused imports
fixes b09134489
2024-12-23 02:48:45 +10:00
YoshiRulz b091344896
Actually fix `GenOrderedControls` invariant, dropping Libretro hack
fixes a8368849a and 3384ce862
2024-12-23 02:37:56 +10:00
YoshiRulz 1eb8433b4a
Sort rom file picker filters 2024-12-23 02:20:00 +10:00
YoshiRulz 44dae6428d
Add bundles to rom file picker 2024-12-23 02:20:00 +10:00
YoshiRulz 319bfd3d3a
Show `.exe`s in rom file picker for PSX
see fa0c69344
2024-12-23 02:20:00 +10:00
feos 3384ce8629 input OSD: fix potentially absent P0
I don't know if there's any core that lacks non-player controls but this feels like the right thing to do anyway (for the future too)
2024-12-22 19:07:22 +03:00
feos fcff79e794 uae: fix double eject 2024-12-22 17:51:59 +03:00
feos 0e300fc094 fix #4142
store slot index for each drive instead of filename, and add it to savestates
2024-12-22 16:25:21 +03:00
feos a8368849a9 fix #4132
controls that don't belong to any indexed player are put at index 0, which makes them appear in front of everything that's used all the time. when there's only a few of those, it's fine. but for systems with keyboards, you have to fullscreen the emulator window to even see regular inputs

I moved index 0 to the end for input display, but didn't touch the original generator, since it may affect other things I'm not sure about (and I'm not smart enough to properly change it)
2024-12-22 14:53:12 +03:00
Morilli 1526de58ad Remove outdated SystemLookup
- closes #4143 by using EmulatorExtensions.SystemIDDisplayNames instead
2024-12-22 10:20:22 +01:00
Morilli 4dc0ec5b87 fix bundled input display script's controller detection
surely this breaks nothing
2024-12-20 20:24:35 +01:00
Morilli 18ef28ccef Improve bundled input display script's handling of unsupported systems 2024-12-20 20:23:51 +01:00
YoshiRulz cf90a96af0
Fix an error message from Cheats displaying an address in decimal 2024-12-19 06:20:33 +10:00
YoshiRulz 4bf29a6b00
Optimise all PNGs in main solution
fixes libpng errors from images added in 9e9687f02
2024-12-19 03:08:27 +10:00
YoshiRulz 3095aca86a
Use `StringPool` from CommunityToolkit in `ToUpperASCIIFast` extension
from be0736be4 (+ cherry-picked ccba93440) to this commit:
- `Database` reported runtime 0.64 s --> 0.68 s
- profiled `ParseCGIRecord` mean runtime 0.190 ms --> 0.179 ms
- `GameDBHelper` 1M lookups reported runtime 1.03 s --> 0.69 s
- managed allocations (w/o the 1M lookups) 131 MiB --> 123 MiB (fewer
strings but more char[]s?)

since `CompactGameInfo` obviously can't store `Span`s, I tried with
`StringSegment`, but it made both lookups *and init* slower, thanks MS
2024-12-17 01:03:41 +10:00
YoshiRulz c2200cb234
Use allocless `ReadOnlySpan.Split` in `Database.InitializeWork`
reverts 4c69ce4e2
2024-12-17 01:03:41 +10:00
YoshiRulz d72332e97d
Backport `ReadOnlySpan.Split` and co.
Includes: `Range`/`Index` and other polyfilled types are now `public` in
BizHawk.Common rather than `internal` in each assembly. Not for dedup
reasons--though that's probably good too--just because it was necessary
for exposing these new `public` methods with `Range` in their params.
2024-12-17 01:03:41 +10:00
YoshiRulz 48f5125c84
Improve `BIZHAWKBUILD_RUN_ONLY_GAMEDB_INIT` 2024-12-17 01:03:41 +10:00
feos 9e9687f026 rework firmware icons
better tooltip for deal bind
2024-12-15 20:11:12 +03:00
YoshiRulz ab5d92f319
Add note to `--help` re: rom argument
thanks MS
2024-12-15 22:50:14 +10:00
YoshiRulz 6cb19d8b8e
Fix typos
fixes 8645ed3bb
so the speedup isn't as big as with the broken code, but it's close
I think I'll be changing this again to use Span and I'll reprofile then
2024-12-15 15:09:55 +10:00
YoshiRulz 8645ed3bb9
Optimise `Database.FormatHash`
runtime (as reported by `Database`) reduced by -14%, allocations reduced
by -5%, and number of calls reduced by -32%
this is all under Mono so YMMV
2024-12-15 14:37:31 +10:00
YoshiRulz be0736be46
Remove ancient text file from root of repo 2024-12-15 12:30:59 +10:00
feos fc2b37cab7 uae: fix DevilsTemple 2024-12-14 23:14:59 +03:00
feos 18078c8764 rename puae to uae
while libretro initially ported original puae (which is long dead), they switched to just pulling updates from winuae every once in a while (and renamed to libretro-uae), because it's still active and is kinda considered golden standard these days
2024-12-14 19:01:31 +03:00
feos 4274b75379 puae: fix drives population with slots 2024-12-14 18:39:29 +03:00
YoshiRulz 8f384c6ef6
Fix typo in readme
per
https://en.wikipedia.org/wiki/Talk:Apple_silicon/Archive_2#Requested_move_4_November_2021
2024-12-13 10:47:22 +10:00
CasualPokePlayer c5c8b6bdd9 Don't open choose file from archive dialog when trying to fallback to a different core for a MAME ROM
The fallback is intended in cases where there is a misdetection for MAME ROMs, since it just goes off the archive's filename against a db. MAME ROMs will not have any sensical ROM extensions in them, and will most likely just have multiple files in it. As such, if this is actually a MAME ROM, they're pretty much guaranteed to show the choose file in archive dialog, which would confuse users. If it's not a MAME ROM, it most likely will not show this dialog and will just be loaded by the appropriate core (of course in practice this likely doesn't occur anyways, since most users likely just have their ROMs named with dat names like No-Intro etc which never match MAME's names).
2024-12-11 19:39:07 -08:00
feos b8ec340c90 puae: fix crash on switching to initially empty drive 2024-12-11 18:47:31 +03:00
YoshiRulz 56e5105d0d
Fix `Order{,Descending}` preventing GitLab CI from building tests 2024-12-11 10:22:54 +10:00
Morilli 2b71ff9a79 rename duplicate suggested firmware file names
- closes #4136
2024-12-10 22:53:38 +01:00
feos eed7b601ed space 2024-12-10 19:32:40 +03:00
feos aca5ccae50 puae: fix region change 2024-12-10 19:31:46 +03:00
feos dad929fd9f that's very helpful, thanks 2024-12-09 20:55:01 +03:00
feos 656618f310 analyzer makes sure to only ever report one problem at a time? 2024-12-09 20:48:43 +03:00
feos e02d22a044 k 2024-12-09 20:44:21 +03:00
feos b1c43a6379 file 2024-12-09 20:39:54 +03:00
feos 48913b4653 puae: led light 2024-12-09 20:35:24 +03:00
feos 6f7a1de25c puae: use winuae icon since it's more canonical 2024-12-08 16:52:11 +03:00
feos 2cd22490e9 uae: print slot/drive contents (#4138)
fix wrong const in the core
2024-12-08 14:54:27 +03:00
YoshiRulz 384b6f17a7
Add unit test for duplicate firmware filenames 2024-12-07 08:25:45 +10:00
Morilli 69b61b574d fix RecalculateScrollBars
- closes #4133.

This has a 50% chance of breaking something else (it either happens or doesn't), but should be more correct. Mainly, RecalculateScrollbars was called based on visible rows which depend on whether scrollbars are visible or not, but the NeedsVScrollbar calculation did not take the existence of the HScrollbar into account, leading to an off-by-one. I think.
2024-12-05 22:50:27 +01:00
Morilli 49458ab182 fix TAStudio input roll display issues
Resolves the remaining bug mentioned in https://tasvideos.org/Forum/Topics/12519?CurrentPage=85&Highlight=532467#532467
2024-12-05 19:28:04 +01:00
feos 29b848d336 remove harder
see d89035c400
2024-12-05 12:40:40 +03:00
YoshiRulz fac788a455
Revert unrelated changes to `TAStudio.Designer.cs`
fixes 1da3e4d77
see 0189b5110
2024-12-05 14:40:45 +10:00
YoshiRulz 0189b5110d
Revert whitespace changes to `TAStudio.Designer.cs`
fixes 1da3e4d77
2024-12-05 11:14:45 +10:00
feos a0da874431 fix removing everything
closes #734
2024-12-05 01:26:58 +03:00
feos b2f3bb3cba fix wrong pause in AutoAdjustInput()
it has to rewind to remove a frame, which makes it pause on first removed frame when we hit restore, instead of going all the way to LastPositionFrame. I tried a ton of things to fix it, and they break one of the 3 scenarios of going from the edited frame, emulating through removed was-lag frames until LastPositionFrame, and pausing there:
- autorestore
- restore manually via middle-click or the || button
- step frame by frame using wheel+RMB
wheel+RMB steps used to unpause in wrong places because paused state was disabled when it fires, so we couldn't decide whether to unpause or not based on it at the end of AutoAdjustInput(). so I'm enabling """paused""" state inside TasView_MouseWheel(), much like < and > buttons do, except they can be held to force unpause, but here you can't let go of mouse wheel since it already only fires once anyway. I'm disabling this state once tastudio has reached its INTERIM seek frame, and based on it I now can decide to unpause after AutoAdjustInput().

AutoAdjustInput() still has a tiny problem of not advancing the first removed was-lag frame when you go step by step, because it can only go one direction at a time, and it goes up as explained above, but we need it to also go down. this can be forced if we allow tastudio to seek to the CURRENT frame by loading its state and reemulating it, but I don't know if this will cause issues, and nobody is stepping through autoadjusted frames anyway, since it's meant to happen quickly and on autorestore

TODO: removing consecutive was-lag frames seems to remove them ALL!!!

inb4 all this causes other wild bugs...
2024-12-05 00:53:55 +03:00
feos 1da3e4d773 tastudio: AutoadjustInput
remove all consecutive was-lag frames in batch like taseditor does. current frame has no lag so they will all have to go anyway

still need to fix wrong pausing
2024-12-04 22:56:59 +03:00
Morilli cf464d4481 bump transitive System.Text.Json dependency to fix .NET 9 build warnings
The previously resolved 8.0.0 is vulnerable according to https://github.com/advisories/GHSA-hh2w-p6rv-4g7w, so pin it to 9.0.0 for now to fix build warnings (and whatever vulnerability that is).

Once Silk.NET publishes a 2.22.1+ this can theoretically be removed.
2024-12-02 00:19:01 +01:00
Morilli cd7605d237 fix code 2024-12-02 00:07:19 +01:00
feos adf74495dc fix #2369
move tasview context menu to the other side of the cursor if it's not fitting into the screen fully. of course if there's not enough space there EITHER, the user must do something about it, meanwhile best we can do is clamp location to 0. not using MouseEventArgs because we need absolute on-screen coords

other tastudio menus are small so probably fine?
2024-12-01 23:10:18 +03:00
feos 05f06aeb5b tastudio: don't let branch screenshot appear below screen edge 2024-12-01 21:59:39 +03:00
feos 28757bd8be control extension to center the new dialog on mouse pointer 2024-12-01 21:59:39 +03:00
feos 2211a4186f control extension to ensure onscreen dialog spawn
applied to tastudio dialogs (branch/marker text will use it later)
2024-12-01 21:59:39 +03:00
feos d89035c400 unify tastudio dialogs:
- the only dialog that's meant to be used during emulation is undo history, so let it spawn at its old location in the middle of the screen. user will move it regardless of where we spawn it
- positioning of input prompts will happen later
- all config/metadata dialogs now block tastudio and spawn at the top just like open/save. user is clicking tastudio menu so it's distracting if those dialogs spawn too far away from where they're already looking. and the middle of tastudio can be indefinitely far away because it can easily occupy the entire screen (we have cores with tons of buttons, and some users like to make it as tall as the screen). so while in the middle is """consistent""", it's very annoying if you have to do a lot of consecutive edits (for example to greenzone caps, or colors). overall, top priority of smooth tas workflow, so """consistency""" with unrelated tools made for unrelated tasks is not helpful if it makes the workflow more annoying
- ensuring the dialogs spawn fully on-screen will happen later

removed unused tastudio menus and config params
- branch hover interval was added before I replicated taseditor logic, which makes branch screenshots only appear if you keep the pointer over branch number, and not if you're just moving it around. making it configurable doesn't look useful
- seek cutoff interval (how far target frame has to be to spawn seek progress bar) feels redundant because any onscreen edits won't spawn the thing anyway, and for farther seek points it's not annoying enough to change
- EmptyNewMarkerNotes is not relevant to tastudio because it never copied previous marker notes like taseditor does. currently it does nothing and nobody ever requested it even tho it's in the menu, so there's no evidence anyone ever needed it
- fun fact: I was sure autoadjust input to lag never worked but it mostly does! so it wasn't removed, instead I plan to fix it (it pauses on every added frame). it's also not saved.
- other dialogs use InputRoll so I had to remove those options from them too (tastudio is the only one that they were meant for anyway)

bump undo history to 1k. it may not be needed often but when it is, some actions are not combined (for example it adds every newly emulated frame) so you may end up unable to undo some dumb mistake than was only a few actions ago

use normal control BG color for tastudio color editor. I tried it with dark theme on linux and got no difference. if this causes issues we'll see how to fix it without randomly giving one dialog unique BG color. also removed todo since labels are good now
2024-12-01 21:59:38 +03:00
CasualPokePlayer 6f0ae7128a Add GetRawInputBuffer handling for RawKeyInput
Slightly speeds up windows keyboard handling as it reduces syscalls
2024-11-30 22:30:19 -08:00
YoshiRulz 9d3fc9ce9e
Fix casting event senders to wrong base class
fixes b2184e46d
2024-12-01 12:13:14 +10:00
Morilli 6c49fa7472 add test to check for missing core preferences choices 2024-12-01 00:19:04 +01:00
Morilli d245271649 rename test method 2024-12-01 00:06:19 +01:00
Morilli 320de38c5c consolidate CorePickerStabilityTests 2024-11-30 23:30:08 +01:00
YoshiRulz d335e5cba4
Some updates to Unix section of readme 2024-12-01 04:39:33 +10:00
YoshiRulz 04c70c3ead
Only when double-clicking TAStudio frame# cell, open dialog at cursor
fixes 128c8e621
see #3714
2024-11-29 00:41:42 +10:00
YoshiRulz c3bd723c36
Add helper for centering dialog relative to a `Control` 2024-11-29 00:40:33 +10:00
YoshiRulz a39689d62d
Fix duplicate `Form.Dispose` implementation
fixes 6d2d07428
2024-11-28 07:52:14 +10:00
YoshiRulz 6d2d07428e
Make the Basic Bot fail more gracefully 2024-11-28 07:41:06 +10:00
CasualPokePlayer bd90dc6aa6 Fix NRE when spamming right click in TAStudio 2024-11-27 12:47:38 -08:00
YoshiRulz 128c8e6218
Don't open branch/marker edit dialogs at cursor pos
resolves #3714 and #2369
2024-11-28 04:53:47 +10:00
YoshiRulz 75e5088eed
Indicate unsaved changes to movie in window title
see #4064
2024-11-28 04:36:28 +10:00
CasualPokePlayer a7dd37d884 Add Skylake GPUs to GL interop blacklist 2024-11-26 16:42:16 -08:00
Morilli 24d4e89d38 fix TAStudio autohold/fire right-click logic
- closes #4125
2024-11-26 19:49:27 +01:00
CasualPokePlayer 075247c643 mgba windows build 2024-11-24 13:56:03 -08:00
CasualPokePlayer 3d2caf8664 properly init mRumbleIntegrator 2024-11-24 13:53:28 -08:00
CasualPokePlayer 39a896b289 mGBA windows build + C# side changes 2024-11-24 13:39:18 -08:00
CasualPokePlayer 1fb23ac6ac Use newer mRumbleIntegrator 2024-11-24 13:35:18 -08:00
feos f0eedbce0a update mgba 2024-11-24 23:41:02 +03:00
feos f7b6703ad2 puae mnemonics 2024-11-24 11:40:36 +03:00
CasualPokePlayer c9666a5647 [GPGX] Add offscreen shot control, make lightgun inputs always use the correct screen width/height
Fixes #4120
2024-11-23 22:22:26 -08:00
YoshiRulz 2b900b6e50
Nix expr: Fix DiscoHawk launch script assuming EmuHawk has ran before 2024-11-23 23:43:06 +10:00
kalimag 2bd2aed4aa
Improve Lua REPL handling of statements (squashed PR #4026)
* Improve Lua REPL handling of statements

Stop printing syntax error messages when executing variable assignments etc.

* Move doc comments to interface

* Simplify pattern matching expression

* Use reference equality to test for console output

* Revert "Use reference equality to test for console output"

This reverts commit 875bc3c41e.

* Use `_messageCount` to test for console output
2024-11-23 21:41:31 +10:00
feos 7e9e2d553c puae: fix fps 2024-11-22 17:32:37 +03:00
YoshiRulz 223a370713
Revert "POC for `[Dependency]` (eager asm loading)"
This reverts commit d23e771a39.
Had no effect on where in the startup a `TargetInvocationException` was thrown, so I'm guessing the attribute has no purpose anymore.
2024-11-22 09:58:12 +10:00
YoshiRulz d23e771a39
POC for `[Dependency]` (eager asm loading) 2024-11-22 09:39:16 +10:00
feos 90ca8ea6ca amiga icon 2024-11-21 21:18:22 +03:00
feos 1ec2a9a318 puae: keyboard image 2024-11-21 18:09:36 +03:00
feos d3713a6cba puae: fix crash on null settings 2024-11-21 17:30:43 +03:00
YoshiRulz 456d37a433
Link to GitHub wiki from contribution guide 2024-11-21 20:53:54 +10:00
feos 118e2876a4 puae: fix framerate and resolutions, cleanup
todo: av dumper dies in ntsc mode on frame 11...
2024-11-20 22:10:56 +03:00
CasualPokePlayer 2a0870234e Fix tracelogger layout 2024-11-19 23:40:05 -08:00
CasualPokePlayer c21df56eaf Linux mgba build 2024-11-19 23:02:57 -08:00
CasualPokePlayer e54ea196e1 [mGBA] Fix light counter not being correctly serialized
Resolves #4094 and resolves #4118
2024-11-19 22:57:51 -08:00
feos 0818e97fee puae: it's unclear if mouse_deltanoreset helps with anything currently
it seems to always be true in winuae...

also cleaned up our fork a bit
2024-11-19 21:31:26 +03:00
CasualPokePlayer 65b5d35e8e Add in digital titles for 3DS gamedb 2024-11-19 00:35:58 -08:00
feos 5bdb3b24c6 puae: disable fastmem for a1200
there are games that require this machine and 0 fastmem. games that require non-zero fastmem on this machine are currently not supported (HDs, CDs, and WHDs).
2024-11-18 21:47:35 +03:00
CasualPokePlayer 89d76ef6cb Fix N3DSHasher with seed crypto 2024-11-17 16:27:51 -08:00
YoshiRulz 02094fe780
Fix enum comparison in PUAE ctor
fixes 15af4219c
2024-11-18 04:48:59 +10:00
feos 15af4219cd no magic 2024-11-17 19:45:47 +03:00
feos 43b1dfa4b8 close #4102 (puae floppy speed) 2024-11-17 19:43:51 +03:00
CasualPokePlayer 6d8f616dde Add CIA hashing to N3DSHasher
In practice this won't be used (since we can just hash the installed title executable directly), but might as well keep a reference C# impl in case we want to use it.
2024-11-16 13:51:40 -08:00
feos ef307c1e69 puae input: fixed? 2024-11-16 22:04:52 +03:00
CasualPokePlayer 14d5f5595c Fix gamedb
fixes 9fd58a766a
2024-11-15 20:25:54 -08:00
CasualPokePlayer 138e4dc392 Add initial 3DS gamedb 2024-11-15 18:59:38 -08:00
Morilli 10fdfdd6dd fix GmvImport's six button controller handling
- closes #3797, closes #4109
2024-11-15 17:08:10 +01:00
CasualPokePlayer f173d0f992 Add platform framerates for Saturn 2024-11-14 21:02:26 -08:00
CasualPokePlayer 2c7245d751 Add IsSTV for Saturnus movies with ST-V, cleanup default movie header values code 2024-11-14 20:18:39 -08:00
CasualPokePlayer 8b356c50fa Add mnemonics for ST-V 2024-11-14 20:09:57 -08:00
CasualPokePlayer c4bd436c5c Fixup ST-V input device selection
No multi-tap with ST-V, and it'll get overrides for the ports anyways
2024-11-14 19:50:18 -08:00
CasualPokePlayer 7899c9ddce Add function for getting input device overrides
Only use case in practice for us is ST-V, which forces specific input configs (since it's an Arcade machine)
2024-11-14 19:47:44 -08:00
CasualPokePlayer 8708fc3e35 c# side changes for ST-V with Saturnus 2024-11-14 17:35:43 -08:00
CasualPokePlayer a51c7c07d0 Add support for ST-V (with Saturnus) 2024-11-14 17:33:07 -08:00
CasualPokePlayer 9fe5b316b3 Adjust Saturnus's settings for core updates 2024-11-14 01:39:41 -08:00
CasualPokePlayer a8d86e7af0 Mark PSX on PSP BIOS files as unacceptable
Policy here is non-3.0 BIOS files are unacceptable: they aren't what mednafen is expecting
2024-11-14 00:11:44 -08:00
Morilli 926a88b11a fix axis value editing logic in TAStudio
- closes #4115

specifically allow typing without immediately clamping to the min value when the user isn't finished
2024-11-13 13:23:54 +01:00
Morilli 7477aa3359 Fix saturnus setting overrides
- fixes #4114
2024-11-13 11:10:19 +01:00
CasualPokePlayer c44a3a6b67 Fix 3DS hasher bug 2024-11-13 01:08:44 -08:00
CasualPokePlayer ab4cb30011 Implement hashing for 3DS roms
TODO: Add gamedb entries
2024-11-13 00:12:16 -08:00
YoshiRulz 699fc8d198
Move `Bk2MnemonicLookup` to `BizHawk.Emulation.Common`
fixes a0800862b (PR #3782)
2024-11-13 16:15:02 +10:00
CasualPokePlayer 1567bd23ec
Add Nobara Linux support to EmuHawkMono.sh
Some Fedora based distro, needs /usr/lib64

https://www.reddit.com/r/NobaraProject/comments/1goxkwz/bizhawk_emu_crash/
2024-11-11 12:29:24 -08:00
YoshiRulz f9d3d91d34
Fix width for SNES Action Replay cheatcode decoder, add test case 2024-11-12 02:41:17 +10:00
YoshiRulz ae6ff1dac9
Fix SNES Action Replay cheatcode decoder
seems to be a typo from d0db4188d3
(4bfb4ab00/#1867)
2024-11-12 01:54:05 +10:00
CasualPokePlayer 45b958517e commit melonDS build 2024-11-10 22:55:47 -08:00
CasualPokePlayer 7714004da5 revert to older mic blow samples 2024-11-10 22:55:47 -08:00
Morilli 5728c83ee9 strip checked-in binaries
I only touched the ones self-built by us here. There's some more potential candidates like chd_capi and waterboxhost but those are rust-built so I'd rather not touch them for now
2024-11-11 05:01:12 +01:00
Morilli 9caef88e3f enable stripping for a bunch of self-built dlls 2024-11-11 04:47:33 +01:00
Morilli acb14cf07d fix middle mouse button input bind
half the code was using `WMouse M`, the other `WMouse C`. I think `WMouse M` makes the most sense.
2024-11-11 02:47:05 +01:00
feos 9e07c85027 wip2 2024-11-11 00:16:31 +03:00
feos ea5f3f601c wip 2024-11-10 23:22:32 +03:00
feos f1fa82702e what the fuck
what the fuck

if I send my ports to puae's 0 and 1, both go to port 0
if I send my ports to puae's 1 and 2, they go to ports 1 and 2
if I send both of my ports to puae's 0, they go to ports 0 and 1

what the fuck
2024-11-10 15:53:59 +03:00
Fernap c7d87c487e pull bsnes upstream
b815744b4cff6d6854090545b78ae8e1a6669976: change target address to 24 bits instead of 16 for DMAs to BWRAM to reflect size of DDA register
2024-11-09 05:42:36 +01:00
CasualPokePlayer b0540bf6d2 Change axis button thresholds
See #4108
2024-11-08 15:57:00 -08:00
CasualPokePlayer 411959e399 Add an IV for string encryption 2024-11-08 15:56:59 -08:00
feos 4c3b59c39c puae: fix something 2024-11-08 20:28:53 +03:00
feos e501d10804 puae: controller config somewhat works 2024-11-08 19:45:38 +03:00
CasualPokePlayer 8f1b647504 Add 3DS to MultiDiskBundler system options 2024-11-07 15:03:27 -08:00
YoshiRulz f2841f7849
Remove explicit check for NixOS distro which is no longer necessary
confirmed fixed by fe500ef61
2024-11-08 06:35:57 +10:00
YoshiRulz af6c4d9815
Nix expr: Regen NuGet lockfile
fixes 83c0ea81f
2024-11-08 06:35:57 +10:00
feos a2d401d670 puae: wip 2024-11-07 23:25:50 +03:00
YoshiRulz 9fd58a766a
Use `FrozenDictionary` for `Database`
In a simple benchmark of calling `Database.CheckDatabase` 5x 10M times
(small edit on top of `BIZHAWKBUILD_RUN_ONLY_GAMEDB_INIT`),
median runtime was 46.1s w/ `Dictionary`, 44.0s w/ `FrozenDictionary`
(isolated to only swapping out the collection type used at the end of
`InitializeWork`, *not* a before/after comparison on this changeset,
also this was in Release config).
FWIW, the parse/load time increased from 0.38s to 0.74s
(again median of 5 runs in Release config, and this was a before/after
of this whole changeset).
2024-11-08 02:29:59 +10:00
CasualPokePlayer fe500ef61b explicitly unload GL library when falling back to GLX 2024-11-06 22:30:25 -08:00
YoshiRulz 4e4377f0e9
Remove unused imports
fixes 869bef498
2024-11-07 10:05:20 +10:00
feos 7c88dba814 puae: fix crash 2024-11-07 00:08:19 +03:00
feos 869bef4989 puae: controller config wip 2024-11-06 20:56:22 +03:00
YoshiRulz 6b2d2cb646
Change label of Trace Logger's toggle button 2024-11-05 20:21:00 +10:00
CasualPokePlayer 83c0ea81fc Fix CI build
apparently didn't commit this
2024-11-05 01:03:02 -08:00
CasualPokePlayer 6853439075 Improve string encryption 2024-11-05 00:59:03 -08:00
CasualPokePlayer c9bed01b13 Do basic "protection" against RA api tokens in the config 2024-11-03 23:39:42 -08:00
CasualPokePlayer f4d5db5693 Make sure RAIntegration uses our user agent versioning 2024-11-03 19:37:50 -08:00
CasualPokePlayer 2cdf1e99bf Fix cue file resolving
fixes e893e3a1ff
2024-11-03 06:47:45 -08:00
CasualPokePlayer 666139f8e9 Fix TIC80 schema 2024-11-01 15:34:37 -07:00
CasualPokePlayer 76aae7afd7 fix buggy audio when closing lid 2024-11-01 15:22:57 -07:00
CasualPokePlayer 6578c852a1 replace most SDL_SetHint calls with SDL_SetHintWithPriority
ensures calls actually do something and won't be ignored due to env vars
2024-10-30 08:18:23 -07:00
CasualPokePlayer 9f3630cbce Print out exception from opengl version check failure 2024-10-30 01:12:40 -07:00
Asnivor 867b2384fd [ChannelFHawk] Latest homebrew golf version to gamedb 2024-10-29 14:52:56 +00:00
Asnivor 97c819ac5f [ChannelFHawk] Add newer Mikebloke games to gamedb 2024-10-29 14:11:36 +00:00
CasualPokePlayer cdbb96dfdb set C64 retroachievements memory to RAM rather than System Bus 2024-10-29 06:50:06 -07:00
CasualPokePlayer 78cc5393e4 use FileData, not RomData for NDS
homebrew roms unpadded might be misdetected as having a ""header"" and have the first 512 bytes removed for RomData
2024-10-28 22:29:41 -07:00
YoshiRulz 0bf59347be
Fix Windows 10 LTSC incorrectly being marked as EOL
clever hack, no?
2024-10-28 12:32:03 +10:00
YoshiRulz a8b8fb39ab
Clean up Windows version detection, now flagging Win11 21H2 2024-10-28 12:31:50 +10:00
Morilli f32277ebd6 attempt to fix fm2 import
This will now add reset and power buttons if fourscore is used (pretty sure not doing that was a bug as per comment) and ignore port0 and port1 values if fourscore is set as per movie format documentation.
2024-10-27 18:11:38 +01:00
CasualPokePlayer 8f642d6b8f expose DSi NWRAM 2024-10-26 17:32:58 -07:00
YoshiRulz 7a1ceaf417
s/firmwares/firmware/ in comments 2024-10-27 02:16:56 +10:00
YoshiRulz f1d71cc914
s/firmwares/firmware/ in `MainForm` member identifiers 2024-10-27 02:16:56 +10:00
YoshiRulz 9b146b24ea
Rename `FirmwareConfig{,Info}.cs` to match type names 2024-10-27 02:16:56 +10:00
YoshiRulz 74e46227f5
Rename `FirmwaresConfig{,Info}` to `FirmwareConfig{,Info}` 2024-10-27 02:16:55 +10:00
YoshiRulz 03b1d353a7
s/firmwares/firmware/ in `FirmwaresConfig` member identifiers 2024-10-27 02:16:55 +10:00
YoshiRulz 02bf292a85
s/firmwares/firmware/ in `PathEntryCollection` 2024-10-27 02:16:55 +10:00
YoshiRulz eee34dd69a
s/firmwares/firmwareIDMap/ in Nyma core init methods 2024-10-27 02:16:55 +10:00
YoshiRulz 6955ad3591
s/firmwares/firmware/ in strings 2024-10-27 02:16:55 +10:00
YoshiRulz ab1f002481
Clarify dropdown options in Record Movie dialog 2024-10-26 02:33:00 +10:00
feos 90287b3396 puae: support region changes
by user at the start and by the game on the fly
todo: ntsc par (pal par is 1:1)
2024-10-25 01:17:52 +03:00
feos 703955fcd7 puae: block some unsupported images, reduce heap sizes 2024-10-24 21:47:50 +03:00
Asnivor 52f4f7426c [A7800Hawk] Make ProLine controller default for the core. Fixes #3895 2024-10-24 14:24:33 +01:00
Asnivor b3426624f7 [ChannelFHawk] Some code tidy 2024-10-24 13:49:27 +01:00
Asnivor 9c322f8967 [ChannelFHawk] More sensible viewport trimming and set default viewport to AllVisible 2024-10-24 13:32:38 +01:00
Asnivor e0264ed102 [ChannelFHawk] ICodeDataLogger 2024-10-24 12:27:46 +01:00
YoshiRulz 4c69ce4e27
Avoid `string.Split` in `Database.InitializeWork`
On my machine (Mono) in Release config, this reduces the number of
string- and char-arrays allocated by an order of magnitude,
bringing the gamedb's total bytes allocated down by -10%.
2024-10-24 06:31:44 +10:00
YoshiRulz 6f3fd9740e
Add setup for profiling gamedb
simply build with
`-p:MachineExtraCompilationFlag=BIZHAWKBUILD_RUN_ONLY_GAMEDB_INIT`
2024-10-24 06:31:44 +10:00
YoshiRulz 4678d90646
Extract method from `Database.InitializeWork`, clean up, and add test 2024-10-24 06:31:44 +10:00
YoshiRulz 9ce3771e85
Move gamedb init before single-instance check 2024-10-24 04:27:30 +10:00
feos 09a39a5630 puae: dependent upon 2024-10-23 19:10:24 +03:00
YoshiRulz 9acdcdbcf7
Restore `BitmapBuffer.AsSpan` and add `AggressiveInlining`
fixes 9a5a75e5b and 7ab2ca6b8
2024-10-21 17:44:58 +10:00
Morilli 4f82b30370 cleanup some SequenceEqual related code 2024-10-20 21:24:24 +02:00
Morilli b7b8788354 Optimize ZwinderStateManger.GetStateClosestToFrame
AllStates() sorted the returned states, but this order was not used anywhere else, so I've removed it. GetStateClosestToFrame is solvable in O(n), so sorting is not required there either.

This is an O(n log(n)) -> O(n) improvement that is mostly relevant for the state history integrity checker
2024-10-20 16:56:47 +02:00
Morilli 7ab2ca6b89 Add SequenceEqual extension to prevent linq usage
this speeds up the state history integrity check by about an order of magnitude
2024-10-20 14:00:11 +02:00
YoshiRulz 1dbd7356eb
Fill in Stella upstream version 2024-10-20 05:35:42 +10:00
Morilli 8dee116d77 fix watch combo boxes being cut off 2024-10-19 11:29:20 +02:00
Morilli 59c8125241 some WatchEditor code style 2024-10-19 11:29:01 +02:00
CasualPokePlayer 84130285aa fix host mouse to touch input weirdness with melonDS savestates 2024-10-19 00:51:14 -07:00
CasualPokePlayer c954e8c189 Do encrypted DS rom detection better 2024-10-18 20:41:13 -07:00
CasualPokePlayer 2ddfc5f172 Add more NDS extensions
srl -> "official" DS rom extension (generally found in prototypes etc)
dsi -> used for DSi only games
ids -> used for iQue DS games

upstream handles all these rom extensions already
2024-10-18 18:03:04 -07:00
CasualPokePlayer d3f4c1f441 fix mupen buffer overflow checks; fix pure interpreter
resolves #4095
2024-10-18 15:36:38 -07:00
Morilli 542f917b1f fix a new waterboxhost warning 2024-10-18 23:54:18 +02:00
CasualPokePlayer 593e7c125b force real bios file usage if an encrypted DS rom is used 2024-10-18 13:47:15 -07:00
CasualPokePlayer 64d55404ba Add more invisible heap for melonDS 2024-10-18 13:47:15 -07:00
YoshiRulz a3901f66e5
Add Analyzer to require `class`/`struct` keyword on records
fixes eef190d33, e8c957a7a, and c68dd703d
2024-10-19 04:53:35 +10:00
Morilli c68dd703dc implement dirty checking for N64 settings 2024-10-18 13:28:25 +02:00
Asnivor 13584ceb62 [ZXHawk] Remove ParseDisk() track limit
This fixes 3D Construction Kit and potentially other dsk games with more than 42 tracks on disc.
The +3 disc drive may only be able to read 41-ish tracks of standard sized data, but it appears many images have more tracks than this. 3D construction kit for example has 45 tracks in what passes for the TOC, but the last 5 of these are empty.
2024-10-18 11:04:20 +01:00
CasualPokePlayer 1f261b2c33 Fix crashes with GPU compute renderer w/ wbx states 2024-10-17 21:44:14 -07:00
Morilli f748f93764 simplify GetModChecksum256 2024-10-18 04:10:00 +02:00
Asnivor 7d68a0b017 Fix DSKIdentifier ModChecksum function
This never worked. Will probably fix a whole bunch of core-selection issues (including ones listed here: https://tasvideos.org/HomePages/CloakTheLurker/ZXHawk)
2024-10-17 17:47:38 +01:00
CasualPokePlayer ce3af37b24 Fix off by 1 in PSX RetroAchievements disc hashing 2024-10-16 17:39:48 -07:00
CasualPokePlayer 0105caee6e Do PSX RetroAchievements hashing subdirectory handling better 2024-10-16 17:24:55 -07:00
CasualPokePlayer 09d72bf34f Do RetroAchievements PSX hashing better
Make sure to scan entire directory record (some games seem to end up ending the search early with the old code)
Find "BOOT = cdrom:" with any variable amount of whitespace
2024-10-16 16:14:27 -07:00
CasualPokePlayer a325119362 Add a new DiscSectorReader policy: inspect the sector, but assume mode 2 form is 1
This behavior "needed" for rcheevo hashing to work, since a few games (e.g. `Chinmoku no Kantai - The Silent Service (Japan)`, maybe others) have mode 2 form 2 sectors for the exe (for some reason)
2024-10-16 12:59:55 -07:00
CasualPokePlayer 2c2c2e9ee8 buf2442 -> buf2448
It's not a 2442 byte buffer
2024-10-16 12:46:32 -07:00
CasualPokePlayer b7e57db84f Fix RCTrack sector reads
It appears rcheevos expects user data, not raw sector data
2024-10-15 16:47:46 -07:00
Morilli 6582431d4c fix loading active tasproj into TAStudio
- fixes a43a64b899
- closes #4091
2024-10-15 18:59:27 +02:00
Asnivor 85a7d3474b Identify correct core for IPF image
Obviously we don't support IPF images right now, but with any luck we will eventually. So it makes sense to have something in place in the frontend to do core selection (when a gamedb hash is not found) based on the INFO block within the IPF file itself.
2024-10-15 17:27:05 +01:00
Morilli f26fe45ea9 fix path separators 2024-10-15 16:54:09 +02:00
Asnivor 6a907cdfe3 [FlooohZ80] Remove LICENSE.txt (this now lives in the submodule) 2024-10-15 14:59:19 +01:00
Asnivor e7e2b8f801 [FlooohZ80] use z80.h in submodule 2024-10-15 14:57:25 +01:00
Asnivor aec82f32a9 Add Floooh chips repo as submodule 2024-10-15 14:56:13 +01:00
CasualPokePlayer cef4f10ed8 update comment for previous commit too 2024-10-14 23:55:17 -07:00
CasualPokePlayer c703b5f6a2 Don't immediately change buffer width/height for melonDS video buffer reallocation
They'll get changed later anyways
2024-10-14 23:54:02 -07:00
CasualPokePlayer 670eaf346a Allocate melonDS's video buffer according to effective gl scaling
resolves #4090
2024-10-14 23:51:49 -07:00
prenoeg e77a036e0e
Fixes for PlayStation RetroAchievements hashing (#4085)
* Fixed RA hash for PlayStation games when BOOT line contains tabs where spaces are expected.

* Fixed RA hash and prevented infinite loop when PlayStation executable is in subdirectory.
2024-10-14 19:53:29 -07:00
ASNiVOR 62abee4813 [CPCHawk] Small CRTC1 changes 2024-10-14 21:07:17 +01:00
YoshiRulz 478fc58a5d
Fix overlapping buttons in Virtual Pads on Linux 2024-10-14 18:13:48 +10:00
feos a08cb73a30
order firmware groups in the dialog and in the code (#4087)
there's some discrepancy between the 2 orders, because the GUI list relies on full names (of the groups) while in the code short names are used to add them to DB
2024-10-14 09:56:45 +03:00
CasualPokePlayer 77d19e0fed Try to avoid overly sensitive mice from unhiding the autohidden cursor, hide the cursor better for Windows 2024-10-11 18:33:26 -07:00
feos 40dae6e8ae new function 2024-10-11 22:42:19 +03:00
Morilli 9444b3e5fd Pin ubuntu test runner to 22.04 2024-10-11 21:32:52 +02:00
Asnivor 95cf257d96 [CPCHawk] New CRTC1 impl. 2024-10-11 16:01:00 +01:00
CasualPokePlayer aac3da9e0d rebuild rcheevos on linux 2024-10-10 21:39:28 -07:00
CasualPokePlayer e1820081ee Update rcheevos to v11.6.0 2024-10-10 21:35:28 -07:00
Morilli c190ceb7f2 persist TAStudio max undo levels to config
- resolves #3478
2024-10-10 20:57:25 +02:00
Morilli 4b60a90c78 Remove no-op in tasmovie max undo steps setting
lol
2024-10-10 20:50:38 +02:00
Morilli c844379bd6 Always render video when at end of turbo seek
- resolves #2081

This is only noticable on cores that implement (video) frame skip.
2024-10-10 04:24:31 +02:00
CasualPokePlayer ed10275033 Don't use Thread.Join() in NDS Dispose()
resolves #3220
2024-10-09 18:10:37 -07:00
Asnivor c64822680c [CPCHawk] Some CRTC code tidy 2024-10-09 09:16:56 +01:00
Asnivor ac25842689 [CPCHawk] FloohZ80 Fix interrupt tracelogger reporting 2024-10-09 08:26:26 +01:00
YoshiRulz b85ddf0382
Stop IDEs suggesting to remove the space between cast type and operand 2024-10-09 16:26:47 +10:00
Morilli be5ac88677 make CI happy 2024-10-09 07:32:27 +02:00
YoshiRulz 57e60453f6
Fix typo
fixes d8778aa23
2024-10-09 14:30:48 +10:00
YoshiRulz d8778aa232
Split PSX (Nymashock) rumble channel into left and right 2024-10-09 14:26:10 +10:00
YoshiRulz eb3ab3f05a
Better fix for haptics/feedback prescale
fixes c36b654eb
2024-10-09 14:25:46 +10:00
YoshiRulz c36b654eb9
Fix interger overflow from setting haptics/feedback prescale above 1x 2024-10-09 14:13:21 +10:00
CasualPokePlayer ab081f7363 Rename AVI/WAV to A/V
resolves #4070
2024-10-08 17:39:59 -07:00
CasualPokePlayer a28b169890 Set UpdateAutoCheckEnabled default to true, don't explicitly set a link color for the update available text (red on white is hard to read, default is usually blue, which looks fine here) 2024-10-08 14:43:30 -07:00
CasualPokePlayer 5889ab1d96 Fix inconsistent MAX_FLOPPIES usage 2024-10-08 14:15:53 -07:00
CasualPokePlayer 54fd290107 Do not send writable floppy disks to PUAE (transient files in wbx states are buggy)
Savestate _currentDrive and _currentSlot
Cache controller definition and joystick/keyboard enum mappings
2024-10-08 13:10:54 -07:00
Asnivor 9825ac6db6 [CPCHawk] Implement FloohZ80 TraceLogger 2024-10-08 13:52:49 +01:00
YoshiRulz f6da980fba
Add debug readout for haptic feedback (SDL2 only)
build with `-p:MachineExtraCompilationFlag=BIZHAWKBUILD_DEBUG_RUMBLE`
there's nothing special about SDL2 I just can't be bothered finding the
other impls
2024-10-08 22:44:48 +10:00
YoshiRulz 154a49cd81
Add missing syncsetting check to `Ares64.FrameAdvancePrep`
resolves #4056
2024-10-08 22:13:01 +10:00
CasualPokePlayer ab8eb0405c Default to MT renderer for Faust 2024-10-07 16:19:03 -07:00
YoshiRulz b87920e9ff
Update address for OpenSSF badge in readme 2024-10-08 05:54:26 +10:00
feos 809d43dd44 fix #4069
gpgx: swap A and D regs in gpgx_getregs()

actually limit pc to 24 bits, not just disasm address
2024-10-07 19:34:48 +03:00
feos 737e9ca73b puae: writable memory 2024-10-07 19:26:19 +03:00
CasualPokePlayer bcf7f981f4 Rebuild Floooh for Linux 2024-10-07 01:12:35 -07:00
CasualPokePlayer 187674338b simplify floooh z80 usage 2024-10-07 01:09:17 -07:00
Asnivor 682dd761c3 FlooohZ80 - revert any changes to source header 2024-10-07 06:32:48 +01:00
CasualPokePlayer 0d3498e986 rebuild mgba for Linux 2024-10-06 17:16:12 -07:00
CasualPokePlayer b443eb40a8 Hook up rumble for mgba 2024-10-06 17:13:20 -07:00
CasualPokePlayer ce2a6da71f Build FlooohZ80 on Linux 2024-10-06 15:19:33 -07:00
Morilli 882bab228f fix for CI 2024-10-07 00:16:49 +02:00
CasualPokePlayer 2c2efc6fb8 Fix gpgx_swap_disc sig mismatch 2024-10-06 14:21:40 -07:00
CasualPokePlayer 6c2661fdac Revert "Add prints to gpgx_swap_disc" and "Add prints to cdStreamOpen"
This reverts commit 9e0cfb117b and 5c3ae64014.
2024-10-06 14:15:26 -07:00
Asnivor c644ed19ef [CPCHawk] Trying a new z80 implementation 2024-10-06 22:01:09 +01:00
CasualPokePlayer 9e0cfb117b Add prints to gpgx_swap_disc 2024-10-06 13:38:57 -07:00
CasualPokePlayer 5c3ae64014 Add prints to cdStreamOpen 2024-10-06 13:08:59 -07:00
Morilli c4a92bd0fb Bump duration of movie hash mismatch message
see also #2328
2024-10-06 20:58:27 +02:00
YoshiRulz 0a61b2754d
Revert refactor to `bool[].ToUByteBuffer()` extension too
see 37da7b3e1 and 30b2433a5
2024-10-07 04:19:32 +10:00
Morilli 30b2433a50 Revert changes to ToBoolBuffer
fixes the test, and apparently having non-0/1 bool values is sketchy anyways
2024-10-06 17:30:44 +02:00
Morilli 7db5b22713 Add tests for array conversion util functions
to test the changes made in 37da7b3e12
2024-10-06 17:30:07 +02:00
Morilli 9f161bf40e Simplify Serializer array sync handling
val == null is impossible, so the check is completely useless.
2024-10-06 05:55:23 +02:00
Morilli 37da7b3e12 simplify some Util functions 2024-10-06 05:48:26 +02:00
Morilli 97785b2af2 Fix potential exception in PathEntryCollection path resolving
see also #4077 for where this initially came up
2024-10-06 00:02:02 +02:00
Morilli 7b2de12de3 IsPathRooted -> IsAbsolute
This is most likely more correct. .net framework does not have a dedicated method for checking absolute paths, so this was most likely accidentally used instead.
2024-10-05 23:58:21 +02:00
Morilli a43a64b899 Try handling movie load failure properly in TAStudio
-closes #4068

There's still two callsites that don't check the return value, but I'm not sure whether they can fail and what they should do if they do.
2024-10-05 23:27:20 +02:00
YoshiRulz 9371fbfa62
Add prints to `GPGX.FrameAdvance` 2024-10-05 20:57:28 +10:00
YoshiRulz 5f23ee44b6
Fix BHI1007 errors in NLua
"Don't use target-typed new for throw expressions"
doesn't include rebuilt assembly because it should be identical IL
modulo timestamps
one of these was `Exception` and got stripped, one was checked-in as
implicitly-typed
see 5fd840e14 and 29c15adbb
2024-10-04 23:52:12 +10:00
YoshiRulz f99b8fa518
Use `PathEntryCollection.FirmwareAbsolutePath` extension 2024-10-04 23:39:32 +10:00
Morilli f28fa49795 Fix ZwinderBuffer InvalidateAfter logic
- should resolve #4074

- fixes 2d229be6ba for when _firstStateIndex != 0
2024-10-03 17:59:42 +02:00
Asnivor 2205d1344c [CPCHawk] Interrupt wait state timing tests 2024-10-03 12:17:33 +01:00
Asnivor d513632cf9 [Z80A] Correct Tw cycles for IO
The Z80 should only be sampling the /WAIT pin during the 3rd cycle T of an IO REQ M Cycle.
Instruction timing tests verified on CPCHawk using WinAPE plustest.dsk.

Note: CPCHawk is the only core to currently use the Z80A /WAIT pin (FlagW), so other core exposure is 0.
2024-10-02 14:24:20 +01:00
Asnivor 2193c0a0e5
CPCHawk2024 (#4071)
* [CPCHawk] Start of new gate array and CRTC implementation

* [CPCHawk] Some cleanup

* [CPCHawk] More Cleanup

* [CPCHawk] More CRTC work

* [CPCHawk] More crtc work

* [CPCHawk] more CRTC work

* [CPCHawk] More CRTC work

* [CPCHawk] more crtc

* [CPCHawk] GateArray breaking changes WIP

* [CPCHawk] GA, CRTC and Screen changes

* [CPCHawk] CRTC and GateArray

* [CPCHawk] More stuff

* [CPCHawk] Progress

* [CPCHawk] Starting CRTC type abstraction

* [CPCHawk] Start CRTC status register implementation

* [CPCHAWK] Update colour palatte

* [CPCHawk] Trying to fix GA colour issues

* [CPCHawk] Actually use the Z80 /WAIT line

* [CPCHawk] Frame now running at req 19968 x6 INT

* [CPCHawk] Implement PAL16L8 as a separate device

* [CPCHawk] Border cropping SyncSetting

* [CPCHawk] Stuff

* [CPCHawk] More accurate CRT emulation

* [CPCHawk] Reset vertical timing var only when VSYNC ends in the middle of a scaline

* [CPCHawk] Allow IN port accesses to affect certain write-only devices

* [CPCHawk] Fixed high-impedence returns

* [CPCHawk] Readme update

* [CPCHawk] Update readme with Z80 timing test failures

* [CPCHawk] Update readme
2024-10-02 12:54:22 +01:00
Morilli 5cc4c1f924 Optimize and simplify MarkerView_QueryItemBkColor 2024-10-01 20:36:02 +02:00
Morilli 0fe8fadc39 on shutdown, close tools before stopping movie
- closes #4065
2024-10-01 15:40:30 +02:00
CasualPokePlayer e71cdf8440 Initial SA1 IRAM exposure for RetroAchievements
see https://github.com/RetroAchievements/rcheevos/pull/371
2024-09-30 23:19:45 -07:00
CasualPokePlayer 5ad12db814 fix crash with sa1 ram exposure 2024-09-30 23:01:09 -07:00
CasualPokePlayer f9d4737104 Expose SA1 IRAM in old BSNES 2024-09-30 22:16:26 -07:00
CasualPokePlayer 444d8d5d10 [Snes9x] Increase CARTRAM to 512KiB (the 128KiB limit was a product of the old snes9x port, newer snes9x has 512KiB as the new limit). Expose SA1 IRAM. Let ROM be writable in the memory domain (no reason not to) 2024-09-30 21:07:19 -07:00
Morilli 461a3dfb8d Optimize some linq Any() calls to list Exists() calls 2024-09-30 23:31:54 +02:00
Morilli 08125ae82d Cleanup CloseGame and CloseRom some more
- fixes #4061 and hopefully breaks nothing else
2024-09-30 23:29:53 +02:00
CasualPokePlayer 9ce41a2a88 only update custom backdrop palette if in mode 5
maybe affects https://github.com/TASEmulators/Genesis-Plus-GX/issues/5 ?
2024-09-30 13:32:12 -07:00
Moritz Bender 2d229be6ba
Move ZwinderBuffer invalidation logic into the class (#4066)
in scenarios with MANY states and high fps, the overhead of calling `GetState` every time was significant.
2024-09-30 15:55:48 +02:00
YoshiRulz fedd2dbb03 Replace `ImGuiResourceCache.BrushCache` with a single `Brush` 2024-09-30 21:47:07 +10:00
YoshiRulz fb425c9db6 Replace caches in `LuaPictureBox` with a single `Brush` and `Pen` 2024-09-30 21:47:07 +10:00
YoshiRulz 4f69796e51 Check for cached `SolidBrush` in `LuaPictureBox.DrawText` 2024-09-30 21:47:07 +10:00
YoshiRulz 6c514bcdd0 Change `NesPPU.HandlePaletteViewMouseMove` to re-use one `SolidBrush` 2024-09-30 21:47:07 +10:00
YoshiRulz 1b1589f2e8 Change `SNESGraphicsDebugger.RenderPalette` to re-use one `SolidBrush` 2024-09-30 21:47:07 +10:00
YoshiRulz 0313e1c119 Use `Brushes.*` instead of creating new ones from `Color` constants 2024-09-30 21:47:07 +10:00
YoshiRulz f4298d74f4 Change `SNESGraphicsDebugger.DrawPaletteRegion` to re-use one `Pen` 2024-09-30 21:47:07 +10:00
YoshiRulz ca95336349 Use `Pens.*` instead of creating new ones from `Color` constants 2024-09-30 21:47:07 +10:00
CasualPokePlayer 64f6742c15 Fix drawString not blending when it should
Drawing a string is really having GDI+ do the drawing in software, uploading the result to a texture, then overlaying it to the render target. Since this texture is largely transparent, it needs blending. Of course, assuming the colors are all otherwise opaque, we only need to do this for the string texture draw
2024-09-29 21:39:20 -07:00
Morilli ae5d4ab160 Make StateInformation a readonly struct
This helps a lot when many states exist, struct allocs are much cheaper than classes
2024-09-29 04:05:32 +02:00
Morilli 0ac81016b1 Optimize sound output buffer handling
turns out a Queue isn't the optimal data structure when you're queueing millions of elements
2024-09-29 01:44:39 +02:00
Morilli f3876da840 Optimize Vsync getter functions
trust me this is a highly relevant optimization
2024-09-29 01:39:55 +02:00
CasualPokePlayer ed676cda39 rebuild libmgba for Linux 2024-09-28 09:02:21 -07:00
CasualPokePlayer cab0b2df0b [mGBA] Fix savestates not writing back GPIO variables to gpioBase
The issue wasn't light sensor specific, but rather GPIO specific (so e.g. RTC games like Pokemon would also get affected)

resolves #4060
2024-09-28 08:58:24 -07:00
Morilli 0669483bd2 optimize TasLagLog.RemoveLagEntry
just because I can
2024-09-28 17:30:42 +02:00
Morilli 24012bfb21 optimize TasLagLog.RemoveFrom
- closes #4058
2024-09-28 17:30:40 +02:00
YoshiRulz 9a440d0301
Add missing syncsetting check to `Gameboy.FrameAdvancePrep` (Gambatte)
see #4057
2024-09-28 18:01:00 +10:00
YoshiRulz 444d1b2182
Avoid exceptions in `AxisValue` implementations (resolves #4057)
see #4056
only in Release config, because cores really shouldn't be using
undeclared axes and I'd like to be able to catch that
2024-09-28 17:57:47 +10:00
YoshiRulz e3cfcdaeb9
Nix expr: Fix `emuhawk-*-bin` eval error
fixes 760a5b528
2024-09-28 12:51:27 +10:00
Morilli 15ff0ec2c7 refactor sticky hold/autofire logic in TAStudio
- setting multiple buttons to autofire actually works
- the config to respect lag in autofire is applied now
- can set meaningful axis hold / autofire
- removed last reference to "float autofire"
2024-09-27 00:14:09 +02:00
Morilli 6d9aa4d467 implement bitwise logic for axes
noticable in inputdisplay or when trying to set axis autofire
2024-09-27 00:14:08 +02:00
YoshiRulz 509bd1504a
Set some more metadata on BizHawk assemblies
The documentation for these is lacking, as I've come to expect, but I'm
angry all the same.
For EmuHawk and DiscoHawk, I've pushed `$(Description)` (normally only
seen when publishing to NuGet) into `$(AssemblyTitle)`, which Windows
labels as "File description", and then explicitly set `$(Product)`.
Also `$(NeutralLanguage)` doesn't set a culture, it points any lookups
for `en-US` localisations to embedded resources, which I believe is the
default. This just makes it explicit.
2024-09-27 08:13:33 +10:00
Morilli 5504deb73f make new from savestate and saveram work again
broke with 8956657a34 I'm assuming. Notably this will now no longer copy the current settings over, but that might actually be more consistent with the behavior of the normal new option, so...
2024-09-26 22:34:30 +02:00
Morilli 8f497d44f4 Make PatternsForm title text readable 2024-09-26 22:14:46 +02:00
YoshiRulz 4ccf4eafef
Add missing disc presence check to `NymaCore.FrameAdvancePrep`
fixes #4056
`ControllerAdapter` ctor uses `(discs?.Length ?? 0) > 0`, but it gets
`discs` from earlier in core init; when it's later assigned to `_disks`,
empty lists are replaced with null, and other places in `NymaCore` use
`_disks != null`. The `default(int)` is to match pre-3af5b7a7f
behaviour.
2024-09-27 05:47:27 +10:00
Morilli eaef1f3829 Fix display issue in TAStudio when <3 frames are visible
also left a giant TODO, not sure what else to do about it
2024-09-26 21:11:17 +02:00
Morilli bccc118091 Cleanup some more TAStudio function calls
in an ongoing effort to try and make the logic understandable

This should also restore default columns now when an existing tasmovie is currently loaded with column changes
and an existing bk2 is opened (which is then converted to a tasproj) (possible after 2ad7fc095c)
2024-09-26 21:07:18 +02:00
Morilli 2ad7fc095c Refactor tasmovie input roll settings handling
this allows loading the input roll settings stored in a tasproj even after it was initially `Load()`ed. This fixes those settings not getting applied when loading an existing, playing tasmovie into TAStudio.
2024-09-26 18:52:32 +02:00
Morilli 81b6c2793c Respect AutoFireLagFrames config setting in sticky controllers
Previously, there was no way to configure this and sticky autofire controls would always adjust to lag.
2024-09-26 13:49:21 +02:00
Morilli 6eba7930fc fix watch editor notes label position 2024-09-26 13:49:21 +02:00
YoshiRulz dde61e309f
Make `ServiceNotApplicableAttribute` constructor `params` 2024-09-26 13:54:42 +10:00
YoshiRulz f056059e48
Fix collection type in `ServiceNotApplicableAttribute` 2024-09-26 13:45:54 +10:00
YoshiRulz bcd13fe37f
Make `IDriveLight` optional for cores 2024-09-26 13:45:15 +10:00
YoshiRulz c22f2ab4f5
Remove redundant inter-project dependencies 2024-09-26 09:52:00 +10:00
Moritz Bender 3af5b7a7f0
Refactor sticky controller logic to separate it from user input (#4047) 2024-09-24 16:05:00 +02:00
Morilli 117b35f037 update bsnes from upstream source
includes some reverts to unnecessary source modifications
2024-09-24 15:57:17 +02:00
Morilli 1231d44afc Update llvm to latest point release 2024-09-24 15:57:14 +02:00
Morilli 9f137753b9 hide no-op context menus for separators in ram watch
- closes #4051
2024-09-24 15:23:25 +02:00
YoshiRulz e8b717c18e
Reorder fields in `WatchEditor` (resolves #4046) 2024-09-24 13:55:20 +10:00
YoshiRulz 775dc90ce2
Use a TLP to align UI elements in `WatchEditor` 2024-09-24 13:55:20 +10:00
YoshiRulz 9d1a22cab0
Fix typos from `WatchEditor` Designer file 2024-09-24 13:55:20 +10:00
YoshiRulz b8d65ae92a
Merge in Designer file for `WatchEditor` 2024-09-24 13:54:39 +10:00
YoshiRulz f1c901ce00
Revert "Improve watch editor layout"
This reverts commit f6bf38141a.
2024-09-24 12:30:59 +10:00
YoshiRulz 1d8c088261
Fix `--lua`/`--luaconsole` causing that window to open before MainForm 2024-09-24 12:25:16 +10:00
Morilli 5f835164de fix default controls having a deadzone for mouse
Deadzone when you're using mouse values as input never makes sense.
2024-09-24 00:14:21 +02:00
Morilli 420cf323aa fix axis input calculation truncating instead of rounding
very noticable with MouseX/Y binds, you cannot reach certain positions
2024-09-23 23:16:39 +02:00
CasualPokePlayer 96b4de92af Only call GetDpiForWindow if it's actually available
apparently this is limited to windows 10 1607+
2024-09-23 03:08:19 -07:00
Morilli 3ea0a5a2dd fix autofire sticky axes off value 2024-09-23 02:12:33 +02:00
Morilli 5803e362f9 make IsSticky implementation consistent
only two inheritors and they disagree on semantics... but there's `CurrentStickies` already which gives access to buttons only
2024-09-23 01:58:27 +02:00
Morilli 23815b4783 some more sticky renames for clarity
SetSticky and ClearStickies sounds an awful like they affect the same thing, also this makes it clear whether to set a hold or an autofire
2024-09-22 23:56:53 +02:00
Morilli 5a4f093d50 explicitly unset sticky axes
there should not be a function that blindly unsets both axes and button, make it explicit
2024-09-22 23:11:02 +02:00
Morilli 84f774aa9c reorder code in StickyAdapters
move fields and property to the top, button code before the equivalent axis code, general cleanup
2024-09-22 23:04:38 +02:00
Morilli 525a95ea0a update gpgx ported version 2024-09-22 22:33:08 +02:00
feos ebbbf0c691 puae is not released 2024-09-22 21:57:34 +03:00
YoshiRulz d804b6ce17
Fix code style warnings for `OpposingDirPolicy` docs
fixes ec69033d9
2024-09-23 04:36:23 +10:00
YoshiRulz ec69033d9a
Add docs to `OpposingDirPolicy` enum
see #2752
2024-09-23 04:29:40 +10:00
YoshiRulz f2a4d14172
Replace `?? CancellationToken.None` pattern with the simpler `default` 2024-09-22 15:21:02 +10:00
YoshiRulz b173712a15
Fix suppressed warning in `ClientWebSocketWrapper` ctor
more like "human not smart enough to recognise this" amirite
2024-09-22 15:20:48 +10:00
YoshiRulz 760a5b5285
Nix expr: Set `$GTK_PATH` to mute warning 2024-09-22 03:19:25 +10:00
YoshiRulz 9a2c163461
Nix expr: Add `gtk2-x11` (`libgtk-x11-2.0.so.0`) to `buildInputs` 2024-09-22 03:19:06 +10:00
YoshiRulz 8bfe963bbb
Nix expr: Extract function 2024-09-22 02:04:18 +10:00
Morilli 09dd55eb93 Fix nullref when no movie exists
fixes 259929499f
2024-09-21 16:53:23 +02:00
Morilli f6bf38141a Improve watch editor layout
see #4046
2024-09-21 12:37:36 +02:00
CasualPokePlayer a2d97dfb5f Remove "direct" bin file handling
If you want something like this done, just look for a .cue file next to the .bin file. Do not try to generate a temp .cue and pass that .cue along as the disc file to load, you will potentially run into a situation that temp .cue filename (mind you, this is random!) will act as the game name (due to not being present in db for whatever reason), affecting stuff like SaveRAM and such. The disc file "loaded" must not have some random junk in the filename.
2024-09-21 03:09:13 -07:00
Morilli 259929499f Allow savestating at movie end
- resolves #4032
2024-09-21 10:14:47 +02:00
Morilli 0ac51edd8b add missing BSX framerate
I don't think PAL is even possible
2024-09-20 20:12:41 +02:00
Morilli 5acf324fdf attempt to fix GPGX aspect ratio
see #4042, not sure if this is fully correct yet
2024-09-20 18:26:15 +02:00
YoshiRulz a3a051346b
Enable `File` > `Screenshot` submenu with NullHawk 2024-09-21 01:18:07 +10:00
Morilli 81416e684f Fix DWordWatches not being pokable with binary display type
- closes #4045
2024-09-20 13:28:34 +02:00
Morilli e092240bdd fix watch value box field length for 32-bit binary watches
- closes #4044
2024-09-20 13:26:36 +02:00
Morilli b1eebd9abb make virtual pad control clearing autoholds
ClearStickies clears buttons and axes, but the virtualpad tool wants to control whether only buttons are cleared.
also contains minor cleanups regarding related function calls.
2024-09-20 13:06:31 +02:00
Morilli 5b3daed6e8 improve some VirtualPad code 2024-09-20 12:52:32 +02:00
CasualPokePlayer e720650085 optimize 2D renderer: try to avoid splitting render commands, try to use single pass if blending is unneeded (i.e. alpha is always 0xFF) 2024-09-20 01:24:04 -07:00
CasualPokePlayer a2ddc1b4cd make sure to dispose Image from Image.FromFile
these hold a lock until they get disposed (which without explicit disposing is just waiting on the finalizer to do it)
2024-09-19 22:35:03 -07:00
CasualPokePlayer 073ce5fa4d Do alpha blending more faithfully to GDI+
fixes #4043
2024-09-19 22:00:55 -07:00
CasualPokePlayer 67cba14e38 Don't "shrink" internal upscaled buffers with a smaller virtual width/height
while this did "work", and mimicked other emulators handling internal upscaling, it was a hack, and ends up causing issue with lua padding. it is also more unneeded now that #4029 (makes the UX of a sudden "large window" more managable) and #4011 (allowing for mimicking the frozen smaller window state) are merged

resolves #4039
2024-09-19 01:42:48 -07:00
CasualPokePlayer e568305499 Fix more edge cases with new hw accelerated GuiApi
fixes #4040
fixes #4041
2024-09-18 21:28:20 -07:00
CasualPokePlayer 2c63ef487b Rebuild quickNES on Debian 10 2024-09-18 13:24:40 -07:00
CasualPokePlayer c471a72e64 Fix save type for Puzzler World USA 2024-09-18 01:59:12 -07:00
CasualPokePlayer 5d6106ca57 cleanup last commit 2024-09-17 23:43:54 -07:00
CasualPokePlayer 060670b87b Run string draws at any point, rather than only at the end
fixes #4036
2024-09-17 23:41:33 -07:00
Morilli a1d4c5e68e Make SaveBk2BackupMenuItem visible
It was always there, just invisible! Not sure how useful it is, but might as well try making it visible before removing it.
2024-09-17 20:28:08 +02:00
Morilli 21fbee01de consolidate TAStudio saving functions 2024-09-17 20:26:04 +02:00
Morilli 57d1ac8dbd cleanup and improve TAStudio's SaveAsTas 2024-09-17 20:17:28 +02:00
YoshiRulz 4b454a675a
Fix ext. tools failing with a `[{Required,Optional}Api] ApiContainer` 2024-09-18 01:12:54 +10:00
Asnivor 55762bf8ea [ChannelFHawk] Pair back ramp-up time so shorter sounds can play out 2024-09-17 09:15:31 +01:00
YoshiRulz 97a8e9011e
Add Analyzer to warn about decimal<=>float/double casts
fixes c882fe4ea and 32a66a955
2024-09-17 03:02:09 +10:00
YoshiRulz 6dbee180e9
Fix typo in `TernaryInferredTypeMismatchAnalyzer`
fixes fa361ce06
2024-09-17 00:53:41 +10:00
CasualPokePlayer 9b57adfab0 mark Stella as released 2024-09-16 01:06:22 -07:00
CasualPokePlayer d9b3728365 don't expose not fully functional controllers in stella 2024-09-16 00:44:31 -07:00
CasualPokePlayer 5b74211460 Add missing variables to Stella states 2024-09-16 00:40:02 -07:00
CasualPokePlayer 18a7b32c8d make virtualpad not throw with stella 2024-09-16 00:36:12 -07:00
CasualPokePlayer 4c4ffca2bc remove non-implemented stella settings/sync settings 2024-09-16 00:29:35 -07:00
CasualPokePlayer e06997dd4c Correct aspect ratio for Stella 2024-09-16 00:26:35 -07:00
CasualPokePlayer a8ab0ed302 do not prefer stella 2024-09-15 23:24:35 -07:00
CasualPokePlayer 4a16f2899b Fix Stella throwing 2024-09-15 23:23:10 -07:00
CasualPokePlayer 57e24b8f09 actually resample stella's audio 2024-09-15 23:19:43 -07:00
CasualPokePlayer db11df3804 A few more Stella cleanups 2024-09-15 22:53:21 -07:00
CasualPokePlayer 1b92d1080f Do some cleanups with Stella, mark as experimental 2024-09-15 22:47:38 -07:00
YoshiRulz 32a66a955c
Restore `checked` modifier in `BasicMovieInfo.FrameRate`
fixes 94a24aab8
2024-09-16 08:33:33 +10:00
Morilli 1f1bf9b056 Comment out nonfunctional cycle count update code
setting cycle count in HandleFrameAfter could work, but needs proper invalidation logic
2024-09-15 21:29:55 +02:00
Morilli 09c57cf86e cleanup ICycleTiming header value setting
notably don't unset the ClockRate just because the current cycle count is invalid
2024-09-15 21:29:55 +02:00
Morilli ec0f761bd9 Allow TAStudio to save cycle count in bk2 export 2024-09-15 21:29:55 +02:00
Morilli 94a24aab84 simplify BasicMovieInfo.FrameRate 2024-09-15 21:29:55 +02:00
YoshiRulz cdbaec1db9
Fix code style in `DefaultMessagePositions`
fixes bca7994c0
2024-09-16 04:35:48 +10:00
Morilli bca7994c00 make default message colors readable 2024-09-15 15:31:16 +02:00
Morilli 75c8b8ed9a Rename MovieInput to MovieInputColor
this makes it consistent with the three other variables
2024-09-15 15:31:16 +02:00
YoshiRulz 08fab86807
Load main solution's config for Menees.Analyzers in ext. tools too
fixes 21cdc86e8
2024-09-15 23:28:42 +10:00
YoshiRulz ae2ad0213d
Use local method instead of a loop in `MainForm.FrameBufferResized` 2024-09-15 23:24:18 +10:00
YoshiRulz 21cdc86e8c
Enable MEN018 and fix noncompliance (except in Cores)
"Use Digit Separators" in integer literals
2024-09-15 23:19:07 +10:00
Morilli 74e50c3041 fix some xmldoc 2024-09-14 21:35:47 +02:00
Morilli fb228b77c9 Fix quickernes dll
apparently the one before was a debug build?

I built this using the makefile
2024-09-14 20:02:18 +02:00
kalimag e2a6942df0
Fix missing/incorrect checksums for Sega CD, Saturn, and Jaguar CD (squashed PR #4024)
* Fix non-PSX disc hashing somewhat

- Don't hash generated (empty) lead-in/lead-out tracks
- Limit to track length, not absolute LBA of next track

* Use `InformationTrackCount` instead of `Tracks.Count`

* Add Jaguar CD hashing

Reuse RetroAchievements implementation, move into `DiscHasher`
2024-09-14 22:29:01 +10:00
Morilli 1b3e7d45f2 deduplicate TasMovie property setting in TAStudio 2024-09-14 14:25:02 +02:00
YoshiRulz 362ffd147e
Improve first-launch profile config UX
see a351dcc55
2024-09-14 22:17:43 +10:00
YoshiRulz 0c9f8169db
Make OSD toasts at least `OSDMessageDuration` instead of exactly that 2024-09-14 22:11:51 +10:00
YoshiRulz 5eb2cd8cb1
Send ext. tools regular update events while emulation is paused
resolves #3626
2024-09-14 21:45:22 +10:00
YoshiRulz 0f19b9c854
Also print when `LuaPictureBox.DrawIcon` called with mismatched w/h
see #3851, 170d1a62e
2024-09-14 21:29:24 +10:00
YoshiRulz f6cb86fa65
Pass log callback through to `LuaPictureBox` 2024-09-14 21:29:24 +10:00
YoshiRulz b51bb85c82
Replace `LuaPictureBox` prop init with constructor 2024-09-14 21:29:24 +10:00
YoshiRulz e5e055b7a4
Remove default arguments from `LuaPictureBox.*` 2024-09-14 21:29:24 +10:00
Morilli 1fc443640a Reorganize input display drawing
I tested all combinations I can think of and this looks correct. Hopefully this can easily be verified with the given code comments now.
2024-09-14 09:54:33 +02:00
YoshiRulz c913c5a6e6
Further improve malformed `.cue` UX
see 8f963ba58, #4013
2024-09-14 04:59:38 +10:00
YoshiRulz fa361ce06c
Add Analyzer for finding errors with ternaries in interpolated strings
why is this not part of the SDK
2024-09-14 02:44:08 +10:00
YoshiRulz 3a3f567dad
Fix copy-pasted method name 2024-09-14 02:44:08 +10:00
kalimag f90126f19b Overhaul cheat handling during rom load/close
- Stop overwriting/deleting other games' cheat files after rom change
- Always clear/update references to disposed memory domains
- Keep current cheats after core restart
2024-09-14 00:42:34 +10:00
kalimag 76e73e1897 Remove duplicate method in `CheatList` 2024-09-14 00:42:34 +10:00
kalimag ed13e0ef24 Save main window maximized state 2024-09-13 23:32:12 +10:00
kalimag ad73d39176 Prevent title bar and menu moving off-screen 2024-09-13 23:32:12 +10:00
kalimag a3bf347e22 Defer main window resize while minimized/maximized 2024-09-13 23:32:12 +10:00
kalimag 2e4d2ce232
Add option to disable automatic resize of main window (squashed PR #4011)
* Add option to disable automatic main window resize

* Add option to window size submenu

* Rename parameter to `forceWindowResize`

* Add XML doc comments

* Save main window size

* Make `Config.MainWndx `/`MainWndy` nullable

* Reduce total diff size

* Move cast inside of `foreach`

* Remove obsolete workaround

Position isn't saved anymore when minimized

* Combine config values into `Point` and `Size`

* Add `Point` and `Size` to known good serializable types

* Remove doc comment from implementation
2024-09-13 22:17:27 +10:00
CasualPokePlayer d0482ac787 Fix EGL fixes
fixes 3b62a38f1d
2024-09-12 19:54:04 -07:00
Morilli 494dcb1224 start OSDManager cleanup 2024-09-12 18:48:58 +02:00
YoshiRulz dc582a4e7a
Skip setting `SDL_HINT_VIDEO_X11_FORCE_EGL` on NixOS again
see 60fae3540, 08bd14e80, and 3b62a38f1
2024-09-13 00:17:55 +10:00
Morilli 89235cc9cf Make FramesPrompt title readable 2024-09-12 11:10:54 +02:00
CasualPokePlayer 4d71db1089 Add many more missing TMDs
resolves #4028
resolves (partially) #3840
2024-09-12 00:36:29 -07:00
CasualPokePlayer 245f0e2271 Don't invoke UB with possibly unaligned memory 2024-09-11 16:26:00 -07:00
CasualPokePlayer 3b62a38f1d More properly fix EGL issues 2024-09-11 16:26:00 -07:00
Morilli fdb7a0df46 Remove no-op 2024-09-11 19:51:30 +02:00
YoshiRulz 6b5bd34c07
Demote SA1137 to a warning
"Elements should have the same indentation"
2024-09-12 02:09:13 +10:00
Asnivor 6513e2700c
Update readme.md 2024-09-11 16:48:12 +01:00
ASNiVOR 2ec60924d0 [ChannelFHawk] Markdown is the devil 2024-09-11 16:47:02 +01:00
ASNiVOR 958eb454e3 [ChannelFHawk] Update readme 2024-09-11 16:44:40 +01:00
ASNiVOR fabc7e9aca [ChannelFHawk] Enable for release 2024-09-11 16:08:34 +01:00
ASNiVOR 58b5f40277 [ChannelFHawk] Add viewport controls as a SyncSetting 2024-09-11 13:43:25 +01:00
Sergio Martin bf8758e61c
Adding Stella as A2600 emulation core (#3911)
* Adding initial version of the core

* Adding base files

* Trying to load waterbox now

* Adding stella

* Adding bk class

* Compiling bk interface to stella core

* Now compiling against Stella + SDL2-based BK backend

* Progress

* More progress

* Frame advancing (no render)

* Calling video update but crashing on zero div

* Now rendering to screen with correct palette

* Now rendering appropriately and with correct palette based on region

* Now reading controls

* Trying to capture audio

* Now adding audio

* Now polling inputs

* Now polling inputs

* Now reporting memory regions

* Added memory regions

* Removing debug prints

* Fixing indent

* Adding stella core

* Updating readme and make all cores

* Recovering ending comma

* Using heap alloc for sound buffer

* Removing unnecessary files

* Update src/BizHawk.Emulation.Cores/Consoles/Atari/Stella/Stella.IMemoryDomains.cs

Co-authored-by: James Groom <OSSYoshiRulz+GitHub@gmail.com>

* Update src/BizHawk.Emulation.Cores/Consoles/Atari/Stella/Stella.IMemoryDomains.cs

Co-authored-by: James Groom <OSSYoshiRulz+GitHub@gmail.com>

* Fix

* Restoring vscode

* Removing warning

* Update waterbox readme

* Fix Stella's `[Core]` attr

* Increased sound buffer size to 1Mb, as some games need more than 4K

---------

Co-authored-by: James Groom <OSSYoshiRulz+GitHub@gmail.com>
Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
Co-authored-by: YoshiRulz <OSSYoshiRulz+git@gmail.com>
2024-09-11 08:18:54 +03:00
Moritz Bender a0800862b3
Refactor InputDisplayGenerator + LogEntryGenerator + ControllerDefinition (#3782)
* refactor InputDisplayGenerator and LogEntryGenerator handling
* Fix NRE in Tastudio. I can already see this avalanching into 100 different bugs
* cba, revert 48f4e13de and bring back bullshit dummy default MovieController
* Refactor MnemonicCache + make Bk2LogEntryGenerator and Bk2InputDisplayGenerator static. This should simplify stuff and make the logic clearer
2024-09-10 22:19:54 +03:00
YoshiRulz 08bd14e800
Skip setting `SDL_HINT_VIDEO_X11_FORCE_EGL` on NixOS
see 60fae3540
2024-09-11 02:57:48 +10:00
Morilli a955868e04 Fix Cell add exception in SelectBetweenMarkers
- closes #3971
2024-09-09 22:44:37 +02:00
YoshiRulz 29c15adbbf
Promote BHI1007 to a build error, fixing some cases and muting others
"Don't use target-typed new for throw expressions"
where there was a type name checked-in before being removed,
I've restored it (they were all `Exception`)
2024-09-10 05:42:11 +10:00
Moritz Bender a72b0f7e8c
Cleanup before/after frame logic in MovieSession (#4023)
This does change some behavior, but hopefully the new structure is more logical and more correct. Calling HandleFrameAfter from HandleFrameBefore definitely didn't feel proper.
2024-09-08 20:18:37 +03:00
YoshiRulz 09f037544f
Don't set `PrivateAssets="all"` for `System.CommandLine` package
fixes d908d7718
2024-09-09 00:26:31 +10:00
kalimag 2d938ae61d Dispose input files in DiscoHawk 2024-09-09 00:11:15 +10:00
YoshiRulz b8b7fabd3a
Nix expr: Regen NuGet lockfile 2024-09-08 23:18:03 +10:00
YoshiRulz e68243fca5
Attempt to restore InputRoll invariant during Select All (see #3971)
I believe this method was already non-atomic so this clear operation
shouldn't change anything
2024-09-08 21:46:04 +10:00
Sergio Martin aa662eb930
Update quickerNES and add Arkanoid input support (squashed PR #3997)
* Update QuickerNES interface to accept arkanoid controllers

* Updating

* Updating quickernes to its latest version and now supporting ArkanoidNES and ArkanoidFamicom controllers

* Apply suggestions from code review

applying yoshi's suggestions

Co-authored-by: James Groom <OSSYoshiRulz+GitHub@gmail.com>

* Using proper C#

* Updating based on Morilli's comments

* Updating the linux core

* Fixes based on Yoshi's comments

---------

Co-authored-by: James Groom <OSSYoshiRulz+GitHub@gmail.com>
2024-09-08 21:24:27 +10:00
Morilli 5e9d3cd2bc Implement clone # times hotkey for TAStudio
- closes #3992.
2024-09-08 12:44:17 +02:00
Morilli b02baf5a6a reorder TAStudio context menu items
they are now better semantically grouped together imo.
2024-09-08 12:40:40 +02:00
RetroEdit e3fee6f824 movies: normalize loaded hashes to upper case
fixes #3979
2024-09-08 19:55:15 +10:00
YoshiRulz 9c93cc0cfb Update readme section re: CLI 2024-09-08 19:48:11 +10:00
YoshiRulz 08c215905f Standardise command-line flags to kebab-case 2024-09-08 19:48:11 +10:00
YoshiRulz ab129bcf35 Improve documentation of CLI flags (output of `--help`) 2024-09-08 19:48:11 +10:00
YoshiRulz a55a5ee5a4 Add `--help` command-line flag 2024-09-08 19:48:11 +10:00
YoshiRulz d908d77186 Replace implementation of `ArgParser` using `System.CommandLine` 2024-09-08 19:48:11 +10:00
YoshiRulz bf5deafdab
Upgrade `CS0809` to an error
"Obsolete member 'memberA' overrides non-obsolete member 'memberB'"
(that simply doesn't work)
2024-09-08 19:34:49 +10:00
YoshiRulz 799f838f13
Manually implement equality on `AxisSpec`
fixes 76a30e5d7
2024-09-08 19:30:29 +10:00
Morilli 0f74595cdb Update gpgx 2024-09-08 10:54:48 +02:00
CasualPokePlayer 16d51b429d Actually use IZ80ALink's IRQ/NMI/IRQACK callbacks 2024-09-07 16:50:02 -07:00
Morilli f6ce041ccf change FirmwareOptionStatus.Ideal description
see #3974. I see no reason why there can't be multiple ideal firmwares.
2024-09-07 23:49:26 +02:00
YoshiRulz fa56f2abef
Better document genericisation of virtual CPU classes
fixes f3ea6fe02 (#1189), 84f4d6ae2, and 666cb3939
2024-09-08 07:08:45 +10:00
CasualPokePlayer 3b1641510e [A2600Hawk] Add SP_RESET for Q-Bert
Fixes "Unable to resolve Frame" exception on soft reset
2024-09-07 13:35:51 -07:00
Moritz Bender f47c58f550
Fix movie header values being potentially outdated upon starting a movie record (#4010)
* Rename StartNewMovie parameter

* Move PopulateWithDefaultHeaderValues to MainForm.Movie, make private

Author still needs to be set locally

* Make PopulateWithDefaultHeaderValues non-static

* Remove now-unnecessary firmware parameter in RecordMovie

* add TODO comment

* add Prepopulate function before movie load

Now, the main header population happens after the core is reloaded, ensuring all values are in the correct state.

A few movie values still need to be set beforehand though to ensure the core reboot works correctly.

* Allow recording movies even with outstanding reboot

Should be safe now with the previous commit.
2024-09-07 15:27:20 +02:00
YoshiRulz 650c7cae17
Restore end `#nullable` fence
fixes 76a30e5d7
2024-09-07 22:26:32 +10:00
Morilli daedf5ae07 clarify handling in MovieSession.HandleFrameBefore 2024-09-07 14:25:21 +02:00
Morilli b2131287be increment rerecords when recording frames in a TasMovie
I believe this is more correct than what was previously done. In particular the lag log and statemanager should always be invalidated at the same time. Maybe the `this.IsRecording()` check should be removed altogether?
2024-09-07 14:22:17 +02:00
Morilli 76a30e5d71 random code cleanup 2024-09-07 09:26:13 +02:00
CasualPokePlayer 85d6002673 Put some more callbacks into IZ80ALink; remove MemoryCallbacks in Z80A (it's not actually used at all) 2024-09-06 18:18:41 -07:00
CasualPokePlayer 666cb39392 Implement cpu link interface for z80 2024-09-06 18:02:41 -07:00
YoshiRulz 945cf5d334
Replace Meziantou.Analyzers rule with first-party .NET rule 2024-09-07 08:02:01 +10:00
CasualPokePlayer 94c9f1eaf6 use new scratchpad mem domain for cheevos 2024-09-06 14:08:06 -07:00
CasualPokePlayer 84f4d6ae28 [ChannelF] Cleanup + optimize some code 2024-09-06 13:43:32 -07:00
YoshiRulz 314f32b95f
Revert "Attempt to fix buttons' labels being invisible on some Forms"
This reverts commit 404f28fa64.
2024-09-07 06:03:21 +10:00
Asnivor 139114acd4 [ChannelFHawk] vars to keep the style gods happy 2024-09-06 19:17:08 +01:00
Asnivor f826da6286 [ChannelFHawk] Unnecessary comments 2024-09-06 19:13:57 +01:00
Asnivor de698f05a7 [ChannelFHawk] Revert VRAM back to the correct size and mitigate any index out of range errors in the ClockVideo() method 2024-09-06 19:12:18 +01:00
Asnivor c8327871af [ChannelFHawk] Missed a syncing 2024-09-06 18:40:08 +01:00
Asnivor ad1887589d [ChannelFHawk] More cleanup 2024-09-06 16:01:04 +01:00
Asnivor 8638f4c550 [ChannelFHawk] Remove random usings 2024-09-06 15:54:14 +01:00
Asnivor 955438d9bb [ChannelFHawk] Remove obsolute stuff 2024-09-06 15:48:01 +01:00
Asnivor 789a6266fc [ChannelFHawk] Approximate the clocking of video circuitry rather than generating the framebuffer from RAM at the end of a frame 2024-09-06 15:44:46 +01:00
YoshiRulz 404f28fa64
Attempt to fix buttons' labels being invisible on some Forms
The "workaround" in question is `GTK_DATA_PREFIX='' ./EmuHawkMono.sh`,
which I'll be recommending in the short term until I can figure out how
to load or not load it. (Though `GTK_DATA_PREFIX` is likely part of the
answer).
2024-09-06 17:28:29 +10:00
YoshiRulz a13333b965 Rework doc comment for `IDriveLight.DriveLightIconDescription` 2024-09-06 17:08:10 +10:00
Asnivor 02ecb0ad24 Enhance the IDriveLight interface so that custom tooltip text can be displayed 2024-09-06 17:08:10 +10:00
CasualPokePlayer 0dbc2b0c27 fix ChannelF mnemonics 2024-09-05 17:17:12 -07:00
CasualPokePlayer be01202c68 Do ChanF platform framerates slightly better 2024-09-05 17:03:41 -07:00
CasualPokePlayer c17930c40f Do ChannelF timings a bit better; some cleanups 2024-09-05 16:56:12 -07:00
ASNiVOR ca104aec8a [ChannelFHawk] Bk2 Mnemonics 2024-09-05 22:08:27 +01:00
ASNiVOR 81043839c1 [ChannelFHawk] More accurate rates 2024-09-05 21:47:19 +01:00
YoshiRulz 6d05b9874c
Refactor `MainForm.HandleToggleLightAndLink` 2024-09-06 02:33:05 +10:00
YoshiRulz 234c7dda6b
Remove unused import
fixes 830760b12
2024-09-06 02:33:05 +10:00
Asnivor 830760b12a [ChannelFHawk] Launch internal games by passing bios files as a ROM (which in turn contain said internal games) 2024-09-05 17:03:58 +01:00
Asnivor b3e8182f26 [ChannelFHawk] Implement Channel F II System 2024-09-05 16:47:49 +01:00
Asnivor cd391a6e88 [ChannelFHawk] Remove the computer thinking activity indicator from the non-chess mappers 2024-09-05 16:23:04 +01:00
Asnivor c994e7bc84 [ChannelFHawk] Fix the chess (Schach) computer 'thinking' activity LED (the original cart had an LED built into it - we are using the DriveActivity indicator in Bizhawk for this purpose) 2024-09-05 14:16:08 +01:00
Asnivor 1fb56010e6 Fix analyzer run failure 2024-09-05 13:49:12 +01:00
Asnivor 8ae73ed850 [ChannelFHawk] Implement the Sean Riddle multi-cart mapper 2024-09-05 13:41:57 +01:00
Morilli c77486f88d simplify float division to modulo operator 2024-09-05 07:14:27 +02:00
Morilli d9069ea2cc Simplify PathExtensions.IsAbsolute
I've somewhat extensively tested this and this should be good. I've gotten to the point where even `Path.IsPathFullyQualified` returns wrong results (for "\?test"), so I'm not gonna look further.
2024-09-05 06:46:23 +02:00
CasualPokePlayer fa9c581d19 [ChannelFHawk] Expose scratchpad registers as a memory domain
This more or less acts like memory for the ChannelF in practice, due to the actual console lacking RAM. Using debugger apis is very annoying for peeking at these registers and of course you can't just use RAM Watch or the Hex Editor with it locked to debugger apis
2024-09-04 18:48:34 -07:00
CasualPokePlayer 817efd6598 remove debug code from last commit 2024-09-04 18:25:14 -07:00
CasualPokePlayer 1ada77e51f [ChannelFHawk] Fix off by one for ROM array creation 2024-09-04 18:24:21 -07:00
CasualPokePlayer 7f3a1668d8 [ChannelF] Move PollInput() to before CPU loop, add missing variables to states, fixup usings 2024-09-04 18:18:07 -07:00
CasualPokePlayer c1ec22c26a Fix ChannelF settings not being properly saved 2024-09-04 16:01:53 -07:00
CasualPokePlayer 0a7e6c4c00 Don't set ChannelF byte array domains as non-writable 2024-09-04 15:49:35 -07:00
CasualPokePlayer f67c766469 fix incorrect constant in cheevo code 2024-09-04 15:40:53 -07:00
CasualPokePlayer 425cafe1e8 [ChannelF] Add cart ram to memory domains, ensure loading a savestate keep the correct byte array for memory domains, expose cart ram for cheevos 2024-09-04 15:38:41 -07:00
CasualPokePlayer 60fae3540d Prefer EGL over GLX
should fix Nvidia proprietary driver issues on XWayland
2024-09-04 12:29:05 -07:00
CasualPokePlayer 84de88571e Rebuild SDL on Linux 2024-09-04 12:21:42 -07:00
CasualPokePlayer 40237d476a Update SDL submodule
includes https://github.com/libsdl-org/SDL/pull/10645 (waiting on merge)
2024-09-04 12:18:28 -07:00
Asnivor 5d37fb1ec2 ChannelFHawk: Default controls and VirtualPad 2024-09-04 17:36:57 +01:00
Asnivor 999c7c2a80 ChannelFHawk: Updating gamedb 2024-09-04 15:48:05 +01:00
Asnivor 323288872b ChannelFHawk: Audio subsystem now working correctly, Debugger exception fixed, SyncState updated 2024-09-04 09:55:04 +01:00
CasualPokePlayer 7061acbfcf silence resharper warning 2024-09-03 14:56:47 -07:00
CasualPokePlayer 38c4e51fbd Add more proper ZX Spectrum memory maps for cheevos 2024-09-03 14:56:47 -07:00
CasualPokePlayer c778d49b01 Add DTCM to DS/DSi memory maps for cheevos 2024-09-03 14:56:47 -07:00
Morilli c80416245e specify nightly toolchain in rust-toolchain.toml
not touching whatever the fuck build-release.bat is
2024-09-03 07:37:18 +02:00
Morilli 959484ee13 fix a waterboxhost compile warning 2024-09-03 07:36:29 +02:00
Morilli 92724aee0b Use current value from detailed watches in RamSearch 2024-09-03 01:41:02 +02:00
Morilli e09bfa8ca9 expose Current value in IMiniWatchDetails 2024-09-03 01:40:59 +02:00
Morilli b90e40ae5c don't refetch current vale in MiniWatchDetails.SetPreviousToCurrent 2024-09-03 01:40:56 +02:00
Morilli 3b1ce44fb5 Make MiniWatchDetails derive from MiniWatch 2024-09-03 01:40:54 +02:00
Morilli 70f7238d96 fix ChangeCount logic in MiniWatchDetails
fixes another case of #4001 for ram search
2024-09-03 01:40:50 +02:00
Morilli 39ca6ce628 fix DearchivalTests
bit ugly that opening an archive or checking its type via sharpcompress seeks the input stream, but welp
2024-09-02 21:43:07 +02:00
Morilli a481d7420b bump sharpcompress 2024-09-02 19:01:41 +02:00
YoshiRulz 4fc3d9bd40
Update Meziantou.Analyzer and enable new rule MA0160
"Use ContainsKey instead of TryGetValue"

I checked the source and MA0159 "Use 'Order' instead of 'OrderBy'" looks
for the LINQ method in the BCL specifically, not by signature, so we
can't replace our bespoke `OrderBySelfAnalyzer` :(
2024-09-02 22:34:11 +10:00
CasualPokePlayer 57d6355083 Use VersionInfo user agent for rcheevos too 2024-09-01 12:41:25 -07:00
YoshiRulz e9aba0557e
Use correct product name in `User-Agent` value 2024-09-02 05:31:19 +10:00
YoshiRulz cda23dd38e
Move `User-Agent` value to `VersionInfo` and ensure it's valid
fixes e22082c6b
2024-09-02 05:21:56 +10:00
CasualPokePlayer 133ff5a77e Suppress the context menu if right click has a binding 2024-08-31 19:07:57 -07:00
CasualPokePlayer e22082c6b4 Set a user agent for HttpCommunication 2024-08-31 19:07:57 -07:00
YoshiRulz 5b5652d01e
Revert "Update VersionInfo.cs"
This reverts commit b9d8af8854.

Per https://github.com/TASEmulators/BizHawk/wiki/Release-checklist this
should be done immediately before release.
The reason for that is to avoid having several values for dev builds
between releases, a "stable API" if you will.
2024-08-31 22:50:44 +10:00
feos b9d8af8854
Update VersionInfo.cs 2024-08-31 09:46:54 +03:00
YoshiRulz c138e38951
Ask the user to reconsider quitting if A/V recording (resolves #4017) 2024-08-31 12:34:35 +10:00
YoshiRulz 31b0a29d2d
Refactor `MainForm`'s `Closing` handler 2024-08-31 11:37:55 +10:00
CasualPokePlayer aeda8f1659 Add microphone button for melonDS
This changes the behavior so the user just has to press the microphone button to blow the mic, where the volume of the blowing can be controlled with the mic volume axis (but now the neutral value of mic volume is 100 rather than 0)
2024-08-30 17:35:18 -07:00
CasualPokePlayer 1ce8b855c7 remove app.config dpi stuff
mono does not like this (fixes #4002)
2024-08-30 17:11:22 -07:00
CasualPokePlayer d70daae5d6 Create Contains impl for arrays, fix device id blacklist detection 2024-08-30 16:10:54 -07:00
CasualPokePlayer c54102b3a6 prevent Broadwell gpus from using GL interop
a user reported to me they just get a crash in DxopenDevice, although yet their pc does not have a dual gpu setup, indicating the drivers for their gpu are rather bad
Intel HD Graphics 5500 was the specific gpu, but i'll just be safe and blacklist all of Broadwell
2024-08-30 01:07:15 -07:00
Morilli ea1dcf5b22 Simplify SearchEngineSettings ctor 2024-08-30 02:23:40 +02:00
Morilli 82fa98fc7d Ensure the ram search changes column is in a consistent state
the settings store whether or not the column should be visible even though that should be controlled by the Mode setting alone
2024-08-30 02:21:39 +02:00
YoshiRulz 10ebea4dda
Ban `BitConverter.To*`
I was hoping not to mute this Analyzer for the Cores project, but there
were a couple usages of `BitConverter` there that were too far gone into
dumb territory to fix in this commit
2024-08-30 00:17:01 +10:00
Morilli 15ac8e2905 Fix cursor icon position in horizontal tastudio orientation
necessary with 00228a1f20
2024-08-29 08:22:25 +02:00
YoshiRulz f09e72e7e0 Clean up `WatchValueBox.SetFromRawInt` 2024-08-29 06:43:14 +02:00
Morilli d479cb4366 Delete ConversionTests.cs 2024-08-29 06:23:56 +02:00
Morilli a51ed03c02 move ReinterpretAsF32 to a common location and use it more
as well as its inverse
2024-08-29 06:17:40 +02:00
Morilli 5588d68e4a make DifferentBy uint as well 2024-08-29 05:54:05 +02:00
Morilli b4bcb5755d fix some exception types
can these even occur?
2024-08-29 05:39:48 +02:00
Morilli 6d9c74b7ea change a bunch of stuff to uint
- closes #4001
2024-08-29 05:35:50 +02:00
Morilli 564b916499 remove unused function 2024-08-29 05:35:27 +02:00
Morilli 3c218c6642 Optimize RamSearchEngine.Preview 2024-08-29 05:35:27 +02:00
CasualPokePlayer 53436e81f5 fix GDI+ on Linux (again) 2024-08-28 20:26:00 -07:00
YoshiRulz ef028dfea4
Add comment to `TasMovie.AddTasProjLumps`
fixes 884110e61
2024-08-29 13:11:27 +10:00
Morilli 884110e61a Fix TasMovie save when TasStateManager is null 2024-08-28 03:47:38 +02:00
Morilli 74dcd81b85 don't control stop movie in TAStudio movie load
was removed in b6a0688be0, and while not strictly required this will leak TasMovies otherwise.
2024-08-28 03:47:38 +02:00
Morilli 8956657a34 lazy-initialize TasStateManager and markers
This is a bit of a dangerous change. Ideally this will fix the TasStateManager being initialized twice for loaded movies and have no other noticable effect.
2024-08-28 03:46:14 +02:00
Morilli 532dc06e64 tweak TasMovie.StartNewRecording slightly
StartNewRecording is now always called for new tas projects in TAStudio, and the marker change code in there caused the Changes bool to get set and never cleared.
2024-08-27 23:43:55 +02:00
Morilli b6c031beaa Update window titles properly in TAStudio
Some change at some point removed code that implicitly triggered window title updates, so they weren't always correct now.
2024-08-27 23:41:52 +02:00
Morilli 4194870f6f Add tasmovies to recent list on load
This was removed in 42aa9d991d, but I don't remember if it was intentional or a mistake.
In any case it feels bad to open tas movies and not get them added to the recent list.
2024-08-27 23:37:48 +02:00
Morilli 00228a1f20 Tweak some InputRoll values
- see #3708

A bit experimental, let's just see how it feels.
2024-08-27 18:53:06 +02:00
YoshiRulz eaf9906741
Leave a note re: `$(EmitCompilerGeneratedFiles)` 2024-08-27 22:57:33 +10:00
CasualPokePlayer 3c1248547f This should be Max, not Min 2024-08-25 22:10:27 -07:00
CasualPokePlayer 0a9c2dc276 Don't allow 0 width/height rectangle to be used with GDI+'s buffered graphics 2024-08-25 22:09:10 -07:00
CasualPokePlayer f9883f6700 remove ? 2024-08-25 18:32:53 -07:00
CasualPokePlayer f18c2467de Undo previous commits, try setting glx depth explicitly (probably isn't what's needed? maybe it is? ehhh)
TODO: this seems to be an issue anyways with buggy nvidia drivers under xwayland, perhaps that setup can be detected and forced over to GDI+?
2024-08-25 18:30:10 -07:00
CasualPokePlayer 516a021add Try making this actually work 2024-08-25 17:37:41 -07:00
CasualPokePlayer bb456e45be Try to workaround some Linux Nvidia driver bug 2024-08-25 15:48:14 -07:00
Morilli 436be60222 cleanup and fix GenericDebugger.DecrementCurrentAddress 2024-08-25 21:07:40 +02:00
Morilli 1ea8cf2f36 check disassembler address properly in GenericDebugger.Disassemble
- closes #3524

- the address was not checked on the first call
- the comparison needs to be >=, not >
2024-08-25 21:01:06 +02:00
YoshiRulz 3d37901677
Nix expr: Regen NuGet lockfile
fixes c882fe4ea5
2024-08-26 04:10:28 +10:00
YoshiRulz 93fe2c8b6a
Ban some more BCL methods (not used anywhere) 2024-08-26 02:01:06 +10:00
YoshiRulz 67f87b15c4
Ban runtime asserts without a message 2024-08-26 02:00:50 +10:00
YoshiRulz 8e12e44411
Ban `Control.Focus`
"Focus is a low-level method intended primarily for custom control
authors. Instead, application programmers should use the Select method
or the ActiveControl property for child controls, or the Activate method
for forms." --MSDN
2024-08-26 01:21:40 +10:00
YoshiRulz 2dd87d78f9
Use binary literals instead of `Convert.ToByte` in `D64` 2024-08-25 23:34:09 +10:00
YoshiRulz c882fe4ea5
Add official `BannedApiAnalyzers` and ban some string parsing methods 2024-08-25 23:31:16 +10:00
YoshiRulz 846253760e
Extract more helpers for finding Lua forms/controls by handle 2024-08-25 03:49:57 +10:00
YoshiRulz b69e466c03
Extract constant in `FormsLuaLibrary` 2024-08-25 03:39:29 +10:00
YoshiRulz a1faf8bf0a
Speed up `forms.*` by knowing that form/control handles are unique 2024-08-25 03:39:13 +10:00
YoshiRulz 170d1a62ed
Add warning message for Lua functions called with mismatched x/y/w/h 2024-08-25 03:39:02 +10:00
YoshiRulz 884fee6c6d
Encapsulate x/y/w/h checks in `FormsLuaLibrary` 2024-08-25 03:39:02 +10:00
YoshiRulz ecaece0488
Fix Lua forms having a blank title when not specified 2024-08-25 03:39:01 +10:00
YoshiRulz c3057298f9
Fix `forms.destroyall` not clearing the list 2024-08-25 03:39:01 +10:00
YoshiRulz 681a5764d6
Fix LuaPictureBox functions only working on the first form
fixes 672536305
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2024-08-25 03:38:58 +10:00
YoshiRulz bda40c7ba3
Dedup `forms.{drawString,drawText}` implementations 2024-08-25 03:38:41 +10:00
YoshiRulz b99a3831e9
Change return type of `BootGodDb.Identify` to `IReadOnlyList` 2024-08-23 16:51:40 +10:00
YoshiRulz fc446868a7
Fix `BootGodDb.Identify` mutating lookup
fixes f010d6f80, 633216be1
2024-08-23 16:45:44 +10:00
Morilli 8c9587e00b Fix BootGodDB lookup being completely broken in quicknes
- closes #3703

Presumably broken since e38726db50.
2024-08-22 23:15:20 +02:00
Morilli f010d6f802 Fix bootgod exception on missing game hash
fixes 633216be14
2024-08-22 22:54:21 +02:00
YoshiRulz 7dfb624427
Remove `WorkingDictionary<K, V>` 2024-08-23 02:53:30 +10:00
YoshiRulz 34d71e90bc
Add more `GetValueOrDefault` overloads 2024-08-23 02:53:30 +10:00
YoshiRulz 72b2e78957
Refactor `AutoFireStickyXorAdapter.IncrementLoops` 2024-08-23 02:49:47 +10:00
YoshiRulz 5dd3dc7ae5
Refactor `AutofireController.{IsPressed,LatchFromPhysical}` 2024-08-23 02:49:47 +10:00
YoshiRulz 384e4c913c
Short-circuit loops in `{,Autofire}Controller.LatchFromPhysical` 2024-08-23 02:49:47 +10:00
YoshiRulz 633216be14
Remove `Bag<K, V>` 2024-08-23 02:48:03 +10:00
YoshiRulz ba4c406a36
Add names to bool argument in `TAStudio.StartNewMovieWrapper` calls
fixes b6a0688be
2024-08-22 22:44:14 +10:00
YoshiRulz 325880be18
Further cleanups to `MainForm.ProcessInput`
fixes 2f5dfcea3
2024-08-22 22:40:42 +10:00
Morilli 2f5dfcea33 simplify variable assignment 2024-08-22 13:34:39 +02:00
Morilli 17733e38f7 Check all individual buttons with input key priority
- closes #3842

If any of the pressed buttons is an input, don't trigger any hotkeys.
2024-08-22 13:33:56 +02:00
Morilli f07c689c58 Improve horizontal TAStudio layout a bit
see #3708
2024-08-22 01:30:46 +02:00
Morilli b6a0688be0 simplify TAStudio movie starting
- removes HandleMovieLoadStuff, which should ™️ not be necessary
- pass newMovie parameter into MainForm.StartNewMovie. This is currently probably irrelevant, but useful later
2024-08-21 22:24:39 +02:00
Morilli 1c44dc5913 don't create undo steps when setting TasMovie.StartsFromSavestate
A movie either starts from a savestate, or doesn't. It should not be possible to undo the marker changes done when setting this value.
2024-08-21 22:12:32 +02:00
YoshiRulz c2a336647c
Use `Type.EmptyTypes` in `MovieImport.ImportFile` 2024-08-21 22:15:14 +10:00
kalimag 4e85a71d53
HexEditor "File on Disk" fixes (squashed PR #3998)
* Fix keeping rom domain selected

* Turn unnecessary field into local

* Handle `null` return from `GetRomBytes()`

* Simplify `GetRomBytes()`

* Add try-catch around opening rom file
2024-08-21 15:59:39 +10:00
CasualPokePlayer b9cd4a93cc Remove unneeded modifer 2024-08-20 15:23:36 -07:00
CasualPokePlayer 02acd542c2 Guard against cheat codes in RetroAchievements' hardcore mode
originally I thought just blocking the cheat window would be enough, but autoloaded cheat codes could sneak through. An actual check for cheat codes being active prevents this being an issue.
2024-08-20 15:22:39 -07:00
Morilli beab2b141b Only force a core name if one exists
This could actually not be the case for imported movies for example and is handled elsewhere, but this force parameter breaks rom loading completely when QueuedCoreName is empty.
2024-08-20 23:10:38 +02:00
Morilli cdd7ee1fea Improve missing firmware dialog readability
see comment here: https://github.com/TASEmulators/BizHawk/issues/3980#issuecomment-2269483563
2024-08-20 23:09:16 +02:00
Morilli 8d4c29a64f ensure updated core settings are always saved in config
- closes #3966
2024-08-18 23:12:24 +02:00
RetroEdit 3ede77b8b7
Change OnMovieEnd default to 'Pause' instead of 'Finish' (#4008) 2024-08-18 18:45:04 +03:00
YoshiRulz d9331c5a28
Add feature flag to disable the gamedb 2024-08-18 16:21:51 +10:00
YoshiRulz c319bf5fb8
Fix LINQ chain in `FirmwareManager.DoScanAndResolve`
fixes 963b925a1
2024-08-18 16:09:31 +10:00
Morilli 963b925a1a prefer ideal firmware over acceptable firmware
see #3974
2024-08-18 03:30:31 +02:00
Morilli fa08002fbf don't set quickNES's priority to low
it's the preferred core after all, this doesn't make sense
2024-08-18 03:28:56 +02:00
Morilli 92399482d4 also search in descriptions in the lua functions filter
- closes #3651
2024-08-18 02:46:57 +02:00
Morilli e893e3a1ff Cleanup CueFileResolver
also closes #3532
2024-08-18 02:38:23 +02:00
Morilli 7c89bda312 update displaymanager on rom load failure 2024-08-17 22:26:10 +02:00
Morilli 9085bd6e0c Set correct GameInfo even when rom loading failed
- closes #3986

(maybe this should be in CloseGame as well?)
2024-08-17 22:25:55 +02:00
YoshiRulz 5ee53db53b
Nix expr: Expose Mono's profiler 2024-08-17 18:17:00 +10:00
YoshiRulz 07508a91f2
Nix expr: Remove TODO which has been resolved 2024-08-17 18:11:11 +10:00
YoshiRulz 60366c13b5
Fix signature of `IMemoryApi.WriteFloat` 2024-08-16 22:49:35 +10:00
YoshiRulz 70b640240e
Simplify boolean comparison
this was getting flagged in CI but not on my machine
2024-08-16 21:09:38 +10:00
YoshiRulz 6b160d9bd0
Revert RAM Search refactor (PR #3954)
reverts 1a9e5e52f1
2024-08-15 01:57:47 +10:00
YoshiRulz 0f22ef2ad0
Revert "Change ToRawInt to ToRawUInt"
This reverts commit 542e043261.
2024-08-15 01:53:59 +10:00
YoshiRulz 0184bcd0af
Restore numeric values for `PreviousType` enum
fixes 1a9e5e52f
2024-08-14 00:38:12 +10:00
kalimag ab7f379e74 Correct rewind dialog typo 2024-08-09 19:41:52 +10:00
YoshiRulz d02760edf3
Attempt to disable AppVeyor CI 2024-08-09 13:46:24 +10:00
YoshiRulz a1aaabe8d5
Add ctors to `LoadRomArgs` and `OpenAdvanced_OpenRom` 2024-08-09 13:36:27 +10:00
YoshiRulz 12310befff
Remove IOpenAdvanced parsing from places unrelated to recents menu 2024-08-09 13:36:22 +10:00
YoshiRulz 19bf70a9c9
Nix expr: Regen NuGet lockfile 2024-08-09 11:36:56 +10:00
YoshiRulz beee1eb820
Replace "Built with Nix" badge in readme, and reorder them AGAIN
reverts 84c4eebf1
2024-08-06 03:35:31 +10:00
feos 84c4eebf11
reorder top badges in README
primary info at the top, dev builds next (since we want them to be super visible), stats not important for users next. nix badge is "unique" so it looks bad if placed on the same line as a wide and thin one
2024-08-05 20:23:38 +03:00
YoshiRulz 9f5a5d8593
Fix crash due to mutating `ToolManager._tools` while enumerating it
resolves #3983
2024-08-06 02:11:17 +10:00
kalimag cdf79d3593
Make external tools path independent of working directory (squashed PR #3987)
* Make external tools path independent of working directory

* Add `ExternalToolsAbsolutePath` extension

* Use absolute path for external tool dependencies as well
2024-08-06 01:56:10 +10:00
CasualPokePlayer 494fe90bfc fix Tilt Y in 3ds schema 2024-08-05 00:47:49 -07:00
CasualPokePlayer a675e882fe avoid double compressing zstd zip entries 2024-08-04 15:08:53 -07:00
CasualPokePlayer 7ebb89fec9 release Encore 2024-08-04 14:30:43 -07:00
CasualPokePlayer 618f66f970 Add 3DS virtualpad schema 2024-08-04 14:26:48 -07:00
YoshiRulz d9d5c45848
Hopefully fix FakeTemporalAA tool crashing on close rom 2024-08-04 20:00:53 +10:00
YoshiRulz d2a29d06ab
Add tool for faking temporal anti-aliasing 2024-08-04 19:00:48 +10:00
CasualPokePlayer 91de8608af Do image/texture caching better
also don't try to cache the sampler / avoid set sampler calls (the sampler is not pipeline specific, so it's affected by other pipelines setting the sampler)
2024-08-03 23:59:20 -07:00
YoshiRulz 2b371e2752
Fix Gambatte and SameBoy palette load file pickers using wrong dir
fixes 348cbd18d
2024-08-04 03:46:13 +10:00
YoshiRulz b84ce89575
Stop setting `BIZHAWK_INT_SYSLIB_PATH" in Linux launch script
unused since ba24907d9
(leaving it in the Nix expression since that same script is used across
every version)
2024-08-01 01:48:13 +10:00
YoshiRulz 7a8b9b13ff
Nix expr: Add `hawkSourceInfo.mainAppFilename` 2024-07-29 22:26:22 +10:00
YoshiRulz 8e3486a50a
Nix expr: Expose `populateHawkSourceInfo`
fixes 8055cd134
(I forgot to update the automagic docs when adding `-A IDEs.kate`)
2024-07-29 21:04:26 +10:00
YoshiRulz 92f762b0c0
Nix expr: Refactor how `custombuild.txt` is set declaratively 2024-07-29 21:01:45 +10:00
feos 8e9e9b9218 update script 2024-07-27 14:54:02 +03:00
YoshiRulz 1bc1f1b3d2
Add overload for `IGuiApi.WithSurface` with stronger encapsulation 2024-07-26 16:03:02 +10:00
YoshiRulz 22e5e035d2
Remove a couple references to deprecated `--mono-no-redirect` flag 2024-07-26 15:52:59 +10:00
YoshiRulz 7b644f771e
Use `System.Drawing.Primitives` 2024-07-26 10:33:20 +10:00
kalimag 413fd40b46 Fix fuzzy cue file resolving
Partially revert 7cde8bb
2024-07-25 16:46:28 +10:00
James Groom 3a8b3913bf
Fix Uzebox framerate (squashed PR #3975)
These numbers are derived from the 2010 whitepaper:
NTSC's 4*(315/88 MHz) is doubled to give the master clock rate, which is
then divided by 1820 cycles per line and 262 lines per (progressive)
frame.

---------

Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
2024-07-24 07:31:34 +10:00
YoshiRulz 8fda95066c
Fix value being cached when it shouldn't in `InputRoll.LastVisibleRow`
resolves #3972
partially reverts dd4f9aaf6
2024-07-21 06:28:31 +10:00
Morilli cc1b9c5903 TAStudio: access CurrentTasMovie before stopping it
fixes 4c39a81228

- closes #3973
2024-07-20 08:15:10 +02:00
Morilli 5fd3575c0f Improve tastudio refresh behavior in tastudiolualibrary
should resolve #3969. Let's hope this doesn't break anything.

There still seems to be some overhead, but I can't profile this so I can't say whether it's from submitclearframes or applyinputchanges.
2024-07-20 07:56:52 +02:00
YoshiRulz cee9661f0e
Reduce indentation in `Bk2Controller.SetFromMnemonic` 2024-07-20 13:41:49 +10:00
YoshiRulz 151491c844
Use an array for `Bk2Controller.ControlsOrdered` 2024-07-20 13:39:37 +10:00
YoshiRulz 1049a091c0
Convert `Bk2Controller.ControlMap` to a struct 2024-07-20 13:38:40 +10:00
YoshiRulz bbebe88179
Rename issue templates to have numeric prefixes
...since they're sorted by filename in the template selector
with this change, whoever changes them next (probably me) will be able
to control the order
2024-07-19 16:43:51 +10:00
YoshiRulz cd81aac56b
Remove language re: Linux port being secondary/WIP from issue template 2024-07-19 16:38:12 +10:00
YoshiRulz b7a851ea92
Set default window scale for WonderSwan to 3x 2024-07-19 07:27:13 +10:00
Morilli 15125ec11f Improve tastudio lualibrary speed
see #3969
2024-07-18 02:15:07 +02:00
Morilli f59cfb1710 set current branch properly in TAStudio movie load
apparently, GoToFrame might frameadvance, which in turn calls UpdateAfter(), which in turns updates the current selected branch in the TasSession with the value of the current movie.
So, we need to set the current movie's current branch from the session's value before it gets deleted.

- closes #3968
2024-07-17 22:46:00 +02:00
feos e214b7dc33 fix script 2024-07-16 20:29:29 +03:00
YoshiRulz 9a5a75e5bb
Add some helpers to `BitmapBuffer` 2024-07-16 08:08:41 +10:00
YoshiRulz d7e9668d50
Add and use `Span`-from-`IntPtr` helper 2024-07-16 07:30:09 +10:00
YoshiRulz f742fe55d5
Refactor `ToolManager.Close`
that ought to cover everything
2024-07-16 04:09:01 +10:00
YoshiRulz f9cdad2ea6
Move system-specific helpers in `MainForm` to separate file 2024-07-14 05:40:25 +10:00
YoshiRulz e49c4689de
Minor refactors to system-specific helpers in `MainForm` 2024-07-14 05:34:42 +10:00
YoshiRulz b2184e46d5
Clean up some `DropDownOpened` handlers for disk switch submenus 2024-07-14 05:31:04 +10:00
YoshiRulz 65979e61ec
Reduce indentation in system-specific helpers in `MainForm` 2024-07-14 05:25:36 +10:00
YoshiRulz 2321bc55e6
Add `LoadedCoreIsNesHawkInVSMode` helper prop in `MainForm` 2024-07-14 05:10:23 +10:00
YoshiRulz f21c8b914c
Refactor `MainForm.EnsureCoreIsAccurate` 2024-07-13 01:21:45 +10:00
YoshiRulz c09f195148
Fix bug in `HawkSourceAnalyzer` 2024-07-12 23:27:29 +10:00
YoshiRulz 1fdacd762a
Refactor `yield`ing methods to conventional LINQ 2024-07-12 14:42:11 +10:00
YoshiRulz dfe8b1308c
Refactor `yield`ing methods to direct, stateless returns 2024-07-12 14:42:10 +10:00
YoshiRulz 166f1d537e
Comment-out unused `DiskBuilder.BamEntry.Entries` (C64Hawk) 2024-07-12 14:42:10 +10:00
YoshiRulz fc8fd64143
Simplify `DiskBuilder.BamEntry.GetBytes` (C64Hawk) implementation 2024-07-12 14:42:10 +10:00
YoshiRulz 18bc51f5e7
Simplify `IDisassemblable.AvailableCpus` implementations 2024-07-12 14:42:10 +10:00
YoshiRulz da06dae80c
Decrease indentation in `InputRoll.GenerateContextMenuItems` 2024-07-12 14:42:10 +10:00
Morilli c5820f0c0f TAStudio: don't select branch when none exists
-closes #3967
2024-07-12 06:03:14 +02:00
YoshiRulz 616437ff31
Restore exception message in `SavestateFile.Create`
partially reverts e9d6716a3
2024-07-12 08:09:59 +10:00
YoshiRulz ee0c0a80d0
Bump supported Win10 version 2024-07-12 01:51:28 +10:00
feos a5e7288a71 add batman-robin lua 2024-07-11 17:48:33 +03:00
Morilli e9d6716a33 Fix savestating being possible after movie has finished 2024-07-10 21:03:59 +02:00
CasualPokePlayer 662fd83f5e Prevent user changing clock stopping message pumping
TODO: Audit other usages of DateTime.Now assuming it is monotonic (also use DateTime.UtcNow where applicable to avoid DST causing issues)
2024-07-10 01:51:28 -07:00
YoshiRulz e44810a725
Fix stacktraces for `RangeToExclusive` extension 2024-07-10 13:30:35 +10:00
YoshiRulz 00c103da0b
Remove unused import 2024-07-10 13:20:55 +10:00
CasualPokePlayer d8431d615e Avoid zealously copying the entire video buffer
this might be larger than bufferwidth*bufferheight, and thus possibly dramantically decrease screenshot/dumping performance
2024-07-08 16:29:51 -07:00
Morilli 57e3c47bcc Fix InputRoll not updating CellHeight and CellWidth on padding change 2024-07-08 19:21:35 +02:00
YoshiRulz 5fd840e145
Add Analyzer (currently disabled) for target-typed `new` with `throw` 2024-07-09 00:12:46 +10:00
YoshiRulz 53fcb93d0e
Nix expr: Regen NuGet lockfile
fixes c6101a190
2024-07-09 00:12:27 +10:00
YoshiRulz 0d2844d1fd
Improve docs on `Config.CorePickerUIData`
fixes 14cf4b348, 81e2b5b47, and bbb3b4cd7
2024-07-08 23:57:58 +10:00
Morilli bbb3b4cd7d Update comment on CorePickerUIData
also restore systemid default core restore logic that exists for some reason
2024-07-08 06:26:57 +02:00
Chris Siebert 45002e6870
Fix NesHawk tracelogs sometimes using 32-bit addrs (squashed PR #3964)
specifically, only for the few instructions in this diff, and only when the PC would over- or underflow as a result of the offset
2024-07-08 11:26:34 +10:00
Morilli 81e2b5b47b Make preferred core labels more verbose
they now display all system choices that they set instead of just the first
2024-07-08 03:03:34 +02:00
Morilli d74b130c22 Add preferred core picker choice for Satellaview
idk if this list is supposed to be sorted because it kinda isn't?
2024-07-08 03:00:47 +02:00
YoshiRulz 5d24d1a260
Replace `^= true` in Virtu
fixes 2a5d4b903
2024-07-08 10:46:24 +10:00
YoshiRulz 2a5d4b903c
Add Analyzer to disallow `^= true` 2024-07-08 10:39:06 +10:00
YoshiRulz c99d2212b2
Dedup `MainForm.CheckHotkey` with existing helpers / event handlers 2024-07-08 09:27:21 +10:00
YoshiRulz d515b1bdad
Document bare minimum of CLI flag parsing behaviour 2024-07-08 04:05:12 +10:00
YoshiRulz 5e5f5772c6
Enable Analyzer rules re: blank doc comments and fix noncompliance 2024-07-08 01:37:22 +10:00
YoshiRulz 9a82dfd05f
Enable SA1517 and fix noncompliance (except in Cores)
"Code should not contain blank lines at start of file"
2024-07-08 01:17:05 +10:00
YoshiRulz 39b69641a6
Enable SA1506 and fix noncompliance
"Element documentation header should be preceded by blank line"
also fixes typo in rule config from c93a0f9d1
2024-07-08 01:13:06 +10:00
YoshiRulz e61790d3dd
Actually commit the part where I disable the new Analyzer rule
fixes 2ffb897b1
-_-
2024-07-07 15:37:13 +10:00
YoshiRulz 2ffb897b11
Add analyzer (currently disabled) to enforce a newline policy for `=>` 2024-07-07 15:32:31 +10:00
YoshiRulz 479f151bbb
Fix code style warnings in satellite .NET projects 2024-07-07 12:54:11 +10:00
YoshiRulz c93a0f9d1b
Enable SA1514 and fix noncompliance (except in Cores)
"Element documentation header should be preceded by blank line"
2024-07-07 12:12:08 +10:00
feos ee9639a6fc video dumper: mention dependency for AVC AVI 2024-07-06 19:05:33 +03:00
Morilli 4c39a81228 Remove unnecessary duplicated actions in TAStudio
this should not change any behavior.
2024-07-06 17:39:52 +02:00
Morilli d161215754 Don't control reboot in TAStudio
There seems to be no good reason for why this would be necessary. TAStudio behaves just fine when the MainForm reboots itself.
2024-07-06 01:56:13 +02:00
Morilli 74970cc576 Remove unnecessary Thread.Sleep(0)
In this same loop we are already sleeping when necessary, so this Thread.Sleep(0) could only add unwanted delay
2024-07-05 19:21:42 +02:00
James Groom 91fdb23d18
Wrap readme badges to next line 2024-07-06 02:29:02 +10:00
YoshiRulz dbc6acc8fb
Nix expr: Document nix-shell for dev and Kate 2024-07-05 22:33:34 +10:00
YoshiRulz 43c6e04a9d
Add more GitHub Actions badges to readme 2024-07-05 21:56:52 +10:00
YoshiRulz 0146625f2e
Update detailed instructions for getting dev builds 2024-07-05 21:56:35 +10:00
YoshiRulz b04a6d3b4e
Fix formatting of readme badges 2024-07-05 21:44:59 +10:00
YoshiRulz 985c81cbe3
Revert readme screenshot replacement
The screenshots should reflect the *out-of-the-box-experience* i.e. the default core preferences.
Also, your font is ugly :P
2024-07-05 21:03:58 +10:00
CasualPokePlayer e48e6c69f2 respect GreenZoneSettings.txt even if greenzone is missing; fix ClientSettings.json loading (probably regressed in 42aa9d991dc3dde03234a15ddfdc2efdebf1c097?) 2024-07-04 21:34:09 -07:00
YoshiRulz a8b4e76c63
Explicitly disable some diagnostics (just as a note for later really) 2024-07-04 07:37:43 +10:00
YoshiRulz b523a8cb80
Enable MA0155, MA0156, and MA0157 re: `async` 2024-07-04 07:30:43 +10:00
YoshiRulz da7331632d
Enable MA0136 (protects against accidental CRLFs) 2024-07-04 07:23:24 +10:00
YoshiRulz 1c302e56db
Fix default arguments in `override`s which don't match the declaration
not enabling the relevant Analyzer rule MA0061 since that also triggers
when the override omits the default argument
2024-07-04 06:43:43 +10:00
YoshiRulz 1f7d75b7d2
Enable MA0044 and fix noncompliance
"Remove useless ToString call" (on a `string`)
2024-07-04 06:36:57 +10:00
YoshiRulz 9f0009b972
Use `HashCode.Combine` instead of `string.GetHashCode` + XOR
may write an Analyzer for this later
2024-07-04 06:31:44 +10:00
YoshiRulz 8546618c9a
Remove unused import
fixes da25438b1
2024-07-04 06:23:26 +10:00
YoshiRulz da25438b1f
Remove redundant `Stream.Read` result check in `LsmvImport`
fixes a7e1c8fd0
2024-07-04 06:18:54 +10:00
YoshiRulz b818f5325a
Enable MA0040 and silence remaining case
"Flow the cancellation token"
2024-07-04 05:48:35 +10:00
YoshiRulz a7e1c8fd09
Enable MA0060 and fix noncompliance (except in Cores)
"The value returned by Stream.Read/Stream.ReadAsync is not used"
2024-07-04 05:12:58 +10:00
YoshiRulz 6bb60c1b76
Enable MA0078
"Use 'Cast' instead of 'Select' to cast"
2024-07-03 23:12:01 +10:00
YoshiRulz a329d44e41
Enable MA0090 outside of Cores project
"Remove empty else/finally block"
2024-07-03 23:11:48 +10:00
YoshiRulz c4498685c2
Enable MA0091 and fix noncompliance
"Sender should be 'this' for instance events"
2024-07-03 23:10:57 +10:00
YoshiRulz 67edf3f047
Enable MA0070 and fix noncompliance
"Obsolete attributes should include explanations"
2024-07-03 23:10:19 +10:00
YoshiRulz 152b3ad6f5
Enable MA0057 and fix noncompliance
"Class name should end with 'Attribute'" (when subclassing `Attribute`)
2024-07-03 23:08:23 +10:00
YoshiRulz 3fb0afa05e
Use a global import for `MS.VisualStudio.TestTools.UnitTesting.*` 2024-07-03 22:51:48 +10:00
YoshiRulz ccb69b18a9
Use a global import for `System.*` 2024-07-03 22:51:48 +10:00
YoshiRulz c0b676647b
Enable MA0104 and silence remaining cases
"Do not create a type with a name from the BCL"
2024-07-03 22:51:47 +10:00
YoshiRulz 1be3531e7c
Rename `GBHawk.Timer` to `GBHawk.GBTimer` 2024-07-03 22:51:47 +10:00
YoshiRulz 91c48117a3
Rename `BizHawk.BizInvoke.ParameterInfo` to `InvokerParameterInfo` 2024-07-03 22:51:47 +10:00
YoshiRulz db2782ca1b
Enable MA0140 and fix noncompliance (except in Cores)
"Both if and else branch have identical code"
see 618951403
2024-07-03 22:51:47 +10:00
YoshiRulz c188feb50c
Move `SimpleGDIPDisplayManager` to `BizHawk.Client.Common` 2024-07-03 22:51:19 +10:00
YoshiRulz db8454a0ff
Fix testroms project compilation
fixes e8c957a7a
2024-07-03 22:49:01 +10:00
YoshiRulz c6101a190e
Update StyleCop and other Analyzers 2024-07-03 20:44:25 +10:00
YoshiRulz 504ba590b1
Switch to `string.Replace(char, char)` and `string.LastIndexOf(char)` 2024-07-03 20:44:21 +10:00
YoshiRulz 0067dd4b0a
Extract helper method `HawkFile.PathContainsPipe` 2024-07-03 20:38:46 +10:00
YoshiRulz 43d16473d8
Backport `string.Contains(char)` and `string.EndsWith(char)` 2024-07-03 20:35:35 +10:00
YoshiRulz ad8b4653d4
Simplify `MovieImporter.SingleSpaces` 2024-07-03 19:43:43 +10:00
YoshiRulz 759784a648
Fix bug in PCEHawk's tracelog 2024-07-03 19:39:38 +10:00
YoshiRulz 17a268934e
Remove outdated comment
fixes b842f3ed1
2024-07-03 18:47:16 +10:00
feos fd40b32277 uae: for testing writing to floppy 2024-07-02 21:38:42 +03:00
Morilli 04e9bf054e Fix core reboot flag on preference change
This now checks core names instead of system ids
2024-07-02 02:14:07 +02:00
YoshiRulz 2534c9288e
Downgrade Roslyn to 4.8.0 (to continue supporting earliest .NET 8 SDK)
partially reverts 4d1e852d2
2024-07-02 06:49:11 +10:00
YoshiRulz 57b5e77712
Add unit tests for first-party Analyzers 2024-07-02 05:59:31 +10:00
YoshiRulz 867b560a1d
Fix BHI3300 being raised twice for offending accessors 2024-07-02 05:59:31 +10:00
YoshiRulz 4d1e852d2d
Bump Roslyn and testing deps 2024-07-02 05:59:31 +10:00
YoshiRulz 8055cd1343
Nix expr: Set up Kate with OmniSharp 2024-07-02 05:59:31 +10:00
feos 97dc7108c3 uae: "support" rds and reduce magic 2024-06-30 15:48:08 +03:00
CasualPokePlayer 86943143f3 Fix SGM domains using stale arrays after state load 2024-06-28 22:37:56 -07:00
Morilli 384b08a7b7 Fix customization options dialog text overrun
Should now display all text on screen without cutting off.
2024-06-27 20:43:59 +02:00
Morilli 12981dc6df Add column name tooltip to column headers in TAStudio
- closes #3124
2024-06-27 02:45:22 +02:00
Morilli 2860a0189c Regenerate designer files after changes in last commit
restores previous default values after default changes in 7414aea850
2024-06-27 02:07:19 +02:00
Morilli 7414aea850 Fix InputRoll DefaultValue not matching initialized value 2024-06-27 01:54:37 +02:00
Morilli 722de0c765 Render before throttling
By putting the throttle step after the render step, the screen will be updated with the emulated frame's video output immediately instead of having to wait for the throttle sleep to complete.
In scenarios where running the core is relatively cheap (<< 1 / fps), this should noticably improve visual latency while playing.

For example, assuming a 60fps game (~16.7ms per frame), 5ms core update and 1ms render time, there will be a 10-11ms earlier render.
2024-06-26 23:32:51 +02:00
Morilli b3a1d5eb13 Increase input thread polling frequency
This does not have a significant impact on cpu usage in my testing (~+0.5% cpu on a 4-core system) and should improve input latency by 4ms on average.
2024-06-26 23:25:35 +02:00
Morilli bf82d95e0d Respect background input setting for axis values
- closes #3957.
Previously, axis values were always set, even when that setting was offf.
2024-06-26 23:19:56 +02:00
CasualPokePlayer 64ef1bfc17 Make NDS sys bus hack work better
fixes e6f8450685
2024-06-24 19:22:51 -07:00
YoshiRulz 36a1c37cfe
Clarify that devs on Linux should use the build scripts for r13y
fixes f86cbdd04
also reverted unrelated whitespace changes from said commit
2024-06-25 06:32:08 +10:00
CasualPokePlayer ce1df52af2 Fix ToSysdrawingBitmap(Bitmap) when bitmapbuffer does not have alpha
see https://tasvideos.org/Forum/Posts/530047
2024-06-24 12:27:51 -07:00
Morilli 31b8bedad7 Allow exporting bk2 from TAStudio without saved tasproj
- closes #3504.
This also makes the bk2 export always open a file picker dialog when the file to be written already exists instead of just asking for overwrite.
2024-06-24 18:19:34 +02:00
Morilli e6f8450685 Fix NDS System Bus name being invalid
- closes #3535
2024-06-24 13:49:11 +02:00
Morilli d7b92cbb72 Apply some free optimizations to TasMovieMarkerList 2024-06-24 12:05:45 +02:00
Morilli 1c3f7204bd Fix TAStudio branch load not cloning markers
-closes #3899
2024-06-24 11:59:38 +02:00
YoshiRulz f468d4ad01
Offer 1-click update/add cycle count when at end of movie 2024-06-24 03:42:09 +10:00
YoshiRulz 478d375fe5
Minor refactors to `MovieSession.HandlePlaybackEnd` 2024-06-24 00:29:18 +10:00
Morilli 8935a3a676 Don't attempt to load recent tas after restart if it's diferent from the current tas 2024-06-23 04:59:25 +02:00
Morilli 6cbf06d444 Enable the Movie menu even with no core loaded
- resolves #3570
2024-06-23 04:24:17 +02:00
Morilli 3841d88268 Regenerate MainForm.Designer.cs
this is not a functional change. I changed something, did ctrl+z and saved.
2024-06-23 02:53:49 +02:00
Morilli e1af631af6 Apply some sketchy nullable related changes
TasView_PointedCellChanged will now not short-circuit when the OldCell has null values (happens on MouseEnter mainly).
Also, null column is accepted as this allows dragging off-control without input being dropped.
Also, OldCell and NewCell are assumed to never be null (is true in the current logic).
2024-06-23 02:11:37 +02:00
Morilli 8278b30579 Do local selection check in TasView_PointedCellChanged 2024-06-23 02:09:00 +02:00
Morilli cfc76ee47a Fix subframe core check in tastudio bk2 exporting 2024-06-22 23:04:03 +02:00
Morilli f86cbdd04b Mention command-line builds better in readme and contributing.md 2024-06-22 22:52:21 +02:00
Morilli 7aa54889a1 Update important banner syntax in contributing.md 2024-06-22 22:51:03 +02:00
Morilli ad1f4f40b5 Fix cheat compare value saving
- closes #3567, closes #3523
2024-06-22 21:13:37 +02:00
Morilli 6364475b21 Fix potential crash in savestate loading
Also throw when attempting to create such an invalid savestate. No idea yet how that can happen but apparently it can.
2024-06-22 01:41:01 +02:00
Morilli aeb80e5810 Implement DragDrop for MultiDiskBundler
- closes #3950
2024-06-21 20:15:10 +02:00
Morilli 542e043261 Change ToRawInt to ToRawUInt
I firmly believe this has advantages. Don't ask me which.
Also move ReinterpretAsF32 to BizHawk.Common and use it more
2024-06-21 17:14:11 +02:00
YoshiRulz a329d076f0
Improve dev-facing error message in Git hook install script 2024-06-21 23:54:47 +10:00
YoshiRulz 62c1c11698
Have Git hook shim skip execution when checking out old commits 2024-06-21 22:56:12 +10:00
YoshiRulz afd496a185
Make Git hooks print message when PowerShell not found 2024-06-21 22:54:15 +10:00
YoshiRulz f3ae45b7bd
Fix Git hooks failing when `pwsh` and `dotnet` are missing from `PATH`
forgot `set -e` applies to subshells
2024-06-21 22:50:50 +10:00
CasualPokePlayer a11077ef4e Revert "Simplify MainSlnExecutable.props"
This reverts commit 1edddb2126.
2024-06-20 16:21:58 -07:00
CasualPokePlayer 1edddb2126 Simplify MainSlnExecutable.props
makes it play nicer with Rider WinForms designer and is much simpler than what was present before

also not sure where the "TargetName changing AssemblyName" behavior actually came from, testing on Rider/dotnet build/VS2022 all yield no changes to AssemblyName, so I assume this is fine
2024-06-20 15:16:48 -07:00
Moritz Bender 256218305b
Refactor IControlMainform handling in Mainform (#3935)
This allows any loaded tool to control any aspect of `IControlMainform` independently of others. Also improves rewinder handling when any tool `WantsToControlRewind`.
2024-06-20 19:16:11 +02:00
Moritz Bender 1a9e5e52f1
Refactor RamSearch to increase speed and improve functionality (#3954)
- merges `IMiniWatchDetailed` and `IMiniWatch` into one
- allow switching search modes without restarting the search
- general speed improvements due to less peeks when e.g. auto-search is toggled
- removes `PreviousType.LastSearch` due to its questionable use case
2024-06-20 18:25:15 +02:00
CasualPokePlayer 866fb86b60 Guard against mismatched GPUs with D3D11 GL interop
resolves #3939
2024-06-19 23:04:03 -07:00
YoshiRulz a9df8b40d7
Simplify About dialog audio playback 2024-06-20 04:17:01 +10:00
YoshiRulz 3490b544b4
Have About dialog copy full Git commit hash to clipboard
and use full hash in GitHub web app URI
2024-06-20 04:01:58 +10:00
YoshiRulz e5dc04dc37
Move some version processing from About dialog to `VersionInfo` 2024-06-20 03:59:39 +10:00
Morilli 90c79d2220 ensure tests don't fail 2024-06-18 21:33:56 +02:00
Morilli f6d5271c61 Add test file just to be sure 2024-06-18 21:14:35 +02:00
Morilli 8abe276829 Give slightly more infformation in LoadOrThrow 2024-06-18 20:53:46 +02:00
Morilli 89824bac1c Simplify ReinterpretAsF32 2024-06-18 20:53:20 +02:00
CasualPokePlayer 4ad33b3d06 Rebuild waterboxhost on Debian 10
Also fix the build scripts to explicitly use nightly (which waterboxhost does need currently)
2024-06-17 21:35:57 -07:00
CasualPokePlayer 6e5de797d2 Build rust projects with x86_64-win7-windows-msvc target 2024-06-17 19:41:52 -07:00
CasualPokePlayer f309dbc316 bounds check reading spu output 2024-06-16 23:32:14 -07:00
CasualPokePlayer 6f68c84d8f bump up max samples for melonDS 2024-06-16 23:30:53 -07:00
YoshiRulz ae74e37d2d
Fix AooRE due to malformed response from wbox core (seen in melonDS) 2024-06-17 15:59:44 +10:00
CasualPokePlayer d52e67b9e9 Don't use ToLower() 2024-06-16 21:28:50 -07:00
CasualPokePlayer a9c04524c7 get ICycleTiming from service provider
fixes 87209aa11b
2024-06-16 21:27:05 -07:00
CasualPokePlayer 87209aa11b Add way to unregister auto-registered services with BasicServiceProvider
allows for better handling with SubNESHawk and Libretro statable, maybe others
2024-06-16 21:18:24 -07:00
CasualPokePlayer 145e0431d0 Register IDriveLight for SubNesHawk
fixes another issue pointed out in #3949
2024-06-16 20:57:06 -07:00
CasualPokePlayer d2869686dc Hook up FDS and VS controls for SubNesHawk
fixes #3949
2024-06-16 20:55:34 -07:00
feos acca29a66e uae: allow loading HDFs even tho they give black screen now 2024-06-17 02:36:03 +03:00
Morilli 4cfaf74837 Simplify this function 2024-06-17 01:22:53 +02:00
Morilli bbd21eb775 Prefill values in the MultiDiskBundler from currently loaded xml
If the currently loaded "rom" is an xml, the MultiDiskBundler will now prefill its text boxes with the information from that xml instead of leaving everything empty.

- closes #3947
2024-06-17 01:11:52 +02:00
Morilli a364ec9a11 Allow creating MultiDiskBundler xmls with absolute paths 2024-06-17 01:08:49 +02:00
Morilli ec1c27596b Reduce unnecessary action duplications in MultiDiskBundler 2024-06-17 00:47:01 +02:00
Morilli 4f01a8f522 simplify readme commandline section 2024-06-16 21:15:30 +02:00
Morilli 85886bc2cd Don't freeze first selection in HexEditor when freezing was canceled
- fixes #3833

The entire "primary highlight" + n "secondary highlights" system seems overengineered, but I chose to just fix this in the simplest way possible.
2024-06-16 19:54:54 +02:00
Morilli b904041edd Fix clear all / clear current tab buttons in hotkey config
fixes 3a2b3e1d06.

I fixed the incorrect logic but forgot to reverse the parameter.
2024-06-16 16:31:37 +02:00
Morilli 3a2b3e1d06 Add button to hotkey config to restore defaults for the current tab
- closes #3900
2024-06-16 16:27:20 +02:00
Morilli 33d34dca78 Ignore Restart in RamSearch when form hasn't loaded yet
- closes #3724
2024-06-15 17:38:04 +02:00
Morilli 39d3c28bc3 Update waterboxhost dependencies
- closes #3279
2024-06-15 16:16:13 +02:00
feos 4222358ff9
update screenshots
m64p may suit casual gaming better but it's 13 years old and we now have ares64
2024-06-15 09:27:40 +03:00
feos c25d370643
promote github ci in README.md 2024-06-15 08:50:53 +03:00
feos 4d4333aa19 uae: mnemonics 2024-06-14 12:07:25 +03:00
feos d3c560b0df uae: eject when inserting
less repeated magic
2024-06-14 10:58:42 +03:00
CasualPokePlayer f54faf4e7b Expose SGM memory for RetroAchievements
see https://github.com/RetroAchievements/rcheevos/pull/350
2024-06-13 20:21:11 -07:00
CasualPokePlayer bc1fa455f3 Fix Hex Editor scroll bar; include older dpiAware for < Win 10 v1607 2024-06-13 19:10:14 -07:00
Morilli 2cf2eaf643 Make OSD scale float to more accurate match system scale 2024-06-14 03:11:39 +02:00
Morilli 6200a12d9c Revert back to system level dpi awareness for now 2024-06-14 03:03:04 +02:00
CasualPokePlayer 99ba03823a Add back dpiAware stuff in app.manifest
also make it so it uses the newest dpiAware possible
2024-06-13 17:04:33 -07:00
feos ab20bb8eb5 simplify 2024-06-14 01:29:15 +03:00
feos 0069c6825b analyzer
(disks will be supported later)
2024-06-14 00:39:06 +03:00
feos 3e1d569996 uae: release build 2024-06-14 00:06:09 +03:00
feos a01a7bb61e uae: swapper 2024-06-13 23:13:42 +03:00
feos 939762d9fb uae: cd swapping will happen later 2024-06-13 19:07:15 +03:00
feos 52fb840b0e uae: swapper wip 2024-06-13 17:33:55 +03:00
CasualPokePlayer 830f5ba205 Add Amiga support for RetroAchievements 2024-06-12 23:38:18 -07:00
feos 1a62b7874c uae: allow limiting drive count 2024-06-13 00:13:16 +03:00
feos c39da847c2 uae: support up to 4 floppies through xml bundler 2024-06-12 23:49:20 +03:00
Morilli 712c82b0df Fix running on mono harder 2024-06-12 18:36:40 +02:00
Morilli 70e118b93f Add github CI artifact download links to README
using nightly.link as github provides no builtin solution
2024-06-12 17:36:54 +02:00
Morilli 7aed24bda3 Rename CI artifacts to allow static access 2024-06-12 17:35:38 +02:00
feos 72f9e6c952 uae: move 2024-06-12 13:42:20 +03:00
feos 9c1db0a0cc uae: sound_stereo_separation 2024-06-12 13:38:59 +03:00
feos 4b17feaca0 uae: standalone core settings 2024-06-12 13:05:02 +03:00
feos b98045108f uae: refactor settings
enable cycle exact for cpu below 68030
add mouse speed
2024-06-12 12:57:51 +03:00
Morilli b8e44e67e7 fix CI waterbox cores build 2024-06-12 02:29:21 +02:00
Morilli eab2cdf606 add puae to CI + waterbox docs 2024-06-12 00:57:56 +02:00
YoshiRulz cbf1bc6abf
Simplify parsing of `--dump-frames` flag 2024-06-12 06:43:05 +10:00
YoshiRulz 044729cc57
Change `SocketServer.Port` to a u16 (y'know like ports are) 2024-06-12 06:40:24 +10:00
YoshiRulz b742998296 Remove `CoreSystem` enum 2024-06-11 19:43:32 +02:00
feos 472f881f24
PUAE core (#3941)
* puae wbx submodule
export symbols
load core
firmware and command line args to core
input
settings
2024-06-11 16:02:38 +03:00
YoshiRulz bfc03434fa
Comment-out unit test cases which assume too much about filesystem 2024-06-11 16:31:48 +10:00
YoshiRulz 155ea9ac79
Remove `IGameInfoApi` which was deprecated in 2.9 2024-06-11 16:27:39 +10:00
YoshiRulz 6c27e89bc7
Remove unused `BizHawkSystemIdToEnumConverter` instance
fixes 64a6700cc
2024-06-11 16:12:45 +10:00
YoshiRulz 875e26d3ca
Remove `CoreSystem` enum 2024-06-11 16:06:40 +10:00
YoshiRulz 64a6700cc7
Remove ext. tool attributes which were deprecated in 2.9 2024-06-11 16:06:27 +10:00
YoshiRulz 415f0cc98c
When core preference changes, set for all sysIDs in group
see 823ce4f78
2024-06-11 14:07:23 +10:00
CasualPokePlayer 96f5a4b100 Fix running on Mono 2024-06-10 11:32:32 -07:00
Morilli 2765da78ef make Bk2LogEntryGenerator.GenerateLogKey static
there is no reason for it to be an instance method
2024-06-10 15:49:05 +02:00
Morilli f679d8622f Add offscreen mnemonic for SNES system 2024-06-10 15:46:32 +02:00
Morilli f99a09283a add TODO comment to BkmImport 2024-06-10 15:44:27 +02:00
YoshiRulz 14cf4b3486
Re-use SSoT when initialising `Config.PreferredCores`
could have been a static readonly field but it should be called at most
once per program lifecycle
2024-06-10 21:03:26 +10:00
YoshiRulz a8b0e74185
Maybe fix PowerShell script not running in CI
fixes c5f6dcd4e, reverts 68c160b96
2024-06-10 20:56:07 +10:00
CasualPokePlayer 823ce4f783 Add missing default entries to PreferredCores
there's some logic *somewhere* in the core to compensate for missing entries by populating the first item on the list with the first sysid applied to, but that ends up missing other sysids that item applies to, not sure where that code is, probably should be fixed?
2024-06-09 19:58:42 -07:00
Morilli 42aa9d991d Reduce hacks and duplication in TAStudio movie loading
Previously, there was no way to load a movie without saving it to a file first. This has been changed, so lots of saves and loads are no longer necessary.
This also partially gets rid of the default.tasproj, although the name is still used as a placeholder for now.
2024-06-10 04:02:38 +02:00
Morilli 0165b5f286 Allow editing subtitles and comments from PlayMovie
also resolve a TODO in regards to TasMovie disposing
2024-06-10 03:48:32 +02:00
CasualPokePlayer efc6674215 delete GenDbgHlp.cs
unused ancient code from pre-wbx days it seems?
2024-06-09 18:06:53 -07:00
CasualPokePlayer dc391721c8 Add SMS Pause button for GPGX; do various cleanups/misc fixes
resolves #3942
2024-06-09 17:51:54 -07:00
CasualPokePlayer fb76975bd2 Fix bugs in LoadM3U 2024-06-09 11:58:13 -07:00
Morilli c94c3a6fb1 Don't generate `LogKey:` in GenerateLogKey
this would cause `LogKey:LogKey:...` to get written when setting the value with the result of a GenerateLogKey call.
Luckily this was not an issue for us because the reading code indescriminately replaces all occurances of `LogKey` with nothing.
2024-06-09 20:07:40 +02:00
Morilli 0a95d86094 Optimize LsmvImport 2024-06-09 20:00:56 +02:00
YoshiRulz 4e659d810b
Use Git hook name without file extension for messages 2024-06-09 22:29:54 +10:00
YoshiRulz 65219d03e6
Fix Git hook installation flagging matching script as mismatch
fixes 124a1ea50
2024-06-09 22:29:54 +10:00
YoshiRulz 68c160b96b
Skip trying to install Git hooks in CI 2024-06-09 22:29:46 +10:00
YoshiRulz 2b05071493
Revert "Add some prints to Git hook installation script for GitHub Actions"
This reverts commit 8e6351e88c.
2024-06-09 22:20:58 +10:00
YoshiRulz 8e6351e88c
Add some prints to Git hook installation script for GitHub Actions 2024-06-09 22:20:43 +10:00
YoshiRulz e19c8fe5f5
Fix Git hook detecting global PowerShell but trying to use dotnet tool
fixes c5f6dcd4e
2024-06-09 21:42:16 +10:00
YoshiRulz 9a737444c4
Nix expr: Mute `shellHook` when running non-interactively 2024-06-09 16:24:08 +10:00
YoshiRulz c5f6dcd4e8
Make PowerShell strictly optional for Git hooks
...and remove auto-`dotnet tool restore`. If you don't have PowerShell
on `$PATH`/`%PATH%`, Git hooks will simply not be ran.
I still intend to migrate the rest of `/Dist` to PowerShell. Undecided
on unmanaged cores and wbox.
2024-06-09 12:51:32 +10:00
YoshiRulz 1d46919f6a
Enable custom scripts to run on Git hooks 2024-06-09 12:48:11 +10:00
YoshiRulz 124a1ea509
Simplify Git hook installation 2024-06-09 12:48:06 +10:00
YoshiRulz e424e716f8
Drop Batch impl. of Git hook (shim) as it's apparently not used
see ffa5bb9b7
this should now work in Git BASH as well
and it wasn't all for nothing, at least now I have reference for a
polyglot if the need arises
2024-06-09 12:16:38 +10:00
Morilli f0bc8fbd2e Discard apihawksurface in TAStudio LoadState when frame advancing after
This fixes an issue where lua scripts could write to the screen twice when seeking to a frame in TAStudio as the screen was not cleared between the load and the following frame advance.

This fixes / expands 1a9176e12f.
2024-06-08 14:42:38 +02:00
CasualPokePlayer bcc0d83bf0 Fix OpenGL shared contexts not actually being shared 2024-06-07 23:41:13 -07:00
CasualPokePlayer 5ad4e457d3 Make sure to scale up message coordinates too 2024-06-07 23:08:14 -07:00
CasualPokePlayer e8c957a7a8 Scale OSD text according to display scale
fixes #2605
2024-06-07 23:00:07 -07:00
YoshiRulz ffa5bb9b74
Use a polyglot BASH/Batch script as a shim for the Git commit hook 2024-06-08 14:28:38 +10:00
YoshiRulz 4a54a99dbb
Fix typo
fixes 028861f01, reverts 1f41f5ff2
deja vu
2024-06-08 13:02:37 +10:00
YoshiRulz 028861f010
Change label of TAStudio's pause button again
reverts a123776fe and 1f41f5ff2
2024-06-08 12:36:54 +10:00
CasualPokePlayer c825603d23 Update ported core version listings 2024-06-07 18:54:41 -07:00
CasualPokePlayer 0a3ab1a055 Fix read/write callbacks possibly being called recursively
Also fix possible unsafe sys bus reads
2024-06-07 14:35:45 -07:00
CasualPokePlayer 448e9fb9ec fix melonDS fw generation code 2024-06-07 13:48:19 -07:00
Morilli b487782eec Update outdated app config values 2024-06-07 17:12:35 +02:00
YoshiRulz 5d80e2657b
Nix expr: Regen NuGet lockfile 2024-06-07 22:32:03 +10:00
YoshiRulz cbf0728d4e
Scale back autorestore of dotnet tools to only be in `BizHawk.Common`
fixes f58b4640c
and to be fair this was the one place actually using a tool during the
build process, so it makes sense to keep them together I guess
2024-06-07 22:11:26 +10:00
YoshiRulz f58b4640c5
Have local dotnet tools restored with NuGet packages
reverts 8f7e61339
2024-06-07 22:03:16 +10:00
YoshiRulz 84e337b05c
Fix `install_git_hooks.ps1` failing when target file doesn't exist
fixes 5c3171171
of course I covered every case but the obvious one
2024-06-07 15:54:39 +10:00
YoshiRulz 8f7e613398
Ensure local dotnet tools are restored on Linux and for CI
Windows users can do it manually if VS doesn't, at least until #3013
2024-06-07 15:46:46 +10:00
YoshiRulz 5c31711710
Automatically install client-side Git hooks
This is how npm-style RCE hacks happen by the way. You should all be
vetting `dotnet-tools.json` and all MSBuild and PowerShell scripts.
2024-06-07 15:39:44 +10:00
YoshiRulz c6270241f5
Ensure PowerShell is available to everyone working on EmuHawk
see #3013
`dotnet tool restore` to install then `dotnet tool run pwsh` or simply
`dotnet pwsh` to launch
2024-06-07 15:39:44 +10:00
CasualPokePlayer 1a318941ff Fix 3DS tilting
resolves #3931
2024-06-06 21:41:56 -07:00
CasualPokePlayer be4f6c4148 More fixes for TIC80 mouse input 2024-06-06 17:25:09 -07:00
CasualPokePlayer 11e68a2271 Add method to query relative mouse state for TIC80 2024-06-06 17:24:26 -07:00
CasualPokePlayer 8fb2ba6afa Fix TIC80 mouse inputs
resolves #3938
2024-06-06 15:18:45 -07:00
CasualPokePlayer a7c8156710 fix build 2024-06-06 13:51:19 -07:00
CasualPokePlayer 43a621a695 Handle nand/firmware a bit bitter; add sound interpolation options; add hybrid screen option 2024-06-06 13:50:29 -07:00
Morilli 5fc99f8a7d . 2024-06-06 16:25:15 +02:00
Morilli 890111703f Simplify NESHawk InitialWRamStatePattern 2024-06-06 14:39:51 +02:00
Morilli 3b3fa2e96d Simply TAStudio ClientSettings loading 2024-06-06 14:00:46 +02:00
Morilli 1da58888ff exterminate File.OpenWrite usage 2024-06-06 13:56:42 +02:00
Morilli 43d449be8b Lower verbosity level of analyzer builds
the next lower option is minimal, which is already default
2024-06-06 13:28:20 +02:00
Morilli 7499fafe65 CI: (hopefully) fix mame build 2024-06-06 13:17:57 +02:00
CasualPokePlayer 9ff8f6b63a remove some unused imports 2024-06-06 00:45:12 -07:00
CasualPokePlayer 7ec0a4c4af seal NDS
shuts up a warning
2024-06-06 00:43:49 -07:00
CasualPokePlayer c21172ae03 Fix DownscaleFramebuffer not being generated (happened to work fine in melonDS upstream, but not BizHawk) 2024-06-06 00:39:31 -07:00
CasualPokePlayer ea4e96b08c fix perms on these files 2024-06-05 23:37:53 -07:00
CasualPokePlayer b7265e2f39 Update melonDS 2024-06-05 23:37:53 -07:00
YoshiRulz 75502e7ffb
Unimplement `IEnumerable` on `RecentFiles` and `PathEntryCollection` 2024-06-06 14:36:34 +10:00
YoshiRulz fab1fae66a
Use `nameof` for `[CallerArgumentExpression]` 2024-06-06 14:11:24 +10:00
YoshiRulz e468d6ee76
Fix target-gated `#if`s to cover every applicable TFM 2024-06-06 14:07:19 +10:00
YoshiRulz 7691f2f724
Fix possible mismatch between `$(IsTargetingNetFramework)` and TFM
just in case
2024-06-06 13:16:12 +10:00
YoshiRulz 4e6559af39
Populate the default window scales for a few sysIDs 2024-06-06 13:08:02 +10:00
YoshiRulz df05537ca6
Replace `ZoomFactors` with a plain `Dictionary` 2024-06-06 13:02:11 +10:00
Morilli 7bb7cdeaee Don't double-load subtitles from movies
this duplicated all subtitles on every load... ???
- fixes bc16a2cdaa
2024-06-05 22:40:38 +02:00
Morilli 6ffe5a0d5d Fix the Subtitles button in PlayMovie not showing the form
it was immediately disposed woops
2024-06-05 19:28:44 +02:00
Morilli f90cd201bc Use `UseWindowsForms` instead of Reference
it's the modern way and there's some implications of not having it set for VS for example
2024-06-05 19:25:21 +02:00
YoshiRulz 15be0d625c
Nix expr: Set `mainProgram` for installables 2024-06-05 15:15:58 +10:00
kalimag 2c6129fb68
Fix possible TAStudio NRE (squashed PR #3936)
* Skip `AskSaveChanges` in disposed `TAStudio`, fix #3499

* Revert "Skip `AskSaveChanges` in disposed `TAStudio`, fix #3499"

This reverts commit eabe939547.

* Stop calling `AskSaveChanges()` on inactive tools, fix #3499
2024-06-05 10:00:55 +10:00
hegyak 5da5697f8f
Better Firmware Names (#3766)
* Better Firmware Names

Renaming Firmware Files based on System Name as BizHawk uses or at least renamed to be related to what it's for.

Unify Firmware names for Vectrex, Lynx, MSX resolve Name Collision, Odyssey 2 G7400, Gameboy, GameBoy Color.

---------

Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
2024-06-04 13:37:38 +02:00
Morilli dbb106e407 fix O2 platform frame rates rounding
fixes 1cf5af83dd
2024-06-03 18:42:10 +02:00
kalimag 1b961f248d
Sanitize text pasted into hex text boxes (squashed PR #3684)
* Sanitize text pasted into hex text boxes

Trim `0x` and `$` prefixes and whitespace pasted into `HexTextBox` and `WatchValueBox`. Prevent pasting non-hex text.

Add `ClipboardEventTextBox` control with `OnPaste` event

* Fall back to trapping paste keyboard shortcuts on Linux

* Adjust code style, seal `PasteEventArgs`

* Use slightly more sophisticated shared method for sanitizing hex strings

* Use moderately more sophisticated method for sanitizing hex strings

* More `string.Empty`

* Add some comments

* Code style

* Remove superfluous format check
2024-06-03 18:08:50 +10:00
YoshiRulz ec8ba06dbe
Attempt to fix NRE when importing `.bk2` into TAStudio 2024-06-03 09:32:49 +10:00
YoshiRulz 6cb07dd53e
Nix expr: Override `<DebugType/>`
not functional, just so I don't forget
2024-06-03 09:32:49 +10:00
Morilli 5dba95bb44 CI: fix waterbox path condition 2024-06-02 22:20:28 +02:00
CasualPokePlayer 7164763e2f Build melonDS with fwrapv, fixes weird rendering issues 2024-06-02 12:59:18 -07:00
YoshiRulz f5af95c432
Nix expr: Harden checksums 2024-06-02 11:48:32 +10:00
CasualPokePlayer 43a38a05ca Workaround driver bugs(?) with D3D11 GL interop 2024-06-01 18:30:17 -07:00
CasualPokePlayer 1d5a9e521d Fix some more off by ones with imgui 2D renderer
thanks GDI+
2024-06-01 17:09:12 -07:00
YoshiRulz 1f41f5ff20
Fix typo
fixes a123776fe
2024-06-02 08:54:43 +10:00
YoshiRulz a123776fe6
Change label of TAStudio's pause button 2024-06-02 08:49:57 +10:00
Morilli 7cca0ea75f Add devbuild artifact upload to github CI 2024-06-02 00:49:28 +02:00
CasualPokePlayer c1d5d17771 Fix off by ones for drawPolygon 2024-06-01 15:24:43 -07:00
CasualPokePlayer f13f69b1ed Try fixing filling arbitrary polygons 2024-06-01 15:16:59 -07:00
YoshiRulz bc9f4afe76
Add PSX on PSP BIOS 2024-06-02 08:00:00 +10:00
YoshiRulz e18a3494c3
Change `Acceptable` PSX BIOS options to `Ideal` 2024-06-02 07:55:26 +10:00
YoshiRulz 1ebe02e650
Nix expr: Include trailing slash on `BIZHAWK_HOME` 2024-06-02 07:46:30 +10:00
CasualPokePlayer 1a9176e12f Fix "double rendering" in Lua/ApiHawk gui stuff 2024-06-01 14:01:01 -07:00
CasualPokePlayer dcfe55360a Prevent textures being created over the maximum texture dimension, fixes #3341 2024-06-01 13:14:19 -07:00
YoshiRulz d91242df53
Fix running unit tests in GitHub Actions 2024-06-02 05:43:11 +10:00
YoshiRulz 260c7b2d4e
Use helper scripts for GitHub Actions 2024-06-02 05:42:43 +10:00
Morilli 72c1ebc28b Add github CI 2024-06-01 18:38:09 +02:00
CasualPokePlayer 07ee33b777 Fix build 2024-06-01 08:21:30 -07:00
YoshiRulz a81adfff41
Bump Magick.NET 2024-06-01 18:04:16 +10:00
YoshiRulz 64db1febbb
Fix NRE when flushing SaveRAM in GambatteLink for some roms
fixes d788e603f
not clear on the reproduction steps, but it will of course involve a rom
which triggers the "no SaveRAM, return null" in Gambatte
2024-06-01 17:30:00 +10:00
CasualPokePlayer a03050dcc5 Fix tab/spacing 2024-05-31 20:52:52 -07:00
CasualPokePlayer 5b6c94b996 Also reset profile mask for mupen
forgot to add this change to previous commit, previous commit build has this change too
2024-05-31 20:51:44 -07:00
CasualPokePlayer 0488bbd33a Fix mupen grabbing an OpenGL context based on whatever current version/flag attributes were present
This is global state that gets mucked by us since we also use SDL2 to handle OpenGL context management, Rice/Glide/Glidemk2 don't like core contexts due to them using old deprecated functionality
2024-05-31 20:50:48 -07:00
YoshiRulz e2ece89fd5
Nix expr: Bump pinned Nixpkgs to 24.05 2024-06-01 11:27:18 +10:00
CasualPokePlayer d2fe532f6d Fix mupen64plus breakage after security updates 2024-05-31 17:29:17 -07:00
YoshiRulz f16e2107bf
Nix expr: Run extra Analyzers during checkPhase
it just works now idk
2024-06-01 10:12:09 +10:00
YoshiRulz a18fbb8742
Nix expr: Fix unit tests not working since they were changed to net48 2024-06-01 10:07:03 +10:00
YoshiRulz d2ea93d5e2
Mark checksum and Lua test classes as single-threaded 2024-06-01 09:45:47 +10:00
Morilli 657531a328 Fix ConvertFilenameToTasMovie test 2024-05-31 19:08:40 +02:00
YoshiRulz 6bc771bf57
Use simpler implementations for "Different by" in `RamSearchEngine` 2024-05-31 13:21:13 +10:00
YoshiRulz 72a7df1227
Be consistent with `SignExtendAsNeeded` in `CompareSpecificValue`
not sure why it's applied to the pivot value here but not in
`CompareDifference`, frankly I'm not sure what it actually does
2024-05-31 13:21:13 +10:00
YoshiRulz 46584cee10
Fix remaining float comparison bugs in `RamSearchEngine` 2024-05-31 13:21:13 +10:00
YoshiRulz b279a6bdb0
Move some conditionals outside blocks in `RamSearchEngine` 2024-05-31 13:21:13 +10:00
YoshiRulz 625a7438fd
Use JIT-friendly array iteration in `RamSearchEngine.Start` 2024-05-31 13:21:13 +10:00
YoshiRulz 7d5574910c
Unindent many blocks in `RamSearchEngine` 2024-05-31 13:21:13 +10:00
CasualPokePlayer 515050d76a Remove unused import 2024-05-30 19:00:54 -07:00
CasualPokePlayer a84f5c8b17 Bump up FFmpeg writer to the first AV writer slot
fixes #3915
2024-05-30 19:00:18 -07:00
YoshiRulz 089b7ed6c5
Fix RAM Search using numeric conversion for float in comparisons
(instead of a reinterpret-cast, which its counterpart in the UI was
correctly using)
2024-05-31 11:51:41 +10:00
YoshiRulz e29aa30ebd
Hide IDE0305 (offers to replace `expr.ToArray()` with `[..expr]`) 2024-05-31 11:35:31 +10:00
YoshiRulz 38042293f6
Explicitly add new BHI1110 rule to config
fixes b5ff65f2c
2024-05-31 09:21:36 +10:00
CasualPokePlayer 40e7297272 Add PSX DCache to RetroAchievements memory map
see https://github.com/RetroAchievements/rcheevos/issues/345 and https://github.com/RetroAchievements/rcheevos/pull/346
2024-05-30 09:39:26 -07:00
Morilli 873fd305ae remove unused 7z.dll 2024-05-30 08:51:12 +02:00
YoshiRulz b5ff65f2cb
Add Analyzer to enforce spaces in `[]` 2024-05-30 15:51:20 +10:00
CasualPokePlayer e7c093eac6 Fix various possible OOB read/writes in mupen64plus
fixes #3929
2024-05-29 22:38:53 -07:00
CasualPokePlayer 7e6e9705ae Update libstdc++ dll and friends, also fix a crash in gambatte due to OOB string accesses 2024-05-29 18:59:11 -07:00
YoshiRulz db75fda3b8
Nix expr: Regen NuGet lockfile
not that you can build atm without overriding `doCheck`
2024-05-30 10:56:02 +10:00
YoshiRulz a1256782fc
Bump `<LangVersion/>` for satellite .NET projects 2024-05-30 10:44:55 +10:00
CasualPokePlayer 7a959ffb55 Fix BizHawk.Tests.Testroms.GB build 2024-05-29 16:34:02 -07:00
YoshiRulz 01bea49ee0
Misc. refactors, reverting some code style "fixes" 2024-05-30 09:22:18 +10:00
YoshiRulz ea15126fe1
Minor refactors to first-party Analyzers and Source Generators 2024-05-30 09:22:18 +10:00
YoshiRulz b8c600783a
Apply `<GenerateDocumentationFile/>` to satellite .NET projects 2024-05-30 09:22:17 +10:00
YoshiRulz 431b4f67e8
Fix most remaining warnings in satellite .NET projects 2024-05-30 09:22:11 +10:00
CasualPokePlayer e46267494d Fix BizHawk.Bizware.Test and related 2024-05-29 16:02:49 -07:00
CasualPokePlayer 73395c9e49 Rebuild quicknes for Linux 2024-05-29 12:45:07 -07:00
CasualPokePlayer db88753772 Fix randomish crash with quicknes 2024-05-29 11:56:39 -07:00
Morilli 1da8cb9bc1 fix ExternalToolManager Fail logic for windows 2024-05-29 18:20:39 +02:00
Morilli 48479145af revert this change in Virtu to fix the build 2024-05-29 10:35:44 +02:00
Sergio Martin 82c984b2d6
Adding CI for building the waterbox and as many emulator cores as possible (#3903)
* Adding CI for building all waterbox cores

---------

Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
2024-05-29 09:55:50 +02:00
Morilli 7a789fb853 Fix some external project analyzer warnings 2024-05-29 09:41:53 +02:00
James Groom bd786a0e95
Downgrade `<LangVersion/>` for external .NET projects
fixes 62b8ec457
2024-05-29 10:36:38 +10:00
YoshiRulz 9eb9ffa5df Enable nullability for `Cell` and co. and clean up 2024-05-29 06:24:52 +10:00
Morilli f83602c1c9 simplify and optimize some variables in DisplayManager 2024-05-28 15:17:32 +02:00
Morilli 62b8ec4578 Bump LangVersion to 12
- fix IDE0100
- fix IDE0230
- a couple of usages of the collection expression
2024-05-28 15:13:14 +02:00
CasualPokePlayer ea042d1a70 Update version info for ares
(also despite what previous commits said it was in fact updated to v138 i put in v134 by mistake urk)
2024-05-27 22:09:24 -07:00
CasualPokePlayer 2b986c17d4 remove some unneeded files
thought i removed these in previous commits, apparently not
2024-05-27 22:04:44 -07:00
CasualPokePlayer 0f603840e3 fix weird permissions from last commit 2024-05-27 22:00:48 -07:00
CasualPokePlayer 72f1495b1e Merge ares v134 2024-05-27 21:52:07 -07:00
CasualPokePlayer 70c1d90eea Document newer gui.*string/text behavior. 2024-05-27 14:55:32 -07:00
CasualPokePlayer 0c6df6e79b Don't clamp touch/screen coord transformations 2024-05-27 13:33:46 -07:00
feos c65a11eb2b fix #3917
[genesisplusgx] "VDP mode" option (for eliminate region lockups / megakey behavior) #3917
2024-05-27 19:55:45 +03:00
Morilli 0f20bff766 Update and reword waterbox readme 2024-05-27 09:25:19 +02:00
Morilli f530773eb8 actually remove submodule
...
2024-05-27 09:07:54 +02:00
Morilli c739a04aa1 remove llvm-project submodule
This does not remove the llvm dependency for waterbox, just the submodule. The script pulling and checking out llvm kind of conflicts with the submodule, and having it be a submodule is not necessary here anyways.
2024-05-27 06:39:21 +02:00
CasualPokePlayer ab5d4750da Add backwards compat hack for DrawRectangle; make sure images displayed have normal blending (GDI+ apparently did this?) 2024-05-25 18:17:04 -07:00
CasualPokePlayer cb901b3aff simplify drawRectangle 2024-05-25 17:42:27 -07:00
CasualPokePlayer efee5f0cb3 properly dispose everything when disposing the imgui resource cache 2024-05-25 16:25:44 -07:00
CasualPokePlayer 3716a65638 Fix unwanted bitmap disposing 2024-05-25 16:24:40 -07:00
CasualPokePlayer d6fda19d2e Fix texture caching in imgui 2d renderer 2024-05-25 16:14:48 -07:00
CasualPokePlayer 32c0bc0c73 fix drawLine off by ones correctly (again) 2024-05-25 14:15:15 -07:00
CasualPokePlayer 766da10a1d Fix another off by one for drawLine 2024-05-25 13:36:15 -07:00
CasualPokePlayer 51dac42195 fix drawLine properly 2024-05-25 13:16:52 -07:00
CasualPokePlayer 99cf91e6ca Fix off by one in drawPixel 2024-05-25 13:08:46 -07:00
CasualPokePlayer 8b9473957f Fix off by one for drawLine 2024-05-25 13:04:56 -07:00
CasualPokePlayer c85ab6cbe6 Try to fix double drawing in rectangle corners 2024-05-25 12:51:49 -07:00
Morilli cda8dfaacc simplify and update Package.sh 2024-05-25 21:18:34 +02:00
CasualPokePlayer 75064675f1 Mostly correct blending for 2D renderers 2024-05-25 12:01:52 -07:00
CasualPokePlayer 9bc3e182f9 Fix DrawBox calculation 2024-05-24 22:52:58 -07:00
CasualPokePlayer 0551295157 Fix glDrawElementsBaseVertex call
indexStart should indicate the starting index element, but glDrawElementsBaseVertex expects the byte offset (i.e. 2 * indexStart)
2024-05-24 21:20:22 -07:00
CasualPokePlayer 8b969dfeab Correct uSamplerEnable uniform in ImGui shader; make sure to pop the unused imgui command before rendering
Makes gui.drawString somewhat work under OpenGL, but there's still something wrong when it's combined with other draw functions
2024-05-24 20:45:40 -07:00
CasualPokePlayer e788b3926b fix cimgui .so name 2024-05-24 13:49:28 -07:00
CasualPokePlayer 476ac94d80 Add GPU acceleration for most of ApiHawk's GuiApi (gui.* lua APIs), refactor ApiHawk surfaces 2024-05-24 13:26:58 -07:00
James Groom e1fe18be36
Nix expr: Regen NuGet lockfile 2024-05-24 05:29:35 +10:00
Sergio Martin cadd5c7f2e Fixing a wrong variable name that caused a crash in GPGX's load state 2024-05-24 04:13:11 +10:00
Morilli 3bab84445c gpgx: implement paddle controller 2024-05-23 11:51:23 +02:00
Morilli fe645025eb gpgx: fix INPUT_SYSTEM enum 2024-05-23 11:50:42 +02:00
Morilli 955e35b61f simplify away FileInfo calls 2024-05-23 06:04:37 +02:00
James Groom 5e8cc23f75
Fix ext. tool dependencies not loading in Release config
and improve logging
2024-05-23 02:45:23 +10:00
CasualPokePlayer 8eb3b62724 Choose the DXGI swapchain model better 2024-05-20 22:30:12 -07:00
CasualPokePlayer ddf9a70bcf Do minor cleanups with D3D11 handling 2024-05-20 22:10:49 -07:00
CasualPokePlayer 2dd9284b76 Get DXGIFactory*s from the created D3D11 device instead of creating our own
Creating our own usually ends up working, but for some setups it does not (seen in Win7 VirtualBox setup)
2024-05-20 21:52:55 -07:00
CasualPokePlayer ef05b6ec2f Add OpenGL <-> D3D11 interop handling
Lets D3D11 display method take a wrapping GL tex id fast path, avoiding a CPU readback for GL cores. Requires the WGL_NV_DX_interop2 extension (which is probably somewhat well supported by GPUs?)
2024-05-20 14:54:04 -07:00
Morilli d9ac6fc455 attempt to fix fceux movie import hash check 2024-05-20 19:47:46 +02:00
CasualPokePlayer f04c85f249 Create IPipeline and classes for it, consolidate pipeline resources/creation of those resoures into pipeline construction, remove old OpenGL legacy binding 2024-05-19 20:01:10 -07:00
James Groom f35f5f7aad
Point readme readers at new Discord channel 2024-05-20 03:48:22 +10:00
feos 7b647240e8
fix #3923 (#3924)
Use fastest compression when compiling Waterbox cores in debug config
2024-05-19 15:44:43 +03:00
CasualPokePlayer 8aac335d9b Change RenderTarget to IRenderTarget, implement classes accordingly
Changes GDI+ handling quite a bit, hopefully didn't break anything
2024-05-18 01:26:37 -07:00
CasualPokePlayer 25f62c6620 Beginnings of IGL split-up, make Texture2d into an interface and make classes for each IGL implementation for this interface, do cleanups from this 2024-05-16 22:25:39 -07:00
CasualPokePlayer ea068cf70d Optimize GDI+ control rendering, maybe fix GDI+ rendering on Linux? 2024-05-16 16:41:35 -07:00
James Groom 84fd85c749
Fix `.tasproj` autoload loading mismatched savestates 2024-05-17 09:16:41 +10:00
James Groom a63efffa14
Fold some long lines 2024-05-17 09:07:45 +10:00
James Groom 3c06face00
Prevent infinite loop in `BinaryReader.ReadByteBuffer` extension 2024-05-17 09:06:48 +10:00
James Groom 51b64f63f1
Fix off-by-one in edge cases for `tastudio.ongreenzoneinvalidated`
fixes ad07eb857
also updated the docs to match the actual behaviour
2024-05-17 08:36:09 +10:00
CasualPokePlayer 1260ecd01a Avoid hard depending on Direct3D 11.1, slighly optimize presentation 2024-05-16 14:50:56 -07:00
CasualPokePlayer bfec776bd7 remove D3D9-syntax from default d3d11 vertex/pixel shader, split the shader into two (more efficient for constant buffer usage) 2024-05-15 18:40:01 -07:00
CasualPokePlayer f78fcc82e3 Giant reorg, move most of Bizware.BizwareGL to Bizware.Graphics, remove some unused code, de-duplicate more code
TODO: Change a lot of these IGL resources into interfaces (instead of doing IGL specific things for that instance in the opaque member)
2024-05-15 18:09:08 -07:00
James Groom d787c0fefc
Allow `InputRoll.QueryRowBkColor` to be used without `QueryItemBkColor` 2024-05-16 03:31:34 +10:00
James Groom fdc45cd61a
Reorder debug utilities menu 2024-05-15 23:41:06 +10:00
CasualPokePlayer 92633e7743 Add IGL extensions to replace a ton of overloaded calls, remove BeginScene/EndScene (mostly just D3D9 specific, not relevant nowadays; GDI+ usage seemed to not be needed in reality), misc cleanup 2024-05-14 19:10:33 -07:00
James Groom a2bcbbdfb8
Set a couple extra test runner parameters for main project 2024-05-15 11:10:11 +10:00
YoshiRulz 9fb98ef5ef Retarget testroms projects to `net48` to match EmuHawk 2024-05-15 10:47:38 +10:00
YoshiRulz 4f3e4e3642 Check in a companion app to help with the testrom updates 2024-05-15 10:47:38 +10:00
YoshiRulz 7e974c3475 Update lists of known testrom failures 2024-05-15 10:47:38 +10:00
YoshiRulz 66e6aa7eb8 Tell GitLab CI to continue running tests in .NET 8
fixes afc181c40
sort of defeats the purpose, but hey it was working before, and
compilation errors will still be caught automatically
2024-05-15 10:47:38 +10:00
Morilli 3dafbe0f42 fix gpgx per-line sprite limit setting not working
fixes #3918
2024-05-15 02:42:44 +02:00
CasualPokePlayer 60d90a32ad Remove ability to specify texture wrap mode (never was ever used besides the default clamping); merge specifying min/mag filters into one function (with only linear/nearest neighbor options) 2024-05-14 17:28:49 -07:00
CasualPokePlayer b38344077f Cleanup some IGL_OpenGL variables, slightly optimize Draw() calls 2024-05-14 17:00:45 -07:00
CasualPokePlayer 3264317eb9 Linux SDL2 rebuild 2024-05-14 13:36:00 -07:00
CasualPokePlayer 00befd0d09 Update and rebuild SDL2 2024-05-14 13:32:07 -07:00
Morilli 04535c747a Bump libusb to 1.0.27
fixes a potentially long initialization time when some faulty devices exist
2024-05-14 22:20:27 +02:00
James Groom afc181c40b
Retarget main test project to `net48` to match EmuHawk
I swear the test runner didn't use to pick up Mono, otherwise I wouldn't have gone for .NET Core, but clearly it does now
2024-05-14 23:02:08 +10:00
James Groom 4dadbbe42e
Mark this Windows-only test method as such
apparently this works anyway under .NET Core on Linux
2024-05-14 22:51:51 +10:00
CasualPokePlayer f2f23b088d minor cleanups/fixes from last commit 2024-05-14 01:45:57 -07:00
CasualPokePlayer e293e02369 Replace D3D9 IGL impl with a D3D11 IGL impl 2024-05-14 01:37:59 -07:00
James Groom 0122dec099
Warn at runtime if a lowercase/invalid hash is added to FWDB (resolves #3916)
left the existing unit test untouched
2024-05-12 07:41:14 +10:00
James Groom ae1692f2e1
Fix passing value instead of name to AooRE
and leave a note for myself re: patches
2024-05-12 07:24:04 +10:00
CasualPokePlayer e86bbb6136 Fix building on Linux 2024-05-11 01:18:08 -07:00
James Groom d8ba3d2448
Enable running unit tests in parallel
not that it has a noticeable effect, I'm really just leaving this here so I don't forget later
2024-05-11 04:17:59 +10:00
James Groom 1c33e2bad8
Actually fix indentation in project files 2024-05-10 18:38:26 +10:00
CasualPokePlayer 702080e582 Fix tab/spacing for MainSlnExecutable.props 2024-05-09 19:53:35 -07:00
CasualPokePlayer 8a8d739fc4 Restore `<OutputPath/>` for library projects to implicit default, rework post build copying to play nicer with IDEs 2024-05-09 19:50:43 -07:00
James Groom 7b785858b4
Nix expr: Regen NuGet lockfile 2024-05-09 15:41:48 +10:00
CasualPokePlayer 8577a286a6 Revert "Restore `<OutputPath/>` for library projects to implicit default"
This reverts commit 0008531537.

Do not remove this, not until non-exe projects are doing the copying to output/dll after their post build events instead of relying on the exe project post build event to do that.
2024-05-08 22:31:17 -07:00
James Groom 0008531537
Restore `<OutputPath/>` for library projects to implicit default
see 597d2e244
2024-05-09 15:24:21 +10:00
kalimag b0fee2bbbb
Update `CurrentlyOpenRom` before `Tools.Restart` (#3691) 2024-05-07 11:44:56 -05:00
Morilli e78e53ba72 fix avwriter warning display text 2024-05-07 14:51:04 +02:00
100thCoin c380a60010 Update NESPPU.Designer.cs
Expanded the palette viewer to show all the palettes.
2024-05-07 15:55:47 +10:00
CasualPokePlayer 6967cff72d Add newly discovered CGB bootrom entry 2024-05-06 12:05:38 -07:00
James Groom d38b6d02d2
Add build flag for easily overriding TFMs
Despite the name, this affects libs too, since those have to match (at least in terms of Framework vs. Core).
For example, you could build for .NET Framework 4.6.1 with:
`Dist/BuildDebug.sh -p:ExecProjTargetFrameworkOverride=net461`
and I believe that will run on XP and later... not sure about building for 32-bit machines though, hopefully that doesn't require code changes.
You can't go below `net461` because some of our NuGet dependencies aren't available on those targets.
You may pass .NET Core TFMs, but for that you should check out the existing branch+PR.
2024-05-07 00:56:05 +10:00
James Groom b8f2437e8c
Add a few `#if`s to fix errors when targeting `net461` 2024-05-07 00:47:16 +10:00
James Groom 7f574eec25
Extract constant from attribute calls in `LibRCheevos` 2024-05-07 00:40:38 +10:00
James Groom a3f8f04d20
Use type check syntax in BizInvoke rather than `GetType` + `==` 2024-05-06 20:39:52 +10:00
CasualPokePlayer a9a951ba1b Update Directory.Packages.props 2024-05-05 19:27:58 -07:00
CasualPokePlayer 9a60f84ff6 Remove DirectSound support
This has been the source of various reported odd issues/crashes due to buggy DirectSound drivers. DirectSound is just deprecated anyways, and the code handling it is very fragile and filled with hacks. XAudio2 would be preferred in practically any case (not to mention XAudio2 is built-in for modern Windows versions, with some redist version available for older Windows versions). OpenAL works fine as a substitute in case XAudio2 isn't available.
2024-05-05 17:52:44 -07:00
Morilli 706d7c43e6 fix build 2024-05-06 01:53:27 +02:00
KshitijKapoor8 6754120dc7 Updated Amstrad CPC Non-Sync Settings name 2024-05-06 09:11:39 +10:00
CasualPokePlayer 4d5e588a59
Remove DInput input adapter (#3867) 2024-05-05 14:19:05 -07:00
James Groom 348866b75a
Fix NRE in `movie.getinput` 2024-05-06 01:20:58 +10:00
Morilli 98fc076c5b Exclude deps.json in package.sh 2024-05-05 14:38:55 +02:00
CasualPokePlayer ab1c05023f Update/minor cleanup dist scripts 2024-05-04 18:01:11 -07:00
CasualPokePlayer 597d2e244f Revert "Don't set output path for non-exe projects"
This reverts commit 41e7c04678.
2024-05-04 17:48:25 -07:00
CasualPokePlayer 7fa3288d01 Corrections to chd
CHD seems to poorly define how to handle subchannel data, this is a best guess based on what seems to be the intent of the code
2024-05-03 22:58:56 -07:00
CasualPokePlayer 10de1e5702 linux chd-rs rebuild 2024-05-02 23:13:31 -07:00
CasualPokePlayer 17774a14f7 make sure to enable lto for release chd-rs 2024-05-02 23:10:47 -07:00
CasualPokePlayer e2de1dedf2 build chd-rs with max_perf
mainly doing this as the pure rust zstd backend doesn't accept discohawk produced chd files, although they are completely valid by reference zstd implemetation standards, max_perf uses the reference zstd here
2024-05-02 23:10:46 -07:00
CasualPokePlayer 64dc72cea5 linux chd-rs build, also delete libchdr folder 2024-05-02 22:23:31 -07:00
CasualPokePlayer 6cab4a4f99 Switch libchdr to chd-rs 2024-05-02 22:14:56 -07:00
CasualPokePlayer 186a4a16f4 Fix off by one in SGB memory handling for RetroAchievements 2024-05-02 20:22:51 -07:00
CasualPokePlayer 125c11c57c Update RetroAchievement memory map for GB/C
see https://github.com/RetroAchievements/rcheevos/pull/329
2024-05-02 17:17:17 -07:00
CasualPokePlayer cc4b693c8b fix another comment 2024-05-02 15:33:08 -07:00
CasualPokePlayer 2fb02110c1 fix comment 2024-05-02 15:32:32 -07:00
CasualPokePlayer 1a0bdc521c HAWK'd CHD support in DiscoHawk 2024-05-02 15:29:16 -07:00
James Groom defacc4a07
Update .NET instructions in contribution guide
fixes 131bc65e8
2024-05-03 02:04:38 +10:00
James Groom 9c74104e77
Re-order preferred cores menu, have invalid values auto-set to first
...upon opening menu
note that first != empty-config default (though with this commit, they all match)
2024-05-01 23:46:55 +10:00
CasualPokePlayer c2f549d02c Move zstd wrapping code to BizHawk.Common
thanks delegate*
2024-04-30 22:44:06 -07:00
CasualPokePlayer f0a2ea1ed2 don't init gpgx trace buffer when not emulating genesis, more proper genesis bootrom firmware handling 2024-04-30 20:58:03 -07:00
CasualPokePlayer 7d9483ea0f make sure to byteswap genesis bootrom (gpgx expects us to do this too) 2024-04-30 20:56:23 -07:00
CasualPokePlayer f4473cc4b9 add back gpgx_write_m68k_bus (got deleted accidentally) 2024-04-30 20:28:27 -07:00
CasualPokePlayer 7fb09637de retroachievement fixes for gpgx sms/gg support 2024-04-30 20:22:05 -07:00
CasualPokePlayer 8b45f93aad Fix z80 bus not being added for gpgx mem domains 2024-04-30 20:11:13 -07:00
CasualPokePlayer e9af682975 Fixes/cleanups C# for GPGX (mainly for SMS/GG mode) 2024-04-30 20:08:23 -07:00
CasualPokePlayer 1b742cf356 Fixup GPGX memory domains / getregister when not emulating a Genesis; fix bug using system_hw when not yet set; add TMSS bootrom support (closes #2230) 2024-04-30 20:07:09 -07:00
CasualPokePlayer 5fc8dd6690 Better-ish VirtualWidth/Height for GPGX 2024-04-30 14:50:06 -07:00
CasualPokePlayer b37bc7b5ff Fix #3905 2024-04-30 12:22:48 -07:00
Morilli af25174906 Fix some waterboxhost warnings
🤞that this is correct
2024-04-30 19:28:33 +02:00
James Groom 9087538a2d
Remove unused imports 2024-04-30 22:14:44 +10:00
James Groom 4c7ea21cea
Add a failsafe to Nyma's settings callback to avoid NREs 2024-04-30 22:06:59 +10:00
James Groom fa0c693448
Attempt to fix loading `.exe`s in Nymashock 2024-04-30 22:01:37 +10:00
James Groom b40c405921
Remove useless check from Nymashock ctor
when you load a `.bin`, well in my case it asked me to choose a platform, but once I picked PSX, it continued to synthesise a `.cue` and side-step this check
2024-04-30 22:00:41 +10:00
James Groom 96d5518cc0
Change how `$(DefineConstants)` is initialised
this may explain why I was having trouble with it earlier
2024-04-30 17:59:09 +10:00
CasualPokePlayer 296eb8f1a0 fix message 2024-04-30 00:52:00 -07:00
CasualPokePlayer 65a7c89318 make extensions how gpgx wants to see them 2024-04-30 00:49:09 -07:00
CasualPokePlayer 60fb92f685 partially revert previous commit (seems that throwing in this callback causes a stack overflow? wtf? throwing normally works in nyma firmware handling which is in a callback so this is odd)
add proper gg firmware entry
2024-04-30 00:49:09 -07:00
CasualPokePlayer 66e38506f6 revert loadrom changes in gpgx 2024-04-30 00:48:16 -07:00
CasualPokePlayer 3c7898dd5a Fix #3906 2024-04-30 00:28:31 -07:00
CasualPokePlayer c41dea6683 Cleanup some GPGX stuff, fix system detection for archived roms 2024-04-29 23:23:17 -07:00
CasualPokePlayer 172f6cbbde libchdr linux build 2024-04-29 22:29:24 -07:00
CasualPokePlayer 21b6bd331b Add CHD CD support 2024-04-29 22:21:47 -07:00
Sergio Martin 9dcb84336e
Wiring up GPGX as core for SMS, GG, and SG (#3902)
* Adding GPGX as core for SMS and GG
* Enabling SMS FM selection
* Allow selecting PicoDrive as the preferred core for MD/Genesis

---------

Co-authored-by: James Groom <OSSYoshiRulz+GitHub@gmail.com>
Co-authored-by: feos <feykomylce@gmail.com>
2024-04-28 20:10:44 +03:00
James Groom 8a0bf19869
Restore previous GPGX display name
if you're going to fix this, fix the rest at the same time, and use the name verbatim with spaces
2024-04-28 23:54:57 +10:00
feos 50cc68a9b3 this too... 2024-04-28 14:37:25 +03:00
feos e5a2d9ee41 update gpgx for even smaller port diff
include sms/gg stuff
2024-04-28 14:36:23 +03:00
James Groom 653844e692
Add workaround for a Mono bug 2024-04-27 18:50:59 +00:00
CasualPokePlayer 127209f3a2 Fix wrong track mode being given to gpgx 2024-04-27 06:15:49 -07:00
CasualPokePlayer eeebd39a11 really fix gpgx cd audio this time 2024-04-27 05:34:45 -07:00
YoshiRulz 72f345946e Bump version in Nix `mkShell` for `flatc` 2024-04-27 22:32:02 +10:00
YoshiRulz f2b3486cc9 Restore Nix `mkShell` for `flatc`
partially reverts 06ceec639
2024-04-27 22:18:50 +10:00
James Groom df0ae2c2d0
Leave some comments in `LuaConsole.InputBox_KeyDown` 2024-04-27 12:15:10 +00:00
James Groom 6ed83ed7a0
Improve UX for long-running commands in the Lua REPL 2024-04-27 12:13:28 +00:00
CasualPokePlayer 212878397e fix gpgx audio harder 2024-04-27 03:21:51 -07:00
CasualPokePlayer 095d160034 try fixing gpgx cd audio 2024-04-27 03:12:27 -07:00
CasualPokePlayer fb3578cfb4 commit updated flatc.exe 2024-04-27 03:12:25 -07:00
CasualPokePlayer d4c4ef8f17 C# fixes for gpgx 2024-04-27 03:12:25 -07:00
CasualPokePlayer 06ceec6390 Fixup nyma flatbuffer comms, update flatbuffer 2024-04-27 02:52:14 -07:00
CasualPokePlayer cb3c7610d5 Update to mednafen 1.32.1 2024-04-26 21:56:39 -07:00
CasualPokePlayer 85f83121ec cleanup gpgx cinterface code 2024-04-26 16:41:06 -07:00
CasualPokePlayer 811555d594 fix gpgx invisible heap size
kb is not bytes
2024-04-26 16:26:00 -07:00
CasualPokePlayer fb438863f5 Fix crash when saving CD ebram 2024-04-26 16:18:34 -07:00
CasualPokePlayer 80f209ed0d Remove CD caching code
It was a sort of novel speed boost idea, but it doesn't work too well due to wbx heap limitations and the drive light still needing a callback anyways
2024-04-26 15:41:33 -07:00
CasualPokePlayer 979258f2cf Fix calculation for disc buffer size needed 2024-04-26 14:41:22 -07:00
CasualPokePlayer 55fbf68c8a Better calculation for disc buffer space needed 2024-04-26 13:53:28 -07:00
CasualPokePlayer f1dec3dd07 C# changes for fixing GPGX drive light 2024-04-26 13:51:36 -07:00
CasualPokePlayer f9b8a775b0 Fix drive light not appearing as much as it should 2024-04-26 13:50:37 -07:00
CasualPokePlayer cb41b6512c Rebuild GPGX 2024-04-26 13:12:45 -07:00
CasualPokePlayer 5326d76ec5 Fix GPGX CD buffer allocation 2024-04-26 12:55:21 -07:00
CasualPokePlayer b91f328436 More C# changes for GPGX adjustments 2024-04-26 12:47:17 -07:00
CasualPokePlayer 3e3d8fbec3 improve CD stream init 2024-04-26 12:43:22 -07:00
CasualPokePlayer 9e2d239a02 Adjust C# parts for GPGX changes 2024-04-26 12:12:14 -07:00
CasualPokePlayer ef72cbff43 Do changes to reduce diff against upstream GPGX 2024-04-26 11:58:02 -07:00
James Groom 821d632fc7
GitLab CI: Enable extra caching for Alpine Docker images
unfortunately can only be used with images distributed via Docker Hub at the moment, which excludes the .NET images
2024-04-26 15:53:12 +10:00
CasualPokePlayer 3c168ed64c Fix crashes when a branch is saved/loaded while the main window is minimized
primarily occurs with the case of a lua script and the user decides to minimize the main window
2024-04-25 14:14:06 -07:00
James Groom 24d2794554
Fix typo in doc comment
fixes df36aaaa1
2024-04-25 14:14:04 +10:00
James Groom df36aaaa1c
Add docs to the config props which control host audio volume 2024-04-25 04:09:39 +00:00
James Groom 887a66cc2a
GitLab CI: When any job fails, cancel pipeline
this may not work as intended with jobs which are allowed to fail, but we'll have to wait and see
2024-04-24 04:18:01 +10:00
Morilli 6f98be104a Update waterbox readme 2024-04-22 17:28:02 +02:00
Sergio Martin 5cb1fe0042
Update Genesis Plus GX Core (#3889)
* Added deep freeze functionality
* Adding support for selecting sound chip
* Adding LUA interface to the deepfreeze list
* Implemented sprite always on top in the VDP
* Found and fixed the issue that manifested itself in a reset Gargoyles and an outright fail in Ristar. The issue was the use of a union type containing overlapping cd and cartdrige data. Using struct now to keep them separated
* Fix PC reg in tracelogs
---------
Co-authored-by: feos <feykomylce@gmail.com>
Co-authored-by: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
2024-04-21 18:34:54 +03:00
Morilli fd36a37f17 Fix BizHawk.Analyzer potentially throwing
Co-Authored-By: James Groom <13409956+YoshiRulz@users.noreply.github.com>
2024-04-20 17:01:59 +02:00
Morilli 17cf58c964 update analyzer packages 2024-04-20 17:01:42 +02:00
Morilli e06369bed8 Fix inverted timestamp condition in branch id check
fixes 05abb3adfa
2024-04-20 12:46:28 +02:00
James Groom 1ff7d54511
Make Lua `onqueryitemtext` more resilient (resolves #3897) 2024-04-19 00:03:30 +10:00
James Groom 45e2307a7b
Reword a label for clarity in the bundler 2024-04-17 14:59:27 +10:00
Morilli afd220c590 Add runtimes path to llvm dirs
something something core.sparseCheckoutCone and git versions
2024-04-15 06:17:06 +02:00
James Groom 8f963ba58c
Improve error dialog when `DiscMountJob` fails 2024-04-15 13:10:24 +10:00
James Groom c35aeb992f
Don't start with `CompileCueJob` if the `ParseCueJob` had an error 2024-04-15 13:01:04 +10:00
CasualPokePlayer 8490a6a8fa Bump libcxx to 18.1.3 2024-04-14 19:01:34 -07:00
CasualPokePlayer 880d8d9f07 rebuild bsnes, update link script / emulibc.h to work with clang-18 2024-04-14 12:57:18 -07:00
Roy Merkel 18a1fe4afd
Fixed bsnes build (#3891)
bsnes build broke when rewind.c was removed because it defined the GB_rewind_reset, which was being linked in despite being no longer present. -DGB_DISABLE_REWIND turns off this link.
2024-04-14 15:48:42 +02:00
CasualPokePlayer 229889279a linux rebuild
sameboy was also rebuilt, but it appears the last commit doesn't actually change the resulting build
2024-04-13 10:31:12 -07:00
CasualPokePlayer d2ba656b01 rebuild sameboy 2024-04-13 10:26:00 -07:00
CasualPokePlayer 88643138cb [mGBA] Prevent memory callbacks from being triggered within a memory callback 2024-04-13 10:19:29 -07:00
Morilli bdecd552cb bump sameboy to fix compiler warning 2024-04-13 17:46:06 +02:00
CasualPokePlayer c01dea66d4 rebuild mgba for linux 2024-04-12 19:44:06 -07:00
CasualPokePlayer fe8a119eaf update mGBA 2024-04-12 19:38:54 -07:00
Morilli e6fdd18858 Update bsnes makefile with sameboy changes 2024-04-13 03:01:21 +02:00
CasualPokePlayer d4e52cae54 build sameboy update on linux, fix linux build 2024-04-12 16:41:27 -07:00
CasualPokePlayer 5df8ce3b8e Convert sameboy makefile into cmakelists, use clang-cl to build sameboy, update sameboy 2024-04-12 16:26:25 -07:00
bug Q 601ab5205d
Nix expr: Adding hash and system to Nixpkgs imports (squashed PR #3890) 2024-04-12 14:52:45 +10:00
James Groom d415bf4ca0
Fix typo
fixes 7d951c6a3
2024-04-06 03:42:21 +10:00
James Groom 7d951c6a3d
Fix `FileNotFoundException` thrown from quickslot preview
fixes 1db54108a
2024-04-06 03:41:12 +10:00
James Groom 1db54108ac
Wire up `ScreenshotForm` for the quickslot buttons in the status bar 2024-04-05 00:14:21 +00:00
James Groom 20ff7a10ba
Merge `ScreenshotForm` to custom controls dir 2024-04-04 23:59:17 +00:00
James Groom 58f810a0e1
Merge `ScreenshotForm` into one file and fix doc comment 2024-04-04 23:56:43 +00:00
James Groom 73c3056bd6
Shuffle logic between `ScreenshotForm.UpdateValues` and call-site 2024-04-04 23:51:09 +00:00
James Groom 3cb7847b35
Improve memoisation in `ScreenshotForm` 2024-04-04 23:39:17 +00:00
feos 18f8f3faa2 mame: mnemonics for Robotron 2084 2024-04-04 18:12:16 +03:00
James Groom dc0eb63221
Minor refactors to other MSBuild files 2024-04-04 00:19:20 +00:00
James Groom dd9e4178d6
Use MSBuild to create empty dirs in output 2024-04-04 00:17:32 +00:00
James Groom b427e7c417
Fix generation of API reference `.xml` files 2024-04-04 00:16:11 +00:00
James Groom d0594c2224
Fix post-build file shuffling again
fixes b654d4a2a
2024-04-04 00:14:44 +00:00
James Groom 82d80bf4bf
Embed debug info for main solution only
fixes 0e892a5f1
2024-04-03 23:32:29 +00:00
Morilli b654d4a2ac Fix and simplify PostBuild file moving 2024-04-03 22:57:45 +02:00
Morilli 41e7c04678 Don't set output path for non-exe projects
surely this is safe and fine and all
2024-04-03 22:38:43 +02:00
Morilli 0e892a5f17 Improve debug output
- use embedded debug information instead of portable pdbs
- always emit debug symbols. The `DebugSymbols` property is kind of bugged (see https://github.com/dotnet/msbuild/issues/2169), but it does have advantages when set
2024-04-03 22:38:10 +02:00
Morilli 1f4a12c6c4 Remove duplicated comment 2024-04-03 21:38:56 +02:00
James Groom 2206571ab8
Hide asms from ext. tool list if they don't reference any Hawk asms 2024-03-30 07:15:31 +10:00
James Groom a3faf6fbd7
Skip generating ext. tool menu items for files that aren't assemblies 2024-03-30 07:12:24 +10:00
James Groom 7e8623fdda
Retain `BizHawk.Client.` prefix in executables' assembly names 2024-03-30 07:07:21 +10:00
Morilli 6d06dcd5d2 Fix BinarySearch test failures 2024-03-29 18:56:56 +01:00
Morilli af9d337900 Add one more failing test 2024-03-29 18:56:38 +01:00
Morilli b983bdb361 Add failing binary search tests
Fixing these functions is left as an exercise to the reader
2024-03-29 13:08:52 +01:00
CasualPokePlayer be6647f10c [MAME] Fix System Bus causing desyncs 2024-03-28 17:58:34 -07:00
Morilli 22cbacd388 whatever this is 2024-03-28 17:33:29 +01:00
James Groom d67b1c1d23
Fix typo
fixes 4f144c74d
2024-03-27 17:19:16 +00:00
James Groom 4f144c74d4
Create constructors for `RollColumn` 2024-03-27 17:17:53 +00:00
James Groom 8967f58df8
Move `&&`/`||` to start of next line in main solution 2024-03-27 16:35:31 +00:00
James Groom b0ba7a1246
Move `&&`/`||` to start of next line in EmuHawk project 2024-03-27 16:10:32 +00:00
James Groom 8987ba8650
Remove unused import
fixes cf45d41c8
2024-03-27 02:24:29 +00:00
James Groom 651c79abeb
Fix typos from `&&`/`||` refactoring
fixes 5685befe1
2024-03-27 02:21:50 +00:00
James Groom 5685befe14
Move `&&`/`||` to start of next line in Emulation.Cores project 2024-03-27 02:10:39 +00:00
Morilli e5582cd016 Use UtcNow instead of Now 2024-03-26 22:28:18 +01:00
Morilli 95381170d8 Add optimization for >>1k fps scenarios 2024-03-26 20:14:54 +01:00
Morilli cf45d41c85 Don't unnecessarily create and return a Dictionary from GetAxisValues 2024-03-26 19:23:50 +01:00
Morilli 032d1b85d6 -1 list allocation per frame yay 2024-03-26 19:20:54 +01:00
Morilli d498f8c3be Simplify logic in OverrideAdapter 2024-03-26 19:10:22 +01:00
Morilli 45159091e6 Optimize IsLoaded<T>
can we get rid of the other 3 functions maybe?
2024-03-26 18:32:32 +01:00
James Groom 3c2b01f34b
Replace some spaces used as indentation 2024-03-26 16:52:47 +00:00
James Groom 7b5f688590
Fix double enumeration in `InputRoll.SelectRow` 2024-03-26 01:11:07 +10:00
James Groom cb087a35fe
Minor touch-ups to readme 2024-03-26 00:13:06 +10:00
feos 342fb9cb26 quicknes: update, fix build, and rebuild 2024-03-24 22:14:41 +03:00
SergioMartin86 2af6bf3c34 Updating to latest quickerNES commit and changing remote to TASEmulators/quickerNES
Fixing msvc project
2024-03-24 21:42:06 +03:00
feos eb70cd474e build quicknes dll if in mingw 2024-03-24 19:41:24 +03:00
Morilli a803407cdd Mark Package.sh as executable again
fixes 9c4a818423
2024-03-23 11:29:58 +01:00
James Groom 85caed48cc
Fix movie importer crashing on files with unrecognised extentions 2024-03-22 17:00:43 +00:00
Morilli d17352a204 Fix Package.sh
untested because it wouldn't be fun otherwise
2024-03-22 17:33:38 +01:00
Sergio Martin 9c4a818423
Replace QuickNES core with QuickerNES (squashed PR #3839)
resolves #3848
2024-03-23 01:31:22 +10:00
James Groom 0857dd6771
Clean up equality implementation for `Cell` 2024-03-20 22:19:57 +00:00
James Groom 01ed94d167
Replace mutation w/ pre-init check for N64 C button column header hack
also fixes width not being recalculated
fixes fde16fa5a
2024-03-20 19:51:41 +00:00
James Groom 41cae2dd22
Remove unused props from `RollColumn` and `RollColumns` 2024-03-20 19:46:56 +00:00
James Groom c5a478a28a
Remove unused prop `Cell.CurrentText` 2024-03-20 19:34:45 +00:00
James Groom bbe7040554
Remove temporary no-crash-plz shims 2024-03-20 19:33:46 +00:00
James Groom a3aa67681f
Clean up debug serialisation of `Cell`
fixes 2a67cf93e
2024-03-20 19:31:34 +00:00
YoshiRulz 57439f9697 Reduce LINQ calls on `CellList` 2024-03-20 11:24:13 +00:00
James Groom 0f9f6f0e53 Drop import 2024-03-20 11:24:13 +00:00
Morilli ca0fb69570 Optimize operations with selected items 2024-03-20 11:24:13 +00:00
James Groom 2a67cf93ec Replace `SortedSet` with `SortedList<T>` in `InputRoll`
see 6d40c08c3
2024-03-20 11:24:13 +00:00
SkiHatDuckie 328d36d0ca
Refactor window scale menu, add 6x through 9x (squashed PR #3872)
resolves #3826
2024-03-20 09:48:15 +10:00
James Groom 3f92764bde
Bump date on PR template's CLA checkbox
fixes 85e5a028b
2024-03-20 05:40:10 +10:00
RetroEdit 85e5a028b4
update PR license agreement to clarify licensing (#3743)
* make the GitHub Copilot note more prominent
2024-03-19 14:28:52 -05:00
adelikat b6efbfe54b add hotkey to toggle the last used lua script 2024-03-19 11:10:15 -05:00
Morilli b10f8969ac Don't allocate extra buffers in lua [Push|To]String 2024-03-19 12:19:56 +01:00
Morilli bfae8d0f1e reduce allocations in CalculatePointedCell 2024-03-16 13:26:53 +01:00
Morilli cad3699221 Don't triple-allocate in FrameToStringPadded 2024-03-15 18:31:46 +01:00
James Groom 2f6a507fdf
Simplify some logic in `InputRoll.{SelectCell,OnMouseDown}` 2024-03-15 12:10:20 +00:00
James Groom 967ce66e9e
Use helper prop in `InputRoll`, simplifying LINQ call 2024-03-15 12:01:58 +00:00
James Groom 485cafadff
Nix expr: Regen NuGet lockfile 2024-03-15 20:39:22 +10:00
Morilli 0cbc65ba4e Improve Cell comparison 2024-03-14 21:59:25 +01:00
James Groom 86a4aa69ee
Fix double enumeration in `InputRoll.SelectRow` 2024-03-15 06:02:29 +10:00
CasualPokePlayer 6e881d39a2 encore: avoid directly using SetThreadDescription (windows 10+ only function), restores windows 7-8.1 compat 2024-03-13 21:08:07 -07:00
James Groom ce6d032051
Fix logic in `Bk2Controller.SetFromMnemonic`
fixes fdf63900b
2024-03-14 04:15:56 +10:00
James Groom 8d892346d2
Fix crash when loading `.wch` into RAM Search 2024-03-13 23:42:25 +10:00
James Groom 0f8995eec7
Clean up conditionals in `TAStudio.TasView_QueryItemIcon`
fixes 17ed62b39
2024-03-12 15:35:44 +10:00
James Groom e55c6c2688
Avoid delegate wrapper in `ICollection.RemoveAll` extension hot path
see 6d40c08c3
2024-03-12 15:24:41 +10:00
James Groom 24bd99eb07
Refactor `HotkeyInfo.ResolveWithDefaults` 2024-03-12 15:22:07 +10:00
Morilli fdf63900b6 Reduce string allocations in SetFromMnemonic 2024-03-12 02:17:59 +01:00
Morilli 17ed62b39e Prevent unnecessary TasMovieRecord queries 2024-03-12 01:41:22 +01:00
Morilli 9a2de650d1 Reduce Cell allocation spam
Don't really like this change but it does help allocation count a lot. Perhaps Cell should just be a struct?
2024-03-12 00:04:29 +01:00
Morilli 6d40c08c3c fix #3675
This looks to just be better on .net framework...
2024-03-11 22:43:57 +01:00
CasualPokePlayer 5bf9d387b4 prevent various apis from being used while in an input/memory callback 2024-03-10 23:18:55 -07:00
CasualPokePlayer 986299c52b encore linux build 2024-03-10 20:05:04 -07:00
CasualPokePlayer 5cb80569d9 encore: bump up uncompressed state buffer size 2024-03-10 19:57:03 -07:00
CasualPokePlayer 38ef6028d7 correct buffer check condition 2024-03-10 15:25:01 -07:00
CasualPokePlayer 04fe0d7d04 fix crash with SDLResampler 2024-03-10 15:10:17 -07:00
CasualPokePlayer 03fa3fc19d get rid of this Flush call
isn't really needed
2024-03-10 15:03:33 -07:00
CasualPokePlayer d9a93c474a throw out the speex resampler, place in SDL's resampler to replace it
no more 2010 vc++ runtime requirement
2024-03-10 15:02:25 -07:00
Morilli 05abb3adfa Optimize IndexOfFrame function in TAStudio 2024-03-10 19:21:05 +01:00
Morilli 87197e0524 Optimize IsMarker checks in TAStudio 2024-03-10 18:57:08 +01:00
CasualPokePlayer d547ff3d57 update comment due to prev commit 2024-03-10 03:40:18 -07:00
CasualPokePlayer 5a8ce91d95 Recompile mupen dlls against VS2022
this also needed mupen deps updated, and SDL2 compat needed to be fixed. SDL doesnt need to be used anymore, so that's nice
also deleted mupen projects which we don't use anymore
2024-03-10 03:36:43 -07:00
CasualPokePlayer c85aee928f remove DInput dependency with RawKeyInput 2024-03-09 22:01:44 -08:00
CasualPokePlayer 330115452f linux encore build 2024-03-08 21:32:11 -08:00
CasualPokePlayer 90369fce13 encore: add lag detection 2024-03-08 20:25:25 -08:00
CasualPokePlayer 59176ca2d3 encore: fix aes_keys.txt / seeddb.bin not being properly picked up by the core 2024-03-08 19:12:54 -08:00
CasualPokePlayer 32b6f7d937 linux encore build 2024-03-08 18:02:50 -08:00
CasualPokePlayer 6dd0bb25e8 encore: remove async file io completely, fix savestate crashes due to AsyncWakeUpCallback serialization attempts 2024-03-08 17:29:40 -08:00
James Groom 69d29c39f5
Fix cheat editor resetting display type when changing size
and when choice is no longer valid, default to hex instead of unsigned
2024-03-08 21:42:20 +10:00
James Groom 2f758459dd
Add docs and unit tests for `IList.LowerBoundBinarySearch` extension
without d29da10e9, the final case in this test method would throw an exception
2024-03-08 11:22:44 +00:00
James Groom 49fa40f562
Rename newly-added `.props` file, improve MSTest output
fixes 6df491c9d
2024-03-08 10:50:57 +00:00
James Groom 5a6fcce981
Use new way of importing MSTest framework 2024-03-08 10:42:37 +00:00
James Groom 9e12480c3e
Bump MSTest and Magick.NET 2024-03-08 10:38:08 +00:00
James Groom 6df491c9d9
Dedup test project files and also mute style warnings in GambatteSuite 2024-03-08 10:33:53 +00:00
James Groom 8630ccdd41
Update list of known testrom failures from Gambatte suite 2024-03-08 10:30:12 +00:00
CasualPokePlayer 4ce5b9b6c1 update encore linux build 2024-03-07 23:08:34 -08:00
CasualPokePlayer d9cd9f4810 do various determinism fixes for encore 2024-03-07 22:31:16 -08:00
James Groom 729ca96517
Hopefully fix double BOM
thanks VS Code
2024-03-08 03:50:05 +00:00
James Groom 615c2eaf88 Leave comment in `FindIOSurfaceInfo`
fixes 7ee0e0afa
2024-03-08 13:42:47 +10:00
Morilli 7ee0e0afac Reduce allocations in FindIOSurfaceInfo 2024-03-08 02:22:56 +01:00
Morilli d29da10e91 Fix LowerBoundBinarySearch, fix lag check 2024-03-08 02:22:31 +01:00
Morilli b8e49413cf Remove unnecessary TasMovieRecord allocations 2024-03-07 23:52:18 +01:00
Morilli 674997b345 Optimize speed and allocations of TasMovieMarker.Previous[OrCurrent]
was quite a ridiculous amount of allocations due the amount of calls to this functions
2024-03-07 22:53:39 +01:00
James Groom 592eb34370
Update lists of known testrom failures (except Gambatte suite) 2024-03-07 06:55:43 +00:00
James Groom 1f70320ea8
Get testroms projects building again
fixes 8ae947fed, e87536ea8, e7f4ad822, 59fcdb04c, 72cc19266, d788e603f, and 86684b689
2024-03-07 06:54:16 +00:00
CasualPokePlayer a67a484715 update encore linux build 2024-03-06 21:43:17 -08:00
James Groom 39a52105e9
Nix expr: Use correct path for libgdiplus, fixes testroms projects
fixes e8a3b7b25
2024-03-07 15:21:29 +10:00
CasualPokePlayer 7c4f997f88 encore: add in some new settings, expose some other settings, rework upscaling management (more in line with how melonds is handled) 2024-03-06 21:08:57 -08:00
James Groom 70ac364c01
Fix typo
fixes e8a3b7b25
2024-03-07 13:13:36 +10:00
James Groom e8a3b7b250
Nix expr: Fix running tests in nix-shell 2024-03-07 03:11:13 +00:00
James Groom 07d1c41712
Fix typo
fixes 8c3f857ab
2024-03-06 17:39:38 +10:00
James Groom 8c3f857ab6
Fix cheat editor showing "0x" prefix when not hex type 2024-03-06 16:30:14 +10:00
CasualPokePlayer 5a55f04f1e -headless isn't a postfix for encore 2024-03-05 18:28:12 -08:00
CasualPokePlayer 62dd38f77f do Linux build of encore 2024-03-05 18:23:02 -08:00
CasualPokePlayer 1bbc54f29f add back encore submodule + build script + add windows build + a few more renamings 2024-03-05 16:13:51 -08:00
CasualPokePlayer 7cf8c968df rename all the things 2024-03-04 18:39:30 -08:00
CasualPokePlayer f02080b61b fix build 2024-03-04 17:13:51 -08:00
CasualPokePlayer 5304467855 update to nightly-2104 2024-03-04 17:06:40 -08:00
Morilli 972bc8a682 bsnes: Pull upstream fixes
Contains
- 3ca0504e67e89d37e24fce87183332f7ec577867: Extend the Super Famicom LOROM-RAM#A memory map.
- dab534b6584e4debef2c9572e6b6588a604d79a9: wdc65816: fix PLB wrapping in emulation mode
- ccbe394e7d4bc5f5596544813d887da161af3ca6: wdc65816: emulate (direct,X) wraparound bug in emulation mode
- 79770f6207a5d244652644c5e2d9f4328bd974ac: implementation of SA-1 BW-RAM protection
2024-03-01 15:56:28 +01:00
James Groom 3f58dba4f5
Use title case for this menu item 2024-02-25 06:42:51 +10:00
James Groom a3f8015489
Nix expr: Regen NuGet lockfile 2024-02-24 06:03:31 +10:00
James Groom 4df850973f
Document invariant
see df4aa7974
2024-02-24 05:15:31 +10:00
Morilli df4aa7974b Optimize InputDisplayGenerator.Generate 2024-02-22 19:27:38 +01:00
YoshiRulz d31047ffc3 Use NuGet central package management 2024-02-14 16:24:31 +00:00
James Groom daf9ea7bb2
Check for FFmpeg when using DiscoHawk's bottom box
no download option for now
2024-02-14 16:23:11 +00:00
James Groom 3f2f9cc170
Copy error dialog code from DiscoHawk's top box to its bottom box 2024-02-14 16:21:34 +00:00
James Groom 6309e3b7fc
Nix expr: Fix DiscoHawk launch script 2024-02-14 16:20:02 +00:00
James Groom 88013f5d18
Nix expr: Regen NuGet lockfile
fixes b34e713f1
2024-02-14 16:17:43 +00:00
feos 54ef35d2e0 black text on white BG is how input roll is meant to look
if we ever support swapping the colors for a dark theme, bd3f919129 could be a useful refactor, but only allowing linux users to see input roll properly was wrong (because setting BG to Control color makes it look disabled)
2024-02-13 01:11:50 +03:00
CasualPokePlayer b34e713f1c update sqlite stuff, also swap it with Microsoft.Data.Sqlite.Core / SQLitePCLRaw.provider.e_sqlite3 and do a different hack to avoid pulling in native deps 2024-02-12 13:59:16 -08:00
James Groom bee6ff1a45
Bump .NET SDK images used by GitLab CI
fixes 131bc65e8
2024-02-13 06:43:05 +10:00
James Groom 131bc65e8f
Bump .NET SDK to 8.x 2024-02-12 20:38:03 +00:00
James Groom b1a684fd7f
Nix expr: Fix nix-shell when dev build uses a different SDK to latest 2024-02-13 06:34:31 +10:00
James Groom 86684b6893
Use long flag for `dotnet test -a` since it changes in .NET 7 2024-02-13 06:28:15 +10:00
CasualPokePlayer 17434f78cf init rtc before calling nyma init functions
mainly needed for saturnus
2024-02-09 18:37:34 -08:00
CasualPokePlayer 0cc61c3744 add method for setting the frontend time before game load... this will be needed for saturnus, as it may query time to set the initial rtc 2024-02-09 18:35:14 -08:00
CasualPokePlayer 5fb7b486b3 dumb rcheevos saturn memory fix
yeah this is dumb
2024-02-08 23:48:53 -08:00
CasualPokePlayer 2c521fdc5a add ISaveRam explicitly
this is needed for new saveram interface to be picked up apparently
fixes 446fac3242
2024-02-08 23:36:12 -08:00
CasualPokePlayer 446fac3242 add in c# side code to actually use new saturnus saveram interface 2024-02-08 23:32:14 -08:00
CasualPokePlayer 2ce3bbffa5 set various saturn memory domains to be swapped (supercedes https://github.com/TASEmulators/BizHawk/pull/3666)
also add in saveram apis, mostly due to needing an extra step on saveram load to properly handle rtc
2024-02-08 23:18:59 -08:00
CasualPokePlayer 5d54c09577 update saturn entries in firmware db
mainly don't consider other region bios files as "acceptable", mednafen policy is to reject the wrong region (see ss.bios_sanity handling)
2024-02-07 06:17:54 -08:00
James Groom 33f0b5ca32
Remove imports no longer used after recent changes 2024-02-06 11:10:05 +00:00
James Groom 33a71cf0e1
Replace `null` array w/ empty in `NESSyncSettings.OkBtn_Click` (fixes #3858)
fixes 103fb3832
2024-02-06 09:03:16 +10:00
James Groom 103fb38322
Clean up `NESSyncSettings.OkBtn_Click` (resolves #3856) 2024-02-01 15:11:52 +00:00
James Groom 484e1fee78
Clean up `NESSyncSettings.InitialWRamStatePattern` 2024-02-01 15:10:02 +00:00
James Groom 7e8950ea52
Clean up `BytesToHexString` 2024-02-01 15:04:36 +00:00
James Groom f3aae71da6
Expose PALRAM domain from NesHawk (resolves #3854) 2024-01-31 09:31:22 +00:00
CasualPokePlayer 572d989a94 backport e9e56c56b0 and c478c6026a
fixes #3850
2024-01-28 06:13:09 -08:00
j-ac 1162ac4a12 fix typo in contributing.md 2024-01-27 02:39:42 +00:00
CasualPokePlayer 2f11560b14 fix alternative keyboard layout handling for extended scancodes 2024-01-26 07:01:22 -08:00
James Groom acf368e67f
Rewrite Game Genie (GB) decoder 2024-01-21 15:01:20 +00:00
James Groom 2f9119834b
Add test cases for Game Genie (GB) decoder 2024-01-21 14:49:22 +00:00
James Groom 21706d8421
Fix typo
fixes f6a9dee46
2024-01-18 14:55:51 +10:00
James Groom f6a9dee467
Prevent an IooRE in *Action 52*
see https://github.com/TASEmulators/BizHawk/issues/2999#issuecomment-1895239013
2024-01-17 17:35:25 +10:00
CasualPokePlayer 62afd3c747 add missing member to this struct 2024-01-16 22:04:30 -08:00
CasualPokePlayer 1b7fe8e7fd misc cheevo stuff 2024-01-16 20:16:25 -08:00
CasualPokePlayer e576d1862c update rcheevos for linux 2024-01-16 20:03:58 -08:00
CasualPokePlayer d03d076fa7 several rcheevo updates, mostly for 3DS stuff 2024-01-16 20:00:45 -08:00
CasualPokePlayer 67b535d0f8 remove dsi skip fw restriction c# side 2024-01-16 11:08:40 -08:00
CasualPokePlayer 7d2ff866d8 add support for direct booting dsi titles (including dsiware) 2024-01-16 11:04:38 -08:00
CasualPokePlayer 55b3319ee0 minor melonds fixes 2024-01-10 08:13:20 -08:00
CasualPokePlayer 8be0111e72 fix build 2023-12-31 18:02:49 -08:00
CasualPokePlayer d6fdf503b9 /s/RIM_KEY/RI_KEY
seems to be a dumb typo (docs have RI_KEY_* not RIM_KEY_*)
2023-12-31 06:00:48 -08:00
CasualPokePlayer 6330a703a1 fix Pause key not working with RAWINPUT 2023-12-31 05:44:50 -08:00
CasualPokePlayer 79d6bee75f this can be null 2023-12-30 16:40:25 -08:00
CasualPokePlayer f94bcb64b1 add back hawk sound when opening About box 2023-12-30 16:37:37 -08:00
CasualPokePlayer 51925e7cc9 make SDL2WavStream consume a generic Stream rather than passing in a file path
this now should make it functionally the same as a System.Media.SoundPlayer, letting us only doing disk access one time per wav file (and allows some embbed wav to be played)
2023-12-30 16:03:21 -08:00
CasualPokePlayer a38e854a6d add method to play wav files via ISoundOutput, use this instead of System.Media.SoundPlayer 2023-12-30 04:49:26 -08:00
CasualPokePlayer 94f6616e74 fix #1862, also rename front facing setting ("non-vi" makes no sense here) 2023-12-25 00:46:13 -08:00
CasualPokePlayer bc432de43a fix 7ceb6345e4
somehow mixed up files and put the wrong tmd in lol
2023-12-24 23:46:20 -08:00
CasualPokePlayer 7ceb6345e4 add missing TMD for USA California Super Sports, also remove unneeded data in TMDs 2023-12-24 19:05:20 -08:00
James Groom e387b690c2
Mute IDE0056 and IDE0057 for now
these are using the `Index` and `Range` syntaxes, respectively
2023-12-23 12:23:16 +10:00
James Groom ae1bd18094
Nix expr: Update NuGet deps lockfile 2023-12-23 12:14:29 +10:00
CasualPokePlayer ded668fe5a add PolySharp as explicit dep, do some BizHawk.Common .NET6 cleanups
PolySharp was already an implicit dep due to some transitive dep from Vortice. This causes some problems in the test project, although it seems it's specific to the test project setup / one of the test project deps exposing internal classes rather than actually the fault of PolySharp (enabling PolySharpExcludeTypeForwardedToDeclarations works around it)
PolySharp provides source generated internal IsExternalInit/Range/Index, allowing us to use init props and range/index operators, and since it's source generated and internal to each project, it should play nice with potential multi-targetting (keeping in mind the test project is an edge case that doesn't apply in general)
2023-12-22 14:26:24 -08:00
James Groom 3fb30a2ca7
Clean up some `AskSaveChanges` implementations 2023-12-22 04:48:49 +00:00
James Groom bd3f919129
Don't hardcode colours in InputRoll 2023-12-22 04:16:01 +00:00
James Groom 1e5d11bf84
Increase verbosity of `dotnet build` in CI 2023-12-22 03:20:19 +00:00
James Groom cae739a826
Clean up peeking for Hex Editor's N64 Matrix view 2023-12-22 01:17:02 +10:00
James Groom 0d5b0ac964
Fix typos from copy-pasting via human
fixes 6f39bed3f
2023-12-22 01:11:39 +10:00
James Groom 6f39bed3f8
UI+UX improvements for Hex Editor's N64 Matrix view
no idea what this is actually for but now it's usable
2023-12-22 01:04:57 +10:00
James Groom e1571189c5
Mute NU1702 harder 2023-12-21 13:36:13 +10:00
James Groom ea00f3be54
Use helper method
fixes 73bb9b4bd
this is the only code style warning atm
2023-12-21 13:35:23 +10:00
CasualPokePlayer a54de6d377 rebuild citra with MSVC static runtimes
this is needed for the hack in f9c85172e4 to work
2023-12-20 17:11:39 -08:00
CasualPokePlayer d00a512026 add comment noting StopSound can't be used for directsound's ResetToDefaultDevice 2023-12-18 02:37:30 -08:00
CasualPokePlayer 9e142711d6 Also delete this now unused dll 2023-12-18 02:35:08 -08:00
CasualPokePlayer f4ac17c904 Replace OpenAL dlls with openal-soft provided ones (downloaded from their official site: https://www.openal-soft.org/)
Fix hanging issue with OpenAL on device disconnection
Cleanup other hanging/crash fixes in other audio backends
2023-12-18 02:32:37 -08:00
CasualPokePlayer ad3aa2f5dc fix weird double utf8 bom in Bk2LogEntryGenerator 2023-12-17 04:27:17 -08:00
CasualPokePlayer f4ef12a38b simplify xaudio2 critical error handling
don't need to be this fancy, also this can still potentially deadlock anyways since audio throttle isn't going to be message pumping in throttling code
2023-12-17 04:24:19 -08:00
CasualPokePlayer d5fc092c0a Fix disconnecting an audio device potentially crashing/hanging for DirectSound and XAudio2
OpenAL seems to only do this on Windows, Linux does not care. This issue is also only relevant for audio throttle wrt XAudio2/OpenAL.
2023-12-17 04:11:27 -08:00
James Groom 7f21cbd029
Fix syntax errors in interp. string
fixes 0e084eaef
2023-12-17 20:00:30 +10:00
James Groom 0e084eaefd
Elaborate on admin warning, now with manual override (resolves #3835) 2023-12-17 09:46:44 +00:00
James Groom a48ca42125
Update assets denylist in `Package.sh` again
fixes dc659ddb9
2023-12-17 19:24:25 +10:00
Morilli dc659ddb93 Update Package.sh
unsure if sqlite and sdl dlls are safe to remove for linux package
2023-12-17 01:20:38 +01:00
feos 4f522bac11 mame: put soft reset first so its dups could be resolved automatically
should complete #3704
2023-12-13 20:57:43 +03:00
James Groom 8a806c897d
Improve error message in `Bk2LogEntryGenerator` ctor (see #3704) 2023-12-13 07:50:16 +10:00
CasualPokePlayer 3bcc6ee977 do some more cleanup with rcheevos stuff, also rework rcheevos read map. having a dict full of delegates ends up allocating >26GiB of memory for New 3DS (i.e. 256MiB of memory), so instead have a map of _memFunction indexes corresponding to address, thereby making memory usage equal to the memory mapping size (so for New 3DS this will only take 256MiB of memory). it comes with some limitations, none of which matter for now 2023-12-11 03:59:10 -08:00
CasualPokePlayer 6b0b6f2106 do cleanup with rcheevos, using record structs where possible
also add in `in` support for the BizInvoker for compat interop
(non-compat interop doesn't really matter here, the point of `in` is to avoid a copy back for non-blittable objects, which doesn't apply for non-compat which only works for blittable objects / always just pins them down)
2023-12-10 16:02:07 -08:00
Morilli 83e784ecec Actually provide proper OAM memory domain in bsnes 2023-12-10 00:48:50 +01:00
CasualPokePlayer cc0b6c0d99 update rcheevos to latest release, change a ton of ints to uints (what's actually used often)
todo: trim out unneeded defs and do c# 10 cleanups
2023-12-09 02:25:40 -08:00
CasualPokePlayer c2e8bda5e2 fix loading gba saves re-allocating buffer (thus invalidating its memory domain) 2023-12-07 22:52:48 -08:00
CasualPokePlayer 4d6bc5a33a fix build 2023-12-06 23:23:16 -08:00
CasualPokePlayer 2019f4baf2 c# side for 7b4bd8cdc3 2023-12-06 23:22:17 -08:00
CasualPokePlayer 7b4bd8cdc3 make GBA roms work under freebios 2023-12-06 23:19:53 -08:00
CasualPokePlayer 10ac5ddb3c rebuild citra on debian 11, remove dumb libc++ rundep
minor changes were needed on the c++ side (luckily it was only the bizhawk specific code which needed changes)
limits.h force include is a hack due to one of citra's externals relying on some implicit std header including which doesn't happen on gcc10's libstdc++
2023-12-04 17:06:27 -08:00
feos 688fb249f9 fix #3715 2023-12-03 15:50:49 +03:00
feos 79baa45ca6 bounds have proper dimensions now 2023-12-03 11:48:49 +03:00
feos 0efdd02085 address #3715 (need to fix hawk side aspect ratio) 2023-12-03 03:12:58 +03:00
feos 73bb9b4bd9 mame: add driver src file to dump info 2023-12-02 22:35:05 +03:00
James Groom cbd0bc8d0b
Nix expr: Bump Nixpkgs to 23.11 2023-12-02 18:40:47 +00:00
James Groom 7ee28c1ab9
Nix expr: Add `libGL` to `buildInputs` on NixOS
currently `libGL.so.1` just happens to be in the closure via `cairo`, but that's no longer the case in Nixpkgs 23.11
2023-12-02 18:40:22 +00:00
feos 2a40b172e1 fix #3704 2023-12-02 20:53:37 +03:00
feos a3746fe7b7 fix #3721 2023-12-02 18:06:43 +03:00
CasualPokePlayer a25eff9d9b rebuild sdl2 on linux too 2023-11-28 13:35:01 -08:00
CasualPokePlayer 1441bf98ba pull in some windows specific SDL2 fixes
see https://github.com/libsdl-org/SDL/issues/8617
2023-11-28 13:26:37 -08:00
James Groom 4ad9b7b2bf
Hopefully the last bugfix for GitLab CI config
fixes 7041b7845
2023-11-26 20:20:32 +10:00
CasualPokePlayer 20defc890b build newer SDL2 on linux (Debian 10), also pull in some linux specific build fixes 2023-11-25 17:49:49 -08:00
James Groom b06d706a13
Nix expr: Invert default for `doCheck` (it just works now?)
...and clean up the disabling of filesystem-related unit tests.
...and, surprise! Setting `ContinuousIntegrationBuild` was enough to fix the remaining r13y problems. I spent hours pre-merge trying random things, so that's irritating.
2023-11-25 14:56:06 +00:00
James Groom 7041b7845a
More fixes for GitLab CI config
- don't need Cachix anymore
- stop hardcoding 2.8 since I added a "latest"
- and fix ext. projects enumeration AGAIN
2023-11-26 00:20:32 +10:00
CasualPokePlayer f40e68e903 add in cmake scripts for building SDL2
this gives us a great level of control over how we build SDL2, omitting parts we don't want, and including parts we do want, like libusb support!
windows sdl2 normally doesn't support libusb, but with some magic it can be built and linked in fairly easily, giving windows sdl2 libusb support.
libusb support in sdl2 means official GC adapter support! (resolves #1879)

linux build will be done in a later commit
2023-11-24 22:33:19 -08:00
CasualPokePlayer 5f6243bd76 Remove SDL_INIT_HAPTIC use
We don't actually use the haptic API, which is a separate thing from SDL_GameControllerRumble/SDL_JoystickRumble
2023-11-23 23:09:46 -08:00
James Groom a605443590
Mute code style warnings in iso-parser 2023-11-24 05:28:41 +00:00
James Groom 0517294605
Fix typo in GitLab CI config
fixes bb0d8f231
2023-11-23 22:51:12 +10:00
James Groom 2105871122
Clean up handling of modal dialogs and parenting in RA 2023-11-23 07:56:45 +00:00
James Groom 36df9c387b
Add `IDialogParent.AddOnScreenMessage` extension 2023-11-23 07:45:40 +00:00
James Groom 5ef398c309
Lazily init `BasicApiProvider`/`ApiContainer` 2023-11-23 06:47:36 +00:00
James Groom 525c9c2f9c
Use `MainForm.QuicksaveLoad` directly for RA 2023-11-23 06:34:29 +00:00
James Groom 40b17b59c4
Move events from `EmuClientApi` to `MainForm`
the `event` members remain, but the triggering is now delegated back to `MainForm`, and the additional processing has been moved there too
2023-11-22 12:25:44 +00:00
CasualPokePlayer 1909950742 Rebuild most of the .so's on Debian 10
Also fix up libbizhash so it builds on clang
Slight fixes to sameboy and msxhawk makefiles
Fix rcheevo submodule commit (no actual changes, just make it point to a commit upstream actually has)
SDL2 .so not yet rebuilt, need to consider how to do that
citra seems to need at least Debian 11 to build
libe_sqlite3.so seemed to have already been built with Debian 10 so not bothering touching that
libwaterboxhost.so is Rust / targets glibc 2.28 anyways, nothing needs to be done there
2023-11-22 00:50:47 -08:00
CasualPokePlayer ef90a3d63d Emu83 update
This just mainly updates the build system from scons to CMake and adds msvc/clang compat (dll is rebuild with clang-cl, so will be built later)
2023-11-21 23:25:40 -08:00
James Groom 197b357419
Migrate code analysis ruleset to new format
fixes 362269c98
2023-11-22 05:13:48 +00:00
James Groom 09e3ed6f26
Rename .globalconfig
specific filename meant it was implicitly and automatically picked up, similar to Directory.Build.props; now it's explicit
2023-11-22 04:01:43 +00:00
James Groom ca5dc1a6e8
Extract disc hashing from Octoshock, clean it up, and add to Nymashock 2023-11-21 06:54:11 +00:00
James Groom dada959cfa
Nix expr: Add binary releases back to 2.3.2, some cleanup 2023-11-21 04:15:37 +00:00
Morilli 83ec4594d6 make script executable 2023-11-20 09:41:56 +01:00
James Groom 6a830f556a
Add back missing newlines from github.dev import
fixes b47b4d63b
2023-11-20 02:22:33 +00:00
James Groom a67b0cf727
Fix relative link to file in repo
fixes b47b4d63b
2023-11-19 23:46:17 +10:00
James Groom b47b4d63b1
Nix expr: Complete rewrite, a LOT of new features 2023-11-19 13:33:48 +00:00
James Groom 35708f5c03
Label releases < 2.6 as deprecated for security purposes
arbitrary and inconsequential
2023-11-19 22:28:17 +10:00
CasualPokePlayer 859ea8e249 improve Program startup, remove the OSTailoredCode duplication hack, use RuntimeInformation.IsOSPlatform for figuring out OS, use AppContext.BaseDirectory to get exe location (apparently even works with bundled assemblies in .net5+) 2023-11-18 20:00:16 -08:00
James Groom eca0ca41a9
Add OpenSUSE to Mono launch script 2023-11-19 11:15:38 +10:00
feos c7d65eb0ca mame: add defender mnemonics 2023-11-18 12:52:46 +03:00
James Groom 000f741994
Respect `BIZHAWK_HOME` for e.g. loading Waterbox cores
pretty much only affects NixHawk, where the wbox cores are in one dir and EmuHawk.exe and the other assemblies are in another, and all are symlinked into one tree
2023-11-18 17:26:49 +10:00
CasualPokePlayer 33a512235a Fix NRE for lua cothreads
fixes ba24907d9c
2023-11-17 19:46:59 -08:00
CasualPokePlayer ba24907d9c Improve NLua lua library loading, using C# function pointers. It now no longer depends on BizHawk.BizInvoke/BizHawk.Common. It might be faster too
Add in liblua-* variant for Linux lua library names (resolves #3678)
Remove some more unused NLua code
Make LuaState internal, we don't need to see it (NLua.Lua API slightly changed to accommodate this, tests could be broken due to this?)
Make various other NLua classes internal, we don't need to see them
Check against lua library loading failing, provide a non-fatal message box if it has failed instead of crashing on some exception.
Remove UnixSearchPaths (unneeded with LD_LIBRARY_PATH being set) and unused IImportResolvers
2023-11-17 19:03:03 -08:00
James Groom 1956302a15
Use IRODictionary in `BkmMnemonicConstants` 2023-11-18 04:52:09 +10:00
James Groom a9bfd96027
Backport `IEnumerable<KeyValuePair<,>>.ToDictionary` 2023-11-18 04:26:28 +10:00
James Groom c2ddc40468
Clean up impl. of `LinkedDebuggable`
see ed5a708f9
2023-11-18 04:11:02 +10:00
James Groom a227e7d113
Fix typos
fixes b36f4aa4e and ed5a708f9
2023-11-18 03:44:36 +10:00
James Groom ed5a708f93
Clean up `IDebuggable` impl. for GBHawkLink{,3x,4x} 2023-11-18 03:37:17 +10:00
James Groom b36f4aa4ef
Remove unused imports 2023-11-18 03:30:27 +10:00
James Groom 024739d22e
Fix typo in `GBHawkLink4x.SetCpuRegister`
broken since introduction in a751aab74
2023-11-18 03:20:50 +10:00
James Groom 63127695d4
Expose `IInputApi.GetPressedAxes` to Lua, improve `input` lib docs 2023-11-17 13:27:53 +10:00
James Groom 8eef419c62
Rename "Max" window size menu item to "10x" to reflect behaviour 2023-11-17 12:36:51 +10:00
James Groom e53f30f105
Fix "Max" window size menu item never being unchecked 2023-11-17 12:35:50 +10:00
CasualPokePlayer 7edba4962c fix 70bd081a93 (again)
see a2185d9ef0 and 8a5921182e
2023-11-16 09:14:25 -08:00
CasualPokePlayer cef72bef4b try to fix crashes under Mono when calling a cached function with the wrong arguments 2023-11-16 09:08:20 -08:00
CasualPokePlayer fba66c3d28 re-enable analyzer for NLua 2023-11-16 03:15:44 -08:00
CasualPokePlayer 582446651f fix all the analyser warnings in NLua 2023-11-16 03:14:47 -08:00
James Groom bb0d8f231d
Fix `find` invocation in GitLab CI config 2023-11-16 15:48:00 +10:00
James Groom b961aa2ec5
Allow NLua to be built again 2023-11-16 15:46:03 +10:00
CasualPokePlayer 49807254f6 remove ComImport usage for Win32ShellContextMenu, also /s/ShlobjImports/Shell32Imports 2023-11-15 18:58:06 -08:00
CasualPokePlayer 4660e4d25b Slightly improve ShellLink com interop, resolve todo (seems to work perfectly fine) 2023-11-15 13:29:09 -08:00
CasualPokePlayer 3bc44d6756 Remove SHGetMalloc usage, use Marshal.FreeCoTaskMem instead
Marshal.FreeCoTaskMem can be used instead (assuming we're >= Win2000), see https://learn.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetmalloc
Also fix pszDisplayName allocation (needs * sizeof(char) due to unicode funny)
2023-11-15 12:55:40 -08:00
CasualPokePlayer 956af3577e Change a lot of CharSet.Auto's to CharSet.Unicode, explicitly put W postfix on relevant winapi functions/structs, put ExactSpelling = true for winapi functions.
We don't care for ANSI functions (no way somebody is going to run BizHawk on Windows 98/ME), and ExactSpelling = false (default) has a minor runtime cost, so this should be slightly more performant.
Also, replace ShellLink COM usage with custom COM interaction code. See https://github.com/TASEmulators/BizHawk/issues/3767. The same is yet to be done for the two other COM usages.
2023-11-15 11:33:50 -08:00
James Groom 391190b6d4
Inline `ICoreFileProvider.DllPath` 2023-11-14 18:05:32 +10:00
CasualPokePlayer edf5f15134 slightly improve xlib bindings, should now in theory work for 32 bit systems 2023-11-11 11:16:52 -08:00
CasualPokePlayer f9c85172e4 try to fix issues where reloading Citra when recording a movie results a crash due to the temp user folder having active file handles
unloading the dll would forcefully evict these file handles. unknown whether Linux does the same with the .so, perhaps it does, perhaps it doesn't. not really any extra harm if it doesn't
2023-11-11 09:11:17 -08:00
James Groom e9468cb0c8
Check FWIDs in database at runtime
see e119bdda3
2023-11-09 08:51:29 +10:00
CasualPokePlayer 282417c9af pass DateTimeFormatInfo.CurrentInfo here instead of suppressing the warning
fixes 5ae15c8
2023-11-08 11:58:38 -08:00
CasualPokePlayer 5ae15c89c3 remove invariant culture here
fixes 6e20a3091c
2023-11-08 10:32:37 -08:00
CasualPokePlayer e119bdda39 fix up firmware entries which had spaces in the id 2023-11-08 10:26:01 -08:00
CasualPokePlayer 5095f0c999 force real bios use when gba cart is present for melonds
melonds' freebios doesn't work with gba cart usage
2023-11-08 08:27:42 -08:00
CasualPokePlayer 6a80336787 add some more ds fw hashes 2023-11-06 09:46:34 -08:00
CasualPokePlayer 1f58596d3c misc fixes/cleanups in ds firmware handling 2023-11-05 17:00:20 -08:00
CasualPokePlayer eeb824d035 add in Chinese / Korean language options, remove unneeded firmware checks 2023-11-04 05:33:14 -07:00
CasualPokePlayer e672e9afec oops forgot to rebuild 2023-11-04 05:30:42 -07:00
CasualPokePlayer 6184182f34 better handle DSi country code and fix extended languages 2023-11-04 05:25:33 -07:00
CasualPokePlayer a73cb3839b oops forgot to rebuild 2023-11-03 07:35:58 -07:00
CasualPokePlayer e98e31e5c7 deduplicate nds/dsi bios loading code 2023-11-03 07:34:07 -07:00
CasualPokePlayer 169137c204 throw an error if the loaded nand region isn't supported by the loaded dsiware title
this normally wouldn't be needed but people seem to think it's a good idea to shove the same nand file in every region slot in the firmware config
2023-11-03 05:43:10 -07:00
Morilli 7d4b21f9c7 Fix some analyzer warnings
also improve globalconfig readability
2023-11-03 11:56:23 +01:00
CasualPokePlayer cdf89f4b09 add in missing asms in SubMain asm ver check 2023-11-03 03:52:32 -07:00
CasualPokePlayer 7e5efea4bc fix symlinks in BizHawk.SrcGen.SettingsUtil 2023-11-03 02:33:45 -07:00
CasualPokePlayer b1f16cf437 fix ordinal loading (im pretty sure what was being done before only actually worked for dllimport and not getprocaddress)
cleanup some more win32 imports (new LoaderApiImports, although it isn't used for OSTailoredCode to avoid hard dep on BizHawk.Common, probably want to use same hack on LoaderApiImports)
2023-11-02 22:48:12 -07:00
CasualPokePlayer 195846f2f3 cleanup c# side melon code 2023-11-02 13:55:12 -07:00
CasualPokePlayer 53c8deae29 add in touch screen input smoothing, fixes #3397 2023-11-02 13:53:27 -07:00
CasualPokePlayer a046ea901b fix username and message not being correctly set for dsi nand 2023-11-02 11:59:05 -07:00
CasualPokePlayer 415fb95861 fix dsi nand writes failing 2023-11-02 11:50:41 -07:00
CasualPokePlayer be9a92ca07 fix something with dsi bios loading
this doesn't really seem to be needed but this is what upstream does
2023-11-02 11:09:29 -07:00
CasualPokePlayer 3ab1a32f34 fix last commit for real this time 2023-11-02 10:48:09 -07:00
CasualPokePlayer 9e9307ace0 fix last commit -.- 2023-11-02 10:46:33 -07:00
CasualPokePlayer 720a45120b fix nds/dsi bios files not being loaded correctly 2023-11-02 10:41:17 -07:00
CasualPokePlayer 7e91e1b260 fix dsi firmware checking 2023-11-02 10:16:30 -07:00
CasualPokePlayer 1ca7b0295d c# changes for melonDS update 2023-11-02 10:12:56 -07:00
CasualPokePlayer 3cbdbf7cd4 fix importing/exporting dsi savs 2023-11-02 10:11:59 -07:00
CasualPokePlayer 659ff2e8de update melonDS
lots of changes needed here as core has done quite a bit of changes (which in any case has reduced needed changes in upstream for our fork, so easier merging in the future)
gl crap is better done with fancy template classes to wrap around the msabi/sysvabi runtime check (so comparing with nullptr or using it as a bool works as expected)
c# changes pending (API has changed)
2023-11-02 09:17:48 -07:00
Moritz Bender e1fb97dee6
Update snes9x to 1.62.3 (#3729)
* Update snes9x to 1.62.3

* Update snes9x submodule

* Implement msu1 for snes9x

* do less bullshit initialization

* Update snes9x submodule
2023-11-02 18:48:54 +03:00
Morilli abc5ddcc6e Fix lua console null output logging
- closes #3810
- fixes bb7f933429
2023-11-02 13:56:20 +01:00
CasualPokePlayer ebaafe2658 error check against gl context being failed to be set to current
in practice this should only throw when someone has a broken driver
2023-11-01 08:03:17 -07:00
James Groom fe2cd58bee
Mono launch script: allow multi-instance, copy to file AND console
haven't tested this, but I have tested all the individual parts as they've been implemented in my local branch for NixHawk
2023-10-31 12:06:42 +10:00
CasualPokePlayer 151908104e Revert 683aa263a0 2023-10-28 22:50:05 -07:00
James Groom aaf46cc9a7
Fix `--lua=*.luases` being interpreted as a script (fixes #3814) 2023-10-29 06:38:06 +10:00
James Groom db589ee856
Update contributing.md to reflect recent subprojects 2023-10-29 06:25:09 +10:00
James Groom deae681225
Fix Git instructions for contributors 2023-10-29 05:58:04 +10:00
CasualPokePlayer c8f109eb34 fix ctrl/shift (probably more) with alt kb layout handling with RawKeyInput
also fix dinput not filtering out unknown key events (TODO: shouldn't this be handled higher up the input chain? surely we wouldn't want to respond at all to unknown key events)
2023-10-28 08:21:44 -07:00
CasualPokePlayer b98942dcfd minor fix in CWDHacks.Get()
fixes 686119c7dd
2023-10-28 05:10:31 -07:00
CasualPokePlayer 686119c7dd organize and cleanup a ton of win32 imports, do cleanup elsewhere with that 2023-10-28 05:05:36 -07:00
feos b4a6b06fba tastudio: disable rec mode when drawing inputs
see #2144
2023-10-28 13:35:01 +03:00
feos bb0bd415a6 address #3500 2023-10-28 12:20:22 +03:00
James Groom ef864536de
Fix typo'd `return;` in non-void method
fixes 672536305
2023-10-28 12:12:15 +10:00
James Groom 6725363052
Allow drawing on LuaPictureBoxes on multiple windows (fixes #3778)
fixes bb4ba2184, though it wasn't working correctly before that either
this whole thing needs deduping
2023-10-28 02:35:27 +10:00
James Groom 14c00d0ca2
In Debug config, don't use `Assembly.Load(byte[])` for ext. tools
apparently messes with the debugger IDK
2023-10-27 08:21:11 +10:00
James Groom 940c392fa3
Prevent selecting 'None' placeholder ext. tool 2023-10-27 06:46:20 +10:00
James Groom dae3fe3803
Fix import placement in Analyzers
fixes 362269c98, presumably, and f2a479410
2023-10-26 23:03:14 +10:00
CasualPokePlayer 5c475ce898 Remove BizExvoker (unused for a long time, probably never going to use it)
Move MemoryBlock stuff and FPCtrl over from BizInvoke to Common
Move imports over to Common, remove unused imports
Do tons of cleanup here
2023-10-26 03:22:28 -07:00
CasualPokePlayer 00e0a5fb2a fix default value arrays source generation
this change doesn't actually do anything since we don't even have arrays in default values
2023-10-25 22:55:46 -07:00
CasualPokePlayer f2a4794105 Use source generation for SettingsUtil.SetDefaultValues 2023-10-25 22:52:06 -07:00
feos 5ce0aa24a5 fix #3481 2023-10-25 21:02:08 +03:00
feos 7ac9bc26cd mame: add reset 2023-10-25 20:30:32 +03:00
CasualPokePlayer edcd2cd548 fix Ctrl+C not SIGINT'ing, I think 2023-10-24 07:36:17 -07:00
James Groom 736abf32ac
Ensure FFmpeg DL target is writable before downloading 2023-10-24 23:11:54 +10:00
James Groom 542a0e08be
Fix `Process.Start` crash in Play Movie dialog on Linux 2023-10-24 22:50:44 +10:00
James Groom c7f438c240
Use loaded movie's filename for A/V filename 2023-10-24 22:46:22 +10:00
James Groom 65060c00f1
Fix/mute code style warnings 2023-10-24 22:32:17 +10:00
CasualPokePlayer b88c7e6baa fix warning from last commit 2023-10-23 22:48:42 -07:00
CasualPokePlayer cd4e58eaca make CRC32/SHA1 hashers not die when on a non-x86_64 platform 2023-10-23 15:41:27 -07:00
CasualPokePlayer 12a63e27e6 give more memory to melonDS
fixing OOM with 512MB games
2023-10-23 05:52:36 -07:00
CasualPokePlayer ee7fc95fac fix some usings 2023-10-22 19:28:23 -07:00
CasualPokePlayer 8941bac1ce remove BinaryQuickSerializer
see #3768
2023-10-22 19:23:32 -07:00
CasualPokePlayer cfdf607373 fix #3807 2023-10-22 01:05:32 -07:00
CasualPokePlayer 19552d6408 update Silk.* packages to 2.18.0, remove Silk .config hack (unneeded with this update) 2023-10-21 20:51:42 -07:00
CasualPokePlayer 220268809c Remove EvDevKeyInput. Pretty much useless in practice as apparently you need higher permissions (e.g. root) to access keyboard evdev files, direct evdev is more reserved for gamepads (already handled by SDL2)
Turn these OS specific key input impls into instantiable classes instead of a ton of static classes, a lot nicer to work with as don't need to constantly check CurrentOS to know which class to use, only the factory needs to check that!
2023-10-20 21:43:23 -07:00
CasualPokePlayer 62501ad859 do minor cleanup with EvDevKeyInput, add in define for switching from X11KeyInput to EvDevKeyInput 2023-10-16 16:08:19 -07:00
CasualPokePlayer d4602cf831 add Quartz key input handler
unused of course since no macOS support, but there when we need it
2023-10-15 19:06:53 -07:00
CasualPokePlayer b6d4b0dc81 remove some unused stuff 2023-10-15 04:17:06 -07:00
CasualPokePlayer a35ee381d0 Add evdev keyboard handler. Untested and unused for now 2023-10-15 04:11:32 -07:00
kalimag f3796756bc
Add setting to control what happens when double-clicking RAM watch (squashed PR #3802)
* Make RamWatch double click action configurable
* Make RamWatch Enter press share double-click behavior
* Make RamWatch double-click action default to poke
* Fix code style
* Reduce total diff size from extracting method
* Make sub-menu text more specific
2023-10-15 14:43:10 +10:00
CasualPokePlayer b5ebee7cd5 move RAWINPUT imports to a new file 2023-10-12 20:49:17 -07:00
CasualPokePlayer 5fc37d6aac add RAWInput keyboard handler, use it for OSTailoredKeyInputAdapter / SDL2
re-removes hard DirectInput dependency
2023-10-12 00:36:13 -07:00
CasualPokePlayer a320928a6f fix IOE in X11KeyInput.Update() 2023-10-11 17:48:23 -07:00
CasualPokePlayer ac3913ded3 add user agent for cheevo stuff 2023-10-05 02:05:31 -07:00
feos c438faeec9 added more mame mnemonics 2023-10-04 19:07:20 +03:00
James Groom 27c5b0e9b7
Also clear `GuiApi`'s image cache when restarting 2023-10-04 05:21:22 +10:00
CasualPokePlayer 0d4a1a6b26 fix #3781 2023-10-02 22:32:30 -07:00
CasualPokePlayer af4e9200ed fix memory leak when screenshotting/framedumping with osd with d3d9 display method 2023-10-02 21:08:48 -07:00
CasualPokePlayer a1ec56d748 allow for TMDs which are larger than needed
quick hack fix to allow DSiWare games to work again, proper fix is to remove the extra 0x700 bytes of certificates in the tmd db which aren't needed
2023-09-28 16:03:15 -07:00
James Groom 15d663f68d
Silence "not found" error when building w/o Git
fixes 096066150
2023-09-29 04:49:18 +10:00
Morilli a71b228c70 reset "change" variables on tasproj load
Doing this fixes tasproj prompting for save on bk2->tasproj conversion (which makes no sense) and generally seems senseful to do; there is no point ever having a changelog or changes bool set just after loading a tasproj
2023-09-27 21:54:35 +02:00
James Groom cf809ed5aa
Override duration for onboarding OSD message
fixes a351dcc55
this is why you test changes even when you're sure they will compile
2023-09-26 23:52:52 +10:00
CasualPokePlayer e0b44a5582 fixup crosshair lua display to account for recent changes, it should work in all cases now, no more stupid requiring specific settings 2023-09-25 22:29:41 -07:00
CasualPokePlayer 2b00e33560 add TransformPoint impl for NDS 2023-09-25 22:18:44 -07:00
CasualPokePlayer a59e9a1ce8 fix PBO push/popping (glGetIntegerv wants GL_PIXEL_PACK_BUFFER_BINDING not GL_PIXEL_PACK_BUFFER, of course)
add method for transforming touch screen coords back into host screen coords
2023-09-25 22:17:56 -07:00
CasualPokePlayer f6a77a8410 Fix touch coord calc when OpenGL is not available, probably fix off by one here too (I think this is right?) 2023-09-25 05:35:15 -07:00
CasualPokePlayer 07126b1e48 c# changes for 3d5c2120f2 2023-09-25 05:26:17 -07:00
CasualPokePlayer 3d5c2120f2 Use upstream melonDS's code for doing screen control madness. This means too that both the OpenGL and software renderer will *present* frames with OpenGL (and if this is unavailable, screen control madness will be unavailable)
also fix up this code so upscaling works properly
c# changes pending
2023-09-25 05:21:53 -07:00
CasualPokePlayer 0dc4b94475 fix old pbo not being preserved on reading the framebuffer 2023-09-24 05:42:14 -07:00
CasualPokePlayer f63e50c91b C# changes for melonDS OpenGL support
also add in a way to debug OpenGL stuff (only built when uncommenting a define)
also do various cleanup here
2023-09-24 04:28:42 -07:00
CasualPokePlayer f71f2fafc6 OpenGL renderer support in melonDS! 2023-09-24 04:26:55 -07:00
CasualPokePlayer acff619034 add more mmap heap to melonds, check against 0 sized arrays in roms 2023-09-17 12:37:37 -07:00
CasualPokePlayer 9c389eadf7 fix seeking not working, put this back to shared_ptr (no make_shared<T[]> in c++17 :( ) 2023-09-17 12:23:53 -07:00
CasualPokePlayer fe3d34dbd3 fix most cursed UAF 2023-09-17 03:23:07 -07:00
CasualPokePlayer 0496d45e09 melonDS's logs already have a newline 2023-09-17 02:52:44 -07:00
CasualPokePlayer e222dbc554 fix space/tabbing here 2023-09-17 02:45:08 -07:00
CasualPokePlayer 0ad1f7feb2 waterbox has fun limitations 2023-09-17 02:16:25 -07:00
CasualPokePlayer 871c2bba8f oops, that wasn't supposed to be deleted 2023-09-17 02:02:10 -07:00
CasualPokePlayer 178939f76c woops 2023-09-17 01:03:42 -07:00
CasualPokePlayer d3dff6fe37 update c# side for melonDS changes 2023-09-17 00:58:49 -07:00
CasualPokePlayer f7786e81b9 Merge melonDS master, do massive cleanup/splitup of code
also, get rid of the GBA SRAM hack where it was inserted in ROMs (gross), instead figure out the size and give melonDS a blank save of the correct size
GBA SRAM is also now in SaveRAM
also add in more memory domains (SRAM/ROM/DSi BIOS)
2023-09-17 00:58:05 -07:00
Morilli 2fc9f719e5 Fix #3685 again 2023-09-12 16:44:31 +02:00
CasualPokePlayer 4f98bf101c fix minor oops in previous commit 2023-09-11 22:57:04 -07:00
CasualPokePlayer d788e603fd force usage of bios on gambatte when recording a movie
(except when the rom cant be booted with bios, then enable bios sync setting is respected)
also cleanup this code a lot
2023-09-11 22:52:48 -07:00
CasualPokePlayer ed0dbb77ae expose SRAM for GBA rcheevos
see https://github.com/RetroAchievements/rcheevos/pull/265
2023-09-11 21:29:34 -07:00
James Groom c08edb3df3
Remove old documentation source
ABSOLUTELY PROPRIETARY
2023-09-12 01:13:20 +10:00
James Groom e68a49aa51
Use absolute path to `ffmpeg` in `FFmpegWriter` 2023-09-11 16:31:23 +10:00
James Groom a7ee68f47d
Fix typo in Satellaview header model
see #3749
2023-09-10 22:38:19 +10:00
James Groom 2647bb8300
Log FFmpeg download fails to stdout in Debug config 2023-09-09 16:56:06 +10:00
James Groom a351dcc557
Make the onboarding flow impossible to miss
This should motivate widening the scope of profiles, and may also inspire additional features for onboarding such as paths/firmware, screen layout, or keybinds.
2023-09-05 05:47:03 +10:00
James Groom e9b7ec8fc4
Update readme to current release filename format 2023-09-05 05:32:30 +10:00
James Groom ebe3cad66c
Change UI label for `Config.AcceptBackgroundInput`
see #671
2023-09-02 01:47:52 +10:00
Moritz Bender 362269c982
Establish basic style analyzer rules (#3759)
* Fix analyzer nullable error

can't disable them in CA1305 xdd

* .editorconfig -> .globalconfig

* Add basic set of style analyzer rules

* dotnet format output

* Some additional fixes

* Apply manual simplification

* Transform some enum comparisons

* fix typo

* add TODO
2023-08-30 23:08:21 +02:00
James Groom 7193313e12
Comment-out unreachable code
fixes a315b122c
2023-08-25 11:59:35 +10:00
James Groom e86a0d6dda
When editing watches, select notes field 2023-08-25 11:41:51 +10:00
CasualPokePlayer 1575949762 upgrade these for c#10 2023-08-22 19:34:51 -07:00
CasualPokePlayer 19443040c4 slightly refactor OSD layer, no longer uses a render callback, rather it will do its logic itself and has its own enable drawing flag 2023-08-22 17:57:46 -07:00
CasualPokePlayer 53563657fe Implement blending enable/disable for IGL_GDIPlus (more just moving it away from GDIPlusGuiRenderer)
Fix GDI+ used for display method (got broken in some cleanup commits ago)
Remove some things meant to be removed in the last commit (fixes debug build)
2023-08-22 17:16:48 -07:00
CasualPokePlayer 8c1d996b80 simplify IGL 3: Remove ability to make custom blend states (was never used), only have 2 functions for blending, one enabling "normal" blending, one disabling blending (with alpha copy semantics) (only 2 which actually were used) 2023-08-22 16:46:21 -07:00
Morilli 757ae3293f Resolve part 4 of #3735 2023-08-22 19:22:34 +02:00
kalimag 54b1b2e421 Stop moving executables' pdbs to dll folder 2023-08-20 14:24:30 +10:00
kalimag d459aaaf6f
Dispose disks in Nyma cores (#3751) 2023-08-19 23:27:05 +02:00
Moritz Bender c57657bbd4
Set inputdisplay correctly on LoadState (#3747)
* Set inputdisplay correctly on LoadState

* Add explanatory comment for future generations
2023-08-19 23:22:55 +02:00
Morilli ebf1950873 fix #3686 2023-08-18 04:58:38 +02:00
Morilli 4fea6752f3 Fix #3685 2023-08-18 04:06:28 +02:00
Morilli ea7683a996 Bump LangVersion to 10 2023-08-16 16:30:06 +02:00
CasualPokePlayer c17f65fb10
Slightly increase sleep time while paused, should resolve #3737 2023-08-14 20:11:22 -07:00
Morilli c10d2927ca bump AnalysisModeUsage to Recommended
fixes CA2211, CA2215, CA2241, CA2251

silence CA1816 because it's unnecessary

reduce severity of CA2201 because I like the concept but don't wanna fix them all
2023-08-14 14:18:45 -07:00
Morilli 71e08e27b9 bump AnalysisModePerformance to Recommended
fixes CA1841

silence CA1805 and CA1822 because of sheer amount of violations

reduce severity of CA1838 because I don't wanna fix it lol
2023-08-14 14:18:45 -07:00
Morilli 18a742195b bump AnalysisModeReliability to Recommended 2023-08-14 14:18:45 -07:00
Morilli 612ebb8959 Bump AnalysisModeMaintainability to Recommended 2023-08-14 14:18:45 -07:00
Morilli 6e20a3091c Fix CA1305 and bump to error 2023-08-14 14:18:45 -07:00
Morilli 8e557b0b9d bump AnalysisModeGlobalization to Recommended
fixes CA1304, CA1309, CA1310, CA1311

temporarily silences CA1305

reduce severity of CA2101
2023-08-14 14:18:45 -07:00
Morilli 4c00ec54e7 Bump AnalysisLevel, remove legacy rules 2023-08-14 14:18:45 -07:00
CasualPokePlayer 44dce7dc08 remove unused experimental code 2023-08-13 14:24:03 -07:00
CasualPokePlayer ae42858560 fix D3D9 crashing on minimize 2023-08-13 14:21:58 -07:00
Moritz Bender 56ac05f9a3
Allow migrating non-SHA1 hashes on movie import (#3733)
* Allow migrating non-SHA1 hashes on movie import

* Show more descriptive message on missing hash

* actually return null here

* Simplify LsmvImport

* add more hash HeaderKeys

* remove unnecessary IEmulator argument

this could potentially fix bugs even

* explicitly cast to ReadOnlySpan
2023-08-13 23:11:48 +02:00
Morilli b6f1bae7e1 Revert erroneous change to bk2 loading for now
fixes 0af4d125b2
2023-08-13 21:14:35 +02:00
Morilli 9131c8ab2e Change SmvImport to import to Snes9x core; various fixes
the importer is still far from perfect, but it should handle some things better than before

- closes #3177
2023-08-13 20:01:56 +02:00
Morilli 0af4d125b2 revert bd9ec3c57d, fix bk2 framebuffer load 2023-08-12 18:16:54 +02:00
CasualPokePlayer 4ad7736ca7 add some kind of 3DS support to retroachievements, probably 2023-08-12 04:22:46 -07:00
CasualPokePlayer 72cc192661 Create a new project to house the IGL WinForms controls (Bizware.Graphics.Controls), thus allowing for Bizware.Graphics to be netstandard2.0
also move GDIPlus IGL stuff over from BizwareGL to Bizware.Graphics
2023-08-12 03:56:02 -07:00
CasualPokePlayer 9139870e7e fix bug from 3622fe76f9, remove variable unused since 3622fe76f9 2023-08-11 16:59:14 -07:00
CasualPokePlayer dfd7caaacb use glBufferSubData when possible instead of glBufferData, gives a nice performance boost 2023-08-11 16:57:20 -07:00
CasualPokePlayer 3622fe76f9 simplify IGL 2: Combine BindArrayData and DrawArrays calls into one Draw call: only supports triangle strips (already limitation with D3D9), assumes start is 0, binding and drawing are implicitly merged into a single call (in practice BindArrayData would just save the vertex pointer to some class level variable for DrawArrays, so this is just better all around) 2023-08-11 15:33:08 -07:00
CasualPokePlayer 64abeddc2b simplify IGL 1: Combine Clear and SetClearColor, remove support for non-color buffers (not supported by GDI+, never actually used) 2023-08-11 13:30:46 -07:00
Morilli 978c396b82 oops revert this 2023-08-11 21:23:19 +02:00
Morilli ebf93e60ae mark citra script and executable as executable 2023-08-11 19:52:12 +02:00
CasualPokePlayer f2942feb93 minor cleanup for 47c2d315ce 2023-08-11 00:34:07 -07:00
CasualPokePlayer 47c2d315ce drop OpenGL 2.0 support (annoying to support given we already require FBO support, which is an extension pre-3.0, and VAOs also fall under that same group, polyfilling this is just bleh)
in practice this means nothing for any Windows user (since D3D9 would support whatever garbage GPUs that had OGL 2.0 support but not OGL 3.0 support), so it only affects Linux users with GPUs from 2004-2010 (~2011 GPUs supported at least OGL 3.0), and those users probably have options to still use BizHawk if they really wanted to anyways

With this, switch the GuiRenderer (main) pipeline to use VAOs/VBOs instead of the old legacy fixed pipeline crap (other shaders still need that crap for now, so there is still a fallback path there). Also add in way to "free" the vertex layout (since it now can hold a VAO/VBO which needs to be freed once the vertex layout is finished)
2023-08-11 00:30:47 -07:00
CasualPokePlayer eefbe7bf62 add in fenv guards for ares64
should prevent issues in case a game decides to change rounding mode (unlikely in practice)
2023-08-10 20:01:21 -07:00
CasualPokePlayer 2e75645cbd merge ares upstream, resolves #3710 2023-08-10 17:15:19 -07:00
CasualPokePlayer 8260a59bcf fix #3726 2023-08-10 00:07:10 -07:00
Randomno 1cf5af83dd
Change Odyssey 2 framerate (squashed PR #3728)
* change o2 framerate

* result
2023-08-10 04:11:02 +10:00
Morilli a496f09f07 Fix SmvImport CRC32 import
closes #3727
2023-08-09 11:14:31 +02:00
Morilli fe845ce8ef Don't double-load movies from the PlayMovie dialog 2023-08-07 14:14:22 +02:00
CasualPokePlayer 20ca53dfd1 Apply e186514c39 for copy mechanism
Also fix the formatting of the string, we want : here not .
2023-08-07 02:45:54 -07:00
Morilli e186514c39 Display day length for 1+ day long movies 2023-08-07 11:40:24 +02:00
CasualPokePlayer f8b3914126 fix broken movie length calculation
this happened to work by chance most of the time, but for movies which cant store the number of milliseconds in an int, it breaks down
2023-08-07 02:32:32 -07:00
CasualPokePlayer 97d9ce35e2 Disable Hybrid Screen setting in Citra for now 2023-08-06 03:21:22 -07:00
CasualPokePlayer 59fcdb04cd Remove Bizware Vector2/3/4 and Matrix4 in favor of System.Numerics's implementation
Many many cleanups in BizwareGL and DisplayManager and GDI+ code
2023-08-06 03:21:22 -07:00
CasualPokePlayer bb96825c60
System.Data.SQLite -> Microsoft.Data.Sqlite (#3719)
* Swap System.Data.SQLite with Microsoft.Data.Sqlite

Apparently this is supposed to be a kind of successor? https://learn.microsoft.com/en-us/dotnet/standard/data/sqlite/compare

* Add e_sqlite3 libs to Assets, prevent runtimes folder creation with OS tailored libs plopped in, delete System.Data.SQLite references
2023-08-05 17:45:40 -07:00
James Groom 2150061c91
Update LuaConsole.cs 2023-08-06 03:01:44 +10:00
CasualPokePlayer ca756a2df3 dont use ContextMenu
winforms net6 doesn't support it, and "replacement" ContextMenuStrip doesn't work for this use case, so just create a slim wrapper using CreatePopupMenu/DestroyMenu directly
2023-08-04 00:54:42 -07:00
CasualPokePlayer ba8656e345 slight tastudio tweaks wrt 12830bab4e 2023-08-03 21:03:20 -07:00
James Groom 1ebc006873
Update unit test to match new config schema
fixes 12830bab4
2023-08-02 18:03:06 +10:00
CasualPokePlayer dc34b0b1a9 add in Wine/Proton detection, used to prevent D3D9 from being used if a user ends up using wine/proton (as often it seems D3D9 wine/proton just doesn't work and crashes in weird ways, sometimes *after* checking the renderer so it wouldn't fallback to OpenGL anyways)
Probably can add in some first time message box warning the user that wine/proton isnt supported, although we probably shouldn't block wine/proton (considering it's the only option for some distros with read-only filesystems, like the Steam Deck)
2023-07-31 23:02:30 -07:00
CasualPokePlayer 67e5505899 Rework OpenGL version support checking to be more robust, slightly rework OpenGL context creation request (they can now explicitly request the core profile) 2023-07-31 22:32:30 -07:00
CasualPokePlayer a2ea86fae0 add NET6_0 guard for GetValueOrDefault backports 2023-07-31 22:01:05 -07:00
CasualPokePlayer 811275cca8 Rewire memory domain pointers after reset in Citra
Add 3DS framerate in PlatformFrameRates
2023-07-31 21:22:57 -07:00
CasualPokePlayer 1ee2ef928c Prevent SDL from doing windows message pumping
Normally SDL doesn't do this as we don't ever call SDL_PumpEvents (or anything that calls that). However, OpenGL context creation code ends up calling WIN_PumpEvents regardless. This usually doesn't matter, however, in some cases, this can cause crashes, mainly with loading a state with Citra, as that ends up re-constructing its frame dumping OpenGL context (yeah that's dumb and useless but it's mostly harmless, outside of this message pumping). The WIN_PumpEvents calls appear to be unneeded anyways, so we can safely disable message pumping here.
2023-07-31 15:55:36 -07:00
CasualPokePlayer 7322e3b9d3 Fix minor graphical issues in Citra due to OpenGL state not being properly saved and restoring during presentation 2023-07-30 00:13:30 -07:00
James Groom 3ceb0fab8e
Hopefully fix GitLab CI being unable to build ExternalProjects 2023-07-30 14:52:12 +10:00
CasualPokePlayer 871036c81a fix bug which caused the temporary user folder to not be used during movies with Citra
also slightly adjust the linux build script so other compilers can be easily used, add comment explaining why libc++ is used
2023-07-29 19:57:34 -07:00
CasualPokePlayer a315b122c5 force OpenGL renderer in Citra for now
the software renderer doesn't seem to be functional and the code for blitting it is incomplete
2023-07-29 17:03:53 -07:00
CasualPokePlayer 33f1c5472a add missing Dispose() for Citra ctor failure case 2023-07-29 16:26:29 -07:00
CasualPokePlayer 0a72dc046f add in missing mnemonics for 3DS controls 2023-07-29 15:22:56 -07:00
CasualPokePlayer 3f8c0cc952 fix oops in 3DS default controls 2023-07-29 15:17:10 -07:00
CasualPokePlayer e62c972ca3 Check in citra dll/so, add in build scripts/linux glslangValidator for citra, some minor cleanup handling with citra input handling 2023-07-29 15:09:17 -07:00
CasualPokePlayer ff6834617f add default controls for 3DS 2023-07-29 00:13:57 -07:00
CasualPokePlayer f1e9f10454 Minor reworking of IGL OpenGL context creation
Try to regain compat with < OpenGL 3.0 users, better checks against OpenGL availability
2023-07-28 23:26:51 -07:00
CasualPokePlayer e7f4ad8220 fix exception popping up when Dispose()'ing DisplayManagerBase with OpenGL 2023-07-28 22:19:15 -07:00
CasualPokePlayer 12830bab4e Add in flag to IStatable to hint to the frontend that it should avoid rewind (not entire sure with the name, maybe SlowStates would have been better? trivial to mass-rename anyways)
Add in logic to not create the main rewinder if this flag is true, and add in logic to tastudio to avoid the main greenzone captures (instead only capture on branch save/load)
2023-07-28 22:07:31 -07:00
CasualPokePlayer 1ad3ed2216 minor cleanups in IGL_OpenGL 2023-07-28 15:38:43 -07:00
CasualPokePlayer 7a2f1532bf fix DS being shown upside down when ScreenControlNDS is used
fixes 78f5e75534
2023-07-28 14:54:02 -07:00
CasualPokePlayer f7448495b0 correct 3DS rom check in XmlGame
fixes 8c41b09108
2023-07-28 05:37:47 -07:00
CasualPokePlayer 8c41b09108 Add in 3DS rom extensions to rom filter
make it so CIAs past index 0 will be "installed" (mostly only relevant for movies, as the temp user folder is wiped each session in deterministic mode)
ensure XMLs won't load 3DS roms into memory (same reasoning as other hack, might be >=2GiB)
do some cleanup with this code
2023-07-28 05:33:56 -07:00
CasualPokePlayer 4ff157f652 add in Citra for global core config menu 2023-07-27 22:41:03 -07:00
CasualPokePlayer bd2c2ffc86 /s/_3DS/N3DS 2023-07-27 22:37:06 -07:00
CasualPokePlayer 5607845b24 Add in screen control filter for Citra port 2023-07-27 22:20:50 -07:00
James Groom 4217be1528
waterboxhost: Add missing import, tests now run 2023-07-28 04:42:45 +10:00
CasualPokePlayer ff57303821 Add in 3DS entry for SystemIDDisplayNames 2023-07-24 00:39:50 -07:00
CasualPokePlayer 89b387e50d add memory domains for Citra 2023-07-24 00:14:11 -07:00
CasualPokePlayer 67510f3b56 cleanup 3DS firmware handling
seems these methods aren't really supported in citra, so I guess have fun dealing with manually setting firmware files
2023-07-23 21:22:26 -07:00
CasualPokePlayer 18b81a2011 Fixup OpenGL version reporting; add debug print for 3DS firm installing message
fixes 8ae947fed7
2023-07-23 20:09:17 -07:00
CasualPokePlayer 41ee99999a Add 3DS firmware handling 2023-07-23 19:55:58 -07:00
CasualPokePlayer 739c35c174 fix #3692 2023-07-23 03:58:46 -07:00
CasualPokePlayer dd5cbc92af set WRAM as the main memory domain in SameBoy
see #3711
2023-07-23 03:44:09 -07:00
CasualPokePlayer 2d17290918 add in RetroAchievements support for Uzebox and TI83 2023-07-23 03:38:29 -07:00
CasualPokePlayer 01cc5ca476 fix a RetroAchievements PSX hashing edge case 2023-07-23 03:28:54 -07:00
CasualPokePlayer e87536ea8f commit C# parts for Citra port
not committing the dll yet until some more things are ready
2023-07-23 03:14:26 -07:00
CasualPokePlayer cdfb8d67e8 commit citra submodule 2023-07-23 02:46:37 -07:00
CasualPokePlayer bed66e2cd4 fix minor oopsies / dumbs with previous commit 2023-07-23 02:16:24 -07:00
CasualPokePlayer 8ae947fed7 prep work for easier OpenGL interop for cores 2023-07-23 01:54:36 -07:00
CasualPokePlayer 78f5e75534
Kill Bizware .NET Framework deps (#3702)
The main objective in this PR is to get rid of the main .NET Framework dependencies in Bizware packages. This PR doesn't do that completely per se, still having .NET Framework used for WinForms Controls, but that can easily be swapped over for whatever UI framework we use next as long as it exposes native window handles in some way.

For this PR, it does some reorganizing of Bizware, splitting Bizware.OpenTK3 and Bizware.DirectX into 3 packages based on usage; Bizware.Audio, Bizware.Graphics, and Bizware.Input. These packages in the future probably could have more functionality moved into them, but for now they are largely just a reshuffling of the Bizware.OpenTK3 and Bizware.DirectX packages.

As both SlimDX and OpenTK3 are .NET Framework, they have been removed in this PR. Their replacements are as follows:

SharpDX: DirectSound, Direct3D9
Vortice: XAudio2, DirectInput/XInput
Silk.NET: OpenAL, OpenGL
SDL2-CS / native SDL2: OpenGL context management, new gamepad backend (replacing OpenTK's role for gamepads)
native X11: New key input backend (replacing one of OpenTK's roles for keyboards)

GLControl has been replaced by custom made control which just uses SDL2 for context management.

The OpenTK input backend has been replaced with a combination of SDL2 and an OS tailored key input backend (DirectInput on Windows, X11 on Linux, and planned to be Quartz on macOS). This is just represented on the user side as "SDL2" without mentioning the key input backend. This does mean for a while DirectX will be mandatory on Windows again, until a RAWINPUT backend is written for handling key input on Windows for the SDL2 input backend.
2023-07-23 00:35:43 -07:00
James Groom 26b39fb56c
Update wbox readme
fixes 3701aef5a
2023-07-19 20:00:13 +10:00
James Groom ee18249953
Update SECURITY.md 2023-07-16 13:40:13 +10:00
zeromus fe47285394 trim cheat lines, since it's virtually impossible to copy text from a web browser without getting junk around it 2023-06-30 19:42:28 -04:00
James Groom 89fc9c940d
Fix typo
fixes c60e6d498
2023-06-25 01:40:32 +10:00
James Groom c60e6d498e
Copyedit readme 2023-06-25 01:39:38 +10:00
YoshiRulz 6b87e3ac91
Fix being unable to open SubGBHawk via system menu (fixes #3693) 2023-06-25 01:23:14 +10:00
SG d8ea4547d4
Add StringFormat to pixeltext DrawString parameters (squashed PR #3690)
* Add StringFormat to DrawString parameters

* Revert whitespace changes

* Code style nitpicks, cache `StringFormat`

---------

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2023-06-21 09:20:54 +10:00
YoshiRulz 4ee7e4cad7
Add deduper utility to RAM Watch 2023-06-13 23:43:53 +10:00
YoshiRulz 25ad59d895
Replace type check with enum (int) comparison in `Watch` 2023-06-13 23:43:53 +10:00
YoshiRulz ca8a183f38
Add `WatchList.InsertRange` and use when duplicating rows in RAM Watch 2023-06-13 23:43:53 +10:00
YoshiRulz 4d4887ee31
Fix `WatchList.Insert` not setting dirty flag
not sure if this was problematic in practice
2023-06-13 23:43:53 +10:00
Morilli 13dd04a026 Fix #3679 2023-06-07 23:01:54 +02:00
CasualPokePlayer 9e5fb35f7a Add in missing TMD for Cave Story Japan 2023-05-29 02:25:36 -07:00
Morilli c3ec8393d0 Optimize Remove[Prefix|Suffix] by using ordinal string comparison 2023-05-27 03:50:46 +02:00
adelikat f6135abe65 disabled log generator caching in bk2, it has playback problems not found it basic testing, need to revisist this later 2023-05-26 19:19:08 -05:00
YoshiRulz fde16fa5a3
Hide D=>A TAStudio columns w/ Ares64, rename C* buttons in header
initial implementation by @thekovic
2023-05-27 03:01:49 +10:00
nattthebear 3d5b068c2f QuickNES: Slightly tweak palette rounding computation
Fixes #3668
2023-05-26 07:01:56 -04:00
nattthebear 8a94204a2f QuickNES: Fix loading 64 color palettes
Since ee0992158d, we were using the default palette for deemphasis modes, instead of computing it based off of the input palette.
2023-05-26 06:46:56 -04:00
adelikat cb721a39da de-engineer some movie stuff, ILogEntryGenerator is not an important abstrations now that Bkm is gone 2023-05-25 15:01:30 -05:00
adelikat 33ed05b20c BK2LogEntryGenerator - further optimize by doing the control ordering once 2023-05-25 13:32:58 -05:00
Morilli f697a828c8 Optimize CreateLogEntry
Surely this is safe, right?
2023-05-25 13:19:16 -05:00
Morilli 8a46af0b25 Fix lua project with analyzer change 2023-05-24 18:44:21 +02:00
adelikat 05f8747321 optimize movie recording loop a bit, do not create a new instance of log entry generator every frame, avoids a lot of memory allocations with mnemonic lookups that do not change for the lifetime of the movie, also a slight optikmization in Bk2 controller, co-authored iwth morilli 2023-05-24 11:18:42 -05:00
YoshiRulz 9daac2c26f
Add and use extension method `string.StartsWith(char)`
reverts 333ce98a7, partially reverts bc16a2cda
2023-05-23 09:18:25 +10:00
adelikat 333ce98a71 low hanging fruit speed up in inputlog loading using str[0] == c instead of str.StartsWith(c) 2023-05-22 12:50:30 -05:00
YoshiRulz 681ef72cd5
Change wording of checkbox for `Config.SuppressAskSave` 2023-05-21 16:22:54 +10:00
CasualPokePlayer ccf2c61a23 fix #3664 2023-05-20 03:11:40 -07:00
CasualPokePlayer 86ce62f4de give Lady Sword BRAM
see https://github.com/TASEmulators/BizHawk/issues/3663#issuecomment-1555740061
2023-05-19 23:58:03 -07:00
CasualPokePlayer 08ead80385 make these callback delegate caches static (why didn't this warn that static was possible here?) 2023-05-19 22:30:17 -07:00
CasualPokePlayer 3c53f52c6d remove some debugging crap from c9e30060d4 2023-05-19 22:28:32 -07:00
CasualPokePlayer 542cf2433a Reduce allocation spam in Jaguar disassembly functions 2023-05-19 22:26:45 -07:00
CasualPokePlayer c9e30060d4 Rework the Reader/Writer callbacks for the WaterboxHost, a bit nicer here working with the userdata
Also make it so initial loading uses the zstdstream or filestream directly instead of a memorystream with it all loaded
something of note, not really happy with how these read/write callbacks get used in practice, it seems they get spammed in small chunks
for initial loading, it's 8192 byte chunks each, which can be a LOT of callbacks, depending on core size (gpgx is ~500, MAME is ~22K)
similarly, savestates suffer a similar issue, although instead it's a ton of 4096 byte chunks (page size eh?)
The unmanaged <-> managed transitions obviously are not exactly performant, and I imagine are taking a significant portion of the time here
Perhaps some buffering strategy should come in on the native waterboxhost side to alleviate callback spam?
2023-05-19 22:26:45 -07:00
James Groom 37ef137aa9
Update GitLab CI links in readme 2023-05-20 11:27:00 +10:00
adelikat 99a6b1d339 add hotkey for toggling the 'Display Nothing" feature 2023-05-19 20:05:16 -05:00
CasualPokePlayer 8a13793d00 Turn WaterboxHostNative ReturnData to a struct, misc cleanups elsewhere 2023-05-18 22:21:17 -07:00
CasualPokePlayer 332143ea8d invalidate cram caches when poking, maybe 2023-05-18 21:14:57 -07:00
CasualPokePlayer 63ec0cecc7 fix picodrive's cram/vsram sizes 2023-05-18 19:29:42 -07:00
CasualPokePlayer 473d3cc294 fix #3662 2023-05-18 19:09:08 -07:00
CasualPokePlayer ea854ff39d make discohawk form a bit bigger
all the formats supported means the box wasn't big enough to display all of them lol
2023-05-18 07:28:10 -07:00
CasualPokePlayer fe79b69123 (Partial) .nrg support
TAO support isn't complete, a lot of sanity checking isn't done yet
2023-05-18 07:14:14 -07:00
Morilli 3d30f52e7c Fix LogWindow treating everything as ascii
hopefully this doesn't break anything
2023-05-17 14:54:18 +02:00
CasualPokePlayer f11b5bc9c4 fixup CDI generated subcode (not sure why I did that)
have it generate "leadin" and "leadout" tracks for multisession discs... this is almost certainly wrong for leadin (doesn't matter so far), leadout is probably right...
2023-05-12 20:47:29 -07:00
CasualPokePlayer 0e6d5fb708 minor addendum to 2012b083f6 2023-05-12 03:28:14 -07:00
CasualPokePlayer 2012b083f6 Fixup multisession handling with MDS and improve its track/sector size handling, also maybe fix it entirely? (not sure if this ever worked)
Move the various synths using the CUE SS_Base to a file, mostly just a nicer organizational change as MDS and CDI use one of these but not CUE
Misc improvements elsewhere
2023-05-12 02:44:05 -07:00
CasualPokePlayer 1f3068fe77 fix synthesizing disc tracks with multisession discs when the first session has a large amount of tracks
FirstRecordedTrackNumber only works here for the first session, for future sessions it doesn't work and may just result in out of range exception
2023-05-11 02:57:14 -07:00
CasualPokePlayer 858ea372a9 Fix Jaguar CD detection for Caves of Fear 2023-05-11 02:28:33 -07:00
CasualPokePlayer 1adb2b45a2 (VirtualJaguar) swap user and interrupt stack pointers when going to supervisor mode for external interrupts, fixes Black ICE
also slight improvements to cd bios hle (don't really do much, but better safe than sorry)
2023-05-10 23:04:49 -07:00
CasualPokePlayer e3c27813b6 fix the fix in 45a0c8cffb 2023-05-10 05:37:03 -07:00
CasualPokePlayer 45a0c8cffb another fix for 9551394 2023-05-10 05:23:24 -07:00
CasualPokePlayer c52a950c41 Fix dumping CCDs with multisession discs, fix oopsies with CDI parsing giving the wrong last recorded track number 2023-05-10 04:58:37 -07:00
CasualPokePlayer 2379650e1b Implement error and verbose message callbacks for rcheevos (currently they just output to the console)
Implement debug option for hashing with more pure rcheevos logic, mostly just useful for figuring out disc hashing issues
2023-05-10 03:11:50 -07:00
CasualPokePlayer d3a689c589 Resolve #3650. Also fix a bug which caused overwriting lua scripts with a new lua script to fail (fixes 380e459bec) 2023-05-08 03:01:41 -07:00
CasualPokePlayer f677e92504 fix TOC field mixup with Jaguar CD 2023-05-07 22:09:52 -07:00
CasualPokePlayer 40e21b716e fix 955139454a 2023-05-07 02:59:38 -07:00
CasualPokePlayer 7d5a1d5c98 Lower CPU usage from RCheevos http stuff 2023-05-07 02:41:07 -07:00
CasualPokePlayer 68cd28c28a fix directionals and other common buttons being dropped from controller inputs when hotkeys overrode controller inputs 2023-05-07 01:00:13 -07:00
YoshiRulz 4a752f66b7
Add Analyzer to require checking or discarding `TryGetValue`
I'm pretty sure all the existing instances were intended to use `default(T)` if
the key isn't present, except maybe the cheatcode converters but I don't care to
rewrite those at the moment
2023-05-05 06:27:15 +10:00
YoshiRulz 384a4e1e18
Bump version info post-release 2023-05-04 08:10:07 +10:00
YoshiRulz 99fb1ba905
Fix typo in release package script
fixes e0e5a68c5
worked in CI ¯\_(ツ)_/¯
2023-05-04 03:18:14 +10:00
YoshiRulz e0e5a68c50
Refactor release package script, shrinking output slightly
more shrinking may be possible, but there are diminishing returns, especially
when MAME is so big (#3505)
2023-05-04 03:08:06 +10:00
CasualPokePlayer 36fae775d4 Prevent annoying waits when using firmware manager with DSi NANDs present 2023-05-03 02:19:56 -07:00
CasualPokePlayer 5f6d70ac46 Fix random crashes with rcheevos. The issue was that rc_runtime_t can store pointers to itself, which is bad when rcheevos expected the user to allocate that struct and did not provide functions for that. I've added that functionality and PR'd it (I'll fixup submodule to point to upstream when it's merged)
PR can be found here: https://github.com/RetroAchievements/rcheevos/pull/239
Also minor fixes wrt the ContinueWith usage in InternalDoRequest
2023-05-03 01:54:57 -07:00
Morilli 76c8b33f16 least-effort "fix" octoshock exe load hard crash 2023-05-03 07:40:39 +02:00
Morilli a5efc8f93b fix, update and rebuild octoshock project 2023-05-03 07:35:53 +02:00
CasualPokePlayer 248b8ab984 Fixup bad threading (no, you cannot access rcheevo's _runtime in a separate thread! main thread use only!). Should fix up some random crashes
Slightly change up the request model, now InternalDoRequest does not block
Fixup logic of ToSoftcoreMode (and comments so it isn't screwed up again)
2023-05-02 21:47:09 -07:00
CasualPokePlayer 8ef1d93891 Prevent UI thread deadlocking on Dispose()'ing rcheevos stuff 2023-05-02 17:18:31 -07:00
CasualPokePlayer b9a983f1fe Fix typo causing crash with SMSHawk with RetroAchievements & Hardcore Mode 2023-05-02 17:08:39 -07:00
CasualPokePlayer 41d94e4262 Change up multithreaded rendering in melonDS
Instead of creating a new Task and destroying it every frame, just create a new thread and call the delegate when needed.
Also allow for rendering a frame twice, this is actually possible anyways (albeit rarely done).
This should also help against a potential deadlock due to the Task.Wait call on the UI thread (which has special semantics in WinForms)
Also minor nitpicks in RCheevos code
2023-05-02 16:52:48 -07:00
CasualPokePlayer b517228475 Refactor rcheevo http requests (again). This should better protect against the UI thread deadlocking due to Task semantics with WinForms 2023-05-01 03:50:49 -07:00
vadosnaprimer e065263ff2 MAME does mark bad dumps, but it only keeps their info if good dump is not known yet. once a good dump appears, its info replaces the bad one.
so simply sticking to newest rom sets is the safest, otherwise there's little user control, because there's no global list of all known dumps with indications which of them are bad and what to use instead.
2023-04-30 14:07:08 +03:00
CasualPokePlayer 2010f5e15c disable leaderboard list form, for now, and revert efa6505
see that commit for details on issues with this form (this form is kind of useless anyways, meh)
2023-04-28 18:37:06 -07:00
YoshiRulz 8a5921182e
Add Analyzer to disallow discarding locals e.g. `_ = result;`
fixes 70bd081a9, a2185d9ef
2023-04-29 01:52:43 +10:00
CasualPokePlayer a2185d9ef0 fix 70bd081a93
The entire call is skipped in release mode if you place it inside a Debug.Assert.
2023-04-28 03:14:56 -07:00
CasualPokePlayer a6deee765f fix stackoverflows in mame with games using k001006_device (e.g. windheat) 2023-04-27 00:55:12 -07:00
YoshiRulz 66f26bb1c1
Create and use `IDictionary.GetValueOrPut{,New,New1}` extensions 2023-04-27 17:25:03 +10:00
YoshiRulz fa48278354
Enable MEN014 and fix noncompliance
"Prefer TryGetValue"
2023-04-27 17:24:55 +10:00
CasualPokePlayer c8589de5c6 fix #3648 2023-04-26 23:05:11 -07:00
sverx 102dee9622
Fix some SMS audio inaccuracies (squashed PR #3602)
* fix noise audio channel on SMS VDP

* Update SN76489sms.cs

also, white noise is generated by XORing bits 0 and 3, not 0 and 1, on an SMS/GG VDP

* Update SN76489sms.cs

reverting commit #7b857e7
2023-04-27 15:46:52 +10:00
Daniel Parks dd30a389a0 TAStudio/PatternsForm: Block deletion of loop entry which would cause a crash 2023-04-27 15:14:44 +10:00
Daniel Parks 07ba36956a TAStudio/PatternsForm: Allow looping to entry zero 2023-04-27 15:14:44 +10:00
YoshiRulz 0960661509
Remove a dependency on Git from build scripts
see ddc3e929e
2023-04-26 22:36:11 +10:00
YoshiRulz 9cbd238997
Convert `GenericDebugger.DisasmOp` to a struct 2023-04-23 19:08:19 +10:00
YoshiRulz 70bd081a93
Refactor `ServiceInjector` 2023-04-23 17:41:55 +10:00
YoshiRulz c5d6a66e01
Resolve TODO re: memoisation in `GenericDebugger` 2023-04-23 17:41:55 +10:00
YoshiRulz 4b001a48a9
Dedup `GenericDebugger.EngageDebugger` 2023-04-23 17:41:55 +10:00
YoshiRulz ac3e76309f
Use helper prop here 2023-04-23 17:41:54 +10:00
YoshiRulz bcdeec369a
Move commented-out code to `#if false` 2023-04-23 17:41:50 +10:00
Morilli 396e876320 Optimize TAStudio column drawing by caching PlayerNumber for each column name
TAStudio previously called `PlayerNumber(...)` for each visible cell with the column's name, only to determine whether its player number is odd or even.

Because that function uses regex and is potentially called extremely often, this had a noticable impact on fps.

I've decided to just cache the odd/even playernumber result in a dictionary for faster access, which while not being my preferred way of handling this at least results in a decent speedup.
2023-04-23 00:15:43 +02:00
Morilli afb92870e4 TargetName -> AssemblyName
this fixes the winforms designer in Rider, let's hope it doesn't break anything though
2023-04-22 13:51:13 +02:00
CasualPokePlayer f3c58d816d fix #3643 2023-04-22 04:39:12 -07:00
CasualPokePlayer a8aced4474
Workaround crashes in MAME's zlib decompression code (#3639)
* Workaround crashes in MAME's zlib decompression code (see https://github.com/TASEmulators/BizHawk/issues/3615)

* Use using block, only catch InvalidDataException (what will be thrown if the zip entry has an unsupported (likely lzma) compression method)
2023-04-20 09:29:03 -07:00
CasualPokePlayer efa6505826 prevent crashes when loading up leaderboard forms
apparently some game had 2002 leaderboards which caused a crash when making a form for every one of them in the leaderboard list, I guess windows has a limit on the amount of forms that can be active at once?
this is a quick hack to prevent such a crash, design needs to be rethought
2023-04-20 09:00:16 -07:00
Morilli 1356bc6a3f i guess this is required oops
fixes bc16a2cdaa
2023-04-20 12:31:33 +02:00
Moritz Bender bc16a2cdaa
Implement IBasicMovieInfo interface for IMovie (#3634)
* Implement IBasicMovieInfo interface for IMovie

this allows parsing basic movie fields into an own class that is independent from Bk2Movie/TasMovie

This is mainly useful for the PlayMovie dialog which can now load movie information from files on disk without having to go through the entire Bk2Movie/TasMovie loading process

* don't potentially iterate input log twice

* Optimize LoadFramecount
2023-04-20 10:43:02 +02:00
CasualPokePlayer 9b278d3130 fix space/tabbing in gamedb_n64 from cf88e61875 2023-04-19 23:26:32 -07:00
CasualPokePlayer cf88e61875 c# side changes to use the split ares' binaries
resolves #3614 and #3617
2023-04-19 23:23:12 -07:00
CasualPokePlayer 3701aef5a4 split ares binaries for interpreter vs recompiler 2023-04-19 23:22:00 -07:00
CasualPokePlayer 8cf820da4d Don't send invalid paths to MAME
Waterbox cores can't create files anyways, and trying to send in ? might make MAME try to make the directory anyways (which crashes due to the syscall for that being unimplemented), while "" will not do that
2023-04-19 18:41:05 -07:00
nattthebear 281e3be4a8
bare minimum implementation of getpid/getppid (#3641) 2023-04-19 21:29:45 -04:00
CasualPokePlayer a9dc924c11 Changes in MAME to partially address #3565
Needs #3641 pulled for it to be properly fixed
2023-04-19 18:03:45 -07:00
YoshiRulz 681629adb1
Add Waterbox core build dirs to .gitignore
fixes b5e2a0c42
2023-04-20 08:23:44 +10:00
YoshiRulz b5e2a0c422
Move some .gitignore entries to nested dirs 2023-04-19 15:59:34 +10:00
YoshiRulz 675c38dee8
Ensure .gitignore entries are absolute when they should be 2023-04-19 15:59:34 +10:00
YoshiRulz 0890185b51
Remove .gitignore entries for subprojects that no longer exist 2023-04-19 15:59:34 +10:00
CasualPokePlayer 955139454a fix Jaguar CD homebrew hashing wrt retroachievements 2023-04-18 22:38:13 -07:00
CasualPokePlayer a46c47d271 git ignore build directory for waterboxhost 2023-04-18 21:35:58 -07:00
CasualPokePlayer 4268c50617 Fix RetroAchievements rich presence not working
Cleanup this code so it plays nicer with BizHawk's "run everything on the main thread" (+ WinForms not playing nice with async methods)
Resend any game session start / achievement unlocks / leaderboard triggers if they failed. Wait for all achievement unlocks and leaderboard triggers to finish on Dispose() (mostly for catching them when user closes BizHawk)
Update rcheevos to 10.7.0
2023-04-18 21:35:58 -07:00
Morilli 988ae27292 Fix #3638
I don't even
2023-04-18 17:40:11 +02:00
YoshiRulz 20e5c43bc8
Add `--socket_udp` CLI flag 2023-04-18 19:15:02 +10:00
YoshiRulz 23b571eac9
Disable code style analysis rule MEN010
"Avoid magic numbers"
2023-04-18 16:28:49 +10:00
Morilli 0f2a76bd5e lazy-initialize zstd contexts to reduce alloations
This becomes mostly apparent in the PlayMovie dialog where one zstd instance is created for every single movie, churning significant amounts of memory even though zstd isn't even used
2023-04-16 15:33:40 +02:00
CasualPokePlayer 98afdb8993 (Actually) Fix DeltaSerializer's `GetDelta`
fixes 2838a5412a
2023-04-15 22:04:21 -07:00
CasualPokePlayer 2838a5412a Fix DeltaSerializer's `GetDelta`
Fixes AppleII/C64 states sometimes crashing when a disk change actually happens
2023-04-15 21:33:51 -07:00
YoshiRulz ebd36f08b6
Downgrade `System.Drawing.Common` to 6.0.0 and enable Unix impl.
fixes 65ffa3fc2
testroms run now, CBB checking GambatteSuite runs but I'm guessing it does too
2023-04-16 10:49:18 +10:00
YoshiRulz 7ed58bb061
Remove reference to `VersionInfo.gen.cs` from clean script
fixes ddc3e929e
2023-04-16 10:27:43 +10:00
YoshiRulz 6ffe99c006
Use the right `Sameboy` ctor in testroms project
This reverts commit 379eeeeed8.
2023-04-16 10:14:46 +10:00
YoshiRulz 236c748b1a
Downgrade MSTest to 2.2.9
fixes 65ffa3fc2
2.2.10 and above result in the error `The type or namespace name 'TestContext'
could not be found`
2023-04-16 10:14:43 +10:00
YoshiRulz a1fe557d31
Re-enable MA0020 and fix noncompliance 2023-04-16 09:02:40 +10:00
YoshiRulz 65ffa3fc2e
Blindly update NuGet deps
temporarily disabled MA0020
2023-04-16 09:02:40 +10:00
YoshiRulz da65ad6226
Fix CS0168 warning 2023-04-16 09:02:36 +10:00
100thCoin 85a481f93f
Nes.Core now updates the DataBus in WriteMemory() (#3633)
* Nes.Core now updates the DataBus in WriteMemory()

This will fix open bus execution following write instructions.

* Properly formatted changes in previous commit

I have addressed the requested changes.
2023-04-15 21:24:27 +03:00
CasualPokePlayer 52276f7d47 Remove TLS use in MAME
This might not affect things in practice, but its usage was likely dangerous so best not use it.
2023-04-14 20:15:14 -07:00
YoshiRulz f2880d8325
Update `CoreComm` init in testroms project to new signature
fixes 76a29d356
2023-04-15 10:36:43 +10:00
YoshiRulz 379eeeeed8
Make `Sameboy` ctor public so testroms project can use it
fixes 9528a2030
2023-04-15 10:36:39 +10:00
vadosnaprimer c90fcbbd54 mame: numerator 0x4000'0000 and above breaks mp4 on youtube... 2023-04-14 19:32:29 +03:00
vadosnaprimer 8e6eac7bfd mame lua doesn't expose settings for optional dip switches, so hide them for now
38498868fc/src/mame/toaplan/toaplan2.cpp (L2960)
2023-04-14 19:23:50 +03:00
CasualPokePlayer 7bd848f9f9 fix #3631 2023-04-14 00:22:48 -07:00
YoshiRulz 59562d8930
Fix `[RequiredService]`s checked for `null` 2023-04-13 08:53:14 +10:00
YoshiRulz 5f77a310c5
Remove `ServiceInjector.ClearServices`
This call in `ToolManager.Restart` was to set `[{Optional.Required}Service]`
props to `null`, but the tool form would get `Close`d immediately afterwards, so
it never gets the chance to hit the `null` path if one exists. However, some
tools are written as though they keep the stale value, for example attempting to
call a cleanup function on it in their `Closed` event handler. These will now
work as intended.
`[OptionalService]`s that can't be satisfied are set to `null` by
`ServiceInjector.UpdateServices`, so clearing those isn't necessary, and
`ClearServices` has no other usages.
2023-04-13 08:53:14 +10:00
Moritz Bender ddc3e929e9
Use source generation for VersionInfo (#3625)
* Use source generator for VersionInfo

* Remove leftover hacks

* Use same fallbacks as NixHawk when Git not available

---------

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2023-04-12 21:14:44 +02:00
CasualPokePlayer 03aa420bd5 fix last issue in #2951 properly 2023-04-09 23:43:28 -07:00
vadosnaprimer ffd8e6897a don't keep multidisk flag on after it was set once
don't replace mame rom info icon and text with multidisk ones if there are emulation issues
2023-04-09 23:52:50 +03:00
vadosnaprimer fadc445f9c mame: print more rom info 2023-04-09 23:40:59 +03:00
vadosnaprimer 76a29d3563 allow setting OSD message duration for its callbacks
todo: simulate optional args for Action?
2023-04-09 22:08:37 +03:00
vadosnaprimer b4394af824 mame: report emulation status via rom info icon and text
mame won't care too much about how good the dump is, but it will warn you in orange that emulation is imperfect, and in red if it's broken. we happen to use rom status icon to inform the user about multidisk bundle, so using it for mame info feels natural, because it directly affects what users can safely submit to tasvideos. we warn them about bad dumps because it's banned for pub, so it's similar here.
2023-04-09 21:38:56 +03:00
vadosnaprimer 8aa03c3059 mame: add emulation issues info to RomDetails
reorder file hashes and names so it looks aligned
2023-04-09 19:22:19 +03:00
YoshiRulz 0469c04372
If a PSX `.bin` is loaded, try synthesising a `.cue`
this works but takes forever, which I'm guessing is because somewhere it's
trying to hash the whole file. that's not a new problem though
2023-04-09 10:06:06 +10:00
CasualPokePlayer 5f0683c1ae Fix #3616
This had two issues. One, relative pathing with dlls is a no-go. Our hackery with changing cwd seems to confuse lua, and while it can find the dll, it fails to load as Windows (at least) does not consider cwd for loading up dlls it appears. Secondly, people using luasockets never actually loaded up the luasockets dll, rather we were bundling it ourselves. From history it seems this was due to our lua being compiled with CLR/.NET and that didn't play nice with exceptions? Doesn't seem to be an issue anymore, but we should probably still bundle luasockets for the time being given it used in many different projects which use the same script with multiple different emulators (thus our own sockets are simply not usable).
2023-04-08 16:01:36 -07:00
YoshiRulz 8ef8d4efb9
Remove unused `kernel32` import 2023-04-09 08:02:35 +10:00
vadosnaprimer e06d32c70a Revert "throttle shouldnt act as paused when rewinding"
This reverts commit 007442773a.

fixes #3268 but unfixes #3053, which should instead be fixed by something that doesn't lead to breaking other things and the author of the "fix" giving up on the project
2023-04-08 23:07:34 +03:00
YoshiRulz 45ab749caf
Fix N64 (Ares64) system menu having a blank space on Mono 2023-04-09 05:34:19 +10:00
vadosnaprimer 4ea80410b8 mame: fix bios selection menu
api changed in 952b4ecc67
2023-04-08 10:46:28 +03:00
YoshiRulz f73a3bdea6
Fix poor merge
fixes 75e75ca97
2023-04-08 06:40:10 +10:00
YoshiRulz 75e75ca971
Update readme 2023-04-08 06:34:57 +10:00
feos e4143669e1
Update README.md
add MAME
2023-04-07 23:18:49 +03:00
YoshiRulz 619c25b69a
Bump version 2023-04-08 05:12:57 +10:00
Morilli ac3a8c7e5f update bizhawk url in publish scripts 2023-04-07 19:09:10 +02:00
YoshiRulz 6e77c7348f
Improve error message when core does not implement mem callbacks 2023-04-08 02:16:29 +10:00
CasualPokePlayer fbe1f9b53e fix parameter order with DeltaUpdate calls
fixes 8737203f3a
2023-04-04 23:54:05 -07:00
CasualPokePlayer 389c6ebec5 fix 2mg detection
fixes 8737203f3a
2023-04-04 23:52:05 -07:00
CasualPokePlayer 8737203f3a Add ISaveRam implementation for AppleII, fix bug which caused DiskIIController to not be correctly stated 2023-04-04 23:46:26 -07:00
CasualPokePlayer 9ae5f786de fix #3610 2023-04-04 05:04:00 -07:00
CasualPokePlayer b8f3f089f2 Add in ISaveRam implementation for C64, using the deltas of disks.
Add in better docs for `DeltaSerializer`.
Fix C64 not remembering disk changes when swapping disks (swapping disks essentially just reset the disk previously)
2023-04-04 04:28:47 -07:00
CasualPokePlayer ece5d2548a Fix peeks/pokes with the new memory domains in Virtu
fixes a311b3b6f3
2023-04-02 23:37:48 -07:00
CasualPokePlayer 2fc4683e6b Fix edge case with C64 states when CurrentDisk is different 2023-04-02 06:58:56 -07:00
vadosnaprimer d95cd4becb mame: use biggest int multiple of 60 as a framerate numerator
denominator is determined by taking refresh attoseconts `as_ticks(numerator)` which reduces the initial 64bit value to what can be used for video

mame needs flat 60fps for screenless machines, so we use a numerator that is a multiple, while also being a tiny bit more accurate than with 1,000,000,000
2023-04-02 16:54:28 +03:00
CasualPokePlayer df71de64c8 speedup delta stating with disks with simple track tracking, should be within acceptable performance bounds (more or less) 2023-04-02 03:48:24 -07:00
CasualPokePlayer 3ffb6c3b52 hack fix #3606 2023-04-02 02:41:59 -07:00
YoshiRulz 53e0907f61
Check-in Linux binary of mGBA 2023-04-02 19:23:55 +10:00
CasualPokePlayer 86b33bd3ce fix DeltaSerializer validation checks and add one more 2023-04-02 02:19:52 -07:00
CasualPokePlayer 6f7f94a06e don't give the same name to each track when stating
fixes 00e2fea901
2023-04-02 02:12:25 -07:00
CasualPokePlayer 00e2fea901 Create `DeltaSerializer`, uses simple RLE encoding so the serialized delta isn't huge, use it for C64 EasyFlash and Disks 2023-04-02 02:10:51 -07:00
vadosnaprimer 9a3cd21bc4 update mgba to latest master 2023-04-02 12:03:11 +03:00
CasualPokePlayer 5ca888a8af misc cleanups with previous commit 2023-04-01 19:57:47 -07:00
CasualPokePlayer a311b3b6f3 Change up AppleII's "main ram" domain, add aux ram domain
The main ram previously seemed to just be a slice of the system bus between 0 - 0xbfff. this posed two problems: that area is banked, and that area could represent main ram or aux ram. main ram now represents all of the ram main ram can possible represent, ordered like how the core orders it (which the way it does it happens to be very natural in any case), and a new aux ram domain does the same thing but with aux ram
Also some other changes put in so Rider wouldn't error on building Virtu
2023-04-01 19:54:26 -07:00
YoshiRulz 333fd6d533
Add Gentoo to Linux run script 2023-04-02 07:50:05 +10:00
YoshiRulz 2a70b532d5
Disable Hex Editor's "Save [to rom file]" when not looking at rom
fixes 2e19451b0
not the "ROM" domain, but the "File on Disk" domain
2023-04-02 05:30:34 +10:00
CasualPokePlayer cd4c3cc353 fix various C64 state issues
Main changes here would be with cartridges, as it appears cartridge stating was just broken since 4ffcc9654a (that's all the way back in 1.13!!!) due to SyncStateInternal not actually getting used
a few other components also had some variables missing from states
disks are not properly savestated yet, it appears it was commented out due to an assumption that disks were write only, but this isn't the case
some other cleanups here, none of them actually affecting state quality here
2023-04-01 07:06:56 -07:00
CasualPokePlayer e4a6d9db67 set initial rtc for epson and sharp rtc in new BSNES
this is needed due to the complete lack of time.rtc handling (and even then, if SaveRAM doesn't exist this is needed)
2023-04-01 02:13:47 -07:00
CasualPokePlayer a31ecb7c0f fix new BSNES with subbsnes
fixes 22e35c45fc
2023-04-01 01:26:38 -07:00
CasualPokePlayer 22e35c45fc hook up RTC support for new BSNES, resolves #3577 2023-04-01 01:23:16 -07:00
CasualPokePlayer 116bc26556 add in entries for the various regions for DSi NAND, add in handling to autodetect region
tentatively add in the bios7i and bios9i hashes from nointro
2023-03-31 20:22:23 -07:00
CasualPokePlayer 6284c98d72 hook up clear NAND flag and dsiware saveram support
do various cleanups
enforce clear NAND flag for movie recording and retroachievements hardcore mode
2023-03-31 06:23:58 -07:00
CasualPokePlayer 8ce2aac868 implement flag to clear DSi NAND of any titles that already happen to be installed, implement functions for importing/exporting dsiware sav files
(c# changes using these pending)
2023-03-31 06:21:56 -07:00
CasualPokePlayer 7ae3f447d6 correct default for showing lightgun cursor (a casual player probably wants this on)
fixes c7ea4cbd0e
2023-03-30 20:33:00 -07:00
CasualPokePlayer c7ea4cbd0e Correct neutral Y position for SNES lightguns (fixes old BSNES lightguns), add in a controller button for offscreen shots for Snes9x and new BSNES, add UI option to disable drawing lightgun cursor for new BSNES 2023-03-30 20:25:26 -07:00
CasualPokePlayer 6ea7fd04d8 "fix" issues with ares recompiler not playing nice with states
these issues really come under fault of bad invalidation handling, for now just deal with the state size hit and dont invis these blocks of memory
2023-03-30 19:44:09 -07:00
CasualPokePlayer f7b83be5ab fix lightguns in snes9x, support offscreen shots in snes9x (UI yet to be hooked up), fix lightguns in new bsnes, add option in bsnes to disable drawing light gun cursors (UI yet to be hooked up) 2023-03-30 16:34:04 -07:00
YoshiRulz 380e459bec
Copy from an editable template file when making a new Lua script 2023-03-30 21:43:27 +10:00
CasualPokePlayer 02caa5fcbb update ares, fix some lingering issues with recompiler 2023-03-29 04:00:10 -07:00
CasualPokePlayer 00152bbaa9 add in dedither filter bit for VI_CONTROL for ares64, fixes #3587 2023-03-28 20:22:20 -07:00
CasualPokePlayer a12d11b2ea tweak llvm setup script, now puts in a relative git dir and some possible failure states are fixed 2023-03-28 19:20:36 -07:00
CasualPokePlayer c8a2eca83f use FastMap for sys bus peeks for hypernyma, resolves #3598 2023-03-28 18:18:27 -07:00
CasualPokePlayer 4e83bccd3b make sure wbx c++ files also have NDEBUG defined, fixes 1643bf0 2023-03-28 18:02:46 -07:00
CasualPokePlayer 1643bf01bc add NDEBUG define for wbx cores (release only), fixes #3594 2023-03-28 17:23:06 -07:00
CasualPokePlayer 0a2d4405f0
Revamp Waterbox Setup (#3529)
* Waterbox setup has been revamped to use the latest llvm parts (llvm 16 for compiler_rt/libunwind/libcxx/libcxxabi).
* Clang is now possible to use, and is the preferred compiler (due to superior performance).
* Supported compilers are now clang 14/15/16, and gcc 12.
* Other core updates are mixed in.

---------

Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
2023-03-28 16:53:33 -07:00
YoshiRulz 44322e6a7d
Add comments to Gambatte's `ITraceable` impl. 2023-03-26 12:49:52 +10:00
YoshiRulz 35f1e6b58b
Fix GitLab CI trying to build CMake project librcheevos 2023-03-26 12:37:00 +10:00
YoshiRulz eee8a7e0cc
Split `Config.AVWriterResize` tuple into 2 props
fixes 32d2f2311
2023-03-26 12:36:24 +10:00
YoshiRulz 32d2f23117
Persist A/V settings to disk properly (resolves #1226) 2023-03-25 22:36:50 +10:00
YoshiRulz 10423abdf9
Invert default of `LuaWinform.BlocksInputWhenFocused` (resolves #3591)
fixes 0591d2e2d; now matches 2.8 behaviour
just no pleasing you people
2023-03-24 09:46:24 +10:00
nattthebear 64512851fe
Fix up some more issues with Waterbox and 0 size elf data (#3590) 2023-03-23 08:28:10 -04:00
YoshiRulz 480b51b274
Add keybind (hardcoded) for MainForm context menu 2023-03-22 13:28:39 +10:00
YoshiRulz 4368629e67
Use bulk peek in `IMemoryApi.{ReadByteRange,HashRegion}` 2023-03-20 12:33:08 +10:00
YoshiRulz a8bffab1b6
Add unit tests for `IMemoryApi.HashRegion` 2023-03-20 12:33:02 +10:00
YoshiRulz 32e36e28bb
Skip drawing RAM Watch OSD outside window bounds 2023-03-20 08:16:05 +10:00
nattthebear eb5ebda53f
Waterbox: Fix various problems with 0 length sections and segments (#3586)
* waterbox: fix crash when init_array is size 0

* also handle 0 len segments
2023-03-18 19:50:32 -04:00
YoshiRulz 291a14315d
Use a cache for `tastudio.onqueryitemicon` 2023-03-18 11:22:15 +10:00
YoshiRulz cddc092b96
Improve docs for some `tastudio` Lua lib callback functions 2023-03-18 10:27:37 +10:00
YoshiRulz 52fd5e41f8
Improve docs for `event.on{save,load}state` 2023-03-18 10:11:55 +10:00
YoshiRulz f28067e7fc
More improvements to mem hook docs
fixes 6b4f3355f
2023-03-18 10:00:50 +10:00
Morilli 44bf67e8a3 Add Satellaview entry to path config 2023-03-17 10:40:09 +01:00
CasualPokePlayer 3c7fd55f70 Mode2/2336 support (fixes #3387) 2023-03-16 20:17:55 -07:00
YoshiRulz 6c8d4c536a
Clear `MovieSession._queuedMovie` if rom load fails (resolves #3582)
for #3582, `MovieSession.QueuedCoreName`, which gets passed to `RomLoader`,
evaluated to a nonexistent core name and couldn't be cleared
2023-03-17 11:50:30 +10:00
YoshiRulz f565eeef74
Add test case for mem callback removing itself 2023-03-17 07:32:04 +10:00
YoshiRulz f021159931
Split `FirmwaresMenuItem_Click` 2023-03-17 06:37:38 +10:00
YoshiRulz 39fda0fa17
Change wording of missing firmware warning 2023-03-17 06:37:38 +10:00
YoshiRulz 7c3e35f3e7
Fix window title after loading rom via FW config (fixes #3581) 2023-03-17 06:37:38 +10:00
YoshiRulz eb6f2864ff
Only set `<PathMap/>` for Release builds
fixes 5dc385e22; also skip `SolutionDir` override if building projects
individually
2023-03-17 06:37:38 +10:00
YoshiRulz 6b4f3355fd
Correct mem callbacks docs (resolves #3522) 2023-03-16 14:48:17 +10:00
kalimag 565a0b9141 Implement specialized `IMemoryCallback` collection 2023-03-16 14:30:19 +10:00
kalimag 06c06dd35c Add some tests for MemoryCallbackSystem 2023-03-16 14:30:19 +10:00
YoshiRulz 3d442bc6c4
Make ext. tool RUN scripts pass args through to `dotnet`
see 5bdbe110e
2023-03-16 12:39:26 +10:00
YoshiRulz 5dc385e228
Set `<PathMap/>` so per-machine paths don't leak into build output 2023-03-16 12:39:26 +10:00
YoshiRulz 389fd5015f
s/ProjectDir/MSBuildProjectDirectory/ in MSBuild include files
I don't think anything was broken, this is just a precaution
2023-03-16 12:39:26 +10:00
YoshiRulz 3c86ec6964
Fix or mute remaining warnings in ancillary .NET projects 2023-03-16 12:39:25 +10:00
YoshiRulz 38b5f16ccc
Refactor enable Roslyn Analyzers flag
kept the old name, but turns out `-p:RunAnalyzersDuringBuild=true` also works
...good thing the old name wasn't documented
2023-03-16 12:39:25 +10:00
YoshiRulz c816400e54
Update schema in `.stylecop.json` to match package version 2023-03-16 12:39:21 +10:00
YoshiRulz a8f26ccf08
Add `.bps` patch applier
currently unused, like `.ips` patch applier; will return to hook up to loading
(currently flagged as good dump if base was), write unit tests, and add a way to
save patched rom to disk
2023-03-16 03:32:46 +10:00
YoshiRulz eb13e46f45
Refactor `.ips` patch applier
`RomGame` is never initialised with a non-null `patch` so this was and is unused
2023-03-16 03:32:41 +10:00
CasualPokePlayer c2297283f4 Add in CDI support in DiscoHawk
(just needed to allow the file to be drag n' dropped)
2023-03-14 20:55:17 -07:00
CasualPokePlayer 809523d465 fix cheevo hashing for Jaguar CD (accounting for the proper multisession support chances)
add some notes to CDI, suppress one of the parsing sanity checks (not sure if it's right)
2023-03-14 20:39:46 -07:00
nattthebear 91e6d8023a
waterbox: invis section tweak (#3580)
don't fail when a 0 byte section starts at the same place as invis
2023-03-14 21:02:38 -04:00
CasualPokePlayer d9ac4166cf .cdi support, seems to work
also expand the search for the jaguar cd header a bit, seems it can sometimes be at the second sector?
2023-03-14 05:16:12 -07:00
YoshiRulz 825c144d6a Add `--userdata` CLI flag 2023-03-14 14:51:41 +10:00
YoshiRulz cb71de8de1
Fix typo in .NET 6+ implementation of `DescribeIsNull` 2023-03-13 10:14:11 +10:00
YoshiRulz 51dab92826
Improve error message shown for malformed `.bk2`/`.tasproj`
of course I didn't test it
2023-03-13 03:23:04 +10:00
vadosnaprimer 5be9e03a30 added 2 nes palettes
https://www.patreon.com/posts/nes-composite-45695288
http://wavebeam.blogspot.com/2017/03/wavebeam-nes-palette.html
2023-03-12 10:14:12 +03:00
CasualPokePlayer 9d6a732cb4 Many cleanups in disc system
Multisession support! (resolves #3400)
The support is a bit lackluster given some constraints of our environment (e.g. the lack of a readable leadin entirely), but they don't matter for now
2023-03-11 01:28:32 -08:00
YoshiRulz 1ca1f4a397 Finalise sysID name and alphabetise 2023-03-11 07:29:23 +01:00
Morilli 17a098dfa3 implement SatellaviewCartridge in BSNESOptions 2023-03-11 07:29:23 +01:00
Morilli 3a6eda25dc add baseCartridge info to gamedb
+ implement baseCartridge parameter in code
2023-03-11 07:29:23 +01:00
Morilli 6329d6a6fd add all satellaview roms as separate firmware files
also implement corresponding loading code in the core
2023-03-11 07:29:23 +01:00
YoshiRulz bec6e2ac1e Retarget satellaview games in gamedb 2023-03-11 07:29:23 +01:00
YoshiRulz c954a84cd8 Add Satellaview rom detection code 2023-03-11 07:29:23 +01:00
Morilli 76cfee6396 rename bs memory domains (and fix rom domain)
- also some other renames for clarity
2023-03-11 07:29:23 +01:00
Morilli c906c830dd Implement bsx + bs memory loading
connect satellaview when loading bsmemory

this makes rtc somewhat work

also mark SubBSNESv115 as BSX core
2023-03-11 07:29:23 +01:00
Morilli 8c780e42cb minor BSNESOptions cleanup 2023-03-10 02:24:46 +01:00
Morilli cb785c4cdb resolve TODO regarding bsnes settings 2023-03-10 02:17:35 +01:00
Morilli eef190d332 make bsnes settings `record` for easier comparison 2023-03-10 01:56:30 +01:00
YoshiRulz 2fca4282a9
Make `ApiContainer` props return `null` if req. services unavailable
specifically `MemoryEvents` and `MemorySaveState`
now they behave like `[OptionalApi]` rather than `[RequiredApi]`
2023-03-10 04:30:52 +10:00
YoshiRulz 6387291e37
Deprecate `IGuiApi.DrawText` in favour of new method `PixelText`
to match Lua
2023-03-10 03:55:05 +10:00
YoshiRulz 132029d18f
Sort out docs for text-drawing APIs, flipping drawText=>drawString 2023-03-10 03:54:55 +10:00
YoshiRulz a46d0d93a7
Linux launch script refactors
- remove unused WINE libs from `LD_LIBRARY_PATH`
- add usage reminder for `--mono-no-redirect`, printed to stderr
- use `MONO_WINFORMS_XIM_STYLE=disabled` on all distros
- use `MONO_CRASH_NOFILE` to stop useless core dumps from clogging dir
2023-03-10 03:00:24 +10:00
YoshiRulz 16afcffe81
Clean up how SGB/SNES menus for BSNES are handled
makes Satellaview a 0 LOC change, and deleting old BSNES will be easier too
2023-03-09 23:35:26 +10:00
YoshiRulz 1a30f6551e
Use LuaPictureBox' custom resize in all cases 2023-02-26 14:35:35 +10:00
CasualPokePlayer 2c3fb68776 fix PictureBox when width or height is null 2023-02-24 13:29:18 -08:00
Morilli b45668ecea Parse RTC in DsmImport
see #3555
2023-02-21 18:33:46 +01:00
CasualPokePlayer 5804ff04e7 Fix memory handling for DSi achievements 2023-02-20 12:10:58 -08:00
CasualPokePlayer 27eef71085 Fix some more edge cases against PSX RetroAchievements hashing (and do it a bit nicer)
Update rcheevos, and with that add in the new DSi console ID
Experimentally revamp the build system, I'm looking into cmake here and it seems to do a great job. The builds committed here were built with clang-cl 15.0.1 and clang 15.0.7 (for Windows and Linux respectively). gcc/clang with msys2 still works fine. gcc on Linux should still work fine. MSVC (cl) itself even works (although as a note, it doesn't work with lto (/GL) due to the force everything exported flag I set). The old Makefile is still kept for future reference.
2023-02-19 23:42:33 -08:00
CasualPokePlayer 7b4bd52150 fix edge case with PSX hashing with RetroAchievements 2023-02-15 16:23:39 -08:00
Morilli fcbc44b64f Resolve part of #3506 2023-02-12 12:30:14 +01:00
vadosnaprimer a2ff685fc1 release the mame core
I asked others and nobody minds. it's not like we're releasing a raw core that has accuracy or integration problems. it mostly works, and it's just modern mame with its current level of accuracy. if integration needs further tweaks to support more games, they will duly arrive while people use it for games that already work.

tasvideos used to only accept hawk submissions for cores marked as released in the code, which usually means the core author (or porter) considers it ready for business. I'm the original porter, and tasvideos staff, and I consider it generally ready. again, the other porter (CPP) didn't seem to mind.
2023-02-12 10:37:20 +03:00
YoshiRulz a137cc406b
Allow `EmuClientApi.SpeedMode(6400)` (to match GUI; Lua max was 6399)
logic broken since introduction in 858f133f9, though the limit wasn't 6400% at
the time, that was changed in 5f9757d7d
2023-02-10 13:53:27 +10:00
CasualPokePlayer 2350dddb69 fix pause at end of movie when playing a tasproj without tastudio
old commits seem to suggest the IsPlayingOrFinished special logic was only intended for HandleFrameLoopForRecordMode. doing it otherwise causes issues with other end movie actions (e.g. if at pause at end of movie, it will just spam pause every time you unpause the movie). when in tastudio `Settings.MovieEndAction == MovieEndAction.Record` is always true, so this only affects playing tasprojs outside of tastudio
2023-02-09 12:26:10 -08:00
CasualPokePlayer b48649a91b fix Lower Is Better checkmark with RCheevosLeaderboardForm 2023-02-09 11:52:04 -08:00
CasualPokePlayer 8c2751bb58 fix PCECD and PCFX hashing for retroachievements 2023-02-09 10:26:25 -08:00
CasualPokePlayer a61be6ba2b fix incorrect memory being used with a2600 and retroachievements 2023-02-09 08:25:58 -08:00
YoshiRulz 5bdbe110e9
Make ext. tool build scripts pass args through to dotnet 2023-02-09 00:47:49 +10:00
YoshiRulz b14a741ffe
Merge `Where` calls
fixes 0d02d5c49 and e7884f679
2023-02-09 00:47:49 +10:00
YoshiRulz eafb1fdcf5
Clean up Windows version comparison
fixes 1b8158f4c
2023-02-09 00:47:46 +10:00
zeromus 6ea9e37e33 NES PPU Viewer - SpriteViewer also needed to be drawn without getting blurred 2023-02-08 05:09:33 -05:00
zeromus 6fe91ae56c Nes PPU Viewer - undo part of ac20835172 which made ctrl+c no longer work on pattern viewer 2023-02-08 05:07:26 -05:00
zeromus 8b38237948 fix jacked up blur in patternviewer 2023-02-08 04:59:58 -05:00
zeromus 63310fcf3d NES PPU viewer - size of palettes box had got messed up by my last commit. what's going on? 2023-02-08 04:45:30 -05:00
zeromus b7b60ae7b4 NES PPU viewer: fix calculations of hovered sprites from mouse coordinates. they were pretty crashy before 2023-02-08 01:32:24 -05:00
zeromus cb162f12d6 NES PPU viewer: fix too-small sprites window which hid a bunch of the sprites 2023-02-08 01:25:49 -05:00
zeromus 1b8158f4c2 skip this stupid administrator check on old windows versions. windows isn't capable of being useful for non-administrators until windows 10. 2023-02-08 01:07:41 -05:00
zeromus 4ba7b68e66 add missing using namespace NDS to fix building 2023-02-08 00:56:32 -05:00
YoshiRulz 67466be2f4
Have TAS profile also enable NDS BIOS 2023-02-08 10:08:19 +10:00
YoshiRulz 1ca610b424
Set default `Form.Icon` to corphawk
not sure about this, and I think it also affects ext. tools
2023-02-08 07:15:25 +10:00
YoshiRulz e7884f6796
Hide debug tools from Tool Box and add ext. tools 2023-02-08 07:15:24 +10:00
YoshiRulz 8b7cba96bb
Use a single-source-of-truth for tools' icons in menus and Tool Box
reverts 733b6c49b
some more `[SpecializedTool]`s have icons now
2023-02-08 07:15:24 +10:00
YoshiRulz 0d02d5c498
Refactor `ToolBox.SetTools` 2023-02-08 07:15:24 +10:00
YoshiRulz b93eb948fd
Unindent `MainForm.DisplayDefaultCoreMenu` 2023-02-08 07:15:24 +10:00
YoshiRulz 15eed689d0
Misc. refactors in `ExternalToolManager` 2023-02-08 07:15:24 +10:00
YoshiRulz a86860faaa
Fix `--open-ext-tool-dll`
fixes 4566b744d
2023-02-08 07:15:23 +10:00
YoshiRulz 3c3ab6578e
Use system's canonical framerate for rewind duration estimate 2023-02-05 21:00:04 +10:00
YoshiRulz f473db56c3
Fix NaN propagation in RewindConfig 2023-02-05 20:56:22 +10:00
CasualPokePlayer b1e8d93f5f remove unused using from last commit
need to check what's going to be committed, the auto-using thing keeps tripping me up
2023-02-01 21:27:49 -08:00
CasualPokePlayer 46a086ed32 fix b109dc8605 2023-02-01 21:26:44 -08:00
YoshiRulz b109dc8605
Mute audio when opening modal dialogs (see #3545) 2023-02-02 05:41:44 +10:00
YoshiRulz 26991944ee
Fix `<NoWarn/>` overwriting instead of appending 2023-02-02 00:07:04 +10:00
YoshiRulz d8d9abeacd
Update OpenTK 2023-02-02 00:07:04 +10:00
YoshiRulz e7d349f48d
Update Windows version check to reflect 8.1 EOL 2023-02-02 00:07:04 +10:00
CasualPokePlayer cf0ce0f5bb fix GC killing rcheevo callbacks 2023-01-27 02:47:05 -08:00
CasualPokePlayer c4f2bed9fd sledgehammer fix any remaining issues with RAIntegration 2023-01-26 08:00:43 -08:00
CasualPokePlayer e67e646ca5 fix deadlock when loading state with hotkeys and RAIntegration is active
hotkeys don't go through messages so unlike other methods of loading a state this caused a deadlock (load state implies memory peeking to restore state)
2023-01-26 07:12:54 -08:00
CasualPokePlayer e8dd2e94f2 Fix crashes when using menu item for save/load quicksave
fixes 22ba0d5c25
2023-01-26 05:49:52 -08:00
CasualPokePlayer 66282a25aa fix a NullReferenceException this time...
this thing is getting annoying now
2023-01-26 04:32:53 -08:00
CasualPokePlayer 0170d8f0f0 resolve ObjectDisposedException
fixes 713944724d
2023-01-26 01:24:34 -08:00
CasualPokePlayer 713944724d fix deadlocks in RAIntegration for real this time (i hate this hack)
fixes f8a5adecb5
2023-01-25 23:36:46 -08:00
CasualPokePlayer 03077daf71 fix a crash when loading a quicksave right after shutting down retroachievements 2023-01-25 22:43:57 -08:00
CasualPokePlayer f8a5adecb5 fix possible deadlocks with RAIntegration due to dumb threading bs, cleanup some of this code
also make sure to reboot core when starting up RetroAchievements with RAIntegration active (RAIntegration doesn't do this itself it seems)
2023-01-25 22:28:26 -08:00
YoshiRulz 95001d0baa
Hack to fix Nymashock analog stick range (see #3528) 2023-01-26 14:57:57 +10:00
YoshiRulz c66d0c746e
Document `IMemoryDomains` invariants 2023-01-25 02:04:10 +10:00
YoshiRulz 9e8b0c604d
Add debugging helper `DescribeIsNull` 2023-01-25 01:14:50 +10:00
James Groom 0b7960ff04
Update TASVideos URL in GitHub security policy 2023-01-22 13:40:39 +10:00
kalimag b174c346d4 Hex editor: unset ROM domain when loading MAME ROM
Previously, last non-MAME ROM would still appear under "File on Disk"
2023-01-20 09:29:31 +10:00
kalimag b2ed03c90d Fix NRE in `HexEditor` domain selection for MAME
Fix NRE when MAME ROM was loaded without Open Advanced
2023-01-20 09:29:31 +10:00
YoshiRulz 15056f11f2
Fix typo (resolves #3520)
fixes 007d862c5
2023-01-15 05:38:03 +10:00
adelikat 8c32157547 hotkey for toggling on screen messages 2023-01-14 12:00:37 -06:00
YoshiRulz 566d47e263
Several changes to the About dialog
- s/BizHawk/EmuHawk/
- s/multi-platform/multi-system/ because, while the former is technically true,
it's very much a Windows app, and the latter is what was intended anyway
- replaced logo w/ a nice upscale courtesy of @DrD2k9
- added VCS branch to commit link
- changed window title from VCS info to "About EmuHawk"
- added build config after release version
2023-01-14 14:31:41 +10:00
CasualPokePlayer b11bb4fc22 fix check for IsParamsArray
fixes #3513
2023-01-10 05:53:58 -08:00
CasualPokePlayer cd1d647d72 linux build for recent gambatte updates, also fix a minor potential build error when zlib is completely unavailable (it was getting linked even though there was no need for it to be linked) 2023-01-10 02:56:19 -08:00
CasualPokePlayer 0dc4f99f9d yet another time fix in gambatte, should be the last one 2023-01-10 02:06:02 -08:00
CasualPokePlayer b56fcaef13 another gambatte time fix, should prevent long periods of pausing from causing rtc overflows in real time mode 2023-01-09 23:49:53 -08:00
CasualPokePlayer 86545197c6 [Gambatte] Cleanup time code, probably fix a bug that caused time to incorrectly advance when loading in a save file 2023-01-09 04:05:38 -08:00
Morilli 00060c3ffa BSNESv115: remove autoJoypad condition in lag detection code
this fixes lag frame detection in Super Bomber Man (Japan) and didn't cause any regression in my limited testing
2023-01-08 22:29:12 +01:00
kalimag abee97b449 Remove pixels array from `DisplaySurface`; faster clearing 2023-01-08 08:53:45 +10:00
YoshiRulz bc823f4795
Clear props of type `ApiContainer` when clearing injected API props 2023-01-08 08:27:31 +10:00
YoshiRulz 3c00c24fcd
Fix `ApiInjector` trying to set get-only props of type `ApiContainer` 2023-01-08 08:26:27 +10:00
YoshiRulz 16ee704332
Deduplicate `MemoryDomainDelegateSysBusNES` 2023-01-08 07:54:20 +10:00
CasualPokePlayer 0bd2a1d89b
Resolve bigEndian nonsense for MemoryDomainDelegateSysBusNES too
TODO: This is just MemoryDomainDelegate but with a SendCheatToCore delegate allowed to be added, surely we could just add this to the existing MemoryDomainDelegate? Or better yet MemoryDomainDelegateSysBusNES could just inherit MemoryDomainDelegate if this wants to be separated (and reduce all this code duplication)
2023-01-06 10:10:14 -08:00
CasualPokePlayer 2a7cbda8c5
Correctly pass in bigEndian for MemoryDomainDelegate's BulkPeekUshort/BulkPeekUint, fixes #3516 2023-01-06 10:02:28 -08:00
CasualPokePlayer a896471164
fix MAME memory domains 2023-01-05 18:47:49 -08:00
kalimag 3f4aee0154
Return success bool from `OpenRom` APIs (squashed PR #3514)
* Return success bool from `OpenRom` APIs

* Finish propagating, update docs for other recently changed methods too

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2023-01-06 03:50:13 +10:00
YoshiRulz 0591d2e2d2
Pass through input/hotkeys while Lua form is focused
to restore previous behaviour, call `forms.setproperty(form_handle,
"BlocksInputWhenFocused", true);`
2023-01-05 02:09:49 +10:00
YoshiRulz af9f5b9b9c
Add some sort of documentation for B/V gamedb flags 2023-01-05 00:41:25 +10:00
YoshiRulz 60f99bc3ab
Mark this Sonic romhack as a bad dump (resolves #3511) 2023-01-05 00:41:02 +10:00
YoshiRulz 699ef428bf
Fix `mainmemory` lib keeping reference to unloaded core's memdomain 2023-01-03 23:46:02 +10:00
YoshiRulz 5827cbd829
`Trim()` when copying Log Window selection to clipboard
see e269bfd49
2023-01-03 23:26:36 +10:00
YoshiRulz e7d95aa07d
Disable Lua tests in CI 2023-01-03 07:31:27 +10:00
YoshiRulz ec6fe5fcf1
Change loadstate methods to return a bool indicating success 2023-01-03 06:49:29 +10:00
YoshiRulz 250b839e2c
Extract method from `LoadBranchToolStripMenuItem_Click` 2023-01-03 06:49:29 +10:00
YoshiRulz 007d862c58
Finish renaming quicksave slot 0 to 10 (resolves #3112) 2023-01-03 06:49:28 +10:00
YoshiRulz 7f33a8836d
Invert some conditionals in `MainForm` to reduce indent level 2023-01-03 06:49:28 +10:00
YoshiRulz fcf7ac1fab
Change first param of `{Save,Load}QuickSave` from string to int
also swapped bool params of `SaveQuickSave`
2023-01-03 06:49:28 +10:00
YoshiRulz 22ba0d5c25
Dedup click handlers for `File` > `Save State` and `Load State`
`File` > `Save Slot` already did this
2023-01-03 06:49:28 +10:00
CasualPokePlayer 4b30cab993
Check the correct integer type for tastudio.setplayback
New lua actually has integers so this is a long instead of a double
2022-12-31 18:10:36 -08:00
YoshiRulz 9bc1646693
Nix expr: Refactor deps 2022-12-28 19:05:07 +10:00
YoshiRulz 165f4f4a4d
Nix expr: Add dep updater script and update deps
fixes 47c494a5a
2022-12-28 14:50:24 +10:00
YoshiRulz e2ca00c8c4
Fix symlinks cp'd as regular files
fixes 339915c01
2022-12-24 12:35:40 +10:00
CasualPokePlayer 05ff3ab40c merge some mGBA upstream commits, partially revert c891cc2cb5 (upstream commits makes our changes not really needed) 2022-12-22 20:26:11 -08:00
CasualPokePlayer c2a5b37799
Update contributing guide for the new Lua setup 2022-12-21 20:46:20 -08:00
James Groom bc12fcca87
Minor revision to EmuHawk contribution guide 2022-12-22 01:58:14 +10:00
CasualPokePlayer 00d450075e oops forgot a colon here 2022-12-21 00:43:52 -08:00
CasualPokePlayer c7c5ed229d add pc2 extension for wonderswan
these are pocket challenge v2 roms, which is some handheld system which is actually just a wonderswan inside so these roms work anyways with cygne
2022-12-21 00:41:42 -08:00
CasualPokePlayer 2c75e9bf96 remove this unneeded using of System.Drawing (i don't know how that got here) 2022-12-20 23:32:12 -08:00
CasualPokePlayer 91ce98ef12 better handle lua on linux, be compatible with lua 5.3 (we don't actually use any API exclusive to 5.4 so no real change in this case) 2022-12-20 23:30:33 -08:00
Morilli 603530d540 set gcAllowVeryLargeObjects to allow 2GB+ arrays 2022-12-21 07:43:34 +01:00
Morilli 79857a3b71 Revert "make a new "FixedGrowthList" and use it for the StringLogs"
This reverts commit da5fae0b01.
2022-12-21 07:42:31 +01:00
nattthebear 66c19cfcb2 Support marshalling arrays of length 0 through BizInvoker
Such arrays will be marshalled with valid and unique pointers that can be compared but not read from or written to.
2022-12-20 18:04:41 -05:00
CasualPokePlayer 5b0fe947df fix #3498 2022-12-20 10:40:03 -08:00
Morilli 576ab3174b best-effort fix bundled smw lua script 2022-12-20 18:21:44 +01:00
YoshiRulz 6678fb4296
More cleanup of switch in `RetroAchievements.SystemIdToConsoleId` 2022-12-20 18:58:17 +10:00
YoshiRulz 7703ee5f37
Refactor `IGameboyCommon.IsCGBMode` 2022-12-20 18:58:17 +10:00
YoshiRulz a54c94230f
Restore system menu behaviour re: SGB
fixes 81fe56fa6
2022-12-20 18:58:12 +10:00
Morilli 81fe56fa6e provide correct sysid in BsnesCore 2022-12-20 04:22:23 +01:00
Morilli f668e09048 fix dumb mistake in bsnes gamepad controller
fixes 96cc3f8745
apparently this was only an issue in sgb?
2022-12-20 04:20:30 +01:00
YoshiRulz aa0e2d6a5f
Use new CartRAM domain name in GBHawk's CDL impl. (fixes #3497)
fixes 7e00b7892
2022-12-19 13:20:37 +10:00
CasualPokePlayer cee263e272 oops didn't mean to checkin this experiment (it doesn't do anything actually) 2022-12-17 21:53:47 -08:00
CasualPokePlayer 339915c013 check-in NLua to main repo
combine NLua with KeraLua (KeraLua is "gone" now I guess)
make it use the BizInvoker (so now it can properly handle the liblua5.4.so and lua54.dll names differing), also delete the liblua54.so.
minor speedup when creating a new empty table
make lua default to UTF8 internally, so we don't need to manually change the state's encoding
2022-12-17 21:51:10 -08:00
CasualPokePlayer a1da5753ee check-in NLua to main repo
combine NLua with KeraLua (KeraLua is "gone" now I guess)
make it use the BizInvoker (so now it can properly handle the liblua5.4.so and lua54.dll names differing), also delete the liblua54.so.
minor speedup when creating a new empty table
make lua default to UTF8 internally, so we don't need to manually change the state's encoding
2022-12-17 21:50:56 -08:00
Morilli 55fdcbb3d1 Don't set modifiers for key release events
this fixes a bug in 1df6ce4e38, where an incorrect modifier state could be set, causing the release event to not actually release the key. I also don't see a reason to not just not set modifiers.

For example: "Hold Tab", "Hold Shift", "Release Tab" would send a "Release:Shift+Tab" event which failed to release Tab, even though that key was initially pressed without Shift.

So, instead of trying to match the right modifiers and keys just send the released key without modifier state and let the Receive() function do the work.
2022-12-18 06:03:55 +01:00
YoshiRulz 8db15d6951
Show warning dialog when running as Superuser/Administrator 2022-12-18 12:21:43 +10:00
YoshiRulz 767e30eee5
Also rename bundled CPC firmware files (see #3494)
fixes 5be8b0aab
2022-12-18 12:02:23 +10:00
CasualPokePlayer 8d5f7b5478 make selecting user shaders not crash with the default empty string path
Path.GetDirectoryName throws if it is handed an empty string apparently
2022-12-17 12:16:03 -08:00
YoshiRulz a680739c6e
Rename bundled ZX Spectrum firmware file (resolves #3494)
fixes 5be8b0aab
2022-12-17 22:47:57 +10:00
CasualPokePlayer 3bb785a470 oops, apparently didn't commit the build here 2022-12-16 23:12:30 -08:00
CasualPokePlayer 58beef8a46 remove speex use in melonDS (see 5f0e6a2242 for unmanaged side changes) 2022-12-16 23:04:35 -08:00
CasualPokePlayer 5f0e6a2242 updae melonds, rework the audio so it is internally resampled with blip_buf (also allows for avoiding some copying, also corrects some minor audio defects) 2022-12-16 23:03:28 -08:00
CasualPokePlayer 5e9e9ac289 remove libspeexdsp use in old bsnes core 2022-12-16 20:45:25 -08:00
YoshiRulz c794d90878
Revert switch to system-wide Lua install on Linux
reverts ab355d469 and 25795d237
2022-12-17 13:35:14 +10:00
CasualPokePlayer 05962cfd93 more proper fix for compilation issue with some gcc versions with ares
fixes 2989a73430
2022-12-16 18:53:33 -08:00
CasualPokePlayer 2989a73430 workaround ares state size being blown up, fix compilation issue in some gcc versions 2022-12-16 18:18:06 -08:00
CasualPokePlayer 25795d2372 remove GetErrorMessage call for Linux dep checks 2022-12-16 15:26:11 -08:00
CasualPokePlayer ab355d4693 check some system lib deps on Linux and force user to provide their own liblua54 from package managers 2022-12-16 15:03:39 -08:00
CasualPokePlayer 2187602dc1 fix Package.sh too
fixes 91e400bdd9
2022-12-16 00:05:40 -08:00
CasualPokePlayer 91e400bdd9 fix QuickTestBuildAndPackage to include the "overlay" folder (meant for RetroAchievements stuff) 2022-12-16 00:00:07 -08:00
CasualPokePlayer 767cc9059d Improve handling of RA http requests, add some handling in case RA sound files are missing. Normally this shouldn't be needed as docs specify if the wav file fails to load it plays the default beep sound, except actually it just throws in practice???
The 2.9 rcs apparently have the "overlay" folder missing, so the sound files aren't present. I'm assuming there's some issue with build scripts there for releases...
2022-12-15 23:45:29 -08:00
CasualPokePlayer f3ee3e7956 mGBA update, various cleanups and some reorg 2022-12-15 01:00:36 -08:00
adelikat f6503adfb8 Update virtualpads immediate when the movie status changes, huge improvement when using tastudio and virtualpad together as the record checkbox toggle now changes the readonly status of the pad 2022-12-13 08:39:29 +10:00
Morilli 837592ca11 BSNESv115+: apply patch to fix $4203 mul/div behavior
see https://github.com/bsnes-emu/bsnes/issues/256 or https://forums.nesdev.org/viewtopic.php?t=24087 for context
2022-12-11 17:18:01 +01:00
Morilli 74b37ab947 BSNESv115+: apply patch to fix CPUMSC reset test
see https://github.com/bsnes-emu/bsnes/issues/235
this patch fixes the test, but its correctness needs to be verified against real hardware
2022-12-11 17:01:02 +01:00
Morilli b0af99a68a BSNESv115+: pull upstream
43e42b2dcaf84c41d09c49745d82f8515e4f7771: simplify SA1 division
c0c60c83a84a49d4a2b822a0491cb258a3c5b98a: fix justifier controller
2022-12-11 16:41:55 +01:00
CasualPokePlayer 27f6800d45 fix #3489 (InitializeWork is called by itself for each gamedb file #include'd, so the event would have been set once the first gamedb file is loaded, oops), do some other cleanup here 2022-12-10 23:42:08 -08:00
CasualPokePlayer b3c7f0fa48 IPlatformLuaLibEnv -> ILuaLibraries / Win32LuaLibraries -> LuaLibraries, cleanup usage of it, fix doc error in client.gettool 2022-12-10 21:46:22 -08:00
YoshiRulz f101cb5a54
Additional corrections to newly-added Lua documentation
fixes 49cd836e1, c7781d1c1
2022-12-11 13:35:29 +10:00
YoshiRulz c7781d1c17
Add Lua migration helper library for bitwise ops
see 49cd836e1, #3485
put `bit = (require "migration_helpers").EmuHawk_pre_2_9_bit();` at top of file
can now easily add helpers for migrating from other emulators
2022-12-11 13:19:19 +10:00
YoshiRulz cbb335fec2
Fix Lua `require` not looking in Lua dir on Linux
see #3485
thanks to @CasualPokePlayer for research and initial implementation
2022-12-11 13:16:07 +10:00
CasualPokePlayer 9e4836d300 libretro handling cleanup, reorg some of this, fix some input cases, better domain names
funsie found in this cleanup: can't use `in` params with the BizInvoker as it doesn't like the read only semantics (results in some exception in CreateType)
2022-12-10 04:45:00 -08:00
feos dc774ed8be update EWJ2 script too 2022-12-09 13:06:41 +03:00
feos 7b7cea8bcf update gargoyles script to work with new lua 2022-12-09 12:27:48 +03:00
CasualPokePlayer 64d693e63f call retro_unload_game before retro_deinit (libretro api specifies retro_unload_game be called before retro_deinit, in practice cores don't really care but best fix this) 2022-12-08 23:18:37 -08:00
CasualPokePlayer 29443dae49 fix #3484 2022-12-08 14:26:23 -08:00
YoshiRulz c4f4c793da
Remove unused `IPlatformLuaLibEnv` implementation 2022-12-09 05:41:49 +10:00
YoshiRulz 5197c36a5d
Remove `[Lua*StringParam]` as they're no longer relevant
fixes 45fbdb484
2022-12-09 05:40:31 +10:00
YoshiRulz 5c0143d6f6
Minor corrections to newly-added Lua documentation
fixes 1452f831a, 82c3b471a, b687dea1b, 49cd836e1
2022-12-09 05:28:36 +10:00
CasualPokePlayer 49cd836e18 log warning when using the deprecated lua bit functions 2022-12-08 04:26:54 -08:00
CasualPokePlayer 56d66ca555 add reset support to libretro, resolves #3482 2022-12-07 19:54:59 -08:00
CasualPokePlayer 1fc08e3d95 Use NLua's MethodCache if possible for MethodBase based lua functions (see 0ed3085ec3) 2022-12-07 19:36:13 -08:00
YoshiRulz 4caa99afe3
Remove Lua in Mono warning as it's no longer relevant
fixes 45fbdb484
2022-12-07 18:46:25 +10:00
kalimag 01ab9416b5 Make script paths in .luases relative to .luases path
Restore behavior before 99dc0e03df
2022-12-07 18:24:21 +10:00
YoshiRulz df4df517b8 Add `IMovieApi.PlayFromStart`/`movie.play_from_start` (resolves #384) 2022-12-07 18:16:13 +10:00
YoshiRulz 7fdc3f992d Propagate success through to caller for movie load/restart 2022-12-07 18:16:13 +10:00
YoshiRulz 0076c8802b Add `saveChanges` parameter to `IMovieApi.Stop`/`movie.stop` 2022-12-07 18:16:13 +10:00
YoshiRulz e0a7a39b0d Have `IMovieApi.Stop` implementation use `MainForm.StopMovie` 2022-12-07 18:16:13 +10:00
kalimag 596e8d9198 Call `onexit` and cleanup when removing lua script 2022-12-07 18:15:31 +10:00
kalimag 50fc7e28da Make "Stop all scripts" behave the same as toggling them off 2022-12-07 18:15:31 +10:00
kalimag 817b258a79 Remove relative path manipulation in `LuaConsole` 2022-12-07 18:15:31 +10:00
kalimag f625771cd0 Don't create FileSystemWatcher for missing directories 2022-12-07 18:15:31 +10:00
kalimag cf2b83b102 Disable lua script if loading fails 2022-12-07 18:15:31 +10:00
kalimag bd53807b0f Store `LuaFile` `FileSystemWatcher` in dictionary
Avoid path string comparisons, `FileSystemWatcher` events may format relative paths differently
2022-12-07 18:15:31 +10:00
kalimag 6aa7c48402 Update Lua registered functions window after restart
Make registered functions window show functions for new LuaImp after core restart/reopening the Lua console
2022-12-07 18:15:31 +10:00
kalimag ee66faba0b Clean up old LuaImp before creating new one
Prevents memory/resource leak

Causes open forms to be closed on core restart
2022-12-07 18:15:31 +10:00
kalimag 3a70fb65f8 Refactor disabling Lua script into separate method 2022-12-07 18:15:31 +10:00
kalimag 7c7ac64ae6 Stop discarding Lua session save directory
Previously any path would into ".\foo.luases" and be saved in exe dir
2022-12-07 18:15:31 +10:00
kalimag 9ee788195a Improve Lua `FileSystemWatcher` thread safety
Make FSW invoke the entire event handler on main thread.

Avoids theoretical race condition and thread safety issues with the linq query.
2022-12-07 18:15:31 +10:00
kalimag 733a8bee88 Dispose FileSystemWatchers in LuaConsole 2022-12-07 18:15:31 +10:00
kalimag 28d6415190 Remove running scripts before loading session
Clean up scripts instead of just clearing script list
2022-12-07 18:15:31 +10:00
kalimag cc10de4033 Refactor removing Lua scripts into separate method 2022-12-07 18:15:31 +10:00
kalimag 564a1e4a67 Remove obsolete `LuaConsole.RunLuaScripts`
Method is mostly a duplicate of `EnableLuaFile`, only called when loading a session or an already loaded script.

In either case it didn't actually start the scripts due to an inverted condition, and would stop running scripts without doing the required cleanup.
2022-12-07 18:15:31 +10:00
kalimag 5d143ca879 Properly start scripts after loading Lua session
Previously, scripts would display as enabled but not actually run until toggled off and on.
2022-12-07 18:15:31 +10:00
kalimag 0effd435f6 Fix issues when opening same Lua script multiple times 2022-12-07 18:15:31 +10:00
kalimag 14e713837b Change remaining `Config.DisableLuaScriptsOnLoad` refs to Settings
Resolve inconsistent use of duplicate property on `Config` and `LuaConsoleSettings`, finishes partial refactoring from 324a50a

This will effectively reset this setting to default in existing configs.
2022-12-07 18:15:31 +10:00
YoshiRulz a8e0192281
Use FLPs so UI scale doesn't break Record Movie dialog (see #2605)
disables resizing the dialog; default is big enough and the `TextBox`es can
scroll
2022-12-07 15:43:25 +10:00
YoshiRulz 632f063073
Cleanup `RecordMovie` ctor 2022-12-07 15:43:24 +10:00
YoshiRulz 400b1b589b
Inline `RecordMovie.InitializeComponent` (Designer file) 2022-12-07 15:43:21 +10:00
YoshiRulz 102874e480
Fix N64 header detection being swapped (fixes #3477)
fixes abeaa2a10
how ironic
2022-12-07 14:34:52 +10:00
YoshiRulz 62f6f3b471
Fix Win32LuaLibraries init'ing incorrectly on `DeveloperBuild = false` 2022-12-07 14:27:19 +10:00
CasualPokePlayer b04260bee7 fix unwrapped lua exceptions not being correctly thrown 2022-12-06 14:21:39 -08:00
YoshiRulz def5df44fa
Fix double call to `UIHelper.ScaleX` in `ControllerConfig` (see #2605)
fixes 93c47b87b
2022-12-07 05:29:27 +10:00
Morilli 5e6c4a2bbd fix justifier controller never working oops 2022-12-06 19:42:30 +01:00
Morilli 96cc3f8745 BSNESv115: implement an extended gamepad controller with 4 extra buttons
this is a breaking change for existing movies, but only when a non-gamepad controller was used, which is rare
2022-12-06 19:21:08 +01:00
CasualPokePlayer 339994c5a7 change these to using var 2022-12-06 09:46:12 -08:00
CasualPokePlayer b687dea1b0 change every IntPtr<->int cast to IntPtr<->long. we got 64 bit integers with lua now, and a pointer is 64 bits, so might avoid some dumb bug due to truncations and some ungodly amount of ram being used
TODO: see if we can skip this cast nonsense. the lua tests indicate IntPtr should pass through fine, being considered "userdata", probably better so the user can't just pass raw numbers for the handle.
2022-12-06 04:53:35 -08:00
CasualPokePlayer bc79664461 fix implicit lua number to .net conversion
fix .net exceptions not halting the running script
fix inconsistency with stdout and lua console printing errors, both should end in a newline now
print the inner exception of a lua exception (i.e. the .net extension) if possible
2022-12-06 02:52:57 -08:00
CasualPokePlayer eb00019c86 fix passing numbers for string args in .net lua functions (old engine had this behavior, granted "bad user" if they relied on this), add appropriate test
fix passing sbyte/char as args, add appropriate tests
cleanup the lua auto unlock hack, using a nice ref struct + dispose to handle it
2022-12-05 23:21:23 -08:00
CasualPokePlayer 920682688b deprecate lua bit functions which have direct operator counterparts in new lua 2022-12-05 18:23:11 -08:00
CasualPokePlayer dcd570bf87 fix mainmemory.write_bytes_as_dict 2022-12-05 16:46:22 -08:00
Morilli 4a49fc174b Improve LsmvImport in numerous ways
- previously, every second frame was empty (lol), since 2016 i believe
- now imports as (sub)bsnes115 movie instead of bsnes, allowing to import subframe inputs and delayed resets
- imports controller types correct(er)ly
2022-12-05 16:28:22 +01:00
Morilli 10ba45d462 BSNESv115+: actually provide IBoardInfo properly 2022-12-04 22:48:29 +01:00
YoshiRulz abeaa2a106
Be less lazy about N64 header detection in byteswapper
fixes 82c3b471a, 9660c16a0
2022-12-05 04:54:19 +10:00
CasualPokePlayer 9660c16a0a fix N64 roms coming through multidisk bundler in ares 2022-12-04 01:35:58 -08:00
CasualPokePlayer 3dd36f5f07 revert the explicit try/finally use for PeekByte/PokeByte monitor domain methods, testing seems to show the ref struct use makes EnterExit allocation (now forced to the stack) a non-issue performance wise 2022-12-03 18:30:09 -08:00
CasualPokePlayer f01463e2b3 Convert EnterExitWrapper to a readonly ref struct, this should be a speedup in all cases. Will need to experiment to see if this mean the try/finally from #3296 can be avoided 2022-12-03 17:46:49 -08:00
YoshiRulz d508b734d6
Fix `MemoryApi.{Read,Write}ByteRange` edge cases 2022-12-04 09:23:28 +10:00
YoshiRulz af44a85cfd
Add unit tests for `IMemoryApi.{Read,Write}ByteRange` 2022-12-04 09:23:28 +10:00
YoshiRulz dc4efc3644
Fix typos and whitespace in `MemoryApi.cs` 2022-12-04 09:23:27 +10:00
YoshiRulz 1bdff05442
Use read-only collection types in `IMemoryApi` 2022-12-04 09:23:25 +10:00
YoshiRulz cba206efec
Add `IUserDataApi.Keys`/`userdata.get_keys` 2022-12-04 04:06:58 +10:00
YoshiRulz c2d5a9c931 Banish empty conditional blocks 2022-12-04 02:11:41 +10:00
YoshiRulz 84d2866f53
Clean up usage of `LuaFile.Enabled`/`Paused` 2022-12-04 01:43:02 +10:00
CasualPokePlayer f798021bba CloseRom acts like rebooting the core, so make it just reset Lua libs (more properly fixes #3226 without any yield nonsense)
Slight revert of 2efae13af4 (still want to set running scripts as it's used later)
Fix detaching registered functions (old logic was broken, Stop would null out the LuaRef used for creating the new dummy thread for the detached function. best solution i've come up with is to simply pass a callback over for creating the thread, nicely encapsulating that functionality)
Various cleanups, don't need VS complaining about old pattern matching code here anymore...
2022-12-03 04:57:58 -08:00
CasualPokePlayer 15b2264cb4 Use LuaThread Yield here instead of directly using LuaState's 2022-12-02 19:45:29 -08:00
CasualPokePlayer 51f01efdc4 Properly handle errors when running a lua script, using Resume/Yield methods added to the LuaThread class (see f904fa0d53) 2022-12-02 14:44:05 -08:00
Morilli ae11dcc6af replace default bsnes with bsnes115 2022-12-02 20:21:21 +01:00
YoshiRulz 6174398fb4
Also reset padding when removing last Lua script (resolves #1509) 2022-12-03 01:06:06 +10:00
YoshiRulz a9756b60a2
Clear OSD + surfaces when removing a Lua script (resolves #3014)
they were already being cleared when closing the Lua Console
note the "Erase Stale/Stuck Lua Drawing Layers" button does not clear OSD,
leaving that as it is for now
2022-12-03 01:02:26 +10:00
CasualPokePlayer 2efae13af4 prevent some NREs occurring with the new Lua stuff 2022-12-01 14:59:36 -08:00
YoshiRulz 999e487557
Add `bizstring.pad_{start,end}` helpers 2022-12-02 06:18:32 +10:00
YoshiRulz ca72f113df
Rename `event.onmemory*`, phase 1 (resolves #759) 2022-12-02 05:55:42 +10:00
YoshiRulz ec3a23259c
Remove default bindings for keyboards (resolves #3257)
and the Libretro mouse (leaving the other mice because you need to choose them
as peripherals for the axes to be bindable)
2022-12-02 05:35:58 +10:00
YoshiRulz 42455ac4a3
Fix syntax in `defctrl.json` and remove empty objects 2022-12-02 05:28:29 +10:00
YoshiRulz 6381448472
decimal is not floating-point
fixes fdbb34dff
2022-12-02 04:27:29 +10:00
YoshiRulz 5603e5ac01
Reorder items in Tools menu 2022-12-02 04:24:24 +10:00
YoshiRulz 3dcc3ff89f
Improve handling of exceptions thrown in `Form.Load` handlers
obviously only benefits forms inheriting `FormBase`
2022-12-02 03:48:36 +10:00
CasualPokePlayer 9393e1b764
Fix #3417 and improve handling of `default.tasproj` (squashed PR #3462)
* Fix #3417 and improve handling of default.tasproj

* expose SetMovieController in the MovieSession interface (please don't rely on it anywhere else)

* don't use this explicit public in the interface

(is this mentioned anywhere? i assume this is proper style)

* use this helper function
2022-12-02 03:44:56 +10:00
feos 10a38270e5
forgot a char 2022-12-01 19:12:45 +03:00
feos bace52c4f8 fix #2119 2022-12-01 19:10:57 +03:00
dependabot[bot] 47c494a5a6
Bump System.Drawing.Common in main solution (#3464)
Bumps [System.Drawing.Common](https://github.com/dotnet/runtime) from 5.0.2 to 5.0.3.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v5.0.2...v5.0.3)

---
updated-dependencies:
- dependency-name: System.Drawing.Common
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-02 01:22:46 +10:00
dependabot[bot] 6edac4bd2f
Bump System.Drawing.Common in HawkQuantizer (#3463)
Bumps [System.Drawing.Common](https://github.com/dotnet/runtime) from 5.0.2 to 5.0.3.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v5.0.2...v5.0.3)

---
updated-dependencies:
- dependency-name: System.Drawing.Common
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-02 01:22:18 +10:00
CasualPokePlayer 45fbdb4844
Move to NLua/KeraLua/Lua5.4 (#3361) 2022-12-01 00:51:02 -08:00
CasualPokePlayer fdbb34dff6
Lua tests (#3373) 2022-11-30 23:55:24 -08:00
CasualPokePlayer 92c1cdff22
RetroAchievements Support (#3407) 2022-11-30 23:51:17 -08:00
CasualPokePlayer eb1cef1ffc update mame to 0.250 2022-11-30 20:22:04 -08:00
CasualPokePlayer 137634cf89 add some missing updates to ares, cleanup build process a bit 2022-11-28 19:50:03 -08:00
CasualPokePlayer 8667dd9ee7 c# to previous commit 2022-11-27 23:29:54 -08:00
CasualPokePlayer 8818f79bb0 actually make N64DD support work 2022-11-27 23:29:06 -08:00
CasualPokePlayer 6baee38717 add n64 to multidisk bundler list 2022-11-27 05:51:47 -08:00
CasualPokePlayer 9420c8b21c merge latest ares, hook up its new N64DD support, make ares use AxisContraint (see #3453), some other cleanups here 2022-11-27 05:44:00 -08:00
CasualPokePlayer c23b063733 basic virtualpad + default controls for TIC80, mark it as released 2022-11-26 19:54:45 -08:00
YoshiRulz c49a8d338c
Prefix `socketServerScreenShot` blob with length too (resolves #3461)
fixes b1602dae0
2022-11-26 18:42:10 +10:00
YoshiRulz b8182f9149
Extract `ConcatArray` helper 2022-11-26 18:42:05 +10:00
Moritz Bender 1df6ce4e38
Fix key release events with modifiers not getting handled correctly (#3402) 2022-11-25 11:00:44 +01:00
CasualPokePlayer bae71326bf Fix hex editor for MAME when Open Advanced is not used 2022-11-25 01:31:02 -08:00
YoshiRulz 9a0403617b
Clean up SHA1 2022-11-24 20:15:35 +10:00
YoshiRulz 4566b744d9
Remember trusted ext. tools 2022-11-24 20:06:27 +10:00
YoshiRulz f9ac3c4b32
Clean up `MainForm.ExternalToolMenuItem_DropDownOpening` 2022-11-24 20:06:20 +10:00
adelikat e269bfd49f Log window - when copying pasting "MD5:2345" and Sha1, strip the md5 and sha1 out. I just want the number if I'm copying pasting the single line. If someone finds this objectionable, feel free to revert, but this savesme a lot of time 2022-11-23 10:54:59 -06:00
adelikat 392d126173 remove an unused method 2022-11-23 10:11:45 -06:00
YoshiRulz 683aa263a0
Include `ControllerDefinition._orderedControls` in clone ctor
I don't think this is used, but as the caching was new in 2.8, going to include
this just in case
2022-11-23 15:35:45 +10:00
YoshiRulz 52acda9a02
Re-add an assignment in `InputManager.SyncControls` (fixes #3458)
partially reverts 781c152bf
also removed now-unused method `Controller.ForceType`
2022-11-23 15:29:02 +10:00
CasualPokePlayer 3f352792a6 remove unused using from experiments in previous commit 2022-11-22 09:18:51 -08:00
CasualPokePlayer da5fae0b01 make a new "FixedGrowthList" and use it for the StringLogs
this is mostly to workaround OOM issues with VERY large movies (>134217728 frames).
so large just the list of string references is "too big" and exceeds the .net 2GB limit.
even the on disk method fails here, as the offsets list (note, long and reference are the same size) becomes too big
this probably gives a bit of speedup for "normal" movies, as the generous 16MB growth amount would likely be plenty for the movie, although i haven't test this much
2022-11-22 09:10:19 -08:00
YoshiRulz b967e6028d
Fix inconsistent application of colours from GTK theme, if available
still no idea why I can set dark theme on Ubuntu but not Manjaro, but now menus
won't use a white-to-black gradient with white text
2022-11-23 02:51:54 +10:00
YoshiRulz 0711c2b1d6
Also downcase Odyssey² gamedb filename in import line
fixes 5a4dc9fd8
2022-11-23 02:51:49 +10:00
Morilli 589823d009 GPGX: add setting to disable per-line sprite limit
- resolves #3440
- includes manually cherry-picked e0ef0902e96bd9d71cb49c64505e755007e7452c
2022-11-22 14:44:39 +01:00
CasualPokePlayer 248e87b6d1 try to load a different core if an autodetected mame rom ends up failing to load 2022-11-21 18:28:56 -08:00
YoshiRulz 5a4dc9fd88
Downcase Odyssey² gamedb filename to match others 2022-11-21 17:14:29 +10:00
YoshiRulz 937872eaf6
Fix malformed PC Engine gamedb entry
broken since addition in 8295e6d65 ("Sounds" was interpreted as the sysID)
2022-11-21 17:09:02 +10:00
YoshiRulz a5ab31643f
Remove malformed SMS gamedb entry
reverts d6d2e4c6f
(it's missing a tab, plus this is a duplicate of the entry above)
2022-11-21 17:07:18 +10:00
CasualPokePlayer 51826c4c17
Fix wrong MBC5 mapper being given a battery
0x1A is MBC5+RAM, 0x1B is MBC5+RAM+BATTERY
2022-11-19 20:44:55 -08:00
Morilli 0cb63e8d6a BSNESv115+: Implement overscan and aspect ratio correction settings 2022-11-18 13:08:27 +01:00
CasualPokePlayer 0bd182e6cc properly handle "NO GOOD DUMP KNOWN" mame rom hashes
(note, these roms are not actually in the romset, so the singular hash in movies doesn't have to be affected here)
2022-11-17 17:45:49 -08:00
CasualPokePlayer 2804ad3041 fix crashes in mame due to bad single thread handling 2022-11-17 00:45:42 -08:00
CasualPokePlayer d507246033 c# side for previous commit 2022-11-16 21:33:55 -08:00
CasualPokePlayer 44944e1d70 more simple string and double handling, allow SaveRAM usage with different bios files 2022-11-16 21:32:29 -08:00
CasualPokePlayer d0266816a5 Fix #3448. Support MAME 7z romsets 2022-11-16 17:32:20 -08:00
CasualPokePlayer 4479fec74d Add in the actual c# code for 5ae4470466
Apparently forgot to actually add this in for the commit >:
2022-11-16 15:35:37 -08:00
CasualPokePlayer 5ae4470466 Correct floating point arg support with msabi<->sysv adapter
While msabi and sysv do agree what to do with floating point args for 4 floating point args (pass in xmm0-4), they dont agree what to do with mixing
msabi will choose the register corresponding with argument position. so if you have (int foo, float bar), bar will use xmm1
sysv instead will choose the first register available in the group. so with the previous example, you instead have bar using xmm0
the simple solution is to simply prohibit mixed args for now. maybe someday we could support mixing, but that's probably overkill (best use a struct at that point)
2022-11-16 15:26:31 -08:00
CasualPokePlayer 62c3b4b8e3
Use a small dll for handling the msabi<->sysv adapter (#3451)
make a small dll for handling the msabi<->sysv adapter, using only assembly (taken from generated optimized rustc output) and handcrafted unwind information (c# exceptions in a callback seem to work fine in testing)
additionally, allow floating point arguments. this really only needs to occur on the c# side. msabi and sysv agree on the first 4 floating point args and for returns, so no work actually has to be done adapting these
with assembly being used, we can guarantee rax will not be stomped by compiler whims (and avoid potential floating point args from being trashed)
2022-11-16 09:02:13 -08:00
CasualPokePlayer a0de42b1b3 remove struct hack, it's not actually needed
out double is System.Double& while double is System.Double, so it doesn't actually trip paramenter verifier
2022-11-15 01:12:31 -08:00
CasualPokePlayer eec86ad81a Use actual doubles for figuring out aspect ratio
Fixes issues when mame sends over < 1 bounds which round down to 0 with a long cast (resulting in div by 0 exceptions)
Also fix some oopsies with incorrect function signatures.
Remove MAME string docs as they aren't really relevant anymore, as only MameGetString handles lua string handling now
2022-11-15 00:57:30 -08:00
CasualPokePlayer 64044845a6 resolve erroneous LibMAME errors due to mame_lua_get_string returning nullptr with an empty string
(now will only do so on an error)
add back in mame_lua_get_double, to be used to resolve other issues (c# code pending...)
2022-11-15 00:37:09 -08:00
CasualPokePlayer 715f4f497c add some missing mame mnemonics 2022-11-11 08:45:02 -08:00
Morilli c21fedc76a BSNESv115+: add option for disabling ppu sprite limit 2022-11-10 23:22:17 +01:00
CasualPokePlayer 066297d5e7
MAME Waterbox (#3437) 2022-11-10 00:05:25 -08:00
YoshiRulz e7e587d625
Restore old behaviour of "Always use recent path for ROMs"
fixes 41d46dd37, see #1574
2022-11-08 06:30:12 +10:00
YoshiRulz 948084a97e
Use `Movie.NotActive` extension instead of negated `IsActive` 2022-11-07 06:10:37 +10:00
YoshiRulz 84cc71e454
Use `DialogResult.IsOk` extension everywhere and clean up 2022-11-07 06:03:55 +10:00
YoshiRulz 36cb62a792
Create and use `ToolStripDropDownItem.ReplaceDropDownItems` extension 2022-11-07 06:03:55 +10:00
YoshiRulz 5df9879842
Refactor `MultiDiskFileSelector.BrowseButton_Click` 2022-11-07 05:27:15 +10:00
YoshiRulz 04f34ac7af
Add `Util.BreakDebuggerIfAttached` helper 2022-11-07 04:37:34 +10:00
YoshiRulz f1f0f1695c
Encapsulate `OpenFileDialog`/`SaveFileDialog` 2022-11-05 09:10:11 +10:00
YoshiRulz 2db5235319
Cache and reuse `FilesystemFilterSet`s 2022-11-05 09:10:11 +10:00
YoshiRulz 1232157cc1
Improve caching of `FilesystemFilterSet.ToString` 2022-11-05 09:10:11 +10:00
YoshiRulz 1b5ec471e0
Disable SA1015 "Closing generic bracket should be followed by a space" 2022-11-05 09:10:11 +10:00
YoshiRulz c153505b58
Invert some conditionals to reduce nesting 2022-11-05 09:10:10 +10:00
YoshiRulz df63853cd5
Add `IDialogParent` interface to a couple of config dialogs 2022-11-05 09:10:05 +10:00
YoshiRulz 8949b1aa6b
Make sure `CheckLib` in `Program` static ctor disposes GUI properly 2022-11-04 07:08:54 +10:00
YoshiRulz c891cc2cb5
Don't ignore mGBA skip BIOS setting when recording (resolves #2465)
also disable skip BIOS with TAS profile and enable with Casual profile
also removed `DeterministicEmulation ||= !SkipBios`, does it matter?
2022-11-03 12:04:16 +10:00
YoshiRulz 77f824ab55
Clean up `MGBAHawk.DeterministicEmulation` assignment 2022-11-03 11:56:01 +10:00
YoshiRulz 13a01340de
Refactor Libretro ControllerDef generation, fixing input display
see #3360
2022-11-03 11:02:53 +10:00
YoshiRulz 781c152bf6
Remove old ControllerDef copying that was messing with ControlsOrdered 2022-11-03 11:02:52 +10:00
YoshiRulz a8f571f2d6
Reinstate `GameInfo.NullInstance`'s name, and only instantiate it once
reverts 8dcea2470
`PathEntryCollection.RetroSystemAbsolutePath` extension didn't like this, there
may be others, and I don't want to look through them all
2022-11-03 11:02:44 +10:00
YoshiRulz 3e79e68d1d
Dedup in `CheatEdit.GetCheat` 2022-11-02 01:05:12 +10:00
YoshiRulz 414c21609b
Disallow updating cheats when multiple rows selected (resolves #1726) 2022-11-02 01:01:09 +10:00
YoshiRulz 5ae23c63bf
Change "Edit" button in Cheats dialog to read "Overwrite"
kept the mnemonic because idk
2022-11-02 01:00:16 +10:00
YoshiRulz fd2772707b
Update `forms.drawImageRegion` documentation with a diagram
only embeds on TASVideos Wiki, which I held off on updating because there are a
lot of changes and we can do them all at once
2022-10-30 18:19:23 +10:00
CasualPokePlayer 8ee75879e6 Rework MAME integration a bit
The periodic callback is now used as a way to service "commands" sent from the main thread
Upon servicing a command, the mame thread will set the current command to NO_CMD then wait for the main thread allow the mame thread to continue
During this wait, the main thread may optionally set the next command (done here for STEP -> VIDEO), ensuring the next callback will service that command
A dummy "WAIT" command can be sent to trigger this waiting behavior, allowing the main thread to safely touch mame while the mame thread is frozen (important for mem accesses and probably savestates?)

A/V sync is also reworked. We can assume that 1/50 of a second worth of samples will be sent each sound callback. We can also assume 1/FPS of a second worth of time will be advanced each frame advance
So, we can just give hawk 1/FPS worth of samples every GetSamplesSync, if they are available. If we have less (probable on first few frames), we'll just give all the samples, and hope it balances out later.
2022-10-29 17:07:50 -07:00
CasualPokePlayer cc71882059
BSNES Memory Domain Fixes (#3423)
* Use SameBoy submodule symlink for BSNES

* SGB memory domains

* Fix SGB saveram issues (extra data like rtc will be saved correctly now here)

* Various cleanups, avoid unneeded unsafe use, a little better EnterExit use

Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
2022-10-28 19:22:49 -07:00
YoshiRulz 02d1542e40
GitLab CI: Switch to Alpine Docker images where possible
partially reverts cdeec7cfb
2022-10-27 15:53:02 +10:00
Morilli 256a8617e9 Fix #3399 by always calling UpdateViewerMouseover 2022-10-27 01:30:41 +02:00
YoshiRulz cdeec7cfb4
GitLab CI: Pin Nix Docker image 2022-10-24 20:25:23 +10:00
CasualPokePlayer 2d6c0af570 Fix oops from fe9e97e505 2022-10-21 18:58:08 -07:00
CasualPokePlayer fe9e97e505 Fix #3425 2022-10-21 18:52:18 -07:00
Morilli e073173a8c Update make-all-cores.sh 2022-10-22 03:18:59 +02:00
CasualPokePlayer dd33e92a9f ensure ClockRate in the Bk2Header uses . instead of , 2022-10-21 02:34:59 -07:00
CasualPokePlayer c8d4e606af suppress updates while rebooting core, fixes #3424 2022-10-21 02:19:22 -07:00
CasualPokePlayer b81728b2dc Correctly account for multiboot GBA ROMs, fixes #3421 2022-10-20 02:42:31 -07:00
CasualPokePlayer 8f1a0b9bb1 update melonds (TODO: Wire up camera) 2022-10-20 00:47:16 -07:00
Prcuvu ad85be7bed
Register TCM areas for melonDS core (#3420)
* Register TCM areas for melonDS core

* reorder mem domains a bit, add TCM to ARM9 System Bus, build

Co-authored-by: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
2022-10-19 23:47:42 -07:00
CasualPokePlayer f29113287e add Jaguar to MultiDiskBundler menu 2022-10-11 21:51:26 -07:00
YoshiRulz cbe298b467
Nix expr: Add FlatBuffers package
fixes 158c897702
2022-10-12 14:08:50 +10:00
YoshiRulz 2b4d9c0c7d
Add debug utility to byteswap N64 roms 2022-10-11 10:12:49 +10:00
YoshiRulz 5b859960e9
Move types for debug menu to own files 2022-10-11 10:12:49 +10:00
YoshiRulz 82c3b471a5
Minor refactors to byteswapping (N64 rom loading and Lua bit library) 2022-10-11 10:12:45 +10:00
YoshiRulz bb4ba2184f
Fix `forms.*` acting on every LuaPictureBox, not the specified one
fixes #3395
this has been broken since introduction in 2ddadeae2
2022-10-08 11:11:40 +10:00
YoshiRulz 7930a79cef
Prompt to disable cheats when starting movie playback (resolves #3389) 2022-10-08 10:42:10 +10:00
YoshiRulz 28c53cfa21
Fix `APIContainer.Comm` not having `HTTP`/`Sockets` on first boot 2022-10-06 11:53:11 +10:00
CasualPokePlayer 2fa46efda6 add jaguar db, change db parser to prefer the strongest hash available, fix potential edge case if a crc32: prefix is present (and simplify the code) 2022-10-04 22:05:38 -07:00
CasualPokePlayer 5382d4d345 Revert ""cheat" around the lack of pipeline emulation, delaying bankswitches/imask clears (note: branching resets the pipeline)"
This reverts commit d5a47490ff.
2022-10-04 18:10:42 -07:00
CasualPokePlayer d5a47490ff "cheat" around the lack of pipeline emulation, delaying bankswitches/imask clears (note: branching resets the pipeline) 2022-10-04 17:58:29 -07:00
CasualPokePlayer c547a20f8e Use `LoadOther` for GBS files, cleanup the code a little, update SameBoy version info 2022-10-03 15:49:09 -07:00
CasualPokePlayer 9528a2030f GBS support using SameBoy 2022-10-03 01:55:14 -07:00
CasualPokePlayer 0c6f0523a0 Update sameboy, expose audio channel enable/disabling, cleanup settings to go through a single call/struct 2022-10-02 21:40:00 -07:00
CasualPokePlayer 7f8b4b8c87 fix whitespace in default controls (fixes 8732e561a1) 2022-10-02 19:10:13 -07:00
CasualPokePlayer 8732e561a1 Better Jaguar Virtual Width/Height
Jaguar VPad
Proper Jaguar default controls
Remove a lot of unneeded `ReSharper disable once UnusedMember.Global` in vpads (Global has been gone for a while now...)
Set VirtualJaguar to released
2022-10-02 18:53:34 -07:00
CasualPokePlayer 71f2676ad8 more virtualjaguar cleanup, fix various bugs, have the DSP run more in sync with the CPU/GPU (makes Zoop boot, Doom is much less laggy, various missing sound issues are no longer present) 2022-10-02 06:50:11 -07:00
CasualPokePlayer 2e5c62f632 default Jaguar bios to not be skipped, some games rely on Jaguar bios running on boot 2022-09-30 23:54:13 -07:00
CasualPokePlayer be771c134c default to KSeries bios instead of MSeries bios, as it seems to be more compatible 2022-09-30 21:56:19 -07:00
CasualPokePlayer 5f509525bc [virtualjaguar] less screen changing spam 2022-09-30 21:44:34 -07:00
CasualPokePlayer 98be50057a [virtualjaguar] proper mulitwidth support, fixes Doom 2022-09-30 21:42:36 -07:00
CasualPokePlayer a59d66dfdd proper fix for mmult opcode, properly fixes Baldies music 2022-09-30 15:24:24 -07:00
YoshiRulz 7efafc18da
Extract helper code for Analyzers and Source Generators 2022-10-01 04:13:55 +10:00
YoshiRulz 1fbb95a353
Make MSBuild ignore shell scripts for external .NET projects 2022-10-01 04:13:48 +10:00
CasualPokePlayer 929b034321 fix bad fix to risc jr, & 0x10 seems to be correct according to battle morph and blue lightning... 2022-09-30 04:36:40 -07:00
CasualPokePlayer 95c06e0b6e better fix for d7810f6ea9, remove incorrect comment 2022-09-30 04:18:02 -07:00
CasualPokePlayer f1a3e02e89 revert some of baa3bdf948, as it caused regressions elsewhere, make GPU interrupts not stupid (makes Myst stop crashing with NTSC) 2022-09-30 02:28:27 -07:00
CasualPokePlayer baa3bdf948 [virtualjaguar] rework dsp and gpu opcodes to come from the same source, fix some wrong opcodes (partially fixes Club Drive and Baldies music) 2022-09-29 21:53:14 -07:00
YoshiRulz 7b060bada4
Build external .NET projects in GitLab CI weekly slow builds 2022-09-30 08:58:43 +10:00
YoshiRulz 466d052c2d
Clean up project files of external .NET projects 2022-09-30 08:51:57 +10:00
YoshiRulz 65f5aecfa6
Fix warnings in external .NET projects 2022-09-30 08:51:53 +10:00
YoshiRulz 04fcf59afe
Update C++ FlatBuffers lib, check in new codegen, and rebuild cores 2022-09-30 05:33:18 +10:00
YoshiRulz 158c897702
Use `Google.FlatBuffers` NuGet package and check in new Nyma codegen 2022-09-30 05:33:18 +10:00
YoshiRulz cf0053fd3c
Update FlatBuffers codegen script for Nyma cores
uses latest (they switched from SemVer to dates, so 22.9.24 follows 2.0.8)
works on real Linux, using Nix if installed
2022-09-30 05:33:17 +10:00
YoshiRulz ddac50eb30
Pull musl submodule 2022-09-30 05:32:19 +10:00
YoshiRulz 5544bc526a
Add missing import
fixes 9e9e041bb
2022-09-30 03:52:05 +10:00
YoshiRulz 9e9e041bba
Fix AOoRE when loading TAStudio w/ cheats(?)
partially reverts dd4f9aaf6
InputRoll code is too inscrutable for me to determine the actual cause so I just
left a `Debug.Assert`
2022-09-30 03:25:13 +10:00
CasualPokePlayer d7810f6ea9 fix buggy TOM writes, fixes Baldies 2022-09-28 19:45:41 -07:00
CasualPokePlayer f8a4524df7 add in missing platform framerates, add in Jaguar CD iding for movie file, fix aspect ratio for jaguar 2022-09-28 17:25:34 -07:00
YoshiRulz 79d43dab1d
Extract constants used for `NamedLuaFunction.Event` 2022-09-29 08:54:23 +10:00
YoshiRulz 9815b377d1
Also protect against mutation of `IEnumerable` for `onconsoleclose`
see 7a26546cf, fixes dc66b4357
2022-09-29 08:54:16 +10:00
YoshiRulz 7a26546cfc
Maybe fix mutation of IEnumerable (`InvalidOperationException`)
fixes 3024bc0d0
2022-09-29 05:21:08 +10:00
CasualPokePlayer f0529fde28 [virtualjaguar] stop a CD transfer when address is greater than the end, rather than greater than or equal to, fixes battle morph 2022-09-28 04:31:06 -07:00
CasualPokePlayer 70a21ee07e push c# side for memtrack support 2022-09-28 03:28:01 -07:00
CasualPokePlayer 6388e4a0a8 more vjaguar cleanup 2022-09-28 03:25:53 -07:00
CasualPokePlayer 80cf3a0c48 [virtualjaguar] memtrack support, fix bug with event system, various cleanups 2022-09-28 03:25:53 -07:00
Morilli 9fa38b8d78 Fix #3398 2022-09-27 13:58:56 +02:00
CasualPokePlayer 94bb881d00 better completely wrong cd timings, fix some bad risc opcodes, fixes FMVs in jag cd games 2022-09-26 21:49:33 -07:00
CasualPokePlayer b84ef509ec fix circular buffer, fix 24bpp mode 2022-09-25 19:54:56 -07:00
CasualPokePlayer bc83c9c917 adjust jagcd timing
this is still very wrong (needs something smarter for timing) but seems to make games intros not puke garbage sound now
2022-09-25 06:53:24 -07:00
CasualPokePlayer c2ae5bfa0e jagcd cd_initm support, fix some bugs 2022-09-25 06:05:28 -07:00
YoshiRulz b2bacdecd2
Fix double call to pure method 2022-09-25 22:26:41 +10:00
CasualPokePlayer 1f9337d225 fix loading in byteswapped jag cds 2022-09-25 01:03:45 -07:00
CasualPokePlayer ceff5f3e90 jagcd progress, fix jaguar lag when dsp is polling inputs 2022-09-25 00:38:01 -07:00
YoshiRulz 3cbdd36fe0
Deduplicate some code in `MainForm` 2022-09-25 07:04:21 +10:00
YoshiRulz 728f393eb1
Clean up `MainForm.CheckHotkey` 2022-09-25 07:04:21 +10:00
YoshiRulz d7c79a5f03
Fix "Toggle All Cheats" hotkey behaviour re: separators 2022-09-25 07:04:13 +10:00
CasualPokePlayer 3122078dfd tweak jaguar cpu tracelogger 2022-09-24 06:23:24 -07:00
CasualPokePlayer ff5c8d4e52 more jag disasm tweaks 2022-09-24 04:38:06 -07:00
CasualPokePlayer c92c2bf661 fix jag risc disasm 2022-09-24 04:30:05 -07:00
CasualPokePlayer 38b4b98fc0 minor touchups to jag risc disassembler 2022-09-24 04:29:00 -07:00
CasualPokePlayer c9618b3f92 c# side to jag debugging improvements 2022-09-24 04:15:05 -07:00
CasualPokePlayer 740cd1f8d4 more reg get/setting and tracing support for gpu/dsp 2022-09-24 04:14:28 -07:00
CasualPokePlayer ef18a76064 improve jaguar system bus, add more jaguar memory domains 2022-09-23 19:43:49 -07:00
CasualPokePlayer d8825deb8d fix non-word alignment hack 2022-09-23 06:40:13 -07:00
CasualPokePlayer 8194e5ff4b add hacks to support byteswapped and/or non-word aligned jagcds 2022-09-23 06:36:11 -07:00
CasualPokePlayer 801a783c69 fix gpu/dsp ram domains 2022-09-23 02:43:49 -07:00
CasualPokePlayer 6113f3c17b partial jagcd support (doesn't seem to completely work here)
fix some issues with vjaguar cleanup
add mem/trace callbacks and get/set reg support
2022-09-23 01:05:41 -07:00
CasualPokePlayer d50454b37a cleanup vjaguar code 2022-09-19 04:41:10 -07:00
CasualPokePlayer 71e3dfed74
fix #3388 2022-09-18 22:44:26 -07:00
CasualPokePlayer 38d3d36199 fix opcode address in exec callbacks + tracing (thanks prefetch)
sp/lr/pc for r13/r14/r15 for tracing
fix a bad for threaded renderer's thread start callback
2022-09-18 02:39:31 -07:00
CasualPokePlayer e242d35a22 pull latest sameboy, rework build system into a makefile 2022-09-17 18:40:30 -07:00
CasualPokePlayer 5e34dc6166 Always savestate expansion pak regardless of settings.
All the disable expansion pak setting actually does is tell the game the expansion pak is not available.
However, not all games actually abide by this, some will use the expansion pak area anyways.
Video plugins also end up just using a "segfault test" to determine if the expansion pak is present or not
So video plugins may use the expansion pak area too
This ends up causing savestates sometimes just crashing the game if the expansion pak ends up used

Resolves #3092, other state issues might be solved with this (I suspect #3328 is caused by this)
2022-09-17 13:11:31 -07:00
CasualPokePlayer de38781081 Implement Rumble for Nyma 2022-09-17 01:36:51 -07:00
YoshiRulz de1e7eef69
Document socket response format 2022-09-16 22:37:15 +10:00
CasualPokePlayer afccbe8aa6 Fix hang with "Go to Address" dialog in RamSearch
resolves #3384, fixes cc4acd9c64
2022-09-14 19:39:03 -07:00
YoshiRulz 1bf2bb758c
Change serialisation of Jaguar VSystemID
also fixed line ending
2022-09-12 17:13:15 +10:00
CasualPokePlayer 483258a04d virtualjaguar port, resolves #1907 2022-09-11 21:38:46 -07:00
CasualPokePlayer 34c504d7b9 update ds disassembler 2022-09-10 20:53:05 -07:00
YoshiRulz d2965c2185
If dummy sound chosen in config, try DirectSound (maybe fixes #3379)
- if DirectSound fails (i.e. dummy is in config for a reason), then skip the
error dialog as the user has probably seen it already, and set it back to dummy
- if DirectSound succeeds, leave it, it will be written to config (there's a
mute setting for people who really don't want sound)
- copied the init config code so s/DirectSound/OpenAL/ on Linux
- could probably try OpenAL on Windows when DirectSound fails but whatever
2022-09-08 08:39:25 +10:00
YoshiRulz 707ec53bd5
Move `SoundConfig.ApplyNewSoundDevice` logic to callsite 2022-09-08 08:23:01 +10:00
Moritz Bender 6f0953aaa3
Implement snes graphics debugger for the new bsnes core (#3367)
* Partial port of graphics debugger to new BSNES

* minimal "working" copy-paste

* small fix for the previous commit

* Implement more stuff

* no idea whose responsibility "EnterExit" is but this should work

* add support for backdropcolor

i have 0% trust in this code

* implement mode7, apply backcolor on load

* 🙈

un-"implement" the nonfunctional scanlinehookmanager as well as the non-functional palette setting logic
- this may actually break config lol

* don't break libsnes config

* Provide IBSNESForGfxDebugger in the subbsnes core

* Remove redundant semicolon

* Clean up diff of `comboPalette_SelectedIndexChanged`

* Fix crash

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2022-09-03 19:13:56 +02:00
YoshiRulz 28d62e69d7
Enable menu mnemonics (Alt+X) for MainForm on Linux 2022-09-03 19:59:08 +10:00
Bruno Valadão Cunha f024986ffc
Added 'Edit marker frame' feature (squashed PR #3351)
* Added 'Edit marker frame' feature
* Changed Edit Marker Frame icon to clock
* Hotkey tooltip + Prevent changing to a frame that already has marker
* Forgot to delete this icon, was replaced by Clock.png
* De-rookie here and there
* Clean up diff
2022-09-03 12:08:23 +10:00
CasualPokePlayer 09e8c7a9b6 ensure ds firmware settings represent sync settings if real firmware isn't used
resolves possible cause for #3377
2022-09-02 15:11:34 -07:00
CasualPokePlayer 70906c9004 quick fail is the user is somehow running EmuHawk as a 32 bit process 2022-08-29 17:01:26 -07:00
CasualPokePlayer b588212e17 remove unused using (cruft from experimentation), remove unneeded enum values 2022-08-29 16:36:32 -07:00
CasualPokePlayer e198122691 output a more helpful error message on windows for GetErrorMessage 2022-08-29 16:33:41 -07:00
CasualPokePlayer 06226e78cf add way to obtain error message in ILinkedLibManager, use it to display an error code for init lib checks 2022-08-29 15:34:44 -07:00
CasualPokePlayer 463780a875 more cleanly deal with dummy hashes
fixes a515672
2022-08-28 03:13:23 -07:00
CasualPokePlayer a515672d4d fix #3159 2022-08-28 02:56:31 -07:00
CasualPokePlayer 13069d08f4 fix gpgx pattern cache invalidation, resolves #3363 2022-08-27 18:49:00 -07:00
YoshiRulz 14f470a9a7
Improve encapsulation of `ToolFormBase` props 2022-08-28 03:39:18 +10:00
YoshiRulz faf4a8b24f
Remove unused "TAStudio states" path
TAStudio prop unused since 5bf21e391, path was still in use until b1296dd9b
2022-08-28 03:09:59 +10:00
CasualPokePlayer f1ef8d0887 fix oopsie in angrylion, resolves #3372 2022-08-26 14:27:26 -07:00
CasualPokePlayer c761d6d807 fix changing mupen expansion pack setting 2022-08-26 13:30:44 -07:00
YoshiRulz a344ee2288
Fix modifier key check in `TAStudio.TasView_MouseDown` 2022-08-24 09:44:24 +10:00
YoshiRulz 61c34eca74
Minor refactor to not mutate local in `TAStudio.TasView_MouseDown` 2022-08-24 09:44:17 +10:00
CasualPokePlayer 352977c7ea speedup HashRegion/ReadByteRange/WriteByteRange for waterbox cores (doesn't do anything for non-wbx cores) 2022-08-23 03:09:23 -07:00
YoshiRulz 5906fd154e
Fix typo
fixes a95c4f182
2022-08-22 01:21:22 +10:00
CasualPokePlayer afdfa065bd missed apostrophe somehow 2022-08-19 23:46:03 -07:00
CasualPokePlayer 9174d17bd8 tic80 settings for enabling/disabling controllers, proper mnemonics 2022-08-19 23:43:55 -07:00
CasualPokePlayer 98a8cdf693 remove gongshell, add "simple" code for opening win32 context menu (gongshell's only actual use), re: #2261 2022-08-19 00:24:50 -07:00
YoshiRulz d58a4a07f5
Update `PcxFileTypePlugin.HawkQuantizer` project file to match others 2022-08-19 17:02:27 +10:00
YoshiRulz 64bc762439
Mute new MSB3270 warnings
no sure if these are the result of a .NET SDK update or my NuGet experiment
2022-08-18 17:16:40 +10:00
YoshiRulz 3a3494aedb
Add missing attribute to `events.can_use_callback_params` param 2022-08-18 17:12:15 +10:00
YoshiRulz f973ef91dd
Nix expr: Add libzstd to rundeps 2022-08-17 21:40:06 +10:00
YoshiRulz 8d484ac196
Hardcode edge cases in `MovieConversionExtensions` to pass test
the argument in every real call is from `IMovie.Filename`, which is never
assigned null, and I don't think it's assigned anything but an absolute path
2022-08-17 19:05:32 +10:00
CasualPokePlayer 2ecb572892 fix nyma light guns, resolves #3359 2022-08-17 01:57:40 -07:00
YoshiRulz 7cde8bb466
Add and use 2 extension methods for splitting path into dir+filename 2022-08-17 17:35:07 +10:00
YoshiRulz dce961357a
Refactor `IGameInfo.FilesystemSafeName` extension
it doesn't make any sense to split this string into dir+filename, it shouldn't
contain a slash
2022-08-17 17:35:07 +10:00
YoshiRulz 2b59cfc1c4
Small refactor in `DiscMountJob.RunBizHawk` 2022-08-17 17:35:07 +10:00
YoshiRulz 10478e23f1
Remove redundant dir exists checks 2022-08-17 17:35:07 +10:00
YoshiRulz f228b01bdf
Rename `IMainFormForTools.SetWindowText` to `UpdateWindowTitle`
in practice there is only one implementation and it just called the other method
(which is inherited from `FormBase`)
2022-08-17 17:35:06 +10:00
YoshiRulz a5a68af3f9
Disable MEN007 "Use a single return" 2022-08-17 17:35:06 +10:00
YoshiRulz d5bf542a3c
Cache `ToolStripRenderer` used by `FormBase.FixBackColorOnControls` 2022-08-17 17:35:06 +10:00
YoshiRulz 322ed164bf
Remove backing field of `FormBase.BlocksInputWhenFocused` 2022-08-17 17:34:59 +10:00
Peter Jorgensen 3958348e94
Add auto save state on close (squashed PR #3218)
resolves #1861

* Add configuration for auto-saving state on exit
* Update MainForm to auto save on close game if configured
* Fix config serialization test.
* Revert unnecessary changes to Designer file
* Move autosave configuration into Save States menu off of File
* Undo previous test changes
* Remove explicit size on menu item.
* Fix logic
2022-08-17 14:27:50 +10:00
CasualPokePlayer f1fc05fe60 quick fix some graphical bugs
this isn't right but should suffice in practice most of the time
2022-08-16 17:49:54 -07:00
Morilli 7ffa605b28 BSNESv115: fix crash when audio output is disabled
(fixes 039d822144)
2022-08-17 01:35:02 +02:00
Moritz Bender 039d822144
BSNESv115+: Replace the 'snes_audio_sample' callback with a dynamic audio sample vector to reduce callbacks (#3010)
* BSNESv115+: Replace the 'snes_audio_sample' callback with a dynamic audio sample vector to reduce callbacks

* fix integration for subbsnes core

* reduce buffer allocations
- also make frame setter private now that it's possible
2022-08-15 20:50:26 +02:00
Morilli f1e11dfc36 simplify Stream.ReadAllBytes extension and use it more 2022-08-15 20:35:57 +02:00
CasualPokePlayer 31c7f59e86 fix some edge cases with new zip compression 2022-08-15 10:59:27 -07:00
CasualPokePlayer 0ff4aca182 [Gambatte] Remote control controls and remote control emulation expanded to HuC1 IR and CGB IR (previously only done in HuC3) 2022-08-15 02:49:34 -07:00
YoshiRulz aba3359dde
Add CPP's testroms to GB testroms project 2022-08-14 16:21:27 +10:00
YoshiRulz 18a7201004
Fix building testroms project
fixes b8d5dd899
also addressed code style warnings and fixed a typo in GambatteSuite.BeforeAll
note the last acid suite fail is gone after a recent SameBoy update,
unfortunately the same update added a bunch of fails in the mealybug suite,
though the suite itself needs updating too
2022-08-14 00:33:12 +10:00
YoshiRulz a5652ee3bc
Backport `IEnumerable.Order`/`OrderDescending` shorthand
at time of writing, in .NET 7 preview
https://github.com/dotnet/runtime/pull/70525
2022-08-13 02:18:26 +10:00
Moritz Bender 929432086f
BSNESv115: add dedicated subframe core (#3281)
* BSNESv115: allow subframe inputs

* BSNESv115: Implement ICycleTiming

may be correct, not sure

* BSNESv115: add dedicated subframe core

I have probably overlooked something...

* Don't implement ICycleTiming in the non-subframe core

requires re-implementing the "FrameAdvance" function in the subframe core

* Register previously missing services in the subframe core as well

* Wire up SubBsnes everywhere in the frontend

* Change reset cycle to reset instruction

* Deduplicate some code

* Slightly rework frame advance logic. The main intent here is to prevent a case where two frames are ran within a single "frame." The current code probably wouldn't crash due to that, but best not to do that.
Also make SGB work here. A bit of a joke since you really can only abuse it for subframe resets, but might as well especially with the settings implying it's possible (and someone is bound to complain).

Co-authored-by: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
2022-08-10 23:08:44 +02:00
CasualPokePlayer 1a27aae45b update sameboy 2022-08-10 12:34:46 -07:00
CasualPokePlayer b8444f8bd2 update ares 2022-08-10 04:42:38 -07:00
YoshiRulz b1207b9c2c
Further fix test execution on GitLab CI 2022-08-10 19:58:25 +10:00
CasualPokePlayer afb0b8a435 maybe fix tests? 2022-08-10 02:55:01 -07:00
YoshiRulz 4ce1ec2e37
Fix test execution on Linux / GitLab CI 2022-08-10 17:35:32 +10:00
CasualPokePlayer 5be8b0aab9
Zstd Compression (#3345)
Deflate compression in rewinder is now zstd compression
Binary blobs in zip files are zstd compressed (text is uncompresed for user ease).
All wbx cores and resources are re-compressed with zstd, wbx build scripts are changed to account for this. Shaves off a bit with download size and it's faster to decompress to.
2022-08-09 23:33:28 -07:00
CasualPokePlayer 32e8afcedc
Implement hardware accelerated CRC32 and SHA1, using them if possible (#3348)
* Implement hardware accelerated CRC32 and SHA1, use them if possible.
CRC32's generic function is also replaced with zlib's as it is much more performant than our implementation
Full hash of a ~731MB disc took only ~369 ms with this, and the generic CRC32 isn't so far behind at ~659 ms
SHA1 should perform 4x faster if the user's CPU supports the SHA instructions.

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
2022-08-09 23:30:17 -07:00
YoshiRulz 0236a820ec
Unindent `RomLoader.MakeGameFromDisc` 2022-08-06 09:22:51 +10:00
YoshiRulz 8f153fd503
Restore PS2 sysID and add some others from RomLoader 2022-08-06 09:22:51 +10:00
CasualPokePlayer 5cd37c76b2 dobie removal cleanup
fixes 89972a3579
2022-08-05 03:32:09 -07:00
YoshiRulz 1452f831af
Fix Lua Wiki export, add more notes to fill in some of the holes
frameadvance loop is documented now so for the first time you can write a script
without reading someone else's :O imagine that
2022-08-05 11:41:24 +10:00
YoshiRulz 7bb4b28093
Remove dumb in `MainForm.WindowTitle` so you can see FPS w/ chromeless
(window title is shown in the toolbar / application switcher on Win and Linux)
2022-08-05 07:23:43 +10:00
YoshiRulz 22a328cd36
Remove unused service props
unused since 1ce8a368d and 70e0954f2, respectively
2022-07-30 09:26:18 +10:00
YoshiRulz 5c48cb96fd
When starting new `.tasproj` from SaveRAM, don't clone array twice 2022-07-30 09:26:06 +10:00
CasualPokePlayer d3c42f5dfc Only shift right by 1 for volume with Gambatte, sounds very close to SameBoy, probably resolves #3338 2022-07-28 17:27:30 -07:00
YoshiRulz ccc11be896
Explicitly discard required-but-unused `IStatable` service prop 2022-07-28 05:51:38 +10:00
YoshiRulz 787b413913
Change Basic Bot's addresses to `ulong?`
fixes empty address fields being saved as `0x0`, see #3326
2022-07-28 05:48:05 +10:00
YoshiRulz 5f572442c4
Save game info to `.bot` files and check when loading (resolves #3340) 2022-07-28 05:27:13 +10:00
YoshiRulz 140e340a8d
Add Analyzer rule to warn of `FirstOrDefault` on list of structs 2022-07-28 03:06:01 +10:00
YoshiRulz 8453c0e44d
Fix exception on opening Play Movie dialog with multiple movies
fixes 9211007a1
2022-07-27 05:08:33 +10:00
YoshiRulz bd58bde07c
Hopefully block edge cases where global `GameInfo` is uninitialised
`Game == null` conditions in `MainForm` ctor looked unreachable, so I changed
them to `Game.IsNullInstance()` which is what I assume was intended, and added
an assert to `RomLoader` in case a bug is introduced later
2022-07-26 07:59:57 +10:00
CasualPokePlayer d84da4ec4b wire up sameboy's rumble 2022-07-25 00:10:46 -07:00
YoshiRulz ea5e8b70d3
Fix compilation of ext. tools 2022-07-25 11:16:42 +10:00
YoshiRulz 8dcea24703
Fix `GameInfo.NullInstance` having a name... why did it have a name 2022-07-25 11:15:19 +10:00
YoshiRulz d796210437
Cancel tool loading when services aren't satisfied (fixes #3329)
also cleaned up other calls
2022-07-25 10:52:02 +10:00
YoshiRulz 070e7035b3
Ensure there can be no edge cases involving SGXCD sysID
breaks config, in case you care about setting a custom save dir for PCE
2022-07-25 08:15:24 +10:00
YoshiRulz 3d42b19797
Pass `VSystemID.Raw.NULL`, not `null`, for `SystemId` 2022-07-25 08:15:17 +10:00
CasualPokePlayer cb468ba806 pull in latest sameboy master, add stub camera pixel callback to prevent nondeterminism, wire disabling joypad bounce as a sync setting, various cleanup 2022-07-24 04:35:03 -07:00
zeromus e2a36c7242 DisplayConfig defaults button should whack the padding back to 0 2022-07-22 16:38:42 -04:00
zeromus 3b181ba6e4 DisplayManager - fix crashes when setting absurdly large padding values (fixes #3321) 2022-07-22 16:09:49 -04:00
tom_mai78101 6eafdf7156 Fixed issue where the Copy button in Basic Bot is not toggled on/off properly.
If the Copy button is enabled, but there is no best attempt recorded, it will crash BasicBot / EmuHawk if it attempts to copy a null Log of the best attempt.
2022-07-23 05:49:50 +10:00
CasualPokePlayer d8fc32f1a8
[mGBA] Add in missing save types 2022-07-21 15:38:59 -07:00
YoshiRulz 0f6e6a5a03
Enable MA0084 and fix noncompliance (except in Cores)
"Local variable should not hide other symbols"
2022-07-22 07:28:32 +10:00
YoshiRulz d142555ec3
Enable MA0066 and fix noncompliance
"Hash table unfriendly type is used in a hash table"
2022-07-22 07:28:31 +10:00
YoshiRulz 41d46dd37d
Fix `%recent%` in Paths config
broken since introduction in 017743133 (pre-1.0 according to GitHub)
also enabled MA0052 "Replace constant Enum.ToString with nameof", which is what
tipped me off to this
2022-07-22 07:28:25 +10:00
YoshiRulz 0309cdc4bc
Disable MEN015 "Use Preferred Terms" (spellcheck)
you're supposed to be able to configure this but I couldn't figure it out
2022-07-22 05:39:03 +10:00
YoshiRulz 9211007a18
Fix bug in `PlayMovie.PreHighlightMovie` heuristics
for the record, the bug was that it had `_movieList[indices[0]]` in the loop
instead of `_movieList[indices[i]]`
2022-07-22 05:06:05 +10:00
YoshiRulz 3f2a07e582
Fix remaining MA0098 code style warnings
"Use indexer instead of LINQ methods"
fixes 17df5673d, forgot I was in the middle of this when I pushed
2022-07-22 04:51:56 +10:00
YoshiRulz 17df5673d2
Enable MA0098 and fix noncompliance
"Use indexer instead of LINQ methods"
2022-07-22 03:51:47 +10:00
YoshiRulz ee11385f10
Enable MA0031 and fix noncompliance
"Optimize Enumerable.Count() usage"
2022-07-22 03:51:47 +10:00
YoshiRulz b1ad34839a
Enable MA0029 and fix noncompliance
"Combine LINQ methods"
2022-07-22 03:51:47 +10:00
YoshiRulz 26b6a1c4a9
Enable MA0020 and fix noncompliance
"Use direct methods instead of LINQ methods"
2022-07-22 03:51:47 +10:00
YoshiRulz 697c10e3e6
Enable MA0015 and fix noncompliance
"Specify the parameter name in ArgumentException"
needed to update package because this rule was broken until now
2022-07-22 03:51:46 +10:00
YoshiRulz 92c4714be1
Enable CA2208 and MA0043 and fix noncompliance
"Instantiate argument exceptions correctly" and
"Use nameof operator in ArgumentException"
2022-07-22 03:51:45 +10:00
YoshiRulz 5a8a24e936
Enable MA0054 and fix noncompliance
"Embed the caught exception as innerException"
2022-07-22 03:51:43 +10:00
YoshiRulz 8ac4dabaf7
Enable MA0012 and MA0014 and fix noncompliance
"Do not raise reserved exception type" and
"Do not raise System.ApplicationException type"
now mostly compliant with
https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/using-standard-exception-types
2022-07-22 03:51:43 +10:00
YoshiRulz a2fef59fe1
Add Analyzer rule to prohibit `typeof(T).ToString()` 2022-07-22 03:51:43 +10:00
YoshiRulz f3f90a4cd5
Add Analyzer rules to prohibit `this.GetType()`
seriously Meziantou is a godsend
2022-07-22 03:51:42 +10:00
YoshiRulz dcc8957be3
Fast-fail Analyzer properly, fix typo
thanks to https://www.meziantou.net/working-with-types-in-a-roslyn-analyzer.htm
2022-07-22 03:51:36 +10:00
YoshiRulz 4956bae3a2
Improve error message for `IToolFormAutoConfig` ext. tool missing menu 2022-07-22 02:02:01 +10:00
CasualPokePlayer 480ce3b925 fix minor miscompilation of gambatte-linux, update LibGambatte to reflect API changes wrt CameraCallback 2022-07-20 23:35:29 -07:00
CasualPokePlayer a8f709a8a4 [Gambatte] ensure cameraBuf_ is signed, misc cleanup 2022-07-20 23:29:53 -07:00
CasualPokePlayer d209ba289f various gambatte updates / bugfixes 2022-07-20 22:51:28 -07:00
YoshiRulz 4a7ed563b6
Revert "Pin and downgrade Nix Docker image"
This reverts commit 93bb90b584.
2022-07-20 21:09:06 +10:00
YoshiRulz 84886b7395
Nix expr: quick fix for deps
fixes 6b4e526a4
2022-07-20 01:59:48 +10:00
YoshiRulz 9bb96fbadc
Update doc comments to reflect thrown exception change
fixes 4f98733c2
2022-07-19 03:20:43 +10:00
James Groom 8434a2fd70
Add another note about which .NET target the BizHawk projects use 2022-07-18 18:37:25 +10:00
YoshiRulz 6b325ff56c
Refactor `BasicBot.IsBetter` 2022-07-18 18:22:59 +10:00
Thompson Lee 008a5953f6 Fixed code logic error in BasicBot
It was comparing with itself when it's comparing the Tie Breaker 3 value.
2022-07-18 17:33:41 +10:00
CasualPokePlayer c02975c757 merge aresv129, enable SIMD RSP 2022-07-17 18:52:59 -07:00
nattthebear 89972a3579 Remove dobie core
This never really worked.  Besides being unusuably slow and not very accurate, there was a miscompliation problem that caused release builds to not function.
2022-07-17 15:02:42 -04:00
CasualPokePlayer 8289c1051b add hash for newly discovered GBC-GBA bootrom 2022-07-16 22:03:47 -07:00
YoshiRulz aa708992e9
Use nicer error message for starting MAME in non-MAME build 2022-07-16 16:25:59 +10:00
tom_mai78101 efbef0bbda Fixed Basic Bot anchor points.
Also fixed a misaligned label.
2022-07-16 16:20:39 +10:00
tom_mai78101 e2fb6017b7 Added missing NOT operators from the dropdown menu. 2022-07-16 16:11:16 +10:00
James Groom 7e54322901
Add contributor's guide (squashed PR #3292)
Includes primitive contributor license agreement; when creating a PR, contributors will need to check a box confirming they're not infringing on any copyrights.
2022-07-15 23:25:27 +10:00
YoshiRulz 94e85f1079
Set `Form.Owner` to MainForm for Lua-made forms 2022-07-15 22:26:08 +10:00
YoshiRulz 3fddcdb2c5
Add Analyzer rule to enforce throwing in `[FeatureNotImplemented]` 2022-07-15 22:22:28 +10:00
YoshiRulz 26e02033f2
Do the analysis for BHI1005 properly 2022-07-15 22:22:28 +10:00
YoshiRulz 6b4e526a44
Actually run all the Analyzers for ext. tools, update Analyzers
fixes 6f372820a
2022-07-15 22:22:19 +10:00
tom_mai78101 ece2d8d68c Added NOT operator to Basic Bot. 2022-07-15 16:02:00 +10:00
YoshiRulz 5379de9a6e
Enable MA0019 and fix noncompliance
"Use EventArgs.Empty" (instead of ctor)
2022-07-15 09:34:52 +10:00
YoshiRulz 4f98733c29
Add Analyzer to enforce exception type for default switch branches 2022-07-14 23:46:34 +10:00
YoshiRulz 90fe31529e
Replace `InvalidDataException` with `InvalidOperationException`
This should be safe because we never filter caught exceptions by this type. I
assume these were all typos, this exception has something to do with Streams.
2022-07-14 23:46:34 +10:00
YoshiRulz e8c867979a
Minor fixes to ext. tool project files 2022-07-14 23:46:29 +10:00
CasualPokePlayer f8c847af40 add missing TMD for Zombie Skape, improve error message when TMD cannot be found 2022-07-13 14:27:41 -07:00
YoshiRulz a7db24490c
Enable BHI1002 and fix noncompliance
"Do not use anonymous types (classes)"
2022-07-14 04:26:28 +10:00
YoshiRulz eb4e8d6cd7
Change return type of `IEmulationApi.Disassemble` to tuple 2022-07-14 04:26:28 +10:00
YoshiRulz 056db314d4
Enable BHI1001 and fix noncompliance
"Do not use anonymous delegates"
2022-07-14 04:26:27 +10:00
YoshiRulz 395aa0755b
Add `BizHawk.Analyzer` project 2022-07-14 04:26:27 +10:00
YoshiRulz 6f372820a7
Allow C# 10 in satellite projects, enable Analyzers on ext. tools 2022-07-14 04:26:27 +10:00
YoshiRulz 0405e6399d
Add `Meziantou.Analyzers` NuGet package 2022-07-14 04:26:27 +10:00
YoshiRulz 6077bcf5af
Enable "strict" compiler flag and fix noncompliance
couldn't find official docs for this, but I got it from:
https://www.meziantou.net/csharp-compiler-strict-mode.htm
and it definitely does SOMETHING
2022-07-14 04:26:27 +10:00
James Groom 730594e1c5
Fix improperly-nested quotation in YAML 2022-07-13 17:28:01 +10:00
YoshiRulz a6823e3afa
Add core port request Issue template 2022-07-13 02:38:20 +10:00
YoshiRulz 730905b6c3
Adjust wording in Issue templates 2022-07-13 02:37:58 +10:00
Moritz Bender e4fafa6cb7
fix keylog not being respected (#3274)
resolves #2843
2022-07-10 16:47:58 +02:00
tom_mai78101 1948721991 Increased Basic Bot max frames from 999 to 9999. 2022-07-10 10:28:20 +10:00
Morilli 4e7b003306 -_-
this shouldn't be necessary imo, but oh well
2022-07-09 02:45:14 +02:00
Thompson Lee 2308ba1ecc
Added "Clear Output" button to Lua Console (squashed PR #3307)
* Added "Clear Output" button to Lua Console tool.
* Swapped out indentation from tabs to space from Line 248 through 249 for consistency.
* Swapped out indentation from tabs to spaces for consistency.
* Added a custom "Clear Console" icon to Bizhawk.
2022-07-08 14:03:13 +10:00
Morilli bdcd37215c Fix outstanding issues from 011f4bfe03 2022-07-07 07:17:49 +02:00
CasualPokePlayer 0d3c7b7e0c [Libretro] Implement SET_SYSTEM_AV_INFO and SET_GEOMETRY 2022-07-06 14:52:28 -07:00
Morilli 799dc4a2f0 Prevent CoreSettings->Recent menu flying in 2022-07-06 21:58:59 +02:00
CasualPokePlayer 8642513572 sameboy color correction option, make default for gambatte 2022-07-06 00:12:28 -07:00
CasualPokePlayer e41d1a996e fix gpgx_swap_disc, re-enable disk buttons (seems to work?) 2022-07-03 23:17:08 -07:00
Morilli 011f4bfe03 Further imrpove RamSearch performance
- switch _watchList from a List to an array
- more Domain.EnterExit usage
2022-07-04 07:09:53 +02:00
CasualPokePlayer 9e90290b87 make MemoryDomain implement IMonitor (default is no-op Enter/Exit), cleanup, remove wrapper use (has a lot of churn itself), probably better performance with bulk functions 2022-07-03 20:19:53 -07:00
Morilli fe22d61b3a Save Monitor for all Monitor MemoryDomains
appends 596bd03ebe for speedup for those domains
2022-07-03 23:48:48 +02:00
CasualPokePlayer 596bd03ebe expose a possible IMonitor for memory domains, use it to speed up RAM Search for waterbox cores (25-30% speedup?)
see #3296
2022-07-03 13:18:09 -07:00
YoshiRulz f1162d4912
Rename (copy+deprecate) `RomWhitelist`-->`RomList` 2022-07-03 23:13:08 +10:00
feos 806830c314 nymashock: resolve !s and hide some columns in tastudio 2022-07-03 13:11:11 +03:00
feos 318c1a7fea tastudio: don't autorestore if current frame remained valid
1b8b4b4926 removed an important bit of logic that set `_triggerAutoRestore` to false in certain cases. but simply putting the same line back there doesn't fix the problem, probably due to major refactorings over the years. so I'm adding it right into `GoToLastEmulatedFrameIfNecessary()` which is still called properly when it's needed. `JumpToGreenzone()` is kinda redundant now since it contains the same check, but it's used from the outside, and I didn't feel like refactoring this part.
2022-07-03 00:00:41 +03:00
CasualPokePlayer c5902bff54 update sameboy to latest upstream 2022-07-02 09:52:35 -07:00
Thompson Lee 369bdbe9a6
Fixed the "To PC" button not updating the disassembler view (squashed PR #3299)
* Fixed the "To PC" button from not updating the disassembler view in the Debugger window.
* Fixed the calls being reversed, per feedback.
2022-07-02 14:39:03 +10:00
CasualPokePlayer b8f8b41f2c Give NHL 96 (Genesis) SRAM (fixes #3300) 2022-07-01 14:50:53 -07:00
YoshiRulz 206dcaf49b
Refactors for selection in `InputRoll`
also standardises behaviour of Select All and Insert Separator buttons
see e88fa8135
2022-06-30 16:46:28 +10:00
CasualPokePlayer 5875df4b76 prevent svp dereferences when not using an svp cart (fixes #3297) 2022-06-29 13:03:55 -07:00
Thompson Lee e88fa81358
Added Select All/None to RAM Search (squashed PR #3295)
* Added the ability to select all addresses / deselect all addresses in the RAM Search window.
* Fixed logic error. This now makes more intuitive sense, in that, if a portion of the rows were selected, and you do Select All, it should select the unselected rows along with the selected rows.
* Simplify condition

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2022-06-29 23:16:46 +10:00
tom_mai78101 a86591c595 Fixed RAM Watch not having CTRL+A working properly. 2022-06-28 15:41:31 +10:00
CasualPokePlayer d9c828ef57
deterministic emulation means not real time 2022-06-27 20:16:34 -07:00
CasualPokePlayer 13456e51bf AppleII - make clock registers deterministic if needed
also don't state monochrome (non-sync setting? todo: verify)
2022-06-27 18:33:31 -07:00
CasualPokePlayer b730af7b73 the . is neccessary also make it case insensitive 2022-06-27 14:39:10 -07:00
CasualPokePlayer c3047bfad9 ensure only .rom files are loaded into msx (other file formats aren't actually supported) 2022-06-27 14:33:13 -07:00
CasualPokePlayer 948049bb20 dont byteswap gpgx Z80 domains, fixes #3290 2022-06-25 14:36:33 -07:00
CasualPokePlayer 2ac765b000 small adjustments to melon tracer 2022-06-24 20:10:21 -07:00
YoshiRulz 0d18a54609
Retarget Virtu to .NET Standard 2.0
fixes 4df256cd6
2022-06-24 21:30:30 +10:00
CasualPokePlayer 347fa24820 split arm7 polling/touch screen polling to a new "alt lag" variable and add a setting for whether to consider these sources (fixes #3278)
add in new disasm system (taken from https://github.com/MAP233224/dthumb), works much better than darm
2022-06-24 01:34:01 -07:00
CasualPokePlayer d3d90eb70d fix #3287
There are still some unanswered related questions here wrt API, but this should suffice in any case.
2022-06-24 01:17:51 -07:00
CasualPokePlayer 4df256cd6b AppleII - State keyboard, fix up csproj 2022-06-23 22:01:07 -07:00
James Groom 1c504bfe83
Delete packages.config 2022-06-23 09:22:24 +10:00
YoshiRulz 1241758ecb
Make `Disc.IsValidExtension` helper case-insensitive 2022-06-20 10:02:20 +10:00
Morilli fea85649bb Fix tasproj version writing not using invariant culture
generated "v1,1" for me
not a big issue in practice as it was already handled, but better to fix
2022-06-19 21:49:19 +02:00
YoshiRulz 5afb6ca454
Fix call order in `SMSControllerDeck` (fixes #3282)
fixes 0719d6f9d
2022-06-19 09:43:58 +10:00
Morilli 20acbe5798 BSNESv115: Clarify port input device enums
also fix the partial bsnescore files not being dependent on the main one
2022-06-18 08:30:43 +02:00
CasualPokePlayer 170ea47464 wire up reset button for tic80 and make biz_time_rm tick post frame 2022-06-16 15:56:34 -07:00
CasualPokePlayer cb3bd6af72 update waterbox build scripts/instructions to reflect vb move to nyma and new tic80 core
also undo a fuckup i did with nyma scripts, note $1 means param passed in command line
2022-06-16 14:37:18 -07:00
CasualPokePlayer e021e8bc66 actually add the path for TIC80 2022-06-16 14:11:05 -07:00
CasualPokePlayer 27d945bb04 proper paths and setting everywhere inclusion for tic80 2022-06-16 14:05:43 -07:00
CasualPokePlayer 84af66f523 fix TIC80 inputs, wire up time/clock callbacks 2022-06-16 13:01:50 -07:00
Morilli 1d4e7dd3fb BSNESv115: Improve the payload controller, fix VirtualPad
The payload controller now acts like a multitap with 4 extra buttons per controller (it is already implemented that way in the core), which also eases actual use of it
- also fixes broken VirtualPad behavior
- rename some variables for clarity
2022-06-16 17:43:57 +02:00
Morilli 363afcd551 BSNESv115: better define allowed input devices for port 1
- also allows the multitap and payload controller to be used, as it makes sense
2022-06-16 17:40:29 +02:00
CasualPokePlayer 2c3b6b3cd4 ti80 core 2022-06-16 00:14:48 -07:00
YoshiRulz aa099e0941
Adjust wording on frame counter and lag frame counter options 2022-06-16 10:01:37 +10:00
YoshiRulz 2e46d13980
Add missing system display names, add MSX to rom file ext. filters 2022-06-15 07:44:51 +10:00
CasualPokePlayer 8a8ea202fd Revert "fix bsnes controller config"
This reverts commit e43c5296a6.
2022-06-12 20:20:28 -07:00
CasualPokePlayer e43c5296a6 fix bsnes controller config 2022-06-12 19:50:42 -07:00
YoshiRulz dddffef2dd
Nix expr: don't filter when copying local source tree into store 2022-06-13 12:03:18 +10:00
YoshiRulz e7e5ea1509
Fix Win10 version check AGAIN (resolves #3270, #3272)
fixes 587855522
2022-06-13 11:43:13 +10:00
CasualPokePlayer 90220b6506 add m161 support to gambatte 2022-06-11 03:22:38 -07:00
YoshiRulz 5878555221
Refactor Windows version check, enable warning (resolves #2972, #3194) 2022-06-11 06:11:04 +10:00
YoshiRulz a98e3f3610
Touch-up for `RecordMovie` Mono hack 2022-06-10 09:30:12 +10:00
YoshiRulz 2d015515b2
Move MainForm's Save Window Position to DisplayConfig, add Stay on Top 2022-06-10 05:40:41 +10:00
feos 3f8301509a
Update README.md 2022-06-08 18:37:14 +03:00
feos 075d7e05f3
Update README.md 2022-06-08 18:35:54 +03:00
feos e4e9bdd3d6
mentioned analog editing in tastudio
I spent years explaining this over and over and didn't ever feel like going ahead and documenting it. but bizhawk refuses to die and people keep asking, so let it be here
2022-06-08 18:34:58 +03:00
CasualPokePlayer 0174abde65 resolve Karate a2600 crash (closes #1524) 2022-06-07 09:43:37 -07:00
YoshiRulz af73f87e8f
More settings anywhere cleanup 2022-06-08 01:06:05 +10:00
CasualPokePlayer c1ff3072e0 allow neshawk/subneshawk/quicknes/octoshock settings to be edited without the core loaded
this makes all cores (except MAME) able to have their settings edited without the core loaded
2022-06-06 19:08:51 -07:00
CasualPokePlayer 6b90737813
fix be4089eb08
names are annoying
2022-06-06 11:53:44 -07:00
CasualPokePlayer be4089eb08 fix possible InvalidOperationException for a7800 settings (GetSettingsAdapterForLoadedCore to GetSettingsAdapterFor)
allow old bsnes and bsnes main settings to be edited without the core loaded
2022-06-06 10:17:08 -07:00
CasualPokePlayer 0957095e2b fix tabbing in gb config designer files 2022-06-06 09:07:34 -07:00
CasualPokePlayer d0383d1e9d allow editing gambatte/gambattelink settings without the core loaded 2022-06-06 09:04:38 -07:00
CasualPokePlayer 34d794b368
Support editing nyma settings without the core loaded (#3263)
* support editting nyma settings without the core loaded

the details are icky here. info on the settings is stored in the core. so no matter what a core instance is needed
now settings info here should be constant for a given core, so we can cache settings info after the core has been loaded and use that
if in the case the user wants to edit the settings but the core has never been loaded, a minimal load will be done to obtain the settings (and cache them) and quickly dispose thereafter
await users complaining about a "lag spike" first time opening nyma settings menu

* consolidate WaterboxOptions creation for Nyma
2022-06-06 07:26:21 -07:00
YoshiRulz 7999407089
Remove debug menu item for reproducing #2805 2022-06-04 21:40:56 +10:00
YoshiRulz 8869570bcf
Resolve TODOs re: prompting to reboot core when not applicable 2022-06-03 02:41:41 +10:00
YoshiRulz c70e87af2e
Reorder `Config` > `Preferred Cores` submenu
specifically, alphabetise sysIDs and move "GB in SGB" below separator
2022-06-03 02:26:07 +10:00
YoshiRulz c93179e110
Indicate that only Lua mem callbacks get args, not input (yet)
see #3233, fixes d829f19bc, 8385337e7
2022-06-03 02:12:45 +10:00
James Groom dd897b659c
Bump version 2022-06-02 21:29:28 +10:00
CasualPokePlayer 2eb6f83314
fix vb when not recording a movie in input display lua 2022-05-31 22:38:27 -07:00
CasualPokePlayer 53b4e8a1bc
virtualboyee is nyma now, it needs the core active for settings to be changed 2022-05-31 21:58:17 -07:00
CasualPokePlayer 253f139731 merge in another commit from ares 2022-05-30 15:39:43 -07:00
YoshiRulz f5d8c0fb1e
Use 3-button Genesis gamepad by default (fixes #2775, #3262) 2022-05-31 05:13:16 +10:00
YoshiRulz 7f87cc258f
Honour `$BIZHAWK_DATA_HOME` when downloading FFmpeg
also stop looking for `/ffmpeg.exe` in DiscoHawk when it's always downloaded to
`/dll/ffmpeg.exe`
2022-05-31 01:44:51 +10:00
YoshiRulz b8d5dd8990
Handle `$BIZHAWK_DATA_HOME` nicely instead of w/ a hack in `Database` 2022-05-31 01:36:38 +10:00
feos 6d726a1029
depend on versioned ffmpeg release instead of nightly (#3259)
* depend on versioned ffmpeg release instead of nightly

* Use 4.4.1, fix download/extract on Linux

* update windows build link

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2022-05-30 14:45:17 +03:00
CasualPokePlayer 258e895dfb fix vb schema, add in new vb buttons to schema 2022-05-30 00:48:23 -07:00
CasualPokePlayer 892da6fee2 manually set the defaults for lcolor/rcolor/default_color for vb
our MDFN_GetSettingUI/MDFN_GetSettingI is set to assume base 10 instead of figuring out the format of the string, so the built in defaults dont work and always return 0
later MDFN_GetSettingUI/MDFN_GetSettingI should be made to be able to handle hex strings but this should suffice for now
2022-05-30 00:30:24 -07:00
CasualPokePlayer 58c28aefba biz side nyma cd switching fix 2022-05-29 22:23:55 -07:00
CasualPokePlayer d201fdd62d s/DiscIndex/DiskIndex 2022-05-29 21:37:14 -07:00
CasualPokePlayer 1c27c73c86 fix nyma cd switching
also changing the make all cores script so it uses the install target
2022-05-29 21:16:23 -07:00
CasualPokePlayer 43ffb63ede bump version of all Nyma cores to 1.29.0 2022-05-29 20:03:24 -07:00
CasualPokePlayer 583f0f61cc biz side vb nyma 2022-05-29 19:46:38 -07:00
CasualPokePlayer 3b09f822b7 more vb nyma modifications, also push repo 2022-05-29 19:44:08 -07:00
CasualPokePlayer 0c95088e02 vb move to nyma 2022-05-29 17:21:01 -07:00
YoshiRulz f983fce9ff
Add note re: `IHawkArchiveFile.Scan` returning null
see 0f2194475
2022-05-30 07:59:54 +10:00
YoshiRulz b3d344b002
Fix conflated indices in `SharpCompressArchiveFile`
fixes 6cc4b0e28
2022-05-30 07:59:54 +10:00
CasualPokePlayer e6d74c3167 merge mednafen 1.29.0 for nyma cores 2022-05-29 00:31:24 -07:00
Morilli 9bb3595a77 fix logging crashes for LibretroBridge on linux
using va_start just once but iterating twice is undefined behavior and worked fine on windows while hard-crashing on linux
2022-05-29 05:52:54 +02:00
CasualPokePlayer e29958c658 allow sameboy/gbhawk/virtu/c64hawk settings to be editted without loading the core 2022-05-28 13:35:21 -07:00
YoshiRulz b2a609119a
Minor fixups to new core settings UI
fixes a455cce2d
2022-05-29 05:56:47 +10:00
CasualPokePlayer cd9327a10d merge latest mgba upstream 2022-05-28 10:57:33 -07:00
YoshiRulz a455cce2d7 Add UI for editing any core's settings/syncsettings without it loaded 2022-05-29 03:20:08 +10:00
YoshiRulz 70d1d99b40 Use `ISettingsAdapter` for core settings toggles in `MainForm` 2022-05-29 03:20:08 +10:00
YoshiRulz 20c1fe0f17 Pass `ISettingsAdapter` to config dialogs, remove `IMainFormForConfig` 2022-05-29 03:20:08 +10:00
YoshiRulz 0366242d0a Remove superinterface `IDialogParent` from `IMainFormForConfig` 2022-05-29 03:20:08 +10:00
YoshiRulz 4938f427a4 Extract interface from `SettingsAdapter`, add alt. impl. using config
replaces hacks in `N64VideoPluginConfig` and `ProfileConfig`
2022-05-29 03:20:08 +10:00
YoshiRulz 5b403f9c2a Refactor `PutCore{S,SyncS}ettings` call chain 2022-05-29 03:20:08 +10:00
YoshiRulz 3f090e47a5 Only call `SettingsAdapter` ctor via `MainForm.GetSettingsAdapter*` 2022-05-29 03:20:08 +10:00
YoshiRulz c1524d8de9 Don't expose `MainForm.Emulator` via `IMainFormForConfig` 2022-05-29 03:20:08 +10:00
YoshiRulz 2cd6510784 Move `SettingsAdapter` creation to `PutCore{S,SyncS}ettings` callsite 2022-05-29 03:20:08 +10:00
YoshiRulz 60cb9eeac9 Encapsulate creation of settings dialogs from `MainForm` 2022-05-29 03:20:08 +10:00
YoshiRulz 0d42459be8
Remove redundant `AmstradCpcPokeMemory` tool
see 6cb44e0e8
2022-05-29 03:04:07 +10:00
CasualPokePlayer 2697a91739
remove FIXME comment, re: 59d011334f 2022-05-27 21:16:29 -07:00
CasualPokePlayer 59d011334f fix ares64 tracer, pull in some more commits from upstream 2022-05-27 21:14:04 -07:00
CasualPokePlayer 3fe168ad0f bump version number for melonDS 2022-05-27 17:53:50 -07:00
CasualPokePlayer b773a3f163 merge latest melonDS master 2022-05-27 17:52:09 -07:00
CasualPokePlayer 9a73be0e24 merge latest sameboy master 2022-05-27 17:42:42 -07:00
CasualPokePlayer 78ed3ca1d3 don't set a log interface for linux libretro, seems like va args don't work here and can crash? 2022-05-27 14:17:08 -07:00
YoshiRulz 95ecbe9983
Fix another `KeyNotFoundException` when reading hotkey binding
fixes b3728ff19, see ca71bb2fa, 48cfc7988
2022-05-27 16:51:56 +10:00
CasualPokePlayer d01728227b FIXME comments for Ares64 2022-05-26 23:24:58 -07:00
CasualPokePlayer 009bff30d7 merge aresv128 2022-05-26 22:26:56 -07:00
Morilli 48cfc79885 Resolve KeyNotFoundException in TAStudio
this seems to have been silently nonfunctional the entire time until it got visible through the latest refactor
2022-05-24 21:59:35 +02:00
YoshiRulz f62135676e
Disable useless controls on the left side of DiscoHawk (re: #3079) 2022-05-24 07:39:47 +10:00
YoshiRulz 09061843f4 Fix Lua string encoding bug (resolves #190) 2022-05-24 04:45:38 +10:00
YoshiRulz 9bdf043f36
Migrate ApiHawk from `CoreSystem` enum to const strings, and clean up 2022-05-24 02:59:41 +10:00
YoshiRulz 1026503d92
Refactor firmware config so icons make sense (resolves #3157) 2022-05-21 04:39:44 +10:00
YoshiRulz 9ac0f9258e
Fix #3087 hotkeys triggering accidentally in Virtual Pad... again 2022-05-21 03:44:50 +10:00
YoshiRulz af2d8da36e
Restore "priority" option for U+D/L+R policy (resolves #2752)
partially reverts bd1c3cb99, including restoring the old default value
"Priority" (it was effectively changed to "Forbid" in the same commit)
2022-05-20 05:41:38 +10:00
YoshiRulz 8aa3f892d0
Fix `RadioButtonEx` not getting `AutoSize = true` 2022-05-20 05:41:38 +10:00
YoshiRulz fd4771c45c
Fix category radio buttons being cut off in Messages config
fixes e5bbec180; also realigned the text while I was at it
2022-05-20 05:41:34 +10:00
YoshiRulz bdd31d83b8
Resolve TODO re: enum member name 2022-05-19 17:51:15 +10:00
YoshiRulz df315abaf7
Update links to TASVideos in readme 2022-05-19 17:34:26 +10:00
YoshiRulz ca71bb2faf
Resolve TODO re: frontend hotkey config
breaks config backcompat
2022-05-18 23:39:01 +10:00
YoshiRulz 335be13fd8
Fix typo in `BindingCollection.ResolveWithDefaults` 2022-05-18 21:02:56 +10:00
YoshiRulz 71150c60d3
Also check non-public `ApiContainer` properties when injecting APIs 2022-05-18 15:04:20 +10:00
YoshiRulz aa135fc0dd
Remove redundant semicolons 2022-05-18 15:04:13 +10:00
CasualPokePlayer 8ca1e4a080 pull in sameboy upstream and implement custom palettes for sameboy dmg (resolves #3239 for dmg, cgb should be fielded as an upstream request) 2022-05-11 00:00:43 -07:00
YoshiRulz 6beaa79b2c
Use `FirstOrNull` helper for `--open-ext-tool-dll` impl.
fixes e128cb82f, 23c092810
2022-05-10 00:54:33 +10:00
YoshiRulz 6e46cb550b
Fast-fail Mupen core ctor on Linux 2022-05-10 00:21:17 +10:00
CasualPokePlayer a949178559 fix AGB selection in sameboy 2022-05-07 19:23:21 -07:00
YoshiRulz afc442462c
Use `ClientSize` when resizing Lua Forms (see #3034) 2022-05-07 23:01:36 +10:00
YoshiRulz b4ca2f9de8
Increase precision when tweaking axis sens./deadzone (resolves #3038)
not sure how you trigger `LargeChange` but I set a value anyway
2022-05-07 22:32:24 +10:00
YoshiRulz 5f820cc530
Fix #3087 hotkeys triggering accidentally in Virtual Pad but on Win 2022-05-07 18:51:25 +10:00
YoshiRulz b7ffa811bf
Clean up callback spaghetti when resetting `VirtualPadAnalogStick` 2022-05-07 17:04:52 +10:00
YoshiRulz 41de03e31c
Default to "NLua+KopiLua" on Linux 2022-05-07 15:58:07 +10:00
YoshiRulz c93ceae462
Fix typo in Snes9x sound settings bitfield (fixes #1208) 2022-05-07 14:40:15 +10:00
YoshiRulz cb42e8c4dc
Only offer to remove recent rom if it doesn't exist (fixes #3006) 2022-05-07 13:43:43 +10:00
CasualPokePlayer d90166e1ed try to fix dsm importing (thanks microsoft for making dictionary order undefined) 2022-05-06 00:08:50 -07:00
CasualPokePlayer b72590066f [Libretro] fix some input issues due to more recent api changes 2022-05-05 02:46:13 -07:00
CasualPokePlayer 25fb816988
Libretro rewrite (#3212)
* redo all the libretro stuff in pure C#

also yes i imported snprintf lol

* also remove these

* remove clib hack, it doesn't work when there's more than 1 param (apparently ... is really just a variable num of args passed on the stack and not some pointer to some struct, and c# doesn't have any way of representing this. fallback log isn't bad to deal with anyways)

* also probably want this to return false

* /s/UnmanagedString/PinnedString/

* misc tweaks

* oops

* Libretro "Bridge", with entirely different design. The bridge here simply handles all the callbacks retro cores use, so there is never a c++ -> .NET callback, and probably avoids any libco issues
also a lot of cleanup in various areas, and some bug fixes too (Blit555 now outputs the correct colors)

* use blipbuffer instead of speex

speex seems to perform much worse often (and outright buggy for some libretro cores like sameboy which reports a sample rate of 384000), and blip works well enough even for "newer" systems

* cleanup and linux build

* cleanup and bugfixes (thanks uninitalized variables)

* oops

* misc and cleanup

* fix load no game, also handle load game failures correctly
2022-05-05 01:49:29 -07:00
YoshiRulz 635fff6c5d
Handle removing mem callbacks from within a callback (resolves #1823) 2022-05-04 15:59:04 +10:00
YoshiRulz ceb64cedb0
Finish `MergeLAndRModifierKeys` UX (resolves #3184) 2022-05-04 13:18:31 +10:00
YoshiRulz c490d8baa2
Minor refactor to debug menu 2022-05-03 18:15:45 +10:00
Connor 5a913ac2a4
fix absolute dimensions of shaders (#3234)
previously, a height specified absolutely would affect the output width instead of the height.
2022-05-02 22:12:40 +03:00
YoshiRulz ee241dc626
Improve UX of loading a savestate from an older (or newer) version 2022-05-02 13:11:40 +10:00
YoshiRulz c3e3ffbe27
Unindent `SavestateFile.Load` 2022-05-02 12:57:53 +10:00
YoshiRulz 53240c2f84
Fix #3224 Win7+ shell "jump list" no longer working
fixes 7a7522f28
2022-05-02 12:39:58 +10:00
CasualPokePlayer 49399fce20 [mGBA] try to increase performance with callback handling 2022-05-01 19:35:23 -07:00
CasualPokePlayer e7e2790672 [mGBA] try to optimize callbacks 2022-05-01 12:56:23 -07:00
CasualPokePlayer cd8f5b4203
[mGBA] don't try to read watchpoint type for execute callbacks 2022-05-01 11:06:36 -07:00
YoshiRulz f7ead5f592
Rewrite `IController.ToDictionary` helper, now works with > 9 players 2022-05-01 15:11:14 +10:00
CasualPokePlayer 4e76fff2d8 [mGBA] dont let read/write callbacks be called via execute callbacks 2022-04-30 19:56:39 -07:00
CasualPokePlayer b39631b248 fix #3230, also cleanup this code and fix other bugs with it 2022-04-30 19:41:23 -07:00
CasualPokePlayer ebb0282860 various gambatte updates, all wilbertpol tests now pass, cgb-dmg now correctly uses dmg sprite priority when it should (fixes dmg-acid2 in CGB-DMG) 2022-04-30 16:25:28 -07:00
YoshiRulz 46a426a244
Change wording of SkipWaterboxIntegrityChecks description 2022-04-30 11:33:47 +10:00
YoshiRulz bc922fb6d0
Fix known-failing test case list being unsorted, add warning for that 2022-04-30 11:33:18 +10:00
Morilli 14984aea2d Change RomDirectory to RomPath in RomAsset
for the current (only) usecase, this fixes failures when "RomAsset.Name" is not equal to the name of the rom on disk
2022-04-24 03:52:03 +02:00
CasualPokePlayer 8f663feda5 fix #3226 for real this time
i hate threads...
2022-04-23 16:27:15 -07:00
YoshiRulz de1d8f56db
Remove remaining `IGL_SlimDX9` type resolutions in cctors 2022-04-23 15:21:58 +10:00
YoshiRulz 8563be60ba
Add a level of indirection to DirectX/XAudio2 ctors and static calls 2022-04-23 15:21:58 +10:00
YoshiRulz 2fde1ce9e9
Use dynamic type for D3D VSync in `UpdateSourceDrawingWork` 2022-04-23 15:21:58 +10:00
YoshiRulz 6ea714ac31
Move `DispMethodEnum` to `Bizware.BizwareGL` 2022-04-23 15:21:58 +10:00
YoshiRulz 00d19aa550
Update known-failing testrom cases
unfortunately, bisecting the added SameBoy cases is going to be hard because the
dummy frontend was broken for some time
2022-04-23 15:21:44 +10:00
CasualPokePlayer a08116f2d6
Remove explicit lua restart within LoadRomInternal
The position of this restart is dangerous as it may pass in a Dispose()'d core. This is pointless too as later on the Tool Manager handles restarting all tools.

Similarly, remove the explicit restart of the Debugger, no point in doing this as the Tool Manager will restart the debugger just fine anyways (the restart removes breakpoints from the debugger's internal list but doesn't remove them core side, which they should have been removed anyways from being Dispose()'d)
2022-04-22 20:03:30 -07:00
CasualPokePlayer 8ea09eebf5 fix some bugs with Ares64 tracer, fix trace header too 2022-04-15 18:50:58 -07:00
CasualPokePlayer 20ecfb81ea Add tracer + disassembler + get registers + system bus to Ares64, mark Ares64 as released
Squashed commit of the following:

commit 2e29aee13276412b2832e8f0efa10d9c57ed9d78
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Thu Apr 14 22:44:33 2022 -0700

    .

commit be73cf5e2204405a84b42948fd104d18c75be45a
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Thu Apr 14 22:37:34 2022 -0700

    hook up debug stuff + disassembler + tracer, mark Ares64 as released

commit fdd440703ecef48c94bb2bb1ad9c2d3dc5c96e42
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Thu Apr 14 20:36:08 2022 -0700

    maybe fix disassembly

commit d0808551c60fe3c03506b1ad89766a0d397e06dd
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Thu Apr 14 20:06:36 2022 -0700

    system bus

commit 60d1df8f33043fb656f90c1cf4ace8788489c3e1
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Thu Apr 14 16:40:11 2022 -0700

    regs

commit c64be2df293ea44694868355747061a952bd54aa
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Thu Apr 14 15:31:08 2022 -0700

    tracing and disasembly for ares, needs to be hooked up to frontend
2022-04-14 22:45:10 -07:00
CasualPokePlayer 7d268e244b fix #3166
was a regression from a858282a8d
2022-04-14 03:15:36 -07:00
CasualPokePlayer 8d03133c71 make sameboy output 262144 hz samples instead of 2MiHz samples (latter can be buggy, 262144 was recommended by LIJI).
also update sameboy bootroms, closes #3185
2022-04-14 02:36:51 -07:00
CasualPokePlayer 4a52e7f769 resolve #3211 probably 2022-04-09 20:08:32 -07:00
CasualPokePlayer 984ca65480 don't break build 2022-04-07 16:53:35 -07:00
CasualPokePlayer c496c97c8f remove some render off logic (this might not be sync safe), move threaded rendering to a sync setting (this probably doesn't affect sync, but best be safe here) 2022-04-07 16:51:51 -07:00
CasualPokePlayer 93dadb021f make sure core name is set for GENS importer 2022-04-06 21:58:04 -07:00
CasualPokePlayer 97a11ec083 fix NESHawk mistakenly having cycle count complained about 2022-04-05 21:01:05 -07:00
CasualPokePlayer 2c232a2b81 [Gambatte] various upstream accuracy improvements (notably, cgb-acid-hell now passes!). also fix memory callbacks for ROM0 area 2022-04-05 20:36:11 -07:00
CasualPokePlayer c2ea1c6c7b fix oopsie in libgambatte bindings and make gb testrom suite run again (was broken by a858282a8d) 2022-04-03 19:45:58 -07:00
CasualPokePlayer d4bb5e047e [Gambatte] API updates, setting time now uses a single function which takes in dividers 2022-04-03 02:34:23 -07:00
CasualPokePlayer c33d2cfbe5 [Gambatte] upstream cleanup, use upstream for board name and other rom details, remove now unused MULTICART_COMPAT flag 2022-04-02 23:16:39 -07:00
CasualPokePlayer 37a7c69107 [Gambatte] fix MMM01 inaccuracy 2022-04-02 12:55:28 -07:00
CasualPokePlayer 178264ce67 update sameboy, fix bug with SRAM loading 2022-04-02 10:22:18 -07:00
CasualPokePlayer cc0a30e5b2 [Gambatte] upstream cleanup + MMM01 support 2022-04-02 09:52:50 -07:00
Morilli db7d72be91 update nonfunctional bsnes links 2022-03-31 13:59:59 +02:00
Morilli 672ad1579b Fix #3195 2022-03-30 19:22:26 +02:00
CasualPokePlayer e80e34ce65 [Gambatte] upstream optimization and regression fix, seeing ~50 FPS increase 2022-03-30 02:30:12 -07:00
CasualPokePlayer 15270adebe [Gambatte] upstream cleanup + optimization 2022-03-29 00:47:16 -07:00
CasualPokePlayer 688adf27ec
resolve #3192
seems to have been a null reference on init. saving seems to still function fine after this change
2022-03-28 20:42:41 -07:00
Morilli 3d039934af BSNESv115+: expose fast dsp and fast coprocessor options 2022-03-29 02:16:42 +02:00
Moritz Bender 339d34413f
Implement msu1 handling for bsnes115+ (#3190)
* Implement msu1 handling for bsnes115+

* RomPath->RomDirectory for clarity

* Remove unnecessary include
2022-03-28 23:52:13 +02:00
CasualPokePlayer 7f99c11cce [Gambatte] fix minor HuC3 audio issue 2022-03-27 15:34:04 -07:00
CasualPokePlayer e206c3287b [Gambatte] HuC3 improvements 2022-03-27 15:22:34 -07:00
CasualPokePlayer 848ff87be1 [Gambatte] fix minor IR regression 2022-03-26 00:58:12 -07:00
CasualPokePlayer 16219ab38f [Gambatte] upstream update 2022-03-25 20:17:15 -07:00
Morilli 76729aa56b Prevent churn by not allocating a new video buffer every frame in NullVideo 2022-03-25 14:19:07 +01:00
Morilli da2a20e55b BSNESv115+: Some general cleanup, remove nonfunctional msu1 code 2022-03-25 08:36:11 +01:00
CasualPokePlayer b0a2c76d72 [Gambatte] fix MBC1M inaccuracy 2022-03-24 03:06:00 -07:00
CasualPokePlayer 2f3577ad38 [Gambatte] fix HuC1 IR 2022-03-24 02:24:52 -07:00
CasualPokePlayer a68c835a4b update gambatte (MBC1 & HuC1 improvements; HuC1 IR support) 2022-03-24 02:14:49 -07:00
Moritz Bender 6db532fb84
Allow negative values to be entered in ram watch for fixed-point watches (#3181)
* structurize NumericStringExtensions better, allow negative fixedpoint numbers

* Tune MaxLength values to make more sense

* Use Invariant culture to prevent ","<->"." issue in decimal recognition for some locales

* Cleanup more watch stuff

- simplify Poke functions by removing redundant text checking
- make fixed-point constants const
- remove OnKeyPress overload; let the user type whatever and check it later, similarly in OnTextChanged
- more invariant NumberFormatInfo use for ","<->"." issues, also do a basic fixup on OnKeyDown
- cleanup ToRawInt and SetFromRawInt, there are likely still issues remaining but I have no idea whether they realistically affect anything with the way those functions are used
- remove now unused functions in NumericStringExtensions
2022-03-23 18:19:49 +01:00
CasualPokePlayer 64ac7253f6 Add transfer pak support to ares, add n64 mouse support to ares, various cleanups all around
Squashed commit of the following:

commit 1f6cdb99a8486b3f89395b2bd3f13f730e21f743
Merge: bcef146d7 ecd428898
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Mon Mar 21 03:05:12 2022 -0700

    Merge branch 'transfer_pak_ares' of https://github.com/CasualPokePlayer/BizHawk into transfer_pak_ares

commit bcef146d7d62e5ce435ae3fc4d585d71d98bec52
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Mon Mar 21 03:05:05 2022 -0700

    a

commit ecd4288980f7311eba3bdd0a9d1a3fca02e42e43
Merge: 86a7e3e85 ccb24cc79
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Mon Mar 21 02:57:00 2022 -0700

    Merge branch 'transfer_pak_ares' of https://github.com/CasualPokePlayer/BizHawk into transfer_pak_ares

commit 86a7e3e85bc1b3cb979671edcbfca66e69d5212b
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Mon Mar 21 02:56:50 2022 -0700

    a

commit ccb24cc79fd922b1e3e3b80d660c7b7696f0cf84
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Mon Mar 21 02:51:36 2022 -0700

    a

commit 285fd66f9240dfa502a269adb19cc1f3d11236c5
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Mon Mar 21 02:02:31 2022 -0700

    misc

commit 9fb76345e4507cbd53ab5e4c2c61a5cb992b7241
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Mon Mar 21 01:50:46 2022 -0700

    frontend hookup

commit dabee3a4d63c5801e3147dd758e3c187be0ab8bd
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Mon Mar 21 01:26:48 2022 -0700

    actually hook other shit up also delete some shit

commit df632d6ddf6eaeb61ad3ad640851709c2614bfbd
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 21:37:18 2022 -0700

    a

commit 143c4039453290ef1e8a4cf53ddea534efa0cea3
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 21:28:07 2022 -0700

    a

commit fd75dcc5150860171e3d96fd0bcb4749eeb99378
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 21:03:51 2022 -0700

    a

commit ea039643e9a093f63f8dc8c7446e9e70f7f965f0
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 19:56:46 2022 -0700

    a

commit 8b373d2ba547cd1ab61360e8129f31452014c728
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 19:33:47 2022 -0700

    a

commit dc18a90bebcae013aca4494c1e0a83603dbdbea6
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 19:18:34 2022 -0700

    a

commit 3d0eba5f57d95f7cfd74b662f70a40cac5638539
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 19:16:56 2022 -0700

    a

commit d97ea34753c007663ea0e629df8830e6aae98e91
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 18:28:01 2022 -0700

    a

commit 7a1fe0442c7dd6425048207a19b1b18f9dc3e344
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 17:22:10 2022 -0700

    a

commit 421de8ebb8c02736e65f28a88a17cabf297c6e10
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 16:57:47 2022 -0700

    is this right?

commit 9fcaa1905b6e3b6bc73c8e8c15c55cab06ddb7f4
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 15:57:32 2022 -0700

    rework audio

commit 602577ded89f2fd7d4514792e4f9f485235ce2f1
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 14:54:29 2022 -0700

    doh

commit 5521dab709551d9f02bd0cf0d979d8a3860541c6
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 14:42:50 2022 -0700

    a

commit bc10461eb9d47bea5acc7cc22963b8e7025b9a31
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 14:41:17 2022 -0700

    a

commit d088719299bc0946962bba9404469fe9628633c6
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 14:25:07 2022 -0700

    a

commit d425c49bc2ea7925f485379dad33326fa8566754
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 14:18:33 2022 -0700

    a

commit ea7c69a512ce84977ad92be0c3f97f396dcf13a7
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 14:13:41 2022 -0700

    a

commit b350580b5c8ce455d6ffa41237c2564e8fa76a58
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 14:05:46 2022 -0700

    a

commit 5983b23e760e5ca8a3c8141075f383275da570b4
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 13:57:25 2022 -0700

    a

commit 12de82e8841284cb70ec02765d86e3729661dcb4
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 13:46:58 2022 -0700

    a

commit 992bdf114c24a8a3d37c110629f9a66bfaf21cf8
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 13:05:28 2022 -0700

    a

commit 3637649dde95ff4fb24474ee0d1dde795cbc5fe3
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 12:49:52 2022 -0700

    o

commit 7d7264b92822ce34ba5412f4cf869c6a4e6fb9b9
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 12:41:55 2022 -0700

    testing time

commit bb3a2f89861cdf429091d8253a656e782b68e33b
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 12:14:30 2022 -0700

    bleh

commit df46cc34d6edc312b519c98b6c7be3ac6ab89bd2
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 06:18:28 2022 -0700

    bleh

commit 21c28a81726ab9a9f206a58424e5434cd0bac1a8
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 05:43:39 2022 -0700

    hack test time

commit 3d9e462addc20d6b6d8ffc41595c4751d6fc2975
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 05:36:51 2022 -0700

    oh right need to build it

commit a970194f64ac0652f97236debd39e142b01d4dcf
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 05:32:07 2022 -0700

    guessing not endianess, maybe need more reset state work?

commit 5d4c11dbf2f767e63d505da22d6bbdef76a4e28b
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 05:23:52 2022 -0700

    is this a endianess issue?

commit c5fcd687f5e2c62b1f0f065a3b9c9ffa30867eeb
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 05:11:43 2022 -0700

    debug time

commit 437071710ea040a466dd25d7fe691fcdbdb95030
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 05:03:58 2022 -0700

    better emulate reset thingie

commit e02503c3f74aa89784b5cc43d1fe5daa6fedf5d3
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 04:31:42 2022 -0700

    initial mouse and transfer pak support
2022-03-21 03:08:23 -07:00
CasualPokePlayer 5ee78ab8c4
update controller definition in dsm importer 2022-03-20 22:59:00 -07:00
CasualPokePlayer 7c50d9285f update plugin description with angrylion in mind, bring back RSP plugin options (although only GLideN64 can actually use either), fix tabbing issue in controller designer 2022-03-18 15:35:38 -07:00
CasualPokePlayer 31b30210b3 [Ares64] fix A/V sync getting screwed up in interlaced mode 2022-03-18 01:11:25 -07:00
CasualPokePlayer 107c7b7034
make sure angrylion plugin settings are included in sync settings clone 2022-03-17 09:57:02 -07:00
CasualPokePlayer 5997f81659 give proper description for melon's Threaded 3D Rendering and remove if true's 2022-03-16 19:29:29 -07:00
CasualPokePlayer 7150a97e07 get render threading working in melon
Squashed commit of the following:

commit 6c54b59f5f8f8bbf8698eebbc2a7e39079b0e726
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Wed Mar 16 19:19:12 2022 -0700

    update submodule

commit 2c65d4375b64d8e729ebc0d35fd34865627bc494
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Wed Mar 16 19:14:36 2022 -0700

    frontend stuff

commit 4566edcc623061beb6e3a7b2ead5571b42abdf3e
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Wed Mar 16 18:10:45 2022 -0700

    probably hacky bullshit

commit 1fb9427c56a8d1af60378163cc2cafe6b36149c9
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Wed Mar 16 00:59:58 2022 -0700

    more mt testing
2022-03-16 19:19:36 -07:00
CasualPokePlayer 57c453ea68 Add angrylion for another video plugin, bring back the cxd4 rsp plugin (angrylion needs LLE), wire up its single setting, remove preformance ares libraries (frontend stuff was already removed) 2022-03-14 04:05:55 -07:00
CasualPokePlayer 5fe5b7a104 and push .git here too 2022-03-11 19:48:39 -08:00
CasualPokePlayer 6fbe4b63f1 give angrylion submodule the correct branch 2022-03-11 19:47:35 -08:00
CasualPokePlayer 01e59f658c don't know how that submodule got pushed back 2022-03-11 19:42:58 -08:00
CasualPokePlayer ccac4d1000 Squashed commit of the following:
commit 15611308c2c6ed5e4f46bd840ade8700e3768527
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Fri Mar 11 19:29:57 2022 -0800

    derp

commit 3c0546cdd8f08004c1ad82bdb72910498dddac91
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Fri Mar 11 19:28:06 2022 -0800

    bob

commit 8e24ef7adc9ccee5405f8618bb8ddb165ff9cf8f
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Fri Mar 11 19:10:45 2022 -0800

    removing perf core here now

commit 66225df3b175544d28d91c6ede53861c74e71239
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Fri Mar 11 18:51:14 2022 -0800

    delete perf core, cleanups, get submodule pushed

commit 06b627bd949f15aac4749a33762ec5cb47e5aea9
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Fri Mar 11 17:46:36 2022 -0800

    oh fucking please don't tell me this was it

commit 0bd0625d172a74a82e30b89e2f10702394e74491
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Fri Mar 11 17:21:22 2022 -0800

    bleh

commit 20c1497fd1fb25eb6ac6c44fe2490b71009fc9e0
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Fri Mar 11 16:36:02 2022 -0800

    bleh

commit 4ccd7982d97f8c4c85c5b18801bb9784df9772e8
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Fri Mar 11 15:55:43 2022 -0800

    testing

commit ab9e14bc7bb3e533f903a003b80f8e6a006cd819
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Fri Mar 11 15:44:24 2022 -0800

    bleh

commit 6d2de266825ac23df25466fdd6154e60ec6132de
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Fri Mar 11 00:08:45 2022 -0800

    bleh

commit f55c3e3277b979a8535667312fdb988a1f70bc01
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Thu Mar 10 23:54:49 2022 -0800

    oh derp

commit 16e3c87d7ab06947da208feb88b3f3fd96874621
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Thu Mar 10 23:43:27 2022 -0800

    bleh

commit 1630845d46af7dc048b8c5dcfc7b0359d7f3133a
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Thu Mar 10 23:36:14 2022 -0800

    gross hack

commit ff1ef0ac6da559e0ce0e7cad10583b70a63c3551
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Thu Mar 10 23:10:54 2022 -0800

    angrylion integration into ares.
2022-03-11 19:36:56 -08:00
YoshiRulz f8a688d47f
Fix case-sensitivity of `Save-`/`OpenFileDialog` under Mono
also improved caching of gen'd strings, and marked lambdas as `static`
2022-03-10 14:29:25 +10:00
Moritz Bender 3726cc6291
Fix #3173 by only calling bus.map() on initial power, not subsequent calls (#3176)
* Fix #3173 by only calling bus.map() on initial power, not subsequent calls

* yeah screw that, we'll just lock the bus to prevent map calls from going through

* initialize peekable in reset with false, just for safety i guess
2022-03-09 04:31:30 +01:00
feos 1c0f2a45ba update mgba pointer again (rebuilding not required) 2022-03-08 14:20:35 +03:00
feos cee90bae52 build libmgba.dll.so 2022-03-08 14:00:04 +03:00
feos 9b0b7c5162 mgba got new branch 2022-03-08 12:44:18 +03:00
feos a1e9790a39 update mgba 2022-03-08 11:58:27 +03:00
YoshiRulz 7bd74f1004
Enable SA1133 and fix noncompliance
multiple attributes applied in one expression
2022-03-08 15:52:40 +10:00
YoshiRulz c1a7556d7f
Enable SA1129 and fix noncompliance (except in Cores)
calling implicit default struct ctor
2022-03-08 15:52:40 +10:00
YoshiRulz 8c4ceccab9
Enable CA1825 and fix noncompliance (except in Cores)
`new int[0]` and similar
2022-03-08 15:52:40 +10:00
YoshiRulz 33a487452d
Enable CA1806 and fix noncompliance (except in Cores)
return value implicitly discarded
2022-03-08 15:52:38 +10:00
YoshiRulz d8ce0e6177
Enable CA1064 and fix noncompliance
Exception classes should be public
2022-03-08 15:52:38 +10:00
YoshiRulz 191f1f3020
Enable CA1044 and fix noncompliance
getters with lower visibility than setters, or set-only props
2022-03-08 15:52:37 +10:00
YoshiRulz dd455580d6
Enable some more Analyzer rules 2022-03-08 15:52:29 +10:00
YoshiRulz 02e4a4b97e
Also change GitLab CI to build pinned 2.8 w/ Nix 2022-03-08 10:23:39 +10:00
YoshiRulz 665ca18fbc
Nix expr: refactor, add pinned 2.8 2022-03-08 10:17:18 +10:00
CasualPokePlayer 6e4a5a96af [melonDS] reset caches after load state 2022-03-06 02:04:52 -08:00
CasualPokePlayer 8b6f1c96d6 [melonDS] don't state sound buffers too 2022-03-06 01:46:26 -08:00
CasualPokePlayer 4bfb3ba48e [melonDS] don't state these big caches 2022-03-06 01:20:15 -08:00
CasualPokePlayer 46c2d6faf1
Melon Cleanups & Updates & Prep For Multithread Rendering Support & Prep For DSi NAND bs (#3174)
* prep for handling multi-threaded renderer in melon, along with some other cleanups

* initial core side support for mt rendering, probably crashes?

* oops

* ok use ref not in

* testing

* poor man's semaphore

* clean this up, hopefully fix a deadlock?

* update submodule

* reduce submodule diff

* cleanup

* hook up thread wait cb

* maybe make shutdown not hardlock?

* oops

* oops

* testing

* testing

* a

* lol

* fuck

* a

* oops

* a

* a

* a

* a

* a

* a

* a

* a

* a

* if false this

* a

* a

* a

* bleh

* a

* update to upstream

* oh right lua
2022-03-06 00:43:30 -08:00
zeromus 9411e659bb neshawk - WritePrg really needs to be masking the address... there's no way it's correct, otherwise. 2022-03-06 01:38:08 -05:00
zeromus fcce7b64d6 neshawk - relax restriction on vrc1 PRG registers, so they can be larger than the original vrc1 chip allows (for rom-expanding hacks) 2022-03-06 01:35:23 -05:00
zeromus a5fb4caad0 change languageversion back to 9.0 so we can use vs2019 and fix one related build error 2022-03-06 01:15:46 -05:00
CasualPokePlayer 114124c82e
BSNES Region Override (#3169)
* region override for bsnes

* hook up SnesInitData right. still needs region override sync setting

* settings stuff, also need to make sure sameboy is using the right region for sgb

* and build

* clearer struct definition; move struct to header file

Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
2022-03-04 14:21:53 +01:00
CasualPokePlayer 8e233a0e3b alloc_invisible internal framebuffers in melon 2022-03-04 01:26:58 -08:00
CasualPokePlayer 4bac1bbf1b fix #3165 and fix the tabbing/space mixup here 2022-03-04 01:20:40 -08:00
YoshiRulz 6cb44e0e8d
Remove redundant `ZXSpectrumPokeMemory` tool 2022-03-03 14:35:41 +10:00
CasualPokePlayer 0ff69c560f
Fix SXROM Detection (#3170)
* fix #3168?

* revert iNES 2.0 parsing changes (and revert 4ff7745), add special iNES 2.0 case for SXROM

* oh right subboard crap
2022-03-01 09:18:49 -08:00
YoshiRulz 5435de75fb
Update HelloWorld ext. tool with recent ApiHawk changes 2022-03-01 11:30:59 +10:00
YoshiRulz b82ac3e2de
Merge `IGameInfoApi` into `IEmulationApi` 2022-03-01 11:26:01 +10:00
YoshiRulz e8b3f5ffef
Enable NRTs in `EmulationApi` 2022-03-01 11:26:01 +10:00
YoshiRulz 64505fd23e
Remove useless yield methods from `IEmulationApi` 2022-03-01 11:26:01 +10:00
YoshiRulz 5f3199acf3
Make all collections readonly in API surface 2022-03-01 11:25:51 +10:00
YoshiRulz 8b07f9ecde
Compare firmware customisations to movie header (partial fix for #2498) 2022-02-26 13:53:05 +10:00
YoshiRulz 0410a4f291
Allow writing to user gamedb in NixHawk
not that any cores have a working implementation yet, see #733
2022-02-24 16:38:16 +10:00
YoshiRulz d466c2694f
s/Win/Super/ in Input, preventing its use as a modifier key
see #3161
2022-02-23 07:20:58 +10:00
alyosha-tas 7b857e7acf SMS: only update tone on second byte write, filter out highest frequency, fixes #3160 2022-02-22 10:41:36 -05:00
YoshiRulz 1c2376e2f7
Document that hashes (`SHA1` header) aren't always SHA1 2022-02-22 12:21:21 +10:00
YoshiRulz c6bee8bab6
Revert 03cdb4cdf and ee220f455 re: checksums in movie header 2022-02-22 12:21:17 +10:00
CasualPokePlayer ee220f455c account for different checksum hashes in header in PlayMovie, re: 03cdb4cdf3 2022-02-21 16:47:10 -08:00
YoshiRulz 5353aaf688
Remove ReSharper/Rider per-project settings overrides 2022-02-22 10:27:28 +10:00
CasualPokePlayer 03cdb4cdf3 distinguish between SHA1/MD5/CRC32 in header hash 2022-02-20 06:14:56 -08:00
YoshiRulz 296145ba2d
Clean up dummy/zero checksums
see #3159
2022-02-20 23:37:45 +10:00
CasualPokePlayer 9092a38a82 give more secure hashes higher priority than less secure ones 2022-02-20 05:05:58 -08:00
YoshiRulz d829f19bca
Revert "Revert "Allow frontend to pass arguments to Lua callback functions""
This reverts commit 49423d59a1.
2022-02-20 10:01:17 +10:00
YoshiRulz a733f8532b
Bump version 2022-02-20 10:01:16 +10:00
YoshiRulz 869229bdc0
Update readme to reflect 2.8 core inventory 2022-02-20 10:01:16 +10:00
YoshiRulz e731e0f329 Merge branch 'release' 2022-02-19 20:29:11 +10:00
CasualPokePlayer ba51aa90a4 add in comment i forgot to save 2022-02-18 00:19:24 -08:00
CasualPokePlayer a91b861a4d fix #3095 2022-02-18 00:18:15 -08:00
CasualPokePlayer 278ba086a3 fix vbm import with sameboy 2022-02-17 22:45:41 -08:00
CasualPokePlayer 1c4c390e8f expand sega cd bios list, based on no-intro and TOSEC info 2022-02-17 22:29:51 -08:00
CasualPokePlayer 112072161c windows build 2022-02-17 02:59:17 -08:00
CasualPokePlayer 406b76a023 fix mem domains 2022-02-17 02:48:40 -08:00
CasualPokePlayer 7afb24b5af switch sameboy to the bizinvoker 2022-02-17 01:06:48 -08:00
CasualPokePlayer 0a9200fa59
Sameboy blip buf (#3154)
* blip buf experiment

* do this without needing to modify core

* Delete blip_buf.os

* dont bother keeping a sbuf in biz_t

* darn space/tabbing
2022-02-17 00:30:38 -08:00
CasualPokePlayer 3139277475 allow ares performance to record movies (with a big warning), fix states (oops), fix #3151 2022-02-16 17:08:08 -08:00
YoshiRulz 455f7b6ce9
Flag Sega CD USA BIOS rev. 9303 as "unacceptable" (resolves #2913) 2022-02-16 22:12:55 +10:00
CasualPokePlayer 63078b55e1 put dummy implementations for haptics in bk2 controller, fixes #3146 2022-02-16 03:50:35 -08:00
CasualPokePlayer e8e58f799e update sameboy to upstream fixes #3108
fix gpu viewer palettes, fixes #3150
2022-02-16 02:39:55 -08:00
CasualPokePlayer 655ed7949e
Ares64 Performance Core (#3149)
* prep for performance ares64 core, needs work unmanaged side

* get this going

* rebuild this

* apparently build didnt get cp'd? need to investigate

* fix build, other shit

* suppress these warnings

* tweaks and builds

* apparently bizinvoker doesnt like having LibAres64 class shared between non-waterbox and waterboxed, so split it.
also states for performance core

* builds

* fix this option, describe supersampling properly

* penguin64
2022-02-16 02:15:27 -08:00
ShinobiWannabe 05f11be191
Genesis GPGX SRAM support for games larger than 8MB (#3139)
* Large SRAM

Cherry pick changes in order to run games with SRAM support for games larger than 8MB based on the existing commit by ekeeke in Genesis-Plus-GX.

e6ab7563e7

* Revert "Large SRAM"

Removes changes to the cd cart files and contains the newly built  gpgx.wbx.gz.
2022-02-15 23:25:38 +03:00
CasualPokePlayer df04bf1f69 fix crashes with gambatte on linux due to bad pointer cast 2022-02-13 22:12:40 -08:00
CasualPokePlayer 7db8472092
Handy tweaks (squashed PR #3140)
resolves #2425. commits:
- build handy-linux with fvisibility=internal, make export have default visiblity
- use bizinvoker for handy
- move this to the right spot
- correct name here
2022-02-14 14:38:31 +10:00
CasualPokePlayer 1330fdeaa1 Probably a hack to make lag detection work? 2022-02-13 14:38:44 -08:00
YoshiRulz 1f8d6e0022
Refactor `IInputApi`, replacing 1 method, adding 1, plus doc comments 2022-02-14 01:51:42 +10:00
YoshiRulz 1655c191e0
Bump LangVersion, move key name overrides to separate file 2022-02-14 01:51:42 +10:00
YoshiRulz 49423d59a1
Revert "Allow frontend to pass arguments to Lua callback functions"
This reverts commit 8385337e71.
2022-02-14 01:51:34 +10:00
CasualPokePlayer 5bafc9a062 marked bsnesv115 as released 2022-02-13 06:15:36 -08:00
CasualPokePlayer 7b60c7cafb Reorder this class to avoid c# reordering it itself when it feels like it 2022-02-13 03:51:20 -08:00
CasualPokePlayer c3e6a08b42 apply ares64 changes to frontend 2022-02-13 02:47:21 -08:00
CasualPokePlayer 28cfb1aa74 make ares64 comply with mupen's analog input scheme, allow for disabling the physical limitation / circle thingie 2022-02-13 02:45:48 -08:00
CasualPokePlayer f48f9dba9f change PI DMA to use 16 bit fetches (275ba735de) 2022-02-12 02:33:41 -08:00
CasualPokePlayer 682111f377
Ares64 (#3125)
* ares64

* build, currently cherry picking c9af34027b to build this

* some work

* commit the frontend work. crashes on some NR_SCHED_GETAFFINITY syscall

* delete this

* fix oopsie, add debugging shit

* getting closer...

* what the fuck is this mame shit doing???

* fuck

* it's one of these isn't it

* fucking hell

* at least it's not crashing on init now

* bleh

* let's see if this works?

* audio i think?

* oh right, need to disable threading here since that's not wbx supported

* testing

* testing

* testing...

* testing

* wtf?

* lol

* it's doing something now i guess?

* let's try this

* maybe this will catch this bullshit?

* lol

* the fuck?

* what

* meh

* bleh

* let's have some fun

* bleh

* bleh

* bleh

* maybe this works better

* let's try this?

* meh

* this probably will break

* lol

* meh

* a

* a

* a

* a

* a

* meh

* a

* a

* b

* alloc invisible these video buffers

* a

* actually build

* bleh

* well uhhhhhhhh let's see if this blows up for fun i guess?

* bleh

* yeah that when as well as expected

* push this

* bleh

* bleh

* bleh

* a

* dirty hackery

* fuck space/tabs

* hook up input

* hook up input frontend side

* reset/power

* going to have to commit to dumb workaround here i guess?

* fuck this bullshit crash

* cic stuff

* oops

* testing

* hook up save detection

* memory domains and saveram shit

* oops

* someday i'll get macros right

* let's get this kinda reproducable

* build

* bleh

* frontend shit

* bleh

* testing

* a

* fucking

* a

* a

* a

* workaround C# bullshit marshalling maybe?

* revert that, let's hack it on c# side instead

* disgusting hack

* fuck c#

* fix oopsies for eeprom/flash and fuck c#

* apparently explicit layout just dont work, thanks c#!

* correct orientation

* actually fix orientation

* testing

* bleh

* b

* a

* fix crash here

* rumble getter

* hook up rumble with frontend, cache readonly controller settings on core init

* remove old experiment

* make clean make install
2022-02-11 18:22:16 -08:00
YoshiRulz 86e939b6d4
Fix capitalisation 2022-02-10 02:15:22 +10:00
YoshiRulz 862b005218
Revert "Get rid of unnecessary CRC32Checksum.cs"
This reverts commit 558adfa325.
2022-02-10 02:15:22 +10:00
YoshiRulz 71e84537e6
Also change branch numbers in piano roll
see #3112, fixes 965cbe615
2022-02-10 02:15:17 +10:00
YoshiRulz 965cbe615c
Number TAStudio branches from 1 (resolves #3112) 2022-02-09 19:15:54 +10:00
YoshiRulz e7fd93b41a
Put save slot 0 after 9 everywhere
see #3112
2022-02-09 19:15:50 +10:00
YoshiRulz d997ad9871
Optimise `CWDHacks.Get` 2022-02-09 14:48:35 +10:00
feos da567272f3 mame: don't die in mame warnings 2022-02-09 00:11:03 +03:00
Meerkov 1ec1064289
Interleave output and error async in Discohawk (#3133)
Fixes deadlocks, and removes confusing custom parser.
2022-02-08 15:06:41 -05:00
Morilli a858282a8d Fix #1513 hopefully properly 2022-02-08 19:46:27 +01:00
alyosha-tas a2fab196e3 NESHawk: DB update 2022-02-07 17:20:08 -05:00
CasualPokePlayer f060fdaa60
hack a peek into bsnesv115 (#3118) 2022-02-07 08:00:48 -08:00
alyosha-tas a3c9b50930 RAMSearch: fix #3117 2022-02-07 09:46:06 -05:00
alyosha-tas ef9c1f7c24 O2: Fix blobbers and Popeye 2022-02-06 20:56:30 -05:00
YoshiRulz 267f48eebd
Add optional `duration` param to `IGuiApi.AddMessage` 2022-02-07 11:52:36 +10:00
YoshiRulz f4b4c60684
Remove gamedb entry for empty (length 0) rom 2022-02-05 21:04:52 +10:00
YoshiRulz 5424cd3123
Warn when binding an archive member whose length is 0 2022-02-05 21:04:48 +10:00
YoshiRulz 55a60ceda7
Fix TI83Keypad being cut off under Mono 2022-02-05 20:07:00 +10:00
YoshiRulz af78507bc7
Remove redundant `Config.Ti83AutoloadKeyPad` 2022-02-05 20:07:00 +10:00
YoshiRulz cefd370643
Remove vestigial MenuItem from TI83KeyPad 2022-02-05 20:06:55 +10:00
SuuperW e1c2016c91
Merge pull request #3098 from TASEmulators/TAStudioUpdateSelf
TAStudio update self
2022-02-04 14:55:18 -06:00
SuuperW 7a3b33fa0d Fix #2965, but for axis painting. 2022-02-04 14:51:40 -06:00
SuuperW bc0579dd0e TAStudio: Update self after loading a state. This fixes two bugs that were most evident when loading the state for frame 0:
-The UI was not updated.
-TasSession.UpdateValues was not called.  So saving the movie and then re-loading it would result in the previous frame being loaded/seeked to.

This commit addresses the regression mentioned in commit 319455c.
2022-02-04 14:50:19 -06:00
YoshiRulz 5012ba0f09
Use consistent whitespace/wrapping in Lua libs 2022-02-04 20:34:33 +10:00
YoshiRulz e621b878b8
Use `int?` in `IJoypadApi.SetAnalog` to match `Set` 2022-02-04 20:34:28 +10:00
YoshiRulz d3e439982b
Add missing file existence check in `forms.drawIcon` 2022-02-04 20:34:28 +10:00
YoshiRulz 1dbc40e386
Accept string not object for `LuaLibraryBase.Log` 2022-02-04 20:34:27 +10:00
YoshiRulz 45f64f62de
Fix this null warning in `GuiLuaLibrary` 2022-02-04 20:34:20 +10:00
CasualPokePlayer 7259a6413e hook up melon mem cbs to frontend 2022-02-03 19:06:56 -08:00
CasualPokePlayer c8c8b1c05c oops, pretend this didn't happen 2022-02-03 19:05:27 -08:00
CasualPokePlayer dd3cf6091f add memory callbacks to melon, cleanup some code 2022-02-03 18:59:51 -08:00
CasualPokePlayer 0edf95948f use BizInvoker for Emu83 2022-02-03 00:59:49 -08:00
CasualPokePlayer 9a8be9d727 ICycleTiming for PSX (Nymashock), actually use ICycleTiming for bk2s, general cleanup, retire VBlankCount in favor of ICycleTiming, make SubNES/GBHawk use actual lag frames instead of lag is vblank 2022-02-02 22:52:09 -08:00
CasualPokePlayer 3f7c80a950 prep for ICycleTiming for Nyma 2022-02-02 21:12:50 -08:00
CasualPokePlayer 02e9fea0c5 make screen actually resize when changing screen orientation/rotation/gap 2022-02-02 20:02:16 -08:00
CasualPokePlayer 2c86c07016 dont set autoboot bit in language if in DSi mode 2022-02-02 18:24:26 -08:00
CasualPokePlayer 4c6d339bee Revert "properly format this string"
This reverts commit 1e8552148e.
2022-02-02 17:01:13 -08:00
CasualPokePlayer 1e8552148e properly format this string 2022-02-02 16:59:26 -08:00
CasualPokePlayer abb6bdf185 properly detect DSiWare instead of using hacky sync setting 2022-02-02 16:58:32 -08:00
CasualPokePlayer 41cc5749c4 add DSi/DSiWare gamedb entries 2022-02-02 16:14:36 -08:00
CasualPokePlayer f2047642eb fix oopsie in last commit 2022-02-02 15:45:52 -08:00
CasualPokePlayer 625a77cc14 clean DSi handling up a bit, add entries in movie header to indicate DSi/DSiWare 2022-02-02 15:42:02 -08:00
YoshiRulz cff2b04dcc
Fix `ObjectDisposedException` when triggering single-instance passthru 2022-02-02 22:47:13 +10:00
YoshiRulz 5d92ca3b4f
Enable SameBoy in testroms projects 2022-02-02 22:13:45 +10:00
YoshiRulz 7392df29d9
Misc. cleanup of testroms projects 2022-02-02 22:13:45 +10:00
YoshiRulz da06bd36d0
For testroms, only skip (video) rendering most of the time, not always 2022-02-02 22:13:40 +10:00
CasualPokePlayer 33a4dda6b7
Melon DSi (#3114)
* update melon

* frontend work

* make this work (i think?)

* fucking merge conflicts

* bleh

* hack up DSi support, very hardcoded atm, but at least states are reasonable

* add IS_DSI load flag

* frontend work bleh

* oops forgot to push

* ok fine apparently that doesnt display right

* oops

* prevent zealous release screen calls, DSi firmware seems to not like it?

* support for loading DSiWare title

* dsiware

* oh right this bullshit

* oops

* will this work

* why the fuck was this signed

* 0 out these hashes, these are also unique per console, no hope verifying these
2022-02-01 23:40:32 -08:00
CasualPokePlayer 096f24e7c6
Reduce bsnes115 state size (#3105)
* testing...

* more testing...

* this is probably a bad idea

* well this probably fixes state size issues

* time to debug this

* oh derp it's just not enough memory in invis heap

* let's see if this works?

* apparently this breaks slow ppu?

* testing...

* testing...

* testing...

* sanity checking

* let's try again

* i do not know what the fuck is up with this emulator nor do i care enough, state size is still under a mb anyways with slow ppu

* oops forgot to commit this

* resolve some issues

* tweak memory allocation sizes

* dont save more cache stuff

* wtf was i even thinking here

* move comment back to original pos, comment on double loading
2022-01-31 19:00:04 -08:00
CasualPokePlayer 7ac2e97cb7
update melon (#3113)
* update melon

* frontend work

* make this work (i think?)

* fucking merge conflicts

* bleh
2022-01-31 17:18:42 -08:00
alyosha-tas 8e7be7c1f2 Clean up subframe inputs: fixes #3111 as well as a bug in SubNEShawk where using zapper prevented reset cycle from appearing 2022-01-31 09:55:23 -05:00
YoshiRulz 850d8e027c
Nix expr: update deps
fixes ae9135807
2022-01-31 18:22:19 +10:00
alyosha-tas 3fdbc2e329 MSX; fix loading ROMs not in DB 2022-01-30 21:12:05 -05:00
CasualPokePlayer d6b33fbec6
Nymashock (#3093)
* nymashock wbx

* shit

* lagflag stuff

* saveram stuff

* debugging how this works

* lets see if this works better

* fuck strings

* ok let's do this right i think

* probably have this all working

* get repo in

* add nymashock to build scripts

* also update this readme

* get rid of this default, seems to break internally anyways?

* ""fix"" dualshock (wtf to do with rumble???), make override defaults actually default, add hack to allow for overriding default controllers

* hide useless rtc settings

* hack fix override defaults for controllers, get something going for nyma psx schema

* oops dont forget this

* make fucking default controllers hack work (what the fuck is this code???) also complete schema and mnemonics

* FUCKING FIX THIS BULLSHIT DEFAULT

* let's make this a little nicer

* add mnemonics for □/△/○, fixes weirdness with input display

* fix weird overscan issues when multiwidth + no-interlacing happens at the same time

* do this "properly"

* analog mnemonics

* default controls for dualshock/gamepad filled

* set nymashock as preferred core

* apparently this didnt get committed?

* update README too

* control name fix

* Revert "control name fix"

This reverts commit a3cae89b18.

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2022-01-30 08:52:49 -08:00
CasualPokePlayer dcccb4e2b6
MSXHawk Linux (#3110)
* hack up a makefile for this

* hack up a build for linux, also fuck msvc fuck msvc fuck msvc

* make this work with the so

* thanks line endings

* lol
2022-01-30 08:42:20 -08:00
CasualPokePlayer 2d9651fa89 Revert "sayonara appveyor"
This reverts commit 3b9cfc7c50.
2022-01-29 21:56:08 -08:00
CasualPokePlayer 3b9cfc7c50 sayonara appveyor 2022-01-29 18:55:51 -08:00
CasualPokePlayer 24f946681f
Emu83 (#3086)
* emu83

* builds and get rid of wtf this thing is

* multidisk bundler for ti83

* release

* link src

* also put in the commit hash why not

* Nitpicks

* update ""rom"" extensions for ti83

* don't forget to set a preferred core

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2022-01-29 18:23:09 -08:00
YoshiRulz 62fb0deeb5
Fix NRE when autoloading TAStudio + .tasproj and the wrong rom 2022-01-30 10:20:57 +10:00
feos ad82f4f216 test #3104 2022-01-29 11:59:53 +03:00
alyosha-tas 4ff77456e4 NESHawk: only add ines v2 submapper if it is non-zero, fixes #3082 2022-01-28 21:02:49 -05:00
Morilli bde5ee5167 Fix waterboxhost for version 1.60.0-nightly
closes #2750
2022-01-29 00:22:54 +01:00
YoshiRulz b2d1743387
Add brackets around system display name in MainForm window title
fixes 55300d782
2022-01-29 02:55:40 +10:00
CasualPokePlayer 8112be31e1 fix a dumb bug where Auto console mode blocked GBC IR when it shouldn't have; make linked memory domains make a linked system bus for the system bus field using LinkedDisassemblable (this is only relevant for debugger disassembly anyways) 2022-01-27 22:19:42 -08:00
CasualPokePlayer 670a71c6ee
remove cycle count offset debugging thing in sameboy
this was used for comparing gambatte and sameboy tases but wasn't intended to be in final merge, oops
2022-01-27 15:50:11 -08:00
CasualPokePlayer cbd533e7a3
add .git to straggler submodules 2022-01-27 15:39:19 -08:00
YoshiRulz eb80784d79
Add option to split RAM Watch entries (resolves #1024)
squashed PR #3032
2022-01-28 07:38:52 +10:00
CasualPokePlayer 2348e2885d
Add SameBoy as a GB/C core (#3009)
* basics for sameboy

* lol

* bleh

* lol

* push this in

* push this in

* settings, and also update sameboy bootroms

* bleh

* build linux

* remove some debugging shiz

* fix the order of this

* debug stuff also do gpu palettes right

* use new key mask API

* push shit in

* bleh

* add in replacement impl for joypad, use until opposing directions are allowed upstream

* update

* finally get this working without needing GB_INTERNAL

* hook up acc controls

* oops

* oops x2

* oh right this doesn't use this

* finish this up

* also mark this as released

* cleanups

* Nitpicks

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2022-01-27 13:17:52 -08:00
YoshiRulz 69d51aba50
Change how user gamedb files are included, add extra warnings 2022-01-28 06:49:01 +10:00
YoshiRulz 55300d7827
Rearrange MainForm window title 2022-01-28 06:48:46 +10:00
SuuperW a401c872f5 Fix a regression from commit 4d06fb1. 2022-01-27 11:01:52 -06:00
SuuperW 0171191c0e Fix a regression in commit dda09dd. 2022-01-27 10:47:55 -06:00
SuuperW ec35080f32 Don't double update tools when rewinding (or attempting to rewind). 2022-01-27 10:47:31 -06:00
SuuperW e473c7b88f Don't update tools twice at the end of a turbo seek. 2022-01-27 08:41:32 -06:00
SuuperW e3e1b222e2 Comment says we want to update after a turbo seek. So, don't update if we weren't turbo seeking. (This removes double-updating tools after reaching the desired frame, unless turbo seek is turned on.)
This commit addresses the regression mentioned in commit 937b966.
2022-01-27 08:36:54 -06:00
CasualPokePlayer 2016adcacf LinkedDisassemblable and put it in gambattelink 2022-01-27 00:03:50 -08:00
YoshiRulz 547c28ef28
Add back extra params to `RomLoader.DoLoadErrorCallback` (fixes #3054)
fixes fb6924bd8
2022-01-27 02:48:54 +10:00
Morilli 319455c2ea Revert "TAStudio: Update self after loading a state. There doesn't seem to be any reason to not update TAStudio, and doing so fixes two bugs that were most evident when loading the state for frame 0:"
This reverts commit bb226f694a.

This regressed #2965. Will attempt a different fix for the mentioned issues that doesn't regress anything.
2022-01-26 12:55:20 +01:00
Morilli 937b966393 Revert "Comment says we want to update after a turbo seek. So, don't update if we weren't turbo seeking. (This removes double-updating tools after reaching the desired frame, unless turbo seek is turned on.)"
This reverts commit dfc1436c9f.

This caused the progress bar to not disappear after finishing a normal seek.
2022-01-26 10:39:30 +01:00
YoshiRulz a0560c452b
Remove AppVeyor badges and add note 2022-01-26 16:52:39 +10:00
YoshiRulz ae91358071
Fix dependency problem and upgrade `SharpCompress` 2022-01-25 17:49:27 +10:00
YoshiRulz 75e9ad0a40
Hack in fix for #3087 (hotkeys triggering accidentally in Virtual Pad) 2022-01-24 15:17:38 +10:00
YoshiRulz c0056123cd
Refactor VBM import (maybe fix #3076) 2022-01-24 12:40:01 +10:00
alyosha-tas 01febd06de Debugger: move text to display cpu select box properly, fixes #3026 2022-01-23 09:54:41 -05:00
alyosha-tas e7203db6ad TAStudio: allow comments to be editted, fixes #3063 2022-01-23 09:13:04 -05:00
SuuperW dfc1436c9f Comment says we want to update after a turbo seek. So, don't update if we weren't turbo seeking. (This removes double-updating tools after reaching the desired frame, unless turbo seek is turned on.) 2022-01-22 19:24:31 -06:00
SuuperW 9e8cf71509 No need to set this twice; StopSeeking sets it. 2022-01-22 19:19:03 -06:00
Moritz Bender 0d7de83d4b
BSNESv115+: Implement snes_controller_latch function, cleanup input polling behavior (#3084)
* BSNESv115+: get rid of input_state + input_poll; just poll

* call `snes_controller_latch` on latches done in the core,

- this now also actually calls the InputCallbackSystem
- needed some edits in the core to support executing the callback even when no controller is connected in port 1

* Fix and somewhat normalize the SnesCallbacks order
2022-01-22 00:29:47 +03:00
YoshiRulz a5a8e85a91
Nix expr: DiscoHawk 2022-01-20 12:51:34 +10:00
YoshiRulz 022cb02f3e
In `EmuHawkMono.sh`, check distro name case-insensitively 2022-01-20 12:30:20 +10:00
YoshiRulz 199474e128
Update test to reflect new config schema
fixes 822cc5325
2022-01-20 11:44:28 +10:00
SuuperW bb226f694a TAStudio: Update self after loading a state. There doesn't seem to be any reason to not update TAStudio, and doing so fixes two bugs that were most evident when loading the state for frame 0:
-The UI was not updated.
-TasSession.UpdateValues was not called.  So saving the movie and then re-loading it would result in the previous frame being loaded/seeked to.
2022-01-19 16:03:30 -06:00
SuuperW 822cc53252 Add an option to RewindConfig to specify if the rewinder should allow out-of-order states. Currently, the default rewinder should but TAStudio rewinders should not.
Previously, TAStudio's ZwinderStateManager had to handle this, which made the code somewhat confusing. (Especially when I was looking at ZwinderBuffer and forgetting about the default rewinder.)
2022-01-19 13:20:19 -06:00
SuuperW 014cd51ae4 Fix a regression from commit 6c5447f5da that was causing states to be added out of order. 2022-01-19 13:20:19 -06:00
Meerkov 89b459c44d Add CLI for MP3 extraction 2022-01-18 13:45:41 +10:00
YoshiRulz 6a43277ae3 Move `AudioExtractor` to DiscSystem and clean up 2022-01-18 13:45:41 +10:00
YoshiRulz 551fd72275
Allow un/pausing via menu while `PauseWhenMenuActivated` feature is on 2022-01-18 00:52:21 +10:00
YoshiRulz 4e5f0da800
Remove feature where `Emulation` > `Pause` cancels a seek in progress 2022-01-18 00:52:17 +10:00
YoshiRulz 3ef7279429
Nix expr: Add new versions of Manjaro host libs 2022-01-17 01:54:27 +10:00
alyosha-tas e1315aa511 GBHawk: fix linking (again) 2022-01-16 09:09:09 -05:00
YoshiRulz 86ce476ad1
Clean up `PauseWhenMenuActivated`
Disabled `Emulation` > `Pause` menu item when this feature is enabled. It would
be possible, though annoying, to have it affect `_wasPaused` instead of the main
`EmulatorPaused` while this feature is enabled.
2022-01-16 14:39:08 +10:00
YoshiRulz 29da927e73
Allow checked-in ext. tools to be copied into a separate install 2022-01-16 14:39:04 +10:00
Morilli acbbd946e7 Fix #3050 2022-01-15 10:05:04 +01:00
James Groom 01cd5c256b
Fix weird edge case putting TAStudio in an unusual state (fixes #3066) (#3069) 2022-01-11 11:08:43 +03:00
alyosha-tas b0ab71ae35 Vectrex: Implement 64K bank switching, add some homebrews to DB 2022-01-10 17:15:01 -05:00
alyosha-tas 28e57dd7f3 INTV: update DB with a different version of Super Pro Football 2022-01-10 16:55:26 -05:00
YoshiRulz 8385337e71
Allow frontend to pass arguments to Lua callback functions
for compatibility w/ older versions: `event.can_use_callback_params ~= nil`
2022-01-10 16:06:11 +10:00
YoshiRulz 725f6e7194
Update TASVideos links for new site, set next release to 2.8 2022-01-10 15:07:06 +10:00
YoshiRulz 0b9b18bf9b
Also update this cache when updating global Config (fixes #3065) 2022-01-09 17:49:19 +10:00
YoshiRulz 0a3a597c99
Make OSD message duration (time to fade) configurable 2022-01-09 16:27:51 +10:00
YoshiRulz 940dc69ae5 Add regression tests for GB/C using various testroms 2022-01-09 14:19:48 +10:00
alyosha-tas 934a3ae266 NESHawk: proper DMC address wrap 2022-01-08 19:53:47 -05:00
CasualPokePlayer 9b88ae48e8 fix this annoying line ending thing 2022-01-06 13:49:04 -08:00
CasualPokePlayer 06d472fdc8 resolve #3058 2022-01-06 13:43:40 -08:00
alyosha-tas 1efdcbf64d NESHawk: partially revert changes to RDY interaction with branch 2022-01-06 16:09:25 -05:00
alyosha-tas e40fdb00ac NESHawk fix a DMC bug 2022-01-06 13:39:25 -05:00
alyosha-tas c7403e7fe7 NESHawk: fix some DMC edge cases 2022-01-03 16:49:36 -05:00
CasualPokePlayer 6b9bd9e3bd resolve #3055, also cleanup this code for GB/C 2022-01-02 23:45:40 -08:00
alyosha-tas d622e181f2 NESHawk: more dmc work 2022-01-02 10:52:04 -05:00
zeromus 853b0fdd85 "Unthrottled" should be saved to config 2021-12-31 16:28:48 -05:00
zeromus 007442773a throttle shouldnt act as paused when rewinding (fixes #3053, but may break some obscure case? the specifications are complicated) 2021-12-31 16:25:58 -05:00
feos b20fdb8e85 mame: mention vs2019_clang
produces a build that runs as fast as the gcc one, but is as small as the msvc one, and you can still fully debug it in VS
2021-12-30 22:57:33 +03:00
alyosha-tas 17951862ab NESHawk: clean up and implement new dmc reload delay findings 2021-12-30 08:51:14 -05:00
YoshiRulz 5687f800a1
Allow `"#RRGGBB"` format when parsing colours ("luacolor" in docs) 2021-12-29 15:28:12 +10:00
alyosha-tas 8dd98852be NESHawk: Fix interaction between RDY and Branch_delay_irq bug. Fix regression in APU timing. 2021-12-28 21:09:13 -05:00
CasualPokePlayer 509718887a set MAME System Bus correctly 2021-12-28 15:11:04 -08:00
alyosha-tas d113d76c6a NESHawk: fix regression in apu 2021-12-27 10:24:29 -05:00
alyosha-tas b45b552b9d NESHawk: fix interaction between RDY and NMI/IRQ 2021-12-27 08:04:27 -05:00
alyosha-tas 638c759aa0 NESHawk: clean up and implement DMC glitch 2021-12-26 19:37:20 -05:00
alyosha-tas d21f099567 NESHawk: implement some new NMI findings 2021-12-26 11:28:58 -05:00
alyosha-tas 8e5c1bfe57 NESHawk: work on DMC IRQs 2021-12-24 17:54:32 -05:00
alyosha-tas 7463e24957 NESHawk: fix some regressions 2021-12-23 20:00:13 -05:00
alyosha-tas 2dae3505d7 NESHawk: more DMC work 2021-12-22 20:31:23 -05:00
alyosha-tas e37f580a19 NESHawk: Implement some new DMC findings 2021-12-20 19:36:54 -05:00
YoshiRulz 93bb90b584
Pin and downgrade Nix Docker image 2021-12-20 02:08:00 +10:00
alyosha-tas 5e3e65a2ab NESHawk; revert initial state change pending more testing. 2021-12-18 16:42:01 -05:00
alyosha-tas 22fe9a1b7b PCEHawk: add 240p test suite to game DB and properly resize buffer, fixes #3018 to at least not crash 2021-12-17 20:08:36 -05:00
YoshiRulz 3bdbe1aeda
When building Nix derivation in GitLab CI, run tests 2021-12-18 07:29:20 +10:00
YoshiRulz ef16b4a457
Nix expr: wrap some strings in quotes just in case 2021-12-18 07:28:59 +10:00
YoshiRulz 6e73c6a5f1
Also write stderr to file in Mono wrapper scripts 2021-12-18 07:26:05 +10:00
alyosha-tas b821012099 NESHawk: update start up state and some cleanups 2021-12-16 22:03:25 -05:00
CasualPokePlayer aa6f74108e resolve #3028
also fix other misc bugs
2021-12-15 17:18:00 -08:00
Morilli d24629f3ad BSNESv115+: ram and rom memory domain fixes
- saveram was not working at all on certain roms, as the "CARTRIDGE_RAM" memory domain was returning a null pointer (similar thing for "CARTRIDGE_ROM"; changed it to correctly return the current rom)
- add sa1_bwram domain for clarity and an SGB_ROM domain
2021-12-15 09:10:37 +01:00
CasualPokePlayer 47a81e7b20 fix dsm importing, apparently desmume inverts the order of start/select for dumping/parsing 2021-12-13 18:26:25 -08:00
CasualPokePlayer ee0dea46bc fix #3030 2021-12-13 17:03:40 -08:00
YoshiRulz ebddab35d2
Attempt to fix AppVeyor builds
see #3024
2021-12-13 22:47:23 +10:00
YoshiRulz 57fb4d8970
Nix expr: clarify the split output (shaders are with assemblies) 2021-12-13 21:45:22 +10:00
YoshiRulz 878b22e8c5
Nix expr: copy bundled scripts, shaders, etc. to ~/.local/share
TODOs excepted, this brings the Nix build to feature-parity with "portable"/AUR
builds... if it runs at all (i.e. for the distros in `wrapper-scripts.nix`)
2021-12-13 19:55:03 +10:00
YoshiRulz fdee066fd1
Nix expr: don't need `.git` for dev build either
fixes 3d5578df1
2021-12-13 19:50:08 +10:00
Morilli 558adfa325 Get rid of unnecessary CRC32Checksum.cs
haven't checked for correctness or regressions
2021-12-12 17:51:54 +01:00
YoshiRulz d979a09f5a
Only run this once when importing .smv, not every frame (fixes #3022) 2021-12-13 02:10:55 +10:00
YoshiRulz 6316cab017
Replace Debian image w/ Nix (Alpine) in GitLab CI 2021-12-12 19:22:57 +10:00
YoshiRulz f7eff17921
Nix expr: downgrade `System.Collections.Immutable` 2021-12-10 17:14:39 +10:00
YoshiRulz 73866fbf20
Downgrade `System.Collections.Immutable` package 2021-12-10 16:59:52 +10:00
alyosha-tas 967ef7c995 NESHawk: move defining controller out of hardreset, fixes loading subneshawk 2021-12-09 15:47:49 -05:00
YoshiRulz 6d81cd30bd
Also have GitLab CI build each commit in Debug configuration 2021-12-09 23:49:25 +10:00
YoshiRulz e24b3bbbf8
Change indentation and block comment style in GitLab CI config 2021-12-09 23:49:22 +10:00
zeromus 82f8620292 try handling errors errorfully in packaging process 2021-12-08 23:07:38 -05:00
YoshiRulz c56aceb555
Build Nix expression during weekly GitLab CI checks 2021-12-09 13:38:46 +10:00
YoshiRulz 3d5578df1a
Nix expr: build w/o `.git`, fix debugPInvokes, add comment re: Cachix 2021-12-09 13:38:46 +10:00
alyosha-tas c8ef579b8f NESHawk: Implement new findings related to cpu register accesses, fix nanjing board 2021-12-08 16:29:36 -05:00
YoshiRulz 5f51174f1c
Nix expr: Add missing NuGet deps
fixes 0719d6f9d
2021-12-08 12:06:28 +10:00
YoshiRulz 54e7bf2542
Nix expr: change path search order for hacks, add libs for Fedora 2021-12-07 14:50:22 +10:00
YoshiRulz 2aa4c6e86c
Nix expr: organise data for GL hack 2021-12-07 14:50:19 +10:00
YoshiRulz 5c59e6d9c4 Overoptimise `Bk2InputDisplayGenerator` 2021-12-07 13:40:28 +10:00
YoshiRulz a11d0381b2 Cache `Bk2InputDisplayGenerator`s for long-lasting `IController`s 2021-12-07 13:40:28 +10:00
YoshiRulz 25ccca8bbb Clean up usages of `ControllerDefinition.ControlsOrdered` 2021-12-07 13:40:28 +10:00
YoshiRulz 8b1a1393a9 Cache `ControllerDefinition.ControlsOrdered` 2021-12-07 13:40:28 +10:00
YoshiRulz 0719d6f9df Allow `ControllerDefinition`s to be made immutable 2021-12-07 13:40:28 +10:00
YoshiRulz 15a03a26e8 Require `ControllerDefinition.Name` to be set (via ctor)
src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink/GBHawkLinkControllers.cs
src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink3x/GBHawkLink3xControllers.cs
src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink4x/GBHawkLink4xControllers.cs
2021-12-07 13:40:28 +10:00
YoshiRulz 7881067133 Clean up this spaghetti in NesHawk controller and movie import code 2021-12-07 13:40:28 +10:00
YoshiRulz dfbce55707 Pass `SimpleController.Definition` via ctor instead of initialiser 2021-12-07 13:40:28 +10:00
YoshiRulz 519fd40c32 99.9% sure this isn't used 2021-12-07 13:40:28 +10:00
YoshiRulz 7795e34362 Merge controller implementations for GBHawk* cores 2021-12-07 13:40:28 +10:00
YoshiRulz 9f2e426454 Merge AccX/AccY in GBHawk controller deck 2021-12-07 13:40:28 +10:00
YoshiRulz c09370ab44 Remove useless "Tilt Controls" dropdown from GBHawk sync settings
hack or don't
2021-12-07 13:40:28 +10:00
YoshiRulz 34ec13635b
Return void from `Control.*Invoke` extensions 2021-12-04 10:37:28 +10:00
YoshiRulz 299459c2ef
Update version requirements in readme 2021-12-04 07:35:42 +10:00
Morilli 59d76294c9 Close #2958 2021-12-03 22:16:09 +01:00
YoshiRulz 0a4bbce3f2
Some additions to ReflectionCache source generator 2021-12-03 16:36:03 +10:00
YoshiRulz 9224a4a81c
Add some more substring extension methods 2021-12-03 16:36:00 +10:00
YoshiRulz 2601ad636a
Convert NesCarts.xml to UTF-8 2021-12-03 07:59:58 +10:00
YoshiRulz 477ef2e519
Fix typo
fixes e38726db5, c5690e726
2021-12-03 07:58:05 +10:00
YoshiRulz a78e3feaf6
Also bump .NET SDK in GitLab CI config
fixes 5644911cc
2021-12-03 07:55:55 +10:00
YoshiRulz 5644911cc0
Bump .NET 5 -> 6, update BizHawk.Tests deps, and bump pinned Nixpkgs 2021-12-02 19:24:06 +10:00
YoshiRulz 655038f68e
Nix expr: refactor 2021-12-02 19:24:02 +10:00
CasualPokePlayer 0ad79c2cc2 [GambatteLink] proper memory callback scopes for each player 2021-12-01 20:56:00 -08:00
alyosha-tas 8c6d12e913 NESHawk: rename MMC3_pokemon to MMC3_Jncota 2021-12-01 18:52:53 -05:00
Morilli fce0f7a911 BSNESv115: Improve speed of fast ppu check 2021-12-01 19:40:53 +01:00
YoshiRulz cd4d7a89a4
More nullability 2021-12-01 16:33:52 +10:00
alyosha-tas 76faa7c835 MSX: implement ascii 8kb mapper and make it the default for large games 2021-11-30 19:06:08 -05:00
YoshiRulz 658123435c
Explicitly pass def in `JoypadApi.SetFromMnemonicStr` (resolves #2525) 2021-11-30 14:56:42 +10:00
Morilli 18ea6d34c6 BSNESv115+: Increase MmapHeapSize to prevent crashes
e.g. "Star Ocean" was crashing on the previous size
2021-11-29 20:41:33 +01:00
Asnivor a8ca430f01 ChannelFHawk: * Console buttons now mapped the correct way round
* gamedb updated
* Fixed F8 3853 Static RAM DC1 register issue - SCHACH mapper carts (chess, pacman) now work (and any games that use the XDC opcode)
2021-11-29 17:57:07 +00:00
Moritz Bender cc38f4bcba
Implement memory callbacks for the new bsnes core (#2797)
* Actually working callbacks
now actually work after natt's changes
* Set whether memory hooks exist every frame to prevent unnecessary function calls if not
2021-11-29 19:59:47 +03:00
alyosha-tas 47c8d4f6e8 EmuHawk: Add description to N64 profile informing user about auto-skipping lag frames during frame advance. Fixes #2380 2021-11-28 10:27:01 -05:00
CasualPokePlayer f7936a34f8 [GambatteLink] changes in link API, misc cleanup 2021-11-27 22:40:39 -08:00
alyosha-tas de8748d6d1 NESHawk:Send hard Drivin to correct mapper 2021-11-27 21:32:40 -05:00
alyosha-tas 3036b7378d NESHawk: give pokemon hacks battery ram 2021-11-27 13:55:13 -05:00
YoshiRulz 182699b967
Clean up ReflectionCache source generator 2021-11-28 03:33:34 +10:00
alyosha-tas eec1711b0f NESHawk: add in a new mapper for chinese pokemon 2021-11-27 10:49:58 -05:00
alyosha-tas 365fa1eb41 GBA: update about section to reflect current build used 2021-11-27 08:58:56 -05:00
alyosha-tas 5ba8655f42 MSX: minor bug fixes 2021-11-26 17:34:08 -05:00
Asnivor 4f71df99ae ChannelFHawk: Updates
* Maze/Hangman mappers working (SRAM2102)
* Fixed console buttons ones-compliment bug
* LagFrame detection
* NTSC/PAL SyncSetting
* Started adding mappers for all games
2021-11-26 16:50:14 +00:00
alyosha-tas fd02c872a9 MSX: finish up SCC, set to released. 2021-11-25 16:34:36 -05:00
Asnivor 2a67ad625f ChannelFHawk: Cart 2102 SRAM Implementation 2021-11-25 20:39:03 +00:00
alyosha-tas ddf07ebe27 Merge branch 'master' of github.com:TASVideos/BizHawk 2021-11-25 12:22:40 -05:00
alyosha-tas 82655a759e MSX: work on SCC implementation 2021-11-25 12:22:13 -05:00
Asnivor 442e83239d ChannelFHawk: More progress:
* IO now working properly
* Start of mapper implementation
* Additional gamedb entries
2021-11-25 14:52:59 +00:00
alyosha-tas f32961001e MSXHawk: Refactor and start work on SCC 2021-11-24 20:26:31 -05:00
alyosha-tas 0cd769222b A7800: fix off pixel detection in write mode, fixes baby pac man 2021-11-24 15:57:54 -05:00
alyosha-tas cdb7f13efe PCEHawk: enable 'multireshack' for Outrun, fixes #1266 to at least not crash the emulator. 2021-11-24 09:47:06 -05:00
Matt Burgess b06b37de7e ChannelF: Several fixes:
* F8 CPU now complements when transferring from A to IO
* Audio now working correctly
* F8 SIGN flag now set correctly on IO reads
2021-11-24 09:00:29 +00:00
alyosha-tas 726ecef5a6 INTV: fix intellicart, fixes various homebrews 2021-11-23 18:56:29 -05:00
CasualPokePlayer d5c1ebb88e update gambatte to upstream, passes more wilbertpol tests 2021-11-23 15:39:21 -08:00
YoshiRulz accf0f038c
Allow left/right modifier keys to be used separately (no UI)
Should allow for any key to be used as a modifier (see #2981), simply by
populating `Config.ModifierKeys`. Flip the assignment on `Input.cs:45` to try
out this change specifically.
2021-11-24 08:21:44 +10:00
alyosha-tas 3f9fb0eaef INTV: MOBs with x-coord 0 are not visible, fixes bowling. 2021-11-23 17:06:46 -05:00
alyosha-tas e45c9bb398 INTV: fix overflow flag calculation, fixes checkers and reversi 2021-11-23 16:45:28 -05:00
nattthebear 2ea62ffea6
Handle reentrant calls in waterbox (#3007)
Fixes #2585
2021-11-23 14:20:12 -05:00
CasualPokePlayer 3ea7c479a2 [GambatteLink] Don't bother stepping when the link is disconnected, should provide a nice speedboost 2021-11-22 23:27:02 -08:00
alyosha-tas 0715db5608 INTV: adjust sme timings and fix accesses to registers, fixes motocross 2021-11-22 21:17:57 -05:00
YoshiRulz 70215eddc7
Update `IGameInfoApi` usage in HelloWorld ext. tool
fixes 73af92b57
2021-11-23 10:14:35 +10:00
alyosha-tas d8356670ed INTV: clean up CPU, fix trace logger and throw less exceptions 2021-11-22 15:50:03 -05:00
CasualPokePlayer fba8e52be6
fix wtf in oam memory callbacks 2021-11-22 09:02:14 -08:00
CasualPokePlayer f9aa6101e0 sram bank is not 0xA000 large, oops 2021-11-21 20:07:02 -08:00
CasualPokePlayer 307f6f262e more scopes for Gambatte memory callbacks 2021-11-21 19:58:06 -08:00
CasualPokePlayer 80d588a002 remove some more remnants 2021-11-21 17:25:59 -08:00
CasualPokePlayer e0ffd45983 remove some DGB/GB3x/GB4x remnants 2021-11-21 17:21:13 -08:00
CasualPokePlayer 83a5632759 hack fix fuck shit textstate code 2021-11-21 16:03:20 -08:00
alyosha-tas bd53079a3a INTV: more compatibility work 2021-11-21 18:17:24 -05:00
alyosha-tas c5690e726e Intellivision: update game DB to use correct hash entries and add some that were missing. 2021-11-21 16:39:10 -05:00
CasualPokePlayer 16da7a2aa6 fix audio mixing for GambatteLink3x 2021-11-21 10:40:42 -08:00
alyosha-tas 5d6cf748bf GBHawk: fix linking in perfect dark 2021-11-21 11:38:23 -05:00
CasualPokePlayer 45dec23352 fix multidisk bundler 2021-11-21 01:38:30 -08:00
CasualPokePlayer 92157d0af0 rename DGB to GBL and make all link gb cores use it; todo: rename/fix shit 2021-11-21 00:59:56 -08:00
CasualPokePlayer 7c25241c4b and so 2021-11-20 23:51:23 -08:00
CasualPokePlayer 72ad5c7b0b GBC IR Emulation for GambatteLink 2021-11-20 23:51:23 -08:00
alyosha-tas d9893b1d27 SG1000: add remaining hashes for 8KB adapter 2021-11-20 21:49:13 -05:00
alyosha-tas 792b91f821 SG1000: work on 8kb ram adapter 2021-11-20 21:15:41 -05:00
ASNiVOR cee3d411b9 F8 CPU: Code tidy 2021-11-20 22:14:29 +00:00
ASNiVOR 1c90bbc273 ChannelFHawk: Move F8 CPU implementation to Emulation.Cores.CPUs 2021-11-20 21:55:00 +00:00
CasualPokePlayer ea63a553ca fix mgba submodule 2021-11-20 10:08:00 -08:00
YoshiRulz 5582b2163d
Don't expose `MainForm.MovieSession` via `IMainFormForConfig` 2021-11-21 03:06:07 +10:00
YoshiRulz ed5128343f
Clean up `MainForm.AddOnScreenMessage` usage 2021-11-21 03:06:07 +10:00
YoshiRulz e56b3abd37
Add missing `: IDialogParent`, remove unnecessary `IMainForm*` params 2021-11-21 03:06:06 +10:00
YoshiRulz e4f142c0d1
Don't inform the user they've hit cancel, they already know 2021-11-21 03:06:06 +10:00
YoshiRulz 3c111c3947
Remove empty doc comment blocks 2021-11-21 03:06:06 +10:00
CasualPokePlayer d053a0b414
Refactor GambatteLink (#3002)
* refactor gambattelink to be more modular and add support for 3x/4x
2021-11-19 19:59:27 -08:00
alyosha-tas 1333813bb1 SMS: Don't process collision on sprites above screen height, fixes ecco the dolphin #1611 2021-11-19 17:06:10 -05:00
ASNiVOR c74b47315f ChannelFHawk: CPU mostly there. It's running games now. Still need to work on input. 2021-11-19 19:09:04 +00:00
YoshiRulz c86691bfb1
Nix expr: add Ubuntu-specific libs and driver path
courtesy of @bigbass1997
2021-11-19 10:20:38 +10:00
YoshiRulz 49df817bcd
Derp this is IDisposable 2021-11-19 05:08:53 +10:00
YoshiRulz df97ef3dfe
Maybe fix #1483 re: drag+drop 2021-11-19 04:51:46 +10:00
YoshiRulz be13c08959
Warn when freezing >200 addresses at once (resolves #1155) 2021-11-19 04:42:19 +10:00
YoshiRulz e23a2df7e0
Add an edit dialog for TAStudio palette (resolves #2119) 2021-11-19 03:56:12 +10:00
YoshiRulz 90c489beed
Move TAStudio colours into a struct and save it to config 2021-11-19 03:56:09 +10:00
YoshiRulz 625c657531
Fix Hex Editor font/highlight alignment under Mono 2021-11-19 01:59:28 +10:00
YoshiRulz b1b06cc04a
Dedup some project file stuff 2021-11-19 00:49:05 +10:00
YoshiRulz 69d65009a0
Don't extend BCL namespaces 2021-11-19 00:49:05 +10:00
YoshiRulz 8849134d50
Flip endianness of CRC32 checksums 2021-11-19 00:48:38 +10:00
alyosha-tas c636c01424 SMS: fix backdrop colors 2021-11-18 08:54:13 -05:00
YoshiRulz 9448e56f0a
Nix expr: misc. cleanup
- return attrset (must use `-A emuhawk` now)
- expose `bizhawkAssemblies` (`dotnet build` output) and `mono` in return
- if Mono is explicitly provided, use it regardless of version
- maybe fix build fail when using `--arg useCWDAsSource true` on fresh clone
2021-11-18 22:56:24 +10:00
YoshiRulz cfe1542e0a
Fix `PathEntry` serialization test data
fixes be5e29cc5
2021-11-18 22:53:56 +10:00
YoshiRulz be5e29cc5a
Don't serialise `PathEntry.Ordinal` 2021-11-18 22:06:36 +10:00
YoshiRulz d905952d8b
Make `PathEntryCollection.DefaultValues` lazy and extract helpers
moved Libretro's useless ROM path to second to match others
2021-11-18 22:06:36 +10:00
YoshiRulz 87191385b8
Fix Channel F and Uzebox default paths overlapping with other systems 2021-11-18 22:06:32 +10:00
YoshiRulz fdb13d4f38
Nix expr: correct 2.7 source hash 2021-11-18 18:51:55 +10:00
YoshiRulz d3b7e3fe0d
Use P# format instead of custom 2021-11-18 18:47:05 +10:00
alyosha-tas 51e8ef94d0 A7800: fix Basketbrawl and summer games 2021-11-17 18:49:51 -05:00
alyosha-tas de1a312262 MSX: do some work on mappers 2021-11-17 15:27:54 -05:00
YoshiRulz abd6324ca4
Add Nix expression for EmuHawk 2021-11-18 01:41:50 +10:00
YoshiRulz 9fa3e34beb
Prevent infinite recursion in PathConfig.BrowseFolder
fixes 0b5f48aed
2021-11-18 01:14:00 +10:00
YoshiRulz 5587a4e56c
Fix build error in DBMan ext. tool
fixes e38726db5
2021-11-16 12:45:55 +10:00
YoshiRulz baea2a081b
Move `Config.DefaultIniPath` to Program 2021-11-16 12:20:37 +10:00
YoshiRulz fc4da78e73
Move global Config to Program 2021-11-16 12:20:37 +10:00
YoshiRulz 8859f8f859
Move `ArgParser.ParseArguments` call to Program, replacing config hack 2021-11-16 12:20:37 +10:00
YoshiRulz 69a4d64671
Bump version 2021-11-16 12:20:33 +10:00
alyosha-tas cf55391af0 As suggested by YoshiRulz, this gives correct behvaiour when autoload state is on but movie recording starts from power on. Fixes #2384 2021-11-15 19:19:39 -05:00
alyosha-tas 493cfc43b6 GBHawk: update GBA startup state, fix Konami collection Vol 4 2021-11-15 18:43:20 -05:00
alyosha-tas 78615095f2 A2600: fix AUDC 2 audio 2021-11-15 15:10:36 -05:00
YoshiRulz d58c5d7e8a
Use CoreInventory to determine systems hidden in PathConfig 2021-11-15 20:57:26 +10:00
YoshiRulz 1785d51c1d
Merge TI83 sysIDs 2021-11-15 20:57:26 +10:00
YoshiRulz d5fdbaf013
Bring unreleased cores in PathConfig in line with core attributes
effectively:
- show 32X in all builds (was never shown)
- show GGL and PS2 in dev builds (was never shown)
- show GB4x and O2 in non-dev builds (was shown only in dev builds)
- hide MSX in non-dev builds (was always shown)
2021-11-15 20:57:18 +10:00
YoshiRulz 908d4519c5
Use <ContinuousIntegrationBuild/> prop 2021-11-15 18:19:15 +10:00
alyosha-tas 7a3f96b5a6 A2600: fix ms pac man audio 2021-11-14 22:05:45 -05:00
alyosha-tas e334af157e SMS: Fix Fray (vert lock update) 2021-11-14 20:48:10 -05:00
alyosha-tas 5794d9c992 SMS: Fix ys (JPN) byemulating VRAm masking bit 2021-11-14 11:12:01 -05:00
feos 4e61e5f00f warn about vblank count mismatch on movie end
account for subgbhawk too
2021-11-14 13:06:01 +03:00
YoshiRulz 9b1a3e6904
Un-hardcode badges in readme, update links, update Lua on Linux notes
partially reverts f14b057d9
2021-11-13 15:30:38 +10:00
YoshiRulz c52c880101
Backport `KeyValuePair<,>.Deconstruct`
it's infuriating that you can't use this for lambda parameters
2021-11-13 15:17:30 +10:00
adelikat 3d56e23e8a bump release info 2021-11-13 15:03:50 +10:00
alyosha-tas 92c60385f4 A7800: savestate everything, should fix determinism issues this time 2021-11-12 17:54:44 -05:00
adelikat dbaf259562 bump release info 2021-11-12 14:33:50 -06:00
alyosha-tas 5f847fe55c A2600 game db updates 2021-11-12 07:19:49 -05:00
YoshiRulz 9220cf675e
Fix parsing of Win10 product names from registry 2021-11-12 19:41:15 +10:00
YoshiRulz e38726db50
Unify checksum helper methods 2021-11-12 19:38:11 +10:00
YoshiRulz 73af92b579
Refactor `IGameInfoApi` (expose GameInfo as its read-only interface)
also enabled NRTs
2021-11-12 19:38:11 +10:00
YoshiRulz fcd7a47435
Use read-only dict type in .NET API 2021-11-12 19:38:07 +10:00
alyosha-tas 47c5fcc39e SMS: foix pop breaker 2021-11-11 20:54:40 -05:00
CasualPokePlayer 2ecd752a45 Update default NDS username for consistency with upstream; mark melonDS as released, remove single instance mark (n/a with wbx) 2021-11-11 13:22:24 -08:00
alyosha-tas bbc5300297 SMS: balance audio better, fixes #2814 2021-11-11 16:16:41 -05:00
alyosha-tas c34c91b9eb NESHawk: increase IRQ delay in mapper 48 to fix graphics glitch in Jetsons 2021-11-11 14:52:27 -05:00
alyosha-tas 5c6a6240ed NES: Fix Zelda SaveRAM fixes #1623 2021-11-11 14:26:27 -05:00
alyosha-tas edfa040b46 NESHawk give Jump II initial SRAM of 0xFF 2021-11-11 09:43:08 -05:00
PandaSRC 24a5544730 Add Artix to wrapper script 2021-11-11 11:28:37 +10:00
YoshiRulz 4a4d8fe751
Collect sysID constants in a single class 2021-11-10 14:38:41 +10:00
YoshiRulz 1d6a4460d0
Group SGB in with GB/C in PathConfig (resolves #2992)
breaks config
2021-11-10 12:17:08 +10:00
YoshiRulz 488b2954d6
Use correct file path property (see #2687)
fixes adca19c30
2021-11-09 21:25:46 +10:00
YoshiRulz 56e22f34a5
Use `TryGetValue` instead of `ContainsKey` + indexer 2021-11-09 20:47:35 +10:00
YoshiRulz dd97e4e861
Use ellipses more consistently in MainForm
(to indicate menu items that open a modal dialog)
2021-11-09 17:49:20 +10:00
alyosha-tas 3674824889 A7800Hawk; Misc bug fixes 2021-11-08 17:53:34 -05:00
CasualPokePlayer 946e088950 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2021-11-04 14:35:23 -07:00
CasualPokePlayer 0cad1ca373 default birthday day settings change 2021-11-04 14:34:36 -07:00
YoshiRulz b5c02d3a99
Extract WAV from nothawk.bin 2021-11-05 00:52:01 +10:00
CasualPokePlayer 7c38ff7452 [Gambatte] fix cart bus pullup settings display 2021-11-03 22:52:27 -07:00
CasualPokePlayer 178e57a91b update libstdc++, gambatte needs this; other cores which use this seem to still function fine 2021-11-03 19:20:09 -07:00
CasualPokePlayer 2b15fc958f build here, update libgambatte bindings with new api and use it 2021-11-03 18:53:51 -07:00
CasualPokePlayer 463f9bf920 update gambatte 2021-11-03 18:42:04 -07:00
CasualPokePlayer 421c12f081 fix some other oopsies here 2021-11-03 18:12:05 -07:00
CasualPokePlayer 4c9d359a49 fix oopsies in nds stylus input display script 2021-11-03 18:04:07 -07:00
CasualPokePlayer 70cd0eab16 NDS Stylus Input Display script improvements and warnings 2021-11-03 17:59:25 -07:00
CasualPokePlayer 1ddbada5e4 NDS Lua Functions; update style input display to use them 2021-11-03 17:20:23 -07:00
CasualPokePlayer 600ee6c913 Squashed commit of the following:
commit af7cadfce4b750f8b1b23476c281bd2dfe027225
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Tue Nov 2 22:43:21 2021 -0700

    right, rename these too

commit e27197d18ad33af53729b1a57ee4a048189c41c4
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Tue Nov 2 22:40:42 2021 -0700

    build

commit 1af068f11f553ade70999fb2c640ee98e054aa36
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Tue Nov 2 22:37:28 2021 -0700

    new way to do mic input for melonds
2021-11-02 22:54:36 -07:00
YoshiRulz 274a137de4
Fix GBHawk settings dialog not appearing
fixes 9a87a0f58
2021-11-03 13:54:01 +10:00
CasualPokePlayer f5940e12e2
update octoshock to Mednafen 1.27.1 (#2989)
* update octoshock to Mednafen 1.27.1

* oh right, gotta add in video changes too
2021-11-02 20:15:54 -07:00
YoshiRulz 9bcedb2dab
Abstract the dialog from `AudioExtractor.Extract` and add skip option 2021-11-02 21:37:25 +10:00
YoshiRulz a439ea4970
Fix cancellation of `AudioExtractor.Extract`
fixes d3e1a6db9
2021-11-02 21:15:44 +10:00
CasualPokePlayer 463ef90fd2 build and comment this crap out (nice build error lol) 2021-10-29 23:07:34 -07:00
CasualPokePlayer 7a30cce55f melon merge upstream 2021-10-29 22:57:58 -07:00
CasualPokePlayer 1df985a5f6 cleanup this crap 2021-10-29 22:34:08 -07:00
CasualPokePlayer 7314cf9192 compress datetime comparision, make default initial time consistent with other cores 2021-10-29 22:01:57 -07:00
CasualPokePlayer 77916cfa2c
fix date time display (#2983)
* fix date time display

* Use ISO8601, fix nullability, improve validation

* Should probably override all of them to be consistent

* use local time format here

Co-authored-by: James Groom <OSSYoshiRulz+GitHub@gmail.com>
2021-10-29 21:48:45 -07:00
YoshiRulz 84b55d2af4
Remove useless semicolon following type decl 2021-10-29 06:48:13 +10:00
YoshiRulz 36328b45f3
Fix compilation of DBMan ext. tool
fixes 7953152d5
2021-10-29 06:47:40 +10:00
CasualPokePlayer 1dd7640161 use DescribableEnumConverter for GB and NDS 2021-10-27 20:59:15 -07:00
CasualPokePlayer 9138859bf5 am/pm flag fix? 2021-10-26 18:04:41 -07:00
Dennis 1e65515f63
Encode screenshot as JPEG when it has the extension (#2982) 2021-10-26 18:22:17 -04:00
zeromus c5a09f123b remove `?? ""` litter from ImageSequenceWriter (re #2982) 2021-10-26 18:18:31 -04:00
CasualPokePlayer bb318df49e
SGB Cheats Fix (#2980)
NOTE: LLE SGB cores seem to report an SNES ID anyways. Cheat code converter would need some work if changing them to report a SGB ID (also see https://github.com/TASEmulators/BizHawk/issues/2863#issuecomment-881970014)
2021-10-26 12:32:11 -07:00
CasualPokePlayer 080ed049f5 Switch these all around, also let's make this nice in solexp 2021-10-25 19:59:29 -07:00
CasualPokePlayer 148d6503d3 switch these all around, oops 2021-10-25 19:52:24 -07:00
CasualPokePlayer a0d03fdda0 Gambatte Cleanup 2021-10-25 19:33:33 -07:00
CasualPokePlayer d3bebefcbc
[NDS] Don't try to check for null in an out of range array (#2979)
I have no idea wtf I was thinking with this
2021-10-25 07:10:04 -07:00
CasualPokePlayer bc9331cb6f
[NDS] Double Mmap Heap Size (#2978) 2021-10-25 07:09:49 -07:00
zeromus d9ae8e330d oops, forgot to commit 2021-10-25 01:46:09 -04:00
zeromus 7c8bd4f98c improve pcehawk memory domains 2021-10-25 01:43:10 -04:00
CasualPokePlayer 41128abc37
[melonDS] Redo porting, waterbox style now (#2945)
Co-authored-by: nattthebear <goyuken@gmail.com>
2021-10-24 21:40:23 +03:00
James Groom f14b057d94
Ehh fix latest release badges 2021-10-25 01:46:53 +10:00
YoshiRulz b0e1458137
Merge CRC32 impls and clean up 2021-10-23 03:05:46 +10:00
YoshiRulz 7953152d51
Move CRC32 impls to `BizHawk.Common/checksums` 2021-10-23 03:05:46 +10:00
YoshiRulz 71be5c7997
Use `ReadOnlySpan` for `SpecialCRC32.Add` 2021-10-23 03:05:46 +10:00
YoshiRulz de76127f76
Move `SpecialCRC32.Add(int)` to a local helper method 2021-10-23 03:05:46 +10:00
YoshiRulz f95e03bff3
Make `CRC32.Calculate` return a uint 2021-10-23 03:05:45 +10:00
YoshiRulz 484a1d8fa4
Add unit tests for CRC32 impls 2021-10-23 03:05:42 +10:00
James Groom 7c6f78b461
Add `save_image_to_disk` to Lua canvases (#2973)
* Pass PathEntryCollection through to Lua libs

* Pass EmulationLuaLibrary to LuaCanvas, add save function to LuaCanvas

resolves #2744
2021-10-20 08:57:39 -05:00
YoshiRulz 98ee0d446f Add IEmuClientApi method (+Lua) for getting approximate framerate 2021-10-20 17:00:14 +10:00
YoshiRulz f56a98116e
Remove now-unused reference to System.Web
see #2261, #2535
2021-10-19 14:47:18 +10:00
CasualPokePlayer 9a87a0f586
nuke sameboy (#2934) 2021-10-18 21:38:23 -04:00
nattthebear 09ccf0dbe8
Unthread tastudio seek progress bar (#2774)
Co-authored-by: feos <feos-theos@yandex.ru>
2021-10-18 21:03:25 +03:00
adelikat 681b564bce remove system.web dependency in DiscoHawk 2021-10-18 12:49:29 -05:00
adelikat dda83033bd Lua canvas documentation - properly document that methods are PascalCase. Ideally they would be camelCase, but the LuaMethod attribute wasn't used in the process of regsitering these. They are aout in the wild now, so it would be disruptive to change. Plus, nocasing is used often as well, so we have no consistency anyway. Fixes #2772 2021-10-18 10:24:24 -05:00
adelikat eab4d2127a Ram Search - bg color drawing - don't use engine indexer so much, it news up a new object every time 2021-10-18 09:59:48 -05:00
alyosha-tas 98f9db4bc8 fix tsuri kichi blue marlin hen 2021-10-16 18:00:35 -04:00
zeromus 45c635ac70 update some urls 2021-10-16 14:38:24 -04:00
nattthebear 1a0b0bbd3d rename some upstreams 2021-10-16 11:20:37 -04:00
CasualPokePlayer d0caff6cf3
Dumb (#2968)
* dumb

* dumb
2021-10-14 08:22:21 -04:00
YoshiRulz 97e030fcb8
Add confirmation modal when launching TAStudio during casual play 2021-10-14 14:49:19 +10:00
alyosha-tas 52715383c5 SMS: add SRAM to Terminator in gamedb fixes #2966 2021-10-13 16:20:13 -04:00
alyosha-tas 5626edf43d TAStudio: do not seek when needing to load greenzone on paint 2021-10-12 19:04:43 -04:00
YoshiRulz f721dad395
Replace some hardcoded checksums in GBHawk w/ SHA1 to match gamedb 2021-10-10 18:18:56 +10:00
YoshiRulz cf7cc3bd0e
Use named constants for hardcoded rom checksums in Hawk cores 2021-10-10 18:18:56 +10:00
YoshiRulz d8dc06cbd2
Don't unnecessarily recompute rom hashes 2021-10-10 18:18:52 +10:00
YoshiRulz b614edecdb
Detect when running as Superuser/Administrator
not using this for anything atm
2021-10-10 13:06:43 +10:00
zeromus 8145dfbdce neshawk - remove misleading non-functional function for setting volume (don't worry the feature is still there, this was just an unused method) 2021-10-08 22:20:41 -04:00
YoshiRulz 1dbcdcdfc1
Fix loading of Basic Bot under Mono 2021-10-08 13:28:45 +10:00
alyosha-tas e5c2e7ce4b TAStudio: Fix #2811 NOTE: I am leaving a TODO in InputRoll, there are some complicated bugs happening with pointed cell updates, but for now everything happens to work out ok. 2021-10-07 08:50:01 -04:00
YoshiRulz 56de859042
Use new fallback mechanism in v2.x of Cyotek.Drawing.BitmapFont 2021-10-06 08:33:09 +10:00
alyosha-tas a63b7c262b GBHawk: set bk2 movie CGB flag properly 2021-10-04 16:16:22 -04:00
YoshiRulz f46ff85287
Fix indentation in FFmpegService 2021-10-04 08:23:18 +10:00
YoshiRulz ef059dbcaa
Missed the newline on this print 2021-10-04 08:11:42 +10:00
YoshiRulz df5ef0ec2d Clean up drag+drop handling in MainDiscoForm 2021-10-04 07:00:19 +10:00
YoshiRulz a514effba7 Encapsulate "hawking" routine in DiscoHawk and use it in CLI
resolves #2947
2021-10-04 07:00:19 +10:00
zeromus 253d532a63 make FFmpegService more reliable (fixes inexplicable hangs in reading ffmpeg output which breaks discohawk audio extractor sometimes and probably other things sometimes unpredictably). fixes #2952 2021-10-03 01:25:45 -04:00
zeromus d3e1a6db99 make discohawk AudioExtractor multi-threaded 2021-10-03 01:24:12 -04:00
zeromus b14c434377 fix snes graphics debugger getting permanently hidden (til app is restarted) when choosing new bsnesv115+ core. fixes #2950 2021-10-03 00:09:35 -04:00
YoshiRulz 02f23692cf
Re-enable Lua on Linux 2021-10-03 09:48:26 +10:00
YoshiRulz e553eafee2
Bump version 2021-10-03 09:13:15 +10:00
feos 167bfeb4c0 update release info 2021-10-01 22:23:34 +03:00
YoshiRulz 56c7457336
Downgrade SharpCompress 2021-10-01 06:19:40 +10:00
YoshiRulz df655d6f19
Add Fedora to wrapper script 2021-09-30 20:08:53 +10:00
YoshiRulz 078852567a Revert "Disable Tool Box on Linux (fixes #2741)"
This reverts commit fe6bf7ba12.
2021-09-30 19:43:38 +10:00
YoshiRulz dc090b81fe
Re-use hack from `client.reboot_core` for `openrom` (resolves #2940) 2021-09-30 19:39:39 +10:00
YoshiRulz 5f1d686475
Don't compress NesCarts.xml when packaging
see #2939
2021-09-30 18:55:31 +10:00
feos 340352eb69 commit readme/license/source info files for pixelated lua fonts 2021-09-28 22:00:13 +03:00
zeromus 9474be55f9 oops, mistake from copy paste cgp (maybe?) 2021-09-27 22:32:02 -04:00
zeromus e18dd99a58 add bsnes-gamma shader. fixes #2942 2021-09-27 22:30:57 -04:00
CasualPokePlayer 4303d1c333
[mGBA] Game Override Sync Settings (#2937)
* override sync settings

* override penguin

* don't override save type when autodetecting

* insert penguin
2021-09-26 11:55:13 +03:00
YoshiRulz bff6126c1b
Fix filesize pre-check in FirmwareManager 2021-09-22 11:51:40 +10:00
YoshiRulz dbc36fa420 Add automatic patching capability to FirmwareManager 2021-09-22 06:24:28 +10:00
YoshiRulz 190e121a90 Remove firmware patching from Gambatte 2021-09-22 06:24:28 +10:00
CasualPokePlayer d513c5b2a0
fix #2805 for real this time (#2936)
* fix https://github.com/TASVideos/BizHawk/issues/2805

* fix https://github.com/TASVideos/BizHawk/issues/2805 for real this time

* misc

* advance penguin
2021-09-21 08:46:57 -04:00
CasualPokePlayer b5639f8834 update gambatte; update readme to account for gambatte sgb support 2021-09-21 14:01:42 +10:00
dependabot[bot] 4356af7b95 Bump SharpCompress from 0.28.3 to 0.29.0 in /src/BizHawk.Client.Common
Bumps [SharpCompress](https://github.com/adamhathcock/sharpcompress) from 0.28.3 to 0.29.0.
- [Release notes](https://github.com/adamhathcock/sharpcompress/releases)
- [Commits](https://github.com/adamhathcock/sharpcompress/compare/0.28.3...0.29)

---
updated-dependencies:
- dependency-name: SharpCompress
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-21 06:18:19 +10:00
YoshiRulz 2ec0c7d733
Cleanup disabling of DirectX options when it isn't installed 2021-09-21 06:15:19 +10:00
YoshiRulz c112f0b036
Resolve relative paths passed as --lua (resolves #2077) 2021-09-21 05:39:19 +10:00
YoshiRulz 0c855e0047
Add debug util for reproducing #2805 2021-09-20 04:53:46 +10:00
YoshiRulz 2515e73543
Minor cleanup in MGBAMemoryCallbackSystem 2021-09-20 04:50:36 +10:00
YoshiRulz a3ac843c76
Be explicit about rounding for the FPS display, rename method 2021-09-19 02:02:34 +10:00
YoshiRulz 1f580aa826
Update test data to new RewindConfig schema
fixes 94f9016c6
2021-09-18 19:11:53 +10:00
Steven Schalek 478d886bec
Add HandleWatchSizeSelected() to allow user-initiated watch size changes to be ignored if they reset the setting to the same value (#2862) 2021-09-18 11:56:16 +03:00
Daniel Peter Rutschmann 94f9016c6f
Add config option for rewinds every fixed number of frames. (#2893)
* wip consistent rewind intervals.

    In Bizhawk 2.3, rewinds were always made in fixed intervals.
    With the new rewinder, the rewind intervals vary depending on the
    save state size. (This is especially pronounced with delta compression.)
    While this is good for TAStudio, it is awful for regular playing / TASing.

* clean up rewind config gui a bit.

Use radio buttons to make it clear that only the numeric input field of the selected option is being used.

* use more precise variable names.

* minor whitespace cleanup

* don't use fixed rewind intervals by default.

This avoid suddenly changing the rewind behaviour when updating from previous recent versions of Bizhawk.
2021-09-18 11:08:43 +03:00
Moritz Bender 158451a68e
Add linux version of LibretroBridge (#2895)
* Add linux version of LibretroBridge

* correct make variables or whatever

* Revert Hawk-side changes (to avoid merge conflict with master)

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2021-09-18 11:08:26 +03:00
BrunoValads 14dd3c1695 Removed LuaInterface memory leak warning, it was solved 2021-09-17 23:41:46 +10:00
CasualPokePlayer fbab7f6291
Implement HLE SGB Emulation in Gambatte (squashed PR #2917)
* sgb meme

* various sgb fixes, add hard reset support for spc, make frontend provide spc file

* sgb border support, mostly copied from sameboy

* add support for disabling sgb border, also fix dumb when disabling border

* state work, states seem to be broken tho

* fix dumb state issue

* multiplayer

* fix dumb in spc stating

* misc

* pass SGB tests

* oh right I have to fix this too

* and this dumb too

* attempt to fix weird crashes

* or maybe this will fix it?

* wtf is spc doing?

* rebase

* misc state + debugging stuff

* finally fix weird assertion failure

* factor out loading in spc file, also factor out the ipl

* oops

* init special sgb colors for certain games

* slight sgb audio refactor

* this should work better?

* oops

* switch back to master

* super penguin
2021-09-17 23:35:00 +10:00
YoshiRulz fc0ebf372f
Remove use of the dynamic type from BizwareGL 2021-09-15 06:00:05 +10:00
YoshiRulz 2d81c820b4
Add LibretroBridge binary for Linux and wire it up
build scripts to come, see PR #2895
2021-09-09 04:12:54 +10:00
Chris W 38f3cdb687
Make sorting optional for `forms.setdropdownitems` (squashed PR #2923)
* Add optional sort parameter to SetDropdownItems method

* Improve docs, use pattern matching

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2021-09-08 14:18:51 +10:00
YoshiRulz 56a9e333e9
Allow ToolManager.IsAvailable to check ext. tools 2021-09-06 15:51:11 +10:00
mooware 55a8936a30
add options for virtualboy to only show left or right screen (#2842) 2021-09-01 20:41:02 -05:00
YoshiRulz 24f69eb5a6
Also check PreferredPlatformsForExtensions for single-file archives
resolves #2915
2021-08-24 10:30:33 +10:00
YoshiRulz 559c8efcf1
Fix inconsistent treatment of systems' rom file extensions 2021-08-24 10:30:33 +10:00
YoshiRulz 40cf608eef
Deduplicate file extension list in RomLoader 2021-08-24 10:30:30 +10:00
YoshiRulz a26753234b
Add toggle to TAStudio for including frame no. when copying rows
resolves #2643
2021-08-24 08:17:34 +10:00
YoshiRulz c4ff971113 Set firmwares declared with FirmwareAndOption to Ideal status 2021-08-24 07:18:41 +10:00
alyosha-tas c6744feed8 NESHawk: make sure Krnov (J) goes to correct mapper 2021-08-23 11:37:04 -04:00
alyosha-tas 883d74d2cd TAStudio: autofirre pattern repeating zero times should not be allowed, fixes #2910 2021-08-23 10:40:18 -04:00
YoshiRulz 2f344f8ffd
Clean up OTK_GamePad.GetAxes 2021-08-20 08:20:25 +10:00
YoshiRulz 23a7754a2b
Inline some helpers into OTK_GamePad ctor 2021-08-20 08:20:25 +10:00
YoshiRulz 591d92fe51
Use 1-based indexing for button/axis names of OpenTK gamepads
(to match DirectInput)
2021-08-20 08:20:25 +10:00
YoshiRulz be19b1bb14
Simplify OpenTK gamepad discovery/enumeration 2021-08-20 08:20:22 +10:00
YoshiRulz ee0848d7d0
Improve logging for OpenTK gamepads 2021-08-19 13:30:05 +10:00
CasualPokePlayer b29516e864
Update Gambatte (#2909)
* update gambatte

* penguin
2021-08-15 22:28:42 -04:00
YoshiRulz b50afede66
Fix Virtual Pad schemata for ColecoVision 2021-08-16 03:47:14 +10:00
CasualPokePlayer 47a8305699
fix #2902 for real this time (#2906)
* fix Gambatte memory/trace callbacks in double speed mode

* win build

* linux build
2021-08-12 00:52:58 -04:00
CasualPokePlayer 4681805439
fix #2902 (#2904)
* fix #2902; factor out altrunfor and just use upstream's runFor, keeping a frame buffer on the c# side

* linux build
2021-08-11 02:20:53 -04:00
YoshiRulz ebd18df440
In Lua docs for wiki, alphabeticalise functions within module 2021-08-09 00:07:31 +10:00
CasualPokePlayer d37a818f96
Update Gambatte (GB Camera Support, Misc Cleanup) (#2897)
* update gambatte (camera support, misc cleanup)

* linux build

* misc

* [Gambatte] fix resets (oops)

* this didn't complain on my side but w/e ig
2021-08-07 17:50:16 -04:00
YoshiRulz a6e36b30be
Minor fixup to debug menu 2021-08-05 19:21:29 +10:00
YoshiRulz ec2baf17af
Fix missing #if fence
fixes e2d5c5621
2021-08-03 02:34:29 +10:00
YoshiRulz e2d5c5621b
Add debug menu and GLideN64 settings fuzz tool 2021-08-03 02:02:06 +10:00
YoshiRulz fe05442ab0
Clean up nullability in comm API 2021-08-03 01:51:13 +10:00
YoshiRulz 97222f2c5b
Make the default index 1 for NLuaTableHelper.ListToTable 2021-08-03 01:48:39 +10:00
YoshiRulz 7068fd2c39
Fix #2844 properly, and do writebyterange as well
effectively reverts d784e9c00 and 38442bd5f
2021-08-03 01:48:39 +10:00
alyosha-tas b6e91aef32 SMS: make undrawn area black, overscan itelf still needs reworking, fixes #2892 2021-08-02 11:44:11 -04:00
alyosha-tas 38442bd5fe LUA: documentation fix from previous commit 2021-08-02 10:15:01 -04:00
alyosha-tas d784e9c00c LUA: update documentation of readbyterange to reflect what it actually does. Add readbyterangetable which allows the user to select the starting index to any desired value. Resolves #2844 2021-08-02 10:12:29 -04:00
YoshiRulz 21b2d40832
Move Assets copy to EmuHawk so it only happens for top-level
fixes 443c9830b
2021-08-02 21:43:21 +10:00
YoshiRulz 8adb911623
Pull Gambatte submodule, rename Linux binary to .so 2021-08-02 20:54:06 +10:00
YoshiRulz 02de3588a6
Catch and recover from exceptions thrown by OpenTK gamepad poll calls 2021-08-02 19:20:45 +10:00
YoshiRulz 04bf9d0ec2
Fix code style and increase SA1121 level to error 2021-08-02 19:17:31 +10:00
CasualPokePlayer ee1dc3dba7 [Gambatte] add linux build 2021-08-02 16:23:38 +10:00
CasualPokePlayer 87f0fd78fc [Gambatte] sync to upstream 2021-08-02 16:23:38 +10:00
CasualPokePlayer 036e349337
[BSNESv115+] Fix Lag Frames For SGB (#2886)
* better lag detection for sgb. todo: might want to toggle this?

* correct logic and don't fail build this time
2021-08-01 09:54:59 -04:00
CasualPokePlayer 7518ce962b
[Gambatte] Many Updates (#2823)
* [Gambatte] Port setregs from upstream, implement SetCpuRegister, misc cleanup/fixes elsewhere

* [Gambatte] Add more proper uninitalized AGB WRAM, based of a GBP dump

* cleanup Gambatte's CpuSetRegister (credits to stringflow)

* additional Gambatte code cleanup

* [Gambatte] cleanup tracelogger code readability

* fix

* Initalize VideoBuffer with a white screen instead of a black screen, misc video fixes

* misc cleanup

* [Gambatte] hdma work

* [Gambatte] add warning for recording a movie without a bios enabled. doing this as I am annoyed enough from disabled bios being the default and you cannot say anything about the profile system since recent submissions have shown that ineffective

* misc cleanup

* [Gambatte] init state tweaks

* [Gambatte] add setting for patching similar bioses

* fix this

Co-authored-by: TiKevin83 <travismcgeehan@gmail.com>
Co-authored-by: alyosha-tas <alexei.f.k@gmail.com>
2021-08-01 09:54:19 -04:00
YoshiRulz 4973e3eba1
Refactor ITraceable and related types 2021-08-01 23:11:45 +10:00
YoshiRulz 9ec72fd543
Enable nullability in some more services and CodeDataLog 2021-08-01 23:11:44 +10:00
YoshiRulz c26b99b547
Convert RegisterValue to a readonly struct 2021-08-01 23:11:40 +10:00
alyosha-tas 92dfdaec0f NESHawk: fix MMC3 clear timing, fixes Klax 2021-07-31 22:32:10 -04:00
YoshiRulz f92387e134
Fix typo in SMS ctor that caused NREs
fixes bcd47a1ad
2021-08-01 11:09:40 +10:00
alyosha-tas 9d8a80026e NESHawk: more DMC work 2021-07-31 09:56:28 -04:00
alyosha-tas 01c0560c89 Merge branch 'master' of github.com:TASVideos/BizHawk 2021-07-29 18:52:01 -04:00
alyosha-tas fd765b4278 BMp view: make it a function 2021-07-29 18:50:36 -04:00
Hyago Oliveira dc66b4357f
Add event.onconsoleclose (squashed PR #2884) 2021-07-30 08:44:24 +10:00
alyosha-tas 0f294a220e Replace Win32 call in GBA viewer 2021-07-29 17:35:41 -04:00
alyosha-tas 3c257d48ba Replace Win32 call from Bmp and Gb view 2021-07-29 17:12:25 -04:00
alyosha-tas 6ba3bfa1a2 GB GPUViwer: fix a couple bugs, still leaves a TODO 2021-07-28 10:14:22 -04:00
YoshiRulz f8df53abda
Improve documentation for VersionInfo.gen.cs 2021-07-28 10:25:07 +10:00
YoshiRulz b05d64c10c Redesign PathConfig (resolves #2435) 2021-07-28 10:04:35 +10:00
YoshiRulz dfaf07371e
Use better LINQ in PathConfig 2021-07-28 09:31:59 +10:00
YoshiRulz 28abcac463
Use AssemblyBuilder from System.Reflection.Emit package in BizInvoke 2021-07-27 21:10:50 +10:00
YoshiRulz 4f7a641453
Add missing $ before string in generated ReflectionCache source 2021-07-27 21:10:11 +10:00
YoshiRulz cf92bfd9b4
Clean up EmuHawk.Resources 2021-07-27 17:15:14 +10:00
YoshiRulz 3ed650c0ba
And silence the print flood from Database again 2021-07-27 15:17:14 +10:00
YoshiRulz 517be084ab
Replace Debug.WriteLine w/ Util.DebugWriteLine
(or `Console.WriteLine` if it's in `#if DEBUG`)
bonus wtf: 2 calls in Database were to `WriteLine(string, string)` overload, not
the intended `WriteLine(string, params object[])` overload
2021-07-27 15:14:13 +10:00
YoshiRulz 99260d2746
Add DocumentationAnalyzers from NuGet and fix syntax in docs 2021-07-27 14:53:04 +10:00
YoshiRulz 8d210df9e3
Enable nullability in some services 2021-07-27 13:31:49 +10:00
alyosha-tas aa9402f3c8 fix #2298 2021-07-25 11:27:40 -04:00
alyosha-tas a8e710c73d fix #2880 2021-07-25 10:31:02 -04:00
CasualPokePlayer 62fcf9cc1d
fix #2864 (#2869)
* fix #2864

* attempt to preserve 2c8295b behavior

* misc
2021-07-25 09:10:51 -04:00
Daniel Peter Rutschmann 4b6fc89a71
Fix rewinds sometimes drifting 1 frame forward when loaded. (#2878)
Co-authored-by: dacin21 <daniel.rutschmann@gmx.ch>
2021-07-25 09:09:42 -04:00
YoshiRulz fd0d5a38c7
Rewrite OSDManager.InputStrOrAll without local var 2021-07-24 21:09:17 +10:00
YoshiRulz b4738411a2
Invert nullability in Emulation.Common, enabling it some trivial files 2021-07-24 19:23:18 +10:00
Morilli f1da6e6cd3 fix #2873 by duplicating code yay 2021-07-23 00:48:56 +02:00
YoshiRulz 8c5bb6715a
Allow loading .so files for libretro, again, and throw a nice message 2021-07-23 08:15:12 +10:00
alyosha-tas 335c8104b6 NESHawk: Tweaks to APU timing 2021-07-22 08:42:29 -04:00
YoshiRulz 726f1f3f11
Move types from Input to top-level in Client.Common and cleanup 2021-07-22 15:09:49 +10:00
YoshiRulz 25da1153b6
Resolve TODO re: encapsulation of r/w InputManager props 2021-07-22 14:49:09 +10:00
YoshiRulz 778098e8b7
Apply current code style to Bizware.Test
including enabling NRTs and minifying TestForm w/o Designer
2021-07-22 06:35:53 +10:00
YoshiRulz d1205fa807
Revive Bizware.Test executable 2021-07-22 06:34:23 +10:00
YoshiRulz a223072810
Update OpenTK 2021-07-22 05:02:06 +10:00
GhostlyDark 7a48bded0a
Add new GLideN64 settings (#2872)
* Add new GLideN64 settings

- BackgroundsMode: Set the rendering of large background images, like the JFIF backgrounds of Ocarina of Time. Defaults to stripped as it is more accurate. A user may want to change this to one piece mainly for texture pack usage or performance.
- txEnhancedTextureFileStorage: Use HTS cache instead of HTC for enhanced (upscaled) textures. Defaults to HTC.
- txHiresTextureFileStorage: Use HTS cache instead of HTC for HD textures. Textures are streamed from disk, eliminating the need to prefetch the textures at load. Boots the game near instantly and decreases RAM usage. Defaults to HTC.

* Fix BackgroundsMode type
2021-07-21 16:51:38 +03:00
feos 11b1e328a6 rebuild gliden64 2021-07-21 16:20:28 +03:00
YoshiRulz b28a52befa
Add default feedback bind for N64 P1 (and add copy in test data)
the rest of the default binds are still garbo though
2021-07-21 12:27:41 +10:00
YoshiRulz d3733c1fda
Pass Left+Right feedback bind through until PrepareHapticsForHost 2021-07-21 12:27:38 +10:00
YoshiRulz d254c8121d
Include HapticsChannels prop in ControllerDefinition clone ctor 2021-07-21 10:49:50 +10:00
Meerkov 664ab7fab6
Wire up haptics in Mupen core (squashed PR #2683)
* Wire up host haptics, but only for OpenTK which doesn't support it

and I'm hijacking the Fast Forward hotkey too

* Fix Mupen 64 Vibration DLL

* Enable Mupen 64 Vibration for DirectInput

* Remove unused SDL dep from Mupen input-bkm plugin

this allows it to be built without checking out the deps submodule, I guess

* Fix <OutDir/> in Mupen lib projects

* Remove "Debug" haptic channel and debug hotkey, prepare Mupen

* Fix remaining merge conflicts

* ...with the correct channel name

and hopefully no dangling whitespace changes

* Fix typo from resolving merge conflict, and off-by-one error

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2021-07-21 10:06:16 +10:00
YoshiRulz 52333e4862
Remove "Debug" haptic channel and debug hotkey, prepare Mupen 2021-07-21 09:46:19 +10:00
YoshiRulz 045c4815a4
Change <OutDir/> to point to /Assets in Mupen lib projects 2021-07-21 09:46:19 +10:00
YoshiRulz 77f467588b
Remove unused SDL dep from Mupen input-bkm plugin
this allows it to be built without checking out the deps submodule, I guess
2021-07-21 09:46:18 +10:00
YoshiRulz 38b81ae10b
Re-enable haptic feedback
(i.e. revert 567cb0c8f)
2021-07-21 09:46:15 +10:00
alyosha-tas 864086c510 NESHawk: update apu start state to better match console 2021-07-20 18:50:33 -04:00
nattthebear 8cd67529a3 delta rewinder: fix crash on rewinding when the buffer was full
Woops!
Closes #2870.
2021-07-20 16:53:40 -04:00
nattthebear 7cc73ca9b0
Fix bug with delta state rewinder (#2871) 2021-07-20 16:47:10 -04:00
YoshiRulz 56594840ad
Replace sequences of 7 or more = chars in C# source with -
just makes it easier to grep for Git merge conflicts
2021-07-19 10:10:16 +10:00
YoshiRulz 2077b19caa
Clean up dumb in GBHawk ctor 2021-07-19 09:19:37 +10:00
YoshiRulz 0892fb8733
Inline remaining CFP.GetFirmware shim 2021-07-19 09:15:05 +10:00
YoshiRulz 70037ee0fc
Refactor CFP.GetFirmware* 2021-07-19 08:52:09 +10:00
YoshiRulz 09afbdd6eb
Re-add .wbx in Assets to .gitignore 2021-07-18 09:37:36 +10:00
YoshiRulz 60a8891c92
Remove /Assets filters from .gitignore 2021-07-18 08:56:15 +10:00
YoshiRulz ceedf1fef5
Misc. unmanaged cores: output to /Assets and also /output if it exists
Makefiles still produce .dll instead of .dll.so on Linux
see #2725
2021-07-18 08:10:17 +10:00
YoshiRulz 443c9830bb
Copy /Assets with <None/> instead of a post-build <Target/>
see #2725
2021-07-18 07:24:58 +10:00
alyosha-tas 42b43b4431 resolve #2858 2021-07-17 08:26:47 -04:00
Moritz Bender 2ff7e4d39b
Add sa1_iram memory domain for new bsnes (#2803) 2021-07-16 18:41:53 -05:00
Mickael Laurent e79d33bcfd Add several comm MMF LUA functions 2021-07-17 07:49:11 +10:00
Mickael Laurent 457ff87481 Always initialize MMF LUA functions 2021-07-17 07:49:11 +10:00
Morilli 308d34890c Fix the superscope controller for the new bsnes core
closes #2856
2021-07-14 22:43:09 +02:00
Zach 58293dde9f
Support null (any) address for N64 breakpoints. (#2833)
* Support null (any) address for N64 breakpoints.

Fixes #2808

* Move null check for better readability.

* Replace debugger mutex with semaphore that counts debug steps.

This is taken directly from upstream m64p. If breakpoints are being hit fast enough and in large enough quantity, m64p always ends up getting into a deadlock. The semaphore seems to resist this problem.

* Remove tabs
2021-07-14 20:49:31 +03:00
CasualPokePlayer 488fd2c6af
Add support for more SGB firmware + Use homebrew bootroms instead of bsnes' illegally provided official ones (#2837)
* add support for more SGB firmware

* replace illegally provided bootroms with legal homebrew bootroms

* let's swap these with homebrew bootroms too

* add builds

* this should probably be preferred

* Fix incorrect assignment

* Fix whitespace changes to Designer files

Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2021-07-14 12:48:02 -05:00
nattthebear 913837b904 NESHawk: Fix mapper 88 mirroring
Closes #2847
2021-07-12 21:38:01 -04:00
alyosha-tas 420f72f684 resolve #2845 2021-07-12 10:16:05 -04:00
alyosha-tas 6c5d329573 Make tool tips visible for firmware info 2021-07-09 15:17:06 -04:00
alyosha-tas bf5c73b40c Resolve #2713 2021-07-09 11:55:47 -04:00
alyosha-tas c16acf70e2 NES: fix mapper selection for Saint Seiya and mislabelled mapper 33 games 2021-07-08 15:07:25 -04:00
alyosha-tas bc8280c7b1 SMS: fix null keyboard keys 2021-07-07 21:26:57 -04:00
alyosha-tas bcd47a1ad9 SMS: bring controllers in line with other cores and fix virtual pads 2021-07-07 21:16:56 -04:00
alyosha-tas bed5cc66ab A2600: fix controller selection error 2021-07-07 16:50:32 -04:00
alyosha-tas 946b0e2c01 PSX: maybe fix weird unthrottled behaviour. I didn't realize FrameAdvance had two return paths in octoshock, and missed this one without incrementing Frame when I changed it to the end for the autofire issue. Will audit the rest of the cores as well, but try this in dev build. 2021-07-07 10:24:51 -04:00
alyosha-tas 2d8ea8a989 NESHawk: fix MMC5 IRQ timing, fixes #2036 2021-07-03 20:43:53 -04:00
nattthebear 9488e19d38
Update mednafen cores to 1.27.1 (#2831) 2021-07-03 10:01:04 -04:00
alyosha-tas 01c3b14495 Add Basic Bot menu item image 2021-07-02 10:40:49 -04:00
alyosha-tas 3c26d9eec1 Basic Bot: check for Allow U+D/L+R before starting 2021-07-02 09:10:07 -04:00
alyosha-tas 197e5259c3 Basic Bot: fix 2 empty frame issue 2021-07-02 08:57:10 -04:00
YoshiRulz 46a55d6db4
Use nameof in some Type.GetMethod calls 2021-07-02 16:27:31 +10:00
alyosha-tas a14da86ac0 Fix Basic Bot 2021-07-01 22:06:34 -04:00
nattthebear 2ce269c3e6 Fix bad interaction between rewind+movie+savestates when using delta state rewinder
Closes #2826
2021-07-01 17:37:03 -04:00
YoshiRulz d04724b0d2
Allow non-string resources again 2021-07-01 11:04:32 +10:00
alyosha-tas e0498c06ad NESHawk: Improve DMC emulation 2021-06-30 16:53:15 -04:00
zeromus 858faaeb56 fix terrible looking checkbox that was added to firmwaresconfig toolbar by hand instead of the IDE. actually it's kind of cool that you can jam any kind of controls in there, it gives me hope that you could make better looking toolbars by virtue of their not being styled like the ugly toolbars. but it really needs to be all-or-nothing. 2021-06-30 04:44:09 -04:00
zeromus 0ae2dc774c remove FirmwaresConfig dialog asserts added by d0a6817c1a which don't work 2021-06-30 04:38:01 -04:00
alyosha-tas 1aadfd1edf NESHawk: DMC timing on multiple write ocodes 2021-06-28 14:17:41 -04:00
Asnivor 37a6446996 New ZXS game added to gamedb 2021-06-25 12:06:09 +01:00
alyosha-tas 76c76a8775 NESHawk: Update start up state again, fixes Paperboy 2021-06-24 23:04:26 -04:00
zeromus 0a290fa756 someone added a "Can't find the file specified: cue filename" for when ANY error happened (including when bin files couldn't be found), before the error message which would have said "Can't find the bin file specified by the cue file". probably while doing null-related refactor bullshit because they had to throw some exception instead of adopting a null value. fix that by undoing the null-related refactor bullshit and adopting the value which is known not to be null (to us, if not the nagging linter) after checking for the intended error conditions and throwing if they're set. fixes #2819 (probably) 2021-06-24 19:23:46 -04:00
alyosha-tas 28ff96deb5 NESHawk: update startup state 2021-06-22 12:23:15 -04:00
YoshiRulz 1f0e058ef5
Blindly update <PackageReference/>s 2021-06-21 12:13:42 +10:00
YoshiRulz 27547178a3
Allow MotW remover to fail silently 2021-06-21 11:08:56 +10:00
YoshiRulz 9143f8abcd
Fix broken symlinks in DATParser ext. tool 2021-06-21 11:07:24 +10:00
alyosha-tas cb0c8c0859 NESHawk: add offset to state, change input poll timing to match actual polling 2021-06-19 10:24:17 -04:00
nattthebear 90a12a8e73 Update virtual boy core with a mednafen 1.27.1 fix. 2021-06-19 08:32:50 -04:00
alyosha-tas 02cd2f47f3 NESHawk: update lag definition and add sprite address glitch 2021-06-18 23:08:04 -04:00
alyosha-tas 427d0351af MOS6502: white space cleanup 2021-06-18 23:07:01 -04:00
CasualPokePlayer 8ab4dd245b
[Gambatte] Account for lastCartBusUpdate_ during resetCounters (#2800)
* [Gambatte] Account for lastCartBusUpdate_ during resetCounters

* need DLL too
2021-06-18 10:07:49 -04:00
YoshiRulz 40c53e0c1f
Inline DisplayManager._glManager 2021-06-15 13:52:09 +10:00
alyosha-tas f251492a21 GBHawk: revert innacurate changes to window state, window timing needs to be fixed instead 2021-06-14 22:12:41 -04:00
YoshiRulz 0173e8d514
Fix assembly load exception on startup
lambda, crash, static local method, no crash... got it
2021-06-15 11:35:19 +10:00
YoshiRulz 22144401e2
Move IGL_GdiPlus to BizwareGL 2021-06-15 10:07:22 +10:00
YoshiRulz 5bdeea6c20
Decouple IGL_GdiPlus from GLControlWrapper_GdiPlus 2021-06-15 10:07:22 +10:00
YoshiRulz 673982003a
Move RenderTargetWrapper to BizwareGL 2021-06-15 10:07:22 +10:00
YoshiRulz bf4bac93b9
Decouple RenderTargetWrapper from GDI+ implementations 2021-06-15 10:07:22 +10:00
YoshiRulz 984982cd9b
Move IGL_GdiPlus.RenderTargetWrapper to own file 2021-06-15 10:07:21 +10:00
YoshiRulz 826f9469dc Fix code style issues in ZXHawk 2021-06-15 08:58:52 +10:00
YoshiRulz 8470fcfc72 Disable warnings in copypasta'd code
fixes 160217ef7
2021-06-15 08:58:52 +10:00
CasualPokePlayer ea369408fb
[Gambatte] Open Bus Emulation (#2798)
* [Gambatte] Open Bus Emulation

* Fix regressions

* a
2021-06-14 18:50:43 -04:00
YoshiRulz b8f5050d6c Replace specialised DisplayManager interfaces with DisplayManagerBase 2021-06-15 08:01:47 +10:00
YoshiRulz 798aa9d039 Move DisplayManagerBase to Client.Common 2021-06-15 08:01:47 +10:00
YoshiRulz f59836442d Extract subclass DisplayManager from DisplayManagerBase 2021-06-15 08:01:47 +10:00
YoshiRulz 20f405fe35 Rename DisplayManager to DisplayManagerBase 2021-06-15 08:01:47 +10:00
YoshiRulz af45671eb7 Extract helper method RunFilterChainSteps from UpdateSourceDrawingWork 2021-06-15 08:01:47 +10:00
YoshiRulz 9f7057f09d Misc. cleanup in DisplayManager
added a Deconstruct extension for Size
2021-06-15 08:01:47 +10:00
YoshiRulz 101c04de1b Remove explicit WinForms dep from DisplayManager (Padding struct) 2021-06-15 08:01:47 +10:00
YoshiRulz 6fa34a6257 Move font resources to Client.Common 2021-06-15 08:01:47 +10:00
YoshiRulz 332542c38b Move DisplaySurface to Client.Common 2021-06-15 08:01:47 +10:00
YoshiRulz 90c665f07c
Fix (ehh) release artifact filenames
version (Git tag) needs to be added manually because it doesn't exist when the
Job runs
2021-06-13 00:33:40 +10:00
Matt Burgess d8ccd4017a ZXHawk: Remove left over debug stuff 2021-06-12 10:22:59 +01:00
Matt Burgess 51a67a947a ZXHawk: Overhaul datacorder and cassette loading code. This should now be more accurate and fixes a number of loading isues with particular games and loading schemes. There be desync dragons here!! Fixes #1446 2021-06-11 23:41:14 +01:00
zeromus 160217ef74 Add the first working IsAbsolutePath I could find, copied from .net core. It works for `\\192.168.0.x\public\SMB1.rom` ¯\_(ツ)_/¯
fixes #2787
2021-06-10 12:38:53 -04:00
YoshiRulz 93ca66a243
Fail properly when ext. tools dir is missing (fixes #2787 for real) 2021-06-11 02:09:16 +10:00
YoshiRulz 07fd664485
Set FormBase.Text in its ctor (fixes #2759) 2021-06-11 01:39:33 +10:00
Alan Unger 206314445b Skip DirectInput initialization for device names containing "Xbox One" or "XINPUT" 2021-06-09 06:02:52 +10:00
Alan Unger 2549c3fa04
Fix crash from disconnecting controllers with XInput (squashed PR #2783) 2021-06-09 02:35:35 +10:00
YoshiRulz eaff9274cb
Remove now-unused backing field
fixes e5e187982
2021-06-09 02:01:51 +10:00
YoshiRulz 77bbd6b24e
Clean up ext. tools dir monitoring (resolves #2787) 2021-06-09 01:58:26 +10:00
nattthebear 14fef0f2b5 Revert "GPGX: apply settings each frame, fixes layer viewer not updating properly"
This reverts commit b3fdbe7463.
2021-06-07 17:18:50 -04:00
YoshiRulz b26d215edb
Bump version 2021-06-07 22:17:59 +10:00
Asnivor c3c41f42b5 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2021-06-07 12:28:13 +01:00
Asnivor 12c42c745a DBMan: Remove DATTools (this now lives in it's own external tool) 2021-06-07 12:27:57 +01:00
Asnivor d189790918 DATTool: Fix some designer display issues and add a readme 2021-06-07 12:24:11 +01:00
Asnivor 1bf6aa6ddd ExternalTool: Break out DATTools into new external tool (DBMan ET will no longer load as an external tool because of CSharp-SQLite.dll funny business. AND, DBMan isn't really used anymore) 2021-06-07 11:56:24 +01:00
CasualPokePlayer e5e187982a
SubGambatte (squashed PR #2732) 2021-06-07 19:18:24 +10:00
alyosha-tas b62f4bc6a9 TAStudio: make operation of 'show player #' buttons more intuitive, fixes #2779 2021-06-06 10:00:57 -04:00
YoshiRulz dabd33c5f4
Un-swap fill and stroke in forms.drawRectangle/LuaCanvas.drawRectangle
fixes 0a9d496ec; see #2772
2021-06-06 13:46:29 +10:00
alyosha-tas b3fdbe7463 GPGX: apply settings each frame, fixes layer viewer not updating properly 2021-06-05 21:26:01 -04:00
feos 4d91b59cad
remains of freenode 2021-06-01 15:47:33 +03:00
alyosha-tas 147a5f0e75 Debugger: full update on restart, remove breakpoints before closing 2021-05-31 21:58:01 -04:00
CasualPokePlayer dd12d27149
[Gambatte] Misc Tracelogger Fixes (#2765)
* add HLE CGB-DMG colors for No Bios option

* misc gambatte tracelogger fixes
2021-05-31 10:48:14 -04:00
alyosha-tas 8a09893818 Basic Bot: Add same movie check condition as in Macro tool, fixes #2762 2021-05-30 14:06:08 -04:00
alyosha-tas 733b6c49b0 ToolBox: make icons without instances of tools, I probably missed some but it no longer throws errors at least and works as expected. Fixes #2763 2021-05-30 11:44:16 -04:00
YoshiRulz 2704003429
Dispose of newly-instantiated Forms when populating Tool Box
see #2741, fe6bf7ba1, #2763
2021-05-31 00:53:23 +10:00
YoshiRulz be575c96f0
Update support section of readme (resolves #2753) 2021-05-30 10:41:34 +10:00
CasualPokePlayer 7e06f71afb
add HLE CGB-DMG colors for No Bios option (#2756) 2021-05-29 20:32:20 -04:00
alyosha-tas c1c032a345 Trace Logger: filter out null cases 2021-05-29 17:53:53 -04:00
alyosha-tas 28fe921983 Debugger: prevent crashes when minimizing and other cases, fixes #2760 2021-05-29 11:25:15 -04:00
YoshiRulz 0b0484ee7c
Fix code style warning (by simplifying) 2021-05-28 16:29:21 +10:00
zeromus 17e3e28d06 Fix a bug in PathExtensions IsAbsolute. Fixes #2747
This code should not exist here, anyway. For reasons just like this. Need to find framework method for it.
2021-05-27 16:52:05 -04:00
zeromus d39fa5d3d1 decrypt PathExtensions IsAbsolute and MakeAbsolute 2021-05-27 16:51:31 -04:00
alyosha-tas 7c17f31cdc Gambatte; update trace header 2021-05-27 09:27:58 -04:00
CasualPokePlayer 6432d99feb
[Gambatte] Many Updates (#2742)
* don't put isCGBMode for movies where CgbDmg mode is being used

* various Gambatte accuracy improvements + proper no BIOS support + tracelogger fixes
2021-05-27 08:56:13 -04:00
nattthebear 2c0c6aa0bb rename a bunch of shit because someone has a fetish for RFCs
rust maintains its reputation as a less annoying language to write systems code in than C, but only just barely.

yeets #2750
2021-05-26 16:07:07 -04:00
adelikat c5e6aadb0e update version info 2021-05-25 19:46:27 -05:00
Morilli 38bc953e22 Add a designated payload controller based on the multitapcontroller in the new bsnes core
- also patched out the left/right and up/down handling in the core, where it didn't belong
- also fixed the existing payloadcontroller because it wasn't working at all lol
2021-05-26 02:27:54 +02:00
feos 3c94000d3e mame: bios selection works 2021-05-25 21:14:27 +03:00
alyosha-tas 0b3cd0ec0d GBHawk: Fix some tests 2021-05-25 10:56:28 -04:00
Morilli 359657c29a Add a payload controller for the new bsnes core 2021-05-25 04:27:06 +02:00
YoshiRulz 817701856c
Respect LogKey of loaded movie for playback 2021-05-25 08:50:58 +10:00
YoshiRulz 38a223ffbd
Fix execution order in Bk2Controller constructors 2021-05-25 08:50:58 +10:00
feos aedb7d3972 mame: figure out default bios properly 2021-05-24 23:15:49 +03:00
YoshiRulz cc29c5edc7
s/UDRL/UDLR/ in N64 ControllerDef 2021-05-24 08:39:46 +10:00
feos e6c6c417d5 mame: populate bios menu 2021-05-24 00:49:00 +03:00
feos ebff82b968 mame: dip switches work 2021-05-23 17:31:35 +03:00
Morilli 24c74c0e36 Implement IDebuggable for the new bsnes core 2021-05-23 05:02:05 +02:00
feos a43eaaeee9 mame: sent syncsettings to the core and reboot 2021-05-22 23:03:21 +03:00
feos 512ca30d7e mame: set up the hawk side of syncsettings (dip switches only) 2021-05-22 19:02:45 +03:00
YoshiRulz d71eca3b2d
Implement SerializationStabilityTests.TestRoundTripSerialization 2021-05-22 08:15:31 +10:00
YoshiRulz dd45a3e37c
Exclude get-only props on PathEntryCollection from serialisation 2021-05-22 08:08:04 +10:00
YoshiRulz da649a1bc0
Fix hash comparison in DearchivalTests.TestSharpCompress 2021-05-22 05:59:35 +10:00
YoshiRulz bfdecce195
Rewrite cores table in readme 2021-05-21 12:17:26 +10:00
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
YoshiRulz 5016f6ef1c
Prevent hangs from trying to go backwards w/ client.seekframe 2021-05-03 16:39:23 +10:00
Zach 8b79720b9d
N64 plugin categories (#2729)
* GLideN64 categories

* Remove maximize button from n64 plugins window.

Maximize breaks the anchors for the property grids, and the window is fixed size anyway.

* GlideMk2 categories

* Glide64 categories

* Rice categories

Also fixed typo "WinFrame" -> "Wireframe"
2021-05-02 09:39:13 -05:00
adelikat f83a94954f Tastudio - remove some vestigial code for background worker workarounds that is now causing a broken tastudio when selecting a New from the File menu and saving changes when asked 2021-05-01 11:57:21 -05:00
adelikat 49dc7a2bd3 tastudio - fix an _initializing hack spot 2021-05-01 11:42:27 -05:00
Zinfidel e55b19e990 Fix copy-paste description. 2021-05-01 16:12:44 +10:00
feos a35143539b add utvideo to ffmpeg dumper
speed is 4 times faster than ffv1, size it twice as big (tested on SM64 running at 4K internal res). avisynth is more happy with ut than with ffv1, because for the latter you have to tell it the actual pixel format. great option overall.
2021-04-30 20:09:16 +03:00
YoshiRulz 98d7e30f0d
Use ToolFormBase as superclass in ext. tools (fixing build errors)
see 838f571e0
2021-04-30 00:31:00 +10:00
YoshiRulz 8e7f171ae9
Copy to Assets and output when building wbox cores and host 2021-04-28 16:06:41 +10:00
YoshiRulz 7c1b40df1f Revert "The next time I look at this I want to see waterbox builds actually fucking working again. This means copying to dll as they are now, and not silently being overridden by stale files stored in another folder. This is not my problem to fix because I did not fucking break it."
This reverts commit d8d42b9f81.
2021-04-28 15:35:11 +10:00
nattthebear d8d42b9f81 The next time I look at this I want to see waterbox builds actually fucking working again. This means copying to dll as they are now, and not silently being overridden by stale files stored in another folder. This is not my problem to fix because I did not fucking break it. 2021-04-27 19:37:53 -04:00
zeromus f7fb2ad76f psx - fix oopsies in shock_destroy 2021-04-27 14:56:41 -04:00
zeromus e443e8440c gitignore garbage in assets dir 2021-04-27 14:56:26 -04:00
YoshiRulz 6dbe73d306
Update Cyotek.Drawing.BitmapFont to 2.0.2 (fixes #2716) 2021-04-28 00:51:29 +10:00
zeromus 31d83d0d6e fix crash in PCE debugger by adding peek and poke to the cpu instead of using read/write memory which triggers callbacks. however, the peek and poke are incomplete, as this requires deeper development (in this case, implementation in the memory maps) 2021-04-24 23:20:00 -04:00
adelikat aad592cc1c Tastudio - fix annoying auto-restore bug where it would not set auto-restore position correctly the first time using it after an auto-restore usage earlier in the movie. This might have some regressions, needs testing by people who would know 2021-04-23 18:34:17 -05:00
adelikat 838f571e0b
replace some winforms specific values and ram watch chacks with IToolForm properties. Removes hacks, and some winforms dependencies in tools, and allows for easier implementation of closeable tools (#2719) 2021-04-23 15:41:58 -05:00
nattthebear 2ba5fe338a
add missing menacer keys (#2718)
See eafa39456f and 307d85cee0.
This will add extra keys that do nothing on certain non-menacer light guns, but that never seemed to bother anyone in 1.x.
2021-04-18 10:09:33 -05:00
James Groom 5de101107c
Remove 2-way FirmwaresConfig<=>PathsConfig link (#2698)
* Remove links between PathsConfig and FirmwaresConfig

in the label in FirmwaresConfig, I left the search path and how to change it

* Clean up hacks only needed for FirmwaresConfig<=>PathsConfig links
2021-04-18 10:09:22 -05:00
Moritz Bender 02eb20725a
Fix #2583 (#2699) 2021-04-18 10:06:25 -05:00
CasualPokePlayer 1fe2a12b67
[MovieClock.lua] use cycle based time for Gambatte/SubGBHawk (#2708)
* use cycle based time for Gambatte/SubGBHawk

* non-functional cleanup
2021-04-18 10:05:53 -05:00
CasualPokePlayer b9123453aa
[Gambatte] Slightly fix peeking & fix layer masking (#2712)
* 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
2021-04-18 10:03:44 -05:00
adelikat 82f26ee4ec fix autoloading of ram watch that was broken in the 2.5 releas 2021-04-18 09:54:35 -05:00
nattthebear 9243a6a215 Revert "Add light gun option for Genesis gamepads"
This reverts commit 92241b15cf.
2021-04-18 08:32:43 -04:00
YoshiRulz 771b5397fe
Fix range, def. binds, and Virtual Pad for SEGA Mouse 2021-04-17 12:54:17 +10:00
YoshiRulz 92241b15cf
Add light gun option for Genesis gamepads
seems to work; why do we have our own enum instead of using one of GPGX'?
2021-04-17 12:00:36 +10:00
adelikat 9ff4b904c6 Tastudio - revert double click edit, fix double click navigation to be double click not mouse double click, simplify range checking in said logic 2021-04-16 09:04:16 -05:00
YoshiRulz b7b10e2631
Update Cyotek.Drawing.BitmapFont to 1.3.4
see #2716
2021-04-16 12:49:30 +10:00
adelikat eb4b3a1f82 Tastudio - open edit marker pop up when double clicking a marker 2021-04-15 21:04:29 -05:00
adelikat a95c4f1820 fix TAStudio auto-loading, broken by ec5e88c8 (regression introducted in 2.6) 2021-04-15 20:57:11 -05:00
YoshiRulz 652b38d04c
Check-in ReflectionCache assembly instead of including in build 2021-04-14 10:44:46 +10:00
adelikat b1f2ec77fb default bsnes core to 1 controller (didn't test this since latest master doesn't compile) 2021-04-13 18:14:31 -05:00
nattthebear e6c33e676a Update notes on debugging
We fixed SEH unwinds on callbacks some time ago
2021-04-09 20:59:22 -04:00
YoshiRulz 7ec1008621
Update output path of NymaTypes shell script
fixes 65d5e3f7d
2021-04-10 08:49:07 +10:00
YoshiRulz 65d5e3f7d5
Move NymaTypes to separate project, fiddling w/ project structure 2021-04-09 17:49:07 +10:00
YoshiRulz a9e78488ac
Add remaining cores to CoreNames, manually changing Designer files 2021-04-09 14:14:59 +10:00
YoshiRulz fb1d507220
Clean up use of existing CoreNames consts 2021-04-09 14:14:59 +10:00
YoshiRulz 48bb5c24e6
Refactor MainForm.HandlePlatformMenus 2021-04-09 14:14:58 +10:00
YoshiRulz 553319ec95
Clean up "display name" stupidity
* removed CoreAttribute.DisplayName (using IEmulator.SystemId instead)
* fixed ToolManager checking for "(Experimental) " prefix on names of unreleased
cores in ToolAttribute.UnsupportedCores
* corrected display name of UZE sysID to "Uzebox" (was "uzem")
* disabled auto-generated accelerators (&A -> Alt+A) on "current system" menu in
MainForm menubar because they could conflict with hardcoded ones
2021-04-09 14:14:58 +10:00
YoshiRulz 193e9aa7dc
Put AviWriter and its imports (and usages) behind #if AVI_SUPPORT
for now it's defined even on Linux, try removing it in /src/MainSlnCommon.props
2021-04-08 17:33:46 +10:00
YoshiRulz 262fc72044
Move DisplaySurface and QuickBmpFile to EmuHawk 2021-04-08 16:59:32 +10:00
YoshiRulz 0bfe3cb6ab
Genericise SwappableDisplaySurfaceSet 2021-04-08 16:59:32 +10:00
YoshiRulz 85eedb39fd
Extract interface from DisplaySurface 2021-04-08 16:59:32 +10:00
YoshiRulz bd9ec3c57d
Convert static class QuickBmpFile to (empty) struct with interface 2021-04-08 16:59:32 +10:00
YoshiRulz 1aebbe9cd6
Add QuickBmpFile.LoadAuto helper 2021-04-08 16:59:32 +10:00
YoshiRulz 1f080be047
Extract byte swapping helpers from RomGame, cleanup, and add tests 2021-04-08 16:59:31 +10:00
YoshiRulz 214f024d86
Replace void* param in IGL.BindArrayData w/ IntPtr 2021-04-08 16:59:31 +10:00
YoshiRulz 3db06c4aa9
Remove unsafe keyword where unused or extraneous 2021-04-08 16:59:28 +10:00
YoshiRulz 4d47861296
Cleanup DisplayManager.ClearApiHawkSurfaces 2021-04-08 16:42:27 +10:00
YoshiRulz e25121bb79
Fix typo 2021-04-08 15:29:21 +10:00
YoshiRulz d32f7344ae
Fix RecordMovie having a broken layout on Linux 2021-04-08 09:24:12 +10:00
YoshiRulz 9e609271b9
Correct my claim re: axis bindings in comment and clarify some things 2021-04-05 17:06:50 +10:00
YoshiRulz 5209bc69a1
Fix location and namespace of CorePickerStabilityTests
oops
2021-04-05 17:06:49 +10:00
TiKevin83 90a67b9e22 update libgambatte to fix RTC subsecond tests 2021-04-05 02:53:04 -04:00
YoshiRulz d0a6817c1a
In FirmwareConfig, don't treat known-but-bad as good (resolves #2224) 2021-04-04 15:52:39 +10:00
YoshiRulz 766e2aa14d
In GitLab CI, build BizHawk.Version project separately first
this is a faster "solution" to the problem of first-clone builds failing because
of a missing /src/BizHawk.Common/VersionInfo.gen.cs (the old solution being to
run the build again on failure)
2021-04-04 14:36:54 +10:00
YoshiRulz aab0dd582d
Fix compliance with SA1142 (don't access ValueTuple fields as ItemN) 2021-04-04 14:16:41 +10:00
YoshiRulz 26eaa22be2
Update StyleCop, migrate FxCop to NetAnalyzers (built-in) 2021-04-04 14:15:22 +10:00
YoshiRulz 55bf1d5f56
Reinstate assembly version check
made possible by #2697
2021-04-04 12:41:01 +10:00
YoshiRulz f204f4e367
Use a Source Generator for ReflectionCache classes 2021-04-04 12:41:01 +10:00
YoshiRulz 86dd250a73
Prevent copying BizHawk.Version assembly to output for real 2021-04-04 12:41:01 +10:00
Moritz Bender 2be2d3ad98
Add version metadata to all assemblies when building (squashed PR #2697) 2021-04-04 08:54:55 +10:00
YoshiRulz 84e195659c
Dedup Linux build scripts
inb4 "how is this deduplicating when you added a bunch of code"
2021-04-03 11:47:50 +10:00
YoshiRulz 56916fbbca
Add test to do sanity checking of core picker and default core prefs 2021-04-02 19:53:12 +10:00
YoshiRulz c5802e9154
Only use IReadOnlySet in .NET 5, ICollection for other targets
forgot AppVeyor compiles the test project for .NET Core 3.1
2021-04-02 19:52:51 +10:00
YoshiRulz 71cb9a8805
Add test to prevent adding unserializable types to Config 2021-04-02 17:29:13 +10:00
YoshiRulz 286727eb44
Make collection-typed fields readonly where possible
also I widened them all to the relevant interface

this was done with a naive regex replace, followed by reverting lines until all
the build errors were gone; the regex was something like
s@(public|internal|protected|private) ((?:List|Dictionary)<[^=\n{]+= )@$1
readonly I$2@g
2021-04-02 16:27:40 +10:00
YoshiRulz 5dd7a66120
Cleanup serialisation of test cases in CheatDecoderTests 2021-04-02 16:27:40 +10:00
YoshiRulz 3860199c52
Add ext. methods for calling List<T> methods on collection interfaces 2021-04-02 16:27:36 +10:00
feos 3ff0eb33db update mame to 0.230 2021-04-01 23:19:07 +03:00
YoshiRulz 1ffc0435b3
Remove haptics from ControllerDefinitionMerger (fixes #2690) 2021-04-01 09:22:06 +10:00
YoshiRulz ad1659eb68
Re-add Debug haptics channel to all cores, but only in Debug config 2021-04-01 09:18:16 +10:00
YoshiRulz cb88e98f39
Fix syntax error 2021-04-01 09:15:16 +10:00
CasualPokePlayer d308afa45c
clarify Gambatte sync settings (#2688) 2021-03-31 18:07:54 -05:00
Moritz Bender fc97e096a1
Add initial marker in frame 0 when loading older tasprojs (#2693)
else this would make the first created marker take slot 1 and be uneditable and undeletable, which isn't good
2021-03-31 18:07:22 -05:00
nattthebear b964cf9447 bear minium hacks to hapics to get broken cores working
affected were bsnes, snes9x, and neshawk
2021-03-31 17:50:31 -04:00
Moritz Bender 2a09345a7e
Microsoft and their zip library can get bent 2021-03-31 17:36:09 -04:00
YoshiRulz 53b3dccb12
Fix missing import 2021-03-31 08:36:21 +10:00
nattthebear a91fa2754e clean up names in zipstater
We were using some sort of special malformed non-path seperator character to stand in for the path seperator character in in the lump names, and then compensating for that brokenness when loading lumps.
On save, we were relying in our zip library compensating for the brokenness.
2021-03-30 17:47:50 -04:00
Moritz Bender 6c2b72dd8d
Fix some TAStudio branch view issues (#2686)
* Fix exception, scroll to branch on updating branch and fix #2645
* Make loadbranch hotkey deselect all but one branch
matches updatebranch behavior and fixes part of #2645
2021-03-30 23:33:45 +03:00
feos ca8c7a5427 break mame into subfiles 2021-03-30 23:26:41 +03:00
YoshiRulz 5f125b7cd6
Add commented-out Infer# job to GitLab CI config
https://github.com/microsoft/infersharp doesn't seem to produce any meaningful
output for BizHawk assemblies, will try again when it's fully implemented
2021-03-31 05:30:12 +10:00
Moritz Bender 5743b0257d
Fix #2640 (#2687) 2021-03-30 13:51:28 -05:00
YoshiRulz 6f47492d95
Add haptics support to ControllerDefinition and the Controller stack
still no cores which support it, "Debug" is still hardcoded, still uses holding
Fast Forward hotkey to trigger
no idea how OverrideAdapter, or the IInputAdapters, or the Bk2/BkmController
will work, I've just thrown NotImplementedException from those
2021-03-30 10:06:26 +10:00
YoshiRulz bb3fddcb5f
Allow configuring "keybinds" for haptic feedback (see desc.)
Open `Config` > `Controllers...` with any rom loaded and go to the last tab.
A "Debug" virtual channel is hardcoded, and will be present on every core.
As with the previous commit, holding Fast Forward causes this channel to fire
and it will be passed through to a bound host gamepad.
The prescale slider works. Virtual channels with a player number prefix also
work, but the single "Debug" channel without a prefix is hardcoded.
Caveats: Reopening the config dialog doesn't load the host channel back into the
combobox. It will save to config correctly.
2021-03-29 17:43:31 +10:00
YoshiRulz 6102db0e68
Wire up host haptics, hold Fast Forward key to test
DirectInput works, OpenTK 3 doesn't seem to actually support it even though the
method is present and has documentation -_-
2021-03-29 10:03:55 +10:00
YoshiRulz bdfc54443f
Use props on GamePad/GamePad360 for pad prefixes 2021-03-29 10:03:50 +10:00
zeromus d02863e491 Merge branch 'master' of zeromus-github.com:/tasvideos/bizhawk 2021-03-28 15:24:39 -04:00
zeromus 23c0928107 stop using exceptions for flow control 2021-03-28 15:24:28 -04:00
zeromus 99c8e4e910 I dont think GuiAPI should use the ScreenLogicalOffsets this way. Cores should be using this entirely internally -- either adjusting what they fill the framebuffer with, or communicating further data for how to display a limited section of the framebuffer offset to DisplayManager via IVideoProvider or similar but NOT via this. So why does ScreenLogicalOffsets exist? So that scripts can alter that setting. This is actually NOT A GREAT IDEA if you ask me because the same could be done via general PutSettings APIs. nevertheless, that's what we have. So anyway, I dont think when drawing via script we really need this value inspected. 2021-03-28 15:22:42 -04:00
feos b89f14313e fix syntax 2021-03-28 20:59:12 +03:00
zeromus ac349af9f5 stop using exceptions for flow control 2021-03-28 03:44:52 -04:00
YoshiRulz 927a8970d6
Use a nicer loop syntax in MainForm.ProcessInput 2021-03-28 08:48:00 +10:00
YoshiRulz 77e9197bcc
Encapsulate MainForm.ProcessInput to not use Controllers/InputManager 2021-03-28 08:48:00 +10:00
YoshiRulz 095de11f00
Inline Controller.NormalizeAxes and cleanup 2021-03-28 08:48:00 +10:00
YoshiRulz 04257ec676
Resolve TODO in Controller.NormalizeAxes
_axes and _axisRanges have the same keys, and should probably be one dict,
and _axisBindings has the same keys or a subset
2021-03-28 08:47:57 +10:00
YoshiRulz b6f1afcce8
Enable nullable reference types in BizInvoke 2021-03-26 14:52:56 +10:00
YoshiRulz 23d8417ca8
Convert ParameterLoadInfo to a readonly struct 2021-03-26 14:52:55 +10:00
YoshiRulz d43d8fc38c
Improve encapsulation of InvokerImpl 2021-03-26 14:52:55 +10:00
YoshiRulz a6f1156012
Throw ObjectDisposedException from MemoryBlock methods after disposed 2021-03-26 14:52:55 +10:00
YoshiRulz fabf518c73
Narrow constraint on generic GetDelegateForFunctionPointer ext. method 2021-03-26 14:52:55 +10:00
YoshiRulz cbd875376e
Add and use FirstOrNull ext. method for collections of value types
This reverts commit 5567a42bb1.
2021-03-26 11:26:52 +10:00
zeromus 5567a42bb1 don't depend on exceptions for flow control 2021-03-25 21:13:11 -04:00
YoshiRulz c6dcb71d92
Remove goto from PCESoundDebugger.UpdateAfter 2021-03-26 10:43:20 +10:00
YoshiRulz 5daed21990
Remove goto from FilterProgram.Compile 2021-03-26 10:41:11 +10:00
YoshiRulz ba5a24eaad
Minor changes to readme 2021-03-26 09:58:56 +10:00
YoshiRulz 7eed4c5492
Update building on Windows section (resolves #2679) 2021-03-26 09:31:27 +10:00
YoshiRulz 40a0abc657
Replace Dictionary with List of ValueTuple in ArtManager
it was only used as a List of KeyValuePair anyway
I assume this was written before tuples
2021-03-25 19:31:56 +10:00
YoshiRulz e9ce42bfe0
Remove the other goto from TexAtlas.PackAtlas 2021-03-25 19:20:21 +10:00
YoshiRulz 997df16487
Remove a goto from TexAtlas.PackAtlas 2021-03-25 19:20:21 +10:00
YoshiRulz 89c1406f5a
Minor refactorings in TexAtlas.PackAtlas 2021-03-25 19:20:21 +10:00
YoshiRulz fc30b0bd26
Replace TexAtlas.PackedAtlasResults with List of ValueTuple 2021-03-25 19:20:18 +10:00
YoshiRulz 98c7db0274
Fix typo in TexAtlas.PackAtlas
This has been here since it was added in a2ba761ae. I think it's never caused
problems because the two lists are the same in all cases where the method's
result is used (the single caller, ArtManager.Close, immediately checks the
result of this method and throws if multiple atlases are used).
2021-03-25 18:58:22 +10:00
YoshiRulz 3da01dbfce
Init LuaFileList/LuaFunctionList outside platform impl. and pass in
now init'ing the lists at construction instead of mutating them afterwards
2021-03-25 16:02:22 +10:00
YoshiRulz ddef661eb2
Move attaching of callbacks from LuaConsole_Load to Restart
Y'know, where the thing they're being passed to is created... I don't think them
only being attached once was a problem, as one is also called from elsewhere and
the other is kinda useless
2021-03-25 15:43:20 +10:00
YoshiRulz f7cacfab99
Inline methods from LuaFunctionListExtensions and cleanup 2021-03-25 15:20:47 +10:00
YoshiRulz 3b8f08b1b0
Create and use helper for changing core pref. when importing movies 2021-03-25 15:11:04 +10:00
YoshiRulz 3249ae202e
Pass MainForm as IDialogParent through to movie importers 2021-03-25 15:11:04 +10:00
YoshiRulz 2fad61e4b5
Don't set preferred core for GBA when importing .vbm, there's only one
this wasn't removed when we dropped VBA-Next
2021-03-25 15:11:04 +10:00
zeromus b1602dae06 lua - actually send a comprehensible string over sockets instead of nonsense 2021-03-24 02:51:43 -04:00
James Groom f5d21a8f68
Unification of modal dialogs for errors and such (#2579)
* Pass IDialogParent to IVideoWriter impls via ctor instead of param

* Refactor IDialogController/Parent, moving some of it to Client.Common

tl;dr: MessageBoxButtons.OK => ShowMessageBox/ModalMessageBox,
MessageBoxButtons.YesNo or .OKCancel => ShowMessageBox2/ModalMessageBox2,
MessageBoxButtons.YesNoCancel => ShowMessageBox3/ModalMessageBox3.

Possible breaking change: Cheats had `Owner ?? this` as its "self", which I
think parented any modals it opened to MainForm instead of the Cheats window.
The Cheats window will be their parent now regardless. Other than that, all the
icons and stuff for all the other dialogs should be exactly the same.

* Remove WinForms dep from AV classes where possible

* Cleanup CoreFileProvider init, passing MainForm as IDialogParent

* Pass MainForm as IDialogParent to MovieSession

* Pass IDialogController through to one MovieZone ctor

* Use MessageBox helpers in RecordMovie

* Implement IDialogParent on misc. Forms to use MessageBox helpers

* Use MessageBox helper in misc. config Forms

* Pass IDialogController through to misc. Forms for MessageBox helpers
2021-03-23 19:08:32 -05:00
feos fbfbda65ad update mame lua api 2021-03-22 20:12:18 +03:00
zeromus c252ac2934 blind fix to lua socket receive string which supports embedded nulls and probably fixes rarer cases where long codepoints got broken up. re #2671 2021-03-21 21:28:39 -04:00
YoshiRulz fafa29a2bf
Add Lua function comm.socketServerSendBytes (resolves #2194)
takes a single param of an array-like table, casts each element to byte before
passing to ApiHawk
2021-03-22 08:15:53 +10:00
YoshiRulz 45488f2667
Change encoding for sockets to UTF-8, allow ext. tools to override it 2021-03-22 08:11:42 +10:00
nattthebear f08fdc3859 Fix aspect ratio of intellivision
What the fuck was this?  Someone went to the effort of entering in a value but expended absolutely no effort in checking it?  Oh well.  Fixes #2670.
2021-03-21 09:43:26 -04:00
adelikat 0a643af6df Hex Editor .tbl file loading - clear table before loading a new one, ignore empty lines in file 2021-03-20 22:45:20 -05:00
YoshiRulz 611d1bfaa1
Use UIHelper in FormsLuaLibrary (resolves #2604) 2021-03-21 08:23:31 +10:00
nattthebear 62ddd6495e
Tweak the rewinder. (#2668)
MainForm intentionally frame advances right after rewinding; this is so it can capture a new framebuffer. The old rewinder sort-of understood this, the new one does not.

Tweak the logic so the new rewinder behaves like the old one, but only when the interval is 1. When the interval is greater than 1, don't go farther back than we have to.

No particular behavior is guaranteed when nonlinear time exists (ie, rewinding through manual loadstates).

Fixes #2667.
2021-03-20 12:05:19 -04:00
YoshiRulz 359cb0d17b Fix executable bits on some wbox scripts 2021-03-20 08:11:48 +10:00
YoshiRulz c75ea8efd1 Cleanup libcxx scripts 2021-03-20 08:11:48 +10:00
YoshiRulz 4697c56a3b Pull musl submodule, complete script refactor and update readme 2021-03-20 08:11:48 +10:00
YoshiRulz f0b9e2e828
Make PathEntry sealed, add constructor and use in PathEntryCollection 2021-03-19 10:33:10 +10:00
YoshiRulz 0b5f48aede
Replace some parameter mutation w/ recursion 2021-03-19 10:33:10 +10:00
TiKevin83 585ed99cdd update gambatte-speedrun GBA modeswitch timing and testROM accuracy 2021-03-18 19:31:06 -04:00
YoshiRulz c53732c80c
Remove buttons from HelloWorld ext. tool which used GetInput/SetInput
fixes c11d410fb; I'm sure I could have rewritten these to use IJoypad but, like
the rest of this tool, it didn't seem like a great example
2021-03-19 07:51:13 +10:00
YoshiRulz c5e84ff02e Create new project Bizware.OpenTK3 from Bizware.BizwareGL and EmuHawk 2021-03-19 07:32:29 +10:00
YoshiRulz b1af3b1940 Move interface IBlendState to own file 2021-03-19 07:32:29 +10:00
YoshiRulz f36fc654ca Copy vector and matrix structs from OpenTK and cleanup
I managed to trim the > 5000 LOC of the original 4 files down to 400 LOC \o/
2021-03-19 07:32:29 +10:00
YoshiRulz 337b054042 "Inline" some vector and matrix operations 2021-03-19 07:32:29 +10:00
YoshiRulz 3dd03495e2 Copy enums from OpenTK 2021-03-19 07:32:29 +10:00
YoshiRulz 4a0e343c37 Copy DegreesToRadians method from OpenTK.MathHelper 2021-03-19 07:32:29 +10:00
YoshiRulz 7ff70de159 Split IGL.TexParameter2d into two methods 2021-03-19 07:32:29 +10:00
YoshiRulz 6fc43e9c22 Remove unused class BizwareGLExtensions 2021-03-19 07:32:29 +10:00
nattthebear 90d0e21863
Probably fix SNES core crash on load with CDL enabled, or formerly enabled. (#2662) 2021-03-12 23:33:59 +03:00
James Groom 43ba7f94dc
Fix SMSHawk's system ID (#2650) 2021-03-09 19:18:25 -06:00
YoshiRulz d524da3530
s/null/nil/ in all included Lua scripts 2021-03-07 22:19:40 +10:00
zeromus 6f04ff6252 partly fix #2656, I guess. This was a shortcoming in the architecture that allowed the joypad API developers to make a mistake. There will be other fallout from that, but this is the minimal fix. 2021-03-06 19:57:49 -05:00
YoshiRulz 3fb35b1599
Re-add enable/disable behaviour to background input config checkboxes
erroneously removed in 74ba28146 CBB linking the whole commit and revert history
2021-03-05 03:09:29 +10:00
YoshiRulz c28de357a2
Add comments for SAST to GitLab CI config
would use https://security-code-scan.github.io but currently there's no way to
limit it to one .sln so it tries to build cores and breaks
2021-03-04 21:42:37 +10:00
YoshiRulz 513dbcfe5c
Fix compilation of DBMan ext. tool 2021-03-04 20:14:59 +10:00
YoshiRulz 6afb3be98c
Rewrite some expressions to avoid type checker edge cases 2021-03-04 20:11:18 +10:00
TiKevin83 28241e3042 fix autodetection of console mode 2021-03-04 02:04:45 -05:00
TiKevin83 b2893d24c6 Update Gambatte to fix RTC issues and output location of the DLL in the assets folder 2021-03-04 02:04:45 -05:00
TiKevin83 9ca1b86316 Update gambatte to support the wisdom tree mapper and fix upstream reference and links 2021-03-04 02:04:45 -05:00
YoshiRulz 2affc5bca7
Remove .\ and ..\ from PathConfig autocomplete
-_- this has been annoying me since I started contributing and I only just
learned the cause was in our codebase
2021-02-26 20:13:24 +10:00
YoshiRulz e7512e57a0
Use global lookup for display names in path config 2021-02-26 20:07:34 +10:00
YoshiRulz 0e4e9a2840
Refactor PathConfig.DoTabs and helpers 2021-02-26 20:07:34 +10:00
YoshiRulz b14ed4966f
Cleanup PathEntryCollection ctors, remove unused method Add 2021-02-26 20:07:34 +10:00
YoshiRulz 0fb9ef77e6
Less dumb #if DEBUG for ZX submenu 2021-02-25 16:59:46 +10:00
YoshiRulz fece6cf7c4
Cleanup system IDs (see desc.)
* `Game Gear` was used instead of `GGL` for linked GG multi-disk bundles and
core constructor (I assume the latter was a hack to fix loading bundles made
with the former bug in effect)
* `Arcade` was used instead of `MAME` in rom loading ("Arcade" is also assigned
to an out param in the MAME ctor but I assume that's an intentional placeholder)
* `Saturn` was used instead of `SAT` in `GameSharkDecoder.CheatDomainName`,
making it non-functional (a comment said it was probably incorrect, so I'm
assuming that if it runs something will break and putting it in #if false)
* `G7400` was only used in firmware IDs, replaced with `O2`
* `Vectrex` was only used in firmware IDs, replaced with `VEC`
* `uzem` (core name) was used instead of `UZE` for MainForm title lookup, making
it non-functional
* `DNGP` doesn't exist
2021-02-25 16:45:55 +10:00
YoshiRulz c11d410fb7
Remove IEmuClientApi.Get/SetInput and supporting types, and cleanup
what's a deprecation cycle
also -1k LOC whoo
2021-02-25 16:13:41 +10:00
YoshiRulz ef0b380192
Autolock hack is nothing without autounlock hack 2021-02-24 11:12:27 +10:00
YoshiRulz 2859d6c45b
Inline the autolock hack and use it for both surfaces 2021-02-24 10:41:28 +10:00
YoshiRulz cc7e440fba
Cleanup usage of Config.PreferredPlatformsForExtensions 2021-02-23 05:37:50 +10:00
YoshiRulz 4103a8bab2
Cleanup usages of FirmwareID fields 2021-02-23 02:20:27 +10:00
YoshiRulz eee4915ddd
Add missing UI strings for firmware group headers 2021-02-23 01:51:47 +10:00
YoshiRulz 485817a8e4
Replace (string, string) w/ FirmwareID in nyma core ctors 2021-02-23 01:09:25 +10:00
nattthebear cec46f1e65 Grumble grumble I need to learn more C# 2021-02-22 08:17:41 -05:00
YoshiRulz d0c0b1fdb3
Bump version for dev builds 2021-02-22 21:18:24 +10:00
adelikat bd31773d9e Update version info 2021-02-21 15:22:17 -06:00
adelikat d4dc260fc4 Tastudio - refresh view when middle-clicking to pause 2021-02-21 15:14:57 -06:00
YoshiRulz a8b1e06e44
Make autolocking of ApiHawk surface less aggressive when used via Lua 2021-02-22 04:26:05 +10:00
nattthebear d929891c97 Something something mapper 90 out of bounds
Closes #2632
2021-02-21 09:24:02 -05:00
nattthebear 13b7b43db6
Fix corruption in ZWinderBuffer when using Stream.ReadByte / Stream.WriteByte overloads (#2630)
The ZWinderBuffer implementations of Stream.ReadByte and Stream.WriteByte could process data incorrectly in certain circumstances.  This had been broken since f4e98fd.

ReadByte: When the first read from a state stream was a ReadByte, the underlying buffer would be in the wrong place
WriteByte: If a state was evicted and then the eviction was immediately followed by a WriteByte, the underlying buffer would be in the wrong place.

This impacts pretty heavily the rewinder and tasstatemanager for any core whose save and/or loadstate methods happened to use those methods.
2021-02-20 12:21:56 -05:00
YoshiRulz 7923b4c8ef
Apply refactorings to HelloWorld ext. tool so it can compile
fixes ba88712b2
2021-02-19 19:03:01 +10:00
zeromus 6b6637fbea improve xinput availability check which was broken by pointless refactors in 580aa2eaf9 (but it should be even more robust than before, now). fixes #23 2021-02-18 21:52:30 -05:00
YoshiRulz 1fd888dcc9
Fix naming of GDIPlusGuiRenderer 2021-02-14 15:30:45 +10:00
YoshiRulz ba88712b2b
Rename BizHawk.Client.Common.DisplayType to WatchDisplayType
we have aonther type with that identifier, BizHawk.Emulation.Common.DisplayType
2021-02-14 14:48:12 +10:00
YoshiRulz 34cb598fe2
Rename AttributeUsage enum to AttribUsage
as to not shadow [AttributeUsage]
2021-02-13 23:11:52 +10:00
YoshiRulz dc3bd050da
Cleanup FirmwareManager 2021-02-12 17:10:21 +10:00
YoshiRulz 2f18c74840
Convert RealFirmwareFile to readonly struct 2021-02-12 17:07:43 +10:00
YoshiRulz 3a3cb0c30b
Convert FirmwareEventArgs to a readonly struct 2021-02-12 17:07:43 +10:00
YoshiRulz 5fa2c0ff26
Enable nullability for ResolutionInfo.cs 2021-02-12 17:07:43 +10:00
YoshiRulz a41fc1f1ce
Convert FirmwareRecord to a readonly struct 2021-02-12 17:07:43 +10:00
YoshiRulz 2e52827bc1
Convert FirmwareOption to a readonly struct 2021-02-12 17:07:42 +10:00
YoshiRulz af7ed156e9
Convert FirmwareFile to a readonly struct 2021-02-12 17:07:42 +10:00
YoshiRulz 10ed0872a4
Add and use FirmwareID struct
decided not to propogate to cores yet, left TODOs in Emulation.Common.Extensions
2021-02-12 17:07:42 +10:00
YoshiRulz 35f317a887
Split inner classes of FirmwareDatabase to own files 2021-02-12 15:52:45 +10:00
YoshiRulz dd0fc1b0b3
Move FirmwareManager to new subdir, split inner classes to own files 2021-02-12 15:48:01 +10:00
YoshiRulz b4be750427
Use direct casts for Control.Tag of known type in FirmwaresConfig 2021-02-12 15:44:36 +10:00
YoshiRulz 05676234ed
Move remaining assets from /output to /Assets 2021-02-12 14:08:17 +10:00
YoshiRulz dbe2cd4cde
Cleanup <Reference/>s of NLua (and System.Data.SQLite) 2021-02-12 13:59:40 +10:00
YoshiRulz f8ba7ece7d
Have ControllerConfig not break when resized (resolves #2611) 2021-02-12 13:31:16 +10:00
zeromus 7f14991442 remove list of games in comments from that mapper. they were apparently all wrong; I have seen more updated data in nesdevwiki 2021-02-09 23:03:54 -05:00
zeromus 8254982003 neshawk: fix namco340 mapper's mirroring registers; fixes #2584 (wagyan land 2)
note: the nesdevwiki docs were a bit scrambled due to history. I found corroboration for my testing and updated the docs while fixing neshawk
2021-02-09 22:58:22 -05:00
YoshiRulz f2ff5ea4ee
Move FirmwareDatabase helpers into ctor, prevent mutating collections 2021-02-08 13:19:23 +10:00
YoshiRulz b2b5647e83
Use Option helper in FirmwareAndOption, then inline _OptionWork 2021-02-08 12:56:41 +10:00
YoshiRulz 144a8aafd0
Cleanup FirmwareDatabase init helpers
using the result of File in FirmwareAndOption is setting up for the next commit
2021-02-08 12:56:41 +10:00
YoshiRulz 6716c3fd8f
Inline FirmwareDatabase.LookupFirmwareRecord 2021-02-08 12:56:41 +10:00
YoshiRulz 33a788d74b
Don't populate 2 lists with the same data, move assertion to unit test 2021-02-08 12:56:41 +10:00
YoshiRulz 6db638236e
Hardcode uppercasing of firmware hashes, assert on format in unit test 2021-02-08 12:56:40 +10:00
YoshiRulz 4800fef65e
Cleanup dumb LINQ in FirmwareManager 2021-02-08 12:56:40 +10:00
YoshiRulz 7e2437b396
Typo fixes and other minor cleanups to FirmwareDatabase data
* fix desc+info of bad PSX BIOSes
* set FirmwareFile.Bad via param on File method
* use #if false instead of comment for what I assume is a debug BIOS for A7800
    * I think a single '!' boi will make that one take precedence
* remove duplicate NDS BIOSes which were commented-out
2021-02-07 23:22:19 +10:00
YoshiRulz b9e784e153
Replace broken hack with hardcoded data 2021-02-06 20:31:36 +10:00
YoshiRulz 643d7b12dd
Lock/unlock Lua drawing surface for event callbacks (fixes #2595) 2021-02-05 10:52:13 +10:00
YoshiRulz 9d1eaa6475
Prevent trying to use DirectInput on Linux (resolves #2607) 2021-02-05 07:06:17 +10:00
YoshiRulz 2b72eabdf9
Skip platform tests in CI 2021-02-03 12:38:47 +10:00
YoshiRulz fb03771bb7
Simplify tests for GetRelativePath and MakeRelativeTo 2021-01-31 11:17:17 +10:00
YoshiRulz 68659055cb
Add Unix implementation matching docs for GetRelativePath, add tests 2021-01-31 10:54:42 +10:00
YoshiRulz f26ba1dca5
Add tests for most of PathExtensions 2021-01-31 10:16:17 +10:00
YoshiRulz 6858a36552
Fix Unix implementation of GetRelativePath; expand on docs 2021-01-31 10:16:13 +10:00
YoshiRulz 20b93d4690
Fix Windows implementation of IsSubfolderOf 2021-01-31 10:16:08 +10:00
YoshiRulz 7763d7a1cd
Fix Unix implementation of IsSubfolderOf 2021-01-31 10:16:03 +10:00
YoshiRulz ec80d0fb1d
Add prop OSTailoredCode.IsWSL 2021-01-31 10:15:58 +10:00
YoshiRulz cb6f435f9a
Refactor Lua forms.setproperty
see #2602
2021-01-31 09:39:15 +10:00
YoshiRulz 7a91e54b7b
Set DialogResult in AutofireConfig
see #2599
2021-01-31 09:39:00 +10:00
YoshiRulz 4da8a85f8c
Fix missing access modifiers and misc. code style 2021-01-31 09:36:40 +10:00
zeromus f76f3d7eed add note about how limited the single instance commandline is 2021-01-27 04:28:14 -05:00
zeromus e57f4427b3 Revert "Grey-out checkbox for single-instance mode in Config > Customize..."
This reverts commit 496d6e0f94.
2021-01-27 04:26:04 -05:00
zeromus 2d847df848 nobody left a note about why this is needed for five years, so I decided it wasn't needed. It was added with fd6ac896 and seems to be related to the log console, which seems to work fine without it 2021-01-27 04:25:04 -05:00
zeromus d7ea21d0b6 redo single instance mode from scratch (fixes #2594) 2021-01-27 04:24:51 -05:00
YoshiRulz 489eaf8574
Misc. readme changes 2021-01-27 14:54:10 +10:00
YoshiRulz be2360650f
Elaborate on CLI arguments 2021-01-27 14:53:47 +10:00
YoshiRulz 47a9e35ea4
Remove VB.NET from readme
oops I fixed this last release
2021-01-27 13:30:36 +10:00
YoshiRulz 4f1b240065
Temporary fix for GetRelativePath arguments until I can debug
see f79b7e5be, db74bd842
2021-01-26 12:48:30 +10:00
alyosha-tas db74bd8426 revert f79b7e5 , fixes multi disk bundler. This works on Windows, maybe linux needs a different implementation, but GetRelativePath appears tailored to Windows and had been working fine the original way. 2021-01-25 18:09:25 -05:00
alyosha-tas a759e26265 genesis vdp viewer, fix copy paste error, fixes #2596 2021-01-24 19:12:34 -05:00
YoshiRulz 44f5ac9924
Fix compilation of HelloWorld ext. tool
forgot to update this with db7150642
2021-01-25 06:12:49 +10:00
YoshiRulz 416e9ffbb3
Fix code style (import order) 2021-01-25 06:07:39 +10:00
nattthebear adca19c30a
Remove icsharp (#2590)
Since .NET 4.5, there's been a good framework alternative, and it gets lots of eyes on it.  I've heard that it's quite fast in .NET Core too.
2021-01-23 09:14:51 -05:00
YoshiRulz e24709f8fb
Remove redundant attr class VideoWriterIgnoreAttribute 2021-01-23 17:12:31 +10:00
YoshiRulz a149b7e033
Cleanup instantiation of FFmpegDownloaderForm and FFmpegService 2021-01-23 17:01:54 +10:00
YoshiRulz 73a780674d
Add tests for decompressing/extracting archives 2021-01-22 08:22:58 +10:00
YoshiRulz acc187008f
Fill out SharpCompress archive file ext. list, adding .tar
SharpCompress claims to support .tar.bz2, .tar.gz, and .tar.lz, but I couldn't
get them to work. Left them in for later
2021-01-22 08:20:04 +10:00
YoshiRulz 0f21944755
Fix NRE when enumerating archive members to HawkArchiveFileItems
SharpCompress does this for .tar.gz it seems
2021-01-22 08:18:57 +10:00
YoshiRulz 0fd7154eec
Fix false positives, non-.tar flagged as .tar, from SharpCompress
Technically, the magic bytes are only found in modern revisions of the format,
but I'd say >99.9% of .tar archives we'll encounter are made with either
libarchive's bsdtar or GNU Tar.
2021-01-22 08:08:07 +10:00
YoshiRulz b4445c6f8f
Make SharpCompressArchiveFile throw on double Dispose 2021-01-21 22:54:34 +10:00
nattthebear dbe0229810
Use SharpZipLib for lsmv import instead of hawkfile (#2589)
Use the same library and ideas that savestate and movie loading use.
2021-01-21 07:50:50 -05:00
YoshiRulz 99d027cc63
Fix code style in dearchiver impl 2021-01-21 20:55:07 +10:00
nattthebear d3917de1b3 Make sound work correctly during clock throttle mode
Fixes #2580
2021-01-20 19:57:48 -05:00
zeromus 3c10a64fd5 re-enable .gz, apparently it works after all if you feed it a file that's actually a .nes.gz etc. 2021-01-20 15:51:02 -05:00
zeromus 6cc4b0e28f SharpCompressArchiveFile: fix support for solid rar 2021-01-20 15:22:03 -05:00
zeromus c5d908cc69 HawkFile: limit attempts to dearchive to files with extension .zip, .7z, .rar. fixes #2587 2021-01-20 15:20:55 -05:00
TiKevin83 95e1d5b956
Rename Alternate Sync (#2586)
* Rename Alternate Sync to describe what is alternate about it
* Add tooltip explaining Sync to Audio
2021-01-20 12:24:54 +03:00
YoshiRulz 1ccac956d8
Rearrange statements, preserving execution order 2021-01-20 16:34:25 +10:00
YoshiRulz 55e066a0cc
Use a consistent format for file extensions throughout HawkFile
also cleanup `Bind*` overloads
2021-01-20 16:31:09 +10:00
adelikat bf5833a1bf vecrex - report 50fps in play movie dialog 2021-01-18 17:24:16 -06:00
YoshiRulz 496d6e0f94
Grey-out checkbox for single-instance mode in Config > Customize... 2021-01-19 02:46:05 +10:00
YoshiRulz 6cffc9a7cd
Add core name and system readout to Emulation menu 2021-01-19 02:27:03 +10:00
YoshiRulz a0ebb2f551
Ensure surfaces are unlocked when disposing of GuiApi
actually properly fixes #2571 for real this time
2021-01-19 01:14:49 +10:00
YoshiRulz bba4286123
Dispose of disposable ApiHawk libs when reinitialising 2021-01-19 01:12:50 +10:00
YoshiRulz 5c89d0cb15
Cache ApiContainer instead of GuiApi in Win32LuaLibraries 2021-01-19 01:09:52 +10:00
YoshiRulz 253a24edd6
Pass tool.Config.PathEntryCollection instead of the whole tool 2021-01-18 14:49:31 +10:00
YoshiRulz 7acc9a0170
Omit EmuHawkMono.sh from builds for Windows, rename artifacts 2021-01-18 09:51:47 +10:00
YoshiRulz ef76d8510e
Cleanup project files 2021-01-18 09:26:51 +10:00
YoshiRulz 8331ac799b
Update default hotkey bindings to use new names (fixes #2576)
fixes e2ac1aca8
2021-01-18 09:06:04 +10:00
YoshiRulz fa07dc898f
Remove single-instance feature (keeping config and UI) 2021-01-18 08:55:54 +10:00
feos ba3c2b275f move mgba to submodules folder 2021-01-18 00:29:38 +03:00
feos 2a9613c41e prepare mgba submodule move 2021-01-18 00:29:38 +03:00
adelikat 76b4ef6016 fix year in release date, doesn't matter for releases but dev builds might as well be accurate 2021-01-17 11:57:29 -06:00
James Groom 7749d02382
Refactor DisplaySurface locking as used by ApiHawk (and Lua) (#2575)
* Refactor how the "emu" drawing surface is automatically opened/closed

fixes #2571 again
`gui.DrawNew("native")` now throws (I will replace this with something better).
`gui.DrawNew("emu")` and `gui.DrawFinish()` do nothing but print warning
messages, for backwards compatibility. This removes the feature which allowed
scripts to draw as soon as they became enabled. It also removes the feature to
draw without clearing the surface, though that wasn't working.

* Reimplement drawing to "client" surface (see desc.)

Changed surface names in APIs to "emucore" and "client" (not in DisplayManager
yet because I can't be bothered).
Via ApiHawk, `IGuiApi.WithEmuSurface(Action)` has been replaced with
`IGuiApi.WithSurface(DrawingSurfaceID, Action)`, the first param being an enum.
Via Lua (or ApiHawk), pass an extra string param (`DrawingSurfaceID` enum for
ApiHawk) to each `gui.draw*` call.
To make it less verbose, omitting the param is treated as using the default
"emucore" surface, *unless* the helper `gui.use_surface("client")` had been
called, which persists the chosen surface until Lua restarts or it's
overwritten. (The same is done when using `WithSurface` in ApiHawk, though it's
cleared once `WithSurface` returns.)
Along with the new surface names, the old names are still valid in the `surface`
params and `gui.use_surface` for now.

* Propogate enum to DisplayManager, s/Lua/ApiHawk/ in DisplayManager
2021-01-17 11:16:48 -06:00
adelikat 58d24cd899 update release version and date 2021-01-17 10:44:21 -06:00
nattthebear 070cc59dbf NES: Fix battery backup in certain bootgod identified games
If the wram with the battery backup on it is internal to the mapper asic, and not a separate ram chip, bootgod will have <chip battery=1> and not <wram battery=1>.  Fixes #2570.
2021-01-17 09:06:33 -05:00
YoshiRulz b8a0720121
Remove old ext. tool attributes and the code using them
it just detected old tools and displayed a specialised error message
2021-01-17 23:44:34 +10:00
YoshiRulz db7150642a
Remove ClientApi, deprecated in favour of IEmuClientApi 2021-01-17 23:35:05 +10:00
YoshiRulz 476eafc66f
Slightly change wording on prereq checker error message 2021-01-17 23:32:20 +10:00
YoshiRulz 28ff2231f2
Update mGBA Linux binary
Windows binary rebuilt in 78931e025
taken from https://gitlab.com/TASVideos/BizHawk-ports-CI/-/jobs/968003727
2021-01-17 23:31:12 +10:00
YoshiRulz 742f182c32
Remove unnecessary clearing of dict entries in joypad Lua lib
this was done long enough ago (78d8effcf) that I'm going to assume it was a
workaround for a problem which has since been fixed
2021-01-17 23:16:30 +10:00
feos 78931e0256 update mgba to latest upstream master 2021-01-17 11:45:11 +03:00
adelikat 187cf46670 Revert "Repair the mental damage with ZwinderStateManager having a method called HasState that doesn't actually tell you whether it has a state"
This reverts commit 7204eeb533.
2021-01-16 18:48:19 -06:00
nattthebear 7204eeb533 Repair the mental damage with ZwinderStateManager having a method called HasState that doesn't actually tell you whether it has a state
Reverts commit 4a58ff2a0c and instead updates ZwinderStateManager to use what apparently is the correct (?) way to tell whether a state is had.
2021-01-16 19:26:06 -05:00
SuuperW c218cf302f MelonDS: fix system bus reporting itself as big endian when it isn't (and 4-byte read/write methods) 2021-01-16 13:59:31 -06:00
adelikat de0d0d19e2 Revert "Remove GuiLibrary from Win32LuaLibraries (fixes #2571)"
This reverts commit 9cca7c4a31.
2021-01-16 13:15:27 -06:00
adelikat 4a58ff2a0c Tastudio - rework StateHistory integrity check to not use HasState() removing any possibility of a cache mismatch causing a false positive of a bad savestate 2021-01-16 13:15:02 -06:00
YoshiRulz 9cca7c4a31
Remove GuiLibrary from Win32LuaLibraries (fixes #2571)
Wrapping draw calls in DrawNew/DrawFinish is the responsibility of the script
author. This removes the feature which allowed scripts to draw as soon as they
became enabled. see also #2501 (still broken)
2021-01-17 04:25:45 +10:00
adelikat c28a12a410 fix previous commit, new up a new state manager, also pop up a message to the user. Anyone can feel free to improve the error message 2021-01-16 11:12:20 -06:00
adelikat 2f6bbd155f add natt suggestion of a try/catch attempts to load tasproj greenzone, puts a big ol piece of duct tape on the real problem but at least users can continue to use their file, fixes #2479 about as well as we can since we have no info as to how the greenzone got corrupted in the first place 2021-01-16 11:00:30 -06:00
SuuperW 97e4d42b7b TAStudio macros: fix regression from commit 5bbdf2a caused by bad order of operations (remove ?? operator entirely since we have already checked that the values exist) 2021-01-16 10:10:34 -06:00
SuuperW dda09dd713 MovieZone: refactor constructors, reducing duplicate code (fixes regression from commit aa80c3a) 2021-01-16 10:10:34 -06:00
SuuperW 2834f8aa39 TAStudio:
-Dis/enable recent macros menu along with other macro menu items.
-Remove redundant code from commit 350724a, make use of existing method.
-Fix regressions from commits 0d72cd9 and cb912be in said method.
2021-01-16 10:10:34 -06:00
SuuperW 4d06fb1fde TAStudio: don't rely on a broken instance of a tool form for macro saving/loading 2021-01-16 10:10:34 -06:00
alyosha-tas 5641757b98 Bounds check index on background color check, fixes #2572 2021-01-16 09:26:33 -05:00
SuuperW 26fb9b9694 InputRoll: fix comparing of cells with null column names 2021-01-15 17:47:57 -06:00
SuuperW 764f4ad81e InputRoll: fix right-click cell selection (use OnMouseMove instead of a separate logic that was being used purely because MouseMove wasn't being triggered, display the new selection so the user knows what's up, invoke SelectedIndexChanged event) 2021-01-15 17:42:49 -06:00
YoshiRulz 3ccd10bb36
Add missing access modifier 2021-01-16 07:35:55 +10:00
SuuperW f2747b31b0
add an option to capture the Lua without capturing the full OSD, when… (#2527)
* add an option to capture the Lua without capturing the full OSD, when recording an AVI

* revert designer changes from commit 146022c not related to the new CaptureLuaMenuItem

* improve code readability
2021-01-15 15:03:46 -06:00
SuuperW 889d3262b1
Input roll scrolling (#2528)
* Change the BranchView's ScrollSpeed property to 1. The MarkerControl's is 1, and I assume that ScrollSpeed used to be pixel-based and the value of 13 is an accidental left-over.

* Standard behavior for scroll bars across a majority of other applications is for the up/down buttons to scroll 1 unit at a time while wheel may scroll multiple units at a time. So, do this. (Previous behavior was that both methods of scrolling would scroll by the same amount.)
2021-01-15 15:03:18 -06:00
SuuperW b3e69782dd
Drive states2 (#2542)
* Expose new backing store type functionality for ZwinderBuffer.

* implement drive states for reserved states

* Include version numbers in Zwinder custom file formats, and for newer files rely on the separately loaded settings. With this, TempFile store types are supported when saving/loading.
2021-01-15 15:02:00 -06:00
SuuperW 6c5447f5da
ZwinderStateManager: Use the gap buffer for forced capture to avoid crowding the "current" buffer and thus reducing it's actual span of covered frames. (#2569)
also remove a redundant conditional
2021-01-15 14:54:47 -06:00
SuuperW 961e7f2808 move this piece of init code; fixes: opening TAStudio after starting a .tasproj would fail 2021-01-15 11:52:04 -06:00
SuuperW 302cda6d17 ZwinderStateManager: don't erase states that should be reserved! 2021-01-15 11:36:35 -06:00
SuuperW 69af966a2d TAStudio undo history form: make use of TAStudio methods, so that rewinds necessary to stay inside the greenzone happen. (also refresh after "to here" un/redo) 2021-01-15 11:16:23 -06:00
SuuperW b6d77586af Do not attempt to remove what isn't there. (fixes: removing a marker before a state was reserved would throw an exception.) 2021-01-15 09:38:08 -06:00
nattthebear 6424e35c6a Revert "Replace unnecessary init props w/ ctors, remove hack for init props"
This reverts commit af8a330422.

I like the `init;` feature in modern C# and see it as an improvement on constructor parameters for initializing immutable "data" classes.  Feel free to disagree in code you maintain.
2021-01-15 08:47:09 -05:00
YoshiRulz dd39e95be6
Fix passing the wrong string as param for Bk2LogEntryGenerator ctor
fixes 0d2f01462, see #2567
not sure if the fallback in LogGeneratorInstance is a good idea but it works
2021-01-15 22:44:39 +10:00
YoshiRulz 85f24ca486
Remove file extension check from SharpCompressDearchivalMethod
caused .lsmv to not be recognised (it's .zip), wasn't strictly necessary anyway
2021-01-15 22:14:43 +10:00
YoshiRulz af8a330422
Replace unnecessary init props w/ ctors, remove hack for init props 2021-01-15 21:39:43 +10:00
alyosha-tas 7f0947108c Fix importing DSM files, fixes #2114 2021-01-14 21:32:47 -05:00
nattthebear 7a5408995e sameboy: a bit more cleanup with the printer callback 2021-01-14 19:24:06 -05:00
nattthebear 6981dc781b Make a few small GBHawk cleanups I forgot from the other commit
No need to preemptively LockGPU before calling a scanline callback, that all Just Werkz now.
2021-01-14 19:20:20 -05:00
nattthebear 0b432994df
Rework GB GPU memory areas API (#2566)
* Rework GB GPU memory areas API

All cores can easily implement it now with no copying or awkward garbage.  Also fix the scanline callback and printer callback in Sameboy, which had been broken for some time.

Fixes #2564
2021-01-14 19:17:40 -05:00
YoshiRulz e71506ac6a
Refactor OpenTK gamepad management (the static stuff)
maybe fixes #2429
2021-01-15 05:39:24 +10:00
YoshiRulz d2fb794340
Pass forced core through other paths in RomLoader
fixes c0b6bf61b; not sure if this matters currently (PCE-CD maybe?) but it may
become important if we add more alternate cores
2021-01-15 04:33:14 +10:00
alyosha-tas e65e77e7cd GB GPU Viewer: Bounds check tile drawing for OBJ window, seems to resolve random crashing 2021-01-14 09:50:46 -05:00
YoshiRulz c0b6bf61b1
Pass through queued movie's Core header to RomLoader and load only it 2021-01-14 03:52:32 +10:00
alyosha-tas 428e2fe006 GBHawk: Onl save audio cycles in SubGBHawk where it's needed, fixes state integrity checker in TAStudio 2021-01-13 09:11:40 -05:00
alyosha-tas 72e8fa031e
Fix for state gap when frame advancing and painting input (#2563)
* Fix for state gap when frame advancing and painting input

* simplify
2021-01-12 20:32:44 -06:00
nattthebear 39c0011d09 Move around some error messages
See #2561.  From the point of view of romloader, this is all pretty simple:  It asks for a particular settings type.  It should either get null back (indicating there was nothing, use defaults), or an object of that type.  Providing a completely unrelated type is baloney.  So this check here is a stupid defensive check that shouldn't be needed.  MainForm cannot be trusted.
2021-01-12 09:32:58 -05:00
YoshiRulz 733862b070
Update note re: SDK requirement 2021-01-12 22:25:48 +10:00
alyosha-tas 47c98c6a5e GBHawk: fix debugger disassembler 2021-01-10 14:02:01 -05:00
zeromus 5529b8787c update libgambatte to have fix for CDL 1st opcode byte. fixes #2551 2021-01-10 12:37:22 -05:00
YoshiRulz f79b7e5be4
Fix order of arguments to GetRelativePath
These have been backwards since the feature was added (5f2e2f39b). Does the
Windows implementation of GetRelativePath not return weird results?
2021-01-10 22:43:40 +10:00
YoshiRulz ea0d6b04d8
Fix code style 2021-01-10 19:30:18 +10:00
alyosha-tas bcee6d4d39 Fix syncless recorder 2021-01-09 22:20:16 -05:00
alyosha-tas a67d01f04d Update cheat inde on button press: Fixes #2550 2021-01-09 20:05:10 -05:00
nattthebear 75a655fdd8 Fix screwup in romloader xmlgame handling
This may have only affected Saturn in practice.  Whoops!  Fixes #2557.
2021-01-09 11:45:16 -05:00
YoshiRulz 9ed56cdc6e
Remove cached global ICodeDataLogger (emu core) in CDL (fixes #2553)
fixes 234642ed0; this was never going to work because the setter will only be
called by `ServiceInjector.UpdateServices` during a core restart, at which time
the previous core should already have been `Dispose`d. If you want to call
`.SetCDL(null)` on the core when restarting (even though closing the CDL window
already does that three times?), do it in the core's `Dispose` implementation.
2021-01-09 23:13:36 +10:00
YoshiRulz 71ad6deff3
Ensure existing global IEmulator is disposed when reassigning it 2021-01-09 23:02:22 +10:00
YoshiRulz 5078ac392b
Simplify null-safety checks in GetEnumFromDescription<T : Enum> 2021-01-09 05:13:57 +10:00
YoshiRulz 979afcb54d
Do something cleverer than throwing NRE in a few places 2021-01-09 05:08:09 +10:00
YoshiRulz e976e0c2ad
Use nameof in DeepEquality, fix typo 2021-01-09 04:54:02 +10:00
nattthebear ecafbde89d Let's not break the entire fucking program brahs 2021-01-08 13:41:15 -05:00
YoshiRulz 0272684cdf
Fix domain names in GBHawk CDL (fixes #2552)
fixes 7e00b7892
2021-01-09 02:55:14 +10:00
nattthebear 5a8c58de3c Look mom, I'm using the new C# 2021-01-08 08:52:24 -05:00
nattthebear cbdcba9643 Fix BS93 garbage
Probably.  Not sure what this does anymore, but 4 is right and 6 is wrong.
2021-01-06 11:20:37 -05:00
YoshiRulz 0ea597ded5
Fix GBA Game Shark code conversion (fixes #2545) 2021-01-06 18:47:05 +10:00
YoshiRulz fa5ed36f63
Add boilerplate for unit testing GameSharkDecoder
should fail without the following commit
2021-01-06 18:46:36 +10:00
YoshiRulz ab3846906f
Use type checks for DecodeResult/InvalidCheatCode 2021-01-06 17:25:05 +10:00
YoshiRulz 966b8a974a
string.Trim doesn't remove NUL
I'm also skeptical of the `if (bs93/*=br.ReadBytes(6)*/ == "BS93") { ... }` just
after this, it doesn't seem the condition can ever be met...
2021-01-06 16:54:23 +10:00
YoshiRulz c1a734a04d
Update the NuGet deps which should be safe to update 2021-01-02 20:31:54 +10:00
YoshiRulz 4e668612c7
Convert LoadCueJob.TrackInfo to a readonly struct 2021-01-02 20:15:17 +10:00
YoshiRulz 84a6c5a426
Convert CUE_File.Command.* to readonly structs with a superinterface 2021-01-02 20:05:06 +10:00
YoshiRulz 277f57eebd
Convert CompileCueJob.CompiledCueIndex to a readonly struct 2021-01-02 18:35:00 +10:00
YoshiRulz d87066c634
Convert Blob_ECM.IndexEntry to a readonly struct 2021-01-02 18:14:12 +10:00
YoshiRulz bb1f7da864
Remove duplicate class Blob_WaveFile.Blob_RawFile 2021-01-02 17:52:23 +10:00
YoshiRulz 449130e081
Move inner classes of Disc up a level, make Disc not partial 2021-01-02 17:40:39 +10:00
YoshiRulz e24c4c3971
Move CDFS (iso-parser) to new external project, update upstream info 2021-01-02 17:34:13 +10:00
YoshiRulz 333cae15cd
Convert IN_* props of jobs to ctor-initialised readonly fields 2021-01-02 16:10:57 +10:00
nattthebear f284fda3a6 Object.Equals(object) overrides should not throw
Especially not if you pass null.  null is simply not equal to this, that's all.  The post condition is satisfiable; you can return false.
2021-01-01 17:06:59 -05:00
YoshiRulz 51b62629c6
Enable nullability in most of the remaining files in BizHawk.Common 2021-01-02 02:39:13 +10:00
SuuperW 021d8e6e92 Fix: LuaSandbox wasn't reverting current directory after sandboxed operations. Appears to be a regression from commit 5e89e56. 2021-01-01 06:34:05 -06:00
alyosha-tas 89c69c382c GBHawk: implement LCDC write glitch for gbc-acid-hell 2020-12-30 19:31:30 -05:00
YoshiRulz 90c0214d5e
Add prop IMemoryApi.MainMemoryName, further delegate mainmemory lib 2020-12-30 16:02:05 +10:00
YoshiRulz 1619b33e8e
Fix overlapping/duplicate controls in FirmwaresConfig's menu on Mono 2020-12-30 01:25:30 +10:00
YoshiRulz a80dbfa76b
Fix crash when clicking on column headers in FirmwaresConfig on Mono 2020-12-30 00:07:47 +10:00
YoshiRulz d0edf350f2
Finish my nullability pass over ControlExtensions.cs 2020-12-30 00:03:39 +10:00
YoshiRulz 2de32ed59a
Move more sound classes to Client.Common 2020-12-29 17:04:02 +10:00
YoshiRulz 9cfe9485ef
Fix covariant arrays (passing ASupertype[] where AType[] is expected) 2020-12-29 16:53:31 +10:00
YoshiRulz 206a3e30c8
Cleanup instantiation of FirmwaresManager and PathConfig
and remove unused MainForm interface prop
2020-12-29 16:26:01 +10:00
YoshiRulz 18ebfecc97
Move GuiApi (impl.) to Client.Common 2020-12-29 15:53:47 +10:00
YoshiRulz 7edf3b36ad
Extract a tiny interface from DisplayManager for ApiHawk 2020-12-29 15:52:57 +10:00
YoshiRulz 0704db5940
Move OSDManager to Client.Common and move types to own files 2020-12-29 15:40:13 +10:00
YoshiRulz 23a8387dc1
Replace IBlitterFont w/ the type wrapped by its sole inheritor 2020-12-29 15:36:37 +10:00
YoshiRulz 47670714b5
Remove WinForms dep from GuiApi (impl.) 2020-12-29 15:08:01 +10:00
YoshiRulz 8e67d82bd5
Rename file to match type name 2020-12-29 15:00:55 +10:00
YoshiRulz f431faf65c
Move some DiscoHawk logic to Emulation.DiscSystem 2020-12-29 15:00:25 +10:00
YoshiRulz 1a21765be6
Fix assembly resolution in DiscoHawk on Mono
without this the program wouldn't open at all, I assume all of its actual
functions will just workTM now
2020-12-29 01:33:57 +10:00
YoshiRulz a0c7e9c7fb
Fix non-string resource in DiscoHawk 2020-12-29 01:26:56 +10:00
YoshiRulz c0cf40b68e
Check for MAME's lib before instantiating the MAME core (fixes #2538) 2020-12-29 01:04:36 +10:00
nattthebear f4e98fd9bd
Refactor ZWinderBuffer to allow use of arbitrary backing Streams (#2536) 2020-12-27 18:36:42 -05:00
YoshiRulz bcf5347823
Use C# 9 improvements to switch / "pattern matching" 2020-12-28 00:07:06 +10:00
YoshiRulz 96f9e8f6e4
Encapsulate MessageBox.Show using IDialogController and some helpers
a lot of the calls to `DialogController.ShowMessageBox` from `ToolFormBase`
inheritors could be replaced with `this.ModalMessageBox` (i.e. add self as
parent window)
2020-12-28 00:03:00 +10:00
YoshiRulz 9cafddb1e0
Minor cleanup to improve readability 2020-12-28 00:00:39 +10:00
YoshiRulz ce0ccd0cfa
Remove wget binary from assets
fixes a1253407e
2020-12-26 12:44:47 +10:00
SuuperW a928d1887f fix: Attempted to evict state 0, and attempted to modify collection while enumerating 2020-12-25 09:59:32 -06:00
YoshiRulz a1253407e7
Remove gamedb/update_gamedb.bat from assets (fixes #2529)
pulling the gamedb from master into an old version is a bad idea
2020-12-26 00:52:23 +10:00
YoshiRulz 62f90f11f2
Make anything inheriting FormBase slightly less ugly on Linux 2020-12-26 00:44:21 +10:00
alyosha-tas 515f5cf9b0 GBHawk: update RAM state for GBA mode 2020-12-24 19:45:44 -05:00
YoshiRulz 42fc895e12
Update EmuHawk project file
these files were removed in b9b1e2d23
2020-12-23 16:46:03 +10:00
YoshiRulz b9b1e2d237
Move Quantize to new external project, update upstream info 2020-12-23 16:37:47 +10:00
YoshiRulz faba9035b7
Update attribution of ported code 2020-12-23 15:55:50 +10:00
alyosha-tas 28c35a6274 GBHawk:set initial HRAM to 0, this provides consistent sync when clearing RAM on console, where as 0xFF does not 2020-12-22 20:20:00 -05:00
YoshiRulz 60d2bfa85c
Bump C# language level for ReSharper/Rider 2020-12-22 20:07:35 +10:00
YoshiRulz b9c9144358
Fix new dep not being copied to output, causing crashes
fixes 1e37350e9
I already fixed this before pushing but forgot to stage it
2020-12-22 19:57:55 +10:00
YoshiRulz 1e37350e99
Use NuGet package instead of copy-pasted code in BizwareGL/Borrowed
Our copy was equivalent to version 1.0.0 + a patch which allowed Stream instead
of requiring a filename, so I've used 1.0.2 as it has the author's
implementation of the same feature.
There are more recent versions available (note, 1.0.2 isn't for .NET Core).
NuGet: https://www.nuget.org/packages/Cyotek.Drawing.BitmapFont
Project repo: https://github.com/cyotek/Cyotek.Drawing.BitmapFont
2020-12-22 19:48:50 +10:00
YoshiRulz a5fd5f5d78
Return the tool from IToolApi.GetTool instead of its type
also affects Lua client.gettool; this has been broken for quite a while
2020-12-22 18:47:32 +10:00
YoshiRulz 5a098055d7
Fix Lua client.createinstance calling the wrong ApiHawk method
fixes e6cb74d31
2020-12-22 18:46:42 +10:00
YoshiRulz 03b4ae18e0
Move Virtual Pads schemata to Cores 2020-12-22 18:37:27 +10:00
YoshiRulz 790a09067e
Cleanup LINQ in VirtualpadTool.CreatePads 2020-12-22 18:34:27 +10:00
YoshiRulz 9124b0f3b5
Pass MessageBox.Show to Virtual Pads schemata as callback 2020-12-22 18:18:40 +10:00
YoshiRulz 0ff60220f7
Use enum to represent button images in Virtual Pads schemata 2020-12-22 15:35:26 +10:00
YoshiRulz 50b17096e1
Remove WinForms dep from Virtual Pads schemata 2020-12-22 14:07:28 +10:00
YoshiRulz 9168b59382
Add base interface for *CheckBoxEx and *RadioButtonEx controls 2020-12-21 16:58:49 +10:00
nattthebear 56b158e72a minor comment clarification 2020-12-20 21:06:22 -05:00
SuuperW b5b1e17851 Fix eviction logic for _gapFiller. (we were attempting to remove the wrong value from StateCache, and also weren't checking for reserved) 2020-12-20 18:06:50 -06:00
SuuperW 01bcf22802 Deal with this TODO. Removing from the StateCache here was removing extra frames. (frames between the old last gap frame and new last gap frame which were in another buffer) 2020-12-20 18:04:02 -06:00
nattthebear 55c08dc77f Revert "misc cleanups in neshawk boards, mostly removing redundant else's"
This reverts commit 2b5d0b6219.

A lot of these make things harder to read:

- Extra empty lines in large switch stacks mean they're more likely to go off one screen
- `if` and its condition on the same line is super hard to read, please never do that.  (Are the extra empty lines an attempt to mitigate the above)
- Removing terenaries obscures intent, and now there's more copy paste than before
- """Redundant""" else clauses on if...return kept things nice and lined up.

That was a huge churning diff with no value; let's stop it from spreading.
2020-12-20 15:26:08 -05:00
SuuperW 3d84812341
add a Lua method to get inputs from the movie (#2526) 2020-12-20 13:16:28 -06:00
adelikat 2b5d0b6219 misc cleanups in neshawk boards, mostly removing redundant else's 2020-12-20 13:12:51 -06:00
nattthebear 374f646f75 CoreInventory tweaks
When constructing a core using ConstructorInfo.Invoke, any exceptions thrown by the core are packaged inside TargetInvocationExceptions.  This has no value to us -- the fact that reflection is used is an implementation detail, and it breaks checking specific exceptions for specific information.  Accordingly, consumers have to deal with e.InnerException checks.  Fix this up so that we only expose the actual exception thrown.

In addition, undo a bad change in 6225e7854b that made the entirety of CoreInventory nonfunctional.
2020-12-20 09:15:22 -05:00
adelikat 7bb5506ba8 remove 2 deprecated nes library methods (add/remove game genie), they were marked deprecated for enough releases that I think we can go ahead and remove them 2020-12-19 20:17:26 -06:00
adelikat 6225e7854b a few cleanups in CoreInventory.cs 2020-12-19 20:07:09 -06:00
adelikat 68f9ac9730 remove unused usings in Emulation.Cores 2020-12-19 20:03:37 -06:00
adelikat aaa1c8e7a8 AutofireController - remove autofire flag that was always true 2020-12-19 18:55:22 -06:00
adelikat c730a78994 remove redundant null check before assigning null 2020-12-19 13:43:04 -06:00
SuuperW ec5e88c808 fix: loading a tasproj wouldn't set autofire (despite the gui showing it did) 2020-12-19 13:42:10 -06:00
alyosha-tas 3cc9684ebd GBHawk: better initial RAM state 2020-12-17 21:02:41 -05:00
adelikat fe5655d1e3 misc cleanups in BizHawk.Common 2020-12-15 17:54:44 -06:00
adelikat cb6ef03982 use explicit private/internal modifiers 2020-12-15 16:49:23 -06:00
adelikat b83556fc6f make fields readonly where possible 2020-12-15 16:00:55 -06:00
adelikat 213729550d remove redundant array initializers 2020-12-15 16:00:55 -06:00
nattthebear eeca40e072 libsnes: Cache region from core once at start
The region value in the comm struct is set once and then gets wiped out later.  I don't know what wipes it, but so many things have their hands on that, it's not surprising.  Someone knew about this and handled _mapper appropriately, but not _region.

Fixes #2503
2020-12-15 08:51:08 -05:00
alyosha-tas a8e2a420f0 GBHawk: cleanup 2020-12-14 19:32:22 -05:00
alyosha-tas 08f1b69197 GBHawk: prep for future audio work 2020-12-14 19:30:22 -05:00
alyosha-tas 3df6dfb350 GBHawk: update clearing screen for subgbhawk and linked modes 2020-12-14 11:41:19 -05:00
alyosha-tas b85e7cac2c O2; set released to true 2020-12-14 11:40:23 -05:00
nattthebear 1c27943707 Make SNES rom memory domain writeable
Use at your own risk
2020-12-13 20:11:58 -05:00
nattthebear fbee96c76b GPGX: Allow writing to rom memory domains
Don't let the diff fool you, a massive amount of work went into making this possible.
2020-12-13 19:49:04 -05:00
nattthebear 72ea5ce866
Waterbox: Allow SEH unwinding through guest calls. (#2519)
The goal of the separate stacks was to allow this, but I never quite finished the job.  Now, when a SEH exception (generally a Rust panic in a guest syscall handler, or a C# Exception in a callback) tries to unwind through guest code, it works.  Note that we don't actually unwind the guest stack, as there's nothing useful to be gained from that;  When an emulator core throws an exception like this, it should be considered completely hosed.  Throw it out and get a new one.

There were two bugs stopping this from working.

First of all, we had custom thunks that lacked sufficient unwind information for RtlUnwind to get through.  For the sysv <-> msabi adapter, this was fixed by making it regular Rust code instead of hand assembled junkus.  So the compiler generates valid unwind information for all of that.  Then we just JIT a small stub on top in the MsHostSysVGuest code, which needs no unwind information because it won't throw an exception itself and transparently passes execution to something with valid unwind information without invalidating that information.  (NB:  Clr JIT stubs use the same strategy.)  For the host <-> guest stack transition code, a small hand generated unwind stub was added to interop.s that is registered with `RtlAddFunctionTable`.  I've seen the unwind work successfully without this second set of unwind information, but better safe than sorry.

Secondly, our misuse of SubSystemTib caught up with us.  It's an old field, allegedly from OS/2, that we repurposed to hold TLS information needed for the waterbox stack transitions.  Most people think nothing uses it any more, but in fact if it's set to a non-NULL value, but doesn't contain valid information, `KERNELBASE!GetModuleFileNameW` will crash when it tries to get a module name from there.  The fix here was to simply tighten up our usage of SubSystemTib:  We were already nulling it out when returning from guest code, but not when calling back to host code in guest code.

Fixes #2487.  Unwinding of this sort has never worked well in waterbox; the reason why that issue is more recent is that the particular reproducing case of firmware didn't cause an exception in a callback in older code; the exception happened in pure managed code.
2020-12-13 19:12:16 -05:00
YoshiRulz fa6fd88d62
Import and use OSTailoredCode in DiscoHawk program class 2020-12-14 06:40:06 +10:00
YoshiRulz 24f90c922f
Fix incorrect import
I blame Rider
2020-12-14 06:33:46 +10:00
adelikat 28f161ce18 remove unnecessary string interpolation in a few places 2020-12-13 12:12:42 -06:00
adelikat 10d4f66248 Hex Editor - some small cleanups 2020-12-13 11:44:10 -06:00
nattthebear 6130a7241f Fix Saturn cart detection
Closes #2513.
Similar to ddd229e03d, Mednafen internals expect enumeration setting types to work with MDFN_GetSettingI, but we weren't doing that.
2020-12-12 13:40:33 -05:00
nattthebear 2f2f104e3d Update nyma cores to Mednafen 1.26.1
See Mednafen release notes for full changes.  Mostly just Sega Saturn stuff.

Closes #2464
Closes #2162
2020-12-12 10:50:18 -05:00
alyosha-tas 4447d5ddc7 GBHawk: bug fix, initial ram change, and double speed mode input dumping 2020-12-09 22:54:12 -05:00
Andrew Cook 58cbec6dd6
[PSX] Make Octoshock more debuggable (#2508)
* [PSX] Bodge in a system bus memory domain

Fixes: debugger window crashes when adding a breakpoint

* [PSX] Use Octoshock's built-in disassembler

* [PSX] Add support for execute memcbs to the core

* [PSX] Have memcbs include actual values

* [PSX] Use SafeHandles instead of raw pointers

* [PSX] Use core's internal peek and poke functions for System Bus

* [PSX] Move memory maps into IDebuggable impl to be next to memory map hooks

* [PSX] Revert using SafeHandles

* [PSX] Fire execution callback after trace callback instead of at end of fetch
2020-12-08 11:34:24 -06:00
alyosha-tas e81fa92f80 GBHawk: forgot a commit 2020-12-08 11:04:03 -05:00
alyosha-tas 401d635afc GBHawk: properly fade to white in GBC mode 2020-12-08 10:41:37 -05:00
zeromus 28af57de18 fix mistake in libsnes CARTROM-D CDL block 2020-12-07 15:55:15 -05:00
alyosha-tas 699fb1171c GBHawk: more mode 1 work 2020-12-06 19:39:25 -05:00
alyosha-tas a46ffefc77 GBHawk: mode 1 overhaul, fixes several bugs 2020-12-06 15:50:21 -05:00
zeromus e9f365a4a5 libsnes - core dll update for prior commits 2020-12-05 23:37:16 -05:00
zeromus 96aa3e85c0 libsnes - remove pointless registers 2020-12-05 23:37:16 -05:00
zeromus f580773342 add CARTROM-DB and CARTROM-D blocks to libsnes CDL 2020-12-05 23:37:16 -05:00
alyosha-tas b7c821f8d6 GBHawk: mode1 bug fix 2020-12-05 19:32:34 -05:00
YoshiRulz 877c11d5f9
Merge UpdateChecker.ParseVersion into VersionInfo.VersionStrToInt 2020-12-06 07:35:12 +10:00
YoshiRulz 66e0d4b214
Misc. cleanups in VersionInfo 2020-12-06 07:28:31 +10:00
YoshiRulz 508dc4a9d9
Use readonly instead of const in VersionInfo 2020-12-06 07:28:23 +10:00
YoshiRulz 9dcc8f56f4
Move VersionStrToInt helper to VersionInfo 2020-12-06 07:27:54 +10:00
YoshiRulz 98e2d494a2
Bump supported Windows versions 2020-12-06 07:12:27 +10:00
YoshiRulz eeae3f023f
Merge Sound.Instance into MainForm.Sound and pass back to Program
now I don't have to feel bad about sweeping a global under the rug
2020-12-06 05:59:36 +10:00
YoshiRulz cf901753ba
Update Lua libs' ApiContainer when updating services
I don't think this mattered unless the tool restart was triggered by reloading
the rom with client.reboot_core(), which in my defence has always been jank
2020-12-06 05:41:58 +10:00
YoshiRulz febd4f1340
Remove unused prop EventsLibrary 2020-12-06 05:34:46 +10:00
YoshiRulz ce7aa1ff64
Convert abstract class LuaLibraries to an interface 2020-12-05 07:51:14 +10:00
YoshiRulz e42a021215
Move props from LuaLibraries to Win32LuaLibraries 2020-12-05 07:51:11 +10:00
YoshiRulz c46719c602
Do type checks on LuaConsole.LuaImp
this is more safe than is strictly necessary but it's not really less code to
use a direct cast
2020-12-05 07:51:08 +10:00
YoshiRulz bf116f3ecf
Inline LuaLibraries.RunningScripts 2020-12-05 07:51:05 +10:00
YoshiRulz c3c02eaad3
Inline LuaLibraries.EnableUpdate/SupressUpdate
"suppress" isn't even speled corectly
2020-12-05 07:51:02 +10:00
YoshiRulz e4a0175351
Extract interface from NamedLuaFunction 2020-12-05 07:50:59 +10:00
YoshiRulz 8f10ce66a6
Merge EventsLuaLibrary.RegisteredFunctions into Win32LuaLibraries 2020-12-05 07:50:56 +10:00
YoshiRulz 6aefa75cff
Add helpers for manipulating NamedLuaFunctions 2020-12-05 07:50:53 +10:00
YoshiRulz 3024bc0d0f
Inline some methods from EventsLuaLibrary into Win32LuaLibraries 2020-12-05 07:50:50 +10:00
YoshiRulz a54aa0706d
Deprecate emu.getluacore in favour of new func client.get_lua_engine 2020-12-05 07:50:46 +10:00
YoshiRulz f57897515e
Add prop EngineName to abstract class LuaLibraries 2020-12-05 07:50:43 +10:00
YoshiRulz 89a66563f1
Cleanup FormsLuaLibrary.WindowClosed and usages 2020-12-05 07:50:40 +10:00
YoshiRulz d51f9c3e88
Use LINQ instead of dumb in FormsLuaLibrary implementations 2020-12-05 07:50:37 +10:00
YoshiRulz 30d9a8b458
Inline Designer and resource files for LuaCanvas 2020-12-05 07:50:33 +10:00
YoshiRulz b541fe5b40
Use NLuaTableHelper for more conversion to/from LuaTable
also fix indexing that I broke in c8e10120d
2020-12-05 07:50:28 +10:00
YoshiRulz 46504b4880 Add and use more extensions for IDialogParent 2020-12-05 07:47:01 +10:00
YoshiRulz b752b09d62 Implement IDialogParent in some more forms 2020-12-05 07:47:01 +10:00
YoshiRulz 8a6c7be6aa Cleanup MainForm interfaces, move ShowDialogAsChild to extension 2020-12-05 07:47:01 +10:00
YoshiRulz f0664ce018 Add and use interface IDialogParent 2020-12-05 07:47:01 +10:00
YoshiRulz f0657b358d Inline ShowHawkDialog
there were 8 unnecessary double-mutes where ShowHawkDialog was called with a
InputPrompt receiver
2020-12-05 07:47:01 +10:00
YoshiRulz 9d620116f3 Shoehorn IDialogController into ShowHawkDialog call chains 2020-12-05 07:47:01 +10:00
YoshiRulz dd44ff7f6c Ensure owner param of ShowHawkDialog overloads are never null 2020-12-05 07:47:01 +10:00
YoshiRulz aad612593b Add and use helper method DoWithTempMute (void and generic flavours) 2020-12-05 07:47:01 +10:00
YoshiRulz cc4acd9c64 Move Start/StopSound calls from InputPrompt to callers 2020-12-05 07:47:01 +10:00
YoshiRulz 2295d47192 Add superinterface IDialogController for IMainFormForConfig/Tools 2020-12-05 07:47:01 +10:00
YoshiRulz b243ea0d6a
Stop overwriting global.json when building in AppVeyor 2020-12-05 07:41:51 +10:00
adelikat e0c1fc4a4d misc cleanups in Client.Common 2020-12-04 15:39:52 -06:00
zeromus 206817dab8 try building twice to work around git version issues. it's bad, but it will do for now (if it does indeed do for now) 2020-12-04 15:53:57 -05:00
zeromus ffdb19e99a update waterbox readme a bit 2020-12-04 15:41:16 -05:00
zeromus ed4cf3ed59 quick test of using "dotnet build" instead of msbuild. since 'dotnet build' is more or less defined as extra logic on top of msbuild to make it work on dotnet projects. 2020-12-04 15:41:16 -05:00
BrunoValads 81ef9ed88b
GB layers (#2490)
* Fixed OBJ layer toggle message

(it was using the flag from BG toggle)

* Added hotkey option for GB Window layer toggle

* Added hotkey option for GB Window layer toggle

* GB object viewer prototype [Gambatte]

GPU Viewer add-on to display sprite tiles on the real position, just like what you have for the bsnes core
Has several issues:
- Drawing is identical to the current sprite display, so it doesn't have the transparency it should have;
- Drawing doesn't take priority into account, so overlapping is usually wrong;
- The drawing flickers, probably the way of refreshing (with `.Clear()`) is bad.
2020-12-04 14:37:36 -06:00
alyosha-tas 0aea6191ae GBHawk: HDMA fixes and implement reads for GBC visualizer 2020-12-04 11:20:56 -05:00
YoshiRulz d0ca41ecc1
Restore SDK 5.0 in global.json and have AppVeyor overwrite the file 2020-12-04 18:45:46 +10:00
YoshiRulz 05bf3480c4
Maybe fix AppVeyor SDK choice 2020-12-04 06:30:00 +10:00
YoshiRulz f40d6c95f0
AppVeyor wasn't building unless the config changed, enable it again 2020-12-04 06:16:11 +10:00
YoshiRulz a060c4e600
Fix building on non-AppVeyor machines without breaking AppVeyor
hopefully
2020-12-04 06:12:06 +10:00
zeromus ec61aad159 as requested, try it with netcoreapp3.1 2020-12-03 14:05:00 -05:00
zeromus 0fda93acea revert targetframework on bizhawk.tests too 2020-12-03 13:17:08 -05:00
zeromus ba56136436 didn't work. try reverting global.json sdk version 2020-12-03 13:05:42 -05:00
zeromus eba0490570 attempt to add some installs to the appveyor script, to see if it will fix the builds 2020-12-03 12:47:05 -05:00
YoshiRulz c8e10120db
Encapsulate conversion to/from LuaTable, stop passing NLua to Lua libs 2020-12-03 22:54:47 +10:00
YoshiRulz e69cab3297
Cleanup Win32LuaLibraries init 2020-12-03 22:15:07 +10:00
YoshiRulz 76f03a9508
Merge DelegatingLuaLibrary into LuaLibraryBase 2020-12-03 21:37:17 +10:00
YoshiRulz ce2bd6bb9d
Fix ext. tools in repo, update HelloWorld 2020-12-03 19:13:13 +10:00
YoshiRulz d4349aefd4
Allow ext. tools to recieve an ApiContainer 2020-12-03 18:58:34 +10:00
YoshiRulz 608d7dcff8
Add ApiContainer prop to IExternalApiProvider 2020-12-03 18:46:07 +10:00
YoshiRulz 29bceb272f
Merge MouseWheelTracker from MainForm interface into InputManager 2020-12-03 18:35:24 +10:00
YoshiRulz f6d465a1ac
Move InputApi to Client.Common project 2020-12-03 18:31:45 +10:00
YoshiRulz 6be371aadd
Use callbacks to get mouse pos+buttons to InputApi via InputManager 2020-12-03 18:14:49 +10:00
YoshiRulz 4ade496de5
Move EmuClientApi to Client.Common project 2020-12-03 17:59:30 +10:00
YoshiRulz 56c681ef0c
Use IWindowCoordsTransformer in EmuClient and Input API impl. 2020-12-03 17:50:13 +10:00
YoshiRulz 999df1b041
Extract interface IWindowCoordsTransformer from DisplayManager 2020-12-03 17:48:38 +10:00
YoshiRulz 6b30fb826c
Move ClientLuaLibrary to Client.Common project 2020-12-03 17:35:54 +10:00
alyosha-tas cfbdde4cc7 GBHawk: more hdma improvements 2020-12-01 19:03:11 -05:00
YoshiRulz 239fa0b22c
Rename files of MainForm interfaces to match type name
oops
2020-12-01 02:51:28 +10:00
YoshiRulz 928ea057d8
Enable SA1137 and fix noncompliance (except in Cores)
"Elements should have the same indentation"
2020-11-30 21:36:48 +10:00
YoshiRulz 44fb9fa368
Enable SA1211
"Using alias directives should be ordered alphabetically by alias name"
2020-11-30 21:27:52 +10:00
YoshiRulz be36c60e9e
Enable SA1208 and fix noncompliance (except in Cores)
"System using directives should be placed before other using directives"
2020-11-30 21:26:36 +10:00
YoshiRulz 1a020ba0f5
Make the getters of the 6 ToolFormBase props protected
and it only cost a callback and a `public new` hack
2020-11-30 20:56:06 +10:00
YoshiRulz 85faec638a
Update or remove comments mentioning GlobalWin 2020-11-30 20:45:21 +10:00
YoshiRulz bf968acd57
Move static GlobalWin.Sound to static Sound.Instance, mirroring Input 2020-11-30 20:42:23 +10:00
YoshiRulz c3a7ec047f
Remove GlobalWin.Config by cleaning up Sound 2020-11-30 20:37:11 +10:00
YoshiRulz 0a9f93c433
Fix encapsulation of Config in FFmpegWriterForm 2020-11-30 20:30:26 +10:00
YoshiRulz 756f9f50e8
Use EmulationApi's config hack in ClientLuaLibrary 2020-11-30 20:19:27 +10:00
YoshiRulz 3b120e7184
Delegate ClientLuaLibrary.GetWindowSize/SetWindowSize to ApiHawk
the impls were the same but for getting the global config
2020-11-30 20:19:23 +10:00
YoshiRulz a393c7d368
Remove weird double-updating of EmuClientApi
changes signatures in IEmuClientApi but they were never meant to be called
outside MainForm anyway
2020-11-30 20:14:28 +10:00
YoshiRulz a1ccac4d67
Delegate ClientLuaLibrary.FrameSkip to ApiHawk
the ApiHawk copy was the bad one
2020-11-30 19:57:13 +10:00
YoshiRulz 7c85aee53b
Init global Input instance from MainForm ctor
* Input.MainFormInputAllowedCallback is now readonly, set in ctor
* call to Input.Adapter.FirstInitAll is also in the Input ctor
2020-11-30 19:48:25 +10:00
YoshiRulz 709d78d8e0
Use local var instead of GlobalWin.Config in Program 2020-11-30 19:30:15 +10:00
YoshiRulz f314aa3d61
Pass global Config to BatchRun/BatchRunner 2020-11-30 19:24:17 +10:00
YoshiRulz 32f571144e
Encapsulate GlobalWin.Config access in Input 2020-11-30 19:21:13 +10:00
YoshiRulz 4e38028b49
Fix typo, global access when global is passed as param 2020-11-30 19:15:59 +10:00
YoshiRulz 453ea2b1bb
Pass globals to DisplayManager as with OSDManager
* moved initialisation of global `OSDManager` to `DisplayManager` ctor again
* `DisplayManager.UpdateGlobals` calls `DisplayManager.OSD.UpdateGlobals`
* goodbye `GlobalWin.Emulator` and `GlobalWin._mainForm` :)
2020-11-30 19:11:59 +10:00
YoshiRulz c991babdce
Use MainForm instead of GlobalWin in Lua internals 2020-11-30 19:03:50 +10:00
YoshiRulz 3ccdfa8289
Pass MainForm to UI helpers instead of using GlobalWin.Sound 2020-11-30 16:44:27 +10:00
YoshiRulz 636a9a4735
Pass a callback to some sound internals to read the global IEmulator 2020-11-30 16:16:22 +10:00
YoshiRulz 6d22cdc15f
Pass global MovieSession from MainForm ctor to Program with an out param 2020-11-30 16:02:48 +10:00
YoshiRulz 3a7ca89311
Remove GlobalWin.InputManager 2020-11-30 15:58:50 +10:00
YoshiRulz a83642fab2
Pass globals to OSDManager via ctor and new UpdateGlobals method
also instantiate OSDManager in MainForm and pass it to DisplayManager because
that's how we did it until recently and it's also just easier
2020-11-30 15:55:23 +10:00
YoshiRulz b9a5c5796d
Pass global InputManager to remaining Virtual Pads controls 2020-11-30 15:43:33 +10:00
adelikat e3f7519e15 replace unnecessary GlobalWin usage in BookmarksBranchesBox.cs 2020-11-29 22:04:00 -06:00
adelikat 792b317118 add Start/StopSound methods to IEmuHawkMainFormToTools interface and use it in tools instead of GlobalWin.Sound 2020-11-29 19:34:57 -06:00
SuuperW ac93f28939 Do not attempt to report >100% seek progress. (This could happen if the user starts a seek which results in loading a savestate past the frame previously being seeked.) 2020-11-29 12:29:38 -06:00
SuuperW e1186d9253 Remove this. It isn't necessary, and is a copy-pasted line from some converted code in commit 2535207a. 2020-11-29 12:29:38 -06:00
adelikat 8d6cb7685e TasClipboardEntry, move some logic to Tastudio, fix filename, and move to Client.Common 2020-11-29 12:25:26 -06:00
adelikat 8e70bece16 TAStudioClipboard - remove unused and dubious ToString() override 2020-11-29 12:16:51 -06:00
adelikat ceade5be5a move some logic from TAStudioLuaLibrary to TAStudio 2020-11-29 12:13:12 -06:00
adelikat 592cedba1d make fields readonly where possible in EmuHawk project 2020-11-29 11:26:41 -06:00
adelikat 488409a2ad MovieZone - remove usage of GlobalWin.Config 2020-11-29 10:57:50 -06:00
YoshiRulz 8bbd6b2d8b
Remove final reference to GlobalWin.Game by hacking an existing hack 2020-11-29 19:15:01 +10:00
YoshiRulz f7a7b722c5
Pass globals to ExternalToolManager via ctor and Restart method 2020-11-29 19:06:45 +10:00
YoshiRulz 84f0d57fd5
Add restarting to ExternalToolManager, called when replacing Config 2020-11-29 18:58:12 +10:00
YoshiRulz bed5142ddc
Make ExternalToolManager not static 2020-11-29 17:30:19 +10:00
YoshiRulz d2c514bc51
Move more ApiHawk impl. classes to Client.Common 2020-11-29 16:50:31 +10:00
YoshiRulz ebef47203d
Allow ApiHawk impl classes to have any param order in their ctors 2020-11-29 16:39:26 +10:00
YoshiRulz 1f9188da5e
Pass global Config and GameInfo to Emu and GameInfo APIs via ctors 2020-11-29 14:26:19 +10:00
YoshiRulz 85d4d5ed4d
Pass global InputManager to JoypadApi via ctor 2020-11-29 14:18:40 +10:00
YoshiRulz 8ad3ea9cc6
Move GlobalWin.GL to MainForm, passing it through from Program 2020-11-29 14:09:37 +10:00
YoshiRulz 7bf879c095
Explicitly pass first Config through SingleInstanceController 2020-11-29 14:05:23 +10:00
YoshiRulz a34dde7c4f
Pass global IGL to DisplayConfig (and then to RetroShaderChain) 2020-11-29 13:59:30 +10:00
YoshiRulz b26aa2e893 Rewrite GlobalWin.GL init with local functions 2020-11-29 13:50:49 +10:00
YoshiRulz 3150cc4493 Remove GlobalWin.IGL_GL, only init OpenTK when using that disp. method
also, if it's too old, dispose it before continuing with fallback
2020-11-29 13:50:49 +10:00
YoshiRulz 60022ab146 Move OpenTK configuration to dedicated static ctor 2020-11-29 13:50:49 +10:00
alyosha-tas f38c75f06d GBHawk: some accuracy improvements 2020-11-28 18:58:33 -05:00
adelikat e0eb572e74 misc cleanups, mostly IDE nags, in files I had open 2020-11-28 14:32:05 -06:00
adelikat bdf1838ac8 pass Config around to various AV writer and form classes, instead of using GlobalWin.Config 2020-11-28 13:57:40 -06:00
nattthebear 84002f1232 Make the menu items for FDS disk changing better named 2020-11-28 13:30:00 -05:00
adelikat 8550d2bd0d fix previous commit, fix dependencies in PathConfig and remove usage of GlobalWin in FirmwaresConfig 2020-11-28 11:03:38 -06:00
adelikat be8825fefc GBPrefs/DGBPrefs - pass in dependencies 2020-11-28 10:53:27 -06:00
adelikat 342164d05c ColorChooserForm - a bit of cleanup 2020-11-28 10:04:24 -06:00
YoshiRulz 3be90efd57
Make some GlobalWin props read from MainForm instead of the reverse
these props' setters were only called from MainForm
2020-11-28 23:28:32 +10:00
YoshiRulz 0899369d1a
Sort out the mess that is creating and updating the global Config
hopefully this kills a few subtle bugs re: `Config` > `Load Config`
2020-11-28 23:04:49 +10:00
YoshiRulz 3de87af5de
Pass MovieSession to APIs via ctor 2020-11-28 22:48:02 +10:00
YoshiRulz c203edba17
Move prop GlobalWin.UserBag to global MovieSession
and weaken to IDict<K, V>
2020-11-28 22:39:13 +10:00
YoshiRulz 56df80bb5a
Move prop GlobalWin.OSD to global DisplayManager 2020-11-28 22:27:26 +10:00
YoshiRulz b0b2b8fa63
Remove GlobalWin.DisplayManager, pass it through from MainForm instead 2020-11-28 22:10:48 +10:00
YoshiRulz 78daf4913d
Move ArgParser to Client.Common and split ParsedCLIFlags into own file 2020-11-28 21:45:52 +10:00
YoshiRulz 251f0e7af8
Move init of network helpers from ArgParser to MainForm ctor 2020-11-28 21:41:33 +10:00
YoshiRulz 1c1aa348cf
Add a new field to MainForm for _autoDumpLength
now ParsedCLIFlags can be properly readonly :)
2020-11-28 21:01:17 +10:00
YoshiRulz 35d6bca6c6
Cleanup ArgParser without changing usage
(apart from its init in the MainForm ctor)
2020-11-28 20:47:35 +10:00
YoshiRulz cb634a91d1
Attempt to disable AppVeyor CI until it can be fixed 2020-11-28 14:30:32 +10:00
adelikat 750e1d8980 Sounds.cs - pass in some dependencies instead of using GlobalWIn 2020-11-27 15:53:52 -06:00
adelikat bae75157f2 remove some unnecessary GlobalWin usages 2020-11-27 15:09:04 -06:00
adelikat 0223c11504 cleanups 2020-11-27 15:07:10 -06:00
adelikat e640b11e49 remove some unused methods in ToolFormBase 2020-11-27 15:00:28 -06:00
adelikat e9ca84f8bd remove GlobalWin.Game usage in ToolFormBase 2020-11-27 14:59:50 -06:00
adelikat cd146c0f79 remove GlobalWin usage in HeaderEditor 2020-11-27 11:17:47 -06:00
adelikat 488c3def6a misc cleanups, naming conventions, readonly modifier, pattern matching, explicit modifier, apparently visual studio nags about these things now 2020-11-27 11:06:35 -06:00
adelikat a87f08379c GB ColorChooserForm - simplify code, remove a GlobalWin usage for free 2020-11-27 10:33:42 -06:00
adelikat 2c7b2a530c Remove GlobalWin usage in BmpView, and also use appropriate suffixes in various screenshot saving methods in various graphics tools 2020-11-27 10:25:30 -06:00
YoshiRulz 707dae93a7
Use MainForm's prop to get the global ToolManager in Win32LuaLibraries 2020-11-26 22:55:08 +10:00
YoshiRulz 2c086702c9
Pass global ToolManager to IToolApi impl via ctor 2020-11-26 22:53:27 +10:00
YoshiRulz 794c4b5b84
Pass global ToolManager to Console and TAStudio Lua libs on init 2020-11-26 22:41:46 +10:00
YoshiRulz 256f4d5b06
Make ConsoleLuaLib funcs not static, save callback on init of lib 2020-11-26 22:37:30 +10:00
YoshiRulz 9e0a3c0e34
Pass Lua Console log callback to LuaCanvas and replace static calls 2020-11-26 22:35:52 +10:00
YoshiRulz 72fd3f2fca
Replace static ConsoleLL.Log calls in FormsLL with LogOutputCallback 2020-11-26 22:31:27 +10:00
YoshiRulz 663e9cfbec
Add wrapper for Lua Console log callback and cleanup 2020-11-26 22:24:39 +10:00
YoshiRulz 939cd1bcaf
Add prop IToolApi.AvailableTools and use in ClientLuaLibrary 2020-11-26 22:12:19 +10:00
YoshiRulz 2e428ccc2e
Clean up GlobalWin.Tools assignment and usage in MainForm 2020-11-26 21:46:41 +10:00
YoshiRulz 8aab0d00cd
Move GlobalWin.ExitCode to Program 2020-11-26 21:41:54 +10:00
YoshiRulz 6dfb0a8af8
Move GlobalWin.DisableSecondaryThrottling to MainForm 2020-11-26 21:41:43 +10:00
YoshiRulz f0843689ed
Clean up global GLManager instance
no code actually got run by the GLManager ctor so it should be fine to delay it
2020-11-26 15:42:07 +10:00
YoshiRulz cdf562264c
Clean up global usage in DisplayManager 2020-11-26 15:22:19 +10:00
YoshiRulz 808ec64dba
Replace GlobalWin.FirmwareManager with MainForm prop 2020-11-26 15:08:15 +10:00
YoshiRulz a81a168cb0
Fix ext. tool build scripts 2020-11-26 14:50:12 +10:00
YoshiRulz 21b633c705
Move static IEmuClientApi prop from GlobalWin to ClientApi 2020-11-26 14:32:18 +10:00
YoshiRulz 0e2d35d6aa
Replace ClientApi event sub with direct call in MainForm 2020-11-26 14:29:11 +10:00
YoshiRulz 781976f18e
Pass EmuClientApi instance to MainForm when restarting in ToolManager 2020-11-26 14:24:03 +10:00
YoshiRulz 87a4f1186e
Make EmuClientApi.SystemIdConverter a static instance 2020-11-26 14:21:07 +10:00
YoshiRulz 9fc853d404
Pass more things through to ApiManager 2020-11-26 14:03:07 +10:00
YoshiRulz 4c9c985eed
Use IGameInfo instead of impl. in ApiHawk 2020-11-26 13:45:00 +10:00
alyosha-tas 389979b350 Movies: Still need this line for bk2 movies 2020-11-25 19:57:48 -05:00
alyosha-tas cf297dacb5 GBHawk: bug fix 2020-11-25 19:05:33 -05:00
alyosha-tas 53efd448d2 GBHawk: clean up 2020-11-25 14:24:52 -05:00
alyosha-tas 78ca48251f GBHawk: update HDMA implementation 2020-11-25 14:05:17 -05:00
YoshiRulz 13a8a602cf
Move SaveStateLuaLibrary to Client.Common 2020-11-25 19:48:06 +10:00
YoshiRulz db63222f32
Use new _luaLibsImpl prop instead of LuaConsole.LuaImp via globals 2020-11-25 19:47:07 +10:00
YoshiRulz a6d1c6595a
Pass LuaLibraries instance to Lua libs via ctors 2020-11-25 19:35:14 +10:00
YoshiRulz f5752294ff
Simplify Lua lib ctors 2020-11-25 19:27:38 +10:00
YoshiRulz a4e2e1ad3f
Move absract class LuaLibraries to Client.Common 2020-11-25 19:12:37 +10:00
YoshiRulz 6c05361cda
Move GuiLuaLibrary to Client.Common 2020-11-25 19:11:06 +10:00
YoshiRulz 20111fb4a2
Replace class Win32LuaLibraries.ResumeResult with tuples 2020-11-25 19:01:37 +10:00
YoshiRulz fd4a534fa7
When restarting Lua, use a single ApiContainer for all Lua libs
fixes a7ffdd948, 104c17e77, 151911069
2020-11-25 18:04:02 +10:00
TiKevin83 fe25b41c1e
Update libgambatte to r729+ (#2486)
* updating libgambatte from various updates to gambatte-speedrun
2020-11-23 22:59:40 -05:00
alyosha-tas 1afcbe3ab5 GBHawk: update bad SRAm access emulation 2020-11-23 19:41:10 -05:00
alyosha-tas af38023ba8 GBHawk: open bus behaviour on locked SRAM 2020-11-23 17:06:49 -05:00
YoshiRulz 0093c16d79
Bump .NET SDK to 5.0.100, bump C# to 9.0
BizHawk.Tests executable needs to run in CI, but the 5.0 SDK image can't run
Core 3.1 apps somehow, so I bumped that too
2020-11-23 21:48:10 +10:00
YoshiRulz be536c67de
Update OpenTK and OpenTK.GLControl to latest 3.x (resolves #2471) 2020-11-23 21:18:20 +10:00
alyosha-tas 4a76cc322e GBHawk: some display bug fixes 2020-11-22 17:03:24 -05:00
alyosha-tas 8199e67770 GBHawk: more double speed mode timing work 2020-11-22 11:40:56 -05:00
YoshiRulz bad08162e2
Restart Sound in MainForm instead of SoundConfig 2020-11-22 12:38:40 +10:00
YoshiRulz edda120b07
Clean up some dumb in *SoundOutput ctors 2020-11-22 11:48:17 +10:00
YoshiRulz 9e5ab0706e
Move calls of static methods *SoundOutput.GetDeviceNames to a delegate
now only MainForm needs to reference *SoundOutput
2020-11-22 11:31:58 +10:00
alyosha-tas bffe2078d4 GBHawk: More double speed mode work 2020-11-21 16:18:43 -05:00
alyosha-tas cd7cc7f939 GBHawk: work on double speed mode 2020-11-21 13:49:28 -05:00
YoshiRulz 7596b97218
Add prop FormBase.BlocksInputWhenFocused to simplify some logic 2020-11-21 22:42:42 +10:00
YoshiRulz e7f83cb492
Small cleanup of <NoWarn/> use in project files 2020-11-21 19:53:13 +10:00
YoshiRulz e2a496c652
Cleanup OTK_Keyboard 2020-11-21 19:16:34 +10:00
YoshiRulz e2ac1aca84
Add and use DistinctKey enum (copy of WPF's key enum) 2020-11-21 17:43:58 +10:00
YoshiRulz 641db1bcd7
Comment out unused field
was assigned to before refactor in fc92d3c63
2020-11-21 11:24:57 +10:00
alyosha-tas 0b8e4ab6b1 Movies: revert previous 2 commits, too many difficulties around movies in 'finished' mode 2020-11-20 19:20:55 -05:00
alyosha-tas 1fe1138a91 Movies: don't redo steps if movie finished 2020-11-20 18:11:38 -05:00
alyosha-tas d676036359 Movies: reorder code so that record mode is not entered if state load failed 2020-11-20 17:25:01 -05:00
alyosha-tas 320ecc9093 Movies: Fix #4285 2020-11-20 16:09:58 -05:00
YoshiRulz 5eedd695c2
Update examples for host env. in GitHub issue template
I chose more recent versions, and also dropped macOS and Win7 and added Win8.1
2020-11-20 20:16:54 +10:00
alyosha-tas 349092fec8 GBHawk; fix input when switching from playing a movie to recording another one 2020-11-19 13:59:33 -05:00
alyosha-tas fc92d3c63e Debugger: Fix scrolling in disassembly view 2020-11-17 19:54:43 -05:00
alyosha-tas fa08b25d37 Virtual Pad analog stick: Fix changing x axis name , fixes #2467 2020-11-16 22:00:49 -05:00
alyosha-tas 7865fe2980 Movies: pass SRAM to emulator before state is made 2020-11-16 17:37:49 -05:00
zeromus 6873b1c291 discsystem - load 2352-byte aligned iso as mode2/2352 bins instead. will cause 1 in ~2000 cases of isos to fail in case they are honestly multiples of 2352 sectors. if anyone ever reports that I can possibly try it both ways and see if one can detect as a known disc type and use whichever one succeeds?
should "fix" #2478
2020-11-13 03:13:04 -05:00
nattthebear ebf0f6685e Fix playing a movie when core is not specified and core is not one we support switching of
#2476
2020-11-12 15:12:00 -05:00
alyosha-tas 04a60cd0df Game DB, add good entry for Litti's Summer Sports 2020-11-09 13:12:29 -05:00
alyosha-tas a4507691b6 GBHawk: Overhaul HDMA emulation 2020-11-07 09:36:53 -05:00
YoshiRulz d23386e75d
Remove unused assemblies from repo 2020-11-06 23:15:12 +10:00
alyosha-tas 2a92121483 GBHawk: refactor some ppu code to prepare for more accurate VRAm glitch emulation 2020-10-29 12:35:45 -04:00
alyosha-tas bd3ee6f45c GBHawk: don't clear timer/serial interrupts when they happen at the same time as a set 2020-10-24 21:46:31 -04:00
YoshiRulz 72511add3b
Add ctor to KeyEvent and make readonly struct 2020-10-23 11:10:49 +10:00
alyosha-tas d7c59e8bd4 GBHawk: Fix behaviour of button pressed during STOP 2020-10-22 20:24:54 -04:00
YoshiRulz 3709968757
Map remaining DInput keys to OTK Unknown 2020-10-21 12:40:55 +10:00
YoshiRulz 4dab259412
Rewrite scan code list for DInput alt. mode
In 9d348c9c8 I copied these verbatim, but half of the non-alphanumeric keys were
wrong. I passed 0..0xFFFF to MapWin32VirtualScanCodeToVirtualKey to get what I
assume are the correct values, though it's possible they're per-machine, in
which case the whole alt. mode feature is broken. There are a few keys that
remain commented-out because I didn't find their scan code, notably numpad 0-9.
2020-10-21 12:25:40 +10:00
YoshiRulz fa7811f848
Add Menu, Oem102, and Unknown to OTK, add Menu and Unknown to DInput 2020-10-21 12:09:44 +10:00
nattthebear 1f313b42c8 Change NES ideal framerates
These are used for realtime and recorded AV output.  They match closely what the core actually does (not idealized values about what the NES framerate ""should"" be.)

Fixes #2460
2020-10-20 18:27:28 -04:00
adelikat bd64530ce5 fix MovieClock ui, bad gui.text() usage, also use current frame count instead of movie length 2020-10-17 13:33:13 -05:00
YoshiRulz 58aa64b5d6
Add some missing keys to DirectInput alt-keyboard-layout mode
maybe THIS will fix the crashes
2020-10-16 14:45:46 +10:00
YoshiRulz 9d348c9c8b
Merge KeyboardMapping into KeyInput and cleanup 2020-10-16 14:14:12 +10:00
YoshiRulz 7f5e777f75 Move DirectX wrappers to new project 2020-10-16 07:30:26 +10:00
YoshiRulz 69a05641e7 Replace global config access in DirectInput wrapper with encapsulation
fixes b01f52c01; this required a whole lot of rearchitecting for one obscure
feature which will become obsolete with the move to .NET Core anyway, and I'm
not happy about it
2020-10-16 07:30:26 +10:00
YoshiRulz 02e0804712 Move some host input internals to Client.Common 2020-10-16 07:30:26 +10:00
YoshiRulz 4c8bdf9851 Add properties to IHostAudioManager for accessing global config 2020-10-16 07:30:26 +10:00
YoshiRulz e1daa7efd3 Extract interface from Sound
The interface is a single method plus the four constants from the top of Sound,
which are now properties. The static methods in Sound are moved to extension
methods on the interface.
2020-10-16 07:30:26 +10:00
zeromus 447ae737f3 * don't clear ControllerInputCoalescer when rewiring input. it just collects physical input, there is no reason to unpress it. if you're holding a button, you want it held. the only exceptions would be in case a hotkey and controller input collided, in which case a prior hotkey press (which caused a rom to open or close) would then get handled as a controller input. this could be solved in some other way, probably (unpress hotkeys as soon as received?)
* resync controls after CloseRom

fixes #2453
2020-10-15 13:29:53 -04:00
YoshiRulz 35dadd75e6
Maybe fix alt-keyboard-layout mode crashes 2020-10-15 11:51:14 +10:00
alyosha-tas d3cccf0c3c GBHawk: multi cart check for bomberman selection 2020-10-14 17:53:53 -04:00
alyosha-tas f7d96bdedb GBHawk: Window timing bug fix 2020-10-14 14:40:09 -04:00
YoshiRulz 377c69032c
Really hide ISpecializedEmulatorService from CoreFeatureAnalysis UI
fixes 25b7be70b
2020-10-14 09:18:55 +10:00
YoshiRulz 25b7be70bc
Hide ISpecializedEmulatorService from CoreFeatureAnalysis UI 2020-10-14 08:43:41 +10:00
YoshiRulz ed4ddb13ce
Add CoreInventory.SystemsFlat list and use in UI gen elsewhere 2020-10-14 08:39:26 +10:00
YoshiRulz fca37ddccf
Refactor CoreInventory.Core creation 2020-10-14 08:25:54 +10:00
nattthebear 98ad14ff47 Fix two semi-related savestate bugs in waterbox.
We had two instances where the act of sealing could lose snapshots that were never recovered.  It's oof.
2020-10-13 09:10:46 -04:00
nattthebear 27e600c1ac Fix some confusions in no-dirty-detection mode
This caused some awful crashes, but doesn't affect any real release builds of waterboxhost
2020-10-13 09:10:40 -04:00
alyosha-tas e07944b0f1 GBHawk: sprite timing bug fix 2020-10-12 19:45:23 -04:00
alyosha-tas 5a96022f28 GBHawk: Window and sprite timing work 2020-10-12 18:14:36 -04:00
YoshiRulz 2991b69363
Cleanup <ProjectReference/>s 2020-10-12 08:37:47 +10:00
alyosha-tas da6ea1ec9f GBHawk: general clean up and minor bug fixes 2020-10-11 17:48:08 -04:00
YoshiRulz 24d07121e2
Bump version 2020-10-11 18:31:15 +10:00
YoshiRulz fa83861501
More GitLab CI changes
* Revert 21a476200 ("Add timestamp update step", which was ineffective)
* Use `needs` to declare job dependency graph
* Replace Docker image for Ubuntu w/ minimal Debian image
* Add `build_ext_tools` job (scheduled pipelines only)
* Rename `package` job to `package_windows` and add `package_linux` (runs the
same script but then makes a `.tar` which becomes `.tar.zip`)
* Misc. cleanup
2020-10-11 16:59:04 +10:00
YoshiRulz 21a476200e
Add timestamp update step
I swear I did this already but it's not in the commit history
2020-10-08 08:12:50 +10:00
YoshiRulz 0084891635
Add script for updating VersionInfo, teach GitLab CI to build releases 2020-10-08 07:37:01 +10:00
adelikat ab28dbc501 NesHawk - default to 1 plugged in controller, instead of 2, we want to consistently start cores with 1 standard peripheral 2020-10-07 10:57:32 -05:00
alyosha-tas f0508df4ae GBHawk: Fix alignment of sprite evaluation when window is activated 2020-10-05 23:27:42 -04:00
YoshiRulz 7d1133ff9c
Cleanup Timestamp ctor(String) 2020-10-06 06:54:12 +10:00
YoshiRulz 9bd25a1aa1 Move some sound internals to Client.Common 2020-10-06 06:39:57 +10:00
YoshiRulz 49ef7a7a55 Move some DisplayManager internals to Client.Common 2020-10-06 06:39:57 +10:00
YoshiRulz adc1fefd14 Remove unused import
accidentally added in d1257e302?
2020-10-06 06:39:57 +10:00
alyosha-tas a52c2e79aa GBHawk: some window clean up and pass new scroll + sprite tests 2020-10-05 16:30:07 -04:00
adelikat af5dfc454c add in uzebox framerate 2020-10-04 16:30:45 -05:00
zeromus 593c01a9e0 octoshock - fix some irregularities in savestate quality. this is intended to address #2214, and at least it passes the "first 60-100 frames in tastudio integrity test" test case given, but I still can't promise it's perfect. 2020-10-04 00:44:35 -04:00
zeromus f561e79489 add provision for saving mismatching state frames in tastudio integrity checker 2020-10-03 23:53:46 -04:00
nattthebear 6ee62023a2
Re-add M3U capability (#2390)
Only supports optical disks.
2020-10-02 00:32:56 -04:00
alyosha-tas 38838fa3c1 GBHawk: fix window latching, x-scroll only latching lower 3 bits, and MBC3 RTC reg behaviour. 2020-10-01 20:09:26 -04:00
alyosha-tas 7ebc3a3058 GBHawk: FiX serial port emulation (somewhat) and cleanup some minor bugs 2020-10-01 15:17:58 -04:00
YoshiRulz 60da770532
Replace goto without throwing 2020-10-02 04:19:01 +10:00
zeromus f363acd16a Revert "Replace goto" (goto is superior to throwing an exception in unexceptional codepaths)
This reverts commit f22f5b732b.
2020-10-01 14:11:41 -04:00
YoshiRulz e31893fbf0
Fix GitLab CI creating artifacts with an extra top-level dir 2020-10-02 03:32:26 +10:00
YoshiRulz 17f7996bbe
Port missing steps from Batch script to shell script (fixes #2353)
Now GitLab CI builds need a Docker image with p7zip (I went with Ubuntu Focal)
2020-10-02 01:38:06 +10:00
YoshiRulz f119ab40a8
Fix capitalisation of /output/Shaders in packaging scripts 2020-10-01 22:45:33 +10:00
YoshiRulz 251d3f91df
Make omitting access modifiers (SA1400) an error 2020-10-01 22:41:35 +10:00
YoshiRulz f22f5b732b
Replace goto 2020-10-01 22:33:41 +10:00
YoshiRulz ac5d53b44e
Code style: add explicit private modifier 2020-10-01 22:33:37 +10:00
YoshiRulz 03f82226cf
Cleanup GetRelativePath after move from MultiDiskBundler
fixes 5d001f3aa
2020-10-01 22:33:32 +10:00
nattthebear 7f4d29d0ff Revert "resume m3u support by turning the m3u to an xml game and then loading that. fixes #2378"
This reverts commit 8da5525819.
2020-10-01 08:17:30 -04:00
zeromus 8da5525819 resume m3u support by turning the m3u to an xml game and then loading that. fixes #2378 2020-10-01 03:40:19 -04:00
zeromus 5d001f3aa9 put MultiDiskBundler's GetRelativePath() in PathExtensions.cs. but I didn't end up using it... 2020-10-01 03:12:42 -04:00
zeromus 99f9b9b447 rename GetTempFilename `extension` arg to make it clear that you should provide the dot... 2020-10-01 03:02:13 -04:00
zeromus 3fd7e11f60 small improvements to MultiDiskBundler 2020-10-01 02:24:17 -04:00
adelikat 995993357f
StateManager - increase performance when there are a lot of states, fixes issue #2428 (#2433)
* StateManager - switch from SortedSet to List<int> + duplicate checks.  Seems to make raw capture speed to be slighly slower, but greatly speeds up invalidate which speeds up painting

* Add SortedList<T> : ICollection<T> which wraps List<T>

More interfaces can be added as needed. There's an indexer though ICollection
doesn't specify one.

* Update SortedList<T>

* StateManager - use SortedList<int>, seems to offer raw unthrottled drawing speed with no drawbacks, painting is still smooth when there is a high number of states

* remove a space

* Add RemoveAfter to our SortedList for efficiency

* fix unit tests to use [DataRow]

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
Co-authored-by: RetroEdit <30182911+RetroEdit@users.noreply.github.com>
2020-09-30 08:37:36 -05:00
alyosha-tas 7a4c5afce4 GBHawk: fix x-scroll latch and add some notes 2020-09-28 21:41:56 -04:00
RetroEdit 8449f9fcb8
Firmware Manager: replace unnecessary gotos 2020-09-28 15:34:28 +00:00
nattthebear d3f1d0f6ac Revert "Because the real GBA version of the GBC BIOS is quite obscure, a fallback is needed"
This reverts commit f3f70276df.
2020-09-27 22:32:55 -04:00
TiKevin83 f3f70276df Because the real GBA version of the GBC BIOS is quite obscure, a fallback is needed 2020-09-27 20:45:55 -04:00
zeromus 9884c93fbf Revert "Revert "Change build path of executables to output/dll but gooder""
This reverts commit f078709b6b.
2020-09-27 17:27:02 -04:00
zeromus cfbc148975 fix GB and SNES graphics viewers (and maybe others) due to incorrect (non-100%) windows DPI scaling setting 2020-09-27 17:26:44 -04:00
zeromus f078709b6b Revert "Change build path of executables to output/dll but gooder"
This reverts commit bb0e92a830.

I can't build again. e.g:
Unable to move file "..\..\output\BizHawk.WinForms.Controls.dll" to "../../output\dll/BizHawk.WinForms.Controls.dll". Cannot create a file when that file already exists.

We've failed twice now. Please give a rationale for why we have to move these files around.
2020-09-27 16:46:25 -04:00
YoshiRulz 96f4f24968
Fix weirdness in a specific rom loading scenario (fixes #2024)
Without this commit, choosing "Cancel" from a tool form's "Save changes?" dialog
(i.e. AskSaveChanges) while trying to load a rom from `File` > `Recent ROM`
would treat that recent rom as though it were missing. With this commit, an OSD
message is displayed instead.
This isn't the best fix. The return value from LoadRomInternal isn't even used
anywhere apart from LoadRomFromRecent, which is the only place the new out param
is used.
2020-09-28 05:10:40 +10:00
RetroEdit 3adcc26752
Simplify Gambatte's sync settings for selecting GBA (#2431)
Having GBA be a console mode is more straightforward for users to understand and a more logical way of arranging options. GBA is literally a console mode, not an additional modifier to a console mode.
2020-09-27 13:06:55 -05:00
adelikat e4d4c3a9d8 Lua - tastudio library - supress lua console updates when invoking tastudio methods that cause tool udpates, fixes #2172 2020-09-27 12:59:16 -05:00
RetroEdit b5cf9cb241
Restore Game Boy Pocket firmware to Acceptable
It does not have the same issues as early revisions of the GB/C boot roms
2020-09-27 17:13:41 +00:00
adelikat 32b7358f07 Macro tool - fix NRE on File -> Load Macro, fxies #2375 2020-09-27 11:16:18 -05:00
adelikat 32a20dcb3d Tastudio Markers - scroll to newly added marker instead of assuming it is the last in the list and scrolling to bottom, fixes #2350 2020-09-27 10:54:09 -05:00
adelikat c8a7c9d98f Tastudio - Markers - remove some nonsense code 2020-09-27 10:41:33 -05:00
adelikat 7920d148be InputRoll - auto-initialize MultiSelect to true, to match the DefaulValue attribute 2020-09-27 10:38:16 -05:00
adelikat 6a09bbce38 Branches - fix settings the designer barfed on in a previous commit, and a bit of cleanup 2020-09-27 10:35:58 -05:00
adelikat cc66ba81c9 Tastudio - branches - disable toolbar buttons and menu items that need specifically 1 branch selected when multiple branches are selected 2020-09-27 10:23:51 -05:00
adelikat a5884622c8 Tastudio - BookMarks - sanely handle updating toolbar buttons, fixes buttons not disabling when de-selecting 2020-09-27 10:15:19 -05:00
adelikat a0943000a3 InputRoll - fire selected index changed event on DeselectAll() 2020-09-27 10:10:30 -05:00
adelikat 33c8808ee4 PSX - initialize with a single controller + memcard instead of two, to be consistent with other cores 2020-09-27 09:59:05 -05:00
adelikat ad9a04d918 Lua Console - fix Session saving saving the session filename instead of the script filename, fixes #2400 2020-09-27 09:48:45 -05:00
adelikat 725cee8b62 Ram Search - persist Use Undo History, and also set it to true by default, fixes #2413 2020-09-27 09:32:34 -05:00
adelikat 63f9de42a7 Tas Profile - fix mistake of snes9x being the snes core instead of bsnes. Also turn off GBC in GBA setting, after discussing with tasvideos staff, this setting is specifically preferred to be false. 2020-09-27 09:10:15 -05:00
RetroEdit cf58dd8ad1
Minor GB/C and PCFX firmware detection revisions (#2430)
Change the status of alternate GB/C firmware options to unacceptable. Quoting from CasualPokePlayer "Gambatte is definitely not emulating those cpus [dmg0 and cgb0]. So you would end up with quirks of newer cpus being combined with bootroms only present in older cpus."

Also fix what looks to be a longstanding typo where the PCFX BIOS v1.01 was not being properly detected.
2020-09-27 13:30:12 +00:00
TiKevin83 a932cce636 Revert "initial attempt at a firmware fallback for Gambatte's clean room patch"
This reverts commit be25ad0bc8.

Meant to push this to a different branch for PR
2020-09-26 19:14:20 -04:00
TiKevin83 be25ad0bc8 initial attempt at a firmware fallback for Gambatte's clean room patch 2020-09-26 19:12:58 -04:00
YoshiRulz bb0e92a830
Change build path of executables to output/dll but gooder
fixes 5ae13a230, 49a18d83b
2020-09-27 02:28:42 +10:00
YoshiRulz c0b755a33b
Recompile Cygne, Handy, mGBA, and QuickNes for Linux 2020-09-26 22:19:02 +10:00
YoshiRulz 66eceac5fa
Allow compilation of QuickNes lib on Linux 2020-09-26 22:06:39 +10:00
James Groom b99bfa4892
Add note under libdarm re: submodule 2020-09-26 21:58:41 +10:00
zeromus 49a18d83bf I don't know what the fuck this is, and I don't care. If I can't open the sln and debug emuhawk, then it's broken.
Revert "Change build path of executables to output/dll"
2020-09-26 00:47:10 -04:00
alyosha-tas bac502671f GBHawk: rewok interrupt handling to pass more tests and behave like gambatte on Gensan 2 2020-09-25 20:19:53 -04:00
alyosha-tas 39f6668f18 dual gameboy: fix XML generation and core preference selection 2020-09-25 09:12:33 -04:00
alyosha-tas 7e7713c955 GBHawk: fix color displayed when BG is off 2020-09-24 17:26:50 -04:00
nattthebear 7ea7f75f50 Fix some arm disassembly stuff
Some random code which is trying to align columns or something gets pooped up because "BLX" has no second part
2020-09-24 14:52:28 -04:00
nattthebear fe929c0c55
Fix SGB core picker which was broken (#2422)
* Fix SGB core picker which was broken

* Restore default SGB core choice of SameBoy

In 2.4.2 and before, SameBoy was implicitly the default, but this makes the choice more explicit and the core picker UI properly show the chosen core when nothing has been selected yet.

* Cleanup core picker UI gen

* Remove now defunct SgbUseBsnes option from Config

Co-authored-by: RetroEdit <30182911+RetroEdit@users.noreply.github.com>
Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2020-09-24 09:23:12 -04:00
nattthebear 757ac4e27e Fix crash saving zwinder state manager when things align a certain way 2020-09-23 22:03:37 -04:00
YoshiRulz 276e8ab185
Fix compilation of ext. tools, fix style warnings in AutoGenConfig 2020-09-23 21:51:32 +10:00
YoshiRulz f8e624befe
Create common property IsTargetingNetFramework
* if true, will add reference assemblies <PackageReference/>
* slightly less dumb <Move/>
2020-09-22 22:11:00 +10:00
YoshiRulz 1fdd2d5eb1
Import MainSlnCommon.props in MainSlnExecutable.props 2020-09-22 20:51:36 +10:00
YoshiRulz 5ae13a2309
Change build path of executables to output/dll
* post-build step moves .exes up a level, to output
* also fixed OpenTK.dll.config location
* also removed redundant step from packaging scripts
* future executables need to be capable of resolving assemblies in dll
2020-09-22 09:39:53 +10:00
YoshiRulz 000e2af543
Extract .props for executable projects 2020-09-22 09:33:53 +10:00
YoshiRulz da26a18bf5
Remove redundant <AppendTargetFrameworkToOutputPath/> 2020-09-22 09:33:49 +10:00
YoshiRulz 877bb2ccea
Move Assets to output <Target/> to BizHawk.Common 2020-09-22 09:33:44 +10:00
zeromus c64fb11d0d dialogs shouldnt be opened without an owner. so give all them an owner. fixes #2420 2020-09-21 13:11:28 -04:00
YoshiRulz fb5a5ed78c
Add libdarm.so, migrate Darm class to BizInvoker
`Tools` > `Debugger` no longer crashes immediately on Linux with mGBA core
2020-09-21 01:38:09 +10:00
YoshiRulz 0bdd1b6d64
Add libdarm submodule and build script 2020-09-21 01:37:27 +10:00
Moritz Bender e5d04e1e52
Fix tasproj backup files getting saved with savestates / greenzone (#2416) 2020-09-20 09:31:48 -05:00
Ethan Arns 8391be5ae7 Added Pop_OS support 2020-09-20 05:24:00 +10:00
RetroEdit b1a64e2212
Broaden usage of TAStudio-specific movie-loading. (#2411)
* Broaden usage of TAStudio-specific movie-loading.

fixes #2386

* TAStudio drag-drop: use LoadMovieFile for consistency
2020-09-18 20:08:49 -05:00
James Groom a5d166cf71
Partial fix for #2353 (files in dev builds) (#2410)
* Move .so libraries to dll dir, update some build scripts

* Move OpenTK.dll.config with OpenTK.dll

* Keep EmuHawkMono.sh in Windows-built artifacts

* Add Package.sh to match QuickTestBuildAndPackage.bat

used as `Dist/BuildRelease.sh && Dist/Package.sh`

* Update GitLab CI to use Package.sh
2020-09-18 20:08:34 -05:00
nattthebear 302b12cda8 Remove infinite loop on certain stream copy failures
Instead we get an error message now
2020-09-18 18:10:40 -04:00
RetroEdit 0d72cd901a
Replace SelectionFocused variable I accidentally added 2020-09-18 20:38:10 +00:00
RetroEdit 9e4f81e3a4
Markers/branch multi-selection (#2409)
Fixes #2215 

* Make marker/branch columns use ColumnType.Text

One step towards fixing multiselect for markers and branches

* Disable some input operations while TasView is unfocused

This prevents accidentally deleting inputs while branches or markers are selected.
2020-09-18 19:39:04 +00:00
adelikat 0ecd155758 Lua console - enable multi-select, InputRoll - refresh on select/deselect all, fixes #2401 2020-09-18 14:29:46 -05:00
RetroEdit 35754469aa
Select only the new branch when created, fixes #2405 2020-09-17 22:34:00 +00:00
YoshiRulz b6a3c20b49
Code style: Remove a redundant semicolon 2020-09-18 07:28:11 +10:00
YoshiRulz 727c6bc51f
Make ToolFormBase implement IToolForm 2020-09-18 07:28:08 +10:00
YoshiRulz 8aa3dcf72f
Remove ToolFormBase.Config and use base property
The non-weird init in ToolManager can't pass in the ctor because 1. Config is
written to in Restart as well as Load and 2. it's a base class and that's not
how ctors work and I should know this
2020-09-18 07:27:59 +10:00
YoshiRulz 9a6b853a49
Fix line breaks in two labels in OpenAdvancedChooser (fixes #2407)
fixes 64d14a7f9
2020-09-18 02:52:42 +10:00
alyosha-tas 2f01ac2212 GBHawk: add in missing variable to state 2020-09-16 20:54:51 -04:00
zeromus 714fd0fddc someone also needs to update the batch files themselves, and the README 2020-09-16 06:50:59 -04:00
zeromus 3c8a1a5286 fix appveyor 2020-09-16 06:42:40 -04:00
zeromus 09a9bfbc2f rename dist batch files so mistakes are less likely. 2020-09-16 01:13:53 -04:00
YoshiRulz afbce436cd
Restore FormBase.WindowTitleStatic semantics without breaking Designer
fixes daf6f516c which fixed regression in aa1de1c9d
2020-09-15 13:47:51 +10:00
scrimpeh 70b695a456 TAStudio: Disengage TAStudio after loading .bk2 2020-09-14 15:14:06 -05:00
nattthebear 507e818374 Fix the faust core so it actually runs again 2020-09-14 07:23:00 -04:00
YoshiRulz aa74209b3a
Use .so in OAC for Libretro cores on Linux 2020-09-14 16:20:38 +10:00
YoshiRulz 5ed192c5ce
Bump version 2020-09-14 16:19:07 +10:00
zeromus 82c4fa4881 re: #2393 - fix something related to ed9b7b3eb1 (maybe) 2020-09-13 21:16:12 -04:00
adelikat 284af73b14 nes palette viewer - dont' new up brushes on every draw 2020-09-13 12:52:37 -05:00
adelikat 5c5438ea18 add advanced config option that will remove the "Mixed" key priority when clicking the statubar icon or pressing hte hotkey 2020-09-13 12:23:15 -05:00
adelikat 40fe4b3022 Merge branch 'release' 2020-09-13 11:10:38 -05:00
adelikat f104807193 update version info 2020-09-12 20:36:29 -05:00
adelikat 043ec74206 set Faust release flag to true 2020-09-12 09:26:04 -05:00
YoshiRulz 17440fad2f Fix crash when painting selected row backgrounds in InputRoll 2020-09-12 09:22:58 -05:00
nattthebear d619a3c7c3 Fix two mostly unrelated nyma settings issues
Mednafen has extra aliases of enum values that we don't need here and were confusing the system.  Now, NGP no longer has three different "English" options for language.
Internal Mednafen code expects MDFN_GetSettingB ("bool") to work with enum values, so long as those enums are 0 and 1, but we weren't handling that.

Fixes #2385
2020-09-12 09:22:28 -05:00
adelikat 76c97e49e7 Ram watch - clear on screen watches when doing fast updates, fixes #2379 2020-09-12 09:20:29 -05:00
zeromus be98f272f2 remove parallel from watchlist 2020-09-12 09:20:14 -05:00
nattthebear b1267b22df Rework and fix up invisible allocations and sound/video format init in nyma cores.
See the submodule commits for the tech details.  Fixes #2365.  As a side effect, Faust state sizes should be moderately smaller now.
2020-09-12 09:19:33 -05:00
YoshiRulz 5099614dbe Disable "Stay on Top" setting of IToolFormAutoConfigs on Unix 2020-09-12 09:18:17 -05:00
YoshiRulz f6dde5914d Prevent trying to load VB.NET assembly on Linux 2020-09-12 09:17:30 -05:00
alyosha-tas a0c35b397e GBHawk: Fix start up screen color. 2020-09-12 09:16:33 -05:00
YoshiRulz 15deab90e5 Fix typo
forgot to stage this -_- fixes d1de18119
2020-09-12 09:15:53 -05:00
YoshiRulz 27d4bfc8b9 Fix de/serialisation of .tasproj MovieVersion header (fixes #2377)
.tasproj files written from both American/global and European PCs will now load
anywhere. No new files will use ',' in the header, only '.'.
2020-09-12 09:15:27 -05:00
YoshiRulz d48bea5056 Fix joypad.setanalog implementation and docs (fixes #2310) 2020-09-12 09:12:54 -05:00
YoshiRulz 99440b6095 Change IJoypadApi methods from float to int, allow null in SetAnalog
also from Dictionary<,> to IDictionary<,>
2020-09-12 09:12:16 -05:00
alyosha-tas 12c5658050 GBHawk: Add note to use existing SRAM sync setting, fixes #2354 2020-09-12 09:10:50 -05:00
YoshiRulz f07c24cfcc
Fix crash when painting selected row backgrounds in InputRoll 2020-09-12 21:14:25 +10:00
nattthebear ddd229e03d Fix two mostly unrelated nyma settings issues
Mednafen has extra aliases of enum values that we don't need here and were confusing the system.  Now, NGP no longer has three different "English" options for language.
Internal Mednafen code expects MDFN_GetSettingB ("bool") to work with enum values, so long as those enums are 0 and 1, but we weren't handling that.

Fixes #2385
2020-09-10 08:05:11 -04:00
adelikat d1257e302b Ram watch - clear on screen watches when doing fast updates, fixes #2379 2020-09-09 13:28:52 -05:00
adelikat 2c2fd3ca0c
update broken link in readme
artifacts not artifaces
2020-09-09 13:18:06 -05:00
adelikat 48b7980cb9 Revert "some fixes to input roll drawing, but it is massively messed up"
This reverts commit 23fcb4c1a0.
2020-09-09 12:38:41 -05:00
zeromus 23fcb4c1a0 some fixes to input roll drawing, but it is massively messed up 2020-09-08 19:51:16 -04:00
zeromus daf6f516c6 fix bugs from aa1de1c9d2 that made tool windows undesignable 2020-09-08 19:35:42 -04:00
zeromus e840a32ccc remove parallel from watchlist 2020-09-08 19:29:40 -04:00
YoshiRulz bf3f037bd7
Enable SA1212 and fix non-compliance
"Property accessors should follow order" (setter should not come before getter)
2020-09-08 22:23:10 +10:00
YoshiRulz 0dd89de0d8
Enable SA1205 and fix non-compliance (except in Cores)
"Partial elements should declare access" (type decl. modifier not copied across
all parts)
2020-09-08 22:14:47 +10:00
YoshiRulz 5488c80f4d
Enable SA1400 and fix noncompliance (except in Cores)
"Access modifier should be declared"
2020-09-08 21:57:14 +10:00
YoshiRulz 4bf50e6e51
Fix docs/strings/identifiers copypasta'd between various Hawk cores
A2600 standard controller and A7800 standard controller were using the same
keybinds, now only Atari2600Hawk uses those and A7800Hawk's are blank unless
configured manually or configured on config regen
2020-09-08 12:02:53 +10:00
nattthebear 6047a12ad8 Rework and fix up invisible allocations and sound/video format init in nyma cores.
See the submodule commits for the tech details.  Fixes #2365.  As a side effect, Faust state sizes should be moderately smaller now.
2020-09-07 11:08:09 -04:00
YoshiRulz d170972e3c
Cleanup various Hawk cores' controller decks
The main point is referencing types directly instead of iterating them by
reflection and also calling their ctors by reflection.
(disclaimer: [DisplayName] attrs are still necessarily read by reflection)
2020-09-08 00:05:35 +10:00
YoshiRulz 329a7de8b8
Disable "Stay on Top" setting of IToolFormAutoConfigs on Unix 2020-09-07 22:43:54 +10:00
YoshiRulz f1ef8c64cb
Make *.ReflectionCache.Asm props private 2020-09-07 22:36:24 +10:00
YoshiRulz f7ccb7dfca
Change signature of CoreInventory ctor 2020-09-07 22:35:14 +10:00
YoshiRulz e10e139f10
Encapsulate Assembly.GetManifestResourceStream in *.ReflectionCache 2020-09-07 22:31:38 +10:00
YoshiRulz 209fbc6de0
Add and use ReflectionCache classes 2020-09-07 22:01:26 +10:00
YoshiRulz 9325e2f002
Prevent trying to load VB.NET assembly on Linux 2020-09-07 22:01:03 +10:00
alyosha-tas 2a285af5ae GBHawk: Fix start up screen color. 2020-09-06 19:00:11 -04:00
YoshiRulz aa1de1c9d2 Unify setting of window titles, add static title option (fixes #1996)
The only forms that did anything special with their window title were Basic Bot,
CDL, Hex Editor, Log Window, MainForm, and TAStudio. That behaviour is in
WindowTitle, while the rest use WindowTitleStatic.
The implementations of WindowTitleStatic in those six forms are new. There's a
checkbox in `Config` > `Display...` > `Misc` to disable their special behaviour
and use the new static titles.
The Text property is hidden from Designer de/serialisation as well.
2020-09-06 16:18:08 -05:00
YoshiRulz 2c77f76a67
Fix typo
forgot to stage this -_- fixes d1de18119
2020-09-06 09:43:36 +10:00
YoshiRulz d1de181194
Fix de/serialisation of .tasproj MovieVersion header (fixes #2377)
.tasproj files written from both American/global and European PCs will now load
anywhere. No new files will use ',' in the header, only '.'.
2020-09-06 09:36:08 +10:00
YoshiRulz 8e72dddd41
Set menu de/activate handlers on tool form MenuStrips (fixes #2281)
these call methods on MainForm, which decides whether or not to pause/unpause
2020-09-05 18:49:29 +10:00
alyosha-tas 1c5f9fccb3 O2Hawk: Mostly fix 4 in a row 2020-09-04 19:46:49 -04:00
RetroEdit aa00184737
Revert "DeveloperBuild = false"
This reverts commit e524f3e4e5.
2020-09-03 20:15:44 +00:00
RetroEdit cd499b2378
Merge branch 'release' 2020-09-03 20:14:45 +00:00
RetroEdit f3f5774bbb
Fix new bugs from painting during auto-restore
fixes #2371
2020-09-03 19:38:05 +00:00
RetroEdit 1f19281ed1
Merge pull request #2372 from TASVideos/painting-auto-restore-fix
Fix new bugs from painting during auto-restore
2020-09-03 19:08:20 +00:00
RetroEdit 98498f9d50
Fix new bugs from painting during auto-restore
fixes #2371
2020-09-03 18:11:37 +00:00
YoshiRulz 242dcf04c7
Fix joypad.setanalog implementation and docs (fixes #2310) 2020-09-03 09:32:45 +10:00
YoshiRulz e77631922e
Change IJoypadApi methods from float to int, allow null in SetAnalog
also from Dictionary<,> to IDictionary<,>
2020-09-03 09:32:12 +10:00
alyosha-tas 1ed9adf3cb GBHawk: Add note to use existing SRAM sync setting, fixes #2354 2020-09-02 17:24:40 -04:00
nattthebear c1a113ce24 fix NRE
closes #2363
2020-09-02 11:09:22 -04:00
nattthebear 7bca0426bf fix NRE
closes #2363
2020-09-02 11:07:39 -04:00
YoshiRulz affd1914c2
Change default input method on Windows to DirectInput
for the record I think this is a bad idea
2020-09-02 07:50:38 +10:00
YoshiRulz 1793e991ca
Move Windows version check to OSTailoredCode and cleanup 2020-09-02 07:47:57 +10:00
adelikat dbddcfe665 input widget - delete deafult ContextMenu property, this was done to supress the context menu, but we supress it by other means, fixes #2222, for real this time 2020-09-01 12:52:41 -05:00
adelikat 36b7d9df28 lua functions list - convert from using ContextMenu to ContextMenuStrip, fixes #2222 2020-09-01 10:56:00 -05:00
RetroEdit f3bc89055b Remove default joypad bindings for fast-forward/rewind. Fixes #2297 2020-09-01 09:33:56 -05:00
YoshiRulz a89b0dfdcd
Split TargetedPairSchema.MaxValue to MaxX/MaxY and cleanup
* split TargetedPairSchema ctor and added docs to clarify its behaviour
* renamed VirtualPadTargetScreen.RangeX/RangeY to MaxX/MaxY
* left TODOs in the three places MaxValue was actually used
2020-09-01 09:07:06 +10:00
YoshiRulz 509560fa1a
Use RangeTo extension 2020-09-01 08:23:00 +10:00
YoshiRulz 10ac846256
Chain ExceptionBox ctors 2020-09-01 08:21:24 +10:00
YoshiRulz 15c5cd516c
Rename AxisSpec.Mid to Neutral (resolves #2345) 2020-09-01 08:09:02 +10:00
YoshiRulz 8e4c774169
Re-add VB.NET to Linux dep list
didn't do enough double-checking :(
2020-08-31 12:22:28 +10:00
adelikat e524f3e4e5 DeveloperBuild = false 2020-08-30 11:54:48 -05:00
adelikat 5b93ef14dc update version info 2020-08-30 11:49:48 -05:00
James Groom 1917613c6c
Update readme (squashed #2270) 2020-08-31 02:45:59 +10:00
adelikat 33b1bdfcae Tastudio - fix obvious mouse up typo, if we are going to invalidate from _paintingMinFrame, then we should compare against it, fixes #2351 2020-08-30 11:36:17 -05:00
adelikat e46de9e5c3 Virtualpads - fix single axis controls being tied to each other, fixes #2351 2020-08-30 11:21:50 -05:00
YoshiRulz d5c24b3671
Rebuild mGBA .so 2020-08-31 01:51:32 +10:00
adelikat 8b46500e32 Tastudio greenzone settings dialog - fix positioning a bit 2020-08-30 09:10:40 -05:00
feos 2e88ddf3c5 description typos 2020-08-30 15:26:58 +03:00
RetroEdit d3c5bb4990
TAStudio: Fix a typo in tasproj import message 2020-08-30 12:05:16 +00:00
feos eed111bd8b update mgba to 6d754eef3288362c1d4cc40f9a459533baff3f64 2020-08-30 11:58:19 +03:00
adelikat b4d89da5d3 be more careful with using gapFiller, it's important that the state not get out of order 2020-08-29 19:21:13 -05:00
adelikat e98a12eaa3 TAstudio - check initializing flag when doing draw callbacks, in fluky circumstances, a draw can be invoked while trying to load a new movie 2020-08-29 18:36:38 -05:00
adelikat 9db5ee2e7b hack to fix Tastudio loading when importing an existing bk2 2020-08-29 18:14:54 -05:00
YoshiRulz 7e99989746
Omit ".exe" from FFmpeg on Unix, and hack a note into the downloader 2020-08-30 09:03:18 +10:00
YoshiRulz 252e878b53 Disable single-instance mode on Unix so we can drop VB.NET dependency 2020-08-30 07:19:36 +10:00
YoshiRulz 45063aa6fa Add helper for when calling .GetTypes() on EmuHawk assembly 2020-08-30 07:19:36 +10:00
YoshiRulz 3179dc8ebe
Put IComm.WebSockets and Lua comm.ws_* behind #ifdef ENABLE_WEBSOCKETS
Not confident in the API shape, especially for ApiHawk
2020-08-30 06:35:31 +10:00
YoshiRulz c137252211
Recompile libmgba.dll.so 2020-08-30 06:12:53 +10:00
YoshiRulz dc7f5ef7a2
Fix typo
fixes a11a7017a
2020-08-30 05:52:50 +10:00
RetroEdit e5a4bdb0eb
Update the mGBA dll to finish fixing #1620 2020-08-29 19:45:03 +00:00
adelikat 1671cd32c4 GBA virtual pad - adjust size so light sensor actually shows 2020-08-29 13:49:06 -05:00
James Groom a11a7017a7
Fix scaling of axes (#2334)
* Cleanup NormalizeAxes

no behaviour change yet

* Use a more sensible scaling algorithm in NormalizeAxes

* Replace AxisSpec.FloatRange with AxisSpec.Range (ints)

* Use 0..255 for GBA light sensor, and set its Mid to 0 (fixes #2323)
2020-08-29 13:39:48 -05:00
RetroEdit 4456e84bf0
mGBA: Update SaveRAM mem domain to a hardcoded size. (#2311)
* Revert "mgba - try resetting sram memdomain after frame advance, so sram autodetection can progress and feed into frontend. addresses #1620, maybe not in the best way"

This reverts commit 25327b510d. We decided exposing the whole buffer would be better than dealing with a variable size memory domain.

* mGBA: Update SaveRAM mem domain to a hardcoded size.
2020-08-29 13:38:02 -05:00
RetroEdit cdf20ff1be
TAStudio: improve saving behavior (#2337)
* TAStudio import: ask before saving the bk2

* Only save cycle count at movie end; fixes #2203

* Rework the movie end cycle count warning.

* TAStudio import: allow saving even if no changes are detected
2020-08-29 13:33:13 -05:00
YoshiRulz 56b9ec2350 Add warning for loading config.ini from an older or new version
applies on startup and on `Config` > `Load Config From...`
also changed wording for corrupted config.ini warning
2020-08-29 13:29:12 -05:00
adelikat a421a60a20 restrict ZwinderStateManagerSettings to reasonable values 2020-08-29 13:18:02 -05:00
nattthebear 6de742b01b Revert a series of questionable zwinder changes
These all seem to have been made from the point of view of testing every possible value the UI allowed, and then fixing them all with as little effort as possible, with the fixes going deep in core logic instead of in the validation layer, and the fixes not making anything really "work"; just making it stop complaining.

ZWinderBuffers now require TargetFrameLength >= 1 again: A value of zero doesn't make much sense here, and didn't actually behave differently than 1.
ZWinderBuffers now require Size > 0 again: A size 0 buffer will never capture anything and has no value.  If you don't want a buffer, don't make one at all.  I believe that omitting some buffers might make sense for the state manager, maybe; those more familiar with all of its uses will have to chime in.  If that is the case, then the state manager should not instantiate buffers it does not plan to use.
ZWinderBuffers now throw exceptions again when a single state is bigger than the entire buffer:  If you're in this situation, things are phenomenally broken and your buffer is never going to capture anything successfully.  Users need to fix their settings in this case; they don't need to have a completely non functional system silently claim to work while not doing anything, leaving them befuddled as to why seeking is taking forever.
2020-08-29 12:42:25 -04:00
adelikat 39ac8864b6 TasMovie loading, simplify a bit by not relying on the existing instance of TasStateManager to hold onto settings 2020-08-29 11:32:41 -05:00
adelikat be6b1fa6e4 consolidate propertygrid heigh changing logic 2020-08-29 11:27:00 -05:00
adelikat 0951ef084f Tastudio - rework greenzone settings dialog to fix long descriptions, winforms is bad, this shouldn't have been this hard 2020-08-29 10:49:28 -05:00
adelikat 4b8cb22aba savestate history settings dialog - designer auto-gen 2020-08-29 10:49:28 -05:00
adelikat 991deee549 attempt to document ZwinderStateManagerSettings settings better 2020-08-29 10:49:27 -05:00
zeromus 234642ed0d fix some crashes in CDL. things were rough enough for CDL due to tool open/close and core life cycle being wrecked, but it totally melted down when CDL got sent through the service injection stuff, so this has been pretty broken for years now 2020-08-28 19:09:07 -04:00
zeromus f89840234d minimally fix nes CDL which was broken 3 years ago 2020-08-28 19:02:21 -04:00
zeromus 56082ddf44 move stackalloc in CDL 2020-08-28 18:50:11 -04:00
SuuperW 8789827100 instead of throwing an exception when the buffer is smaller than the state, don't capture the state 2020-08-28 16:30:50 -05:00
SuuperW 46de6aca94 don't throw exceptions when passing a BufferSize or TargetFrameLength of 0 to a ZwinderBuffer
size 0 means 0 states will be captured; TargetFrameLength 0 means no spacing of states (result behavior is identical to TargetFrameLength of 1; capture every frame)
2020-08-28 16:30:36 -05:00
YoshiRulz 14653fac0e
Fix or mute remaining code style warnings 2020-08-29 00:52:23 +10:00
YoshiRulz 17ff66c61b
Opt-in to .NET 5 SDK's extra static analysis, update Analyzer packages
the extra CSxxxx rules should be available for Framework too if using the new
SDK, I haven't tried
2020-08-29 00:51:34 +10:00
YoshiRulz 52a559908e
Update Config.LastWrittenFrom/Detailed when saving 2020-08-28 06:15:59 +10:00
zeromus faa3d52500 not sure why we create two tasstatemanagers when engaging tastudio... i guess one is used in case theres existing data (even if theres no existing data). anyway, this fixes the leak 2020-08-27 15:50:49 -04:00
zeromus 46c15f94a9 mupen sln: remove x86 configuration so nobody can use it on accident 2020-08-27 15:43:34 -04:00
zeromus f33ac3cce6 change how mainform disposes itself. it seems we can be disposed from deep inside winforms, likely when the window is closed. changed to not accidentally run dispose again 2020-08-27 15:42:32 -04:00
zeromus 0b73ed77ef update mupen to build on vs2019 so it's simpler for people to hack on. gliden64 has a rendering bug (top left quarter of screen drawn only on nintendo logo on donkey kong 64) when build in vs2019 so I didn't change that one. maybe we need to update gliden64 or find the real bug (likely a numerical instability, despite the use of precise floating point). 2020-08-27 15:41:20 -04:00
zeromus 0cff659608 tired of seeing zwinder spam 2020-08-27 15:41:20 -04:00
RetroEdit 7aea4e0271
TAStudio: properly resume playback after painting. (#2340) 2020-08-27 13:58:19 -05:00
YoshiRulz 08e24c96a7
Skip "run third-party code?" warning when using --open-ext-tool-dll 2020-08-28 04:48:57 +10:00
YoshiRulz 57acee9bd5
Remove unused field
fixes e128cb82f
2020-08-28 04:41:17 +10:00
YoshiRulz e128cb82f2
Add command-line switch --open-ext-tool-dll
takes an absolute path; or a relative path with or without `.dll` (relative to
ExternalTools)
2020-08-28 04:38:38 +10:00
adelikat 0109386049 dispose of TasStateManager 2020-08-27 09:22:30 -05:00
adelikat 41109d6fc2 apparently you need powers of 2 2020-08-26 20:14:30 -05:00
adelikat 950eac5be2 TasStateManager settings - make less aggressive RAM consumption defaults, 512mb total instead of 832mb 2020-08-26 16:03:29 -05:00
RetroEdit 00f8129b4d
TAStudio: Fix deletion crashing when deleting invalid indexes (#2339)
* TAStudio: Fix deletion crashing when deleting invalid indexes

The problem occurs when trying to delete a selection where some of the frames were valid, but the last displayed line (which is currently an extra non-input frame) was in the selection.

* LINQ alignment tweak
2020-08-26 08:18:24 -05:00
SuuperW 956b71060e fix an error with new logic in commit 6b63db8 2020-08-24 18:34:59 -05:00
SuuperW 6b63db80e2 give user the option to (attempt) keep or discard states when changing state history settings 2020-08-24 18:31:22 -05:00
SuuperW 4b6ff639ac allow user to change the state history settings for the currently open TAS project 2020-08-24 18:20:47 -05:00
nattthebear bbc9054517
rohmloader tweak (#2330)
When a missingfirmwareexception is encountered, do not fallback.  It's presumed that these cases are fixable by the end user.

Absolutely does not in any way fix #2327 - the user was emphatic that they had the BIOS file, so they must have hit some other situation.
2020-08-24 15:52:49 -04:00
adelikat 44d7603622 only apply gap filling at the start of the start of an interval. This addresses the "odd" behavior that if you have a gap of 10 in current, and navigate from frame 100 to 99, you get a state saved at 91 2020-08-23 20:40:36 -05:00
adelikat e6ceb1c323 slight tweak to default state manager settings, make the Gap size to target proportional to Current, so that it gets the same "state gap" 2020-08-23 20:22:01 -05:00
adelikat 354ccd1b23 ZwinderStateManager - when considering evicting from recent to reserved, don't assume the reserved is linear or has all gaps covered. Instead check for "nearby" states. This fixes the problem that any state prior to the first used marker would never get an "ancient" state. Technicalyl this will mean that a state can be _ancientInterval * 2 - 1 frames away from its nearest neighbor, but this should be close enough the desired behavior 2020-08-23 20:10:42 -05:00
adelikat 83686a5a15 slight refactor - MarkerControl.AddMarker, force the caller to pass in the frame instead of implicitely assuming Tastudio.Emulator.Frame when one is not passed on, only 2 places didn't pass a value in anyway 2020-08-23 19:27:27 -05:00
alyosha-tas 6501c48b13 GBHawk: make controller setting only effect MBC7 games 2020-08-23 20:08:43 -04:00
adelikat 7d2e18004f actually use the default TasStateManager settings from config when creating a new TasMovie 2020-08-23 18:16:41 -05:00
adelikat 16771bb6bf ZwinderStateManager - speedup and simply the Last property using StateCache 2020-08-23 17:56:01 -05:00
adelikat 1b0139ebc3
Majorly refactor ZwinderStatemanager to address # 2287 (#2321)
* rename highpriority to ReGreenZone, and add a comment, to better document what it is used for

* rename again, from regreenzone to gapFiller, rename settings too, make gap frame length 1000 instead of 10000

* oops

* merge original state with ancient, since we can never invalidate frame 0 anyway, it can safely be stored here

* unremove nonstate

* change ancient to reserved, in preparation for marker and branch states to go here, add more comments

* capture branch states as reserved, reconsider gap logic to account for the fact that a reserved state might be greater than the last current/recent state

* do not capture to reserved states if the state is already rreserved

* add a callback to check if a state is "reserved", client code wil return whether it is a branch or marker state.  Wire up reserved logic into eviction logic.  If reserved, go to reserved list, else evict

* add API for evicting reserved states, and wire it up to marker removal

* just in case

* a bit of renaming, add a unit test for an edge case that was broken with the Last property, add unit tests to cover it

* Revert "a bit of renaming, add a unit test for an edge case that was broken with the Last property, add unit tests to cover it"

This reverts commit b0d01ffacb058eb26c68a7fdccb0010d3bca40b2.

* fix AllStates using Concat() and OrderBy(), add unit tests for HasState and GetStateClosestToFrame()

* Fix InvalidateAfter and add tests

* make HasState() a lot faster

* durp

* convert reserved to a Dictionary

* fix count being off by 1 due to no longer correct assumption of there being a separate frame zero state

* a few cleanups

* clean up tests and use less ram, fix a few things that I broke that unit tests caught, yay unit tests

* implement IDisposable and use in unit tests

* fix SaveCreateroundTrip (for me at least), by using a smaller buffer allocation, also be pedantic and use zw.Settings in zw2 to ensure they match

* some tests for Count

* attempt to cache which states have frames, doesn't work, ZwinderBuffer on the last state before it wraps, doesn't behave as I expect, dunno if it is intended

* fix typo when evicting recent to reserved, cleanups, make unit test work

* oops

* cleanup and account for Gaps in unit test

* use StateCache for HasState, fix unit test accordingly

* use statecache to check if a frame exists during Capture, and do this first, before gap logic

* fix reserved logic in Clear, add a unit test for Clear

* fix Engage bug that was breaking loading movies, remove CaptureReserved from the API and instead, call the reserved callback in Capture

* use state.Size to minimize memory thrashing in AddToReserved()

* cleanup some comments

* when loading a tasproj from disk, build up the state cache, without this commit, loading an existing movie was unuseable

* reserve the frame before markers, not hte marker itself, users expect instant navigation to markers, and since we always navigate 1 frame before the target frame to emulate and get a frame buffer, this is the frame that must be reserved
2020-08-23 17:12:33 -05:00
nattthebear fb6924bd83 improve error message reporting in romloader
fixes #2320
2020-08-22 15:24:17 -04:00
alyosha-tas 8499f54127 GBHawk: CPU halt emulation fixes 2020-08-22 15:14:16 -04:00
nattthebear 1f84dcdeb2 zwinder rewinder - fix all sorts of funsies when the state count cap is reached 2020-08-22 14:58:35 -04:00
alyosha-tas 7423a00fbf Gambatte: use homebrew fast load BIOS files instead of Sameboy when use real bios is false 2020-08-22 14:02:30 -04:00
nattthebear 18780a8752
Fix GBC-AGB bios issues (#2317)
All six combinations (bios, no bios) X (dmg, cgb, cgb in agb) should work now

Closes #2100
2020-08-21 13:14:50 -04:00
zeromus 6dfb09167c update gambatte submodule and post new dll 2020-08-21 00:04:24 -04:00
alyosha-tas 6e8362eef0 GBHawk: make timer <> cpu loop interaction consistent 2020-08-19 11:58:06 -04:00
alyosha-tas 96fa21e238 GBHawk:Basic GBA timer glitch implementation 2020-08-17 17:45:55 -04:00
alyosha-tas 9736fb44ba GBHawk: timer improvements, GB mode 2020-08-17 15:15:23 -04:00
nattthebear 94b47787dc minor cleanup
This variable was used before, but I accidentally changed it out in the process of other refactoring.  No behavioral difference
2020-08-17 14:56:21 -04:00
adelikat 4153df9471 simplify and remove some code in O2 constructor 2020-08-17 11:52:09 -05:00
feos 47fe939b41 fix #2313 2020-08-17 18:40:15 +03:00
alyosha-tas 475b1ac211 GBHawk: timer improvements 2020-08-17 11:23:48 -04:00
adelikat 68701e05de zstatemanager - puting this mistake directly into master, its a nasty one, needs to be fixed immediately 2020-08-17 09:37:55 -05:00
YoshiRulz e8bc7d50dd
Use float math for polar<=>rect if either range is outside -128..127
also set the max of the polar magnitude NUD to the actual measured maximum
2020-08-16 18:53:39 +10:00
YoshiRulz 08c234dcf2
Make VirtualPadDiscManager.OwnerEmulator a readonly field and cleanup
Did this as a separate commit because it seems like the intent was for
OwnerEmulator to be mutable, though it was only ever set immediately after
creation. Revert to make it mutable again.
2020-08-16 17:28:48 +10:00
YoshiRulz b204d65afe
Set properties via ctors instead of obj init syntax and cleanup 2020-08-16 17:17:10 +10:00
zeromus bea796fb2d experimental "Frame Inch" designed to make quick presses of frame advance always do something (concerning #2303). 2020-08-15 23:13:26 -04:00
nattthebear 732afe6a9e When the frontend ui generates an empty controller bind, remove it instead of doing nothing
Fixes #2264
2020-08-15 13:34:23 -04:00
nattthebear 7adeebb59a
TurboNyma/HyperNyma - make SystemId = "PCECD" when in cd mode 2020-08-15 12:20:26 -05:00
nattthebear 77057d4b16 minor cleanup 2020-08-15 12:53:04 -04:00
adelikat 353ec518c7 update GB/GBC profile settings:
longplays - gambatte, require bios (per longplays request)
tas - gambatte, require bios, CGB in GBA (per tasvideos request)
2020-08-15 11:23:34 -05:00
RetroEdit 1f5128bf6b
zwinder: Make GetStateClosestToFrame actually get closest state. (#2291)
* zwinder: Make GetStateClosestToFrame actually get closest state.

* Clarify docs
2020-08-14 11:00:56 -05:00
RetroEdit e89449ed27
Input display: At movie end, show both last movie inputs and current inputs; fixes #2295 (#2305) 2020-08-14 10:49:06 -05:00
nattthebear 5ea32b875b rewinder UI - limit target frame length to 500000
I guess the 16383 came from looking at the code, but 16383 is a limit on the number of states (which also needs to be increased, TODO) not how many frames back those states go.  There is effectively no limit except numerical calculation limits on the target frame length; if you had room for only 10 savestates, but wanted to cover a 10 million frame range, we'd just save once every million frames
2020-08-14 10:20:02 -04:00
zeromus 1d87bcd29c Dispose MemoryBlock in zwinderbuffer (fixes #2304) 2020-08-14 08:12:44 -04:00
nattthebear 356dfcebdb Change the designer for rewinder to allow up to 32GB of rayums used
Since the rewinder scales in powers of two, we might want to reconsider how this control works
2020-08-13 21:14:34 -04:00
nattthebear 4062584719 zwinderbuffer: use memoryblock instead of junko .net arrays. This bad boy can hold more than 1GB of shite now 2020-08-13 21:08:48 -04:00
nattthebear 5d3b85ab9f Clean up and remove a lot of no longer used memory block stuff
All of the cool and quirky stuff it did was solely to support waterbox, which has its own native impl of this now.  So now it just lets you allocate memory and change protection on it.  Boring.  Note that the slot based callback system in waterbox gives constant function pointer addresses inside the box, so it doesn't matter where exactly CallingConventionAdapter is allocated.
2020-08-13 19:41:52 -04:00
RetroEdit ad07eb8574
Clean up truncate behavior and docs. Fixes #2285 (#2286)
* Clean up truncate behavior and docs. Fixes #2285

To start with, 770ddc26db (6 years ago, prior to 1.7.0) made the documentation of how truncate is supposed to work. However, judging by my testing of 1.9.0 and 2.4.2, it probably hasn't ever worked that way in practice. It seems justified to change the documentation to match the behavior that the user is familiar with, and what I see as the commonsense behavior anyway (I can justify this further if anyone is curious).

Note this is not changing the behavior of truncate itself; it is simply documenting what the behavior has always been.

Secondly, Invalidate was modified to become InvalidateAfter. This modifies how it gets called, but otherwise remains mostly identical internal to the Zwinder. This was done to make it easier to reason about relative to the input log, which should be the foundation for an understanding of related components.

* zwinder: "frame after" interpretation in all Invalidate methods
2020-08-11 17:53:27 +00:00
YoshiRulz 953a14016f
Fix phantom NRE from ProcessInput during some crashes on Mono
Pretty sure this only affected Mono. The infinite loop in ProgramRunLoop
continued even after the form was disposed (in the testing I did, this was
always during the call to CheckMessages). However, DisplayManager (actually
GlobalWin.DisplayManager) was cleared during disposal, so the call to
DisplayManager.UntransformPoint rightly threw an NRE. After this change, the
"real" stacktrace is still printed as always.
2020-08-11 16:11:28 +10:00
YoshiRulz 6f5028bfcf
Fix line breaks in label
see #2284
2020-08-11 13:41:45 +10:00
YoshiRulz ecfeecdb70
Make Bk2Movie type and ctor public 2020-08-11 12:36:14 +10:00
SuuperW 07d0688f45
Merge pull request #2268 from TASVideos/FixLuaMemoryReadWrite
Lua 16/32-bit read/write
2020-08-10 17:23:30 -05:00
zeromus aa49ac5cf2 change IRewindSettings to use a 'long' for buffer size, for the future. this makes math using it automatically be long. 2020-08-10 16:07:57 -04:00
zeromus 6b57c1e504 cap rewinder buffer size at 1024MiB 2020-08-10 16:07:20 -04:00
nattthebear 2feece847f
I don't understand why we're clearing the rewind buffer, but if we want to do that, just do it, and don't deallocate + reallocate many megs of ram on every loadstate (#2282) 2020-08-10 09:59:23 -05:00
alyosha-tas f08ab6dda8 GBHawk: disassemble second byte of STOP 2020-08-10 10:40:44 -04:00
zeromus 8fbd45b03f rewinder was being disabled as an approximation for clearing it when loading state while in a movie session. change it to actually just clear it (by recreating it). I decided this was safer than making the rewinder learn how to clear itself. Should fix #2280 2020-08-10 03:46:48 -04:00
nattthebear 337f71357e PCE cores - rework loading
The gods have decreed that PCECD will be PCE, so they all have to come in through the same constructor.  Fixes #2279
2020-08-09 18:00:43 -04:00
nattthebear 56e3642d5c Refactor how movie loading handles preferredCores
First of all, use a try..finally pair around the mutating calls to make it clear that Config.PreferredCores will always be rolled back, and to the correct value, after the operation is done.
Then, assume that when Movie.Core is set, we always want to prefer that core... no matter what system comes up.  Seems to fix #2259
2020-08-09 17:11:31 -04:00
nattthebear 5a0b49726e Revert "hack rom loader to keep doing the bullshit we've been doing for 8 years now, where Game.System == "GBC" results in an Emulator with a SystemID. Don't revert without volunteering to fix tasvideos"
This reverts commit 31bf9b9147.
2020-08-09 16:31:49 -04:00
adelikat 31bf9b9147 hack rom loader to keep doing the bullshit we've been doing for 8 years now, where Game.System == "GBC" results in an Emulator with a SystemID. Don't revert without volunteering to fix tasvideos 2020-08-09 15:29:41 -05:00
adelikat c844af3bbb RomLoader - remove an unused parameter in LoadOther 2020-08-09 15:15:26 -05:00
adelikat 729934aa42 unknown PCE-CD games should have PCE as the Game.System, to be consistent with the discs that can be properly identified 2020-08-09 15:11:35 -05:00
adelikat 3eca5286b5 DS - avoid allocating a byte buffer everytime a savestate is made 2020-08-09 11:47:52 -05:00
adelikat a2414f2b4e Tastudio - branches - enable multi-select and implement ability to remove multiple branches 2020-08-08 16:24:07 -05:00
nattthebear 5cbd1ed385 zwinder buffer - when saving to disk, only save what has actually been put in the buffer 2020-08-08 13:11:19 -04:00
adelikat 78b03cbdec remember to set pauseInterrupted = false, when responding to said flag. Use TasView mouse leave instead of form leave for leave logic, since form leave doesn't fire if you move your mouse too fast because winforms is bad. This fixes #2275 and #2258 2020-08-08 10:49:12 -05:00
adelikat b101df8235 Allow multiple marker selection, and multiple marker deletion, also dejunkify some hack workarounds that aren't needed anymore, and fix focus issues on input roll 2020-08-07 21:03:04 -05:00
Paul Kratt 05c5148610
Merge pull request #2277 from Sappharad/gpgx_ssfmapper
Migrate to latest MD cart mappers from GPGX upstream
2020-08-07 20:48:36 -05:00
adelikat 0818e40149 misc cleanups in client.common 2020-08-07 16:19:54 -05:00
nattthebear 25bdeb7f69 Use alloc_plain to allocate the md_cart space so it will be writable if needed
This lets us support mapper32k_w without needing extra hacks.  Because of lazystates, this doesn't hurt us on state size either (lazystates did not exists when we did 722358c1b1
2020-08-07 07:17:14 -04:00
YoshiRulz 476295ccec
Remove unused HawkFile static helpers 2020-08-07 16:30:17 +10:00
YoshiRulz e02a3d3baf
Fix double HawkFile construction 2020-08-07 16:29:09 +10:00
YoshiRulz 74bfac2359
Add missing imports to tests
fixes c4202fea2
2020-08-07 12:59:39 +10:00
YoshiRulz c4202fea2e
Fix namespaces in test project 2020-08-07 12:46:40 +10:00
Sappharad c3c9a4c81f New GPGX build 2020-08-06 21:44:15 -05:00
Sappharad db0f2a65a1 Migrate to latest GPGX MD Cart mapper support 2020-08-06 21:40:43 -05:00
adelikat 84df4141ea tastudio - bump up the default statemanager buffer settings 2020-08-06 19:25:24 -05:00
zeromus 7799abc8a0 change git@ submodule urls (llvm-project and dobiestation) to https, like all the other existing submodules. one still has the nuisance of placating git when pushing, but at least one can CLONE without needing credentials setup.
typically changing the submodule paths wrecks repositories. you can try to repair it by deleting the directories and doing "git submodule update --init --recursive" from the bizhawk root. In my experience, git GUIs may mess something up here
2020-08-06 16:05:34 -04:00
zeromus eee7d52c80 add waterbox readme notes concerning autocrlf and submodules 2020-08-06 15:56:05 -04:00
adelikat 491c5c20b6 Tastudio - fix NRE when input editing after importing a bk2 2020-08-06 13:22:11 -05:00
adelikat f2dba97197 Tasproj versioning - use constant in unit test so it doesn't fail on next version bump, when converting bk2, slap the current tasproj verison on it, converting to bk2, remove tasproj version 2020-08-06 13:15:29 -05:00
adelikat af5acb457d a few pointless refactors 2020-08-06 13:15:29 -05:00
nattthebear c32ca26790 saturnus - default ss.correct_aspect to off 2020-08-06 13:13:11 -04:00
nattthebear 9600bc2ce0 ps2 - add fenv support and recompile dobie with it
This isn't so great, and could lead to nondeterminism or abi violations depending on how things use fenv.  For now it's just a dobie experiment
2020-08-06 07:28:24 -04:00
nattthebear 3db2818eb2 Rework a waterbox script slightly 2020-08-05 22:33:23 -04:00
adelikat ac139eabf2 remove byte[] SavestateBinary() from IStatable, consolidate IBinaryStatable into IStatable now that they are the same 2020-08-05 21:07:30 -05:00
adelikat a93a94aead remove some usages of SavestateBinary() with the CloneSavestate() extension method 2020-08-05 20:50:46 -05:00
adelikat 2a4cba4f7e remove option to not save SavestateHistory in .tasproj files, turns out the pre-zwinder implemetnation never exposed a way to turn this off either (except direct json editing). And it seems questionable, we have export to .bk2, clear history, auto-save options, etc if you need a historyless file 2020-08-05 20:48:08 -05:00
adelikat 296b321796 remove some unused code 2020-08-05 20:43:14 -05:00
adelikat 357d87239b
Rewrite TasStateManager (#2274)
* zwinder state manager wip

* stuff

* fixes

* slightly better defaults

* stuff

* re-delete TasStateManager - re-added by my bad rebase attempt

* add back in saving of a default.tasproj, we are a lot of refactors away from not having to do this

* Make zwinder loadstate a factory method

* progress on wiring up Zwinder to movie shenanigans

* zwinder now survives save/load

* hack for settings to exist

* fix test

* shenangians for frame 0, add some asserts to the unit test

* Add crappy impl of integrity check for zwinderstatemanager

* remove Any() from the IStateManager contract, since it should always have at least 1 state

* move ZwinderStateManagerSettings to its own file

* use NonState, it's there and I suppose this was the intent

* add a test

* don't attempt to capture states if we aren't "currentt"

* ugh

* small cleanup

* ZwinderStateManagerSettings - implement necessary copy constructor

* wire up Settings updating, get rid of Settings setter, add some documentation to IStateManager

* shenanigans to fix Savestate settings UI

* Play around with "high priority"

It's really a mess because there's no information feeding between high priority and normal priority on what captures should take place...

* this fixes the branch gap problem

* bump tasproj version to 1.1, warn user and gracefully handle loading an incompatible version

* if a movie starts from savestate, stuff the anchored state into TasStateManager instead of a frame zero state

* ZwinderBuffer - remove some unused usings

Co-authored-by: nattthebear <goyuken@gmail.com>
2020-08-05 20:39:15 -05:00
YoshiRulz fcbe8333a6
Move Comm and SaveState APIs to Client.Common 2020-08-06 00:29:50 +10:00
YoshiRulz 13ab27ca4e
Simplify API impl. instantiation 2020-08-06 00:19:08 +10:00
alyosha-tas c8b8efedac GBHawk: Fix start up time of HDMA 2020-08-04 10:14:47 -04:00
SuuperW b6f80b53dc reformat code
also fix error message (regression from commit 99141e8)
2020-08-04 04:20:00 -05:00
nattthebear 75aca0e7c6 Up the sbrk heap size for dobiestation
Guess it manages to run out with 4MB on some stuff?
2020-08-03 21:11:28 -04:00
SuuperW 99141e84bf fix: Lua multi-byte read/write operations used single-byte read/writes to the core 2020-08-03 15:44:51 -05:00
zeromus 93c3f0f217
Merge pull request #2266 from TASVideos/ps2-disque-check
Reorder the optical disk id checks
2020-08-03 16:43:15 -04:00
SuuperW 12ef0fe35b fix Lua crash (run Lua script, close Lua console, open different ROM) 2020-08-03 13:55:00 -05:00
nattthebear 8e8575ad69 Reorder the optical disk id checks
Seems like PS2 games have an appId of PLAYSTATION sometimes, so move the SYSTEM.CNF;1 check first
2020-08-03 12:14:59 -04:00
YoshiRulz 166c50b6cf
Finish implementing WebSockets
fixes dbcd6b5b6
2020-08-03 14:30:50 +10:00
David Ackroyd dbcd6b5b68
Add WebSocket support; wraps BCL ClientWebSocket (squashed PR #2237)
Co-authored-by: David Ackroyd <davidackroydmusic@gmail.com>
2020-08-03 13:11:29 +10:00
SuuperW 22d78efabd fix separator bug in RAMWatch 2020-08-02 17:13:32 -05:00
SuuperW ab0ca538f6 update libmelonDS.dll (see SuuperW/melonDS/DSHawk, updates since May 2nd.) 2020-08-02 16:23:40 -05:00
SuuperW 9af25f7180 rename NdsSettings to NdsSyncSettings, since that's what it is 2020-08-02 14:06:38 -05:00
SuuperW 2c0fa143c1 fix: attempting to change current movie's GreenzoneSettings would actually change the defaults 2020-08-02 10:40:12 -05:00
YoshiRulz 2761156fc3
Update GitLab CI
I was using artifacts wrong
I was using caches correctly but there weren't files to cache
should now be resistant to missing codegen'd files
2020-08-03 00:42:55 +10:00
adelikat 8531a292bc rip out Savestate History settings form and reuse the default settings form instead 2020-08-01 17:30:50 -05:00
adelikat 07429a4640 Tastudio - rework DefaultGrezoneSettings to only depend on a settings object and a savecallback 2020-08-01 17:19:30 -05:00
adelikat 369b7830a5 add Cyorter's Input display lua script, that gives a graphic based (FCEUX style) input display for most non-analog peripherals 2020-08-01 16:46:49 -05:00
adelikat 6fd2252753 fix psx default controls, fixes #2251 2020-08-01 15:55:55 -05:00
adelikat 3da1df9252 Tastudio -more shenanigans to fix bk2 loading, fixes #2255 2020-08-01 13:43:29 -05:00
alyosha-tas 2499c9b872 GBHawk: update Kirby tilt n- tumble controls 2020-08-01 14:31:08 -04:00
adelikat e525d512f8 lua - fix NRE when when movie.mode() is called with no movie active, fixes #2262 2020-08-01 13:24:10 -05:00
nattthebear 96bee60cda nyma -- only ask the frontend for firmwares the core actually requests
Fixes #2240
2020-08-01 09:16:01 -04:00
nattthebear 78bf2285fc
Waterbox: Add pseudo-thread implementation and experimental DobieStation (PS2) core (#2263)
Waterbox supports threads now, but they're not real threads on the host side because that's complicated and can be nondeterministic. Instead, everything is scheduled to share one host thread. This means that scheduling is actually cooperative and certain patterns of spinlocks and other nonsense can fail to work at all, but "regular" code probably will.

With this, add DobieStation PS2 core. This core was selected because it has threads and is otherwise simple to port; easy to build and a good core/frontend separation. It's not a wonderful core however, with low speed (made abysmally lower by our lack of real threads) and low compatibility, so it remains a curiosity for now.
2020-08-01 07:03:29 -04:00
YoshiRulz d32c19ee5d
Fix building of ext. tools
this HelloWorld is now a far cry from intended use...
2020-08-01 17:59:56 +10:00
YoshiRulz f6edd02195
More cleanup of VersionInfo code gen 2020-08-01 17:48:27 +10:00
YoshiRulz 460613fba4
Add -clp:NoSummary to Unix build scripts 2020-08-01 11:58:21 +10:00
YoshiRulz e5de63ea94
Cleanup VersionInfo and code gen 2020-08-01 11:57:14 +10:00
YoshiRulz ebd9645c1e
Cleanup assembly attributes
We're not using this metadata for anything, except one [InternalsVisibleTo] for
unit tests, and a half-assed version check in EmuHawk.Program.
2020-08-01 11:56:30 +10:00
alyosha-tas 9fc8db14c3 Vectrex: fix controls (Hyperchase) 2020-07-31 21:24:58 -04:00
YoshiRulz 00b67f4156
Remove unused prop from a MainForm interface
fixes 62537118a
2020-07-31 16:22:02 +10:00
YoshiRulz b77cd9a7bf
Remove IEmuClientApi.RunningSystem from the API
other code in EmuClientApi (the impl.) uses this prop, so it's staying for now
2020-07-31 16:17:02 +10:00
alyosha-tas 9b5997cf7f GBHawk: fix behaviour of writing to LY reg, fixes Zen console verificaiton 2020-07-29 18:29:26 -04:00
YoshiRulz a54b9acba2
Pass in globals to Throttle and UpdateChecker 2020-07-29 08:55:56 +10:00
YoshiRulz fbb38d61fd
Use a DLIR for Mupen core and plugins
AttachPlugin still returns IntPtr (thanks to reflection hack) so the code for
audio/input/video is unaffected
2020-07-28 20:29:02 +10:00
YoshiRulz 771621e0c9
Teach DLIR that dirs are not files on Unix
even though everything is a file
2020-07-28 20:28:46 +10:00
YoshiRulz b6f4344592
Pass lib path from run script as env. var and read it in DLIR
It's always set by the run script, but I've added a fallback in case someone
hardcodes the mono command in a .desktop or something
2020-07-28 18:15:37 +10:00
YoshiRulz 765eb443a5
Tweak run script to compute lib and wine lib paths separately
also added $PWD/dll to LD_LIBRARY_PATH in case we ever use that
2020-07-28 18:11:50 +10:00
YoshiRulz ef34944a27
Rebuild libmgba just in case 2020-07-28 17:57:59 +10:00
YoshiRulz 34d56ca555
Update search paths order for DLIR on Unix and add mupen lib dir 2020-07-28 17:54:54 +10:00
YoshiRulz 75e815f09e
A little cleanup of DLIR 2020-07-28 17:53:28 +10:00
SuuperW ae667eca29 optimizations and a bug fix 2020-07-27 15:47:49 -05:00
SuuperW c7c4a08cfd Further refactoring of state decay.
Also, use a larger zeros array size. 16 is pathetic. Probably should go even higher than this.
2020-07-27 15:47:42 -05:00
SuuperW 10dd5b746c refactor StateManagerDecay to not use goto, and remove the unused align
(Align didn't seem to make any sense, it was just weighting priority less towards the current frame. Perhaps helpful in some situations, but I don't think enough so to justify complicating the decay algorithm. Either way it was a misnomer and I don't know what there is to align to.)
2020-07-27 15:43:47 -05:00
SuuperW 60cc8d944f Merge branch 'master' of https://github.com/TASVideos/BizHawk 2020-07-27 10:43:46 -05:00
SuuperW a868cd5f5c fix TAStudio state gap 2020-07-27 10:43:20 -05:00
nattthebear 0d3b26ead9 Re-refix gpgx loading
Pier solar needs the rom and the cd

This reverts commit 503469e4e0.
2020-07-27 08:10:00 -04:00
zeromus 503469e4e0 fix oopsie loading cds in gpgx after recent romloader cleanups. fixes #2252 2020-07-27 00:57:51 -04:00
nattthebear 2cdc978e2f rework mgba callbacks to not be global junks 2020-07-26 15:36:29 -04:00
YoshiRulz 2f5c947a5c
Check-in mGBA binary for Linux 2020-07-27 05:23:37 +10:00
nattthebear 9339c02b82 emergency containment on bad code 2020-07-26 15:11:29 -04:00
nattthebear 105250f60d wow that was hard 2020-07-26 15:06:44 -04:00
adelikat 98da2ebb85 fix loading of bk2 and tasproj files from tastudio menu items 2020-07-26 12:47:46 -05:00
feos 74f9a3db87 mgba: update with https://github.com/TASVideos/mgba/pull/3 2020-07-26 13:26:13 +03:00
feos 9e0b136b7e mgba and linux 2020-07-26 13:26:13 +03:00
YoshiRulz d8a92af617
Move Comm and Input Lua libraries to Client.Common 2020-07-26 05:38:55 +10:00
YoshiRulz 2b50f4f112
Cleanup ApiContainer 2020-07-26 05:34:58 +10:00
YoshiRulz 911cb096de
Merge ApiContainer and ApiSubsetContainer
(also merge DelegatingLuaLibrary and DelegatingLuaLibraryEmu)
Not sure why this wasn't done earlier, there doesn't seem to be any technical
roadblocks. The contract of the API provider requires an implementation for
IEmuClientApi et al. so they (all 15 interfaces) are free to be used from
Client.Common.
2020-07-26 05:29:04 +10:00
YoshiRulz 1fa7395e20
Screw around with networking helper init 2020-07-26 05:15:56 +10:00
YoshiRulz 1912851186
Expose networking classes in CommApi, delegate its Lua ver. to ApiHawk
HttpTest/HttpTestGet in the .NET API now return null instead of throwing (Lua
still throws)
2020-07-26 05:03:58 +10:00
YoshiRulz da5f76967f
Inline TestGet 2020-07-26 05:01:58 +10:00
YoshiRulz a931d75143
Add string overload for WriteToFile
and also use UTF-8 instead of ASCII to match reads -_-
2020-07-26 04:45:59 +10:00
YoshiRulz b7eb90f990
Add public prop for setting IP+port simultaneously 2020-07-26 04:34:06 +10:00
YoshiRulz 6acf4ae6fb
Tiny ToolManager.Load cleanup 2 electric boogaloo
see 2d6bac879, 7c3ccd664
2020-07-26 03:49:59 +10:00
adelikat 1f6ead6354 now that restore is on mouse up instead of mouse down, we need to auto-unpause the emulator (if it were paused before editing input) on mouse up instead of mouse down. Mouse down was causing unpausing while painting which caused input to be added without invalidating greenzone. This code introduces unpausing as long as there is not a need to invalidate (if the user only painted down). If the user paints up beyond the original mouse down event it will invalidate and seek to the original mouse down frame and pause. 2020-07-25 10:42:07 -05:00
adelikat 7c3ccd6646 Revert "Tiny ToolManager.Load cleanup"
This reverts commit 2d6bac8798.
2020-07-25 09:26:47 -05:00
adelikat 4a6b3e407a TasMovie - InvalidateAfter - flag changes if Lag OR States were invalidated, increment rerecords on only on state invalidation not lag validation, this may address 2168 2020-07-25 09:09:43 -05:00
adelikat 4439310250 remove unused method 2020-07-25 08:39:40 -05:00
zeromus fd30826655 experimental ffmpeg downloading: in place of the ffmpeg encode settings is a download form. This downloads it to the prescribed local location. It then checks to make sure it is the EXACT required version -- the only version we support 2020-07-24 22:25:00 -04:00
zeromus b24a4ecc09 rename to FFmpegService 2020-07-24 22:25:00 -04:00
zeromus dd01c26c92 move FFmpeg sources to FFmpeg service 2020-07-24 22:25:00 -04:00
zeromus 72ad0d8d74 copy DiscDecoding.cs to FFmpegService.cs in another project 2020-07-24 22:24:59 -04:00
YoshiRulz 2d6bac8798
Tiny ToolManager.Load cleanup 2020-07-25 08:44:50 +10:00
YoshiRulz 0fc3ac2105
Don't need this anymore
no idea when that happened sorry
2020-07-25 08:30:15 +10:00
adelikat b0c76f28ca PCETileViewer - remove unnecessary load event 2020-07-24 14:50:01 -05:00
adelikat 0ed95429cb simplify some closing closing logic in some tools 2020-07-24 14:36:34 -05:00
adelikat 4f2bf8071e fix a few tools I missed in previous commit 2020-07-24 14:32:29 -05:00
adelikat e7e5ebfa90 have tool manager automatically add a Close button to any tool with a File menu, removes a lot of boilerplate from tools, also gives consistency, since half the tools had Close, half had Exit and not all had the shortcut display string 2020-07-24 14:21:53 -05:00
adelikat d67f97c4e1 Tasutido - slight simplification 2020-07-24 13:20:24 -05:00
adelikat a51eba88da move some repetitive logic from tools to the RollColumns class 2020-07-24 13:17:03 -05:00
adelikat 4a3e2113af convert RamSearch to IToolFormAutoConfig 2020-07-24 12:29:26 -05:00
adelikat f1a9ba7a08 Ram Search - watch options and settings menu item names 2020-07-24 12:11:34 -05:00
adelikat c26659187e convert RamWatch to IToolFormAutoconfig 2020-07-24 12:03:23 -05:00
adelikat 42864977cb Convert cheats tool to use IToolFormAutoConfig 2020-07-24 11:52:44 -05:00
David Ackroyd a416841770
clone x times (#2242)
* tasstudio: clone sequence of inputs x times

* extend frameprompt so that you can put in a custom messagfe

* making FramesPrompt designer compatible
2020-07-24 10:18:15 -05:00
YoshiRulz e36098becf
A little dedup 2020-07-24 13:33:12 +10:00
adelikat 39424891b4 virtualpads - add another constructor overload to simplify schema classes more 2020-07-23 17:42:36 -05:00
adelikat 6b921c91fb remove another unused image 2020-07-23 17:09:04 -05:00
adelikat 35d3a7e716 Ram Search - fix typo in menu Option "Always Exclude From Ram Search" to "Always Exclude From Ram Watch" 2020-07-23 17:06:28 -05:00
adelikat d6be73f395 silly that visual studio rename doesn't save changes on open files, add a bunch of non-saved things, also consolidate two refresh images into 1 2020-07-23 16:55:51 -05:00
adelikat ed8912db92 rename and reorg stuff in Resources.cs 2020-07-23 16:51:29 -05:00
adelikat bda8a5ed4e implement SGX virtual pads 2020-07-23 16:35:09 -05:00
adelikat a1c6092de1 c64 virtualpad - fix a few keyboard buttons that were not mapped to a key 2020-07-23 16:32:57 -05:00
adelikat 34da24933a remove more unused images, start using c64 symbol on c64 virtualpad 2020-07-23 16:32:57 -05:00
nattthebear 1c606c1eb6 waterbox - expose read-only information about the guest memory page table 2020-07-23 16:08:24 -04:00
adelikat e778e5248d remove a bunch of unused images that we don't intend to use, make lua console menu item image consistent wtih the dialog image 2020-07-23 14:56:48 -05:00
adelikat 4d24b0bcf0 remove some unused usings 2020-07-23 14:25:39 -05:00
nattthebear 356abf6c43 Really, actually, truly fix the waterbox savestate snafu, probably
The description in the previous commit is accurate, but the problem runs deeper and was on the whole a complete failure for me to appreciate the difference between active and swapped in on memoryblocks.  Bleeecch.
2020-07-23 15:20:04 -04:00
nattthebear e343f6bd26 Fix a complete savestate snafu in waterbox
This was broken by 175556529e, with two related issues:  When we allowed for some operations to happen even when the block is inactive, we didn't account for the fact that in swapin, the block technically is not active yet (the lock is not on the self), and similarly in swapout, the lock has already been moved out of self.  The former caused all memory areas to revert to RWX at the host OS level after a swap, so no dirty detection was done.  After the former was fixed, the latter caused saved costacks to still get missed.

At the same time we ran into a perfect storm with costacks on Windows; if a stack page is not yet dirty, but we hit a fault for something else, Windows will not call our VEH handler unless the TIB stack extents are satisfactory, since it needs userspace to fix up the TIB extents via VEH or SEH handler, but there's already an exception pending.
2020-07-23 13:30:58 -04:00
adelikat ae6d512e11 durp 2020-07-22 16:31:52 -05:00
adelikat 5dd65c0ee8 add an osd message when a rewinder is created 2020-07-22 16:24:25 -05:00
nattthebear 07c7c329d3
Experiment to speed up libco and hence libsnes (#2248)
The compiler now can fully inline the co_switch, and with most registers being specified as clobbers and not saved explicitly, the compiler can choose to save only what it needs to (we don't have to defensively save everything).

Practically speaking, the co_switch calls are usually inlined, but the functions they're in don't seem to be that big and don't make direct use of r12..r15 too much anyway, so (push r12..r15, switch, pop r12..r15) is a common emit.  But I see a miniscule FPS increase.
2020-07-22 16:13:19 -04:00
YoshiRulz 966a2abe3f
Call base.Dispose to banish warning 2020-07-22 06:34:32 +10:00
nattthebear 85be93c9d2 What was this?
Apparently we had random crashes in savestate on waterbox since some recent dev commit woops my bad
2020-07-21 15:43:28 -04:00
YoshiRulz 6371766130
Remove redundant semicolon 2020-07-20 23:42:42 +10:00
YoshiRulz 86e82b97c1
Cleanup internals of comms APIs 2020-07-20 23:42:35 +10:00
adelikat d94ce80eaa Tastudio - gracefully fallback to a new tasproj when attempting to load a .tasproj from another core 2020-07-19 16:47:54 -05:00
adelikat 1162e89675 a slight hack to fix Tastudio when loading a different rom while it is open 2020-07-19 15:09:26 -05:00
adelikat ffd255bb8e on tool restart, update base properties (particularly needs the Game property to update) 2020-07-19 14:50:05 -05:00
adelikat 4e6d190d48 Tastudio - check MainForm.GameIsClosing in a better place 2020-07-19 14:26:49 -05:00
adelikat b6cfb9aab7 remove restarting of trace loger in CloseGame, the ToolManager handles this logic just fine 2020-07-19 14:05:46 -05:00
adelikat f7f6839e6c fix NRE of Trace Logger close, if the Trace Logger was not used before closing 2020-07-19 13:56:27 -05:00
adelikat ddbeabf198 Tastudio - pointless refactors 2020-07-19 13:30:07 -05:00
YoshiRulz 86829751aa
Scale VirtualPadAnalogStick correctly when the range isn't ~256 values 2020-07-20 03:18:49 +10:00
adelikat f6273f2f92 Virtualpads - flip the read-only flag when a movie changes from read-only to another mode 2020-07-19 11:12:38 -05:00
alyosha-tas 77a958af8e O2: fix mousing cat (timer divider was wrong) 2020-07-18 17:04:24 -04:00
adelikat 74a57c320e Saturn Virtual pads - fix L/R 3d controller values 2020-07-18 13:36:31 -05:00
adelikat 59661fea86 Tastudio - fix "New" menu item broken by last commit 2020-07-18 13:26:21 -05:00
nattthebear c7e8744664 Add an extra exclamation point to indicate that code is VERY IMPORTANT
This broke any waterbox core that called in to native code in the same EnterExit() right after sealing.  All nyma cores were broken, 32x was not, didn't check the rest.  Regressed in 175556529e.

It worked fine in release mode, theoretically
2020-07-18 11:54:05 -04:00
adelikat 0925997557 have Tastudio control RebootCore when it is open, fixes #2201 2020-07-18 10:24:46 -05:00
YoshiRulz 5c250a7ca5
Change SDK ver for GitLab CI to match global.json (fixes #2231)
see 5a1b5915b
2020-07-15 16:03:39 +10:00
alyosha-tas d8056b3deb Move code to avoid NRE 2020-07-14 19:18:59 -04:00
adelikat 219b33732c make TasMovie Emulator null check a bit clearer as to what is going on 2020-07-14 17:47:22 -05:00
adelikat 7040eca741 tastudio - simplify image setting 2020-07-14 17:43:31 -05:00
alyosha-tas 6f461c715d TAStudio: Fix #2191 with a null check 2020-07-14 17:02:52 -04:00
adelikat 5515e9fea7 Tastudio - add some paranoia checks when drawing markers and branches. This happened one time while debugging and I couldn't reproduce, but it is possible the controls might need be told to redraw while still rebooting the core, in which case there is no TasMovie to read from yet, so check for null 2020-07-13 19:39:29 -05:00
adelikat 946ff45608 Tastudio - just print "File saved" instead of the filename since it is redundant to the Title which has the filename, and it overlaps other text in the status bar, fixes #2142 2020-07-13 19:15:30 -05:00
nattthebear 175556529e waterboxhost refactor
Set up a second mirror of guest memory; easily accomplished because we were already using memfd_create / CreateFileMappingW.
This lets us simplify a lot of host code that has to access guest memory that may not be active right now, or might have been mprotect()ed to something weird.  Activate is only needed now to run guest code, or when the C# side wants to peer into guest memory for memory domains and such (waterboxhost does not share the mirror address with the C# side).
2020-07-13 19:38:29 -04:00
adelikat 40e19e64fe oops 2020-07-13 17:25:16 -05:00
adelikat b87f976c39 remove some unused usings 2020-07-13 15:01:14 -05:00
adelikat 6a3b014fe3 make a thing readonly 2020-07-13 12:06:48 -05:00
nattthebear 59be09b515 Make picodrive work again
All picodrive games were broken by 316a9d1568
2020-07-13 06:16:16 -04:00
nattthebear 5a1b5915bf Fix compiling on ancient compilers, and add a global.json which restricts bizhawk to ancient compilers 2020-07-12 17:24:12 -04:00
nattthebear 570f17cedd Bit more W65816 disassembler cleanup 2020-07-12 17:14:47 -04:00
adelikat 316a9d1568 gamedb - replace pico with picodrive, remove core name look up in romloader in favor of this pico change combined with a case insensitive compare 2020-07-12 16:10:01 -05:00
adelikat b22a1070a4 W65816 Disassembler - assign ibuf to null, so it compiles 2020-07-12 16:06:45 -05:00
adelikat ed9b7b3eb1 Lua address several memory leaks - when a script stops, take any registered functions and spawn new threads for them to execute, and regularly dispose them. Also, the main lua thread needs to have scheduled disposes run on it, even if there is no active scripts (it was being run as part of disposing individual scripts, needs refactoring). All of this fixes #1920 2020-07-12 15:48:50 -05:00
nattthebear 9278c526d0 fix a few compiler warnings 2020-07-12 16:02:26 -04:00
adelikat 1e3324cfab Registered Lua Functions dialog - update when a lua script unregisters a file, make dupating more robust to catch other possible scenarios where it failed to update 2020-07-12 13:19:48 -05:00
adelikat c4bcb2451a remove now unused class in RomLoader.cs 2020-07-12 13:03:32 -05:00
adelikat 05709628e8 remove a jillion unused usings in RomLoader.cs 2020-07-12 13:02:12 -05:00
adelikat 40ad7ed67e Lua - account for callbacks with no parent script creating more callbacks by generating a mock lua file with a new thread, and register the thread with the sandbox. Fixes #1983. Not super proud of this. 2020-07-12 12:58:43 -05:00
nattthebear 021b1639c2 Remove special code for UnsupportedGameException in RomLoader
This shouldn't be needed anymore
2020-07-12 13:48:46 -04:00
nattthebear 78bbc75f33 multi rom loading by xml all uses core inventory now 2020-07-12 13:45:33 -04:00
nattthebear 8d56b65734 Convert all single-CD loading to use CoreInventory 2020-07-12 13:21:10 -04:00
nattthebear ab07e67a07 PCEHawk: Use CoreLoadParameters for cd mode 2020-07-12 13:06:15 -04:00
nattthebear 744a9a97d0 Remove custom loader code for ChannelF 2020-07-12 12:54:36 -04:00
nattthebear 5c5ffed5ff Next piece of the puzzle
This probably breaks something.  I am sorry, grab me and I'll fix it
2020-07-12 12:52:27 -04:00
adelikat 33a0954087 lua console - fix recent scripts not updating when creating a new script, opening a script, or duplicating a script. Might be other scenarios that are currently missing (regression from some refactors about a month ago) 2020-07-12 11:12:29 -05:00
nattthebear 4ad89667d6 This will get simpler I promise 2020-07-12 11:37:06 -04:00
nattthebear 6f218ff20b Remove a benign null reference exception
This was in a try catch so you got the null you needed anyway, but it could be confusing to see in a debugger report
2020-07-12 11:10:57 -04:00
nattthebear beb51ab286 Fix a linux waterbox-releated crash
Repro steps:
1) Load any waterbox core
2) Do anything that would trigger a NullReferenceException on C# side that you'd normally expect to be caught
2020-07-12 11:03:12 -04:00
alyosha-tas 06fa96e335 O2: finish g7400 graphics set 2020-07-12 10:44:11 -04:00
nattthebear 81d0b4ec9e Revert "Replace dynamic type w/ casts in CoreInventory/CLP"
This reverts commit 9ee4821148.

# Conflicts:
#	src/BizHawk.Emulation.Cores/CoreLoadParameters.cs

This didn't actually work, so revisit later
2020-07-12 10:18:08 -04:00
nattthebear f41a70ef32 swish swish 2020-07-12 09:06:20 -04:00
alyosha-tas f5efbff1d3 O2: more g7400 work 2020-07-12 09:03:28 -04:00
nattthebear 9072614dfb romloader cleanup 2020-07-12 08:09:50 -04:00
nattthebear d354faeec1 probably fix linux waterbox issue 2020-07-12 07:49:18 -04:00
nattthebear dc8615ca06 fix compile, sorry sorry 2020-07-12 07:36:06 -04:00
nattthebear 80793836d3 Use CoreLoadParameters on dual gambatte 2020-07-12 07:28:06 -04:00
nattthebear 9d9dd8a0fd More romloader stuff
It'll all come together eventually
2020-07-12 07:08:52 -04:00
YoshiRulz 9ee4821148
Replace dynamic type w/ casts in CoreInventory/CLP
dynamic introduced in cc9d7df9f
2020-07-12 17:30:10 +10:00
adelikat c712bde84e remove firmware manager dependency from RomLoader, and a few other cleanups 2020-07-11 20:10:23 -05:00
nattthebear 467f0aff2b Refactor 32x loading
less code is good good
2020-07-11 20:38:09 -04:00
nattthebear 502aef73a0 Clean up ti 83 loading. Probably works, but I have nothing to test against it 2020-07-11 20:31:36 -04:00
adelikat 8900618ce1 respect the Movie end type when loading .tasproj files outside of tastudio 2020-07-11 18:52:52 -05:00
adelikat 1f39160999 give up on the idea of throwing an exception when attaching a core to a movie. The reason this doesn't work is that restart movie keeps the movie in memory (which was previously attached). This commit decrees that it is safe to keep a movie in memory, and attach to a new instance of the same core. The alternative is that movies would have to save and load on restart which is slow and may not be desired 2020-07-11 18:03:53 -05:00
nattthebear 86ac6eadcc Romloader omega refactor: Use CoreLoadParameters for PSX 2020-07-11 18:47:56 -04:00
nattthebear 6657917281 Fix parse error loading CCD files 2020-07-11 18:47:56 -04:00
adelikat 9d054d19f6 bk2 and tasproj movies - respect the preload flag, only loads header and inputlog. This speeds up the play movie dialog by 50-100%, a lot more if there is a large sizeable .tasproj files in the folder 2020-07-11 17:06:40 -05:00
adelikat a19791a212 Fm2Import - warn about ignoring the famicom port, instead of a full error, apparently movies can have this port set, but to none, so importing the movie can still be successful, for example: http://tasvideos.org/6739S.html, fixes #1989 2020-07-11 15:57:08 -05:00
nattthebear 7e2251b795 Fix the CoreLoadParameters <-> CoreInventory interop 2020-07-11 16:46:16 -04:00
nattthebear dbb73805db error message cleanup
Once everything is unified, we'll probably hit this path once in a while
2020-07-11 16:46:16 -04:00
nattthebear cc9d7df9f7 WIP of some romloader cleanups
This one commit doesn't make things cleaner by itself, no.  The rough idea is that eventually (R) we'll pass all cores that currently use mangled arse-custom constructors with custom code all o'er the place a single, awesome, CoreLoadParameters object.

Then the romloader can be changed to just synthesize this object on one common codepath, some bs for core preferences, and boom everything is perfect.  Sort of.
2020-07-11 16:46:16 -04:00
adelikat 3a820302e3 improve name of a method 2020-07-11 15:42:47 -05:00
adelikat e5dc473203 inputroll - make escape clear selected items, this was being done custom in ram search but makes sense to be a consistent feature. It's possible people will be upset with this in tastudio since this is new functionality (and not in taseditor either) 2020-07-11 15:41:45 -05:00
adelikat d44e96f535 remove some redundant code 2020-07-11 15:35:50 -05:00
adelikat aeaf6aa282 add some KeyCode extension methods to make KeyUp/Down event methods easier to read 2020-07-11 15:35:00 -05:00
alyosha-tas e29d024a90 O2: graphics work 2020-07-11 16:31:42 -04:00
adelikat be93903c12 Play Movie dialog - properly show tooltips for detail values, also show expected vs actual (only works on the key column though, because winforms is poo), fixes #1888 2020-07-11 14:53:51 -05:00
adelikat 196934bd56 Tastudio - fix TasSession loading, fixes #2063 2020-07-11 14:28:21 -05:00
adelikat cb575d36b4 add an option to InputRoll for "Selection when paging", as a bit of a hack to revert Tastudio back to its old PgUp/Dn behavior, while still keeping the current behavior for other input roll usages (as it makes more sense for traditional listview behavior). Fixes #2074 2020-07-11 13:49:00 -05:00
nattthebear 4343414937 Enable hypernyma for uhh, the thing. Yeah, CD games, that thing.
I had tested this locally some during original development, but turned it off at some point and forgot to turn it back on.
2020-07-11 13:59:05 -04:00
nattthebear bd413738a1 Fix nyma core bug with layer settings
If you tried to load a nyma core with any of your layers disabled, you would crash
2020-07-11 13:56:43 -04:00
nattthebear 0578443338 Slight modification to previous commit: Keep config forward compatibility in this case.
That way, if somedev tries to bisect something, they don't get pooped on by their config.
2020-07-11 13:47:28 -04:00
nattthebear bcbf124f21 Don't use fragile fully qualified typenames to resolve setting and sync setting types in config files.
Instead, the frontend must know what the type will be ahead of time.

TODO:  Apply the same fix to mooovies
2020-07-11 13:40:25 -04:00
nattthebear a28ca37cfb
Fix issue with settings adapter (#2223)
This would fail to work on any core that used the serviceprovider to provide a settings definition that wasn't on the iemulator itself?  Guess we never did that
2020-07-11 13:35:09 -04:00
adelikat 9820fb0879 lua - implement tastudio.submitclearframes(), fixes #2170 2020-07-11 12:19:27 -05:00
nattthebear 4639c1f2ca minor cleanup of calling convention adapters
sync the generator code with the generated code, remove useless endbr64 shit
2020-07-11 11:09:48 -04:00
alyosha-tas 2ed8af145e O2: default to O2 still 2020-07-11 09:11:35 -04:00
alyosha-tas 1e90dbc978 O2: Make G7400 part of the O2 core instead, not worth a serperatecore 2020-07-11 09:05:38 -04:00
alyosha-tas 39bbe30b8e O2: fix sprite shifting and add some homebrew to DB 2020-07-11 08:29:11 -04:00
adelikat 1bf8f80510 Subtitle Editor - add a color picker for editing the subtitle color, fixes #1554 2020-07-09 19:24:44 -05:00
YoshiRulz 38d24901cf
Fix 4-octet peeks by Hex Editor having 2 zeroed octets
dumb typo
2020-07-10 03:39:02 +10:00
nattthebear 27a5fcdd20 Get rid of some old-style system assembly references 2020-07-09 07:22:19 -04:00
nattthebear 7495a08b9b Huh?????????????
Random LDAP garbage, not used, ever, and has just been hanging out there for 8 years.  You won't be missed!
2020-07-09 07:15:02 -04:00
nattthebear b0e6174467 minor cleanup 2020-07-08 13:54:47 -04:00
nattthebear a67fa70632 waterbox linux - rework to avoid possible memory leak
Bizhawk never would hit this because it only ever runs waterboxes in one host thread, but an application that spun up many threads and ran waterboxes in each would leak 32 bytes of heap for each native thread destroyed, which is super duper not really meaningful at all
2020-07-08 07:22:15 -04:00
alyosha-tas 7f28bc2caf Fimware: Fix #2207 and add entry for g7400 2020-07-07 17:59:20 -04:00
nattthebear c8985e3007
Waterbox: Stack Marshalling (#2209)
Waterbox guest code now runs on a stack inside the guest memory space. This removes some potential opportunities for nondeterminism and makes future porting of libco-enabled cores easier.
2020-07-07 17:48:12 -04:00
RetroEdit ce60cb101a
Simplify some DialogResult code. (#2213) 2020-07-07 15:09:41 -05:00
YoshiRulz fa7613d481
Pass IMainForm props in PresentationPanel ctor instead 2020-07-08 02:48:04 +10:00
RetroEdit 9a45d88301
More concise FrameRate definition; comment tweaks (#2210) 2020-07-07 11:36:42 -05:00
YoshiRulz ca646f87cf
Fix style problems, mainly docs 2020-07-08 02:17:31 +10:00
YoshiRulz b0f38a4d91
Shuffle code in AvFrameAdvance to eliminate goto 2020-07-08 02:17:28 +10:00
YoshiRulz 33d8f4a62c
Add RigidMultiPredicateSort to replace some .ThenBy() boilerplate
As documented, the class "Sorts using a single primary predicate, with subsorts
using the remaining predicates in order." So only the most recent
column-header-click is taken into account. I've got a WIP class in #if false for
providing the "remember which column headers I clicked and in which order"
behaviour, but it doesn't look like that behaviour actually exists in the
codebase?
2020-07-08 02:17:24 +10:00
hegyak 2dc28ecc4c
Merge pull request #2204 from hegyak/master
Firmware Renaming Unification/Changes.  This is Aesthetic.
2020-07-07 05:50:23 -07:00
RetroEdit 9cdf0abc0c
Retype IMovie.TimeLength to TimeSpan; cleanup frame rate code (#2206)
* Retype IMovie.TimeLength to TimeSpan; cleanup frame rate code

* More concise IsPal field.
2020-07-06 16:24:04 -05:00
alyosha-tas f52b02d499 Start wok on G7400 2020-07-06 15:19:57 -04:00
hegyak f430df9575
Firmware Rename (2)
Fixed KoF 95 and Ultraman
2020-07-06 11:55:13 -07:00
hegyak 6a73dd0115
Firmware Rename
Rename All the Firmware Files to have a more Unified Naming Convention
2020-07-06 10:46:56 -07:00
alyosha-tas fee733480f O2Hawk: change PAL timing 2020-07-06 09:38:24 -04:00
alyosha-tas 694b3d88d3 GBhawk: fine tune tilt range some more and fix savestate 2020-07-05 18:39:06 -04:00
zeromus ae763f2eef fix hq2x in glsl (fixes #2196) 2020-07-05 18:15:05 -04:00
RetroEdit c12d2fa570
EmuVersion needs updating on saving, not loading; I made the wrong call of where to put this originally, but the interaction with PlayMovie slipped my mind. (#2202) 2020-07-05 16:29:06 -05:00
adelikat 72993a3bd0 don't double load movie files when pre-loading, remove unused HawkFile parameter 2020-07-05 15:31:43 -05:00
adelikat 624493e6e2 simplify splitter distance loading with an extension method 2020-07-05 15:01:08 -05:00
alyosha-tas fa7ac3d4c1 A7800Hawk: Fix pokey 0x450 detection 2020-07-05 15:45:08 -04:00
alyosha-tas 6f809de609 Add default DS paths (fixes #2062) 2020-07-05 13:54:36 -04:00
RetroEdit 0b07e38bdf
Update emuVersion each time the movie is opened; OriginalEmuVersion preserves old behavior. (#2193) 2020-07-05 11:21:01 -05:00
RetroEdit 9e980c7732
Merge redundant copy-pasted movie loading code. (#2197) 2020-07-05 09:48:46 -05:00
alyosha-tas ef0f4b2b96 TAStudio: Don't erase states if they exist already when attaching an emulator instance (fixes #2057) 2020-07-05 09:55:38 -04:00
alyosha-tas d900053dad TAStudio: Allow insertion of multiple frames at end of movie (fixes #2169) 2020-07-05 09:54:35 -04:00
alyosha-tas e4e078a1c9 DS: Fix default binding for stat key 2020-07-04 19:53:54 -04:00
alyosha-tas 34f99922cd TAStudio: use path.combine now, as well as fix a usage of '\' for filename display in .bk2 2020-07-04 19:07:38 -04:00
alyosha-tas e215f99f74 GBHawk: increase MBC7 asselerometer return value range 2020-07-04 18:44:34 -04:00
alyosha-tas 4b59282fdf TAStudio: bounds check previous commit 2020-07-04 11:00:40 -04:00
alyosha-tas a72286eb5a TAStudio: More analog control jump fixes 2020-07-04 10:17:01 -04:00
adelikat d775067037 move BreakpointList to Client.Common 2020-07-03 19:49:29 -05:00
adelikat 2cbe0fb3d9 remove unused GenDbgWin tool 2020-07-03 19:42:09 -05:00
adelikat 9e2b2a9b91 remove pointless name and text parameters from MenuStripEx 2020-07-03 19:26:01 -05:00
alyosha-tas 3dba6857bc GBHawk: increase range for tilt input 2020-07-03 19:57:29 -04:00
nattthebear 054efa4bdd Helps if you actually serialize the thing you're serializing 2020-07-03 18:31:21 -04:00
nattthebear 3a18f6356d Rebuild all of waterbox as sysvabi, not msabi
This helps linux at the expense of windows, except it seems like windows gets a nice little speed up as well
2020-07-03 18:21:48 -04:00
alyosha-tas 35fdec2132 Use a forward slash instead. the file name will display incorrect (as Movie/name) when first loaded, but at least it's in the right place. 2020-07-03 17:40:52 -04:00
alyosha-tas 53b61d9cfa TAStudio: add trailing slash so loading a bk2 multiple times properly puts the file in the movies folder 2020-07-03 17:05:07 -04:00
alyosha-tas 32031d0f67 Atari 7800: support serpentine 2020-07-03 16:07:26 -04:00
adelikat ce0a529362 pass InputManager dependencies to more virtualpad controls 2020-07-03 14:50:57 -05:00
adelikat 2be1d04182 cleanup ToolStripEx 2020-07-03 14:29:48 -05:00
adelikat 728a946470 pass InputManager to tools, remove other usages of GlobalWin in various tools 2020-07-03 14:26:08 -05:00
adelikat 20a1a49851 remove unnecessary usage of GlobalWin.Emulator (instance was already being passed in) 2020-07-03 13:34:17 -05:00
adelikat 8bb055b392 FilePreferences config - fix message when clicking ok, reduce dependency from the entire config file to the only object it sets, remove usage of GlobalWin 2020-07-03 13:31:47 -05:00
adelikat 7ab20f5667 mainform - a few simplifications 2020-07-03 13:10:48 -05:00
adelikat c681be033d rename an interface 2020-07-03 12:59:10 -05:00
nattthebear 2ee3125724 Refactor gpgx init method to use fewer arguments
Upcoming waterbox changes will likely limit the number of arguments a function can take to 6, which should be enough for anybody
2020-07-03 13:24:54 -04:00
adelikat c64eff6baf reorg controller and input adapter classes 2020-07-03 11:54:10 -05:00
adelikat 6db1d7e61d cleanups 2020-07-03 11:39:50 -05:00
adelikat d9e563a655 simplify setting the font style of a ToolStripMenuItemEx 2020-07-03 11:08:48 -05:00
adelikat 715e457a4e Mainform - property wrapper for GlobalWin.OSD 2020-07-03 11:08:48 -05:00
adelikat 910c37d434 move some logic from mainform to InputManager 2020-07-03 11:08:48 -05:00
adelikat a3c586b480 mainform - use InputManager property instead of GlobalWin reference 2020-07-03 11:08:48 -05:00
nattthebear 42ceba7d21 Fix linux waterbox
Sorry about that -- some things were removed but not others to go with them.  It had been working before.
2020-07-03 12:02:11 -04:00
nattthebear 2c2ed72dc6 Remove some unused variables
Leftovers from a zwinder refactor
2020-07-03 11:48:51 -04:00
nattthebear fa5885d7a1
Rewrite WaterboxHost in rust. (#2190)
This replaces the old managed one.  The only direct effect of this is to fix some hard to reproduce crashes in bsnes.

In the long run, we'll use this new code to help build more waterbox features.
2020-07-03 11:45:59 -04:00
adelikat 374964bfb0 a few mainform simplifications 2020-07-03 10:07:56 -05:00
alyosha-tas e3afead876 SubGBHawk: have TotalExecutedCycles reflect run time 2020-07-03 10:40:17 -04:00
nattthebear 2f18ad5be1 Defer deserialization of core config
That was simple.  No config file change either.  Doesn't seem to have a noticeable effect on startup speed, but it's not any slower, and we're more resilient to core changes now.
2020-07-03 05:54:01 -04:00
adelikat eede99a505 simplify a few mainform methods with the ToClipBoard() extension method 2020-07-02 17:26:09 -05:00
alyosha-tas b09b9681e2 TAStudio: don't jump to greenzone on single mouse click of analog cell (this is not an edit event.) 2020-07-02 17:46:21 -04:00
adelikat be2ba08c10 remove unused method 2020-07-02 13:30:28 -05:00
adelikat 82ae83919a Lua Console - cleanup 2020-07-02 12:57:02 -05:00
adelikat fbbe3b6e40 LuaConsole - bump message count max to 100, clear count after using the command input box on the console 2020-07-02 12:33:41 -05:00
adelikat bb7f933429 Lua - refactor console logging to use a string builder to concat messages, reduces the actual call to the console to 1 call, greatly improving performance (less calls to scrolling and other methods that invoke drawing) 2020-07-02 12:29:37 -05:00
adelikat 8e79f0d5e2 LuaConsole - warn when message cap has been reached 2020-07-02 12:15:02 -05:00
adelikat ee263fbfbf LuaConsole - simplify WriteToOutputWindow some 2020-07-02 12:10:15 -05:00
adelikat 12897bb00d default to TurboNyma instead of PCEHawk - fixes #2122 2020-07-02 09:09:00 -05:00
adelikat d60e5dc1a2 change View Log Window menu item to Open Log Window, with some different styling, fixes #2110 2020-07-02 08:56:16 -05:00
adelikat a1278df02e add icon to MacroInput 2020-07-02 08:40:03 -05:00
adelikat 21823196fc
Add some menu "Ex" controls (#2187)
* add MenuItemEx and StatusLabelEx and use in MainForm

* use ToolStripMenuItemEx

* use ToolStripSeparatorEx

* fix toolbox sizing
2020-07-02 08:35:15 -05:00
YoshiRulz 1360210331
This was flooding stdout in Release builds 2020-07-02 10:08:26 +10:00
YoshiRulz 4f9d9d29ef
Fix NRE on clicking RecordMovie's browse button (fixes #2185) 2020-07-02 10:05:55 +10:00
zeromus ffabb48f07 remove TopMost from commondialogs (OpenFileDialog, etc.). Fixes #2182 but it is unclear what this was intended to fix in the first place. please gather more information 2020-07-01 14:18:09 -04:00
adelikat edc31793cf StatusStripEx, ToolStripEx - lock down size and text properties 2020-07-01 13:13:24 -05:00
adelikat bf03f3861a ToolStripEx - don't have a size option (toolstrips flow), or location (they are always 0,0) 2020-07-01 13:04:08 -05:00
adelikat 52f2596492 Move ToolStripEx to WinForms.Controls, break into separate files, add namespaces, make ClickThrough built in instead of an option (if the functionality isn't desired just use the original class) 2020-07-01 12:55:21 -05:00
YoshiRulz 07c6063da1
Slightly change execution order in MainForm ctor (fixes #2184) 2020-07-01 19:10:34 +10:00
adelikat 498ba66e8c Revert "cleanup some icon images by removing some unnecessary resolutions (large images and low bit images)"
This reverts commit b40812798b.
2020-06-30 18:08:09 -05:00
adelikat 5ef46b9969 log window icon 2020-06-30 18:08:09 -05:00
nattthebear 6e938718f5 bizinvoker - fix a bug that caused the CLR to reject any [BizInvoke, Compatibility = false] method with a string parameter in any position except the first
According to the rules (which are hard to find), there must be nothing on the evaluation stack when localloc is called (except its own size parameter).  The generated string interop code didn't respect that.  This didn't cause any problems in existing code.
2020-06-30 17:56:11 -04:00
adelikat ef311576ee Use LastInputColor config value instead of hardcoded color 2020-06-30 16:40:00 -05:00
adelikat e5bbec1800
Message Config - Simplify code and some cleanup (#2183)
* move messageConfig to its own folder

* start MessageEdit user control

* more setup

* wire stuff up

* progress

* progress

* fixes and cleanup

* start mesage row component

* move method from MessageConfig to extension method

* MessageRow - progress

* progress

* Message row - progress

* progress

* fix initial load

* fix Restore btn

* use RadioButtonEx

* start ColorRow user control

* progress

* progress

* progress

* rename

* make color picker work

* cleanup

* cleanup

* Message config - don't immediate set config values on restore defaults, allow user to press ok or cancel to decide to actually save

* cleanup

* cleanup
2020-06-30 16:16:54 -05:00
alyosha-tas 7aa1a497f7 GBHawk: only latch new window y value if greater then current line (fixes pokemon crystal artifact) 2020-06-30 17:15:00 -04:00
YoshiRulz 318c6a7994
Add an easy way to #define symbols when building
-p:MachineExtraCompilationFlag=SYMBOL_NAME
2020-06-30 14:44:39 +10:00
YoshiRulz c5f10187fc
Mute CA1030, CA1056, and CA2234
"Use events where appropriate" and some string->Uri nags
2020-06-30 14:37:40 +10:00
YoshiRulz dddeab8e12
Refactor UndoHistory 2020-06-30 14:25:02 +10:00
YoshiRulz 05eaf2cfb7
Fix wrapping of 2 labels in DisplayConfig
fixes 64d14a7f9
2020-06-30 13:20:39 +10:00
YoshiRulz cba0eada69
More nullability 2020-06-30 12:57:57 +10:00
YoshiRulz 52203314ca
Misc. style fixes 2020-06-30 11:32:52 +10:00
YoshiRulz 62537118ac Add GetPanelNativeSize() to DisplayManager
not really that helpful, but removes the annoying dependency on
PresentationPanel from IEmuHawkMainForm (ready for move to Client.Common)
2020-06-30 11:02:17 +10:00
YoshiRulz 962ac0d9d4 Extract interface from MainForm 2020-06-30 11:02:17 +10:00
YoshiRulz e3c54b2268 Change some MainForm event handlers to delegate typed properties
makes encapsulation easier
2020-06-30 11:02:17 +10:00
nattthebear 499b59a0bd zwinder refactoring
Looks like a big diff, but isn't.  It separates the zwinder buffer part (which does most of the work) with the rewinder impl on top of it.  This is part of the effort for a zwinderstatemanager for tastudio, which isn't done yet, but these changes can come in just fine
2020-06-29 15:55:53 -04:00
adelikat ed49e58489 remove some references to multitrack in some comments 2020-06-29 10:37:05 -05:00
adelikat 452611477b delete multitrack message position config values, and message config ui, also reposition thingsin message config and fix some positioining, hence designer barf 2020-06-29 10:32:04 -05:00
scrimpeh 1c82340cac ram search - fix loading of wch files 2020-06-29 09:01:33 -05:00
adelikat 64d14a7f92 mass replace System.Forms.Label with LocLabelEx 2020-06-29 09:00:05 -05:00
adelikat 80599ddbe8 BatchRun - use LabelLocEx 2020-06-29 09:00:05 -05:00
YoshiRulz 141541bc1f
Pass delegates instead of MainForm to RewindConfig 2020-06-29 14:47:53 +10:00
YoshiRulz e4df38602b
Pass delegates instead of MainForm to BatchRunner 2020-06-29 14:47:51 +10:00
YoshiRulz c0aefd438a
Pass delegates instead of MainForm to OpenAdvancedChooser 2020-06-29 14:47:44 +10:00
YoshiRulz 4f4a875382
Pass delegates instead of MainForm to EmuHawkOptions 2020-06-29 14:47:42 +10:00
adelikat b40812798b cleanup some icon images by removing some unnecessary resolutions (large images and low bit images) 2020-06-28 15:11:02 -05:00
adelikat 3c9a7ff7a5 Multidisk bundler - use LocLabelEx 2020-06-28 13:29:38 -05:00
scrimpeh 286b56de5a ram search - pr fixes. also remove out of range searches in ramsearch
- adds a static IsValid method to IMiniWatch implementations
- reverts .csproj changes
- 'remove out of range' button on ram search didn't seem to actually do anything. this was fixed
2020-06-28 12:29:49 -05:00
scrimpeh c8ca09724c ram watch - fix two minor bugs
fixes two minor bugs relating to ram watch display type

1.binary display was broken on 32 bit watches
2.changing a watch's size to one with an incompatible display type resulted in an exception (e.g. 32 bit float -> 8 bit unsigned)
2020-06-28 12:29:49 -05:00
scrimpeh f9e174fd2d ram search - incorporate domain checking 2020-06-28 12:29:49 -05:00
scrimpeh 1721e4f9ea ram watch - add IsValid method 2020-06-28 12:29:49 -05:00
nattthebear c1caa3e346 More crusty progress 2020-06-28 10:21:36 -04:00
adelikat cacf04f8ca N64pluginConfig - replace Label wtih LocLabelEx 2020-06-28 09:04:16 -05:00
adelikat 4d53efcf85 N64 plugin config - use property grid in video plugin tabs 2020-06-28 09:04:16 -05:00
adelikat ff4eda68c8 N64 plugin config - remove use of GameInfo that was nonsense. It was setting per game hacks to GameInfo settings if enabled, but these values are already overridden on RomLoad, so this code was doing nothing 2020-06-28 09:04:16 -05:00
YoshiRulz 314dc391ae
Fix typo
these are backwards; fixes 73a905214
2020-06-28 19:45:39 +10:00
YoshiRulz 73a905214e
Fix possible bug when symlinking EmuHawkMono.sh 2020-06-28 19:42:49 +10:00
zeromus bc0849ad9d add a path entry for libretro ROM, even though it doesn't make sense, because it just isn't worth making sure every consumer of the ROM path is prepared for the possibility that ROM may be missing. This fixes #2176, but there's any number of other settings we could choose. 2020-06-27 22:32:51 -04:00
YoshiRulz 4f7c1a0b76
Enable nullability in AxisSpec and related types 2020-06-26 15:03:28 +10:00
YoshiRulz d0f96339ce
Fix reboot.png; no clue what was wrong but the warning is gone
for reference, I converted it to .bmp and back w/ ImageMagick
the warning was to stderr and it read `libpng warning: sRGB: cHRM chunk does not
match sRGB`
2020-06-26 14:45:33 +10:00
YoshiRulz 69146b04b2
Add and use DEBUG-conditional WriteLine methods 2020-06-26 14:37:36 +10:00
diddily 46e744cd33
Catch and retry when DirectSound crashes (squashed PR #2166, fixes #1212)
* Handling for BufferLost
Fixes issue #1212 where adding/removing headphones would lead to a crash by restoring the sound device when it's detected and being defensive with exception handling.

* Internalize the handling of buffer lost and make it a bit more efficient.
Remove interface function for SoundLost and move the logic to soley live inside DirectSoundOutput. Additionally I discovered I did not need to tear down the entire device to restore sound, typically Restore() and Play() handle it. Still need to wrap every place that can throw an exception in a try/catch block and wait for WriteSamples to handle it.

* Update DirectSoundSoundOutput.cs
Logic is hard.

* Retry limiter added to recovery
Added a self reducing retry counter that will try to start sound 5 -> 4 -> 3 -> 2 -> 1 times each time it tries to recover until it succeeds, at which point the counter returns to 5. This allows for quicker attempts at recovery without the risk of an infinite loop or terrible performance from sleeping 10 ms.
2020-06-26 11:56:27 +10:00
adelikat 312f029b0b Ram Watch - user LocLabelEx 2020-06-25 18:13:08 -05:00
YoshiRulz 3d8ed7483f
Move axis types to own files 2020-06-26 09:00:33 +10:00
YoshiRulz a0c8f722d2
Use constraints for grouping, add new class for unconstrained pairs
e.g. for Intellivision `_controllerDeck.Definition.Axes["P1 Disc X"].PairedAxis`
gives "P1 Disc Y"
2020-06-26 08:53:10 +10:00
YoshiRulz 1e67fc1d4b
Use inheritance for AxisConstraints 2020-06-26 08:43:17 +10:00
YoshiRulz 15906af6e4 Merge AxisRange into AxisSpec
was going to move only Mid but this made more sense
2020-06-26 08:08:58 +10:00
YoshiRulz 6cb60aa9fd Merge AxisControls, AxisRanges, and AxisConstraints into a single dict 2020-06-26 08:08:58 +10:00
adelikat af2649d9a0 move icon references in designer files to the main files before the designer eats them 2020-06-25 16:32:29 -05:00
adelikat 09a6f54735 add icon back to LogWindow AddToDatabase button, that got eaten by the designer at some point 2020-06-25 09:40:19 -05:00
adelikat 39535eacda RomStatus picker - remove image setting out of designer before it gets eaten by a designer based change 2020-06-25 09:18:33 -05:00
adelikat 371a7bd4f3 use MainForm.thing instead of GlobalWin.thing in some places, this is marginally better, maybe 2020-06-25 08:52:53 -05:00
alyosha-tas 49cb426a59 GBHawk: Double speed mode timing fix 2020-06-24 17:17:46 -04:00
nattthebear 6ff2d801e6 memoryblock experiments continue 2020-06-23 15:01:49 -04:00
scrimpeh 85d140c4b5 ram watch: allow duplicate identical ram watches
Allows duplicating identical Ram Watches. Previously, the Duplicate Watch dialog would silently discard a new watch if the address didn't change. As a side effect, multiple watches can now be duplicated simulatenously. This commit also removes the check for separate memory domains - it doesn't seem to cause any problems
2020-06-23 11:55:37 -05:00
scrimpeh d6994ea1af ram watch: watches are deleted by index
If you have two watches with an identical address, deleting one will always delete the first one. This commit fixes that
2020-06-23 11:55:37 -05:00
adelikat c13430896f remove empty controller mappings from defctrl, also remove duplicates that caused it to be invalid json (.net happily was deserilizing it anyway), don't save empty mappings when saving from the ui 2020-06-22 19:54:36 -05:00
adelikat 93c47b87b9 Controller config - take label width into account when generating columns 2020-06-22 18:11:31 -05:00
nattthebear 1ce0905deb Minor zwinder tweaks
Change the implementation of state eviction slightly.  The result is identical, but this is slightly easier to understand and will be needed to allow an evicted state to be read before eviction.
2020-06-22 18:52:18 -04:00
nattthebear 92525576cc more krusty krab 2020-06-22 18:15:11 -04:00
zeromus e3dd8870c6 fix hq2x shader (fixes #2160) 2020-06-21 21:52:49 -04:00
adelikat b9f59337dd fix Saturn and NGP default controls 2020-06-21 17:31:28 -05:00
adelikat 29a492fc2a fix pc-fx controller name to match old name 2020-06-21 17:22:00 -05:00
adelikat 123f1b3c99 default controls for Nyma PCE cores 2020-06-21 16:27:06 -05:00
nattthebear 53c2318b56 nyma - activate controller deck names 2020-06-21 16:55:41 -04:00
adelikat cf4a0176a3 bk2 mnemonic lookups - we have a lot of keyboards now, make fkeys standard mnemonics instead of core specific 2020-06-21 15:32:45 -05:00
nattthebear ae9405fb84 saturn: autofire blah blah again 2020-06-21 16:14:50 -04:00
YoshiRulz 31e621d64e
Move init of form icons to ctor (from InitializeComponent)
tested the `global::` syntax on VS2019, the Designer refuses to cooperate
2020-06-22 06:06:59 +10:00
adelikat 03d7fc2498 Saturn virtualpad work 2020-06-21 14:51:22 -05:00
zeromus 2a4ac1f7e1 display manager: fix "use 1:1 pixel size" aspect ratio (re #2159) 2020-06-21 15:27:51 -04:00
adelikat c76515d7f7 Saturn - fix virtualpad logic broken by settings changes, fix mnemonic in 3d controller 2020-06-21 13:14:30 -05:00
nattthebear b0007c83f4 more musings 2020-06-21 14:09:38 -04:00
adelikat 5404fb90d7 nyma - do button name overrides on analog stick suffixes 2020-06-21 12:36:01 -05:00
adelikat 0862024ba6 virtualpad support for NGP 2020-06-21 12:14:12 -05:00
adelikat 39ff851972 tastudio track engaged flag better 2020-06-21 11:00:57 -05:00
adelikat 4d0d9e04aa TAStudio - don't draw unless Tastudio is "engaged", fixes a lot of NREs through various core reboot scenarios 2020-06-21 10:57:23 -05:00
adelikat b0258ef3db fix NRE when closing tastudio 2020-06-21 10:43:05 -05:00
zeromus 4319096b50 format shader compiling errors better 2020-06-20 22:25:41 -04:00
zeromus f6f7847b95 allow copying selected text from ExceptionBox 2020-06-20 22:25:41 -04:00
zeromus 703a51be09 fix retroizer 2020-06-20 22:25:41 -04:00
YoshiRulz e24ddc9ebe
Finish renaming floats to axes 2020-06-21 12:16:32 +10:00
alyosha-tas 6fc1228ec2 GBHawk: HDMA timing bug fix 2020-06-20 22:05:05 -04:00
YoshiRulz 3d45799fc5 Specify [SpecializedTool] belongs on classes 2020-06-20 21:31:16 -04:00
YoshiRulz f76f301f8d Enable SA1015 and fix noncompliance
"Closing generic brackets should be spaced correctly"
2020-06-20 21:31:16 -04:00
YoshiRulz 3c02545066 Enable SA1026 and fix noncompliance
"Code should not contain space after new or stackalloc keyword in implicitly
typed array allocation"
2020-06-20 21:31:16 -04:00
YoshiRulz 14e0c96fd8 Enable SA1121 and fix noncompliance
"Use built-in type alias"
2020-06-20 21:31:16 -04:00
YoshiRulz 0021cfee70 Enable SA1130 and fix noncompliance
"Use lambda syntax"
2020-06-20 21:31:16 -04:00
YoshiRulz 0a3cb5f23f Enable SA1410 and fix noncompliance
"Remove delegate parenthesis when possible"
2020-06-20 21:31:16 -04:00
YoshiRulz dcae34ce47 Enable SA1314 and fix noncompliance
"Type parameter names should begin with T"
2020-06-20 21:31:16 -04:00
YoshiRulz a8bd9733f4 Enable SA1626 and fix noncompliance
"Single-line comments should not use documentation style slashes"
2020-06-20 21:31:16 -04:00
YoshiRulz a1aca37476 Enable SA1617 and fix noncompliance
"Void return value should not be documented"
2020-06-20 21:31:15 -04:00
YoshiRulz 135490c740 Enable CS1572, CS1574, and CS1734, and fix noncompliance
malformed references or wrong XML tag
2020-06-20 21:31:15 -04:00
YoshiRulz 0e1271c7c2 Fix exception creation 2020-06-20 21:31:15 -04:00
YoshiRulz abcf91f7d6 A bit of Range cleanup 2020-06-20 21:31:15 -04:00
YoshiRulz f37b74c4ba Enable CS1570 and fix noncompliance
malformed XML
2020-06-20 21:31:15 -04:00
YoshiRulz 43cc80f6a3 Mess w/ doc comment warnings 2020-06-20 21:31:15 -04:00
zeromus dfe027cf8f finish renaming hyper/turbo wbx files 2020-06-20 20:20:42 -04:00
zeromus 687704dc3c updated waterbox docs 2020-06-20 20:13:00 -04:00
zeromus 316aafed40 ss and pcfx dirs can be whacked (they belong to numa now) 2020-06-20 20:13:00 -04:00
zeromus 602dec0c4c clarify that CloneSaveRam() can return null 2020-06-20 20:13:00 -04:00
zeromus f98c4d18b1 dont create empty file when manually flushing null save ram 2020-06-20 20:12:59 -04:00
zeromus e22ce7af9c gpgx - return null for CloneSaveRam() when there's no saveram. this is apparently legal and other cores have been doing it 2020-06-20 20:12:59 -04:00
zeromus 2fc8b91e45 rename pce and pce-fast to turbo and hyper 2020-06-20 20:12:46 -04:00
zeromus 27f9a70085 clean nyma zlib building stuff 2020-06-20 20:12:45 -04:00
nattthebear a9d1ad16b1 GPGX: Saveram tweaks
When saveram doesn't exist, return null, not new byte [0].  If passed a 0-length saveram file, do not pass it to the core (this crashed in interop stubs).  Note that as best as I can tell, this is not fixing any problem; even without this commit it seems impossible to get BizHawk to actually generate a 0 byte saveram file for GPGX because of other checks that already existed.
2020-06-20 19:21:55 -04:00
zeromus fc5e325608 add Reset Speed hotkey. it's bound to Shift+Equals by default because.. well, it's kind of logical... kind of. If you have any better suggestions...
fixes #2154
2020-06-20 18:55:39 -04:00
zeromus 936b7606d0 cleanup to Choose A/V writer dialog 2020-06-20 18:46:37 -04:00
nattthebear 3f6ffeb573 krusty 2020-06-20 18:07:17 -04:00
adelikat c6694a5e29 TasMovie - cache mnemonic look ups, gives a noticeable speed boost to drawing 2020-06-20 16:00:08 -05:00
adelikat 249259d7b3 move QuickCollections to the PCEHawk core where it is used, since we don't expect to use it elsewhere, and one of it's advantages was speculating that being in the same assembly would give it good inlining, so being in a common library was negating this 2020-06-20 14:54:21 -05:00
adelikat dc656ccb23 remove unused extension method 2020-06-20 14:36:57 -05:00
adelikat 21d2667736 remove useless dropdown opened event 2020-06-20 14:27:23 -05:00
adelikat 46188f977c convert SMSHawk to generic core menu 2020-06-20 14:11:23 -05:00
adelikat f1d5ef0f0f create ISmsGpuView and have the Sms VdpViewer tool depend on it 2020-06-20 14:03:57 -05:00
adelikat 8bfe6011bc convert PCE to generic core menu 2020-06-20 13:42:00 -05:00
adelikat 5570af6514 convert Genesis to generic core menu 2020-06-20 13:12:09 -05:00
adelikat 831197aeaa created a SpecializedTool attribute for system/core specific tools, and use it to dynamically add available tools to the generic core menu, replace the hardcoded GBA menu using this 2020-06-20 13:05:36 -05:00
nattthebear 440a340cb5 remove what should have been ignored 2020-06-20 13:49:58 -04:00
adelikat f1131b1907
Create a generic core menu (#2155)
* poc - have a default core menu that provides a generic settings menu item, wire up some cores to this generic menu that only have settings to begin wtih

* vectrex - remove strong type for settings, if there are no settings the convention is to use object, which allows GenericCoreConfig to be smart

* convert saturn menu to default core menu

* fixups

* convert PCFX menu to generic core menu

* convert snes9x and faust to generic core menu

* convert GBLink to generic core menus

* convert MAME to generic core menu

* convert NGP to generic core menu

* convert GGLink to generic core menu

* convert wonderswan to generic core menu

* convert virtualboy to generic core menu
2020-06-20 11:28:23 -05:00
nattthebear e6858c702b nyma - fix bug that stopped NGP from booting
Happened in a recent refactoring.  NGP hides the constantfb setting (Because it is always at a constant fb), and that needs to override the core provision, not cause an exception.
2020-06-20 12:12:34 -04:00
nattthebear be81bc12c2 more wip 2020-06-20 10:30:41 -04:00
nattthebear 4f09ffcda9 doc cleanup 2020-06-20 05:59:43 -04:00
zeromus 5e399b8fc3 fix crash shutting down when GL retroshaders failed compiling 2020-06-20 00:52:38 -04:00
zeromus 1b4a6f6415 get gl display method working, at least, minimally, with the scanlines shader. someone else can fix up the others if they need to or make me a bug. at least the hard part is past 2020-06-20 00:48:42 -04:00
zeromus d4cb18aff8 actual remove CGC.exe, that was the whole point wasnt it 2020-06-20 00:48:42 -04:00
zeromus 00e546a537 keep working on CGC-removal 2020-06-20 00:48:42 -04:00
zeromus b842f3ed16 remove cgc (step 1) 2020-06-20 00:48:42 -04:00
nattthebear 1f966a4cc1 Fix potential crash on exit if certain native resources weren't disposed
Finalizers in SpeexResampler and QuickNes assume that the underlying native dll still exists when they run, as they have to in order to successfully clean up leaked memory.  This is not true if those resolvers, which were stored as static fields themselves, had been finalized, which can only happen on app exit (because the static fields were readonly and always kept their value).  If a SpeexResampler or QuickNes was never disposed and itself lasted all the way to app exit, then the order of these two finalizers would be unspecified and a crash could happen.

In normal circumstances, this was only observable in DS core because apparently Suuper couldn't copy paste properly and missed the dispose part, but that was already fixed in 129d454a67.
2020-06-19 23:10:56 -04:00
nattthebear ffcb7cefb1 Move llvm to submodule 2020-06-19 20:56:17 -04:00
nattthebear ee6c2ba679 Watch babby's first rust program... one commit at a time
Working on some ideas to potentially replace WaterboxHost
2020-06-19 20:56:16 -04:00
nattthebear 129d454a67 blah blah dispose blah blah 2020-06-19 20:56:16 -04:00
zeromus ee963e8d64 I found this old icon on an old hard disk. I think I meant it for the log window, but maybe that was back when it opened the windows console instead of another window? Anyway, it's cute, maybe someone will figure out what to do with it. 2020-06-19 19:07:20 -04:00
adelikat 65a6ec03f6 reduce some mainform redundant menus for gb3/4x, they have the same logic as gbhawk link 2020-06-19 17:07:42 -05:00
adelikat 7bac6e933b add icon that the designer ate 2020-06-19 16:49:23 -05:00
nattthebear 020e5a7e32 minor cleanup 2020-06-19 17:26:58 -04:00
adelikat 487c596d76 cleanup Zwinder 2020-06-19 16:16:07 -05:00
adelikat 53716a40e5 Rewind Config - add UI for Rewind.TargetFrameLength, and a bit of visual re-org. Designer was used so this includes designer file barf 2020-06-19 16:09:17 -05:00
adelikat da59add3f6 add TargetFrameLength to rewind settings 2020-06-19 15:58:18 -05:00
adelikat 4978fe4b92 Rewind config - more cleanup - calculate maths correctly 2020-06-19 15:53:08 -05:00
adelikat 32b14641f1 Rewind config - better buffer size settings 2020-06-19 15:22:39 -05:00
adelikat 9faa159647 Rewind settings cleanup, make default buffer size 512mb 2020-06-19 15:19:50 -05:00
adelikat d431947d4e rewind config cleanup 2020-06-19 15:14:11 -05:00
adelikat 392611d6c6 Rewind - rename Small state enable to just enabled 2020-06-19 15:09:59 -05:00
adelikat c83027b817 remove medium and large state enabled rewind options 2020-06-19 15:05:49 -05:00
adelikat 6b514293ff Rewind - remove speed multiplier option, very redundant given that speedup and turbo calculate toward rewind speed 2020-06-19 15:02:03 -05:00
adelikat 6440d92a34 remove rewind frequency settings 2020-06-19 14:57:09 -05:00
adelikat 63533888ad Rewind config - remove on disk option 2020-06-19 14:47:25 -05:00
adelikat 9d17cd40e8 Rewind - remove ability to define Small, Medium, Large state sizes 2020-06-19 14:45:08 -05:00
adelikat a58a10e633 remove rewind threading config option 2020-06-19 14:37:36 -05:00
adelikat 270d03bf40 rewind - change UseDeltaCompression to UseCompression 2020-06-19 14:35:55 -05:00
adelikat dec20a4683 remove old rewinder code 2020-06-19 14:10:06 -05:00
adelikat 84c691021b settings hacks - actually map compression to a compression settings, give rewind an "off" switch, hacked to small states for now 2020-06-19 14:05:38 -05:00
adelikat 02a2efbed1 oopsies 2020-06-19 14:05:38 -05:00
adelikat 7dd78a9fa4 zwinder - hack in some settings from the ui 2020-06-19 14:05:38 -05:00
nattthebear 3b8e0ce39d Zwinder: Don't tell the mainform we're rewind-state-capping every 0 frames, that's just silly 2020-06-19 14:05:38 -05:00
nattthebear 1121d430f4 zwinder: add optional compression 2020-06-19 14:05:38 -05:00
nattthebear 5bd75fd001 Testing a new "zwinder" rewinder 2020-06-19 14:05:38 -05:00
alyosha-tas a914cb69e0 GBHawk: Speed change and window fixes 2020-06-19 14:09:03 -04:00
adelikat 75bd2f8063 fix NRE fix fail 2020-06-19 10:18:28 -05:00
adelikat 91c33a49c0 Rewind config - fix NRE when turning off rewind then going back to the config dialog 2020-06-19 10:01:01 -05:00
nattthebear 23f8c2bbe6 waterbox: move location of llvm-project 2020-06-18 14:06:23 -04:00
zeromus d917d6f377 update mgba from upstream, including commits 2f2908240178cd418acc6e4942ad9b78939b85a5 and 8f1148498e12197745f62e477d9b8e07382cc72e to address #1593 (at least, it fixes the shrek 2 non-tas scenario) 2020-06-18 04:46:21 -04:00
zeromus 3988f1c4cb suggest using make -j or else I'll forget it every time 2020-06-18 04:37:06 -04:00
zeromus 25327b510d mgba - try resetting sram memdomain after frame advance, so sram autodetection can progress and feed into frontend. addresses #1620, maybe not in the best way 2020-06-18 03:08:57 -04:00
zeromus 1efc91cb94 hex editor: handle tiny (even 0 size) memory domains without crashing 2020-06-18 03:07:44 -04:00
zeromus 01cfe12db6 clarify how to build mgba 2020-06-18 01:40:54 -04:00
YoshiRulz 8e414aea29
Enable CA1829 and fix noncompliance
"Use Length/Count property instead of Count() when available"
2020-06-18 09:44:01 +10:00
YoshiRulz 620e54580d
Enable CA1052 and fix noncompliance
"Static holder types should be Static or NotInheritable" (classes with only
static members should be static classes)
2020-06-18 09:43:57 +10:00
YoshiRulz 16d1782c9e
Enable CA1018 and fix noncompliance
"Mark attributes with AttributeUsageAttribute"
2020-06-18 09:43:53 +10:00
YoshiRulz 7f99dd95d6
Enable CA1010 and fix noncompliance
"Collections should implement generic interface"
2020-06-18 09:43:50 +10:00
YoshiRulz 8ca791852a
Enable MEN011 and fix noncompliance
"Align using directives"; this file had 2 BOM chars for some reason
2020-06-18 09:43:47 +10:00
YoshiRulz e71f5b32f0
Minor style cleanups 2020-06-18 09:43:36 +10:00
alyosha-tas 01e3a6cf43 QuickNES: blacklist Burai Fighter fixes #2145 2020-06-17 13:58:51 -04:00
nattthebear 4d3558d7e3 State manager API cleanup
add some comments.  Remove two methods from the interface definition that aren't actually used in public API
2020-06-17 07:31:00 -04:00
YoshiRulz abca8e02f2
Move some static data from MainForm to RomLoader 2020-06-17 10:46:54 +10:00
YoshiRulz 77e6a7300a
Create and use MainForm.ShowDialogAsChild(Form) helper 2020-06-17 10:46:51 +10:00
YoshiRulz 0e767add09
Rename ApiHawk files to match type name 2020-06-17 10:38:31 +10:00
YoshiRulz 9d1dfd71a1
Fix EmuClientApi not being registered and merge CloseEmulator()s
fixes a74d657a2, 51a83193a
2020-06-17 10:35:14 +10:00
alyosha-tas c53bda9235 NESHawk: make game genie compare cheats work 2020-06-16 20:01:34 -04:00
YoshiRulz ff4662efe8
Delegate more of ClientLuaLibrary to ApiHawk 2020-06-17 08:02:09 +10:00
YoshiRulz a74d657a2a
Promote IEmuClient to a full-fledged IExternalApi
also remove UnpauseEmulation() (duplicate of Unpause()) and rename
SetExtraPadding to SetClientExtraPadding (to match Lua)
2020-06-17 08:02:02 +10:00
nattthebear 9597be621a Partially revert c42889ceef
Pretty sure it's impossible for this to be null; the entry assembly always has a location and only weird dynamic assemblies can have none.

But if somehow it was, then we don't want to create a jumplist item that doesn't work!
2020-06-16 17:30:18 -04:00
nattthebear 8607f7891f Fix virtual size output on nyma cores. Expose more debugging info to console about screen sizes. 2020-06-16 15:53:10 -04:00
YoshiRulz 51a83193a1
Merge overloads of CloseEmulator to param w/ default 2020-06-17 02:15:33 +10:00
YoshiRulz cb08d00372
Replace single-use delegate type with Action<bool> 2020-06-17 02:15:11 +10:00
YoshiRulz 03acb1ded7
Move LoadRomArgs to own file 2020-06-17 02:14:33 +10:00
nattthebear 8b9debb8b9 Hide mission stick autofires again
I hope someone comes into irc screaming about how they can't do their TAS because we don't support the exact hardware semantics of the mission stick, but the more realistic outcome is that no one ever uses the mission stick for anything
2020-06-16 10:20:11 -04:00
nattthebear fa4a95f1b1 Looks like this existed solely to support the old bsnes interop, which everyone agrees was awful and something we only did because we had to 2020-06-16 07:45:34 -04:00
nattthebear 7b2ac98520 guess nothing was using this 2020-06-15 17:10:27 -04:00
adelikat 27bb2759a6 more mnemonics for saturn 2020-06-15 15:33:54 -05:00
adelikat c5ec8eb0ba saturn - mnemonic for smpc reset button 2020-06-15 14:59:24 -05:00
adelikat 03e2bccf6c remove a debug line of code 2020-06-15 14:49:26 -05:00
zeromus 98b3d8d335 change PSX framerates to follow mednafen instead of nocash (fixes #2138) 2020-06-15 15:10:29 -04:00
adelikat e6a2fe39e1 faust - support virtual pads 2020-06-15 14:02:34 -05:00
adelikat cf3e1d51e0 nyma cores - fixes to mnemonic lookups and add a few overrides 2020-06-15 13:43:23 -05:00
adelikat c8a0b6c323 virtual pads - pce, pcfx - add console buttons 2020-06-15 13:29:31 -05:00
adelikat 25dddf5160 hack to fix Nyma roman numeral buttons, virtualpads - PCE and PCFX fixes 2020-06-15 13:20:40 -05:00
adelikat 3d8920308c remove nyma virtual pad hacks for direcitonal buttons now that nyma buttons conform to typical naming conventions 2020-06-15 13:20:40 -05:00
alyosha-tas 0d9f0d2af1 A2600: update gamedb for quad run fixes #2127 2020-06-15 14:08:45 -04:00
adelikat 4122a51153 bk2 mnemonic lookup - remove some nyma hacks now that nyma directional buttons conform to the typical naming scheme 2020-06-15 12:59:54 -05:00
nattthebear b8bea93cce Rework nyma controller overrides 2020-06-15 13:37:50 -04:00
nattthebear 5b2b1cf13b Enable SNES and GBA gpu view on linux
I tested the SNES one and it seemed to work.  Don't have any working GBA cores right now in linux, I think?  But no reason to expect it wouldn't work
2020-06-15 10:49:17 -04:00
nattthebear 8e689dae76 Don't lock out the GB gpu view on linux
It works there, why was it disabled?
2020-06-15 10:42:47 -04:00
YoshiRulz 77a810600b
Inline the thing I deleted into somewhere it shouldn't be used, again 2020-06-15 13:09:58 +10:00
YoshiRulz 5f809d8e24
Cleanup N64 controller def init and re-init 2020-06-15 13:03:15 +10:00
nattthebear e5e4983464 waterbox - remove some unused saverammerer junkus
ngp doesn't use this, so...
2020-06-14 20:29:22 -04:00
nattthebear abc1f502b9 remove no longer used vbanext file 2020-06-14 19:42:32 -04:00
adelikat 67489bfc3a PCFX - fix virtualpads, support mouse 2020-06-14 16:21:37 -05:00
nattthebear 30fd675903 woops 2020-06-14 16:27:08 -04:00
adelikat 9027223018 PCE - virtualpads - support all the buttons 2020-06-14 15:19:28 -05:00
adelikat cecf29e90a Support PCE mouse in movie mnemonics and virtualpads 2020-06-14 15:19:28 -05:00
nattthebear ecdfc66617 nyma big setting update
Moves a lot of settings around, hopefully addressing some concerns
2020-06-14 16:02:33 -04:00
YoshiRulz 99a5563490
Inline value that was public for some reason 2020-06-15 05:12:14 +10:00
YoshiRulz dbeb279bf0
Add an extension method to help w/ ControllerDefinition init of axes 2020-06-15 04:47:54 +10:00
nattthebear 2707d1cd92 nyma - rework settings architecture a bit
This gives us flexibility to define more featureful overrides
2020-06-14 14:18:13 -04:00
adelikat e41659e237 rough in for gamepad or none virtualpad support for Turbo and Hyper Nyma cores, only 2 button currently supported, support some uppercase button names in mnemonics 2020-06-14 12:02:09 -05:00
nattthebear a28f2b2a45 waterbox buildscript changes 2020-06-14 12:35:18 -04:00
adelikat 9dfd6c3fb3 remove nyma button name overrides, they don't help with virtualpads, and ar e a hassle to maintain, we can just consistently be inconsistent for these cores 2020-06-14 11:32:01 -05:00
nattthebear a0aa1fb805 Bare minimum to unbreak some mnemonics 2020-06-14 11:58:00 -04:00
nattthebear 278317685c actualportdata api 2020-06-14 11:47:02 -04:00
nattthebear aa3369a080 Get saturn virtualpad closer to reworking again
This is a mess and we need a new notion of controller definition
2020-06-14 11:33:51 -04:00
nattthebear 7ba3f6db03 saturn - fix crash in dead or alive
It does look pretty awful with interlacing, but that's not something bizhawk is equipped to solve at present
2020-06-14 10:15:05 -04:00
adelikat 3610ca2b4c virtualpads - prevent crash on Turbo and HyperNyma cores, just empty for now, will support these cores later 2020-06-13 18:17:11 -05:00
nattthebear f2b461bed1 nyma - overhaul some input stuff to support some more things
saturn guns and keyboards now work
2020-06-13 18:19:41 -04:00
nattthebear 7f83f311f9 saturnus - wire up the needed analogs for 3d controller 2020-06-13 17:00:59 -04:00
nattthebear 77e3f9acb3 saturn - hide unavailable ports depending on multitap
One slight issue is that the bulitin smpc reset is always "player 13", but that's not enough of an issue for me to care
2020-06-13 16:53:46 -04:00
nattthebear d6cc6abfec pcfx - hide ports based on multitap 2020-06-13 16:50:01 -04:00
nattthebear 13a5e9d102 faust - hide ports 3-5 and/or 6-8 depending on multitap settings 2020-06-13 16:45:06 -04:00
nattthebear 60614ffa7b PCE: Hide controllers 2-5 if multitap is disabled
They have no power in that situation
2020-06-13 16:39:26 -04:00
adelikat 2dd618b6f2 PCFX - remap some buttons, add (bad) mnemonics for mode buttons 2020-06-13 15:21:52 -05:00
adelikat 573b544a88 new pce cores - add some button name overrides, and support mnemonics 2020-06-13 15:11:00 -05:00
adelikat b1c2ed0d3d set movie = null on stop movie, this used to crash tastudio but I can't make it crash anymore, either we fixed the underlying problem or I didn't reproduce it correctly, will fix if it comes up 2020-06-13 14:29:47 -05:00
nattthebear 398d9c45cb Revert "fix nyma button binding label"
This reverts commit 14661f4c76.

Dunno what was going on here, this is a feature that we'll need to fix #2129 and similar... please don't randomly delete code?
2020-06-13 15:08:20 -04:00
zeromus 14661f4c76 fix nyma button binding label 2020-06-13 13:42:45 -05:00
YoshiRulz f48e3cd2ea
Re-enable A/V recording on Linux and add a big ol' disclaimer dialog 2020-06-14 02:59:50 +10:00
adelikat 4c77ebd3d1 remove tastudio hack that I'm convinced is either 1) does nothing 2) causes bugs 3) fixes something that should be handled in a different place in the code 2020-06-13 11:47:21 -05:00
adelikat 51e1ee3a46 MovieSession - simplify and improve performance - remove unnecessary CopyController wrapper on MovieIn, and don't set movie controller state unless recording 2020-06-13 11:38:30 -05:00
adelikat 268ab96ae9 remove built-in multitrack movie recorder, justification: tastudio is a much better alternative, it isn't used, and it's causing strain on better movie architecture, also this logic is easily done via lua script. It could be built from scratch one day in a way that plays nice with better movie architecture, if there's demand, but we need to remove this to keep moving forward 2020-06-13 09:49:25 -05:00
nattthebear 03d10cebb9 Support bsnes on LOO-NICKS
Had to fix up libspeex and some waterbox cothread funsies
2020-06-12 19:10:42 -04:00
adelikat bb2e82c94a GlobalWin.MainForm begone 2020-06-12 16:59:44 -05:00
adelikat 590a2fc245 VirtualPadButton - be more thorough about not responding to keyboard input, instead of focusing on mainform to avoid it 2020-06-12 16:31:38 -05:00
adelikat 336d2fc3a9 simplify EditSubtitlesForm 2020-06-12 15:53:01 -05:00
adelikat ee0d32d56f simplify the EditCommentsForm and remove usages of GlobalWin 2020-06-12 15:29:45 -05:00
nattthebear 25a5449a48 Work around mono marshalling issue
Fixes #2116, but it'd be nice if mono fixed it too
2020-06-12 15:22:46 -04:00
adelikat f21132a2ac move EnsureCoreIsAccurate() out of EmuUtil and back into mainform since it has so many dependencies, including mainform itself, and 50% of its use is in mainform anyway 2020-06-12 13:57:28 -05:00
adelikat ac54318cfb GlobalWin.Cheatlist begone 2020-06-12 13:39:31 -05:00
nattthebear eb811b7d79 Remove check that stops a nymacore from creating "thread" in deterministic mode
The MT ppu renderer in saturn looks cool to me, so it probably won't cause nondeterminism, probably

Fixes #2126
2020-06-12 14:31:09 -04:00
adelikat 61b852c571 remove some unused usings 2020-06-12 12:56:58 -05:00
adelikat 53b0472c1a N64 plugin config - simplify use of GameInfo 2020-06-12 12:56:58 -05:00
adelikat ac61701aa3 GameInfo - simplify 2020-06-12 12:56:58 -05:00
adelikat 4e7e314a33 GameInfo - simplify a method name 2020-06-12 12:56:58 -05:00
nattthebear f2b79bb0c1 Fix saturn compilation issue
fixes #2124
2020-06-12 13:20:04 -04:00
adelikat 0c300cf5bf Remove our home-grown ReadonlyDictionary in favor of the built in .net one (as of 4.5 we have one of these built in), Gameinfo.GetOptionsDict() - return IReadonlyDictionary instead of Dictionary 2020-06-12 12:18:50 -05:00
adelikat c81f052f94 GameInfo - demand a value for key params, and force calling code to pass in an empty string if that's what they choose (better would be to pass a bool or a 0/1 even if we don't require it) 2020-06-12 12:11:53 -05:00
adelikat 10c62764ba improve some if checks in OSDManager 2020-06-12 11:58:17 -05:00
adelikat 5ef2a4d7e6 use IGameInfo instead of GameInfo in various palces 2020-06-12 11:56:05 -05:00
adelikat 066e282b39 remove GlobalWin usage in RecordMovie.cs 2020-06-12 11:48:51 -05:00
adelikat 13b6b09771 pass in systemId dependency to PathConfig 2020-06-12 11:36:21 -05:00
adelikat 777a2e8f3e reduce some copy pasta for Bmp file creation across various tool dialogs 2020-06-12 11:14:25 -05:00
adelikat f9fff69ce4 BmpView - use DesignMode flag instead of shenanigans 2020-06-12 10:21:19 -05:00
adelikat 195b01fb44 nitpick 2020-06-12 09:25:05 -05:00
YoshiRulz 5d25d537d1
Hopefully EmuClientApi will now have the loaded emu/game
see f78af85cc, 109ba1d31
2020-06-12 09:47:07 +10:00
YoshiRulz aca3768c78
Align ApiHawk and Lua library names 2020-06-12 09:47:04 +10:00
adelikat 597e010faf use GlobalWin.Game less 2020-06-11 18:31:32 -05:00
adelikat ba939466df Pass an IGameInfo into ToolFormBase and use it in tools 2020-06-11 18:25:34 -05:00
adelikat 109ba1d31a fix NRE on startup for EmuClientApi, this is a band-aid, I think _emulator should never be null 2020-06-11 17:48:41 -05:00
adelikat f1818e7f7e add Api suffix to ApiHawk interfaces, so they will stop colliding with non-api interfaces 2020-06-11 17:40:39 -05:00
adelikat d9ef084e2f add a readonly interface for GameInfo for code that only needs to read, pass into SynclessRecordingTools instead of globals, refactor SynclessReocrdingTools a bit 2020-06-11 17:35:40 -05:00
YoshiRulz 52cc0050b8
Allow ApiManager to pass some extra globals to the 5 EmuHawk APIs 2020-06-12 06:14:32 +10:00
YoshiRulz d2e20a7a1e
Pass MainForm.AllowInput to Input instance as delegate 2020-06-12 05:57:52 +10:00
YoshiRulz b972b8a771
Inline MainForm.IsLagFrame and change global usage in OSDManager 2020-06-12 05:47:23 +10:00
YoshiRulz dc352c0225
Pass globals to EmuClientApi as ctor params 2020-06-12 05:37:04 +10:00
YoshiRulz f78af85cc6
Delegate ClientApi implementation to an instantiable class
The new class, EmuClientApi, is abstracted as IEmuClient, but this interface is
not an IExternalApi. This is because a future commit will add a ctor not
compatible with the current instantiation code in ApiManager.
2020-06-12 05:37:00 +10:00
nattthebear 8c06de56c2 saturn - support lag flag again 2020-06-11 14:47:26 -04:00
adelikat a930b5f950 fix typo in a comment 2020-06-11 13:06:27 -05:00
adelikat 8270c5f997 put classes in MultitrackRecording into separate files, and make a few of them internal 2020-06-11 12:27:26 -05:00
nattthebear 638c2095ed Update labelling for every mednacore that we updated
WonderSwan/Cygne did not move to nyma, but I manually backported changes so it counts as "1.24.3" mostly
2020-06-11 12:22:32 -04:00
nattthebear f14dace4a0 Move saturn over to nyma, get latest version. 2020-06-11 12:17:10 -04:00
adelikat 73e2922a0d Fix logic that news up new Rewinders, properly dispose of the Rewinder on closeRom, this might fix memory leaks in rewinder that pre-date the recent refactor 2020-06-10 15:06:34 -05:00
adelikat af93cf3e92 consolidate logic that instantiates a new rewinder, be sure to dispose the old one 2020-06-10 09:15:52 -05:00
adelikat de5508ca6c rewinder - fix potential NRE 2020-06-10 08:56:25 -05:00
zeromus c9c1aa91ad fix temp directory pathing in path manager which was previously making no attempt to do the right thing (fixes #2118). did I do this right? I don't see what was so hard about it in the first place, but I had left a todo there..... i dunno 2020-06-09 23:27:49 -05:00
feos f9ffeec81b we can launch and use mame debugger 2020-06-09 22:34:15 +03:00
feos 9b3e18e992 mame: document build command 2020-06-09 21:43:59 +03:00
feos 36787d7292 mame: obtain rom names and hashes 2020-06-09 21:38:34 +03:00
nattthebear ef02263122 fix mouse on the pcfx core
this was a regression from the move around, it worked before
2020-06-09 13:12:12 -04:00
nattthebear 69e30ee33f Decrease state size in pcfx, pce, pce-fast 2020-06-09 10:09:17 -04:00
nattthebear 9bb56f0b5c move pcfx to nymacore 2020-06-09 08:15:06 -04:00
nattthebear 11e1019590 nyma -- support cd switching
motorcycle shifter, but neutral is before 1st instead of between 1st and second
Yes, I had to rebuild the non cd cores here, and I am sorry
2020-06-08 20:24:30 -04:00
zeromus 9c875b42f4 background thread bootgod loading 2020-06-08 16:45:44 -05:00
nattthebear 481a48fe85 Fix path config on loonix
Somewhere things are being normalized wrong and I don't care to find out where.  This is correct and functional on all systems.
2020-06-08 16:59:04 -04:00
nattthebear db866653c2 Don't try to start d3d on loonix... 2020-06-08 16:48:37 -04:00
zeromus d98bfc82c5 fix threaded DB loading (fixes #2113) 2020-06-08 14:08:50 -05:00
nattthebear b11b50a950 all nyma cores: support constant size framebuffer
this will do lossless integer scaling using mednafen provided screen geometry data
2020-06-08 13:05:31 -04:00
adelikat ddfd6fd49a put IRewinder in its own file 2020-06-08 11:35:19 -05:00
adelikat 799742c3ff IRewinder - dress up the api a bit, fix a potential NRE 2020-06-08 11:29:12 -05:00
alyosha-tas 843c70d6e1
Merge pull request #2111 from LodanZark/patch-1
update msx bios filenames and description
2020-06-08 10:19:14 -04:00
adelikat 11fb1a99bb Rewinder - be more careful about null things, fixes #2112 it seems 2020-06-08 08:32:26 -05:00
nattthebear 6eb4ec4c0d minor cleanup 2020-06-08 07:55:38 -04:00
zeromus 87803ffcba update `Building Other Solutions.txt` 2020-06-07 22:57:38 -05:00
zeromus 870e11a935 gambatte submodule update 2020-06-07 22:57:28 -05:00
zeromus d523ab8e74 add gambatte submodule 2020-06-07 22:50:17 -05:00
zeromus 7a584b48bd let's get rid of libgambatte sources....... 2020-06-07 22:24:08 -05:00
LodanZark 896612eb4d
update msx bios filenames and description
Updated the msx bios filename based on mame 0.221 and cbios0.29a, this way it fixes the filename conflict while using the feature "Organize" through Firmware Manager.
Couldn't figure it out about the bios_test origin, so I kept that one unchanged.
2020-06-08 03:32:18 +01:00
adelikat 62c6513ee3 ugh 2020-06-07 19:27:14 -05:00
adelikat 10e5df99f1 simplify naming of Rewinder api 2020-06-07 19:26:00 -05:00
adelikat ef9bb3208d simplify Rewinder api a bit 2020-06-07 19:22:08 -05:00
adelikat 225f1e7c59 oops 2020-06-07 19:19:45 -05:00
adelikat 018bed9422 interface Rewinder 2020-06-07 19:12:13 -05:00
adelikat e66e53c15d Rewinder - make IDisposable and new up and dispose of it instead of calling Init/Uninit methods. Tastudio - actually disable rewind on load instead of clearing it, and re-enable it when closing 2020-06-07 19:00:39 -05:00
zeromus 93f06f2a68 oops, fix database loading 2020-06-07 18:43:13 -05:00
adelikat 82c6efd274 Rewinder - take in an immutable version of rewindConfig 2020-06-07 17:34:41 -05:00
YoshiRulz 4cf30f4592
Fix ClientApi.RunningSystem when using new PCE cores (fixes #2109) 2020-06-08 08:06:42 +10:00
zeromus bd8003c725 thread gamedb load 2020-06-07 16:43:50 -05:00
zeromus d27128a69f gitignore launchsettings.json 2020-06-07 16:43:33 -05:00
zeromus 3ae6515d2a rename LibTerboGrafix LibTurboNyma 2020-06-07 16:09:32 -05:00
zeromus 741e8b18fd rename TerboGrafix to TurboNyma 2020-06-07 16:07:58 -05:00
zeromus 4f9855665d rename TerboGrafix.cs to TurboNyma 2020-06-07 16:07:12 -05:00
zeromus 8fca454ebf fix copy/paste error for PCE in PromptToSwitchCore? 2020-06-07 16:06:01 -05:00
zeromus d28f827b06 rename TurboTurboNyma and LibTerboGrafixSanic to HyperNyma.. I think 2020-06-07 16:04:05 -05:00
zeromus 038ab125fd scribble notes about building mgba. ignore this 2020-06-07 15:57:07 -05:00
adelikat 060d436a69 add turbo pce core to the movie "inaccurate core" nag list 2020-06-07 14:11:30 -05:00
adelikat 3658638251 remove some unused usings 2020-06-07 13:56:13 -05:00
nattthebear 6b8b021df7 fix crash loading snes 2020-06-07 14:55:41 -04:00
adelikat 71aa667b3b don't put IMovie extensions in separate namespace 2020-06-07 13:35:16 -05:00
adelikat 265a5f3149 fix lots of tools not updating at lots of times, I broke this with tool refactors 2020-06-07 13:28:10 -05:00
adelikat ce19e489ef Global.cs begone! 2020-06-07 13:14:01 -05:00
adelikat acd928afa5 move InputManager from Global to GlobalWin 2020-06-07 13:13:39 -05:00
adelikat 71cb4fbdb0 pass sticky adapter into MovieSession 2020-06-07 13:11:42 -05:00
adelikat c4c820fad3 move MovieSession from Global to GlobalWin 2020-06-07 13:07:09 -05:00
adelikat 8c5538405f move movie input logic from InputManager to MovieSession, multitrack is broken currently, will fix later 2020-06-07 13:03:27 -05:00
YoshiRulz fefdf0d60a
More misc. cleanups in RomLoader 2020-06-08 02:06:52 +10:00
YoshiRulz 40fd96f216
Use out params instead of tuples for multi-return 2020-06-08 02:06:46 +10:00
nattthebear 8c9d9715e2 quicknes - reorder buttons for presentation 2020-06-07 11:42:52 -04:00
adelikat ce2381ea54 nitpicks 2020-06-07 09:30:50 -05:00
adelikat 7ff91c234e InputManager - remove a null check on movie session, it will never be null 2020-06-07 09:30:50 -05:00
nattthebear 8259d908bb Let's not do the same thing 3 times in a row 2020-06-07 10:04:36 -04:00
adelikat 954adf4ab6 remove dependency on an IMovie from GetRetroSaveRAMDirectory, since it shoudl only be getting the directly, not the the filename 2020-06-07 08:31:49 -05:00
nattthebear ec3a288377 my bad 2020-06-07 09:26:56 -04:00
nattthebear 2952ac24aa savestates on waterbox 2020-06-07 09:26:08 -04:00
YoshiRulz 95dbd7c20b
Simplify execution path for extension checks 2020-06-07 19:59:18 +10:00
YoshiRulz 81cb8eb094
Pretty sure this is unreachable, HawkFile.Exists is checked earlier 2020-06-07 19:47:27 +10:00
YoshiRulz 977f725de0
Reorder extension checks in LoadRom 2020-06-07 19:45:58 +10:00
YoshiRulz f6f6106ccf
Misc. cleanups in LoadRom and helpers 2020-06-07 19:36:42 +10:00
YoshiRulz 7c9792db58
Remove useless parameters of load helpers 2020-06-07 19:09:29 +10:00
YoshiRulz dffce9ceb4
Extract methods from LoadRom
also move declaration of bool cancel closer to usage
2020-06-07 18:46:49 +10:00
YoshiRulz 347ed0d404
Cleanup Sound ctor 2020-06-07 18:06:35 +10:00
nattthebear 0326bf63d3 Bare minimum fix gpgx lazystates rewinder
This was a lazystates regression -- after lazystates, there is no longer any knowledge in the core of how big the state will be
2020-06-06 18:50:44 -04:00
nattthebear aa48af9c94 linux: support gpgx
as before, do not load state even if your life depends on it
2020-06-06 18:25:59 -04:00
adelikat 4d80b5d4e8 Movie importers - fix importers, broken with recent movie refactors, fix bkm importer, most systems were broken due to contorller definition names changing over the years 2020-06-06 17:17:50 -05:00
nattthebear 4d3ef71c8a Remove some old junk 2020-06-06 16:18:06 -04:00
adelikat ff61fc3c71 move Global.Game to GlobaWin.Game 2020-06-06 15:11:42 -05:00
adelikat 886c687817 try to detangle Global.Game from advanced loader mess 2020-06-06 15:09:48 -05:00
adelikat cdd5c75488 Move FirmwareManager from Global to GlobalWin 2020-06-06 14:57:37 -05:00
adelikat 981dc95c62 pass FirmwareManager into RomLoader instead of using Global 2020-06-06 14:55:32 -05:00
nattthebear 364d551940 waterbox linux progress
uzem runs.  i don't know about anything else yet.  DO NOT ATTEMPT TO LOAD A SAVESTATE.
2020-06-06 15:51:51 -04:00
adelikat 664c829a30 move Global.Config to GlobalWin.Config 2020-06-06 14:43:46 -05:00
adelikat 5ab7f1a18e pass in an instanced of Config to RomLoader instead of relying on Global.Config 2020-06-06 14:41:11 -05:00
adelikat d8ded66c35 don't use Global.Config in bk2movies, this solution is a bit of shenanigans but it's the least shenanigans I could come up with 2020-06-06 14:29:37 -05:00
nattthebear dcaf504202 Some progress on loonix waterbox
It doesn't work
2020-06-06 14:39:55 -04:00
adelikat 8063393c04 maybe speed up movie state handling a bit by handlign the more likely case of | first, make multitrack and tastudio resistant to unexpected empty lines in the input log 2020-06-06 13:29:26 -05:00
adelikat 1ffa5bc97a simply some movie code a bit 2020-06-06 13:21:10 -05:00
adelikat 877b02e429 Bk2Movie - remove some more copy pasta I missed from an earlier commit 2020-06-06 13:13:30 -05:00
adelikat 420253b6dd break out cheat related config items to their own class, pass this config into CheatList 2020-06-06 12:26:35 -05:00
adelikat 6b22630ab1 cheats - when a cheat is auto-removed, also remove it from the recent cheats list 2020-06-06 12:26:34 -05:00
adelikat 554052f660 Sim;lify CheatList 2020-06-06 12:26:34 -05:00
YoshiRulz 89606523ba
Fix GitLab CI run_tests job 2020-06-07 02:39:28 +10:00
nattthebear 4a4c59fcda When using dummy sound output, don't crash on exit
My bad -- I had meant to move this outside the if
2020-06-06 12:29:36 -04:00
nattthebear b4517d8e0d Actually respect the no sound output config variable 2020-06-06 12:21:31 -04:00
YoshiRulz 04223d2c81
Update GitLab CI
now uses SDK 5.0 preview (automatically grabs latest); check_style only runs for
the weekly cached build; replaced only with rules (they'll maybe probably who
knows deprecate only)
2020-06-07 02:19:01 +10:00
adelikat e69cedfdfa InputManager - simplify by moving RewrieInputChain logic into SyncControls since it is only called from there, and does similar work 2020-06-06 10:39:40 -05:00
adelikat 3d48376436 InputManager - lock down RewrireInputChain, and have calling code only call SyncControls 2020-06-06 10:37:13 -05:00
adelikat c6edcc4131 remove some vestigial code, no need to RewrireInputChain from MovieSession.QueueMovie, first of all, controls need to be resynced on running of a movie not queuing, secondly, it's already called as a result of a SyncControls() call 2020-06-06 10:32:32 -05:00
adelikat 2bf902b942 remove outdated bk2 "scrub" hotkey, this is an obscure feature that is non-trivial to use, but a higly trivial thing to do in tastudio 2020-06-06 09:58:49 -05:00
adelikat bd1c3cb991 controller config - simplify allow L+R to just a checkbox, where off = "forbid" option, since nobody cares about priority vs forbid, simplify ULDRController and don't use globals 2020-06-06 09:52:29 -05:00
nattthebear e8b84b466b More hacks, just need to unblock yoshi and fix this for real later pinky swear 2020-06-06 10:05:10 -04:00
adelikat 4479202151 move DefaultTasStateManagerSettings to the MovieSettings class allowing to not use Global in TasMovie constructor, also pass stuff in to DefaultGreenzoneSettings instead of using Globals 2020-06-06 08:52:09 -05:00
nattthebear db934f3689 quick hack to hopefully unbreak quicknes on loonix 2020-06-06 08:21:26 -04:00
nattthebear b3c3a3a4bb waterbox sgb sameboy - fix stereo audio
WHOOPS
2020-06-06 07:55:21 -04:00
YoshiRulz 6766e45c5e
Simplify core selection menu code 2020-06-06 21:02:42 +10:00
adelikat 069bdddbba use Session.Settings more in movie classes now that it is never null 2020-06-05 21:17:41 -05:00
adelikat 55bb627550 Move MovieService.Get to IMovieSession, and require an IMovieSession in Bk2Movie and TasMovie ctors, refactor accordingly 2020-06-05 21:09:03 -05:00
adelikat 863d022bc5 fix an NRE I caused in movie code. The old code was wrong, this one is better 2020-06-05 20:10:20 -05:00
adelikat 8303321586 rename method to try to better describe what it does 2020-06-05 19:26:30 -05:00
James Groom b93d51f46c
Create SECURITY.md
I was bored while waiting for slow build, have a thing for GitHub
2020-06-06 07:49:02 +10:00
YoshiRulz ede8877ccf
Move core selection menus out of Designer
Generation is based on a convoluted data structure declared statically in
MainForm. I've removed duplicate core selection options that were present under
system-specific menus, some only when emulating SGB.
2020-06-06 07:45:15 +10:00
nattthebear 6a63373c48 Make use sram default in some cores that have this as an option
true is what end users would expect most of the time.  false is only for advanced use cases.
2020-06-05 14:11:09 -04:00
adelikat 8b5e0ae8fd MovieConccersionExtensionTests - use DataRow and add more scenarios 2020-06-05 13:06:45 -05:00
adelikat bf5aca721e move MovieConversionExtensions 2020-06-05 11:44:12 -05:00
YoshiRulz 3e0d07f523
Update Version project name in source control versioning script
fixes b88f20fae
2020-06-06 02:06:39 +10:00
adelikat b22f9e6e01 move methods for Log copying from ITasMovie to IMovie. This bloats the IMovie contract more, but this allows for converting from one IMovie to another without an IEmulator dependency. Refactor conversion extensions to use these methods and remove emulator and movie session dependencies 2020-06-05 10:14:49 -05:00
YoshiRulz b88f20faed
Rename Verison to BizHawk.Version, fixes #2101 2020-06-06 00:20:48 +10:00
nattthebear ad16294b11 Fix gb roms running without bios 2020-06-05 08:50:30 -04:00
TiKevin83 81628bf109
Ports from Upstream GSR for Babs and Robopon (squashed #2091) 2020-06-05 20:27:19 +10:00
adelikat 89789b4358 band-aid fix bk2 to tasproj conversions in tastudio 2020-06-04 20:06:23 -05:00
nattthebear 5319aba113 Remove an unused setting from pce_fast
This was bad copy pasta -- the core doesn't actually support this at all
2020-06-04 20:26:35 -04:00
adelikat d84cd95ab8 oops 2020-06-04 19:23:07 -05:00
TiKevin83 3837ff7cf9
More cleanup to the new tasproj filename code (#2093)
* Test class and basic unit test
2020-06-04 19:21:22 -05:00
adelikat e11509421d simplify the construction of TasMovie but not requiring a startsFromSaveState param that doesn't actually set the movie's StartsFromSavestate bool, it just defined the text of the first marker 2020-06-04 19:20:09 -05:00
alyosha-tas 92bbf768af GBHawk: Fix HuC3 SRAM 2020-06-04 18:34:39 -04:00
adelikat 39636f6ef1 IMovieSession - remove CurrentInput and PreviousInput and move the logic to the one tool that utilizes them. Since these are purely derivable convenience properties, it's better to not be in the spec. If other other needs to do this logic we can move this out to an extension method 2020-06-04 16:37:02 -05:00
adelikat dba9de4f29 remove COreForcingViaGameDb user option. We should not give the user the ability to turn this off. If they are power users and want to overright our db, they can mod the db entries 2020-06-04 16:06:07 -05:00
adelikat d86aabb8b5 remove the "poke frame" hotkey, as this is a very legacy feature, we have a whole tool for this now 2020-06-04 15:30:26 -05:00
zeromus ea6fd0ebad tidy dist script (re #2085) 2020-06-04 15:15:36 -05:00
alyosha-tas 486b3945ad GBHawk: use saveram by default 2020-06-04 14:36:08 -04:00
nattthebear e798fb2b29 play around in romloader to replace some snes hackery with slightly different snes hackery 2020-06-04 12:45:36 -04:00
nattthebear 7792eb2e80 Improve waterbox "lazystates"
Cores that used the .invisible section to store data were saving it; this was a regression from before, so PCFX states should be back down to the previous release size, or perhaps a bit smaller.

Add the ability to dirty track libco cothreads, as used in the bsnes core.  This saves a lot of space in those states and they're now quite competitive in size.
2020-06-04 12:13:28 -04:00
adelikat c4586545fa delete an unused using, testing bot 2020-06-04 09:58:04 -05:00
nattthebear 3bc1ed4bbc snes9x - take advantage of new waterbox change tracking to fix special chip games 2020-06-03 19:25:58 -04:00
YoshiRulz d93ac9a682
Update Nullable (backports of [MaybeNullWhen] et al) 2020-06-04 09:12:20 +10:00
YoshiRulz 66d9d6763e
Apply lossless image optimisation 2020-06-04 09:09:56 +10:00
adelikat a382af4e7f disable multitrack recording for tasproj movies, the concept doesn't make sense, tastudio easily gives you multiplayer functionality by design. Delete some code that attempted to handle this scenario that likely didn't really work 2020-06-03 17:49:22 -05:00
nattthebear 3faff4811c Add slstart, slend to regular settings in pce fast 2020-06-03 18:37:43 -04:00
adelikat b3234d029c movies - remove legacy support for hex frame number, it's been quite some time since cores were in charge of this value, and thus a core specific hack, due to copy pasta, there's a lot to delete here 2020-06-03 17:35:22 -05:00
adelikat 246d7ec2d5 TasMovie - don't use a field value unnecessarily 2020-06-03 17:35:22 -05:00
nattthebear 2cc106de98 pce: make slstart, slend non-sync settings because the core supports it and the waterbox supports it 2020-06-03 18:33:19 -04:00
nattthebear 842a7df215 waterbox: minor makefile tweak
allows fiddling with linkscript to be easier
2020-06-03 17:57:31 -04:00
nattthebear 6e366b7590 waterbox libsnes cothreads: set TEB/TIB stuff
some bsnes cothreads call callbacks that hit managed threads.  We shouldn't do that, but we do, and sometimes those threads run MSVC's __stkchk which can, depending on circumstances, blow up if the thread extents aren't set.

This also means that we cannot save space on a lot of cothread stacks because __stkchck will blow up any detection guards we try
2020-06-03 15:48:06 -04:00
nattthebear 69ade58d2a waterbox: enable -fcf-protection=none, recompile pce fast 2020-06-03 12:16:18 -04:00
nattthebear 885b86e1b2 waterbox: add the ability to compile but not assemble individual files for debugging purposes 2020-06-03 12:02:56 -04:00
adelikat bd2fb07ce1 oops, fix tastudio loading, Movie.Session isn't ready to use in ExtractInputLog 2020-06-03 09:07:14 -05:00
adelikat 9747dc9a95 mGBA - implement IDebuggable.TotalExecutedCycles 2020-06-03 08:28:49 -05:00
TiKevin83 8925d7182f slightly cleaner 2020-06-03 08:22:09 -05:00
TiKevin83 d16f8a7b64 Standardize new filename creation behavior to avoid .bk2.tasproj.bk2.tasproj 2020-06-03 08:22:09 -05:00
nattthebear 46bfcbc47d add a version tag to waterbox states
we're not building any sort of back compat, no.  but if things change, better to bail early to decrease the chance i get bug reports for things i'm not going to fix.
2020-06-03 07:23:06 -04:00
nattthebear d06ed05929 waterbox - track writes for smaller savestates
The waterbox system now uses host os facilities to track whether memory has been written to, to automatically choose what thing to savestate.  This results in a large size decrease for some cores, like snes9x or gpgx (when running cartridge games).  Doesn't do much for cores that were already memory efficient, or for bsnes because of libco compatibility issues; but those cores don't regress either.
2020-06-03 07:13:40 -04:00
feos 0ad26a7435 we won't ever have to pass 256MB 2020-06-03 10:32:10 +03:00
feos f3861ed6cf mgba: cycle count 2020-06-03 10:30:57 +03:00
feos 27f9c0265f update mgba to upstream master 2020-06-03 09:25:40 +03:00
adelikat ac20835172 NESPPU, NesNamableViewer - reduce a lot of copy/pasta 2020-06-02 20:33:38 -05:00
adelikat bafc31d282 ugh, need to fix MovieSession getting referenced too late for a lot of movie code 2020-06-02 20:06:29 -05:00
adelikat c2e158b0f2 Tastudio - use Config, not Global.Config 2020-06-02 20:03:16 -05:00
adelikat 8c988ab2fc Expose MovieSession settings and use those settings some in movie classes 2020-06-02 19:41:25 -05:00
adelikat 943d704ca5 interface the MovieSettings class to be get only and pass it into movie session, this is a pattern we should use more, to better express that consuming classes do not modify settings, that's a presentation level detail 2020-06-02 19:15:53 -05:00
adelikat a3c82c43d5 Config - move some movie settings to a MovieConfig object 2020-06-02 17:34:16 -05:00
adelikat a8b0d42a1a pass in PreferredCores into MovieSession to manage the core switcheroo, instead of using Global.Config 2020-06-02 17:18:39 -05:00
adelikat 2dda13cdd1 add GBC to core preferences, keep the ui as GB sets both, but this prepared for us to be able to set them separately 2020-06-02 17:04:42 -05:00
adelikat baa820c0e4 UDLRController - pointless refactoring 2020-06-02 16:41:43 -05:00
YoshiRulz b8655d880c
Update ext. tools to master
HelloWorld needed watch changes from 593474b73, AutoGenConfig needed ApiHawk
impl move from 3609037be
2020-06-02 16:27:05 +10:00
YoshiRulz cf7aabba35
Shorten project build output paths by removing TFM 2020-06-02 15:58:06 +10:00
zeromus 15b455cd47 document the mess that is libmupen64plus building 2020-06-02 00:27:40 -05:00
adelikat ed9a8ec877 meh, make less copy/pasta in Bk2/Tasproj Write() methods. This is a less overall code, potentially reads better 2020-06-01 20:38:50 -05:00
adelikat bac29fe187 Revert "store vblank and cycle count in tasproj files too. Will do this in a less gross way soon"
This reverts commit 297a0c06a0.
2020-06-01 13:13:42 -05:00
adelikat 297a0c06a0 store vblank and cycle count in tasproj files too. Will do this in a less gross way soon 2020-06-01 12:26:37 -05:00
adelikat d088f89ca2 use some consistent naming without needless abbreviations. Not eryone cn red abbrvs wll 2020-06-01 12:24:36 -05:00
adelikat 4f6699ff26 nitpick variable rename 2020-06-01 12:24:36 -05:00
nattthebear d57e3d768a commit new builds of all the nyma cores because of something i changed with faust
fixes #2083 (presumably?  the user didn't provide any description so i'm not sure)
2020-06-01 12:18:15 -04:00
nattthebear 474d41bd8a add mednafen's pce fast core
~1.6x the speed of the mednafen pce core, or something
Supports all of the same features except ADPCM ram view
TODO: romloader hookups
2020-06-01 11:23:18 -04:00
zeromus 571a5be992 update docs 2020-05-31 17:13:37 -05:00
zeromus 08fcdca55a reorg dirs 2020-05-31 17:12:45 -05:00
zeromus 230c656a47 rehabilitate quicknes for vs2019 2020-05-31 17:12:33 -05:00
zeromus 191f4471ba rename it to make dir 2020-05-31 17:09:53 -05:00
zeromus 9add7d1d7f revert wonderswan makefile delete 2020-05-31 17:09:42 -05:00
zeromus 33d24521fb etc 2020-05-31 17:08:33 -05:00
zeromus d61250a2b1 reorg libretrobridge 2020-05-31 17:07:32 -05:00
zeromus e999eab492 reorg msvc parts 2020-05-31 17:07:22 -05:00
zeromus 0e70a40d2f lynx - move 'mingw' to 'make' 2020-05-31 17:06:02 -05:00
zeromus 93ccde662a rehabilitate bizlynx to use vs2019. same story as before. 2020-05-31 17:05:43 -05:00
zeromus fe13fb88d9 build fix for lynx (missing <algorithm>) 2020-05-31 17:05:19 -05:00
zeromus 8f4945405a update Building Other Solutions for other things 2020-05-31 16:41:54 -05:00
zeromus 4ed14cf349 rename libretrobridge to 2019 2020-05-31 16:41:12 -05:00
zeromus 4658c3e61e update libretrobridge to vs2019 2020-05-31 16:37:39 -05:00
zeromus 5f22535dd0 update Building Other Solutions for wonderswan 2020-05-31 16:33:01 -05:00
zeromus 2780971c32 rehabilitate bizswan building to use vc16. I did NOT commit the DLL, because that would just be a waste of bits, but I confirmed that the builds it makes work fine. if a new dll is needed for some reason, it's just a click away 2020-05-31 16:32:29 -05:00
adelikat 3609037bea move some apihawk api classes from common to emuhawk 2020-05-31 15:55:04 -05:00
adelikat 843610d1c2 remove unused line of code 2020-05-31 15:49:32 -05:00
adelikat d36426f873 Bk2Movie - simplify a bit 2020-05-31 15:07:28 -05:00
adelikat c20e4964c6 move UserBag from Global to GlobalWin 2020-05-31 15:01:28 -05:00
adelikat 8888bd130a move UserDataApi from Client.Common to Client.EmuHawk 2020-05-31 14:57:41 -05:00
adelikat 926b735de1 PathEntryCollectionExtensions - remove use of Global.MovieSession 2020-05-31 14:47:09 -05:00
adelikat e7f26232b9 fix possible NRE nag 2020-05-31 14:30:19 -05:00
adelikat 5e91e548fe SaveStateFile - pass in dependencies to constructor rather than relying on globals 2020-05-31 14:19:14 -05:00
adelikat 7444f32a4e rename SavestateManager to SavestateFile, to better reflect what it does 2020-05-31 13:41:46 -05:00
adelikat 229d7f42e5 break savestate config variables into a dedicated config class, simplify the names, and pass it into SavestateManager.SaveStateFile(), note that this is a soft config breaking change, any of these settings from old configs will be "reset" to defaults 2020-05-31 13:11:14 -05:00
nattthebear 8f3caf384d GPGX: Support independently setting the two troller ports
Fixes #1750
2020-05-31 13:28:58 -04:00
adelikat 34acead9b5 simplify AutoFireController - no need to pass in an emulator and the emulator's definition separately 2020-05-31 12:14:55 -05:00
adelikat 96fa84ff8b remove globals from AutofireController 2020-05-31 12:05:58 -05:00
adelikat d3c4e60405 Lua File list - Simplify save/load method names 2020-05-31 11:50:52 -05:00
adelikat 99dc0e03df LuaFileList - remove pathing concerns to the calling code 2020-05-31 11:49:41 -05:00
adelikat 4b696e64fa simplify LuaFileList more 2020-05-31 11:48:53 -05:00
adelikat 4be160a71f Lua console - unify Save/SaveAs logic and remove a now unnecessary LuaFileList method 2020-05-31 11:48:53 -05:00
adelikat 5a44a99118 LuaFileList - simplify FileName property 2020-05-31 11:48:53 -05:00
adelikat c057c5793c LuaFileList - simplify 2020-05-31 11:48:53 -05:00
adelikat f082ef1f4f move RentLuaSession management out of LuaFileList and into LuaConsole, this is a presentation concern 2020-05-31 11:48:53 -05:00
adelikat 98827aee47 Lua console - use the LoadLuaSession() method consistently instead of copy pasta 2020-05-31 11:48:53 -05:00
adelikat 324a50a0bb move Config.DisableScriptsOnLoad to a lua console setting, and pass it into LuaFileList 2020-05-31 11:48:53 -05:00
nattthebear 6c9b42a526 faust: Support MT renderer
and who said waterbox can't thread.  well, it sort of can't.  but it sort of can.

the speedup isn't that great, but speed is now pretty close (5%?) to snes9x in the only game that matters (final fantasy 5)
2020-05-31 11:53:15 -04:00
adelikat 3b27eb5e91 move SaveStateManager to savestates folder 2020-05-31 10:28:57 -05:00
adelikat a0680e4b94 do the todo of renaming BinaryStateSaver/Loader to ZipStateSaver/Loader 2020-05-31 10:28:02 -05:00
adelikat d21c5dfdfa movie classes in BinarySaveStates.cs into separate files in a savestates folder 2020-05-31 10:22:46 -05:00
adelikat 16ab9dc0b0 BinaryStateSaver - pass in compression level instead of hitting Global.Config, now we just use Global.Config more in other places, but it's a step in the right direction 2020-05-31 10:16:27 -05:00
adelikat 33696eb5df BinaryStateSaver - detangle version lump handling 2020-05-31 10:12:50 -05:00
YoshiRulz 818748adce
Update freenode Kiwi link 2020-06-01 00:47:59 +10:00
nattthebear 161e8cc06f snes faust - hide spex settings
We don't support these because they require connecting and using mednafen's internal savestate system
2020-05-31 08:56:10 -04:00
nattthebear ef7aa9f31c nyma pce: get 2 vs 6 button switch working
Due to limitations in bizhawk, we represent mednafen "switch"es as a series of push buttons, one for each position on the switch
2020-05-31 07:28:00 -04:00
adelikat c9241c3fc5 Move Global.CheatList to GlobalWin.CheatList 2020-05-30 19:34:03 -05:00
adelikat 1ce8a368d4 lua - add client.addcheat() and client.removecheat() that match the functionality of the gameshark tool. Deprecate the nes.addgamegenie() and nes.removegamegenie() methods in favor of these 2020-05-30 19:26:11 -05:00
adelikat c52a896cff GameShark tool - move more logic to a common library class 2020-05-30 19:08:18 -05:00
nattthebear a87fc36e39 Update some docs
For the external cores, I simply listed whatever the release build we have right now built them with.  There are other makefiles and such hanging around...
2020-05-30 19:13:27 -04:00
nattthebear 6938c07708 nyma - enable inline avx, and recompile cores that used it
allegedly worth a speedup on faust and pce.  didn't notice any change, but it's not slower
2020-05-30 19:13:27 -04:00
adelikat 35de59488a fix Movie restart I broke some days ago 2020-05-30 16:35:20 -05:00
adelikat 030c2c9570 *sigh* 2020-05-30 16:15:35 -05:00
adelikat ca39eca22c Pass the instance of MovieSession into movies, instead of referencing them from a global 2020-05-30 16:10:07 -05:00
nattthebear 1711914488 snes faust: enable SA1 IRAM as a memory domain 2020-05-30 17:05:55 -04:00
nattthebear 6e6f800f0e Update Cygne with upstream fixes
We get some small display timing fixes.

To get build working again, This reverts part of commit 0f687ff84e.

Not sure what was up with that commit.  It's clearly non functional; some member names were changed in Blip_Buffer.h but there is no new checkin of Blip_Buffer.cpp at all.  It's completely broken and I need it out so I can actually compile this again.
2020-05-30 14:23:18 -04:00
adelikat 593474b739 Watch classes - required PreviousType on Update(), not pretty, but better than relying on a hidden Global setting, and cleaner than forcing the type to be set on construction and maintaining it's state on config changes 2020-05-30 12:27:13 -05:00
nattthebear 3962049847 Fix hex editor bulk multibyte reads
The existing API was such that BulkPeekUint(Start: 20, EndInclusive: 39) would actually read from the address range [20, 100) instead of [20, 40).  That's completely broken.  The hex editor, the only consumer of the API, made the same exact mistake in reverse so the problem wasn't immediately apparent, but it was a giant land mine waiting to happen.  Fix them both.
2020-05-30 13:13:42 -04:00
adelikat 377567e2ba remove CheatList logic in Watch.Poke() methods. These were only happening 1) during CheatList.Pulse() which is uber bad, or 2) Ram poke tool in 1 place, which is easily done there instead 2020-05-30 11:11:51 -05:00
nattthebear 0085fee935 faust - memory domains, input callbacks, lag flags 2020-05-30 11:09:26 -04:00
nattthebear 6eb54da6af Probably fix a hex editor off by N issue that was crashing some things sometimes
There's DataSize and dataSize and this method was using dataSize all the way through except where it wasn't
2020-05-30 09:57:19 -04:00
YoshiRulz bffd8e4df3
Add Unix build script for FlatBuffers.Core 2020-05-30 17:48:10 +10:00
YoshiRulz ffa17bcd75
Fix cleanup script 2020-05-30 15:57:57 +10:00
YoshiRulz 10e7cb0f34
Use pre-built assembly for FlatBuffers.Core
fixes 4be701e2a
2020-05-30 15:54:06 +10:00
YoshiRulz b56e229a45
Target .NET Standard where possible, restore Virtu TFM
fixes 5a0992c2b
2020-05-30 15:53:20 +10:00
nattthebear 4be701e2ae dotnet sln add .\ExternalProjects\FlatBuffers\ 2020-05-29 21:29:23 -04:00
nattthebear 9b1cbaf4ab faust - some settings cleanup 2020-05-29 21:19:54 -04:00
nattthebear 3a83f6c9d0 faust: show settings dialog 2020-05-29 20:10:32 -04:00
nattthebear 5e3971a87b Add mednafen snes "faust" core
Speed somewhere between shizzlenineizzle and byuugan.  Some things not hooked up yet.
2020-05-29 20:04:39 -04:00
nattthebear de25b53fe2 Use google flatbuffers for some waterbox core communication
Nyma cores have to move some big complex structs on init and it's annoying and error prone.  This solution is not fast, but these are one time transfers anyway, and it does keep code size and saved size down.  Architecture yay.
2020-05-29 18:03:01 -04:00
zeromus 5a0992c2b7 make projects build only once (for net48). this will probably displease anyone working on targeting one of the other 50 frameworks, but they need to do that in another branch until they can figure out how to make it peacefully coexist; maybe by an alternate solution+project configuration (done in common props, ideally) 2020-05-29 17:45:07 -05:00
alyosha-tas 527334f7e6 GBHawk: performance optimizations 2020-05-29 10:25:03 -04:00
nattthebear 4494caac50 nyma - controller settings tweaks
move power and reset to last tab
add name overrides because evidently most humans have no idea that "RIGHT →" in fact means the same thing as "Right"
2020-05-28 11:41:23 -04:00
alyosha-tas bee1712a2f GBHawk: fix mickey's chase damage audio 2020-05-28 09:20:04 -04:00
adelikat 22a2bb7dc8 see true for more info, but is anything really true? 2020-05-28 08:15:49 -05:00
adelikat 3edae578db cheat - delete more stuff 2020-05-28 08:15:49 -05:00
nattthebear d13a1b54a2 code cleanup
Remove three Stream.CopyTo(Stream) variants that all did the exact same thing as the framework method Stream.CopyTo(Stream).  None of them were used anywhere.
2020-05-28 07:40:20 -04:00
nattthebear 04f86c2843 code cleanup
address a comment on a method called "ascii" that actually used utf8
2020-05-28 07:38:09 -04:00
nattthebear 12227f4836 fix debugging on omnisharp 2020-05-28 06:50:54 -04:00
nattthebear 8c707ea870 build emuhawk with console in debug mode, without in release mode
fixes #2038
obsoletes #2052
2020-05-28 06:47:39 -04:00
nattthebear 96c764e1d8 turbonyma: don't show the RTC settings that we added for neopop 2020-05-28 06:37:12 -04:00
nattthebear 978b2dd247 Remove all files for the old unmanaged ngp waterbox core
It's been fully integrated into nyma now
2020-05-27 19:43:35 -04:00
nattthebear 2afe356fc9 Move ngp over to nyma core and update to latest mednafen
It's seen some upstream updates recently, so that's cool
2020-05-27 19:33:31 -04:00
adelikat bf544e02fa Simplify Cheat Pulse() logic wihen it comes to comparison type, and also fix comparison type logic that wasn't accounting for all the display types 2020-05-27 16:36:22 -05:00
adelikat b1c294c236 always add core name to savestate filenames, fixes #2051. Negative consequences is that for all ocres that did not previously have multiple core options, previous save slots will be "lost" to the user (files will still be there but bizhawk won't detect them) 2020-05-27 15:55:19 -05:00
nattthebear 7e53ef69ed Add soft reset / hard reset to nymacores
most of the work had already been done, just didn't wire it up in C#land
2020-05-27 16:17:05 -04:00
nattthebear 287e78a5a9 pce - add input callback
forgot this
2020-05-27 16:01:53 -04:00
nattthebear 0295f7472b PCE enhancements
Moderate savestate size reduction.  Build system changes.
2020-05-27 15:23:40 -04:00
zeromus 924c566dc1 fix RW/FF NUD (fixes #2061) 2020-05-27 13:18:18 -05:00
nattthebear 684fca66c5 Revert c18298c8a5 and reimplement it, also connecting profiles
Part of the reason no one uses Bizhawk is because we make changes like c18298c8a5 without considering the needs of all users.
2020-05-27 13:14:38 -04:00
YoshiRulz da844c8eee
Add icon intended for the Log Window
Not wired up. .ico generation with ImageMagick:
`magick convert icon.png -define icon:auto-resize="48,32,16" icon.ico`
2020-05-28 03:01:25 +10:00
alyosha-tas 59baedbc64 ZXHawk: fix lag detection on kemston joystick. Fixes #1993 2020-05-27 12:26:08 -04:00
alyosha-tas 7b340f8766 Fix documentation Fixes #2015 2020-05-27 11:29:33 -04:00
adelikat 3604452b65 Cheat.cs - remove an unused method, simplify a bit on another 2020-05-27 10:13:51 -05:00
nattthebear 4236662f53 Change logic on what goes in the toolbox
If a tool has no toolattribute, it is presumed to be released.  Fixes #2015
2020-05-27 11:06:53 -04:00
nattthebear 59a67329c7 work around crash in clientapi when loading pce nyma 2020-05-27 07:52:53 -04:00
nattthebear b0620ca79d PCE tweaks
finish up memory domains
make bram behave like pcehawk, instead of giving it to every game, only give it to games that had it
finish up ppu view
2020-05-27 07:35:51 -04:00
nattthebear 0891e448d7 mednapce - lag flag, some more memory domains, some ppu view work 2020-05-26 21:23:52 -04:00
nattthebear c467023dac nyma pce - add gecd detection 2020-05-26 16:26:58 -04:00
nattthebear 3f43df4b1a Add settings UI for nyma 2020-05-26 16:12:29 -04:00
zeromus b0b33ec2da clean up disc identification in RomLoader, and hook up GECD as being handled by turbocd system (but that probably isn't right) 2020-05-26 13:13:53 -05:00
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
nattthebear 6da864f4f7 waterbox: fix linker script putting __eh_frame_hdr_start in the wrong place
This was benign, because libunwind will ignore a frame header it doesn't understand (__eh_frame was still fine).  But now there's no spew in the console.  And over the next 50 years it will save a combined 0.3 seconds of cpu time
2020-05-25 21:02:01 -04: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 8340bd0cf2 Actually add pce.wbx file 2020-05-25 13:55:55 -04: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 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
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 deb6c369c4 Cleanup VRAM access glitch 2020-05-24 15:29:01 -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
alyosha-tas f03fb06370
Merge pull request #2034 from TiKevin83/master
Fix VRAM end of line testROM and a desync in GB Wario Land II
2020-05-22 10:50:59 -04:00
TiKevin83 9768abbb35 This seems to make the VRAM access quirk work in Wario Land II as well as the testROMs 2020-05-22 09:43:37 -04:00
TiKevin83 5a7c198d46 cleanup 2020-05-22 09:28:36 -04:00
TiKevin83 2eb321a495 Fix a testROM that avoids the quirk when in double speed mode 2020-05-22 09:16:51 -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
TiKevin83 9e33f5f6db Fix VRAM end of line testROM and a desync in GB Wario Land II 2020-05-21 11:41:37 -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
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 0714376afe
Let EmuHawk pick up the shipped libblip_buf; packaging it is too hard 2020-05-15 17:05:12 +10:00
YoshiRulz dd93c232b9
Remove #regions in LuaInterface and Virtu projects
in LuaInterface there was a #region in a #region in a method body...
2020-05-15 17:01:40 +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
nattthebear 0b14755ac3 minimal vscode workspace stuff
some of this works
2020-05-14 17:29:31 -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
upthorn b37b82958a Merge branch 'master' of https://github.com/TASVideos/BizHawk 2020-05-10 15:34:06 -07:00
feos 5082283204
Update README.md
typo
2020-05-10 08:58:27 +03: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
adelikat e76c89ce7a add some genesis games to the gamedb that weren't there, most don't work however 2020-05-09 13:17:01 -05: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 0929d224fd track 0.9 2020-05-07 18:13:52 +03:00
feos 697bb84808 tweak 2020-05-07 18:12:44 +03:00
feos d37de2e524 mgba got lost in the forest 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 2c0d6dc32e
Update ext. tools to new IToolForm interface
interface changed in ea634daa7
2020-05-05 09:05:58 +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
zeromus 79dcfc583d oops, use rmdir instead of rd 2020-05-02 22:26:36 -04: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 cc22bed841 oops, un-rewind mgba 2020-05-02 21:12:54 -04:00
zeromus f132dee87c remove junk netstandard2.0, netcoreapp3.1, net48 dirs from dist package 2020-05-02 21:10:54 -04: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
YoshiRulz b60bbba126
Flatten BizHawk.Bizware.* 2020-05-03 10:41:29 +10:00
zeromus d9d0a095b3 oops 2020-05-02 20:31:29 -04:00
zeromus 6a67a3320f remove AWE code, and option from movie storage. add a new option for waterbox integrity checks, but it doesn't work yet because I can't get BH.Emulation.Common to build 2020-05-02 20:17:34 -04:00
zeromus e8e0a94d3e revert SoundConfig to pre-layoutpanel state, so that it isn't ugly. 2020-05-02 19:49:42 -04:00
YoshiRulz 83e83d35cc
Retarget BizHawk.Client.Common to .NET Standard 2.0 2020-05-03 08:20:43 +10:00
adelikat 03f678de9d convert VirtualPadTool to use ToolFormBase and remove a few Global usages 2020-05-02 16:42:42 -05:00
adelikat 980104b90b Ram Watch - remove pause feature, it was only a hack for when ram watch was too slow, it's plenty fast now 2020-05-02 16:24:33 -05:00
adelikat 8c17ac8da9
Remove vba-next (#1969)
* remove vba-next c code

* decouple mgba code from vbanext stuff

* delete vbanext C# core

* rip out gba core picker

* remove reference to VBANext from .csproj file

* consolidate
2020-05-02 15:30:58 -05:00
YoshiRulz 48658e2c3d
Update readme for 2.4.1
bumped prereqs and windows versions; added MSX to WIP; reworded Linux section
2020-05-03 06:29:04 +10:00
nattthebear 061410a097
Pull in some GPGX fixes from upstream (#1971)
Fixes #1916
Fixes #1968

Pulls in 4017d379e6
Pulls in 147ad71a3c
Pulls in (more or less) a modified form of 200f9a7349
2020-05-02 10:57:42 -04:00
SuuperW ac2d5d7aac update libmelonDS.dll with a few fixes 2020-05-02 08:47:37 -05:00
alyosha-tas 3674b9ed21 GBHawk: work on edge case VRAm access, still needs work 2020-05-02 09:26:31 -04:00
adelikat 06f6e71c75 mGBA - make rom memory domain pokable, seems to work, supposedly it is wired up 2020-05-01 19:09:29 -05:00
adelikat 80273b9e28 fix a bad refactor I did, fixes #1962 2020-05-01 18:15:48 -05:00
zeromus 9b19da24a0 update octoshock.dll to match mednafen latest. (very tiny changes only in spu, shouldnt invalidate any prior testing) 2020-05-01 17:18:56 -04:00
zeromus 1d0dd4d258 update to 1.24.2 2020-05-01 17:17:29 -04:00
zeromus 50ee8ecf1e increase threshold of opentk gamepad (and joystick) analog -> dpad conversion. previously 12% wasn't even enough for an ANALOG DEADZONE (my joystick idles outside that range routinely), let alone a firm direction press. The old xinput gamepad threshold for this was ~60% so I made opentk match it
fixes #1961
2020-05-01 17:04:47 -04:00
adelikat 96119b7734 Lua console - use smaller stop icon that does not bleed into other rows 2020-05-01 15:50:19 -05:00
adelikat 345ae3b872 fix #1957 2020-05-01 15:32:44 -05:00
adelikat 3e8bad74a2 ensure that Tastudio is fully updated when doing cut/paste operations, should really fix #1956 this time 2020-05-01 15:14:49 -05:00
adelikat 2254098b9c Sync controls when loading a config file, fixes #1965 2020-05-01 15:02:37 -05:00
adelikat e1f6c7afb1 fix bug not sorting GameName and sha1 in movies, fixes #1966 2020-05-01 14:32:10 -05:00
adelikat 83e685cfa1 Tastudio - remove unnecesary updates in GoToFrame(), since tastudio and other tools are already updated by other methods it calls 2020-05-01 14:26:48 -05:00
feos efb44305a4 mame: kill configs for real 2020-05-01 18:12:18 +03:00
adelikat d1cb8d53ad Tastudio a few simplifications 2020-05-01 09:52:25 -05:00
alyosha-tas 67a832d79a Merge branch 'master' of https://github.com/TASVideos/BizHawk 2020-04-30 10:19:08 -04:00
alyosha-tas 084d768cca GBHawk: work on STOP 2020-04-30 10:18:46 -04:00
YoshiRulz 364247d647
Add config.yml for GitHub issue template selection 2020-04-30 11:50:27 +10:00
adelikat a1c8c4ed3a Tastudio - create a FullRefresh() method that guarantees RowCount will be updated and all drawing will occur, but is slower, and use it in non-perormance situations such as copy/paste methods. Fixes #1956 2020-04-29 19:46:11 -05:00
adelikat 92db6b8b64 Tastudio - try to sort out when to fully redraw tastudio vs update row count 2020-04-29 19:39:18 -05:00
adelikat 9203f56eca tastudio - consolidate logic and always draw column emphasis (to show sticky state) when setting up columns, rather than only on load 2020-04-29 19:17:44 -05:00
adelikat 5252598aef tastudio - remove unnecessary setting of DialogResult 2020-04-29 19:10:57 -05:00
adelikat fdcbe6924b use inline out insome places 2020-04-29 17:43:46 -05:00
adelikat 941bdb7daa remove unused code in MOS6502X 2020-04-29 17:25:37 -05:00
adelikat 96a85d4442 Z80 Interrupts - remove unnecessary public property 2020-04-29 17:21:26 -05:00
adelikat bee7f4f059 a2600 - remove some unused methods 2020-04-29 17:08:16 -05:00
adelikat 948a2341a2 a2600 - add aggressive inline on ReadControls methods, that were just above the 32il threshold, a noticeable speedup 2020-04-29 16:34:23 -05:00
zeromus 2d413fca1e fix "melonDS doesn't work at all anymore #1963" 2020-04-29 17:16:40 -04:00
adelikat e09bc14a58 remove NamespaceAliasHacks.targets, it is no longer needed 2020-04-29 15:52:07 -05:00
feos eec3cf44f2 fix #1837
while the project is open, the menu still doesn't update to account for this, but at least it can be saved properly now
2020-04-29 23:00:07 +03:00
alyosha-tas 2ef2f8f119 NESHawk: various loop optimizations, 5-10 fps improvement 2020-04-29 09:38:27 -04:00
zeromus 9dc32fcafe put all baseline transform work into Projection, else we have to constantly worry about whether to pre or post multiply while doing subsequent transforms on screens 2020-04-28 18:56:24 -04:00
zeromus b1d491d91f banish some unruly epsilons 2020-04-28 18:56:24 -04:00
zeromus 9c6834db17 fix bugs in "Display scaling by integer" caused by edits for NDS rotation (e45943c26a)
fixes #1958
2020-04-28 18:56:24 -04:00
zeromus cb5c49d11b fix more matrix sense snafus 2020-04-28 18:56:24 -04:00
alyosha-tas cb5c21f8d3 GBHawk: work on some accuracy edge cases 2020-04-28 18:44:24 -04:00
adelikat 15f69cf80e put bad code back in that keeps a stopped movie hanging around in memory, until tastudio is refactored. This "fixes" a lot of crash bugs when opening movies with tastudio 2020-04-28 17:12:50 -05:00
adelikat 68251cdc55 tastudio - simplify a bit, move some methods and fields around, improve comemnts 2020-04-28 12:42:27 -05:00
feos a8472a77f3 cycle count: how low can we go? 2020-04-28 19:53:12 +03:00
adelikat c8ae659b19 Tastudio - simplify some redundant code 2020-04-27 20:26:51 -05:00
adelikat 80eacf88eb a few nitpick cleanups in Tastudio code 2020-04-27 16:51:42 -05:00
adelikat b3637c87fc
Merge pull request #1954 from TiKevin83/master
GBA as GBC mode is only relevant on GBC
2020-04-27 16:49:57 -05:00
TiKevin83 99d06d8479 GBA as GBC mode is only relevant on GBC 2020-04-27 15:35:09 -04:00
YoshiRulz 34b84e7098
Reverse SNES Mouse (for BSNES) 2020-04-27 09:23:46 +10:00
adelikat 8a6868be4a fix an unnecesary use of Global 2020-04-26 14:32:01 -05:00
adelikat 8ace823682 "fix" inability to open tastudio if default.tasproj was saved with a different system, the unnecessary save on load was necessary afterall, this code is bad. Fixes #1937 2020-04-26 14:21:14 -05:00
adelikat 648a1de060 lau - fix a few typos 2020-04-26 14:01:43 -05:00
alyosha-tas 8d0307596c GBHawk: window bug fix, fixes Zen 2020-04-26 09:37:35 -04:00
feos da584d1a6e update mgba to latest master (past 0.8.1) 2020-04-25 10:43:00 +03:00
feos 191524d226 tweak 2020-04-25 10:06:14 +03:00
adelikat 7484fc1ad2 Revert "Tastudio - fix regression where default.tasproj is loaded if the file exists, fixes #1937"
This reverts commit 49395b435f.
2020-04-24 18:47:49 -05:00
adelikat fb443f262c Customize dialog - lua options - don't claim the default option is "use at yoru own risk" 2020-04-24 17:33:23 -05:00
adelikat 49395b435f Tastudio - fix regression where default.tasproj is loaded if the file exists, fixes #1937 2020-04-24 17:07:32 -05:00
adelikat d06ddc04e1 InputRoll - only attempt to remove selected items beyond rowcount if there are selected items past that count, this may fix the underlying issue in #1822 2020-04-24 16:41:08 -05:00
adelikat fc45ffa60e fix crashing of ClientApi when sgb is loaded, this system is bad, I'lll delete it the next it breaks a core 2020-04-24 16:12:40 -05:00
adelikat cd57802dde fix loading of cgb and dmg embedded resources in Emulation.Cores 2020-04-24 16:12:03 -05:00
adelikat 4c6c1c2613 fix crash when loading a .tasproj in tasutdio fixes #1938 2020-04-24 14:43:31 -05:00
adelikat 099bee6bf5 fix off by one error in BulkReadByte fixes #1944 2020-04-24 13:51:59 -05:00
adelikat e3682dca05 oops 2020-04-24 13:48:05 -05:00
alyosha-tas 60af8a36fc GBHawk: add setting to sync domains to vblank (reads only). works better with LUA 2020-04-24 10:14:48 -04:00
alyosha-tas a977bb382d GB4x: set to released 2020-04-24 08:23:16 -04:00
adelikat d4c8615e95 remove unused usings and other redundancies 2020-04-23 20:33:18 -05:00
adelikat a88154ca27 GBHawk - simplify mapper code 2020-04-23 20:33:17 -05:00
zeromus 601e489b15 change NDS firmware color to DropDownList 2020-04-23 21:25:08 -04:00
zeromus 8d92b4b258 use that new PutSettingsDirtyBits effectively for melonds 2020-04-23 21:24:14 -04:00
zeromus 10bceeb0dc Nope, I think it's a good idea now.
Revert "This reverts commit c878c85daeaaf0cae3e28f24bc1a8b511293d7b6."
This reverts commit 1d1f2a18c6.
2020-04-23 21:20:59 -04:00
zeromus 3d3348d365 Revert "add another resizing part that I think is a bad idea"
This reverts commit 49b6a35dfe.
2020-04-23 21:20:38 -04:00
zeromus 8b7f7fe79b clone melonds settings so they dont persist when canceling 2020-04-23 21:20:20 -04:00
zeromus 49b6a35dfe add another resizing part that I think is a bad idea 2020-04-23 21:20:04 -04:00
zeromus 1d1f2a18c6 This reverts commit c878c85dae. 2020-04-23 21:06:12 -04:00
zeromus c878c85dae for your consideration: sync settings return flags instead of a bool, so we can have more granularity in what needs resetting than just "reboot core". for instance, we would like to minimize the number of times the window layout is redone by not doing it when the screen settings havent changed. HOWEVER, while I was writing this commit message, I realized, I should probably do it just by being more cautious in kicking off the layout (unless the data coming from the core has changed, a layout shouldnt happen). So I am going to make this commit, in case it inspires anyone, and then revert it. 2020-04-23 21:05:56 -04:00
zeromus c5ff7edba9 fiddle with race condition thing some more. uhhh full disclosure, I still got a crash once. Couldnt repro it (as compared to before where it was 100% fully reproducible for me. not sure why though 2020-04-23 20:40:16 -04:00
zeromus 3403ecacb7 fix race condition between OTK_Gamepad initialize and EnumerateDevices() from input thread 2020-04-23 20:35:04 -04:00
SuuperW ebc49db08f update libmelonDS.dll 2020-04-23 13:12:22 -05:00
SuuperW 657a7b8069 MelonDS: put [sync]setting before init; RTC requires this 2020-04-23 13:02:06 -05:00
SuuperW dc62ae7d3e power button 2020-04-23 13:02:06 -05:00
adelikat f6735a9f9b mGBA - implement memory execute callbacks 2020-04-23 11:56:26 -05:00
adelikat 3abd526aa9 A7800Hawk - eek out a few % perf improvements by aggressively inlining some short tia methods that weren't getting inlined 2020-04-21 18:08:33 -05:00
adelikat 631fedcd9c CP1610 - remove useless null checks on MemoryCallbacks, it is always not null 2020-04-21 16:47:31 -05:00
adelikat 325551ecd0 consistently check if callbacks exist before calling memory callbacks, across all cores 2020-04-21 16:42:57 -05:00
adelikat 1060bbc155 Atari 2600 - small speedup by checking for the eixstence of callbacks before calling them, also agressively inline the wrapper methods for read/write/execute 2020-04-21 13:39:17 -05:00
adelikat a4e1defad3 make PCE core a lot faster, one is supposed to check for the existence of callbacks before calling them 2020-04-21 13:27:40 -05:00
adelikat 217f03f66d remove AggressiveInlining on Read_bgdata, still doesn't inline due to switch statement, so this attribute is doing nothing here 2020-04-21 10:30:10 -05:00
adelikat 26a68c0cbc NesHawk - aggressively inline Apu.EmitSample() also simplify it to reduce IL 2020-04-21 10:28:31 -05:00
adelikat 4386509f01 NesHawk - about a 5-10% speedp by using AggressiveInlining. Performance sensitive methods were analyzed, and I only added it to methods that failed inlining only due to the 32 IL byte limit but still reasonably sized. This attribute only lifts the 32 byte limit, it's important to do this analysis and not just apply this attribute with research. 2020-04-21 09:18:09 -05:00
alyosha-tas 1fd5b80d28 GBHawk: fix ram bank register 2020-04-20 20:52:52 -04:00
alyosha-tas f54a36ab9a GBHawk: Fix cart RAM domain 2020-04-20 18:49:55 -04:00
alyosha-tas 53fb3b19a8 Update readme for Vectrex and O2 2020-04-20 10:39:23 -04:00
adelikat f097b91dcf bk2 - simplify 2020-04-20 09:20:00 -05:00
adelikat ba17c1fe2b MovieSession - simplify gambatte name getting 2020-04-20 09:20:00 -05:00
adelikat 72c4e19183 MovieSession - hold on to a copy of the IEmulator instance, and use it instead of Global.Emulator 2020-04-20 09:20:00 -05:00
alyosha-tas ada61fae93 Switch cores correctly, fixses #1939 2020-04-20 08:59:19 -04:00
alyosha-tas 831e62b8ee QuickNES: Add spelunker to blacklist, fixes #1934 2020-04-20 08:34:50 -04:00
alyosha-tas 724f5db816 O2Hawk: cpu work 2020-04-19 22:52:34 -04:00
adelikat 91dd8c938e MovieSession.QueueNewMovie - reduce dependencies 2020-04-19 14:18:09 -05:00
adelikat 5e7d666548 Tastudio - speed up drawing a bit by caching input state while drawing a row of input 2020-04-19 13:54:30 -05:00
adelikat 70633419ac
Refactor TasMovie and add interface (#1940)
* create ITasMovie interface, still lots of todos

* interface for TasMovie.ChangeLog

* rename method

* interface more TasMovie things

* file rename

* interface more ITasMovie things

* make Bk2Movie and TasMovie internal, rely on interfaces for behavior and MovieService for instantiation

* MovieService cleanup

* cleanup TasBranch handling and simplify ITasMovie api

* more branch logic cleanup and ITasMovie simplificaiton

* more cleanup of branch handling

* more ITasMovie simplification

* nitpick cleanup

* Use IMovie.GetInputLogEntry instead of GetLogEntries

* more ITasMovie cleanup

* move come ITasMovie properties to TasBranchCollection

* TasMovie cleanup

* simplify ITasMovie more

* cleanup
2020-04-19 13:38:45 -05:00
alyosha-tas a018851703 O2Hawk: fix quad behaviour 2020-04-19 13:41:17 -04:00
feos eaca8373d2 mame: stop writing configs
already an option, just missing from docs
2020-04-19 20:28:07 +03:00
adelikat 918fbe6367 fix Tastudio .tasproj loading broken in previous commits (this code is a mess), MovieSession - remove setter on Movie property 2020-04-18 15:37:43 -05:00
adelikat 56cc1fefff Tastudio - simplify movie loading stuff 2020-04-18 15:28:31 -05:00
adelikat 4e3aa0eb15 move Bk2 -> TasMovie conversion logic from Tastudio to MovieSession, fix crashing when loading .bk2 movies from the tastudio menu 2020-04-18 14:50:25 -05:00
adelikat d946aa6145 tastudio - cleanups 2020-04-18 14:50:25 -05:00
adelikat 7a77861896 Conisstently use MovieSession.StopMovie instead of stopping the movie directly, derefrence the movie on stopping instead of letting it hang around in memory 2020-04-18 14:50:25 -05:00
adelikat b2208d714c Tastudio cleanups 2020-04-18 14:50:25 -05:00
adelikat 1611ff3aef IMovieSession - rename a property, add documentation 2020-04-18 14:50:25 -05:00
alyosha-tas 5238d660cd Vectrex: new display method, looks much better 2020-04-18 15:42:10 -04:00
adelikat 6d699012a6 disable record movie dialog if core needs rebooting, fixes bug of recording the wrong sync settings into the movie and causing a crash 2020-04-18 13:00:26 -05:00
adelikat fa552cab81 restrict access to IMovieSession.QueuedMovie 2020-04-18 12:05:16 -05:00
adelikat dc9fa1acf3 movie code cleanup 2020-04-18 11:54:49 -05:00
adelikat 189a47ad3c move more movie loading logic out of Mainform and into MovieSession and also some extension methods 2020-04-18 11:25:37 -05:00
adelikat 3ec6662dc9 move core preference setting shenangians from MainForm.StartNewMovie() to MovieSession 2020-04-18 10:55:41 -05:00
adelikat 2a9710b63c movie some video provider movie logic into an extension method 2020-04-18 10:49:15 -05:00
adelikat 892185d2fd remove useless virtualpad restart in StartNewMovie, tools are already restarted by design 2020-04-18 10:36:42 -05:00
adelikat 9494243eef add an IStatable extension method that can load a state directly from a byte array, reduces the stream creation boiler plate in a number of palces 2020-04-18 10:26:08 -05:00
adelikat a460846ff8 Tastudio - account for an unlikely edge case NRE where right button held is true but mouse is outside of the control 2020-04-18 10:23:10 -05:00
adelikat 2a2ddde277 MainForm - disable recent movie menu item when tastudio is active 2020-04-18 10:17:14 -05:00
adelikat d50bf21da9 move some logic from mainform to moviesession, remove TasMovie check that makes no sense 2020-04-18 10:09:47 -05:00
adelikat 3940187800 Nes - Core menu - add subneshawk 2020-04-18 10:03:11 -05:00
adelikat 19095bb7e5 simplify 2020-04-18 09:55:57 -05:00
adelikat 9928a88d2c simplify movieSession core preference shenanigans 2020-04-18 09:55:57 -05:00
adelikat dfe7f8e3ab refactor core preferences to be a dictionary<string, string> to be stored in config, and consolidate subnes and subgb into just another core selection 2020-04-18 09:55:57 -05:00
adelikat b736d48911 use constants for core string names and simplify core core name getting logic 2020-04-18 09:55:57 -05:00
alyosha-tas 0d2daa24d5 O2Hawk: fix DJNZ, fixes kill the attacking aliens 2020-04-17 22:09:23 -04:00
alyosha-tas 8e7467f77b O2Hawk: fix collision detection 2020-04-17 18:52:45 -04:00
alyosha-tas 0e7e93b205 O2Hawk: various bug fixes 2020-04-17 18:38:44 -04:00
adelikat f090d75c9d use Emulator.IsNull 2020-04-16 12:25:42 -05:00
adelikat eb3ddab060 Cleanup IMovieSession method names to be a bit more conscise 2020-04-16 12:25:42 -05:00
adelikat 3f1ef8dd4d add a IMovieSession property to ToolFormBase and use it 2020-04-16 12:25:42 -05:00
YoshiRulz fa1c494ad8
Encapsulate input method, revive DirectInput, cleanup Input.Instance 2020-04-17 03:20:18 +10:00
adelikat 0aa8d71a3f more MovieSession refactoring 2020-04-15 20:37:50 -05:00
adelikat 0d794f2b12 refactor MultitrackRecording to keep up with PlayerCount rather than use Globals 2020-04-15 18:06:31 -05:00
adelikat 3953b1de5a use desired property for checking for a queued movie 2020-04-15 16:09:34 -05:00
adelikat 5c5d662f1b MovieSession cleanup 2020-04-15 14:41:57 -05:00
adelikat c0fde42a0c don't expose Bk2Controller, clients need to depend on an interface and rely on the Movie (well, MovieSession currently) to generate an IMovieController instance, since different implementations of IMovie need to be able to create their own controller implementations 2020-04-14 21:35:44 -05:00
adelikat f2e52988c1 simplify some IMovieSession stuff 2020-04-14 21:23:47 -05:00
adelikat 189a2d7cfc nitpick 2020-04-14 21:15:56 -05:00
adelikat 74f0cf4615 movie code cleanup 2020-04-14 21:11:53 -05:00
adelikat ab7225c955 remove MovieSession convenience property that isn't that convenient anyway 2020-04-14 20:58:02 -05:00
adelikat 0d2f014621 refactor Bk2LogEntryGenerator to be stateless, refactor some IMovieSession shenangians 2020-04-14 20:50:21 -05:00
adelikat cdfeda8b71 rename IMovieController methods and classes to better describe what they are 2020-04-14 20:10:50 -05:00
adelikat 919266d2dc remove unused ctor 2020-04-14 20:02:10 -05:00
adelikat aa80c3a0d6 majorly refactor Bk2Controller more 2020-04-14 19:33:49 -05:00
adelikat 2f750e8469 conslidate Bk2MnemonicConstants and Bk2AxisMnemonicConstants, rename to just Bk2MnemonicLookup 2020-04-14 19:08:51 -05:00
adelikat f3534b99b9 rename file 2020-04-14 19:06:00 -05:00
adelikat 13e58cbac5 refactor IMovieController 2020-04-14 19:05:17 -05:00
adelikat 27605f4828 Bk2MnemonicConstants - pass in system id 2020-04-14 18:12:07 -05:00
adelikat c325286169 make mnemonic constant classes static 2020-04-14 18:08:14 -05:00
adelikat cc15bb2841 fix some object churning when input display is on 2020-04-14 17:47:49 -05:00
adelikat 03a7ea8438 IMovie.PopulateWithDefaultHeaderValues() - pass in dependencies instead of using Globals 2020-04-14 17:30:32 -05:00
adelikat ce4037fad8 cleanup PopulateWithDefaultHeaderValues() 2020-04-14 17:15:46 -05:00
adelikat 2b17c6d310 simplify some LogGenerator code 2020-04-14 16:44:37 -05:00
adelikat 831621b864 remove some unused code 2020-04-14 16:25:28 -05:00
adelikat 017573f4c6 IStringLog - remove unused method 2020-04-14 15:57:55 -05:00
adelikat c6b39492a0 misc cleanups in Bk2Movie and TasMovie 2020-04-14 15:52:41 -05:00
adelikat e29b02a472 simplify Bk2Movie and TasMovie constructors 2020-04-14 14:55:25 -05:00
YoshiRulz d2e19c9ba5
Slightly grow a GroupBox to avoid its contents overflowing (fix #1931) 2020-04-14 18:15:07 +10:00
zeromus 3b86bd741f REVERT DisplayConfig pre-layoutpanel (see if this helps #1930) 2020-04-13 20:53:35 -04:00
adelikat 8c852c1b70 refactor importers to pass in a config instance, instead of using Global.Config 2020-04-13 19:51:42 -05:00
adelikat ade678487a Lua console - account for separators when doing Duplicate Script 2020-04-13 19:29:25 -05:00
SuuperW 358f1dfd33 create melon folder before trying to write modified firmware file 2020-04-13 16:55:16 -05:00
SuuperW 7336217bd8 default ScaleFactor value for MelonDS settings 2020-04-13 15:55:29 -05:00
YoshiRulz 7cce81a880
Move LuaLibraries.GuiLibrary to inheritors, fix related NREs on Unix 2020-04-14 05:11:20 +10:00
adelikat 1fd620a1f4 fix N64 memory callbacks 2020-04-13 13:29:22 -05:00
SuuperW a57d09fe99 add some setters for MelonDS 2020-04-13 12:26:42 -05:00
SuuperW c958afceb0 update libmelonDS.dll with hi-res support, and allow changing that setting
does not display properly yet
2020-04-13 12:07:05 -05:00
YoshiRulz 28bc772580
Re-implement GetHashCode for SystemInfo
but not by calling the base method; like the old one removed in 46a7e6491 did
2020-04-14 01:38:30 +10:00
YoshiRulz c9e699be1b
Remove properties for embedded resources removed in f3fce7a3e 2020-04-14 01:33:18 +10:00
Asnivor f3fce7a3eb ZXHawk: Remove separate +3 embedded roms (the +2A rom is identical) 2020-04-13 16:17:51 +01:00
Asnivor de3d402958 ZXHawk: Small bugfix in reset behaviour 2020-04-13 16:06:06 +01:00
YoshiRulz 3d532078a5
Rename PlatformEmuLuaLibrary and implementations
EmuLuaLibrary was too close to EmulationLuaLibrary. These classes are
containers, they're not in the LuaLibraryBase inheritance heirarchy.
2020-04-13 19:49:21 +10:00
YoshiRulz e514dfd117
Move/rename Lua library classes 2020-04-13 19:42:14 +10:00
YoshiRulz e226ff102b
Replace dynamic type with Object in API
Using the dynamic type here is no better than object because the values are
primitive types -- more likely to be cast/typechecked than used as a receiver
param for a method call.
2020-04-13 17:05:38 +10:00
adelikat 46a7e64911 misc cleanups 2020-04-12 17:41:55 -05:00
adelikat fd31922788 cleanup BkmMnemonicConstants 2020-04-12 17:20:54 -05:00
adelikat de54b80447 remove FrameworkFastZipWriter - interesting idea that didn't pan out 2020-04-12 16:56:41 -05:00
adelikat ff029968f3 fix compile error, some nitpick cleanups 2020-04-12 15:30:40 -05:00
adelikat b964ff4c32 remove unused miniz, a faster zip library that didn't pan out 2020-04-12 15:20:00 -05:00
adelikat 1ef5c2083f actually remove IonicZipWriter instead of not compiling it 2020-04-12 15:02:48 -05:00
adelikat e0df266cb7 remove remaining globals in LuaFunctionList 2020-04-12 14:17:16 -05:00
adelikat 42c6168c7e LuaFunctionList - remove global usage, make an IEnumerable instead of List since add/remove needs to be carefully controlled 2020-04-12 13:29:58 -05:00
adelikat 622733d31a SavestateManager - pass in IEmulator, reduces some global dependencies 2020-04-12 13:29:58 -05:00
adelikat 6e40c46aa1 some nitpick cleanups 2020-04-12 13:29:58 -05:00
adelikat acf959fd4b SaveSlotManager - pass in dependencies instead of using Globals 2020-04-12 13:29:58 -05:00
YoshiRulz e8cd4535ae
Remove unused class IonicZipWriter from compilation
Don't need to worry about this NuGet package...
2020-04-13 04:00:25 +10:00
YoshiRulz f95bcf0e14
Apply PathManager refactor to HelloWorld ext. tool
All three ext. tools in the repo now compile and run with the exception of
DBMan, which is compiled against an SQLite assembly that's never loaded.
2020-04-12 17:55:42 +10:00
YoshiRulz 1ee131ed78
Merge ApiHawk project into Client.Common and EmuHawk 2020-04-12 17:40:42 +10:00
adelikat ceef1f4489 oops 2020-04-11 12:58:28 -05:00
adelikat 7c79cfab67 mGBA - implement IDebuggable.SetCpuRegister() 2020-04-11 12:57:47 -05:00
alyosha-tas a1844f5d5c O2Hawk: correctly remove videbuffer from state 2020-04-11 10:37:12 -04:00
adelikat 81bdacea64 O2 - implement IBoardInfo 2020-04-11 09:21:35 -05:00
adelikat 9eb63cd6c9 O2 - misc cleanups 2020-04-11 09:04:13 -05:00
alyosha-tas 2304e9dc5b O2Hawk: add vidbuffer back to state, it's needed 2020-04-10 19:51:32 -04:00
alyosha-tas a924aeee91 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2020-04-10 18:06:51 -04:00
alyosha-tas 7c676ed40b O2Hawk: remove uneeded buffers from state 2020-04-10 18:06:32 -04:00
feos 60829be593 mame: prevent dumping nvram to disk 2020-04-11 00:28:22 +03:00
alyosha-tas 535a586422 O2hawk: add console version of happy bird 2020-04-10 15:19:16 -04:00
feos 5c0ea2b987 mame: use a folder for non-rom files 2020-04-10 21:01:20 +03:00
feos 8dd31a39e5 one more mame mnemonics 2020-04-10 19:28:31 +03:00
adelikat 0a1a2dbe7d when closing the lua console - clear registered functions 2020-04-10 11:12:57 -05:00
adelikat 62f3214ce2 create a memory callback based IInputCallbacks system that can be used by any core, wire it up to the mGBA core 2020-04-10 11:12:57 -05:00
feos 7e5fdf9142 mame: fix input being one frame too late 2020-04-10 18:54:05 +03:00
adelikat 04cd7d867c mGBA - fix NRE that can happen when rebooting core, fixes #1915 2020-04-10 08:47:52 -05:00
adelikat 05b39a0ec8 misc celanups 2020-04-10 08:47:52 -05:00
feos a1c553d1de mame: add button mnemonics 2020-04-10 13:44:17 +03:00
feos 7d06f6cbd1 mame: add lag, even tho the core can't set it
there's no concept of "controller poll" in mame, because this information isn't considered useful by them, and it also has to be done for every machine separately. theoretically it can be determined by watching controller register reads, but that requires running the entire debugger UI and setting watchpoints manually via debugger console, which is also super complicated. mame lua can set WPs, but only if debugger is there. even then, there's no way to assign lua callbacks to WPs. I'm planning to add simple mem hooks to mame lua some day, but it will be super hard due to incredibly complex abstraction, and there's no guarantee they will even merge it.
2020-04-10 12:38:41 +03:00
YoshiRulz cc4b12b0ae
Fix remaining "Nintento 64" typo
see eb1d87933
2020-04-10 09:58:59 +10:00
YoshiRulz 5c56d9580c
Rethink GroupBoxEx.Tracker access to allow Designer deserialisation 2020-04-10 09:48:05 +10:00
zeromus 46c58c2172 update octoshock dll 2020-04-09 16:13:41 -04:00
zeromus f353b04373 work harder to update mednafen GTE from 1.24.0-UNSTABLE more exactly 2020-04-09 16:12:55 -04:00
zeromus bf3f58241a update debug (actually, remove the cpp, since it isnt used) 2020-04-09 16:09:44 -04:00
zeromus 4818064bbb bring more files in sync with mednafen 2020-04-09 16:08:37 -04:00
zeromus d8fad23324 same for mdec, nothing to see here 2020-04-09 16:04:43 -04:00
zeromus e2389e25d7 nothing much 2020-04-09 16:03:43 -04:00
zeromus b8accdfd75 work harder to update mednafen PSX.cpp from 1.24.0-UNSTABLE more exactly 2020-04-09 16:00:39 -04:00
zeromus f6a165752e work harder to update mednafen CDC from 1.24.0-UNSTABLE more exactly 2020-04-09 15:55:10 -04:00
zeromus b3531b6dc9 no longer used files 2020-04-09 15:42:25 -04:00
zeromus 4201a9d382 work harder to update mednafen gpu.cpp from 1.24.0-UNSTABLE more exactly 2020-04-09 15:38:46 -04:00
feos 8e5aefb376 mame: remove hacky test 2020-04-09 18:05:19 +03:00
feos fd4b4195df use regular build of mame 2020-04-09 16:16:17 +03:00
feos 039a4612a6 mame: another approach 2020-04-09 12:26:11 +03:00
YoshiRulz 4f08496815
Fixup CGBColorChooserForm Designer file
faf4b02c2
2020-04-09 10:49:04 +10:00
TiKevin83 faf4b02c26
Undo Previous PR on Gambatte Colors and Implement an Option (#1918)
* Revert "New GBC LCD correction for Gambatte palette from documented shader research https://forums.libretro.com/t/real-gba-and-ds-phat-colors/1540"

This reverts commit 88cda24876.

* Implement the libretro GBC color palette as an added option instead of a change to the Gambatte option
2020-04-08 20:41:50 -04:00
YoshiRulz b960351732
Resize/realign controls in DispConfig, add fixed-size RadioButtonEx 2020-04-09 10:33:59 +10:00
alyosha-tas 1185bffe36 O2Hawk: turn sound down a bit, more in line with other cores 2020-04-08 19:40:33 -04:00
TiKevin83 0bfe178650
New GBC LCD correction for Gambatte palette from documented shader research https://forums.libretro.com/t/real-gba-and-ds-phat-colors/1540 (#1917) 2020-04-08 19:19:18 -04:00
alyosha-tas f9c6e02943 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2020-04-08 19:08:37 -04:00
alyosha-tas 444a8b7823 O2Hawk: small timing fix 2020-04-08 19:08:22 -04:00
YoshiRulz 489084242f Move [AssemblyVersion]/[AssemblyFileVersion] to VersionInfo.cs
ApiHawk was using hardcoded "1.1.0.0". BizInvoke, Bizware.BizwareGL, and
WinForms.Controls were not annotated, and had the default "0.0.0.0". All four of
these projects did not include the Version source files.
2020-04-08 23:04:08 +00:00
alyosha-tas 99da16fa2a O2Hawk: clean up 2020-04-08 18:16:45 -04:00
adelikat 2b281116ed misc cleanups 2020-04-08 16:03:35 -05:00
adelikat 813a2ee935 delete empty code file 2020-04-08 13:32:48 -05:00
adelikat a83c125ac4 Simplify nullemulator - emuHawk already handles cores with no video provider by using NullVideo, so no reason for NullEmulator to provide NullVideo 2020-04-08 13:26:51 -05:00
alyosha-tas cb2d365284 O2Hawk: better fix for blockout 2020-04-08 12:12:32 -04:00
adelikat 786fd9d5a1 Database.SaveDatabaseEntry() - account for NotInDatabase rom status, and simplify 2020-04-08 10:21:35 -05:00
zeromus 48a62943f1 new dll 2020-04-07 23:53:40 -04:00
zeromus 341c67d562 fix damage to aspect ratio management in octoshock 2020-04-07 23:53:33 -04:00
zeromus 3e452e2cc6 fix more matrix sense screwups 2020-04-07 23:42:54 -04:00
zeromus bb68d55db8 fix AR problems due to NDS screen layout work 2020-04-07 23:34:41 -04:00
zeromus c2917597b3 undo edits that replaced \' with ' in strings so I don't waste five minutes looking for them again in the future 2020-04-07 22:26:26 -04:00
adelikat e62c2e3646 PlayMovie dialog - simplify a bit 2020-04-07 15:28:27 -05:00
alyosha-tas a2ac1b89aa O2Hawk: more bug fixes but still needs work 2020-04-07 16:27:04 -04:00
YoshiRulz 573aa13c64
Replace Tuple with ValueTuple in input system 2020-04-08 02:24:48 +10:00
YoshiRulz d0cc17c208
Add Core 3.1 target to BizwareGL 2020-04-08 02:04:50 +10:00
adelikat ce17df2b6a DS - fix virtualpad lid buttons 2020-04-07 08:43:52 -05:00
adelikat df538c2833 ToolManager - lock down UpdateBefore/After, calling code should always only use UpdateToolsBefore/After since it properly deals with lua. This fixes inconsistent behavior in MovieZone and tastudio branch loading 2020-04-06 17:46:59 -05:00
adelikat a47f89582b LuaDeprecatedMethod - documentation generation failed to filter it out, instead though mark it as depcreated in documentation, Lua functions list - fix column sorting, simplifications 2020-04-06 17:12:24 -05:00
alyosha-tas 7ddf2e0f3b O2Hawk: obj table fixes 2020-04-06 16:59:07 -04:00
alyosha-tas 015311087b O2Hawk: Cleanups 2020-04-06 11:51:00 -04:00
alyosha-tas 8827550a17 O2Hawk: fix Blockout and other issues 2020-04-06 11:25:02 -04:00
zeromus dbfa5ce5a2 Windows.h should not have been in there 2020-04-06 04:04:30 -04:00
zeromus b53eec452a update octoshock dll 2020-04-06 03:40:17 -04:00
zeromus f3df253fe8 update miniclient 2020-04-06 03:39:05 -04:00
zeromus ca7c2d7d56 update to 1.24.0-UNSTABLE 2020-04-06 03:31:37 -04:00
zeromus dadef68020 1.24.0-UNSTABLE : GPU 2020-04-06 03:31:36 -04:00
zeromus cac78312cd update to 1.23.0 2020-04-06 03:31:36 -04:00
zeromus 483a944ebe update to 1.22.2 2020-04-06 03:31:36 -04:00
zeromus d0a3bb0348 update to 1.22.0-unstable 2020-04-06 03:31:36 -04:00
zeromus 6b41bc2871 1.22.0-UNSTABLE - CDC 2020-04-06 03:31:36 -04:00
zeromus 558de454a9 apply 1.21.3 2020-04-06 03:31:36 -04:00
zeromus b13c3c7289 framework for test running 2020-04-06 03:31:36 -04:00
zeromus 271e079a75 pass a test 2020-04-06 03:31:35 -04:00
zeromus 7cfdc91e1f update to 0.9.48 2020-04-06 03:31:35 -04:00
zeromus 79e4e0690b update to 0.9.45 2020-04-06 03:31:35 -04:00
zeromus 5eadf6dc60 fix mistake during last update 2020-04-06 03:31:35 -04:00
zeromus f783a691f9 finish 0.9.44.1 and misc build fixes 2020-04-06 03:31:35 -04:00
zeromus 165f3db2d8 WIP 0.9.44.1 2020-04-06 03:31:35 -04:00
zeromus ff835a4185 WIP 0.9.44.1 2020-04-06 03:31:35 -04:00
zeromus 976d728df3 update to 0.9.43 2020-04-06 03:31:34 -04:00
zeromus d9a5d8dfa3 0.9.42 (nothing needed but some tests) 2020-04-06 03:31:34 -04:00
zeromus e4ad6f45b9 up to 0.9.41 2020-04-06 03:31:34 -04:00
zeromus de1e368a46 0.9.39-2 COMPLETE 2020-04-06 03:31:34 -04:00
zeromus 792f9ca0c4 0.9.39-2 : gpu 2020-04-06 03:31:34 -04:00
zeromus 51efb03419 0.9.39-2 : cdc and cpu 2020-04-06 03:31:34 -04:00
zeromus d2d4a41544 0.9.39-unstable -> 0.9.39-1 (no work needed) 2020-04-06 03:31:34 -04:00
zeromus 9def190d87 fix build errors; Mednafen 0.9.39-unstable DONE 2020-04-06 03:31:33 -04:00
zeromus 25a9c1e5d6 update to Mednafen 0.9.39-unstable : spu, timer 2020-04-06 03:31:33 -04:00
zeromus aff26ee02e update to Mednafen 0.9.39-unstable : psx, sio 2020-04-06 03:31:33 -04:00
zeromus 827115ee9f update to Mednafen 0.9.39-unstable : mdec 2020-04-06 03:31:33 -04:00
zeromus efb61b42b9 update to Mednafen 0.9.39-unstable : GTE, input/*, irq, masmem 2020-04-06 03:31:33 -04:00
zeromus b5b962c180 update GPU to update to Mednafen 0.9.39-unstable 2020-04-06 03:31:33 -04:00
zeromus 21c7ac4b8b (partial 2) update to Mednafen 0.9.39-unstable 2020-04-06 03:31:33 -04:00
zeromus f5f63349f6 (partial) update to Mednafen 0.9.39-unstable 2020-04-06 03:31:32 -04:00
alyosha-tas 75beb338b9 O2Hawk: fix resets again 2020-04-04 18:14:54 -04:00
alyosha-tas 6edc1310d2 O2Hawk: fix cosmic conflict 2020-04-04 18:01:19 -04:00
adelikat 49e4d49927 quicknes - blacklist punchout (E) (VS), unfortunately a drop in the bucket but bootgod doesn't know about VS roms so we have no way to detect PAL versions of those 2020-04-04 15:07:58 -05:00
adelikat 96a753324a O2 - add Reset button to virtual pad 2020-04-03 18:08:26 -05:00
adelikat e357ed3dbc Merge branch 'mgba-hooks' 2020-04-03 18:01:25 -05:00
zeromus 6b462630e0 fix crash in MGBA memory callbacks due to GC of temporarily marshaled delegate (by keeping an instance referenced in a member, as usual) 2020-04-03 18:42:22 -04:00
alyosha-tas 216e382582 O2Hawk: reset fix 2020-04-03 17:24:20 -04:00
alyosha-tas f39319fd12 O2Hawk: bug fixes and add reset button 2020-04-03 16:56:22 -04:00
adelikat eae2ee7e29 remove DS lua library since it has no methods and no immediately plans to add any 2020-04-03 13:23:26 -05:00
alyosha-tas 458949a2f9 GBHawk: minor bug fixes and cleanups 2020-04-03 12:16:52 -04:00
adelikat be8db22d6c mgba- throw NotImplemented on callbacks with no address, we don't support that yet (likely ever) 2020-04-02 17:40:27 -05:00
adelikat cea0762c07 cleanup a few things in MGBAMemoryCallbackSystem 2020-04-02 17:40:27 -05:00
adelikat f97ef09c41 mgba - pass in mgba class instead of core pointer to MGBAMemoryCallbackSystem, seems cleaner either way. Still crash 2020-04-02 17:40:27 -05:00
feos fc5d8b2de6 add some stuff 2020-04-02 17:40:27 -05:00
feos 4597e8b334 tweaks 2020-04-02 17:40:27 -05:00
adelikat e44aa5d94a mGBA - pass core pointer to memory callback system 2020-04-02 17:40:27 -05:00
adelikat 75a991a36d bad attempt at wiring up mGBA memory hooks 2020-04-02 17:40:27 -05:00
adelikat 0422b9b1de nitpick cleanup 2020-04-02 17:36:08 -05:00
alyosha-tas ced37c45c3 GBHawk: memory ap optimizations 2020-04-02 15:41:03 -04:00
alyosha-tas 7d293bdb1a GBHawk: fix speed mode switch timing 2020-04-01 22:46:48 -04:00
adelikat 86f5964262 remove wrapping on DS layout hotkeys 2020-04-01 19:28:22 -05:00
adelikat ba27cd5c7e IncrementDSLayout - make decrement hotkey also wrap 2020-04-01 19:15:27 -05:00
adelikat 2401c37a7f delete ScreenArranger and move the relevant logic to MelonDS, and simplify, also use a pre-allocated buffer instead of making a new one every time 2020-04-01 18:58:08 -05:00
adelikat ed571cddef just delete client.transformX/Y, if anyone yells, direct them at me 2020-04-01 17:13:04 -05:00
zeromus 8084fce648 rename 2020-04-01 18:00:57 -04:00
zeromus d60b83791c fix StyleusInputDisplay 2020-04-01 18:00:42 -04:00
adelikat 2fbbe01347 DS - fix sylus lua script to use client.transformPoint, still doesn't work since it scales down to 1x 2020-04-01 11:55:23 -05:00
adelikat f369291606 this is the correct lua convention going forword, no snake case 2020-04-01 11:49:20 -05:00
alyosha-tas 07e7a83243 GBHawk: optimizations 2020-04-01 09:44:43 -04:00
alyosha-tas e6e70b6e35 GBHawk: remove C++ core, not worth it, need to rethink design 2020-03-31 23:14:33 -04:00
alyosha-tas 86950c9c2e Merge branch 'master' of https://github.com/TASVideos/BizHawk 2020-03-31 23:04:56 -04:00
alyosha-tas 0e0b94cd0c GBhawk: some C# optimizations 2020-03-31 23:03:40 -04:00
YoshiRulz 6571f70283
Rename new Lua function by convention, fix ClientApi.TransformPoint
I doubt this ever worked. The Lua one wasn't delegated, it directly accessed
GlobalWin, so it didn't have this bug.
2020-04-01 13:00:49 +10:00
alyosha-tas 00471ac530 GBHawk: more clean up and optimizing 2020-03-31 20:49:49 -04:00
YoshiRulz 7797689c53
Add LuaDeprecatedMethodAttribute and apply to client.transformPointX/Y 2020-04-01 09:49:27 +10:00
YoshiRulz 0437de604b
Revert transformPoint* changes, add transformPoint, delegate all three 2020-04-01 09:36:26 +10:00
YoshiRulz 6edcd00431
Reimplement TransformPointX/Y using TransformPoint, but deprecate them 2020-04-01 09:29:39 +10:00
zeromus 377e4498d7 straighten out lua APIs for coordinate transforming 2020-03-31 19:15:52 -04:00
zeromus 667a218c58 hook up melonds screen control stuff to settings 2020-03-31 18:30:08 -04:00
alyosha-tas 5f24392b41 GBHawk; more minor cleanups 2020-03-31 17:58:25 -04:00
alyosha-tas ea085255c1 GBHawk: minor optimizatiosn 2020-03-31 17:20:27 -04:00
alyosha-tas 96d4b17056 GBHawk: bug fixes to for GBC 2020-03-31 12:35:03 -04:00
adelikat f408bcb2b7 more of the previous commit 2020-03-31 09:30:52 -05:00
adelikat 747501af52 nitpick previous commits - public properties not readonly fields 2020-03-31 09:17:53 -05:00
YoshiRulz 69aa909fc5
Revert previous fix which didn't work and set DisplayName properly
fixup e22c2ae11
2020-03-31 23:42:43 +10:00
YoshiRulz e22c2ae115
Fix ButtonSchema.DisplayName regression 2020-03-31 23:30:06 +10:00
YoshiRulz 9e5e8c2547
Seal PadSchemaControl subclasses 2020-03-31 21:45:27 +10:00
YoshiRulz 3decfa5019
Use inheritance instead of Type for PadSchema controls
* Rename ButtonSchema to PadSchemaControl, create ButtonSchema subclass, rename
AnalogSchema to AnalogStickSchema, and make PadSchemaControl abstract
* Replace switching on PadSchemaControl.Type (enum PadInputType) with type
checks
* Refactor and merge VirtualpadTool.CheckPads() into .CreatePads() (it was
easier than just using type checks in the old algorithm)
* Move members from PadSchemaControl to subtypes and cleanup
2020-03-31 21:40:36 +10:00
YoshiRulz 0ba7a5a7df
Rename axis-related types, members, and locals
I left a few methods where they had an equivalent *Bool*() for buttons, and also
left some in TAStudio that get serialised.
2020-03-31 17:29:55 +10:00
alyosha-tas 19b1d0fa18 GBHawk: bug fixes and ppu viewer working 2020-03-30 22:59:50 -04:00
alyosha-tas 68e69ff85b GBHawk: more bug fixes and loading games 2020-03-30 18:01:36 -04:00
zeromus 97beecc4c9 fix more mixups in bulk reading (fixes #1903) 2020-03-30 17:18:16 -04:00
YoshiRulz 905b18e429
Add helpers for getting selected radio button of group 2020-03-31 03:49:15 +10:00
YoshiRulz 6bf948a7b7
Extract GroupBoxExBase, add RadioButton tracking to GroupBoxExBase
The recent redesign of some config UIs used custom GroupBoxes and RadioButtons,
which was fine, but it also used FLPs liberally. RadioButtons can't
automatically uncheck their siblings if they're not direct siblings, i.e. both
are direct children of a GroupBox. Adding FLPs to GroupBoxes changed the tree,
introducing a bug.
2020-03-31 03:22:12 +10:00
zeromus c3389f14e1 fix bulkread mistakes (see #1903) 2020-03-30 05:21:07 -04:00
YoshiRulz 4237d09d22
Maybe fix off-by-one in 270deg layout 2020-03-30 12:35:28 +10:00
alyosha-tas 69409ff729 GBHawk: bug fixes 2020-03-29 22:30:19 -04:00
zeromus e45943c26a raw capability for DisplayManager handling the NDS screen layouts. someone else will have to hook up the configuration in "CreateCoreScreenControl()". Gap, rotation, and layouts all supported. You will see that other configurations with varying view sizes won't be hard either.
Note that this was actually not very difficult, compared to dealing with the client sizing logic, which was teetering on the brink of total collapse. I may have messed something up while trying to support it here (mainly related to emu-space and client-space padding). There were many assumptions that the core's videoProvider would remain sensible, which this "core screen control" system subverts. The padding and sizing was added after I designed the pipeline specifically for this, so the padding and sizing is not handling it very well. Nonetheless, I think it works.
2020-03-29 21:50:06 -04:00
zeromus 9bc0363a31 straighten out matrixsenses 2020-03-29 21:50:06 -04:00
zeromus 14404a211d fix degrees functions on MatrixStack and add a transform function 2020-03-29 21:50:06 -04:00
adelikat 2f287f5c3c virtualpads - a2600 - implement keyboard controller 2020-03-29 17:42:59 -05:00
adelikat b1911f32a3 virtual pads - fix atari 2600 booster grip button mapping, broken in recent refactors 2020-03-29 17:34:42 -05:00
adelikat 948f58bfae Lua console - remember splitter position 2020-03-29 17:22:22 -05:00
adelikat 58bcb38315 Lua Console - fix Path column sorting, and simplify sort logic 2020-03-29 17:13:03 -05:00
adelikat 729c0516ed some nitpick cleanups 2020-03-29 15:57:27 -05:00
adelikat 7c2802b4c3 DS - change to incrmeent/decrement view hotkeys instead of just one that increments 2020-03-29 14:41:42 -05:00
adelikat a58e7a17a6 DS - bottom screen only option (useful for games like NSMB where pipes can send you to the other screen) 2020-03-29 14:37:59 -05:00
adelikat 7fce38c497 nitpick cleanup 2020-03-29 12:56:37 -05:00
YoshiRulz e0e90a5f33
Reimplement ScreenArranger, refactor MelonDS.GetVideoBuffer 2020-03-30 03:50:49 +10:00
adelikat a574fab07f lua console - update script icons when an error occurrs that stops a script 2020-03-29 12:49:42 -05:00
adelikat a16973cbe9 remove unused and dubious string extension method 2020-03-29 12:38:13 -05:00
adelikat 9bc5d74c67 DS - add hotkey to toggle video screen options 2020-03-29 12:05:05 -05:00
alyosha-tas b039b1f823 GBHawk: start cleaning up errors 2020-03-29 12:15:08 -04:00
adelikat b9f6432ddf DS - wire up rotate options, screen logic doens't work yet 2020-03-29 11:07:18 -05:00
adelikat f15bf2e731 disable some movie menu items on the mainform when tastudio is open, like play and record movie. These jack up tastudio instantly, and there's no reason to be doing this stuff 2020-03-29 10:11:23 -05:00
alyosha-tas 29fded3025 GBHawk: add testing framework 2020-03-29 10:21:34 -04:00
alyosha-tas 73afca9c67 GBHawk: finish intergration functions 2020-03-29 10:10:13 -04:00
James Groom 8274c2c115
Add melonDS to WIP and slightly improve Linux build instructions
I'll get around to documenting Linux properly one day...
2020-03-29 15:08:17 +10:00
alyosha-tas 47704b94fd GBHawk: more integration work 2020-03-28 20:21:43 -04:00
adelikat a072879dca DS - fixes to dsm importer, add mnemonics for LidOpen and LidClose 2020-03-28 17:45:48 -05:00
adelikat cea0e80637 DS cross hair display script - account for movie playback 2020-03-28 17:27:51 -05:00
adelikat 6511632f15 add .dsm importer, doesn't import commands yet, need some examples, doesn't parse the TimeAtBoot value 2020-03-28 17:08:09 -05:00
adelikat d1032f38f8 DS - add a DS lua library with a touchScreenStart() method, add a cross hair stylus input display script 2020-03-28 15:43:31 -05:00
adelikat c008b57324 DS - some cleanup 2020-03-28 15:15:45 -05:00
adelikat 5f889e2568 DS - add screen gap option 2020-03-28 15:12:47 -05:00
adelikat a541b45231 DS - refactoring 2020-03-28 15:05:13 -05:00
adelikat 0aaf2b4151 DS - rethink ScreenArranger, fix side by side options 2020-03-28 14:48:24 -05:00
adelikat 730156b5db DS - wire up some screen setting options, the side by side ones don't work because screen arranger has a bug, and it is flawed, going to refactor all of this 2020-03-28 12:03:26 -05:00
adelikat 1647783fa8 DS - wire up settings to UI 2020-03-28 11:35:13 -05:00
adelikat 3e89a7f201 DS - refactor settings so that it is an enum that then translates to ScreenArranger settings 2020-03-28 11:21:39 -05:00
adelikat e2ac7d7a8f cleanup ds video options code 2020-03-28 10:31:25 -05:00
adelikat eea7b2136f remove unused dependencies in a few lua libraries 2020-03-28 09:31:28 -05:00
zeromus 6c541de69d ZOOM 2020-03-28 03:51:47 -04:00
zeromus 90246dd4c1 fix raw screenshots, which previously were a mixed up mess of user filters and sysdrawing downscaling. fixes #1902.
This was broken by 95bc69b448 (or else it was benign at that time and broken later, but the fundamental change was here).

This caused the raw screenshots to go through the displaymanager instead of very simply converting the core's videoprovider at that point. The reason was because only the displaymanager had the power to render an opengl core's texture ID.

In this commit, I fixed it so that displaymanager had the power to render a videoprovider WITHOUT the user's scaling filters
2020-03-28 03:46:31 -04:00
alyosha-tas 98265cd066 GBHawk: Clean up files and definitions 2020-03-27 20:16:24 -04:00
alyosha-tas b8233666ac GBHawk: finsih mappers start integration 2020-03-27 16:44:45 -04:00
alyosha-tas 03b83a1043 GBHawk: Mapper cleanup 2020-03-26 10:22:14 -04:00
alyosha-tas 649f96b617 GBHawk: start C++ifying mappers 2020-03-26 09:39:44 -04:00
alyosha-tas 31c41f6279 GBHawk: C++ memory map 2020-03-26 08:58:46 -04:00
alyosha-tas 37e8b29056 GBHawk: finish PPU ports 2020-03-25 20:52:16 -04:00
adelikat 6ee8d6d312 Add DS to the Core picker dialog 2020-03-25 18:37:12 -05:00
adelikat 81bcf45d53 SystemLookup.cs - pointless refactoring 2020-03-25 18:37:12 -05:00
alyosha-tas 7662de47ca GBHawk: more C++ work 2020-03-25 17:55:09 -04:00
SuuperW 7aec03d788 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2020-03-25 14:11:16 -05:00
SuuperW ca9e12a929 update libmelonDS.dll 2020-03-25 14:10:24 -05:00
SuuperW 1b419c7cfc fix an audio issue 2020-03-25 13:52:50 -05:00
SuuperW 34bfa46673 new Lid handling strategy 2020-03-25 13:50:21 -05:00
SuuperW cb73761ff6 fix for when screen layout options somehow get messed up 2020-03-25 13:45:18 -05:00
alyosha-tas 79fecef41b GBHawk: more transformation work 2020-03-24 19:44:11 -04:00
campbell000 373a05dcb4
Fixes joypad.set() method in Lua Console (#1898)
* Fixed lua joypad set method to accept button inputs with "P{controller}"
designations. Also allowed joypad set method to accept 0 or 1 as per
documentation

* Added comment
2020-03-24 12:40:18 -05:00
alyosha-tas d0cf220391 GBHawk: start C++'ification 2020-03-24 12:05:49 -04:00
alyosha-tas 26619d367b O2Hawk: remove some unused code 2020-03-23 21:30:06 -04:00
alyosha-tas c5043d2ec3 O2Hawk: fix PAl timing a bit 2020-03-23 21:21:42 -04:00
adelikat 8988c9bb8f O2 - bk2 mnemonics for some missing buttons 2020-03-23 14:06:05 -05:00
adelikat 7aa0b08dd5 O2 virtualpad - add keyboard 2020-03-23 14:05:40 -05:00
adelikat 0717878fae Odyssey2 - Virtualpads - cleanup, add Power button 2020-03-23 09:27:11 -05:00
adelikat f50b4e4c54 Odyssey2 - fix joypad.get(), apparently lua tables do not like keys that are just "." 2020-03-23 09:27:11 -05:00
YoshiRulz 16ed9e7bc9
Reorder modifiers (rule SA1206) 2020-03-23 20:03:51 +10:00
YoshiRulz b168ea0600
Add FxCop Analyzer and update StyleCop
I thought StyleCop was missing a few rules...
2020-03-23 19:09:02 +10:00
adelikat b52d674959 virtualpads - cleanup 2020-03-22 20:14:09 -05:00
adelikat b2c2b5c362 VirtualPads - Genesis activator - attempt to fix it up, it at least maps to correct buttons now 2020-03-22 20:10:30 -05:00
adelikat 49b57bbb22 Virtualpads - fix up vectrex - add console buttons, fix analog logic 2020-03-22 19:54:19 -05:00
adelikat 7f2e1438ba VirtualPads - style console pads differently 2020-03-22 19:34:04 -05:00
SuuperW bcc4fb0bab update libmelonDS.dll to work with previous commit 2020-03-22 18:43:42 -05:00
SuuperW 88904e6b44 support custom screen layouts in MelonDS core (no UI yet) 2020-03-22 18:40:52 -05:00
adelikat 59a7b24df9 a7800 virtualpads - cleanup, support unplugged and lightgun options, remove unimplemented paddle controller logic 2020-03-22 17:31:44 -05:00
adelikat f98003f98e virtualpad schema - cleanups 2020-03-22 16:47:33 -05:00
adelikat 1f8171fc9b PadSchema - remove MaxSize as it wasn't being used, rename DefaultSize to just Size 2020-03-22 16:23:01 -05:00
adelikat 808fa1a911 SmsSchema - simplify 2020-03-22 16:16:05 -05:00
adelikat b520211cf2 NesSchema - simplify some 2020-03-22 16:04:45 -05:00
adelikat 00ec0750d0 SnesSchema - remove unused method 2020-03-22 15:58:50 -05:00
adelikat 1b7698aa71 ButtonSchema - simplify UDLR helper methods more 2020-03-22 15:57:43 -05:00
adelikat ec353e163e ButtonSchema - simplify with another overload 2020-03-22 15:15:22 -05:00
adelikat 554e0dcf80 ButtonSchema - simplify more 2020-03-22 15:09:19 -05:00
adelikat d0908053c2 ButtonSchema - simplify 2020-03-22 14:39:12 -05:00
adelikat 7e9ef33d90 ButtonSchema - lock down setting of Name property 2020-03-22 14:36:57 -05:00
adelikat c0ffe0e0e3 ButtonSchema - use overloads more 2020-03-22 14:32:27 -05:00
adelikat 828bc2b9dc ButtonSchema - use overloads more 2020-03-22 14:27:12 -05:00
adelikat 7b6ff18775 ButtonSchema - use more constructor overloads to simplify 2020-03-22 14:13:01 -05:00
adelikat 90a03f3f6a ButtonSchema - lock down Location setting 2020-03-22 13:21:38 -05:00
adelikat 1c9260f7cf ButtonSchema - use name overload more 2020-03-22 13:16:30 -05:00
adelikat 5f24a07fc9 add ButtonSchema overload with name, and use it in places 2020-03-22 12:56:00 -05:00
adelikat 0344b0affb make PadSchema.IsConsole not settable, force the use of inheritance 2020-03-22 12:37:28 -05:00
adelikat ddaa6fab36 rename FloatSingle -> SingleFloat 2020-03-22 12:19:40 -05:00
adelikat ec36ed6206 ButtonSchema - make Type not directly settable and force the use of inheritance to set it 2020-03-22 12:18:47 -05:00
adelikat 1f63228061 C64 virtualpad schema - simplify 2020-03-22 11:41:48 -05:00
adelikat 2560def438 Virtual Pad - ButtonSchema - make location constructor the only option since location is always required, change param order on Directional helper methods for consistency 2020-03-21 22:24:06 -05:00
YoshiRulz cccf2c1920
Add port info and labels to MelonDS [Core] attr 2020-03-22 12:07:20 +10:00
adelikat b70cfebd1d virtualpad schema - make a ButtonSchema constructor that takes in coordinates, reduces a lot of boilerplate, wire it up to a few schemas 2020-03-21 19:09:02 -05:00
adelikat a52c46339e VirtualPad Schema - add some helper methods for creating directional pad buttons, since those are so common 2020-03-21 18:12:26 -05:00
adelikat 4476cc53af VirtualPads - unnest ButtonScehma and PadInputType 2020-03-21 18:12:26 -05:00
alyosha-tas 5ea379c95d GBHawk: improve scanline zero emulation, still needs a little work. 2020-03-21 18:06:22 -04:00
adelikat 0ecc1e8023 VirtualPad Schema - default to type Button, and remove now redundant setting of this value 2020-03-21 16:10:01 -05:00
adelikat 6a25679ae3 remove trailing comma in various places in Emuhawk probject 2020-03-21 16:04:08 -05:00
adelikat c1e2f6afe5 VirtualPad Schema - don't show display name if icon is preset, default to Name if displayName is not present (and no icon). Delete a lot of now redundant DisplayName assignments 2020-03-21 15:22:30 -05:00
adelikat 6f84582aa5 virtualPad cleanups 2020-03-21 15:22:30 -05:00
feos ba82fede60 melonds branch 2020-03-21 23:00:11 +03:00
adelikat 020db9bfe3 DS virtual pad 2020-03-21 14:29:45 -05:00
feos 5eac0eb713 submodule melonDS 2020-03-21 22:29:41 +03:00
feos 10d3d764b3 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2020-03-21 22:25:50 +03:00
adelikat 50dc04980a NDS settings - move and anchor default button differently, to make it harder to click on accident instead of save 2020-03-21 13:44:13 -05:00
adelikat d5f0206df2 disable NDS setting menu item if movie is active 2020-03-21 13:42:14 -05:00
adelikat 7a558f1951 cleanup NDS settings code 2020-03-21 13:38:42 -05:00
adelikat 85fcb99717 cleanup NDS Settings dialog code 2020-03-21 13:25:39 -05:00
adelikat 8161066632 fix up NDS settings dialog 2020-03-21 13:08:03 -05:00
adelikat 12c6878be1 fix NDSSettings .csproj stuff 2020-03-21 12:59:05 -05:00
adelikat d9d5658a7b add melonDS icon 2020-03-21 12:54:59 -05:00
adelikat 8da4b13f94 mnemonics for a few missing NDS buttons 2020-03-21 12:09:23 -05:00
adelikat 7e48d11594 add DS controller image 2020-03-21 11:59:06 -05:00
adelikat a24d101f1c ControllerConfig - more gracefully handle not having a controller image 2020-03-21 11:48:37 -05:00
SuuperW c59d8130bb
DS Hawk (#1884)
* Add MelonDS.cs, support opening (but not really) .nds files.

* init MelonDS

* MelonDS: Load selected ROM.

* MelonDS: FrameAdvance and frame counter.

* MelonDS: IVideoProvider

* MelonDS: Add DLL files.

* MelonDS: IInputPollable

* MelonDS: IStatable (and add forgotten file MelonDS_InputPollable.cs)

* update libmelonDS.dll

* MelonDS: ISoundProvider

* Add NDS to Global.SystemInfo, and convert screen coords when running NDS.

* set up default NDS controller

* MelonDS: ISaveRam

* MelonDS: remove romlist.bin

* MelonDS: ISettable

* Create firmware folder if it doesn't exist on Windows; otherwise, an exception is thrown.

* Add database entries for NDS bios/firmware files.

* MelonDS: Use the bios/firmware files selected in BizHawk's "Firmwares" dialog.

* MelonDS: Re-work sync settings a bit.

* NDS's firmware file contains user settings; these are over-written by sync settings, so we shouldn't allow them to impact the hash

* MelonDS: Add (currently unused) bootToFirmware sync setting, and NDSSettings dialog.

* Update NDS firmware hash; it seems I had somehow corrupted mine.

* MelonDS: Use boot to firmware sync setting.

* MelonDS: Allow user to set some firmware user settings via the NDS settings dialog.

* MelonDS: Add singleInstance attribute to core.

* MelonDS: IMemoryDomains

* update libmelonDS.dll

* MelonDS: Set up default sync settings if none are provided.

* MelonDS: Allow user to reset settings to default.

* MelonDS: bios+firmware files are recommended

* libmelonDS.dll

* MelonDS: Don't use real time.

* MelonDS: Update to reflect new way of handling RTC in MelonDS.

* MelonDS: Notify if savestate load failed.

* update MelonDS.dll

* MelonDS: Allow user to set startup date/time in settings dialog.

* MelonDS: Create melon directory if it doesn't already exist.

* Don't include Designer's "fixes" in PR (partially reverts 56b474c00)

* Don't show a broken console window; alert user of need to restart instead.
This fixes an error related to MelonDS trying to use the broken stdout stream.

* update default NDS controls to match other updated controls

* Implement a system bus, using ARM9 read/writes.

* MelonDS: Allow BizHawk to change the contents of the frame buffer.

* update libmelonDS.dll

* fix stuff that was merged incorrectly, or was broken by merge

* update libmelonDS.dll
(includes memory leak fix)

* update libmelonDS.dll
(fixes memory leak and an occasional savestate crash)

* fix stuff that broke with the merge

* cleanups, remove stuff that is no longer needed by service interaces

* simplify DS MemoryDomains

* DS - fix order of controller buttons to be consistent with other consoles.  This probably breaks any existing movies made on this core, but those would have been experiments, right?

* NDSSettings - make min value for day and month 0, whiel those aren't "valid" values they are the default values in the core for whatever reason, better to not crash on load and not show a value that isn't actually the setting.  This can easily be reverted if the core changes to default to 1

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
Co-authored-by: adelikat <adelikat@tasvideos.org>
2020-03-21 10:53:30 -05:00
alyosha-tas 04a33600da O2Hawk: fix the keyboard 2020-03-21 08:43:56 -04:00
YoshiRulz e1951b9fc5
Cleanup PathExtensions
Fixes f02295455/c731e1168/5c7135d67
2020-03-21 13:45:58 +10:00
adelikat c985dfa96d fix hex editor scrolling 2020-03-20 21:08:52 -05:00
adelikat 5c84c94a12 fix compile error in debug mode, oops 2020-03-20 21:05:44 -05:00
alyosha-tas 7e00b7892f gameboy memory domains: make consistent between gambatte and GBhawk 2020-03-20 20:04:58 -04:00
alyosha-tas af2f87deac Gambatte: do not sort settings alphabetically, so that GBC in GBA mode is not at top 2020-03-20 17:05:25 -04:00
alyosha-tas aa165f36d2 O2Hawk: add PAL mode 2020-03-20 16:39:14 -04:00
adelikat 72f87ce808 add BizHawk.Winforms.Controls to Client solution folder 2020-03-20 10:32:52 -05:00
adelikat 7fb89aed18 NesHawk - move BootGodDb to its own file 2020-03-19 21:35:36 -05:00
adelikat 01584431c4 NesHawk - cleanup Unif.cs 2020-03-19 21:28:32 -05:00
adelikat 22f6df3a70 NesHawk - CartInfo - turn into properties 2020-03-19 21:20:53 -05:00
adelikat daab35fc39 NesHawk- move CartInfo into its own file 2020-03-19 21:15:07 -05:00
adelikat dc56dd87e8 simplify MapperPropAttribute 2020-03-19 21:12:23 -05:00
adelikat 291275fe8c NesHawk - move MapperPropAttribute to its own file 2020-03-19 21:11:01 -05:00
adelikat f8acb61136 NesHawk - make boards and related classes internal, and sealed where possible 2020-03-19 21:06:54 -05:00
adelikat 620c38af73 NesHawk - move some enums out of NesBoardBase, simplifies a lot of usages 2020-03-19 20:29:15 -05:00
adelikat 720a2dce02 NesHawk - move NesBoardImpl attributes to their own file 2020-03-19 20:21:29 -05:00
adelikat 0d4dd3855b NesHawk - more missing variables in savestates 2020-03-19 20:02:22 -05:00
adelikat 659831c534 fix missing savestate data in some NESHawk mappers, note this is a breaking savestate change for these boards, but they were broken anyway, these were critical fields to savestate 2020-03-19 19:51:59 -05:00
adelikat 8bcab5af79 NESHawk - break off INesBoard and NesBoardBase into separate files 2020-03-19 19:06:03 -05:00
YoshiRulz 74620559ea
Re-include AssemblyInfo.cs in EmuHawk compilation and fix casing 2020-03-20 09:03:21 +10:00
adelikat 32e632851e remove setters from IMemoryDomains MainMemory and SystemBus properties, those shoudln't be set by the calling code, nor were they being used 2020-03-19 14:50:04 -05:00
adelikat 4f74f0a2c3 git rid of an undeeded break statement, fixes a warning 2020-03-19 14:10:31 -05:00
adelikat 5c7135d673 path extensions - turn off nullability, we aren't ready for this stuff yet 2020-03-19 10:41:20 -05:00
adelikat 93c2644506 #if false some unreachable code in LibretroAPI 2020-03-19 10:37:29 -05:00
adelikat ca90b90698 MOS/Via.cs - comment out unused variable 2020-03-19 10:33:08 -05:00
adelikat 8ea04c3ed5 cleanup StringLog.cs, removes a warning 2020-03-19 10:28:34 -05:00
adelikat a40e37eda6 Qunatizer - delete more unused stuff, removes a warning 2020-03-19 10:23:36 -05:00
adelikat 9b68246b19 remove an unused varaible in VDC.Render.cs, fixes a warning 2020-03-19 10:18:35 -05:00
adelikat 3dd0c18839 MemoryBlockUnix - use #if false on some unreachable code, fixes a warning 2020-03-19 09:05:07 -05:00
adelikat c731e1168e Revert "Fix nullability warnings in PathExtensions"
This reverts commit f022954554.
2020-03-19 08:50:45 -05:00
adelikat d60a00d682 NES mappers - remove documentation comments in favor of the nesdev wiki link 2020-03-19 08:24:05 -05:00
YoshiRulz f022954554
Fix nullability warnings in PathExtensions
Definitely not happy with any of this
2020-03-19 15:23:01 +10:00
YoshiRulz 8ae01f2f42
Fix tuple item names in return type 2020-03-19 15:15:39 +10:00
YoshiRulz 89abab7a52
Use env. var for nuget pkg dir on Linux, and don't set CscToolExe
Also removed comments and used SolutionDir in .csproj/.props, and enabled Roslyn
Analyzers on GitLab CI builds
2020-03-19 15:15:32 +10:00
adelikat efb34f74e1 a2600 refactor - make mapper classes internal and sealed 2020-03-18 21:46:51 -05:00
adelikat f10b51558b Atari 2600 - make MapperBase abstract and make HardReset() abstract since we need implementations to properly reset variables (we can't get rid of hard reset so easily, since HardReset is the mechanism that multi-cart roms use 2020-03-18 15:58:53 -05:00
adelikat db6bbe22bb A2600 - expose CartRam memory domain for mCM and mFA 2020-03-18 15:48:32 -05:00
adelikat 8f860adf51 cleanup Atari2600 mapper code 2020-03-18 15:46:17 -05:00
adelikat a61230e4ab Atari2600 - refactor mapper creation logic to be a separate method with declared dependencies, remove an unused method 2020-03-18 10:52:53 -05:00
adelikat 8c10ca3e14 Atari2600 cleanup - pass Atari2600 core into constructor instead of setting after, use switch expression for mapper instantiation logic 2020-03-18 10:37:53 -05:00
adelikat c52bc603d7 Atari 2600 Mappers - remove useless HasCartRam virtual method, and simply check if CartRam.Length > 0 2020-03-18 09:23:43 -05:00
adelikat d953318160
Remove cbuffer (#1883)
* delete unused ShortBuffer

* convert IntBuffer to int[] in the Atari2600 core

* remove IntBuffer from NES mappers, and delete class

* convert ByteBuffer to byte[] in atari 2600 mappers

* remove ByteBuffer usages in NESHawk, remove ByteBuffer class

* remove Buffer.cs

* remove IDisposable from NES.NESBoardBase

* remove Dispose from Atari2600 MapperBase, note, it wasn't event being called
2020-03-18 08:55:02 -05:00
alyosha-tas 5d88199c97 vbm import: properly parse GBC into movie header 2020-03-16 16:55:49 -04:00
alyosha-tas bc61ce3114 VBM import: always import as GB. 2020-03-16 16:30:35 -04:00
alyosha-tas ab6caa70d2 VBM import: import gambatte movie if gambatte is the loaded core 2020-03-16 16:16:32 -04:00
YoshiRulz 5fdf7e09f0
Add BizHawk.WinForms.Controls reference to external tools 2020-03-16 11:28:21 +10:00
adelikat b9f80121df fix loading of 83P (ti-83) files from zip from the recent menu 2020-03-15 18:48:40 -05:00
adelikat 5cc1c234cd Nitpick 2020-03-15 18:37:49 -05:00
adelikat 250d3b6c49 simplify CheatList.Sort using OrderBy extension method 2020-03-15 18:32:31 -05:00
adelikat 20b99d4ae2 fix typo in GambatteLink file 2020-03-15 18:24:42 -05:00
adelikat 4152dce1ca Simplify some core name shenanigans with an extension method 2020-03-15 18:18:00 -05:00
adelikat f655a4587e simplify ToolManager.GenerateDefaultCheatFilename 2020-03-15 18:07:57 -05:00
adelikat a7b30dac6c Simplify TI83KeyPad.cs 2020-03-15 18:06:05 -05:00
adelikat ff7fb4e658 VirtualPadDiscManager - remove some unused code and other cleanups 2020-03-15 17:58:03 -05:00
adelikat 6d5c444252 Move Global controller adapters into InputManager, it's a step in the right direction 2020-03-15 17:50:48 -05:00
adelikat 1f617221fc Make InputManager not static, but make a static instance in globals, phase 1 of some refactoring 2020-03-15 17:19:11 -05:00
adelikat 5617950f50 InputManager - pass some dependencies into SyncControls 2020-03-15 17:13:56 -05:00
adelikat edd8349dde fix typo in Global property 2020-03-15 17:09:11 -05:00
adelikat 67926a2de4 Make Global fields into properties, a bit of cleanup 2020-03-15 17:08:34 -05:00
adelikat 80c36d8155 FirmwareManager - don't use Global, pass in actual dependencies 2020-03-15 16:31:37 -05:00
adelikat 965c7555ce FirmwareManager - replace query syntax with LINQ expressions. Query syntax is a pain unless you really need it 2020-03-15 16:27:32 -05:00
adelikat 5f2b4fe4d2 PathEntryCOlleciton use this instead of Global reference to this, sheesh 2020-03-15 16:16:58 -05:00
adelikat 81d6ca335e CoreFileProvider - pass dependencies in, instead of using Globals 2020-03-15 16:10:02 -05:00
adelikat b1cac9ba00 Move DefaultIniPath property to Config, and delete PathManager.cs 2020-03-15 16:02:23 -05:00
adelikat e16dc33722 move some PathManager methods to a PathUtils class in BizHawk.Common 2020-03-15 15:59:10 -05:00
adelikat 9fa4bac8d4 Path extensions - address nullability in a few places 2020-03-15 15:47:12 -05:00
adelikat 33a14327b7 move most logic from PathManager to extension methods in BizHawk.Common 2020-03-15 15:45:11 -05:00
adelikat 348cbd18df
Remove PathManager code that had dependencies on Globals (#1881)
* move one usage of Firwmare method into Firmware config where it is better suited

* PathManager - remove unused code

* move some PathEntry specific logic out of PathManger and into PathEntryCollection extension methods

* PathManager - detangle some exe pathing logic from Global.Config usage, clarify what a completely broken method should actuall do

* move more logic from PathManager to PathEntryCollection extension method

* move absolute path creation to PathEntryCollection, lots of refactoring and simplifying of PathEntries usage

* simplify PathEntryColleciton usage more

* simplify PathEntryCollection more

* break PathEntry classes into separate files, a bit of cleanup

* move Rom path logic out of PathManager into PathEntryCollectionExtensions

* move config UseRecentForRoms and LastRomPath into PathEntries, note that this is a breaking change for previous configs, those values will revert back to default values

* move SaveRamPath logic from PathManager to PathEntryCollections

* move cheats path logic from PathManager to PathEntryCollection

* move another method out of PathManager

* move some Retro hacks to PathEntryCollections, exposes more implicit dependencies

* move savestate logic out of PathManager to PathEntryCollection

* move more logic out of PathManager

* move some savestate logic out of PathManager, move most to MainForm where it is used, detangle some implicit dependencies from SaveSlotManager

* rename method

* move more logic from PathManager to PathCollectionEntry

* movie final Global.Config.PathEntries logic out of PathManager and into PathEnties
2020-03-15 15:12:36 -05:00
alyosha-tas 38e89f01ee quicknes: add jetson's to blacklist 2020-03-15 11:24:12 -04:00
adelikat c66243254c remove unused GameInfo parameter in some core constructors 2020-03-15 10:19:01 -05:00
adelikat f4b1d3f747 oops, meant to check this in 2020-03-15 10:15:30 -05:00
adelikat d3f37a5beb remove CoreComm.Clone(), it is now safe to pass around into subcores 2020-03-15 10:12:20 -05:00
adelikat 3c519b0249 refactor CoreFileProvider instantiation, require ICoreFileProvider in CoreComm constructor and remove setter for CFP 2020-03-15 10:09:32 -05:00
adelikat 8c7b0c6ff1 delete some vestigial coreComm/CoreFileProvider code 2020-03-15 09:57:54 -05:00
adelikat 983a9a3a11 fix CoreComm documentation 2020-03-15 09:48:18 -05:00
adelikat 3c638f018f refactor CoreComm usage in remaining cores 2020-03-15 09:44:47 -05:00
adelikat 79aec475a9 refactor CoreComm usage in sega cores 2020-03-15 09:42:48 -05:00
adelikat 899f8662c0 refactor CoreComm usages in more cores 2020-03-15 09:38:54 -05:00
adelikat c532b96245 refactor CoreComm usage in nes cores 2020-03-15 09:35:12 -05:00
adelikat b5c0bfa141 remove coreComm from N64 core 2020-03-15 09:32:29 -05:00
adelikat 8973e5e521 refactor CoreComm usage in GBHawk and related cores 2020-03-15 09:31:07 -05:00
adelikat 028bc83c88 refactor CoreComm usage in some Gameboy cores 2020-03-15 09:28:27 -05:00
adelikat 5886416cbf refactor CoreComm usage in more cores 2020-03-15 09:22:58 -05:00
adelikat 8833ce61c4 refactor coreComm in waterbox 2020-03-15 09:16:45 -05:00
adelikat 095b22d489 refactor CoreComm usage in atari cores 2020-03-15 09:14:33 -05:00
adelikat 9fa59bad42 refactor CoreComm usages in Computer cores 2020-03-15 09:10:13 -05:00
adelikat d6af18accb remove CoreComm from MAME, easily added back if firmware is needed 2020-03-15 08:58:17 -05:00
adelikat 0a33940704 remove CoreComm from IEmulator, and remove it from NullEmulator 2020-03-15 08:54:56 -05:00
adelikat da95c1f56f remove RomAnnotation fields on CoreComm and use the service instead 2020-03-14 22:10:57 -05:00
adelikat 015043fd50 add IRomInfo service 2020-03-14 21:43:53 -05:00
adelikat 42dc7edd23 pass in rom annotation details to Octoshock so it can set coreComm, ideally the core should figure all this out but this works okay 2020-03-14 21:36:51 -05:00
adelikat 3cacb88e48 a few cleanups in octoshock 2020-03-14 21:27:05 -05:00
adelikat 6360d9934c simplify MainForm UpdateDumpIcon() some 2020-03-14 21:05:22 -05:00
James Groom fb5e1abedb
Update Usage > Cores section 2020-03-15 08:28:22 +10:00
adelikat a884282fa4 remove CoreComm NominalX/Y, those values never different from buffer w/h for cores that set them which were only the gb/gba platforms and the original dualGb. The result defaulted to a very random 640x480. Instead just use the buffer w/h, which is a very reasonable video default 2020-03-14 17:06:42 -05:00
adelikat dd062b3ca7 replace CoreComm screenofsets with an emulator service 2020-03-14 16:35:54 -05:00
adelikat 870d7df6f2 cleanup some unneeded code 2020-03-14 16:09:25 -05:00
adelikat 190118d7c4 rip out libretro hack from CoreComm, making it a param on LoadRom isn't great but better 2020-03-14 15:43:17 -05:00
adelikat fc0e0840e0 delete more stuff that is no longer used in CoreComm 2020-03-14 15:29:43 -05:00
adelikat 9037c82985 use switch expressions on CoreSystemEnum converters, and add some enums that haven't been there for a long time (does anyone use this?) 2020-03-14 15:24:46 -05:00
adelikat 2c007e5049 remove a few more psp references 2020-03-14 15:18:58 -05:00
adelikat d8d12cac8b kill more psp, and remove some methods from coreComm that were only used by the former psp core 2020-03-14 15:14:31 -05:00
adelikat 9825963261 kill off the dead PSP core 2020-03-14 15:10:29 -05:00
adelikat 211883889b simplify CoreCom copying by implementing a Clone method, simplifies all the cores that have cores in them, this copies a lot more things than the original code had but it seems that's either fine or fixing broken stuff 2020-03-14 15:08:24 -05:00
adelikat a50467846c simplify CoreFileProvider 2020-03-14 14:50:50 -05:00
adelikat 235ff78e9f Simplify CoreFileProvider - make Firmware private and an explicit dependency 2020-03-14 14:27:13 -05:00
adelikat 6c5dc8532f remove some useless regions 2020-03-14 14:23:13 -05:00
adelikat d72d8e79ff remove Global.Game from retro methods of CoreFileProvider, fix exposed bug that the retroarch core was getting path stuff based on Global.Game before it was being set to the new game 2020-03-14 14:22:23 -05:00
adelikat cd7d907c0d get rid of CoreFileProvider SubFileDirectory 2020-03-14 14:02:19 -05:00
adelikat e655ad3abd remove obsolete ICoreFileProvider.PathSubfile(), and instead pass in the neccessary base path the the bsnes core that needs it 2020-03-14 13:56:20 -05:00
adelikat b2066d9a73 remove obsolete ICoreFileProvider string GetFirmware method and replace the one usage for ti83 shenangians with an inline FirmwareManager usage 2020-03-14 12:39:45 -05:00
adelikat 104689655f remove unused ICoreFileProvider method and implementation 2020-03-14 12:29:30 -05:00
adelikat eba20781b4 add to ICoreFileProvider and remove casting to CoreFileProvider shenanigans in RomLoader 2020-03-14 12:28:19 -05:00
adelikat 16781fa212 FirmwareManager - don't depend on Global.Config 2020-03-14 12:20:28 -05:00
adelikat d1623c32b7 Firmwares manager - depend on Global.Config less 2020-03-14 12:10:53 -05:00
adelikat 51539ebebd Simplify FirmwareManager 2020-03-14 11:59:14 -05:00
adelikat 6958ade3a8 nes ppu - have Reg_2000 depend on PPUREGS instead of PPU since that's all it's using 2020-03-14 10:32:59 -05:00
adelikat 4ababf383a NESHawk - PPUREGS - don't depend on PPU, move the one method that was using it out to PPU 2020-03-14 10:30:53 -05:00
YoshiRulz e12b5d8137
Refactor FloatRange creation and usage
effectively resolves #1200
* Replaced floats in FloatRange with ints (would have used shorts but
SubGBHawk/SubNesHawk use an axis to hack in cycle count or something), added
both Range<int> and Range<float> auto-properties
* Added bool field IsReversed to FloatRange
* Added enum AxisPairOrientation and factory method using it
* Cleaned up usages of FloatRange fields and properties
* Added new properties to PadSchema.ButtonSchema for type
PadInputType.AnalogStick (to hold the two FloatRanges) and used
ControllerDefinitions from cores to dedup these ranges in the schemata
* Made VirtualPadAnalogStick work properly: both the direction and bounds are
correctly set from the controller schemata, the polar conversion measures angles
consistently (though I think it might not work outside -128..127 e.g. for PSX),
and I didn't break the sensitivity override, plus negative percentages might
work now but I didn't allow those
* Renamed FloatRange to AxisRange, but did not rename related symbols
2020-03-14 20:47:45 +10:00
alyosha-tas 84ef5039ee
Merge pull request #1880 from TiKevin83/master
fix MBC1 games like Pinocchio that need adjustedRombank
2020-03-13 07:40:52 -04:00
TiKevin83 7e37fb2540 fix MBC1 games like Pinocchio that need adjustedRombank 2020-03-13 00:39:39 -04:00
YoshiRulz ddbabd6067
Split path to fork in project dependency tree
Emulation.Common does not depend on Emulation.DiscSystem, but Emulation.Cores
still depends on both
2020-03-13 09:46:24 +10:00
YoshiRulz d02a8df549
Fix audio buffer looping on drag-and-drop 2020-03-13 08:49:05 +10:00
YoshiRulz 9e514dcebd
Unify Get/SetSoundOn across Lua and C# APIs (resolves #1817) 2020-03-13 08:46:45 +10:00
YoshiRulz f7caa414b6
Fix building for external tools 2020-03-12 13:16:37 +10:00
feos 9dd9b4cc0d
Bulkread (#1834)
* POC of a memory domain bulk read concept, wired up to hex editor, very sloppy currently

* do the todo

* delegates for bulkreads

* refactor bulk reads to take in a range and a pre-allocated array for the values

Co-authored-by: adelikat <adelikat@tasvideos.org>
2020-03-11 10:53:42 -05:00
adelikat 7456d81a9c cleanup FilterManager.cs 2020-03-06 17:35:01 -06:00
YoshiRulz acaaa126bb
Add item names to ValueTuple return type 2020-03-07 07:57:25 +10:00
YoshiRulz 5196b97459
Fix resources for BizHawk.Emulation.Cores and cleanup 2020-03-07 07:45:19 +10:00
adelikat 9584ff1f53 use switch expressions in some various places in EmuHawk, and some other simplifications 2020-03-04 20:18:43 -06:00
adelikat 8430d145ab cleanup RamSearch with switch expressions and switch labels 2020-03-04 19:34:13 -06:00
adelikat e6eb667e56 RamSearchEngine - simplify 2020-03-04 19:19:32 -06:00
adelikat ebc3ea7ca0 RamSearch - simplify slightly 2020-03-04 19:10:26 -06:00
adelikat eff3f310a8 ramSearchEngine - fix AddRange broken in earlier refactor, oops 2020-03-04 19:07:36 -06:00
adelikat 74c12779b0 RamSearchEngine - use HawkFloatEquality() for float equality comparisons 2020-03-04 19:02:00 -06:00
adelikat d1db498d20 RamSearchEngine - List -> IEnumerable 2020-03-04 18:44:22 -06:00
adelikat a84fca5f8f make WatchList constants not all caps 2020-03-04 18:43:31 -06:00
adelikat 888a5225fe create an OrderBy() overload that does OrderBy or OrderByDesc, and use it to simplify sorting in RamSearchEngine (can be used to simplify other things like CheatList) 2020-03-04 18:40:26 -06:00
adelikat d6e56f8aa8 RamSearchEngine - simplify watchList creation with extension methods 2020-03-04 18:15:04 -06:00
adelikat 35ab6762a2 RamSearchEngine - simplify a bit 2020-03-04 17:51:57 -06:00
adelikat e460394d41 RamSearchEngine - cleanup code slightly by making ToFloat() an extension method, also fix CompareDifrerent by float comparisons that were all incorrect 2020-03-04 17:39:05 -06:00
adelikat 51dcd3db46 remove now redundant casts 2020-03-03 19:09:44 -06:00
adelikat d38e8a0503 cleanup 2020-03-03 18:41:53 -06:00
adelikat 3d664d9270 simplify ram search engine settings usage a bit with some extension methods 2020-03-03 18:41:53 -06:00
adelikat 23c819de4a Move SearcMode enum out of SearchEngineSettings 2020-03-03 18:41:53 -06:00
adelikat a151bd7424 move settings class out of RamSearchEngine 2020-03-03 18:41:52 -06:00
adelikat 3a0df3f543 move enums out of RamSearchEngine class 2020-03-03 18:41:52 -06:00
adelikat 92221f38df separate namesapce for RamSearchEngine files 2020-03-03 18:41:52 -06:00
adelikat c25d354194 break out some classes out of RamSearchEngine into their own files 2020-03-03 18:41:52 -06:00
YoshiRulz f7ddab25c7 Redesign 4 config dialogs as a proof-of-concept 2020-03-03 22:51:51 +00:00
YoshiRulz 10818ba069 Create a new project for custom controls and add some more 2020-03-03 22:51:51 +00:00
YoshiRulz bbb28525f1
Fix typo in switch expression
fixes up 18762c75e
2020-03-02 17:15:30 +10:00
adelikat 1337beed1b remove designer null check hacks in favor of the intended DesignMode flag 2020-03-01 16:49:37 -06:00
adelikat 0414e15a75 InputRoll - remove designer hacks, they don't crash the designer anymore 2020-03-01 16:41:47 -06:00
adelikat 079a0a4104 HeaderKeys - CONSTANTSDONTNEEDTOBEALLCAPS 2020-03-01 16:36:47 -06:00
adelikat 9474771098 ToolBox.cs - replace serious of ifs with LINQ filters 2020-03-01 16:30:51 -06:00
adelikat ff836b7089 remove no longer used Watch.IsOutOfRange 2020-03-01 16:23:02 -06:00
adelikat b4cbca0156 break off AutofireController class into its own file, rename ControllerBinding.cs to Controller.cs to match class name 2020-03-01 16:21:03 -06:00
adelikat fb52d3fc5d cleanups 2020-03-01 16:18:20 -06:00
adelikat abf0a334ad some cleanups in controllerBinding 2020-03-01 16:16:03 -06:00
adelikat 6972d5307f convert confusing query syntax to LINQ expression 2020-03-01 16:13:30 -06:00
adelikat 5bea6efe5f rename a variable 2020-03-01 16:05:04 -06:00
adelikat 10df3b194e simplify StickyAdapters a bit 2020-03-01 15:59:30 -06:00
adelikat 2349a92de6 remove StickyOrAdapter, and ISticky interface, they became vestigial at some point 2020-03-01 15:56:38 -06:00
adelikat 18762c75ee misc cleanups in Client.Common 2020-03-01 15:49:48 -06:00
adelikat 0ffac58ce8 misc cleanups in Client.Common 2020-03-01 15:05:42 -06:00
adelikat db21af9e59 cleanups in Client.Common, mostly removing redundant parenthesis 2020-03-01 14:52:16 -06:00
adelikat 2a77ad14f3 some simplifications in OpenAdvanced.cs 2020-03-01 14:45:18 -06:00
adelikat 630858cbd4 misc cleanups in Emulation.Common 2020-03-01 14:39:24 -06:00
adelikat 565a319cef
Remove unused sound files (#1868)
* Remove unused ZeromusSynchronizer ISynchronizingAudioBuffer implementation as it hasn't been used in quite some time, also remove unused MetaspuAsyncSoundProvider that is no longer used. Remove some unsed methods on MetaspuSoundProvider

* use switch expression

* remove unused buffer

* remove unused NitsujaSynchronizer, even though it was the default, the only usage of ISynchronizingAudioBuffer is the vecna one

* remove enum ESynchMethod now that it only had 1 option

* expose VecnaSyncrhonizer and remove Metaspu static class

* remove unused method on ISynchronizingAudioBuffer
2020-03-01 14:18:24 -06:00
feos 8408fd86dd test 2020-03-01 11:22:16 +03:00
alyosha-tas 9810bd7541 GBHawk: oops missed one 2020-02-29 21:34:37 -05:00
alyosha-tas ca025488cd GBHawk 4x:linking improvements 2020-02-29 21:27:26 -05:00
alyosha-tas b1d17b0a57 GBHawk: proper bias emulation in audio, still needs some refinement but everything is in place. 2020-02-29 17:11:46 -05:00
adelikat 4bfb4ab00d
Gameshark refactor (#1867)
* first round of GameShark.cs cleanups, redundant code and stylecop cleanup

* simplify how gba readonly values are set

* a few more cleanups

* GameShark - use NESGameGenieDecoder for nes logic

* remove now unused NESGameGeneie tool

* Client.Common - move nes encode/decoder to a cheats folder

* GameShark - move genesis game genie coding logic to its own class

* remove NesGameGenieEncoder that i snow unused

* fix naming

* remove GenGameGenie in favor of using the unified Cheat Code decoder

* move Gameboy/GameGear decoding logic from GameShark to its own class, cleanup

* remove GBGameGenie, was only exposed via the toolbox, GameShark tool does all of this logic

* GameShark - move snes game genie decoding logic to its own class

* cleanup

* remove unused snes GameGenie tool

* move Gb GameShark decoding to its own class

* cleanup

* move Genesis action replay decoding logic to its own class

* cleanup

* cleanup

* cleanup

* cleanup

* move Sms ActionReplay decoding to its own class, cleanlup

* cleanup

* move snes action replay decoding to its own class

* cleanup with a helper method

* cleanup

* more cleanup

* cleanup

* cleanup

* cleanup

* cleanup

* cleanup

* move Psx GameShark decoding to its own class

* Move saturn gameshark parsing to its own class

* cleanup

* cleanup

* move N64 decoder logic to its own class

* remove GBA cheat code that hasn't been ready for 5 years, easier to try to implement this in the re-architected code, so delete for now at least

* start to detangle GBA gameshark mess

* Gameshark - remove most gba cheat code functionality for now, easier to rebuild it later

* Gameshark - cleanup

* cleanup

* cleanup

* cleanup

* redesign nes decoder to simpler design

* simplify more

* convert psx and saturn decoders and simplify

* convert more decoders

* convert more decoders

* convert more decoders

* convert more decoders

* convert gba decoder

* convert more decoders

* convert and simplify N64 decoder

* GameShark - simplify more
2020-02-29 15:18:40 -06:00
alyosha-tas 7c32305cb4 GBHawk: fix videoplayer2 audio 2020-02-29 11:57:44 -05:00
alyosha-tas e87a0edb01 GBHawk 4x: cleaan up the 2x2 connections 2020-02-29 09:05:28 -05:00
alyosha-tas c9621eff19 GBHawk: CPU optimizations 2020-02-28 20:46:33 -05:00
YoshiRulz 2e645d0563
Re-align FLPs to Form and fix min size
fixes up 16040d53b
2020-02-29 10:21:18 +10:00
adelikat 16040d53ba auto-fire config - make default size enough to show the whole title 2020-02-28 18:00:20 -06:00
adelikat 69ad9050d2 proof of concept - add these attributes to custom control values that hard code an base property that would otherwise be settable by the designer 2020-02-28 17:52:04 -06:00
adelikat 458dd22eb8 cleanup some SlimDx9 files 2020-02-28 17:05:45 -06:00
YoshiRulz 02c7a70297
Remove unnecessary code from AutofireConfig.Designer.cs 2020-02-29 08:50:10 +10:00
YoshiRulz 33cf3eff81
Redesign AutofireConfig using some of the new controls 2020-02-29 08:48:20 +10:00
YoshiRulz 5ab68c9784
Add some more custom controls 2020-02-29 08:17:33 +10:00
adelikat dff8a536f0 address some typos 2020-02-28 13:09:05 -06:00
adelikat 46d05de51f nothing to see here 2020-02-28 12:52:48 -06:00
adelikat 4a943f3a60 cleanup GraphicsImplementations files 2020-02-28 12:32:45 -06:00
adelikat 402acad0f6 cleanup NESMusicRipper.cs 2020-02-28 12:11:51 -06:00
adelikat 0d3606da14 some cleanups of IGL_GdiPlus 2020-02-28 11:50:03 -06:00
adelikat 9c025970ee cleanups in SoundOutputProvider.cs 2020-02-28 11:41:49 -06:00
adelikat 9fa51be431 cleanup GraphicsControl_TK 2020-02-28 11:39:28 -06:00
adelikat c7ed6015a2 use null propagation in Client.EmuHawk 2020-02-28 11:32:51 -06:00
adelikat a8a4f981a9 use using declarations in Client.EmuHawk 2020-02-28 11:20:05 -06:00
adelikat 4bf463a2fc use object initializers in Client.EmuHawk 2020-02-28 11:15:06 -06:00
YoshiRulz e5da8c765a
Move IController.ToDictionary extension to BizHawk.Emulation.Common 2020-02-28 13:26:27 +10:00
YoshiRulz 848eaabf46
Move CWD hacks to own class 2020-02-28 13:26:14 +10:00
YoshiRulz 4e5849030b
Fix typo 2020-02-28 12:13:12 +10:00
James Groom c9d20426d3
Cleanup HawkFile (#1865) 2020-02-27 17:41:07 -06:00
alyosha-tas 5f5bf639c2 GBHawk: 4x cleanup 2020-02-27 18:15:34 -05:00
alyosha-tas 1e550e68eb GBHawk: 4x adapter functional 2020-02-27 16:37:08 -05:00
feos b07f8db8c9 update mgba to fix desyncs 2020-02-27 21:44:28 +03:00
YoshiRulz a22a1637d0 Cleanup VirtualPadAnalogStick and use LUTs for polar conversion 2020-02-27 04:34:31 +00:00
YoshiRulz 71e3dbf6bc Replace RangeStruct with ValueTuple, add deconstruction for Range 2020-02-27 04:34:31 +00:00
adelikat 7e741b1200 misc cleanups in lua code 2020-02-26 17:06:04 -06:00
adelikat b810060fcf move AdvancedRomLoaderType out of Emulation.Common, it doesn't belong here (moved to EmuHawk where it is used) 2020-02-26 16:36:15 -06:00
adelikat 13bc770063 misc cleanups in Emulation.Common 2020-02-26 16:32:00 -06:00
adelikat 3018abe1f8 cleanup ISynchronizingAudioBuffer 2020-02-26 16:05:37 -06:00
adelikat 2c9d8bba40 cleanup DSKIDentifier.cs, misc cleanups in Emulation.Common 2020-02-26 15:51:29 -06:00
adelikat f5e9e8eecd cleanup VersionInfo.cs a bit 2020-02-26 15:33:50 -06:00
adelikat 9cbf7b1176 DiscSystem.Emulation - fix a few typos 2020-02-26 15:25:50 -06:00
adelikat 35219d2dd7 Emulation.DiscSystem - cleanup - use object initializers 2020-02-26 15:00:18 -06:00
adelikat 4cf29c5169 Emulation.DiscSystem - cleanup - use extension method, using declarations 2020-02-26 14:53:36 -06:00
adelikat 3f9b93be59 Emulation.DiscSystem -> simplify if/elses into return statements 2020-02-26 14:51:05 -06:00
adelikat cd9103b412 Emulation.DiscSystem - cleanup - use built in aliases 2020-02-26 14:42:35 -06:00
adelikat 2afa05d2c7 Emulation.DiscSystem - cleanup - use expression body 2020-02-26 14:41:54 -06:00
adelikat eb4acc0090 Emuation.DiscSystem - cleanup - use null propagation 2020-02-26 14:40:33 -06:00
adelikat 03ccdb15eb Emulation.DiscSystem - cleanup - remove unused usings 2020-02-26 14:38:48 -06:00
alyosha-tas 027dc6a6eb GBHawk: more 4x adapter work, pinging seems to work, need transmitting 2020-02-25 20:58:30 -05:00
adelikat e1bb93971a use expression body in various places 2020-02-25 15:14:14 -06:00
adelikat e744511573 misc cleanups 2020-02-25 15:14:14 -06:00
adelikat 185dbda19a misc redundant code removal, empty argument in object intiializer, redundant elses 2020-02-25 15:14:13 -06:00
adelikat 35697aaefa cleanup Page.cs 2020-02-25 15:14:13 -06:00
adelikat 72d4b0ac46 use inline out 2020-02-25 15:14:13 -06:00
adelikat f873e7f9c3 cleanup some BizwareGL files - spaces to tabs, remove used code, cleanup 2020-02-25 15:14:13 -06:00
YoshiRulz cab5df6c87
Point to prereqs 2.1 instead of latest (2.4.8) 2020-02-26 06:45:25 +10:00
alyosha-tas 78454ea636 GBHawk: Start 4x adapter 2020-02-25 13:53:28 -05:00
Devon R 0f7d292101
Fix an InvalidCastException being thrown when a double is unboxed as a float (#1863) 2020-02-25 11:33:28 -06:00
feos 0962771225 dispose 2020-02-25 18:05:47 +03:00
feos 7b7f92ea3e mame: start savestates 2020-02-25 17:57:29 +03:00
feos 9274545eb5 disable this test 2020-02-25 17:57:28 +03:00
alyosha-tas c16b47cbe4 GBHawk: rename GB compat cpu to have proper dependency 2020-02-25 08:06:43 -05:00
alyosha-tas 961f682cdc SubGBHawk: misc. movie stuff 2020-02-23 19:20:49 -05:00
alyosha-tas f73c65d704 GBHawk: camera mapper 2020-02-23 17:38:56 -05:00
adelikat 808071748a ok... 2020-02-23 12:52:20 -06:00
alyosha-tas f0692111d7 SubGBHawk: add 2020-02-23 09:54:42 -05:00
alyosha-tas e1128e4150 oops forgot a line 2020-02-23 07:37:38 -05:00
alyosha-tas 38e9dc02b7 GBHawk: camera mapper 2020-02-23 07:34:55 -05:00
adelikat 959a06e6bb Apple II - add status of black/white apple keys to savestates 2020-02-22 15:01:56 -06:00
adelikat c77c5e1f8f update virtu.dll 2020-02-22 14:54:24 -06:00
YoshiRulz e5aceb8c94
(testing) Re-add <Reference/>s 2020-02-23 06:50:08 +10:00
YoshiRulz 57ab8356e5
Retarget Virtu to .NET Standard 2.0 + .NET Core 3.1 2020-02-23 06:27:26 +10:00
YoshiRulz 0dd5b2a80d
Migrate Virtu.csproj to new format 2020-02-23 06:24:48 +10:00
YoshiRulz 2b8c0edcc2
Reorganise *.props 2020-02-23 06:17:35 +10:00
YoshiRulz ef36c92bd2
Cleanup Virtu project file 2020-02-23 06:05:22 +10:00
adelikat c3811721c2 delete unused KeyTurbo.cs and misc small cleanups to InputAdapters 2020-02-22 12:44:03 -06:00
adelikat f9c6234262 oops 2020-02-22 12:37:12 -06:00
adelikat 5386b8b18c Client.Common cleanups - mostly using higher language features 2020-02-22 12:29:12 -06:00
adelikat 6bcbe11eae delete BizInstaller, it was never finished, and on no pace to actually be finished, and installing an emulator is dumb 2020-02-22 12:08:34 -06:00
adelikat 564f0d8557 delete 8 year old attic files. We can ressurect the attic if need be, but I think these things are officially bit rotted 2020-02-22 12:05:02 -06:00
adelikat 9e7bdd2424 cleanups in Bizware, mostly higher language features like null propagation and expression bodies 2020-02-22 12:02:40 -06:00
adelikat 9008bf269a O2 - remove peek/poke methods 2020-02-22 11:44:13 -06:00
adelikat 8a60043697 a7800 - misc simplifications, remove mapperBase peek/poke methods since they weren't being used and did not differ from read/write on any mapper 2020-02-22 11:42:50 -06:00
adelikat 33ad336b6a
Apple II - refactor states to use Serializer (#1859)
* apple II - poc to redo binary states to use the Serializer and pass it into virtu

* virtu - savestate logic for Video

* AppleII - serialize more components with AppleSerializer

* cleanup

* refactor MachineEvents to store delegates to call and have the calling code interact with an enum, prep work for serializing this class

* apple II - first attempt at serializing Machine events

* cleanup

* add isvblank to savestates

* put more things in savestates, cleanup

* cleanup

* cleanup, save more things

* cleanup, fixes

* cleanup, save more things

* virtu - savestate fixes

* cleanup

* save CurrentDisk in savestates
2020-02-22 09:53:56 -06:00
alyosha-tas 9831ca59bd GBHawk linked modes: implement power button 2020-02-22 09:19:05 -05:00
alyosha-tas 1b301862db GBHawk: Implement power button 2020-02-22 08:47:39 -05:00
feos ab119af113 update mgba submodule 2020-02-22 14:28:45 +03:00
feos 0a81dac965 add mem watchpoints to mgba 2020-02-22 14:28:45 +03:00
Asnivor 75188e1c85 O2Hawk: Add homebrew rom status identifier to gamedb manual entries 2020-02-21 09:47:26 +00:00
alyosha-tas 585ebd50e5 O2Hawk: uncomment some homebrew 2020-02-20 17:34:43 -05:00
YoshiRulz 9829fd699b Unify helpers for generating file extension lists (for open/save) 2020-02-20 21:59:20 +00:00
adelikat 512fed32db seimplify oddessey default mapper a bit 2020-02-20 15:57:38 -06:00
YoshiRulz f71cc532a8
Misc. cleanups 2020-02-21 07:05:13 +10:00
Asnivor b75b41ad64 Odyssey2: gamedb file generated from tosec 2020-02-20 11:07:48 +00:00
James Groom b7c0dc416f
Move issue template to the correct dir
not sure how this happened
2020-02-20 07:42:42 +10:00
alyosha-tas aa2f111ed2
Merge pull request #1855 from TiKevin83/master
fix Pokemon Crystal (JP)
2020-02-18 21:10:25 -05:00
adelikat 7cc4e3db7d add some default controls for odyssey 2, don't know how much of the keyboard is needed for typical games, but the numbers seem to be needed to start a game 2020-02-18 18:28:30 -06:00
adelikat d18893b06a Mainform - change O2Hawk menu to Odyssey 2 2020-02-18 18:06:23 -06:00
adelikat 4b704d5e31 add .o2 files for Odyssey2 to open rom dialog filter 2020-02-18 17:42:22 -06:00
TiKevin83 dc143c3d96 fix Pokemon Crystal (JP) 2020-02-18 17:34:49 -05:00
adelikat ae70577887 move get/set register logic from ChannelF to F3850 2020-02-18 16:30:38 -06:00
YoshiRulz be60911ff9
Cleanup StringExtensions 2020-02-19 08:26:08 +10:00
adelikat 9c15ca1369 HuC6280 -> spaces to tabs, and remove comments about not modifying directly since we dont' have the Cpu generator anymore (and no one listened to the warning anyway) 2020-02-18 16:24:29 -06:00
adelikat 943789c543 move Get/SetCputRegisters logic from Vectrex to MC6809 2020-02-18 16:18:15 -06:00
adelikat 0b388d669d PCE - implement IDebuggable.SetCpuRegister, and add flags to IDebuggable.GetCpuFlagsAndRegisters(), move logic to HuC6280 2020-02-18 15:58:39 -06:00
adelikat ae872d5c4f move Get/Set Register logic from Intellivision to CP1610 2020-02-18 15:45:49 -06:00
adelikat 8e261a7ddb move get/set cpu registers logic from O2Hawk to Intel8048 2020-02-18 15:40:57 -06:00
adelikat cdcc1eabde use inline out variables in Emulation.Cores 2020-02-18 15:10:29 -06:00
adelikat 4e03e14eea GBHawk - implement Get/SetCpuFlagsAndRegisters 2020-02-18 14:54:59 -06:00
adelikat a751aab744 GBLink 1,3,4 -> Implement Get/SetCpuFlagsAndRegisters, underlying GBHawk doesn't yet have it though so this technically does nothing 2020-02-18 14:08:23 -06:00
adelikat 8fbd375fd5 delete more ReadMe.txt files that just say TODO 2020-02-18 13:59:21 -06:00
adelikat 734dd9297d cleanup GBHawkLink4x 2020-02-18 13:56:44 -06:00
adelikat 721b150f78 cleanup GBHawkLink 2020-02-18 13:48:23 -06:00
adelikat 9418a57b54 cleanup GBHawkLink3x 2020-02-18 13:40:00 -06:00
adelikat 176b846f3b delete not so useful subneshawk ReadMe.txt 2020-02-18 13:23:38 -06:00
adelikat dedd618db4 subneshawk - delete a bunch of code by using the underlying core for services, cleanup, and implement some services that were missing 2020-02-18 13:19:17 -06:00
YoshiRulz 4d4496af0d
Remove WinForms dependency from BizHawk.Client.Common (used in ApiHawk) 2020-02-19 04:13:37 +10:00
YoshiRulz 3afcf416e8
Follow attribute class best practices, cleanup docs on attributes 2020-02-19 03:54:50 +10:00
adelikat 0ff2539da7 subneshawk - support DatachBarcode service 2020-02-18 11:52:24 -06:00
adelikat 09f90cc0a2 subneshawk - implement IDIsassemb 2020-02-18 11:46:34 -06:00
adelikat 3a7977413c subnheshawk - implement IBoardInfo 2020-02-18 11:42:41 -06:00
adelikat 3bf8752ab3 delete unused ElfRunner and ElfSharp dependency since we don't expect to use it for waterbox going forward, if we ever need to for some reason, we can ressurect it from this commit 2020-02-18 11:29:57 -06:00
adelikat 54ba1e12eb set get only properties in Emulation.Cores, and a few other simplfiications 2020-02-18 11:11:59 -06:00
adelikat 2ccf03fd44 use property initializers in some cores and some constructor cleanups 2020-02-18 10:54:39 -06:00
adelikat 665b331797 simplify AmstradCPC constructor and related code 2020-02-18 10:42:14 -06:00
James Groom 46a4d8ffa9
Retargetting non-executable projects to .NET Standard (#1801)
* Retarget BizHawk.Emulation.* to .NET Standard 2.0

* Retarget BizHawk.Bizware.BizwareGL to .NET Standard 2.0

In practice this mostly involves moving classes to BizHawk.Client.EmuHawk.
2020-02-18 10:31:49 -06:00
YoshiRulz fcc3ac88c0
Fix GitLab CI 2020-02-19 01:13:01 +10:00
J.D. Purcell ada40bbdc7 InputRoll: Cleanup horizontal column calculations. 2020-02-18 09:40:01 -05:00
Zach 61fff4cbce
Fix ffmpeg race condition. (#1841) 2020-02-18 07:25:52 -06:00
adelikat d3c048c13c simplify atari 7800 mapper code 2020-02-18 07:23:21 -06:00
adelikat 48c9ada3e7 some misc cleanups in atari 2600 mappers 2020-02-18 07:23:21 -06:00
alyosha-tas fd793322f9
Merge pull request #1853 from TiKevin83/master
Fix Console Sync for GB games on GBC/GBA
2020-02-18 08:18:37 -05:00
J.D. Purcell e27647e8cb InputRoll: Fix column click events going to wrong column in horizontal orientation. 2020-02-17 23:08:39 -05:00
J.D. Purcell 4386159b90 InputRoll: Fix columns headers not immediately redrawing when a rotatable column (horizontal orientation) changes size due to the row count changing. 2020-02-17 23:02:02 -05:00
J.D. Purcell 0245888419 InputRoll: Fix bottom grid line in horizontal orientation if last column is rotatable. 2020-02-17 22:03:38 -05:00
TiKevin83 9d0cd2bbf4 clean up some stray fields missing from the savestate system 2020-02-17 21:09:16 -05:00
adelikat 606c3bf1c2
use more advanced language features in Emulation.Cores (#1852)
* Use expression bodies in Emulation.Cores, and a few other misc cleanups

* remove unused usings in Emulation.Common

* cleanups in Tables_Direct.cs

* some cleanups in nes boards - redundant code

* remove some redundant array initializers in Emulation.Cores

* cleanup AmstradCPC.Controllers

* use object initializers in a lot of places

* nes mappers - remove disch's notes comments in favor of the nesdev wiki link

* cleanup CdtConverter.cs, mostly use of object initializers

* remove redundant .ToString() calls in Emulation.Cores

* using var in Emulation.Cores

* AmstradCPC/ZXSpectrum - simplify some linq, tabs instead of spaces, a few other misc cleanups

* Use null-propagation in Emulation.Cores
2020-02-17 16:54:51 -06:00
TiKevin83 612e1ef800 temp fix for traceback PC__READ_FIRST() calls conflicting with the prefetch fixes from upstream 2020-02-17 14:52:41 -05:00
TiKevin83 0a6a221653 Fix LCDC for DMG on CGB 2020-02-17 14:52:32 -05:00
TiKevin83 23c1c74030 Sinamas commits mostly done, just need to fix DMG games on CGB using LCDC 2020-02-17 14:52:26 -05:00
TiKevin83 85ee2af0b2 ~half the changes from Sinamas/GSR 2020 updates 2020-02-17 14:52:11 -05:00
TiKevin83 3b804b789a Update libgambatte platform target for building on windows 10 2020-02-17 14:49:49 -05:00
J.D. Purcell f7174eb398 Make display scaling apply to InputRoll column header widths. 2020-02-17 12:34:37 -05:00
alyosha-tas dd2b3509e5 O2Hawk: fix some colors 2020-02-16 21:55:21 -05:00
alyosha-tas b3fac6ba12 O2Hawk: fix color output 2020-02-16 21:04:28 -05:00
adelikat aa5cd2165b and oops 2020-02-16 18:07:12 -06:00
adelikat fe3b55f953 uh, what happened to this code in the merge? 2020-02-16 18:06:17 -06:00
adelikat 27352a6f8e add Get/SetCpuFlagsAndRegisters to Z80, and remove all the boilerplate from related cores 2020-02-16 17:55:40 -06:00
adelikat 969642b6c7 add Get/SetCpuFlagsAndRegisters to MOS6502X, and have cores point to that, instead of the same boilerplate in each core 2020-02-16 17:44:52 -06:00
adelikat 384f514445 misc cleanups in ZXSpectrum class files 2020-02-16 16:21:07 -06:00
adelikat b03b6eb9de convert spaces to tabs in some ZXSpectrum files 2020-02-16 16:10:26 -06:00
adelikat ae87aabbb0 Multidisk Bundler - hack to auto-select Game Gear, also reposition/size dropdown so you can read "Game Gear" 2020-02-16 16:06:00 -06:00
alyosha-tas 25d19cdb81 O2Hawk: sprite fix 2020-02-16 16:42:31 -05:00
adelikat bfe7eee43f IStatable - don't inherit IBinaryStateable, I think there was a plan with that interface but it doesn't really have connection with the service interface 2020-02-16 15:18:22 -06:00
adelikat 8a35fa5bcd core feature analysis - hack to not show ITextStatable 2020-02-16 15:14:23 -06:00
adelikat ef4c2119ba Odyssey2 - duplicate audio channel 2020-02-16 13:52:47 -06:00
adelikat d1266aa82d fix coleco and oddessy2 text states 2020-02-16 13:41:10 -06:00
adelikat 8a5c3f443b subneshawk - opt out of text states 2020-02-16 13:40:43 -06:00
adelikat fb37ebc71e fix ti-83 savestates 2020-02-16 13:33:47 -06:00
adelikat d72dabd732 fix vectrex text states 2020-02-16 13:32:26 -06:00
adelikat c29136cacb fix intellivision text states - another duplicate value saved 2020-02-16 13:30:17 -06:00
adelikat 77598ce2b2 GBHawkLink cores - opt out of text states 2020-02-16 13:25:44 -06:00
adelikat da8199160d GGHawkLink - opt out of custom text states 2020-02-16 13:21:28 -06:00
adelikat 06d92f9824 if sms text states 2020-02-16 13:15:59 -06:00
adelikat 04a185101a fix gbhawk text states, had to leave duplicate data just with a different key name, in order to keep backwards compatibiliy with old binary states 2020-02-16 12:55:32 -06:00
adelikat aa6654cf9d fix a7800hawk text savestates 2020-02-16 12:51:55 -06:00
adelikat 027dc01c8b
create StateSerializer as a base implementation of IStatable (#1850)
* create StateSerializer, an ITextStatable implementation using the Serializer class, and wire it up to the TI83 core

* wire StateSerializer to A2600 core

* wire up StateSerializer to AmstradCPC, C64, and ZXS

* wire up StateSerializer to MSX, A27800, and Coleco

* wire up state serializer to ChannelF, Vectrex, Intellivision

* fix GambatteLink to implement ITextStatable, implement TextSerializer in O2

* StateSerializer - wire up a loadstate callback and implement StateSerializer for NesHawk, a bit of rework to subNesHawk as a result

* fix subneshawk text savestates

* StateSerializer - implement byte[] buffer storing (optionally), wire up to PCE

* implement StateSerializer to SMS, tweak GGLink accordingly

* implement StateSerializer in GBHawk, fix link cores accordingly

* StateSerializer - use Serializer static methods to create serializers
2020-02-16 12:05:57 -06:00
alyosha-tas b8614dc3d4 O2Hawk: Misc bug fixes 2020-02-16 10:51:07 -05:00
alyosha-tas eb03f28e99 O2Hawk: fix noise bit 2020-02-15 21:38:57 -05:00
alyosha-tas 54542ffd6d O2Hawk: fix collision detection 2020-02-15 18:06:54 -05:00
adelikat 4b50ea36e1 remove MemDomain CanPoke() extension method now that all it does is check the Writable flag which is better named and more conscise 2020-02-15 12:37:39 -06:00
adelikat 656f2b814e Move IEmulator extensions to the Emulation.Common namespace, the intent is that these are used and serve as built in functionality, so it's overly tedious to when most situations require both Common and an additional extensions namespace 2020-02-15 12:33:15 -06:00
adelikat dd3b35a9fe cleanup BizHawk.Emulation.Common/Extensions 2020-02-15 12:22:16 -06:00
adelikat 4711546e4a fix Rewind & States config dialog saying aborted after Ok btn is clicked 2020-02-15 12:14:32 -06:00
adelikat fc8a90f433 we should probably use clone here 2020-02-15 11:54:23 -06:00
adelikat 4b7a7dd293
Make Binary states default and Textstates opt-in for cores (#1848)
* Rewind & State config - remove the default option

* remove the savestate type of default, not that this is a breaking config change for anyone that had specifically set savestates to text

* remove BinaryStatesPreferred from IStatable and use config setting when starting movies from "Now" in record movie dialog

* remove BinaryStatesPreferred from cores

* make text savestates an extension method off of IStatable and an inteface ITextStatable it uses if the core implements it. This will allow cores to opt in to text states if desired

* make cores with actual text savestate impleemntations get ITextStatable, remove text state logic from cores that just have a binary as as text implementation
2020-02-15 10:22:26 -06:00
adelikat 2d637b6d1d rip out mainform context menu items for changing savestate type - we don't have those in the regular menu item anymore, and the menu items had no click events so they didn't work anyway 2020-02-14 11:20:38 -06:00
adelikat 8d662fcee3 more nitpicks in nes savestate code 2020-02-14 10:20:27 -06:00
adelikat e57be44fd0 nes savestates - dispose of IDisposables, simplify a bit 2020-02-14 10:12:52 -06:00
adelikat b3a80965af
Virtu cleanup (#1846)
* virtu - tabs instead of spaces

* virtu - use nooget for Newtonsoft.Json

* virtu - target .net 4.8

* resharper - target C# 8

* virtu - remove unused usings

* virtu - remove some unused code

* virtu - cleanups

* virtu - trace logging - add flags to trace logs

* virtu - cleanups

* virtu - misc cleanups

* virtu - make some stuff internal and simplify the api some

* virtu - clock down more things and simplify api more

* virtu - lock api down more

* virtu- simplify, breaks older savestates however

* virtu - simplify more

* virtu - cleanup

* virtu- more cleanup

* virtu - reorg some files

* virtu - more cleanup

* virtu - more reorg

* virtu - more reorg

* virtu - make more things internal instead of public

* virtu - make more things internal

* virtu - update dll

* cleanup

* virtu - reorg

* virtu - remove unitialize from machine component since nothing was utilizing it

* virtu - simplify api

* virtu - cleanup

* virtu - cleanup and lock things down

* virtu - lock down and cleanup

* virtu - cleanup

* virtu - simplify - breaks savestates

* virtu - make PeripheralCard an interface with default implementation, breaks savestates

* virtu - minimize use of machine component

* virtu - cleanup

* virtu - start minimizing dependencies

* virtu - cleanup

* virtu - simplify

* apple II - simplify

* virtu - move some biz logic into bizhawk

* virtu - git rid of MachineComponent

* virtu - delete no longer needed code

* virtu - reorg

* move serialization logic out of virtu and into bizhawk, this was our shenanigans

* virtu - some small cleanups

* virtu - simplify

* virtu - dependency minimization

* virtu - minimize dependencies

* minimize dependencies

* virtu - move drivelight property into component that controls it

* virtu - minimize dependencies

* virtu - minimize depenencies

* move some machine logic to memory class

* move some initialize logic into constructor

* move initialize logic to constructor

* move logic from Initialize to constructor

* move initialize logic to constructor, simplify api to bizhawk

* dll

* virtu - movie some logic back into bizhawk

* virtu - move Lagged property from machine to memory component

* move more biz logic from virtu to biz

* virtu - slight reorg

* virtu - move some reset logic to constructor

* virtu - move some stuff around

* virtu - declare dependencies in memory class, no more dependencies on the machine class

* move slots from machine to memory class

* move some properties from machine to memory

* move more things into the memory class

* remove Machine.cs from virtu and make an equivalent container in bizhawk

* virtu - cleanup

* interface the cassette class and create a biz empty cassette "implementation"

* move some more dummy logic from virtu to biz and put an interface in virtu

* virtu - use an interface for a dependency

* virtu - interface more things

* virtu - more interfacing of things

* virtu - interface more things

* apple II/virtu - some reorg

* virtu - cleanup

* virtu - remove unused usages of disk name in disk classes

* virtu- cleanup and simplify api

* virtu - remove unused BootDrive property

* virtu - cleanup and interface more

* cleanup

* update virtu dll
2020-02-14 09:54:35 -06:00
zeromus 758a3e0f15 new octoshock dll 2020-02-09 23:50:45 -05:00
zeromus 28ae6d4413 octoshock: fix up some mess in port wiring. should fix #1787 but I'm not completely sure.
also BEWARE: note the change to UpdateInput(). This was a brain-dead mistake as far as I can tell (just look at it, it seems obvious), and it came from a commit where I said "I tested it for 20 seconds" so it was probably rushed. However, fixing this to something sensible MAY affect sync. If it's important, we could roll it back. However I think UpdateInput is more like a "latch user input" than a "tick internal counters" so it may be safe
2020-02-09 23:50:37 -05:00
zeromus 4dd3a9137e ummm.. more octoshock 2019 cleanup. missed this somehow 2020-02-09 23:36:05 -05:00
zeromus 4617476bcd SharpCompressArchiveHandler: throw fewer exceptions 2020-02-09 23:27:09 -05:00
zeromus e4f94fab8e update octoshock: use vs2019, only support x64, and don't use upx (nothing else does) 2020-02-09 23:26:59 -05:00
YoshiRulz 0075693ec7
Undelete important files and remove no longer needed <None/>s
fixing up 5b7b65724
2020-02-09 05:17:19 +10:00
adelikat d7f97b1539 actually delete things instead of removing them from the project 2020-02-08 13:09:27 -06:00
adelikat 5b7b65724a Remove some files that were dereferenced from EmuHawk.csproj but not actually deleted from version control 2020-02-08 12:54:43 -06:00
adelikat f5c5061681 get rid of CpuCoreGenerator as it hasn't been used in a long time, the 6502 is commented out and isn't even the class used anymore, and the HuC6280 is very out of date, we don't do it this way anymore 2020-02-08 11:58:00 -06:00
adelikat 9d4ef3a3af cleanup WonderSwan.ISettable 2020-02-08 11:23:58 -06:00
adelikat 192973dcd7 Tastudio - hide N64 "fake analog" controls by default 2020-02-08 11:03:03 -06:00
feos 8b59754349 warn about mismatching cycle counts for gambatte 2020-02-08 20:02:00 +03:00
adelikat f43d7c5b1b MovieSession - add a PopupMessage method, will be used later 2020-02-08 10:50:05 -06:00
adelikat 4fed717858 some cleanup of RomLoader.cs 2020-02-08 10:46:46 -06:00
adelikat 01640e8c0b cleanup CoreInventory.cs 2020-02-08 10:07:54 -06:00
adelikat 29cddca49a use globals a bit less 2020-02-08 09:12:45 -06:00
feos 08ee1c8170 show proper movie length for cycle based timing (gambatte) 2020-02-08 15:36:21 +03:00
alyosha-tas 9d0f7568d4 A2600 finish keyboard controller 2020-02-07 16:18:50 -05:00
YoshiRulz 5d45682207
Add template for new GitHub Issues 2020-02-08 06:58:23 +10:00
Zach ef18c1a3a6
Fix Macro Functionality (fixes #1838) (#1839)
* Initial fixes for macro menu items

* Arguments for this constructor can't be optional.
2020-02-07 13:45:13 -06:00
alyosha-tas 75ead6e3c4 GBHawk: put CGB flag into bk2 for proper parsing 2020-02-07 07:40:33 -05:00
Asnivor 0b6210efb3 MSXHawk: Add gamedb files parsed from TOSEC 2020-02-07 11:24:14 +00:00
Asnivor f9d29a0d98 DATParser: Give DP priority on initial screen 2020-02-06 14:53:30 +00:00
YoshiRulz 02dc42d453
Use MSBuild to copy output instead of bash in external tool template 2020-02-06 23:51:46 +10:00
alyosha-tas d9243fe15d MSX: fix 2020-02-06 06:56:29 -05:00
adelikat ba7fd37ce8 some nitpick cleanups 2020-02-05 18:58:57 -06:00
YoshiRulz c0fcd01b69
Yet more work on AutoGenConfig 2020-02-06 05:19:40 +10:00
alyosha-tas 6d93fe03f5 MSXHawk: more testing options 2020-02-05 07:55:01 -05:00
feos ca33a0ac9d it actually makes sense to commit things you wanna test 2020-02-04 11:09:57 +03:00
feos 8ff2ca2cd1 update gliden
bugs I saw in perfect dark seem to be present in the previous update too, so ugh
2020-02-04 10:27:10 +03:00
feos 277b302437 tweak mgba hooking 2020-02-04 10:27:09 +03:00
adelikat a9a85fccb9 Profile config - simplify logic by applying settings in layers. Also tweak a few settings for some of the profiles that were likely mistakes hard to see when there was so much copy pasta 2020-02-03 19:31:06 -06:00
adelikat 5b2b72ce9e profile config - break up config setting into separate methods 2020-02-03 19:06:27 -06:00
adelikat e770047eef profile config - rip out code for the custom profile that never got implemented 2020-02-03 17:51:07 -06:00
adelikat dc2a41c737 Lua console - clear on screen text when closing lua console 2020-02-03 17:20:49 -06:00
adelikat 38a525eefd Lua console - immediatley update on screen graphics when disabling a lua script 2020-02-03 17:17:11 -06:00
alyosha-tas 71d68e4bea MSX: use JP bios for now 2020-02-03 17:32:32 -05:00
alyosha-tas 5252532c36 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2020-02-03 17:29:50 -05:00
alyosha-tas 7b55157e10 MSX: add some starting firmware options 2020-02-03 17:28:45 -05:00
alyosha-tas ec3506ab29
Add MSXHawk DLL 2020-02-03 17:27:44 -05:00
feos 16045e35fc add EXP void BizSetExecCallback(void(*callback)(uint32_t pc)) to mGBA 2020-02-03 22:51:34 +03:00
adelikat 185d4ad2a2 add icon for mGBA 2020-02-03 13:42:33 -06:00
feos 340fe48f3a finish mgba tracer 2020-02-03 22:23:35 +03:00
adelikat 626efe8caf put control extension methods into the EmuHawk names space isntead of a custom one. We want these to be found and used, and most dialogs use them 2020-02-03 12:54:32 -06:00
adelikat c2bec296e6 simplify some repeated boilerplate on the DragEnter event by consolidating it to an extension method 2020-02-03 12:42:28 -06:00
feos b1be2f5937 bump mgbahawk version 2020-02-03 12:55:19 +03:00
feos 335a55306f mGBA trace logging 2020-02-03 12:50:41 +03:00
YoshiRulz fd06504882
More work on AutoGenConfig 2020-02-03 06:14:09 +10:00
adelikat 74e63cd566 Tastudio - some reorg 2020-02-02 13:32:22 -06:00
adelikat 6990b6f51f when loading GB/GBC movies, store the core and auto-switch between gamebatte and gbHawk, fixes #1805 2020-02-02 12:27:45 -06:00
adelikat 880f584674 cleanup variable naming in IMovieSession 2020-02-02 12:19:41 -06:00
adelikat bfd33e5399 separate out lua and ram watch on screen message lists so they can't clobber each other, fixes #1831 2020-02-02 12:09:13 -06:00
adelikat 45221eb0ad do non-timeline movie state logic after the core is loaded, fixes input display when loading a state in read-only mode, which has been broken since 2014 2020-02-02 11:52:05 -06:00
adelikat 4c9ebf6ed4 MovieSession - rename hacky step 1 and 2 to meaningful names 2020-02-02 11:39:54 -06:00
adelikat 8f7b0aaac9 Movie Session - move some logic out of hacky step 1 and into hacky step 2 2020-02-02 11:38:12 -06:00
adelikat 8c99e87867 MovieSession - cleanup 2020-02-02 11:06:30 -06:00
adelikat 32f638107d delete unused code in MovieSession 2020-02-02 11:04:29 -06:00
adelikat 40cd2f93df meh 2020-02-02 10:29:13 -06:00
adelikat d2c191b394 properly delete working types 2020-02-02 10:09:29 -06:00
adelikat 65249954b9 Revert "Remove WorkingTypes from compilation"
This reverts commit 0eef93afbf.
2020-02-02 10:08:09 -06:00
YoshiRulz 0eef93afbf
Remove WorkingTypes from compilation 2020-02-03 01:59:32 +10:00
feos a827b6f350 update mgba to 0.8 2020-02-02 18:34:16 +03:00
feos d6a74e4493 mame: test 2020-02-02 18:34:16 +03:00
adelikat 226c4b32ac Fix Movie.IsPlayingOrRecording() - fixes input dsiplay during record mode, as well as a lot of other things probably, partially addresses #1802, replay mode still broken and has been for a few releases now 2020-02-01 17:25:36 -06:00
adelikat b3cc55080f Ram Search - use SignExtendAsNeeded in more places, fixes #1819 2020-02-01 16:41:28 -06:00
adelikat 58ff3fa60d Tastudio - remember the "Bind Markers to input" settings as a tastudio setting 2020-02-01 16:21:38 -06:00
adelikat e7399a5e10 oops, add code lost in designer shenanigans 2020-02-01 15:47:49 -06:00
adelikat 67ec75f644 Basic Bot - don't display messages while botting, recalculate Start enable on max value change, add checkbox to wire to mainform's invisible emulation for faster botting (possibly) 2020-02-01 15:43:06 -06:00
adelikat 1836ad86b6 Basic bot - if bot is unable to run and a message box is shown, show a specific error as to why it can't, instead of a generic error 2020-02-01 15:02:32 -06:00
adelikat 285c251135 Basic Bot - default to >= operator for main value 2020-02-01 15:02:32 -06:00
adelikat 063e3b2a13 revert foreach loop in MemoryCallbackSystem - see #1823 2020-02-01 14:53:03 -06:00
feos e83f3717ad rebuild mgba without mgba-util/dllexports.h dep 2020-02-01 11:48:18 +03:00
YoshiRulz 593e1ef97d
Refactor external tool attributes 2020-02-01 01:54:23 +10:00
zeromus 3143c38b7d fix lua bit.arshift (fixes #1825) 2020-01-31 00:36:01 -05:00
alyosha-tas 8cb19ede1c MSXHawk: controller selection 2020-01-30 20:18:24 -05:00
YoshiRulz 1fdb7a6fe2
Allow external tools to have any namespace / class name if annotated
This change is more convenient at the cost of a little duplicate code in
ToolManager. The annotation is [ExternalToolEntryPointForm], and having no more
than one such class per assembly is enforced.
2020-01-30 23:41:52 +10:00
YoshiRulz eab44d2d94
Add hack to EmuApi, add WIP external tool AutoGenConfig 2020-01-30 22:41:50 +10:00
alyosha-tas f08013e312 msxHawk: optimiations 2020-01-29 16:37:00 -05:00
alyosha-tas ca4ff674ec Vectrex: duplicate audio channel 2020-01-29 16:32:08 -05:00
YoshiRulz 580fe04ad6
Resurrect DBMan as an external tool 2020-01-29 20:43:18 +10:00
YoshiRulz 92dfcbffd4
Fix typo 2020-01-29 20:14:45 +10:00
YoshiRulz 7950605676
Migrate HelloWorld to new csproj format and cleanup 2020-01-29 16:08:44 +10:00
YoshiRulz 2c74b1a693
Properly fix assembly loading issue, retarget BizHawk.Common again
temp fix was 9ffef2531
2020-01-29 00:23:10 +10:00
alyosha-tas 0c46a6908f MSXHawk: keyboard 2020-01-28 07:50:29 -05:00
YoshiRulz ce79ec83d7
Maybe fix CI 2020-01-28 13:27:58 +10:00
zeromus ae795e1f96 we have to use AnyCpu in order for winforms designer to work 2020-01-27 21:44:40 -05:00
Asnivor 09dc6ad7eb VectrexHawk: Update GameDB with everything from NOINTRO and TOSEC (including region and rom status) 2020-01-27 14:07:56 +00:00
adelikat 07239d6678 BasicBot - cleanup and simplifications 2020-01-26 13:48:15 -06:00
adelikat 3287a0c465 account for new name of PSX controller in controller config, delete standard controller image since we no longer have variable name controllers anyway, fixes #1814 2020-01-26 13:27:57 -06:00
adelikat 51b68bcdf5 fix controller config image for SMS 2020-01-26 13:18:17 -06:00
adelikat e6e1962b54
Convert SMS settings to use GenericCoreConfig (#1816)
* refactor Sms settings including naming conventions and fix a typo, breaks configs with SMS settings already saved

* convert SMS controller type setting to an enum

* convert SMS Region setting to an enum

* Move SMS display type setting to an enum

* convert sms settings to properties

* SMS - wire up generic core config to a settings menu item

* remove some SMS menu items that are redundant to generic settings config

* remove more SMS menu items that are now redundant to generic core config

* remove more redundant SMS settinsg including SMSGraphicsConfig dialog, add descriptions and display names to SMS settings objects
2020-01-26 12:56:54 -06:00
YoshiRulz 215de3c0c0
Make Roslyn Analyzers opt-in at compile-time (resolves #1813)
They are still run by the IDE at design-time. To opt-in, set the MSBuild
property MachineRunAnalyzersDuringBuild. From the command-line, you can do this
by adding `/p:MachineRunAnalyzersDuringBuild=true`.
2020-01-26 10:34:07 +10:00
alyosha-tas 551a7e2893 MSXHawk: cleanup and bug fixes 2020-01-25 19:10:48 -05:00
adelikat cce1fb6123 add default controls for vectrex 2020-01-25 15:47:29 -06:00
adelikat 9ffef2531d put BizHawk.Common back to framework for now, fixes Enum properties used in the PropertyGrid throwing exceptions about not being able to find System.ComponentModel 2020-01-25 15:37:27 -06:00
adelikat e9be088105 vectrex - hide settings tab since there are no settings 2020-01-25 15:13:03 -06:00
adelikat 3b5d0ab231 Virtualpad - Saturn - add previous and next buttons to console buttons, fixes #1703 2020-01-25 14:32:33 -06:00
adelikat 415dd5375b Virtualpad - use a reasonable size for the standard controller 2020-01-25 14:26:57 -06:00
adelikat 791498bb7e rename SatSchema.cs to SaturnSchema.cs 2020-01-25 14:22:04 -06:00
adelikat 1fa0882f8e nitpick some virtual pad schema class names 2020-01-25 14:21:36 -06:00
adelikat ecd6e7c199 misc cleanups in DiscoHawk 2020-01-25 13:43:59 -06:00
adelikat 45e0abe39d convert Config.cs from fields to properties 2020-01-25 12:35:33 -06:00
adelikat 90e1a89516 rename config variable to match type name 2020-01-25 11:44:58 -06:00
adelikat 6527b98476 TasSTateManager - at least consolidate the Global usage problem, until there's a solution to be found 2020-01-25 11:40:43 -06:00
adelikat 3ce88eaa3b pass config settings into TasSTateManager instead of using Global.Config, now TasMovie incorreclty uses Global.Config, but that's a step 2020-01-25 11:35:33 -06:00
adelikat 763d5870f2 move some lua console settings from config to console with ConfigPersist 2020-01-25 11:21:38 -06:00
adelikat 14b6efec57 PathEntry - some cleanups 2020-01-25 11:12:10 -06:00
adelikat 73ba93663a cleanup MessagePosition.cs 2020-01-25 11:07:35 -06:00
adelikat 323c0edcd9 rename config file to match class 2020-01-25 11:06:05 -06:00
adelikat ef13754f79 consistent variable naming in config.cs 2020-01-25 10:57:39 -06:00
YoshiRulz 24e6cc14f0
Enable SA1206 and fix noncompliance
"Declaration keywords should follow order"
2020-01-25 19:37:28 +10:00
YoshiRulz f061e4f876
Enable SA1209 and fix noncompliance
"Using alias directives should be placed after other using directives"
2020-01-25 19:37:24 +10:00
YoshiRulz 19b1578df9
Enable SA1200 and fix noncompliance
"Using directives should be placed correctly"
i.e. before and outside namespaces as per .stylecop.json
2020-01-25 19:36:49 +10:00
YoshiRulz b2a3477f52
Enable SA1123 and fix noncompliance
"Do not place regions within elements"
2020-01-25 18:06:56 +10:00
YoshiRulz d9d6ed76f4
Enable SA1115 and fix noncompliance
"Parameter should follow comma"
i.e. no newlines in param list
2020-01-25 18:06:54 +10:00
YoshiRulz b80dd2fab7
Enable SA1113 and fix noncompliance
"Comma should be on the same line as previous parameter"
2020-01-25 18:06:50 +10:00
YoshiRulz b1e02fbdce
Enable SA1106 and fix noncompliance
"Code should not contain empty statements"
i.e. don't put a semicolon there
2020-01-25 18:06:34 +10:00
YoshiRulz 6f3f01125c
Enable SA1504 and fix noncompliance
"All accessors should be single-line or multi-line"
i.e. no block form on one line
2020-01-25 14:56:56 +10:00
YoshiRulz f6365a03e2
Por que no los dos? 2020-01-25 14:56:39 +10:00
alyosha-tas ca73e769ed MSXHawk: joystick controls 2020-01-24 22:30:48 -05:00
adelikat b7869c2c70 revert back to 1024 * 1024, but in a way that makes stylecop happy 2020-01-24 20:11:37 -06:00
adelikat 548ff15e33 Break off rewind config variables into their own class 2020-01-24 20:03:54 -06:00
alyosha-tas 263fdfebc3 MSXHawk: audio 2020-01-24 19:47:16 -05:00
YoshiRulz bfde89b9f3
Enable SA1139 and fix noncompliance
"Use literal suffix notation instead of casting"
2020-01-25 07:55:48 +10:00
YoshiRulz 14d088f907
Migrate remaining StyleCop config and enable StyleCop analyzer 2020-01-25 07:21:49 +10:00
alyosha-tas 5152e47b5e MSXHawk:Start loading roms 2020-01-23 20:09:45 -05:00
YoshiRulz 4ed402fc59
Cleanup some more files 2020-01-24 09:37:15 +10:00
YoshiRulz 3ae58fd9d6
Use SolutionDir to make relative paths absolute
No need for warning of relative paths in filename anymore
2020-01-24 04:59:27 +10:00
YoshiRulz 3537c516fb
Configure StyleCop (not running) and revert using-inside-namespace 2020-01-24 04:40:46 +10:00
alyosha-tas 7da04e2bf2 MSXHawk: allocate memory because pointers may be bad due to garbage collection somehow 2020-01-23 09:01:44 -05:00
YoshiRulz 751ef54f4f
Fix typo in ToFloatBuffer 2020-01-23 15:54:26 +10:00
YoshiRulz abba7fbb78
Cleanup Ranges and SimpleTime 2020-01-23 15:53:19 +10:00
YoshiRulz ff2efca658
Cleanup Util 2020-01-23 14:54:34 +10:00
YoshiRulz 8de0355228
Prepare for nullability annotation in BizHawk.Common
attributes: https://docs.microsoft.com/en-us/dotnet/csharp/nullable-attributes
2020-01-23 14:54:29 +10:00
YoshiRulz 97cb9b47f1
Retarget BizHawk.Common to .NET Standard 2.0 2020-01-23 14:54:26 +10:00
YoshiRulz c7801b8ce2
Move BizHawk.Common.BizInvoke namespace to separate project 2020-01-23 14:54:23 +10:00
YoshiRulz 5a3f4ab1b3
Use File.Copy in InstanceDll instead of manipulating streams 2020-01-23 14:54:13 +10:00
zeromus e7a1638e00 SNES CDL - set DMAData flag for dma reading rather than leaving nonsense flags (fixes #1409) 2020-01-22 22:01:04 -05:00
alyosha-tas c171505d64 MSXHawk: start converting to actual msx machine 2020-01-22 19:26:08 -05:00
adelikat d70afbb643 DbMan begone! 2020-01-21 15:35:41 -06:00
YoshiRulz 165c2a0e2e
Merge BizwareGL.SlimDX into BizwareGL 2020-01-22 07:21:22 +10:00
YoshiRulz 87833d76d7
Merge GdiPlus and OpenTK into BizwareGL 2020-01-22 07:05:50 +10:00
YoshiRulz 8cf2f5d915
Hide unused class and interface 2020-01-22 06:48:14 +10:00
YoshiRulz 5a48612346
Concat event arg and delegate types into one file 2020-01-22 06:16:11 +10:00
YoshiRulz df5a382b76
Move disc hashing to PSX class, remove unused project dependency 2020-01-22 05:56:59 +10:00
YoshiRulz 7e727fc77c
Move CRC32, remove unused project dependencies 2020-01-22 05:49:18 +10:00
adelikat 84f91bfcf7 nitpicky cleanups in RewindConfig 2020-01-21 13:42:17 -06:00
adelikat 23a5780d0d DefaultControls - make properties instead of fields 2020-01-21 13:42:17 -06:00
adelikat e30eb0cde6 break off settings methods from config to extension methods 2020-01-21 13:42:17 -06:00
adelikat 86078addd4 move DefaultControls class to its own file 2020-01-21 13:42:17 -06:00
YoshiRulz e4827929b8
Parse float with invariant formatting (resolves #1806) 2020-01-22 04:40:16 +10:00
YoshiRulz 69d58d00e1
Fix typo 2020-01-22 03:01:03 +10:00
adelikat 04a5db6214 break AnalogBind out of Config.cs into its own file 2020-01-21 09:21:12 -06:00
adelikat 2182b6b35d move CDL config variables out of Config.cs and use ConfigPersist 2020-01-21 09:02:42 -06:00
adelikat 3d833af617 break out enums from Config.cs 2020-01-21 09:02:42 -06:00
alyosha-tas 679efd91c4 MSXHawk: minor cleanup 2020-01-20 19:50:32 -05:00
alyosha-tas 3efa95df51 MSXHawk: some cleanup 2020-01-20 17:52:35 -05:00
zeromus 1c2453088f remove msvcr 2012 bootup check 2020-01-20 17:29:10 -05:00
zeromus 7a903f15df update mupen dlls to remove msvcr 2013 dep.
note, I did a sloppy job here.
1. The mupen projects werent upgraded
2. I didn't commit the libs from the upstream mupen deps repo
3. I renamed some of the dlls from the upstream mupen deps repo to match what we expected on account of using the old libs
4. zlib is here twice because the new libpng16.dll depends on zlib.dll and our mupen parts depend on zlib1.dll/freetype26.dll

but this will do the job until the great mupen update probably
2020-01-20 17:26:30 -05:00
adelikat 9f06e442ab move hex editor colors from Config to the tool itself using ConfigPersist 2020-01-20 15:58:32 -06:00
YoshiRulz b1ef7bcbbb
Retarget .NET Framework from 4.6.1 to 4.8 2020-01-21 04:42:09 +10:00
alyosha-tas 6b99a792b9 MSXHawk: Z80 with prebuilt instruction tables 2020-01-19 22:41:41 -05:00
YoshiRulz ebfccf51de
Add DependentUpon and SubType modifiers to globbed files 2020-01-20 10:29:27 +10:00
zeromus 03b6f6cb21 new bsnes wbx.gz 2020-01-19 18:43:54 -05:00
zeromus c2c526e84b CDL: fix bsnes SGB cdl totally not working (fixes #1344) 2020-01-19 18:43:54 -05:00
zeromus 6377d78098 firmwares open folder:
don't know what was going on here, but we can't browse to a folder without it existing.
I think the best thing to do in this case is to prompt the user if it doesnt exist and offer to create it
But we don't really do this in very many places so it isnt worth the trouble to make a nice solution for it.
Anyway this commit will make it stop CRASHING on new bizhawk installs, generally, which is an improvement
2020-01-19 18:43:54 -05:00
zeromus fd960e03fe CDL: add CARTROM logging for many more cases, including superfx (should fix #1597) 2020-01-19 18:43:54 -05:00
zeromus c7dbed306a add build.sh 2020-01-19 18:43:54 -05:00
zeromus a5e8ae88ed add cpu X and M flags to CDL for ExecFirst (fixes #1410, I hope) 2020-01-19 18:43:54 -05:00
alyosha-tas 7d34bdbeb0 MSXHawk: cpu work 2020-01-19 18:39:56 -05:00
adelikat c9c2210e91 config cleanup - ToomFactors -> ZoomFactors, break class into separate file, use dictionary intializer 2020-01-19 17:37:46 -06:00
YoshiRulz 4af0d0eed3
Update default kotkey binds (controller binds updated in fe0ff1d98) 2020-01-20 07:09:16 +10:00
YoshiRulz 24f69abb1b
Return to manually listing <Compile/> in Version
Fixes bug from 5b4b85d2b
2020-01-20 07:08:47 +10:00
adelikat b1d5a4d644 Convert TI83 keypad to use IToolFormAutoConfig and ConfigPersist 2020-01-19 13:48:26 -06:00
adelikat 6e5a3910de ControllerDefinition - auto-initialize properties 2020-01-19 13:32:43 -06:00
alyosha-tas 0dbd6e7481 MSHawk: inputs 2020-01-19 09:08:20 -05:00
alyosha-tas 59a22415d2 MSXHawk: working savestates 2020-01-19 08:39:21 -05:00
YoshiRulz 5b4b85d2b2
Remove svnrev.cs from repo and just assume it's there
Reverts 4e5f7e40e. In hindsight this was the obvious, easy solution to the error
in fresh clones. For the record, VS will still complain that the class is
missing on a fresh clone *before compiling*, but now the first compile will
succeed as well as subsequent compiles.
2020-01-19 13:02:02 +10:00
alyosha-tas e898866ab2 MSXHawk: cpu savestates 2020-01-18 21:02:29 -05:00
alyosha-tas 35e2f7417d MSXHawk: start savestates 2020-01-18 19:27:06 -05:00
adelikat 10e2f24210 TasMovie - private setter for a variable 2020-01-18 17:30:40 -06:00
adelikat 3414cc1d33 Merge branch 'release' 2020-01-18 16:19:03 -06:00
adelikat 16f5da9f9c update version info 2020-01-18 16:16:18 -06:00
alyosha-tas eaf8e52746 MSXHawk: Audio 2020-01-18 17:04:55 -05:00
adelikat 1cd5675ce0 Tastudio - fix crash when trying to use alt+drag after autoloading a .tasproj 2020-01-18 15:59:37 -06:00
adelikat 41c4c8a951 oops 2020-01-18 15:52:01 -06:00
adelikat a08c0a394c Tastudio - better tracking of which frame to invalidate from when input painting, fixes #1790 2020-01-18 15:48:33 -06:00
adelikat f9435fb17f Lua - tastudio.applyinputchanges() - always refresh tastudio - fixes #1799 2020-01-18 14:53:12 -06:00
adelikat 67ff6abb17 Tastudio - fix clone input when cloing multiple rows 2020-01-18 13:35:22 -06:00
adelikat 1519110691 Always refresh the APIHawk library instances instead of checking for null, fixes #1791 2020-01-18 13:22:19 -06:00
YoshiRulz 80f363196a
Hide NuGet temp files 2020-01-19 04:58:50 +10:00
YoshiRulz 4e5f7e40e9
Add (nearly) empty file to ensure implicit **/*.cs glob matches it 2020-01-19 04:49:33 +10:00
YoshiRulz e435fb807b
Migrate to "new csproj", remove unnecessary tags/info, and dedupe
Didn't want to mess with resource generation so the execuable projects didn't
get migrated, just cleaned up
2020-01-19 01:43:39 +10:00
adelikat 246efa4c86 Tastudio - remove config option to turn off input painting, there's no reasonable scenario where no painting is better, some other slight cleanups 2020-01-17 16:04:01 -06:00
alyosha-tas 9b07813e09 MSXHawk: Bug fix 2020-01-17 10:18:22 -05:00
adelikat 45003ea584 revert "Use Ranges" on TasMovie since it causes exceptions when attempting to create the first branch of a tasproj 2020-01-17 09:00:56 -06:00
alyosha-tas c27bea3272 MSXHawk: Finish trace logger and add some memory domains 2020-01-16 20:08:50 -05:00
alyosha-tas 6637510379 MSXHawk: More trace logger and bug fixes 2020-01-16 18:53:11 -05:00
YoshiRulz 1c3e823ea2
Allow immutable=>immutable range copy 2020-01-17 06:33:43 +10:00
YoshiRulz 49c7acb3aa
Fix UI crash on Unix when loading External Tools submenu 2020-01-17 06:29:09 +10:00
YoshiRulz 692eb5ea89
Add HelloWorld tool to repo, add build scripts, fix bugs in HelloWorld 2020-01-17 06:17:59 +10:00
alyosha-tas ce7d6cdcf5 MSXHawk: Tracer Support 2020-01-15 20:47:50 -05:00
alyosha-tas 1e195243be MSXHawk: frameadvance, no video or sound yet 2020-01-15 14:25:24 -05:00
alyosha-tas 2035fb5ccd MSXHawk: clean up memory structure 2020-01-15 08:39:50 -05:00
YoshiRulz fe0ff1d983
Update default keybinds (incl. X* for controllers) to OpenTK values
Fixes N64 keybinds being blank since eb1d87933; does not remove DirectInput J*
controllers
2020-01-15 09:49:42 +10:00
alyosha-tas 3f59a704a2 GBHawk: correct frame rate to 59.72 (same as gambatte) 2020-01-14 18:32:26 -05:00
adelikat 8da1bb4e73 cleanup mainform menu item naming and using pattern matching instead of direct casts for core types when possible 2020-01-14 11:12:52 -06:00
alyosha-tas 5521f0cf19 MSXHawk: properly load roms and memory map 2020-01-13 22:08:36 -05:00
adelikat e67cd79644 unlock vetrex core in path config, in preparation for officially releasing the core (should have been done last release 2020-01-13 18:56:19 -06:00
alyosha-tas 8fed99456a GBlink: fix some 4x bugs and route CGBGBA to cores 2020-01-13 16:55:07 -05:00
adelikat a51be3efbe remove useless regions in previous commit 2020-01-13 15:50:49 -06:00
adelikat 63da3d7bd3 expose GenerateLogKey and Map as methods on ILogEntryGenerator and remove all the direct casting that was happening in tastudio code 2020-01-13 15:49:11 -06:00
alyosha-tas 2c019794f5 GBHawk: remove DIV offset as a sync setting, leave it always at 8. 2020-01-13 09:37:54 -05:00
alyosha-tas 6ec1ce4d45 A2600: fix pitfall 2, needs a second look at some point though 2020-01-13 09:16:33 -05:00
YoshiRulz d6d9f76f76
Fix shift/ctrl/alt modifier keys with OpenTK input 2020-01-13 11:37:19 +10:00
YoshiRulz 126bb4736b
Move commented-out code blocks to #if false
CBB doing Cores or Bizware
2020-01-13 11:14:16 +10:00
YoshiRulz a8170ca183
Fix mismatching namespaces 2020-01-13 07:19:06 +10:00
adelikat 69cc3ab3fd meh, might as well update version info to match release branch 2020-01-12 15:05:49 -06:00
adelikat f61189f141 BizBox - show text that indicates it is a developer build, if it is a developer build 2020-01-12 15:05:19 -06:00
YoshiRulz dd4f9aaf64
Use ranges 2020-01-13 06:59:40 +10:00
YoshiRulz 0f1fa1531f
Use ranges in ApiHawk and Lua 2020-01-13 06:57:24 +10:00
adelikat 9a88a94ddc remove old joke about box, you will be missed. 2020-01-12 14:55:59 -06:00
YoshiRulz 5c472bcf77
Default to D3D and DirectSound if they're present 2020-01-13 06:34:57 +10:00
zeromus 8c50945ecb remove windows 7 nag. kept messages because it had some useful work in identifying various windows versions in case it's needed later 2020-01-12 15:23:00 -05:00
YoshiRulz 60b7858fbe Simplify Windows prereqs (see desc.)
* Changed default sound/display methods to OpenAL/OpenGL on Windows to match
non-Windows, and replaced DirectInput with OpenTK input (needs regression
testing on Windows).
* (meta) As a result of the above, DirectX is no longer a prerequisite, leaving
only: .NET Framework 4.6.1 (comes with Win10, as does 4.8), MSVC 14 (also comes
with Win10), MSVC 12 for Mupen, and MSVC 10 for BSNES/Mupen.
* Refactored static Program ctor, using ExceptionBox for missing prereqs, and
removed PrereqsAlert.
* Added OS version check for Windows, with a flag in the config to skip it.
* Updated readme for Win7 EOL (and generally cleanup Windows sections).
2020-01-12 20:00:34 +00:00
adelikat 75c62d6b32 update version info 2020-01-12 13:12:23 -06:00
feos c330541c35 Revert "cleanup ArgParser"
This reverts commit 84593b2d48.
magical fix to magically broken avi dumping
2020-01-12 21:33:41 +03:00
adelikat a03ed17c8a path config - lock down some unreleased cores in release builds 2020-01-12 11:08:46 -06:00
adelikat 8ccbe94a38 don't enable VirtualPad uless controller definition has any button, don't enable Macro Input tool if no movie is active 2020-01-12 11:00:11 -06:00
adelikat eaca35d3d0 properly use TasMovie.Session - fixes #1771 2020-01-12 10:55:15 -06:00
YoshiRulz 7062ba5b6a
Clarify "Autoload" text (from #971) 2020-01-13 01:54:15 +10:00
YoshiRulz c3a359a58c
Rename PSX front panel name in def (from #971) 2020-01-13 00:22:11 +10:00
YoshiRulz c38fb09d3c
Fix typos in strings and comments (from #971) 2020-01-13 00:22:01 +10:00
feos 2f64427199 the logic to automatically pick SaveAs if it's a new project is already there, so it's safe to enable the Save menu item
fix #1788
2020-01-12 13:48:42 +03:00
feos ca3d784f9c update mGBA to upstream master 2020-01-12 11:27:38 +03:00
adelikat a1e7035b70
Merge pull request #1762 from MrCheeze/ackbar
Implemented the remaining N64 R4300 trap instructions besides TEQ
2020-01-11 15:32:54 -06:00
adelikat 6cb2ac635d GGHawkLink - fix bug in Saveram creation 2020-01-11 13:19:51 -06:00
adelikat f83261c116 misc cleanups in emulator core service logic 2020-01-11 13:19:51 -06:00
alyosha-tas 46d0818f09 MSXHawk: Core interface stuff 2020-01-10 15:51:56 -05:00
alyosha-tas 2fa22c2505 MSXHawk: Give DLL a C interface, start making core constructor 2020-01-09 19:37:59 -05:00
alyosha-tas 3e0fd4a2d9 MSXHawk: Blank core 2020-01-09 17:21:58 -05:00
alyosha-tas ed654f83e1 MSXHawk: C++'ify other components 2020-01-07 20:03:13 -05:00
alyosha-tas 6bd0fbccef NESHawk: scanline timing and audio fix 2020-01-07 18:28:12 -05:00
alyosha-tas 69d8a473a1 MSX hawk: Initial commit of Z80A port 2020-01-06 19:53:57 -05:00
adelikat 8885b38281 quantizer code - space to tabs, other cleanups 2020-01-03 18:35:13 -06:00
adelikat 101a403420 cleanups in AV code 2020-01-03 18:25:46 -06:00
adelikat b875f46a95 some ApiHawk cleanups 2020-01-03 16:37:33 -06:00
adelikat 733bdd09b3 cleanups 2020-01-03 15:55:29 -06:00
adelikat 9ab62d8cd3 some cleanup 2020-01-03 14:36:13 -06:00
adelikat ee84c92ada pass in dependencies to OpenAdvancedChooser 2020-01-03 14:19:42 -06:00
adelikat 6183d6e3a6 Don't use Global.Emulator in MacroInput.ButtonSelect 2020-01-03 14:12:13 -06:00
adelikat ba68a307df pass dependency into PsxHashDiscs 2020-01-03 14:09:00 -06:00
adelikat 48a16806cf cleanups in InputManager 2020-01-03 14:05:59 -06:00
adelikat 57610488fe use globals a bit less 2020-01-03 13:59:39 -06:00
adelikat bea2012e0a BookmarksBranchesBox - don't use GlobalWin.OSD 2020-01-03 13:55:23 -06:00
adelikat 84593b2d48 cleanup ArgParser 2020-01-03 13:09:27 -06:00
YoshiRulz dabbaae075
Cleanup TasStateManager.Invalidate
had this written down for after #1591 merge
2020-01-04 04:54:26 +10:00
adelikat 023da20cb9 Cleanup GamePad code, pass in mainform dependency 2020-01-03 10:38:04 -06:00
adelikat 038f35f45e lua - implement controller number parameter to joypad.getimmediate and movie.getinput, consolidate input getting lua code 2020-01-03 09:51:48 -06:00
YoshiRulz 4a5ece2076
Use ranges in MemoryBlock* 2020-01-03 23:35:07 +10:00
YoshiRulz d71b7af31c
Change exceptions in ranges 2020-01-03 21:52:59 +10:00
alyosha-tas f76db6202a O2Hawk: a few more bug fixes 2020-01-02 20:13:11 -05:00
alyosha-tas f6695ad87c Atari 2600: fix audio in commando raid 2020-01-02 19:28:28 -05:00
alyosha-tas dd419e6768 Atari 2600: fix haunted house, read from invalid TIA address and expected open bus 2020-01-02 17:59:24 -05:00
alyosha-tas 8b29df987c GG: Fix Pro yakyuu, needed EEPROM 2020-01-02 17:13:54 -05:00
YoshiRulz 8540773435
Fix typo 2020-01-03 06:04:01 +10:00
YoshiRulz dbe82f6d86
Implement "fancy math", scrap RangeImpl, fix typos, and cleanup 2020-01-03 06:03:49 +10:00
YoshiRulz e7d0fb8299
Refactor/genericise MutableIntRange, add immmutables, add more methods
call now and I'll throw in not one but two float equality extensions for free
2020-01-03 03:32:51 +10:00
YoshiRulz 9ef32cf8f5
Merge ctors using default params, resolves a TODO 2020-01-02 22:10:42 +10:00
YoshiRulz 060255471b
Improve exception docs in BizHawk.Client.EmuHawk 2020-01-02 21:51:37 +10:00
YoshiRulz 3bab282e8d
Improve exception docs in Bizware.* 2020-01-02 21:51:33 +10:00
YoshiRulz 89b475661a
Improve exception docs in BizHawk.Client.ApiHawk 2020-01-02 21:51:30 +10:00
YoshiRulz a8408ed3be
Improve exception docs in BizHawk.Client.Common 2020-01-02 21:51:27 +10:00
YoshiRulz a1d46b6d49
Improve exception docs in BizHawk.Emulation.DiscSystem 2020-01-02 21:51:24 +10:00
YoshiRulz 7932c401e1
Improve exception docs in BizHawk.Emulation.Common 2020-01-02 21:51:21 +10:00
YoshiRulz 19705b78fd
Improve exception docs in BizHawk.Common 2020-01-02 21:51:14 +10:00
adelikat 8c0c00c2bf lua - movie.save() - fix bug that was preventing the optional filename parameter from being used 2020-01-01 17:03:01 -06:00
alyosha-tas edefd123d5 O2Hawk: DAA work, might still be wrongfor some cases. 2019-12-31 21:46:59 -05:00
alyosha-tas 8548859a67 Atari 2600: start work on keyboard controller (incomplete) 2019-12-31 18:37:10 -05:00
adelikat 1fd9bd7b38 SoundConfig - pass in mainForm 2019-12-31 17:14:04 -06:00
adelikat eb438fd9cb pass in mainform to Keyboard.cs instead of using global 2019-12-31 17:06:40 -06:00
adelikat 9f86a2db6a cleanup Input.cs 2019-12-31 17:04:24 -06:00
adelikat 7de9309be1 Lua - pass in MainForm to the EmuHawkLuaLibrary class 2019-12-31 16:46:05 -06:00
adelikat 18975e390d use Globals less in Tastudio sub-components 2019-12-31 16:31:32 -06:00
adelikat 1c472ad253 Hex Editor - fix Delete hotkey not unfreezing secondary highlighted addresses, consolidate freeze/unfreeze logic 2019-12-31 13:40:09 -06:00
adelikat 15f1432462 Hex editor - some more simplifications 2019-12-31 13:18:12 -06:00
adelikat 12a3552bdd Hex editor - simplify slightly 2019-12-31 13:10:44 -06:00
adelikat c8c63f29f0 InputRoll - only refresh on mouseLeave if necessary 2019-12-31 12:41:21 -06:00
adelikat 098cac3f60 a few misc cleanups 2019-12-31 11:44:50 -06:00
adelikat b390c2829c cleanup virtualpad code 2019-12-31 11:36:22 -06:00
adelikat 0f33e2b1e7 cleanup display manager code 2019-12-31 11:14:10 -06:00
adelikat 7a3606d684 ArchiveChooser - fix code that attempted to sort archive files but didn't, and cleanup 2019-12-31 10:36:33 -06:00
adelikat 0082de7c0a cleanup Quantizer.cs 2019-12-31 10:24:57 -06:00
adelikat 64ea9afee5 cleanups 2019-12-31 10:17:55 -06:00
adelikat 094ae65e06
Merge pull request #1775 from TASVideos/log-as-tool
Remove Log windows as console option, and make LogWindow a Tool
2019-12-31 09:37:57 -06:00
adelikat ca862d5581 Log Window - properly set logging back to the standard console output when closing 2019-12-30 17:14:58 -06:00
alyosha-tas 5fcc13f5ed Vectrex: fix analog controller 2019-12-30 17:59:19 -05:00
alyosha-tas 6a68c7f521 Controller: fix physical controller input, fixes #1166 2019-12-30 17:28:48 -05:00
alyosha-tas a66530cd3c GBHawkLink: allow only one screen to be displayed 2019-12-29 18:22:57 -05:00
Asnivor 91008590cf ZXHawk: Implement more faithful AY port decoding (fixes #1767) 2019-12-29 22:23:20 +00:00
adelikat 67419c980a cleanup 2019-12-29 15:21:23 -06:00
adelikat 47eeba5053 Options config - re-position options now that console window option has been removed 2019-12-29 15:08:03 -06:00
adelikat 6e49f1c07d Convert LogWindow to a tool that implements IAutoToolformConfig 2019-12-29 15:05:45 -06:00
adelikat bdd0d56a70 delete the console log window, always show LogWindow instead 2019-12-29 14:39:44 -06:00
adelikat ab812ab081 pass in mainform to log window stuff 2019-12-29 14:16:44 -06:00
adelikat c2ff680992 some cleanups 2019-12-29 14:11:56 -06:00
alyosha-tas ec03c6fa0f Fix analog stick in virtual pad fixes #1612 2019-12-29 09:47:53 -05:00
alyosha-tas 2d8d8cc1cd O2Hawk: debuggable stuff 2019-12-29 09:06:39 -05:00
alyosha-tas f1faf5988a EmuHawk: fix NES core picker, was broken by picking subneshawk due to the xor 2019-12-29 08:29:18 -05:00
feos cf666228b3 comments 2019-12-29 00:21:27 +03:00
feos 8599946bb4 #region 2019-12-29 00:17:18 +03:00
feos 3a464eed60 mame_lua_get_bool() doesn't work with gcc for whatever reason... 2019-12-29 00:13:31 +03:00
feos 4ef8c8e34c mame: ram domains 2019-12-28 15:21:06 +03:00
feos 853af1c32a another fix to missing "file on disk" domain 2019-12-28 15:21:05 +03:00
alyosha-tas 6f53ad1af7 Fix settings initialization for several other cores 2019-12-27 17:45:37 -05:00
alyosha-tas a259c763de O2Hawk: typo 2019-12-27 17:32:33 -05:00
alyosha-tas cef44657e2 O2Hawk:fix settings ini 2019-12-27 17:27:02 -05:00
alyosha-tas 49fc6839e6 O2Hawk: collision bug fix 2019-12-27 16:47:17 -05:00
alyosha-tas 9015d36862 O2Hawk: cpu cleanup and display work 2019-12-27 16:18:26 -05:00
YoshiRulz 3d0ccdac45
Add --mono-no-redirect to run script, disables writing stdout to file
must be first flag, will not be passed to EmuHawk
2019-12-28 02:15:51 +10:00
YoshiRulz 50373ac1ad Move conditional PackageReferences to conditional .targets import
Fixes build system bug introduced by c31050feb
2019-12-27 16:35:47 +10:00
alyosha-tas 0caf12f25e O2Hawk: more display work 2019-12-26 20:17:07 -05:00
YoshiRulz 93d4056d3e
Add 32X to AllSystems (resolves #1507)
PlatformChooser only allows systems in AllSystems to be picked, effectively
limiting core choices
2019-12-26 19:06:11 +10:00
YoshiRulz 09595fef9e
Add GitLab CI (builds w/ dotnet on Linux) 2019-12-26 16:57:40 +10:00
YoshiRulz 2e8e2bfab4
Pass arguments through to EmuHawk 2019-12-26 16:57:21 +10:00
YoshiRulz c31050feb6
Migrate from packages.config to PackageReference 2019-12-26 16:54:33 +10:00
YoshiRulz 88ae783ef0
Partially revert 185337d1c, resolves #1766 2019-12-26 15:52:32 +10:00
zeromus 6577c7b71a makefile to build all waterbox cores 2019-12-24 14:29:28 -05:00
feos 1dc33e074f mame cleanup 2019-12-23 20:18:42 +03:00
feos a0dd2e1314 mame: better load error text 2019-12-23 19:41:20 +03:00
feos cfce96c672 copypaste error 2019-12-23 19:28:51 +03:00
feos 7f4cb4fe51 try a string instead 2019-12-23 19:28:51 +03:00
adelikat 5eee9a6004 misc tool cleanups 2019-12-22 16:42:56 -06:00
feos 0fe2205057 only mame .zip's should be filtered out 2019-12-23 00:29:33 +03:00
feos 47f77b42e9 forbid rom domain for mame 2019-12-23 00:12:43 +03:00
feos d375b1c2e0 mame system bus 2019-12-22 23:51:10 +03:00
adelikat e7e30371fe Remove Rewinder from Global and put as a mainform variable instead 2019-12-22 14:25:06 -06:00
adelikat c101f672ee RewindConfig - pass in dependencies 2019-12-22 14:23:00 -06:00
adelikat afd460f1d2 pass in globals to Play/Record movie dialogs 2019-12-22 14:18:17 -06:00
adelikat 1332079f84 pass more globals into some config dialogs 2019-12-22 14:09:58 -06:00
adelikat 0b57b4c5f6 cleanups 2019-12-22 13:58:00 -06:00
adelikat 60c789df22 pass inGameInfo to N64VideoPluginconfig 2019-12-22 13:34:14 -06:00
adelikat 7ac3e1f428 TraceLogger - use ToolFormBase, cleanups 2019-12-22 13:32:18 -06:00
adelikat 1c57622032 refactor UpdateCheatRelatedTools to be a ToolManager method 2019-12-22 13:32:18 -06:00
adelikat 68e45d6108 MovieZone - pass in some dependencies and use globals less 2019-12-22 13:32:18 -06:00
adelikat 0207575695 MovieZone - cleanups 2019-12-22 13:32:18 -06:00
adelikat 87cd264ed2 MacroInput - less global, cleanup 2019-12-22 13:32:18 -06:00
adelikat 897bc0572e pass in dependencies to LuaAutocompleteInstaller 2019-12-22 13:32:18 -06:00
adelikat e0bb050bd1 ToolBox - remove Globa usage 2019-12-22 13:32:18 -06:00
adelikat 5f3ed8a766 pass dependency into LuaRegisteredFucntionsList 2019-12-22 13:32:18 -06:00
adelikat 2403f38bcc pass in LuaImp to LuaWinform, now the global usage is in the lua library, but baby steps 2019-12-22 13:32:18 -06:00
adelikat b9c0d11c16 pass mainform to BreakpointControl 2019-12-22 13:32:18 -06:00
adelikat ed45318a75 presentation panel - pass in dependencies 2019-12-22 13:32:18 -06:00
adelikat 640e4260cd MultiDIskBundler - cleanup, pass dependencies to child controls 2019-12-22 13:32:18 -06:00
adelikat 3b60b08a11 inherit ToolFormBase for a few tools 2019-12-22 13:32:17 -06:00
YoshiRulz 264b27475e
Fix default referring to non-nullable type 2019-12-23 04:12:02 +10:00
adelikat c20ae5b16c cleanup BasicBot 2019-12-22 11:39:40 -06:00
adelikat 0e218f5d4a hex editor - fix crash from previous commit, pass in dependencies to sub-forms 2019-12-22 11:26:55 -06:00
adelikat a7ccc3fdef cleanup 2019-12-22 11:13:59 -06:00
James Groom d8eaafd47f
Merge pull request #1765 from TASVideos/winhacksbgone
Cleaning up and hopefully removing some Win32 hacks
2019-12-22 17:09:38 +00:00
YoshiRulz 69702327d3
Fix typos from merge 2019-12-23 03:06:04 +10:00
James Groom 78fcde9480
Merge branch 'master' into winhacksbgone 2019-12-22 17:01:10 +00:00
adelikat 1aa318d7e1 use ToolFormBase properties instead of globals 2019-12-22 10:57:06 -06:00
adelikat c76dbbb977 rename ToolHelper.cs to ToolFormBase.cs since that is the name of the class 2019-12-22 10:57:06 -06:00
adelikat 77c04412d2 ToolManager - inject common things like config, mainform, and the tool manager itself to tools that inherit ToolFormBase 2019-12-22 10:57:06 -06:00
adelikat f8ed9f49eb slight cleanup 2019-12-22 10:57:06 -06:00
adelikat c162b2774d Mainform - a bit of cleanup 2019-12-22 10:57:06 -06:00
adelikat bd48ee7130 Tastudio - use Owner not MainForm 2019-12-22 10:57:06 -06:00
adelikat 0ca53ccfcb SoundConfig - move some mainform usage to mainform 2019-12-22 10:57:06 -06:00
adelikat 75fee8c4af pass in docs dependency to LuaFunctionsForm 2019-12-22 10:57:06 -06:00
adelikat eb6a2c3315 remove usages of Global to get to lua console, from lua console 2019-12-22 10:57:06 -06:00
adelikat c6b6e7b6cb pass Config into ToolManager 2019-12-22 10:57:05 -06:00
alyosha-tas cba08040f7 O2Hawk: color and display work 2019-12-22 11:18:38 -05:00
alyosha-tas d0e6441f7b O2Hawk: more bug fixes to timing and interrupts 2019-12-21 20:59:09 -05:00
adelikat e0cd66613f remove ApiProvider from GlobalWin, and have ToolManager own it instead, keep a copy of IEmulator in ToolManager and reference that instead of Global.Emulator 2019-12-21 18:03:13 -06:00
adelikat 84a9dec7a8 ToolManager - some cleanups 2019-12-21 17:45:11 -06:00
adelikat 81b2b8c888 remove unused method 2019-12-21 17:21:39 -06:00
adelikat 1e41dbf20d LuaRegisteredFunctionsList - override Clear() so that needed clear logic can't be mistakenly not called. Fixes #1763 2019-12-21 17:16:16 -06:00
adelikat b80b367831 refactor IMovie to expose the movie mode, and make extension methods that do IsPlaying type logic. This way there can be direct checks, and more variety of methods without cluttering the interface 2019-12-21 16:34:29 -06:00
adelikat d26cb7d272 small cleanup 2019-12-21 15:55:01 -06:00
adelikat 7cfbd1cead simplify onscreen message drawing logic, fix MessageConfig dialog result when Ok is pressed 2019-12-21 15:48:50 -06:00
adelikat f5f22e78d8 Simplify on screen ram watch value positioining, and respect the anchor value setting 2019-12-21 15:36:37 -06:00
adelikat f5929602ff rename MessageOption to MessagePosition 2019-12-21 15:28:16 -06:00
adelikat 433eff65ec OSDManager - simplify calculations for points for things like fps, frame counter, etc 2019-12-21 15:24:50 -06:00
adelikat 9ae977ae12 OSDManager - a simplification 2019-12-21 15:04:54 -06:00
adelikat 18fbd9af1c MessageConfig - don't use Global.Emulator 2019-12-21 14:58:33 -06:00
adelikat 6748d32830 Message config - fixes, make Anchor an enum instead of int 2019-12-21 14:50:20 -06:00
adelikat 8e030c47b6 MessageConfig - simplify - use Color pen overload and remove brush variable 2019-12-21 14:23:43 -06:00
adelikat 8a96f5f2e7 MessageConfig - use change event on numberics 2019-12-21 14:21:12 -06:00
adelikat e7160a7387 MessageConfig - pass in config dependency 2019-12-21 14:16:23 -06:00
adelikat a565f6f299 refactor message display option settings to be an object, and simplify the message config dialog 2019-12-21 14:11:49 -06:00
adelikat b94a830f13 Message config refactor - fix some names, break off DefaultMessageOptions class into its own file 2019-12-21 13:22:22 -06:00
adelikat 98bfcabfe8 refactor Global.SystemInfo into an extension method class 2019-12-21 13:07:05 -06:00
adelikat 5002968bd7 cleanup SystemInfo 2019-12-21 13:00:33 -06:00
adelikat 8ac53f51c0 move bkm files to the import folder now that they are only used for import 2019-12-21 12:55:57 -06:00
adelikat c127d92296 PathConfig - remove unused hack 2019-12-21 12:51:51 -06:00
adelikat 5848cc5948 NESGraphicsConfig - remove some more global usage 2019-12-21 12:49:24 -06:00
adelikat bab3dbca98 cleanup PlatformChooser and don't use globals 2019-12-21 12:45:28 -06:00
adelikat 8ec8400ab2 Cleanup LogConsole 2019-12-21 12:41:13 -06:00
adelikat b65b9d64d7 DisplayManager cleanups 2019-12-21 12:33:45 -06:00
adelikat b93b4e449a simplify and cleanup GLManager 2019-12-21 12:03:21 -06:00
alyosha-tas b5090b5a63 O2Hawk: bug fixes
and a2600 db update
2019-12-21 12:49:28 -05:00
adelikat c42889ceef cleanup JumpLists.cs 2019-12-21 09:05:11 -06:00
adelikat e06799ce38 remove unused NameStateForm 2019-12-21 08:59:32 -06:00
adelikat 442ec14c76 cleanups in CoreFeatureAnalysis 2019-12-21 08:57:31 -06:00
YoshiRulz 7cd29c0f54
Finish moving Win32 imports to BizHawk.Common, organise, and cleanup 2019-12-21 18:33:11 +10:00
YoshiRulz 784c800ca2
Disable features using Win32 unless on Windows host
forms: GBAGPUView, GBGPUView, LogWindow, SNESGraphicsDebugger,
SynclessRecordingTools; features: A/V recording, logging to AWE(?)
2019-12-21 18:31:03 +10:00
YoshiRulz 580aa2eaf9
Refactoring and cleanup of dynamic lib loading
Also fixed error reporting in WindowsLLManager, and fixed bug in
MednaDisc.CheckLibrary
2019-12-21 18:22:58 +10:00
YoshiRulz 7ea8fb185a
Congregate, organise, and cleanup some Win32 imports and their usages 2019-12-21 18:21:51 +10:00
adelikat 7149b0ef65 rename FileLoader to MainForm.FileLoader to make it more obvious that it is a partial class of mainform 2019-12-20 11:27:34 -06:00
adelikat 88c937cd42 reduce global usage in FileLoader.cs 2019-12-20 11:25:26 -06:00
adelikat bc51ca4af0 MainForm - reduce global usage a bit more 2019-12-20 10:42:54 -06:00
adelikat c9c04032c7 MainForm cleanups 2019-12-20 10:40:13 -06:00
adelikat f934b059c8 fix a few potential NRE's in Global.cs 2019-12-20 10:24:54 -06:00
adelikat 24ed667c13 reduce global usage in MainForm more 2019-12-20 10:22:42 -06:00
adelikat bfb39e79d0 MainForm - setter for Config property 2019-12-20 10:08:20 -06:00
adelikat 8f6f8f72cb MainForm - more getter properties for globals 2019-12-20 10:07:08 -06:00
adelikat 62ab716a5d MainForm - convert some commonly used globals to properties that reference the global. A step twards the global not being there at all and mainform managing the passing of dependencies 2019-12-20 09:29:33 -06:00
adelikat 7ba8af1cb9 use AddOnScreenMessage method in other mainform files 2019-12-20 07:31:03 -06:00
adelikat f8fbc57780 cleanup 2019-12-20 07:31:03 -06:00
adelikat fb8ff37fe9 Mainform - use OnScreen method instead of GlobalWin.OSD references 2019-12-20 07:31:03 -06:00
adelikat 23f7274541 FileLoader - use Emulator not Global.Emulator 2019-12-20 07:31:03 -06:00
adelikat 4ac7e8e36a Rewind config - move osd messages to calling code 2019-12-20 07:31:03 -06:00
adelikat 06b11bba51 Simplify dialog result checks with an extension method 2019-12-20 07:31:03 -06:00
adelikat fd30ddc154 Message config - use OSD in mainform not config 2019-12-20 07:31:03 -06:00
adelikat aea444cea5 Controller config - simplify and remove use of GlobalWin.OSD 2019-12-20 07:31:02 -06:00
alyosha-tas 859ff267a6 A2600 gamedb: add princess resuce. 2019-12-17 23:04:19 -05:00
alyosha-tas 6e699d576a O2Hawk: more bug fixes 2019-12-17 18:58:20 -05:00
alyosha-tas 3f326109d6 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2019-12-17 17:41:50 -05:00
alyosha-tas 4619e7a862 O2Hawk: cleanup and bug fixes 2019-12-17 17:40:57 -05:00
adelikat 4461818d26 ToolManager - cleanups, and don't use GlobalWin.Tools 2019-12-17 13:45:55 -06:00
adelikat 6bddec01d6 cleanup 2019-12-17 12:01:43 -06:00
adelikat 5fe25d03ad Play/Reocrd movie dialogs - pass in mainform 2019-12-17 11:24:34 -06:00
adelikat 35ff30cc01 cleanup LogWindow 2019-12-17 11:19:34 -06:00
adelikat d780b1c898 move InputWidget to custom controls folder 2019-12-17 11:15:50 -06:00
adelikat b271ef4a89 MenuButton - nitpick cleanup 2019-12-17 11:15:50 -06:00
adelikat 5c12753217 cleanup FolderBrowserDialogEx 2019-12-17 11:15:50 -06:00
alyosha-tas c6c5217c97 O2Hawk: initial functionality, also remove O2EM 2019-12-17 12:09:58 -05:00
adelikat d3cb2a4fb3 cleanup MsgBox 2019-12-17 10:48:20 -06:00
adelikat 1bea591e31 GenericCoreConfig - use passed in mainform instead of global 2019-12-17 09:53:19 -06:00
adelikat 28305339f9 VideoWriterChooserForm - pass in dependencies 2019-12-17 09:50:38 -06:00
adelikat 6be6dbbce6 cleanup VideoWriterChooserForm 2019-12-17 09:46:03 -06:00
adelikat ede9a7b788 get rid of Global usage in N64VideoPluginConfig 2019-12-17 09:42:53 -06:00
MrCheeze b90f72c34d Implemented the remaining N64 R4300 trap instructions besides TEQ 2019-12-16 21:22:34 -05:00
adelikat 5dd226db94 remove a GlobalWin.Mainform usage 2019-12-16 19:58:06 -06:00
adelikat c5b1328f77 Sound config - pass in Config 2019-12-16 19:54:40 -06:00
adelikat aede4e7cda Profile Config - pass in dependencies 2019-12-16 19:51:12 -06:00
adelikat cf647ffd04 profile config cleanup 2019-12-16 19:45:03 -06:00
adelikat dc26b67446 path config - pass in config dependency 2019-12-16 19:42:42 -06:00
adelikat d15641da96 InputCompositeWidget - slight cleanup 2019-12-16 19:34:19 -06:00
adelikat 0d78318fa1 HotkeyConfig - pass in dependencies 2019-12-16 19:33:14 -06:00
adelikat 0fcaca681e rename GuiOptions to EmuHawkOptions to match class name 2019-12-16 19:27:00 -06:00
adelikat 8dbc6c7f6d EmuHawkOptions - pass in dependencies 2019-12-16 19:26:32 -06:00
adelikat 38d6667c18 GenericCoreConfig - cleanup 2019-12-16 19:16:18 -06:00
adelikat 3bf8029e67 FirmwaresConfig - cleanup 2019-12-16 19:08:03 -06:00
adelikat f9e65e2fa7 FileExtensionPreferences - pass in dependencies 2019-12-16 18:51:06 -06:00
adelikat 8ccbc0b81f DisplayConfig - pass in dependencies 2019-12-16 18:45:40 -06:00
adelikat 8fcd9bb2a5 rename DisplayConfigLite to DisplayConfig, it isn't very Lite anymore :) 2019-12-16 18:41:54 -06:00
adelikat 8eff248d96 cleanup DisplayConfigLite 2019-12-16 18:39:59 -06:00
adelikat 5e8a2a348a Delete unused DisplayConfig form 2019-12-16 18:37:23 -06:00
adelikat da6f358589 ControllerConfig - pass in dependencies 2019-12-16 18:36:31 -06:00
adelikat 583423b0d2 ControllerConfig - code cleanup 2019-12-16 18:27:58 -06:00
adelikat 7d961c34f1 Autofire Config - pass in dependencies 2019-12-16 18:22:41 -06:00
adelikat 88830fad4c code cleanup 2019-12-16 18:18:08 -06:00
adelikat de6979820d ZXS config dialogs - pass in dependencies 2019-12-16 18:14:21 -06:00
adelikat c722a1ef9f code cleanup in ZxSpectrum config dialogs 2019-12-16 18:03:26 -06:00
adelikat 7675e35d85 TI83 settings - pass in dependencies 2019-12-16 17:58:50 -06:00
adelikat 4a332c1fb0 SNES config dialogs - pass in dependencies 2019-12-16 17:53:54 -06:00
adelikat 4a509fa410 pass in dependencies to SMS graphics config dialog 2019-12-16 17:44:18 -06:00
adelikat 47dfdb5190 remove unused Saturn config folder 2019-12-16 17:23:25 -06:00
adelikat 3da1972a61 rename PSXControllerConfigNew to PSXControllerConfig 2019-12-16 17:22:35 -06:00
adelikat ea8ed79402 PSX config dialogs - pass in dependencies 2019-12-16 17:21:49 -06:00
adelikat bdc8be2f6b declare dependencies in PCE config dialogs 2019-12-16 17:06:29 -06:00
alyosha-tas 89c87b0581 O2Hawk: More display work 2019-12-16 11:50:00 -05:00
YoshiRulz 0fcb6cbaa7
ApiHawk refactoring and cleanup
MemApi.ReadByteRange now returns the requested number of bytes and not 1 extra,
MemApi.ReadByteRange now warns only once per call for addrs outside range,
MemApi.ReadByteRange now warns for negative addrs (once per call; previous
implementation passed negative addresses to PeekByte), MemApi.WriteByteRange now
warns only once per call for addrs outside range, MemApi.WriteByteRange now
warns for negative addrs (once per call; previous implementation passed negative
addresses to PokeByte)
2019-12-17 02:39:04 +10:00
YoshiRulz 08d0f462fc
Partially migrate NesLuaLibrary to ApiHawk delegation
nes.setdispbackground and nes.setscanlines now throw when the core is neither
NesHawk or QuickNES (the latter is still silently ignored by these functions)
2019-12-16 17:47:50 +10:00
YoshiRulz 29ac251f34
Migrate SnesLuaLibrary to ApiHawk delegation 2019-12-16 17:14:10 +10:00
YoshiRulz 60daae50d5
Migrate GenesisLuaLibrary to ApiHawk delegation 2019-12-16 17:14:01 +10:00
YoshiRulz 0b43b35427
Migrate GuiLuaLibrary to ApiHawk delegation
Changed param clear of IGui.DrawNew from bool? to bool (default value remains
true), made IGui and GuiLuaLibrary inherit IDisposable, added
GetDefaultTextBackground to IGui, applied fix from 6b3071d8a to
GuiApi.DrawString, replaced background box drawn by Lua API
gui.drawString/gui.drawText with what I think is a shadow (now matches
GuiApi.DrawString)
2019-12-16 16:54:06 +10:00
YoshiRulz 8f93a954e1
Move Lua hacks to Lua libs
Changed parameter of IInputMovie.SetRerecordCount to ulong to match internal
2019-12-16 15:04:35 +10:00
adelikat 861f238cc1 quickNes settings - pass dependencies in 2019-12-15 17:01:25 -06:00
adelikat e84fd17784 support subneshawk for VS menu items, pass dependencies into VSSettings 2019-12-15 16:55:40 -06:00
adelikat 8cc02b8956 NesSyncSettingsForm - pass dependencies in and support SubNesHawk 2019-12-15 16:47:48 -06:00
adelikat e6ac894955 nes config dialogs - pass in dependencies 2019-12-15 16:40:43 -06:00
adelikat 16be999cbc NES graphics config - pass in dependencies 2019-12-15 16:36:46 -06:00
adelikat 827825bbf3 N64 plugin config - pass dependencies in 2019-12-15 16:27:48 -06:00
adelikat 5ec3ac021e N64 plugin config code cleanup 2019-12-15 16:22:51 -06:00
adelikat 0b19090fc2 N64 controller config - pass dependencies in 2019-12-15 16:20:08 -06:00
adelikat a58411efa0 Intellivision config - pass dependencies in 2019-12-15 16:13:31 -06:00
adelikat 394641f2af GB config - pass dependencies in 2019-12-15 16:11:19 -06:00
adelikat a39cedb366 GB config code cleanup 2019-12-15 16:06:33 -06:00
adelikat f833d50f30 code cleanup of config dialog files 2019-12-15 15:57:46 -06:00
adelikat 8c5b13097a refactor coleco config dialog 2019-12-15 15:55:05 -06:00
adelikat 5fb547a09c refactor CPC config dialogs to declare dependencies in constructor 2019-12-15 15:52:04 -06:00
adelikat ad8f321ea1 Add event.availableScopes(), fix LogWithSeparator, cleanup 2019-12-15 12:25:49 -06:00
adelikat 71aaf349b5 Fix GPGX one off hack to fix trace logger, and instead do a less bad hack in CallbackBasedTraceBuffer 2019-12-15 12:13:10 -06:00
YoshiRulz 05801dc2c5
Reduce LINQ usage in Lua subsystem 2019-12-16 04:08:22 +10:00
adelikat 91ef301a23 memory callbacks - log error if a scope is passed in that is not available 2019-12-15 12:02:43 -06:00
adelikat 9676fd97df cleanup 2019-12-15 11:52:55 -06:00
adelikat a5d7c98daf some gpgx code cleanups 2019-12-15 11:50:21 -06:00
adelikat 1d741f3d0e memorycallbacks - rename domain param to scope to avoid confusion, otherwise it looks like any memory domain will do 2019-12-15 11:42:26 -06:00
adelikat 29e284c6f8 cleanup 2019-12-15 11:40:22 -06:00
adelikat 250bd2087e fix lua memory callback functions on cores with no system bus such as PSX 2019-12-15 11:37:45 -06:00
adelikat b6df55bbf0 fix double new line in lua console.log() 2019-12-15 10:18:58 -06:00
adelikat 5d03062c4c remove redundant console checks in console logging methods 2019-12-15 10:06:31 -06:00
YoshiRulz 2f494003c7
Add param to IList.ToLuaTable extension and refactor bizstring.split
Changed behaviour when said Lua function is called with a misformatted separator
param, and updated its docs
2019-12-16 01:58:19 +10:00
adelikat d2f21f84e3 another extension method for lua table creation 2019-12-15 09:46:39 -06:00
adelikat 7ebfd42229 Simplify some lua table creation with an extension method 2019-12-15 09:22:10 -06:00
adelikat d955c468db refactor LuaHelper into an extension method class, and some nitpick cleanups 2019-12-15 09:05:33 -06:00
YoshiRulz 8bb9cee9c2
Write version to config (for migration check to be implemented later) 2019-12-16 00:44:40 +10:00
YoshiRulz e58f2811dc
Replace config bool `UseNLua` w/ enum 2019-12-16 00:38:22 +10:00
alyosha-tas d3c04bcd4e O2Hawk: Keyboard support 2019-12-15 09:24:32 -05:00
James Groom 9162c8d246
Merge pull request #1739 from TASVideos/lua-via-apihawk
Delegate Lua API to ApiHawk
2019-12-15 11:47:20 +00:00
YoshiRulz e6cb74d314
Partially migrate EmuHawkLuaLibrary to ApiHawk delegation 2019-12-15 04:40:01 +10:00
YoshiRulz f8dc18c1bd
Migrate SavestateLuaLibrary to ApiHawk delegation
includes backwards-compatible API change
2019-12-15 04:39:16 +10:00
YoshiRulz cc8dffa769
Migrate InputLuaLibrary to ApiHawk delegation 2019-12-15 03:59:21 +10:00
YoshiRulz 104c17e77c
Prepare for EmuHawk-tied libraries to delegate to ApiHawk
Made ApiContainer inherit from APISubsetContainer, added
DelegatingLuaLibraryEmu, and reworked init logic in EmuLuaLibrary
2019-12-15 03:52:48 +10:00
alyosha-tas ef046d60c8 O2Hawk: Bug Fixes, controller support 2019-12-14 11:46:45 -05:00
James Groom 3099a11a04
Merge branch 'master' into lua-via-apihawk 2019-12-14 16:17:14 +00:00
adelikat 51df281d38 Tastudio - fix NRE when running a .tasproj through the normal movie system, making changes, then opening tastudio 2019-12-14 09:58:10 -06:00
adelikat a84213562f vandal cleanups 2019-12-14 18:50:11 +03:00
feos dfa73eceef mame syncsettings 2019-12-14 18:50:11 +03:00
YoshiRulz 3f9b51f565
Partially revert #1754, add event.onmemoryexecuteany 2019-12-14 16:47:29 +10:00
alyosha-tas bd7233f2cd O2Hawk: start displaying stuff and making sound 2019-12-13 20:43:33 -05:00
adelikat 03dbcc3607 Tastudio - tweak follow cursor logic in horizontal orientation 2019-12-13 18:29:30 -06:00
adelikat 858aef59db TAStudio - fix erroenous use of RefreshTasView when hiding/showing columns 2019-12-13 17:49:11 -06:00
adelikat 5e40305d1c fix recent regression if auto-load is set, and default.tasproj is the most recent movie 2019-12-13 17:40:39 -06:00
adelikat 001eeba4f9 Tastudio - fix ReselectCLipboard hotkey 2019-12-13 17:36:07 -06:00
adelikat a77b7ce2fc TAstudio - fix NRE that can happen from a sloppy right-click that causes a sloppy right-click context menu to open 2019-12-13 17:33:54 -06:00
adelikat 4d3c423f15 setup another a7800 config dialog to pass in dependencies 2019-12-13 16:06:12 -06:00
adelikat 92768858f7 atari7800 settings dialog - set up a pattern of constructor declaring dependencies in the constructor, rather than relying on Global variables. We should be doing this for other dialogs (and in general) 2019-12-13 16:01:04 -06:00
adelikat 2c66e3043c a bit more cleanup 2019-12-13 15:44:50 -06:00
adelikat 06e1149cfe a bit of cleanup 2019-12-13 12:35:51 -06:00
adelikat b080d6d09e
Merge pull request #1754 from warmCabin/all-memory-execute
All Memory Execute
2019-12-13 07:40:41 -06:00
YoshiRulz 185337d1c5 Replace assembly references with NuGet packages where possible 2019-12-12 03:56:46 +00:00
warmCabin 201a4b85a4
remove default value for address
<adelikat> The reason we throw an error originally is my concern is that it would be easy to leave out an address in a script, and that it would have huge concequences.

<adelikat> I think address should not have a default value here and make the user explicitly add nil if they want this functionality.
2019-12-11 12:44:54 -05:00
adelikat 24d84f3f08 Tastudio - don't setup columns when loading a file, the file has the column settings 2019-12-11 11:43:05 -06:00
warmCabin 715761f563
unit? 2019-12-10 23:23:40 -05:00
warmCabin baca4e2af8
allow onmemoryexecute to have null address 2019-12-10 23:02:18 -05:00
warmCabin e7374447f3
make onmemoryexecute address default to null 2019-12-10 22:59:35 -05:00
adelikat 515f409246 Tastudio - Make mainform hotkeys out of a bunch of built in hotkeys 2019-12-10 19:26:23 -06:00
YoshiRulz f309c831b3
Move icons out of InitializeComponent
cc9ff8022
2019-12-11 06:58:53 +10:00
adelikat f900a1ba69 Tastudio - fix another usage of ShortCut instead of ShortCutDisplayStr in the context menu 2019-12-10 14:28:48 -06:00
adelikat a05fdfe18c Tastudio - show binded hotkey in context menu for Clear/Insert/Delete/Clone instead of the hard-coded path. Also use ShortcutDisplayStr instead of ShortCut for Insert # Frames context menu item 2019-12-10 14:17:05 -06:00
alyosha-tas 804bde9aa0 O2Hawk: Start displaying stuff, and bug fixes 2019-12-10 13:52:33 -05:00
adelikat c70d2e5cd8 InputRoll - fix a few places where total width was used instead of clip rectangle 2019-12-10 12:36:20 -06:00
adelikat 599415c848 InputRoll - Resize does need a refresh, use FastDraw to minimize the lagginess 2019-12-10 12:36:20 -06:00
alyosha-tas 8e139b4b5b O2Hawk: Get interrupts working 2019-12-09 16:45:36 -05:00
YoshiRulz 4e381d944b
Cleanup ApiManager.Register 2019-12-09 20:11:12 +10:00
Brian Armstrong cfd6d7d83b ApiManager should add APIs from Common
Without these, External Tools can't see most of the APIs
2019-12-09 10:01:01 +00:00
adelikat 373979395d Tastudio - reset branch and marker columns when switching movies 2019-12-08 14:46:58 -06:00
adelikat 7cd4bf881c TasBranch - remove last reminents of UniqueIdentifier.GetHashCode() 2019-12-08 14:26:29 -06:00
adelikat cf3e2c61c9 cleanup BitmapBuffer 2019-12-08 14:24:49 -06:00
adelikat 35fdb5dbdd Tastudio - Integrate branches with the statusbar slot icons 2019-12-08 13:53:36 -06:00
adelikat fff85d917a Fix typo 2019-12-08 13:41:52 -06:00
adelikat 43c9ac7ef7 SImplify some code 2019-12-08 13:40:59 -06:00
adelikat 8802d75527 Game Game.IsNullInstance a null-safe extension method, and a few other cleanups 2019-12-08 13:36:15 -06:00
adelikat 6ae1eac464 better handling of tastudio interaction with select slot, previous slot, and next slot functions 2019-12-08 13:01:55 -06:00
adelikat a6eee3681f InputRoll - do a full refresh if rowcount gets smaller and the last row is visible 2019-12-07 14:35:15 -06:00
adelikat 1a88bfa93d cleanup Nametable and PPU viewer code 2019-12-07 13:23:55 -06:00
adelikat b33829c3a1 Hex Editor - don't draw address column on UpdateValues 2019-12-07 12:59:01 -06:00
adelikat daeeed0d2e InputRoll - remove unnecessary refresh in the OnResize event, fixes laggy resizing 2019-12-07 12:43:49 -06:00
adelikat 6107bc4553 TasMovie - rip out input caching attempt that wasn't even working 2019-12-07 12:21:42 -06:00
YoshiRulz cc9ff8022c
Re-add images; it appears that the Designer is now dropping them 2019-12-08 04:20:54 +10:00
adelikat 9bb07dca76 Bk2ControllerAdapter/Bk2Movie - don't new up everytime some things that don't change through the lifetime of the object. HUGE (3x-4x) speedup to TAStudio 2019-12-07 11:35:48 -06:00
adelikat 4a522263d9 Bk2ControllerAdapter - small cleanups 2019-12-07 11:02:17 -06:00
adelikat 70bb840f20 cleanup 2019-12-07 10:31:00 -06:00
adelikat d594737a76 inputroll - only calculate horizontal positions in horizontal mode 2019-12-07 10:31:00 -06:00
adelikat f3b49648cc Ram Search/Watch - refresh in UpdateValues with RowCount instead of Invalidate() now that RowCount has optimized redraw logic 2019-12-07 10:31:00 -06:00
adelikat 7a66cddf03 InputRoll - more fixes 2019-12-07 10:31:00 -06:00
adelikat ea6704a2b8 InputRoll - in horizontal orientation, account for the draw area being shorter than the height of the columns 2019-12-07 10:31:00 -06:00
adelikat 0d2770044a cleanup 2019-12-07 10:31:00 -06:00
adelikat d8f0dca586 inputroll - drawing fixes 2019-12-07 10:31:00 -06:00
adelikat 421c460d68 InputRoll - get Horizontal orientation invalidating logic going and fix some bugs in horizontal drawing logic 2019-12-07 10:31:00 -06:00
adelikat 891df3512a MarkerControl - do full refresh on restart 2019-12-07 10:31:00 -06:00
adelikat 6a775ec346 InputRoll - fixes 2019-12-07 10:31:00 -06:00
adelikat 0e03696b93 InputRoll - do not draw column header if not necessary 2019-12-07 10:30:59 -06:00
adelikat ae239a0b1d InputRoll - only invalidate the necessary rectangle size 2019-12-07 10:30:59 -06:00
adelikat bb5267d042 InputRoll - drawing - use e.ClipRectangle instead of width/height to draw 2019-12-07 10:30:59 -06:00
adelikat 813e5820ae InputRoll - CalculateLagFramesArray - attempt to not calculate calculated properties so much 2019-12-07 10:30:59 -06:00
feos 48e39a72d1 add arcade menu 2019-12-07 17:44:49 +03:00
adelikat bcfdd79f2a IControlRenderer - simplify api 2019-12-06 21:56:34 -06:00
adelikat 21a0b65305 Tastudio - fix mouse up logic, only navigate if in bool painting mode 2019-12-06 21:19:35 -06:00
adelikat 04798f0e40 oops 2019-12-06 20:29:46 -06:00
adelikat 70840c1b54 remove some unused code, and a few other misc cleanups 2019-12-06 19:22:54 -06:00
adelikat 4e7d19fa18
Merge pull request #1744 from Zinfidel/watch-separator-sorting
Watch sorting - new algorithm that handles separators. Fixes #1713
2019-12-06 18:44:32 -06:00
adelikat 7d8522e0b3 Remove snowy null emulator option and simplify Null Emulator 2019-12-06 18:42:00 -06:00
adelikat dcc853af6d remove a few more unused string methods 2019-12-06 18:16:49 -06:00
adelikat 049e3d12fc BizHawk.Common house cleaning - remove a bunch of unused code, use some higher language level features in some places 2019-12-06 18:12:57 -06:00
adelikat 2b00a98ab1 Remove unused Sprintf.cs 2019-12-06 17:48:46 -06:00
adelikat 85be6af3d3 Convert spaces to tabs in ZX Spectrum and AmstradCPC cores 2019-12-06 17:47:59 -06:00
adelikat fef746dffa properly dispose of IDisposables in core savestate code, and a few other places 2019-12-06 17:33:17 -06:00
adelikat f944cd65a7 Tastudio - LoadState() - properly dispose of IDisposables, avoid unnecessary .ToArray() call 2019-12-06 17:20:01 -06:00
adelikat 7ac720d931 Tastudio - use global references less in favor of internal properties 2019-12-06 17:14:27 -06:00
adelikat 0c3cb5b053 Tastudio - simplify PoitnCellChanged handler, lot's of if checks that were always true 2019-12-06 17:01:40 -06:00
adelikat 2b3a114e1e Tastudio - fix improper invalidation caused by waiting until mouse up to invoke navigation 2019-12-06 15:19:34 -06:00
YoshiRulz 7f07949816
Migrate serialised images to separate files, removing duplicates 2019-12-07 05:24:24 +10:00
feos b5db6a7df6 mame
- put system and game names to emuhawk caption
- fix loading from recent menu
- temp fix for audio drift
2019-12-06 21:34:20 +03:00
YoshiRulz 16136ae130
Rename file 2019-12-05 15:21:15 +10:00
adelikat 4711950f9c default to using luainterface over nlua, supposedly the memory leaks are resolved in luainterface 2019-12-04 16:56:27 -06:00
adelikat 1dbf932486 Config.cs - remove unused methods, simplify some things 2019-12-04 16:53:57 -06:00
YoshiRulz a420336e72
Fix build on Linux, pass extra build script arguments to dotnet build 2019-12-04 17:11:06 +10:00
YoshiRulz 6922dd5041
Update to release version of reference assemblies metapackage 2019-12-04 17:09:50 +10:00
adelikat 53c12ec9d9 Lua console - add newline on message to the console, better handling of attempting to load a script that already exists and has syntax errors 2019-12-03 20:42:44 -06:00
adelikat 56bacf3032 Lua Console - update dialog on Stop All Scripts 2019-12-03 20:19:37 -06:00
adelikat aa94ddccd5 Tastudio - expand message column to fix text, similarly to branches 2019-12-03 20:10:00 -06:00
adelikat 1a6c1e7ebe InputRoll - simplify 2019-12-03 20:05:32 -06:00
adelikat eb63fa5a92 Tastudio - Branches - fix width calculation when expanding to fix user text 2019-12-03 20:03:10 -06:00
adelikat b87f14f962 InputRoll - fix bug in the last gridline calculation in horizontal view 2019-12-03 19:35:19 -06:00
adelikat 77e19a895b InputRoll - cleanup 2019-12-03 19:11:51 -06:00
adelikat 76a52062d6 Tastudio - fix wrong column width when loading a tasproj that was saved with HorizontalOrientation 2019-12-03 19:10:18 -06:00
adelikat c2b942d9a4 InputRoll - remove some vestigial code 2019-12-03 18:57:50 -06:00
adelikat b230502228 Tastudio - cleanup 2019-12-03 18:44:01 -06:00
adelikat 16c525258f InputRoll - simplify 2019-12-03 18:34:13 -06:00
adelikat 3a4351c4ea InputRoll - cleanup 2019-12-03 14:22:21 -06:00
adelikat 6a33085ddc InputRoll - simplify 2019-12-03 13:57:19 -06:00
adelikat 120988eac4 InputRoll - simplify 2019-12-03 13:54:25 -06:00
adelikat 90f6d8a2f5 InputRoll - simplify 2019-12-03 13:46:59 -06:00
adelikat e7e68a630c InputRoll - simplify 2019-12-03 13:34:21 -06:00
adelikat cb8fe33d6f InputRoll - fix some off by one pixel calculations in column header drawing 2019-12-03 13:15:11 -06:00
adelikat e9a0668644 InputRoll - simplify 2019-12-03 13:07:26 -06:00
adelikat f0c745d0f7 InputRoll - simplify 2019-12-03 13:01:52 -06:00
adelikat bf1d64e5d5 InputRoll - simplify more by making column Left and Right values not-nullable (they always have a value, or 0 is assumed anyway). This is a breaking config change 2019-12-03 12:29:18 -06:00
adelikat 0762b181ce inputroll - simplify by making column width not nullable, columns always have a width 2019-12-03 11:26:21 -06:00
James Groom fcc0bc19a4
Change build config to support the Core build system (for #1415)
squashed PR #1702
2019-12-03 16:58:33 +00:00
adelikat 5e73c7c536 lua - update memory documentation to mention it defaults to system bus, fixes #1675 2019-12-02 20:48:38 -06:00
adelikat a54b2eaf06 some cleanup 2019-12-02 20:36:40 -06:00
adelikat 6640146c0a InputRoll - add a flag for whether the control can be toggled into HorizontalOrientation, and only enable it on tastudio 2019-12-02 20:29:29 -06:00
adelikat d687babb41 TAStudio - expose Horizontal Orientation in non-developer builds 2019-12-02 20:23:14 -06:00
adelikat c050a377d8 WatchList - flag changes when doing column sort 2019-12-02 20:11:35 -06:00
adelikat 92bf482609 input roll - cleanup 2019-12-02 20:08:03 -06:00
adelikat 9b69a4a1fc inputroll - simplify 2019-12-02 20:04:37 -06:00
adelikat 3010cf3a3d InputRoll - don't allow resizing columns to a negative width 2019-12-02 19:58:32 -06:00
adelikat f1d688f7bb IControlRenderer - simplify api 2019-12-02 19:53:09 -06:00
adelikat 230cc676c3 IControlRenderer - Simplify API 2019-12-02 19:48:57 -06:00
adelikat cb9b28514c GDIPlusRenderer - use the Rect overload of drawstring to control overflow instead of attemtping ot calculate it. Fixes the cutoff being way off on larger columns, and also gives a rather noticeable speed boost to tastudio 2019-12-02 19:43:41 -06:00
adelikat c6c92c51c7 Change IControlRenderer.MeasureString to return a SizeF instead of Size, for more accurate reporting, it was Size because that's what the GDI renderer did, but if we ever needed that again, we can easily convert to SizeF 2019-12-02 18:38:24 -06:00
Zach 0e055ecb5a Merge branch 'master' into watch-separator-sorting 2019-12-02 16:38:01 -08:00
Zach e621876453 Replaced LINQ query with for loop.
Upon reflection, the query looked nice, but was inferior to a plain for loop because it would have to create n anonymous objects to process the list, even with LINQ's filtering optimization, due to select preceding where.
2019-12-02 16:37:55 -08:00
adelikat 79d06bcb4a Fix LoadRamWatch logic, was always attempting to load it even when it was already loaded. Worse was that it was autoloading watch files anytime something interacted with it like the "add to ram watch" feature in ram search 2019-12-02 17:19:58 -06:00
adelikat 44621446b1 Ram Search - deselect watches when removing them with the delete key 2019-12-02 17:07:14 -06:00
YoshiRulz 1d7b1b49ee
Improve logging in shader compilation (resolves #1748) 2019-12-03 03:03:38 +10:00
feos a5c3a4aee0 reorder lua console log context menus 2019-12-02 18:36:04 +03:00
adelikat f66e427ccb InputRoll - fix bug where scrollbars are incorrectly calculated before the rowcount changes instead of after 2019-12-01 18:08:22 -06:00
adelikat 52db5ac848 cleanups 2019-12-01 18:05:20 -06:00
adelikat b54904028e Record dialog - fix padding of Ok/Cancel buttons 2019-12-01 16:13:14 -06:00
adelikat 2e4391cba3 Ram Search - fix shortcut key display of "Add to Ram Watch" showed Ctrl+R instead of Ctrl+W 2019-12-01 16:04:13 -06:00
adelikat 7b23c5aee8 some cleanup in some lua files 2019-11-30 11:28:56 -06:00
adelikat d2ff9b6ff0 cleanup PresentationPanel.cs 2019-11-30 10:46:05 -06:00
adelikat 2d65d2b66a Remove unused Lua/SyncTextBox 2019-11-30 10:12:33 -06:00
alyosha-tas ecc9899f92 O2Hawk: begin ppu work 2019-11-30 09:28:53 -05:00
YoshiRulz 230548cf35 Partially migrate MainMemoryLuaLibrary to ApiHawk delegation
`mainmemory.readbyterange` will now return partial data if the requested range
extends beyond the domain (invalid addresses are read as 0). Did not fix docs of
`mainmemory.readbyterange` which incorrectly claim the returned table uses the
memory addresses as keys i.e. addr..(addr+length) - it was and remains
0..length. `mainmemory.write_u8` will now check the specified domain's length
and not erroneously check the selected domain's length.
2019-11-30 23:33:54 +10:00
YoshiRulz b678e19041
Merge LuaMemoryBase into MainMemoryLuaLibrary 2019-11-30 23:33:46 +10:00
YoshiRulz 7d99071ac5 Migrate MemoryLuaLibrary to ApiHawk delegation
`memory.readbyterange` will now return partial data if the requested range
extends beyond the domain (invalid addresses are read as 0). Did not fix docs of
`memory.readbyterange` which incorrectly claim the returned table uses the
memory addresses as keys i.e. addr..(addr+length) - it was and remains
0..length. `memory.write_u8` will now check the specified domain's length and
not erroneously check the selected domain's length.
2019-11-30 23:32:09 +10:00
YoshiRulz b2676bce68 Copy LuaMemoryBase and merge copy into MemoryLuaLibrary 2019-11-30 23:32:09 +10:00
YoshiRulz 24c3f3a7f0 Merge MemApiBase into MemApi 2019-11-30 23:32:09 +10:00
YoshiRulz 1042f746f4 Migrate JoypadLuaLibrary to ApiHawk delegation
`joypad.getimmediate()` now returns float controls as well as bools
2019-11-30 23:32:09 +10:00
YoshiRulz f4a229888f Migrate UserDataLibrary to ApiHawk delegation 2019-11-30 23:32:09 +10:00
YoshiRulz 4a84e1a8a9
Migrate MovieLuaLibrary to ApiHawk delegation 2019-11-30 23:32:00 +10:00
YoshiRulz bd7dfbd487 Migrate MemorySavestateEmuLuaLibrary to ApiHawk delegation 2019-11-30 23:31:23 +10:00
YoshiRulz 8da543b1a5
Migrate EmulatorLuaLibrary to ApiHawk delegation
`emu.setrenderplanes(bool...)` now works when using BSNES or Genplus-gx
2019-11-30 23:31:18 +10:00
YoshiRulz e39e083c13
Migrate GameInfoLuaLibrary to ApiHawk delegation 2019-11-30 23:29:09 +10:00
YoshiRulz 0bea6032ab
Migrate SQLLuaLibrary to ApiHawk delegation 2019-11-30 23:27:14 +10:00
YoshiRulz 8ce403dab2
Mirror cleanup from 7aa170283 onto the C# APIs
also fixed VS' stupid comma placement and added a "using" in SqlLuaLibrary
2019-11-30 23:18:26 +10:00
adelikat 7aa170283e cleanup some lua files 2019-11-29 16:35:21 -06:00
adelikat 2a12cac9e5 InputRoll - implement shift+Up/Down logic to highlight rows 2019-11-29 16:12:23 -06:00
adelikat 99ca256087 Lua console - change Refresh toolbar icon tooltip from "Reload script" to "Refresh" to match the menu item (they do the same action but with different names) 2019-11-29 15:47:21 -06:00
adelikat 18bdaf2d99 Lua console - enable multi-select on open script dialog 2019-11-29 15:42:52 -06:00
adelikat 978277bd06 Lua console - When turning on lua scripts, first clear registered functions for that scripts (they would still exist if the script exited on its own), Don't close the registered functions dialog when a script is toggled and no registered functions are left 2019-11-29 15:32:12 -06:00
adelikat 1b264ad068 InputRoll - tweak right-click selection - only clear and select if not already selected 2019-11-29 15:21:20 -06:00
adelikat 49b8219f45 lua console - enable multiselect 2019-11-29 15:12:55 -06:00
adelikat 50cad2067f Lua - when removing registered functions, remove functions reigstered to a script of the same path (or the same thread) 2019-11-29 15:11:40 -06:00
adelikat f36d69e6b0 cleanup LuaFileList 2019-11-29 15:10:58 -06:00
adelikat d757b8e64f Refactor a lot of lua code to use a LuaFile object instead of a Lua object, and unify some luafile manipulation logic into methods 2019-11-29 15:02:40 -06:00
adelikat 679f691b46 Lua console - add Clear all registered function menu item to the log window context menu item too 2019-11-29 13:45:18 -06:00
adelikat c7c09c92a7 InputRoll - the designer doesn't seem to like auto-generating the GridLines property, so just set it true by default 2019-11-29 13:44:47 -06:00
adelikat 24cbf5e274 lua - a bit more cleanup 2019-11-29 13:14:30 -06:00
adelikat de2da910c2 Lua - simplify some logic 2019-11-29 12:47:50 -06:00
adelikat 84d9419637 LuaLibraryBase - a bit of cleanup 2019-11-29 12:40:14 -06:00
adelikat c9d34ca828 minor cleanup 2019-11-29 10:16:48 -06:00
adelikat ce2a7b1612 EmuLuaLibrary.Events - cleanup 2019-11-29 10:14:07 -06:00
adelikat a0ba2189af lua events library - remove N64 dynarec checks since we don't have the dynarec core anymore 2019-11-29 10:03:35 -06:00
adelikat 263a72f57d Lua console - remove bad user option (defaulted to true even) that clears all registered functions on toggle, toggle already clears all registered functions registered to the script. If there is some edge case there, we need to fix it, not clear registered funcitons that don't even belong to the given script 2019-11-29 09:58:07 -06:00
adelikat 7a95fa543d fix crash when toggling scripts while the registered fucntions list dialog is open 2019-11-29 09:55:36 -06:00
adelikat 4d4c32fffa O2 - fix settings title text (Odyssey not Vetrex) 2019-11-29 09:38:43 -06:00
adelikat 3a3a7e7462 Lua console - context menu item for Clear all registered functions 2019-11-29 09:36:18 -06:00
alyosha-tas ae18284520 O2Hawk: mainform stuff 2019-11-28 17:02:26 -05:00
Zinfidel ac2c42ef74 Correct tab size inconsistency 2019-11-27 21:46:49 -08:00
Zinfidel b3875e21ae Watch sorting - new algorithm that handles separators.
Also moved comparers from fields into a dictionary to make selection more concise.
2019-11-27 21:31:39 -08:00
adelikat 92b0505c41 Tastudio - fix stackoverflow exception when drag scrolling (this didn't happen in earlier versions and they didn't have this kind of hack, there might be a better way to do this, but this seemed to work) 2019-11-27 20:35:05 -06:00
adelikat 0def3828b9 Simplify ToolStripEx 2019-11-27 20:26:03 -06:00
adelikat 68797f18f7 Tastudio - fix crash when attempting to use right-click column autohold if the movie was loaded via autoload 2019-11-27 20:10:06 -06:00
adelikat a82f0d1ce7 lua console - hack to keep someone from remove a lua script on accident if the script is highlighted and they press delete in the auto-complete box 2019-11-27 20:00:01 -06:00
adelikat 6eb9fa9b51 movie importers - import the core header key on systems that we check for core when loading the movie 2019-11-26 20:10:34 -06:00
adelikat f0f8cd3171 cleanup Bk2Movie.HeaderApi.cs 2019-11-26 20:04:12 -06:00
adelikat f926142921 cleanup OSDManager 2019-11-26 19:36:04 -06:00
adelikat 1b8b4b4926 Tastudio - rip out option to do autorestore on mouse up vs down, make it on up only, and fix autorestore logic 2019-11-26 18:54:46 -06:00
adelikat 223cef2620 Tastudio - cleanups 2019-11-26 18:50:56 -06:00
adelikat 943454554d Tastudio - don't update bookmark view on UpdateValues() 2019-11-26 17:34:50 -06:00
adelikat ed395ca656 a few cleanups 2019-11-26 16:57:01 -06:00
adelikat 3ddf96563a InputRoll - a bit more precise background drawing, might help peformance a bit 2019-11-26 16:14:32 -06:00
adelikat e1b91d13ab InputRoll - cleanups and simplifications 2019-11-26 15:55:07 -06:00
adelikat e1f2147e65 InputRoll - turn some public properties into private variables 2019-11-26 15:37:17 -06:00
adelikat 24a0bdbbed Tastudio/InputRoll - improve performance in UpdateValues some 2019-11-26 14:37:49 -06:00
adelikat 1e53d8221f tastudio - set branches and marker views to the same font as the main inputroll 2019-11-26 14:24:31 -06:00
adelikat ea6b67ac39 cleanups in Bookmarks and Marker Controls 2019-11-26 14:10:54 -06:00
adelikat 9a54a461b5 don't redraw twice on Branches and Markers UpdateValues() 2019-11-26 13:34:24 -06:00
adelikat 31114e6abf FastUpdate - do nothing, super speed up for shift+tab. UpdateValues - remove unnecessary Draw 2019-11-26 13:16:32 -06:00
adelikat fed8cd335d fix a few designer files I missed when refactoring default values 2019-11-26 13:11:24 -06:00
adelikat 47273f1278 Tastudio - fix FastUpdate being slower than Update, it seems to need the same logic but just forgot all the logic, let's ensure it doesn't forget 2019-11-26 13:03:28 -06:00
adelikat 69e5a3b088 Tastudio - fix major slowdown when moving the mouse over the InputRoll 2019-11-26 12:58:04 -06:00
adelikat d2a9f51510 Remove a few more hardcoded values in InputRoll constructor 2019-11-26 12:53:10 -06:00
adelikat 22fdbd08d0 InputRoll - don't hardcode padding variables in the constructor 2019-11-26 12:51:36 -06:00
adelikat bab5877d1a InputRoll - don't hardcode GrideLines to true 2019-11-26 12:44:31 -06:00
adelikat 56b33498d9 InputRoll - rip out the UseCustomBackGround flag, and only key off the existence of the override. Seems to be a speed hack, but the only attempt to make it faster (in ram watch) was actually making things slower 2019-11-26 12:33:39 -06:00
adelikat a45b33b8c6 move arrow key hack from tastudio to inputroll so it applies to all inputrolls 2019-11-26 12:07:00 -06:00
adelikat fab108c73a Ram watch - remove some useless overrides 2019-11-26 11:51:57 -06:00
adelikat cd672da319 a few inputroll/tastudio cleanups 2019-11-26 11:36:55 -06:00
adelikat a17584a319 InputRoll - fix behavior of up/down arrow keys 2019-11-26 11:27:55 -06:00
adelikat 44a2565f5c InputRoll - refactor MouseDown hack that checks if emulator is paused, better is to recalculate the pointed cell, anytime it may have changed 2019-11-26 11:19:34 -06:00
adelikat e73e61c5cc InputRoll - fix page up/page down logic 2019-11-26 10:28:32 -06:00
adelikat 9b93c557b8 InputRoll - don't hardcode disabling of Home and End, make it a flag instead (true by default, false for tastudio's inputroll), also fix home/end to be expected listview behavior and delete ctrl+home, ctrl+end those aren't expected behaviors 2019-11-26 10:09:24 -06:00
adelikat fe89df140c InputRoll - when AllowRightClickSelect is true, existing selected rows should be cleared in addition to selecting the right-clicked one 2019-11-26 09:50:19 -06:00
adelikat 6d9dfa8956 InputRoll - misc cleanups 2019-11-26 09:48:26 -06:00
adelikat 557c68862e InputRoll - make AllowRightClickSelect true by default 2019-11-26 09:42:14 -06:00
adelikat 3c14371009 pjm import - fix analog stick importing 2019-11-26 09:11:20 -06:00
adelikat 3e92b8c5ab pjm import - account junk white space at the ened of the file 2019-11-26 08:53:09 -06:00
adelikat c741c37789 fix .pjm import, text based input parsing was completely broken. Fixes #1723 2019-11-25 15:02:26 -06:00
adelikat 64f32983f6 misc movie code cleanups 2019-11-25 08:37:11 -06:00
adelikat ffd2aedfa5 oops, fix paste logic to be the first different frame, not the last 2019-11-24 19:23:12 -06:00
adelikat 6eef264f91 paste - only invalidate on the first different frame pasted, rather than the first selected frame 2019-11-24 19:14:49 -06:00
adelikat cb912bea58 Tastudio - when clearing, invalidate on the first non-empty input rather than first selected row 2019-11-24 17:53:27 -06:00
adelikat 5bbdf2a49e Tastudio.MenuItems - cleanup, fix potential NRE's surrounding clipboard access, fix off by one on clear menu item invalidation logic, fix not dispointing of a disposable dialog 2019-11-24 16:54:08 -06:00
adelikat 1f4a2274d3 TasMovie - more cleanup 2019-11-24 16:06:01 -06:00
adelikat 60487c6a96 don't use Guid.GetHashCode, this was a leftover from some old bad code 2019-11-24 15:53:33 -06:00
adelikat caced9c2a8 TasMovie - remove unused constructor params 2019-11-24 15:40:26 -06:00
adelikat 6a584c00bd TasMovie - delete unused progress worker 2019-11-24 15:35:45 -06:00
adelikat 7d0b736e8d Simplify TasMovie by using auto-properties 2019-11-24 15:33:25 -06:00
adelikat 1c67066e13 TasMovie - a small simplification 2019-11-24 15:26:44 -06:00
adelikat 9c62ded4f5 InputRoll - Recalculate cell size on font change 2019-11-24 15:09:25 -06:00
adelikat 883fea9ec6 Add a font picker, fixes #952 2019-11-24 14:58:58 -06:00
adelikat 8bbc2c75d0 lua - tastudio.loadbranch - use the already existing (and better) load branch method 2019-11-24 14:41:03 -06:00
adelikat 2aaae85c36 InputRoll - use the built in Font property rather than a private variable. Make the default the natural control default, and set the main Tastudio InputRoll window to be arial 8 2019-11-24 14:38:05 -06:00
adelikat 4e9b780539 Lua - implement tastudio.loadbranch #fixes #1650 2019-11-24 13:55:46 -06:00
adelikat 74e1f97ebb cleanups in BookmarksBranchesBox 2019-11-24 13:00:03 -06:00
adelikat a3428128ef EmuLuaLibrary.Tastudio - organize methods some 2019-11-24 12:56:57 -06:00
adelikat 6972046509 EmuLuaLibrary.Tastudio clenaup 2019-11-24 09:37:32 -06:00
adelikat 289971c9e9 .tasproj - convert Session saving/loading to json. This is a breaking change, and older versions will silently fallback to defaults 2019-11-23 21:55:29 -06:00
adelikat b4c4c3b870 .tasproj - use json to save/load statemanager settings. This is a breaking format change, earlier .tasproj will load and silently fallback to default settings 2019-11-23 21:43:23 -06:00
adelikat 707419bba1 some TasMovie cleanups 2019-11-23 21:33:48 -06:00
feos 5ca08b6c29
Camhack support (#1725)
for the camhack to work we have to save a state, hack memory, advance twice to see the changes, then load the state to prevent desync. since we can omit the framebuffer in savestates, loading them can happen without updating the screen, so the hacked camera remains visible.

advancing 2 frames automatically is done like tastudio does it when it seeks to a frame, only from lua now.

and the most questionable part is "invisible emulation", which is how Gens calls this IIRC, when everything that can distract or slow us down is skipped: sound, video, tools updates.

new lua functions:
- client.invisibleemulation()
- client.seekframe()

* for a test, mGBA core uses fake video and audio buffers and renders to them when we want to "skip" rendering. proper setup would involve actually skipping rendering those inside the core.
* allow disabling video and audio updates for gpgx too (proper approach, no fake buffers involved)
* add the script for Sonic Advance
2019-11-23 12:27:14 +03:00
adelikat 825f10d52c Lua console - simplify some 2019-11-22 18:54:52 -06:00
feos d15dc56e15 address #1631 for gambatte 2019-11-20 21:25:55 +03:00
feos 4e389ab1ec address #1631 for subneshawk 2019-11-20 21:10:21 +03:00
feos 4a0ec76c84 tastudio: disable [Ctrl+]Home/End
those are very obscure accelerators that you hit if you miss Ins/Del while editing, and that screws up the editing flow in various ways. if this functionality is needed, it will be enabled with potential miss-hitting in mind. I can't imagine a situation where you'd need them tho.

close #1600
2019-11-20 20:37:24 +03:00
feos b70c49892c omit autosaving if we have the default project name
close #1599
2019-11-20 20:04:03 +03:00
alyosha-tas 2fbf3c3b19 O2Hawk: system management work 2019-11-18 22:17:29 -05:00
alyosha-tas 8b2150dbd3 O2Hawk; Start cleaning up bugs 2019-11-18 18:36:51 -05:00
alyosha-tas 61038a13ae O2Hawk: Expose Core and start running code 2019-11-18 17:33:55 -05:00
alyosha-tas 8b9968da60 O2Hawk: more groundwork 2019-11-17 22:29:17 -05:00
adelikat 23f283aef8 create file watch on new script 2019-11-17 13:04:09 -06:00
adelikat b65f7ae8d9 Lua console - hack to fix reloading a script if it is not enabled 2019-11-17 12:51:08 -06:00
adelikat 4c57718f7d Move autoloading of tools to the Shown event fixes #334 2019-11-17 11:35:53 -06:00
adelikat 16f977a87c Lua console - respect the "reload scripts on load" flag in some places that were ignoring it 2019-11-17 11:25:23 -06:00
adelikat 9f2ea48d2b Ram Watch - clear and update on screen drawing better 2019-11-17 09:53:19 -06:00
adelikat 901e9f2ceb InputRoll - when RowCount changes, deselect rows that may no longer exist, fixes crash on Lua Console when removing lua scripts (and lots of other bugs most likely) 2019-11-17 09:26:18 -06:00
adelikat a2ed0361c4 a newer Nuget.exe and a NuGet.config 2019-11-17 08:55:37 -06:00
adelikat ad4ca38e16 include NuGet.exe so nuget restore works in dist .bat files 2019-11-17 08:27:48 -06:00
adelikat c854ea90b9 remove some obsolete BufferExtensions, and unused ones 2019-11-16 16:55:28 -06:00
adelikat c9f7838833 Lua console - put a cap on number of messages that can hit the console window in a give pass through lua scripts, set it arbitrarily at 50, fixes #376 2019-11-16 14:56:17 -06:00
adelikat eb1d87933b Fix Nintento (breaking config change but we've already thoroughly broken compatibility since last release), partially addresses #971 2019-11-16 12:42:18 -06:00
adelikat c1ba930e64 Lua Console - fix double click toggle and unify logic between double click and toggle menu items 2019-11-16 12:01:43 -06:00
adelikat 6024af5dbc lua console - a bit of cleanup 2019-11-16 11:55:05 -06:00
adelikat 358ad68357 use some C#7isms in InputRoll.cs 2019-11-16 11:41:34 -06:00
adelikat f47854e1d4 GdiRenderer begone! GdiPlusRenderer has significantly more performance and is not OS specific 2019-11-16 11:29:29 -06:00
adelikat dad8919b50 Lua functions list - unify ctrl+c and copy context menu item logic and fix bugs in both 2019-11-16 11:24:33 -06:00
YoshiRulz 6e809adc66
Disable Lua script loading on Unix (resolves #1735) 2019-11-17 02:26:23 +10:00
YoshiRulz a7ffdd948e
Add DelegatingLuaLibrary and set up ApiHawk instantiation 2019-11-16 17:19:04 +10:00
YoshiRulz 27b2d1b6ad
Mirror cleanup from cf4dd6770 onto the Lua APIs 2019-11-16 16:52:32 +10:00
YoshiRulz fab882b7a5 Move most API interfaces and implementations to BizHawk.Client.Common 2019-11-16 17:28:25 +11:00
YoshiRulz 13e4b5396d Rename IMovie to avoid name collision 2019-11-16 17:28:25 +11:00
adelikat 9e30d64954 InputRoll - always redraw when RowCount is set, fixes #1729 2019-11-15 18:10:10 -06:00
adelikat 4d92a0a43d ApiHawk - fix bug in GB/GBC detection 2019-11-15 17:30:57 -06:00
adelikat cf4dd6770c ApiHawk - cleanups 2019-11-15 17:29:38 -06:00
adelikat 00952dedf7 ApiHawk - some cleanup, and fix typo: TotalExecutedycles -> TotalExecutedCycles, note: this is a breaking api change 2019-11-15 17:09:59 -06:00
adelikat 5a1341dd47 misc cleanups 2019-11-15 17:00:43 -06:00
adelikat e974006ea6 RamSearchEngine - simplify some 2019-11-15 16:47:54 -06:00
adelikat ab9c7699ec misc cleanups 2019-11-15 15:15:13 -06:00
adelikat c4658c3e85 remove Bkm as a IMovie implementation and remove all code other than what is necessary to import it 2019-11-14 21:41:37 -06:00
adelikat adf834480a remove .bkm as a standard movie type, require user to run the importer 2019-11-14 21:39:15 -06:00
adelikat 8dfbd752ae SmvImport - remove useless If 2019-11-14 21:03:50 -06:00
adelikat 2a3c9b741e Cleanups 2019-11-14 18:18:46 -06:00
adelikat 40e5106064 oops 2019-11-14 18:01:52 -06:00
adelikat 5aed5ed9c7 rename importer attribute 2019-11-14 18:01:16 -06:00
adelikat 673073e650 data drive the import movies dialog filter 2019-11-14 18:00:33 -06:00
adelikat 0235ca21ab make movie importers internal 2019-11-14 17:19:59 -06:00
adelikat 8586d36942 cleanup SqlApi.cs and fix a disposable problem 2019-11-14 17:19:42 -06:00
adelikat af50d74b98 simplify movie import code more 2019-11-14 17:00:47 -06:00
adelikat f93766e5bb Movie import cleanup 2019-11-14 16:35:29 -06:00
adelikat 0043c1de1e Movie Import cleanup - use IMovie more, don't redundantly save in Pjm and Psx importers, cleanups 2019-11-14 15:59:01 -06:00
zeromus ab5d30c797
Merge pull request #1731 from TheGreatRambler/master
Allow getting the version from the command line
2019-11-14 14:31:11 -05:00
adelikat eb1b658f6e movie import - cleanup 2019-11-13 20:52:20 -06:00
adelikat fb8111d630 convert .mmv import to new style, properly import game gear flag 2019-11-13 20:52:19 -06:00
YoshiRulz 5eb54dbf9e
Fix #1727 2019-11-14 11:37:13 +10:00
TheGreatRambler 3b3cd3d2fd
Update MainForm.cs 2019-11-13 20:05:46 -05:00
TheGreatRambler 05045f9702
Update ArgParser.cs 2019-11-13 19:59:27 -05:00
adelikat 641c3e9f82 convert .smv importer to new style, also convert to bsnes instead of snes9x 2019-11-12 14:59:07 -06:00
James Groom 90575d43aa
Update supported Windows versions (Win10 1803 EOL today) 2019-11-13 02:16:27 +10:00
alyosha-tas 138a2bcef5 O2Hawk: Finish disasm, start execution 2019-11-11 22:19:41 -05:00
alyosha-tas c427d280ba O2Hawk: Start disassembly 2019-11-10 20:22:38 -05:00
adelikat 33d53638e9 convert Vbm importer to new style 2019-11-10 14:35:58 -06:00
adelikat dce39c1cff convert GMV importer to new style 2019-11-10 13:20:13 -06:00
adelikat b1bdb8c7ea port fmv importer to new style 2019-11-10 12:48:51 -06:00
adelikat f9eadf104b delete unused movie import code 2019-11-10 12:18:28 -06:00
adelikat c5ecba326f convert YMV importing to new way, and also fix it, it's been broken for a long time, if it ever worked 2019-11-10 12:14:50 -06:00
adelikat c1516de259 Convert mc2 to new import style, properly support pcecd flag, and number of controller ports 2019-11-10 11:35:45 -06:00
adelikat ced5b313a5 Leagcy movie import - remove more fm2 and lsmv specific code 2019-11-10 11:10:45 -06:00
adelikat 6086f98fa0 convert lsmv importer to new style 2019-11-10 10:55:53 -06:00
adelikat 223795887e remove importer support for .mcm, .nmv, .vmv, .zmv. These are very dated and with very few movies out in the wild 2019-11-10 10:02:26 -06:00
adelikat 6d535a11ee Convert fcm importer to new style, input parsing seems to have been broken this whole time, this commit doesn't fix that, just converts it 2019-11-10 09:55:27 -06:00
adelikat d0f54f88ee delete some fm2 specific legacy importer code 2019-11-10 09:05:17 -06:00
adelikat 8baa400d34 fix up new fm2 import and use it instead of the old one. FDS is still not supported, nor peripherals, but they weren't supported in the old one either 2019-11-10 09:00:27 -06:00
adelikat 0a63255244 progress on fm2 importer rewrite (not wired up yet) 2019-11-10 09:00:27 -06:00
adelikat 7c9f2a2873 cleanup Import classes 2019-11-10 09:00:27 -06:00
feos 8a7e495039 allow suppressing more OSD savestate reports from lua 2019-11-10 17:09:10 +03:00
adelikat 46ea09da10 MovieImport - cleanup, and properly wire up the new style importers. Pjm, Pxm no longer broken 2019-11-09 14:43:49 -06:00
adelikat 7c38b855ca nitpick rename of a few files 2019-11-09 13:45:23 -06:00
adelikat 93562eb935 cleanup FileLoader.cs 2019-11-09 13:40:15 -06:00
alyosha-tas 67d4bea0d9 O2Hawk: more cpu work 2019-11-09 10:10:35 -05:00
adelikat 45a777c983 Simplifications and cleanups in Emulation.Common 2019-11-08 09:48:53 -06:00
alyosha-tas aced228b43 O2Hawk: more CPU work 2019-11-08 10:44:00 -05:00
James Groom 9a5f40a4c5
Fix link 2019-11-07 19:22:53 +10:00
YoshiRulz 62bf65d760
Update readme and build scripts 2019-11-07 19:17:28 +10:00
adelikat 40ac534f51 Memory callback system - simplify and remove now unused methods 2019-11-05 20:02:45 -06:00
alyosha-tas 558171d949 GBHawk: Fix a regression 2019-11-04 20:37:38 -05:00
alyosha-tas bc45386467 GBHawk: fix spirou scrolling 2019-11-04 15:32:22 -05:00
YoshiRulz ae12b0e23c
Revert some changes from #1237 and #1380 that aren't needed anymore 2019-11-04 19:53:14 +10:00
YoshiRulz 8c059aa43c
Replace helper methods with readonly bool IsUnixHost and cleanup 2019-11-04 14:30:05 +10:00
J.D. Purcell fec63fb66a Spaces -> tabs, fix mixed newlines. 2019-11-03 20:58:36 -05:00
alyosha-tas 2750a420ef A2600: audio bug fix (Space Jockey) 2019-11-03 20:21:25 -05:00
J.D. Purcell 6eb44acd4f Fix noise from last merge. 2019-11-03 18:04:31 -05:00
adelikat e4e10646bf Merge branch 'master' into MoreUnixMonoCompatWork
# Conflicts:
#	BizHawk.Client.EmuHawk/Program.cs
#	BizHawk.Common/BizInvoke/MemoryBlock.cs
2019-11-03 16:09:22 -06:00
adelikat 942d9fc75e Simplify OS checks with some helpful methods 2019-11-03 16:04:42 -06:00
J.D. Purcell e1075d1006 Virtu: Make savestates smaller. 2019-11-03 14:12:48 -05:00
adelikat b9ade1a555 Merge branch 'master' into MoreUnixMonoCompatWork 2019-11-03 12:55:53 -06:00
adelikat 46385174da Hex editor - more cleanups 2019-11-03 12:46:39 -06:00
adelikat 7472e112ab Hex Editor - simplify key press logic even more 2019-11-03 12:25:36 -06:00
adelikat d57e8f790b Hex Editor - simplify keypress logic 2019-11-03 11:56:02 -06:00
adelikat c0c1c32b72 Hex Editor - more cleanup 2019-11-03 11:53:52 -06:00
adelikat 6de6e7b055 make nibbles logic more respectable 2019-11-03 11:48:31 -06:00
adelikat dfb87801af Hex Editor - restore funcionality to show typing in progress, in a way that doesn't suck 2019-11-03 11:31:53 -06:00
adelikat 2835694546 Hex Editor - fix crash when typing values into the hex editor with no address highlighted 2019-11-03 11:20:50 -06:00
adelikat 4d6d951286 Hex Editor - more cleanup 2019-11-03 11:18:23 -06:00
adelikat f047a19530 Hex Editor - consolidate highlighted address variables 2019-11-03 11:14:08 -06:00
adelikat 2ba579cfdf Hex Eidtor - rip out swap bytes crap and re-fix BigEndian functionality. Someone will have to explain why swap is needed. And do a not terrible implementation that leaves a non-funcitonal menu item! 2019-11-03 10:58:41 -06:00
adelikat 9fb8499ffe Hex Editor - lots of cleanups 2019-11-03 10:46:45 -06:00
adelikat 39586a5bf0 Remove NewHexEditor (can be developed on a branch instead) 2019-11-03 10:20:07 -06:00
J.D. Purcell fae50bc807 TAStudio: Fix crash when ctrl+clicking with no previous row selected. 2019-11-03 10:51:24 -05:00
YoshiRulz 94935bc45e
Fix #1714
why is RedirectStandardInput=true,UseShellExecute=false not the default
2019-11-03 23:11:29 +10:00
alyosha-tas 0de16bc8b9 A2600: journey escape fixes #1614 2019-11-03 07:41:22 -05:00
J.D. Purcell 64e8270cab Update check fix. 2019-11-02 17:00:53 -04:00
J.D. Purcell afff86fb29 Update Checker: Use GitHub API to find latest version. 2019-11-02 16:53:27 -04:00
J.D. Purcell d71b2d26b5 Update Newtonsoft.Json 2019-11-02 16:24:08 -04:00
J.D. Purcell 999a8f094b Fix .vs ignore in .gitignore 2019-11-02 16:21:49 -04:00
J.D. Purcell 6fac65984c Shouldn't be in version control. 2019-11-02 16:11:40 -04:00
adelikat ae7221988b cheats code cleanup 2019-11-02 11:25:11 -05:00
adelikat 1239149af5 cleanup movie forms 2019-11-02 11:05:01 -05:00
adelikat 5fa5674260 EditSubtitles - fix message typo, simplify, TryParse instead of catching parse errors, fix a NRE 2019-11-02 10:50:52 -05:00
adelikat f967ebc3a7 cleanup Communication.cs 2019-11-02 10:33:26 -05:00
adelikat 7936797a9d Custom controls house cleaning - remove a bunch of unused controls, do some cleanups 2019-11-02 10:08:06 -05:00
James Groom cdf42777dc
Merge branch 'master' into MoreUnixMonoCompatWork 2019-11-02 18:15:46 +11:00
J.D. Purcell 0405eb7c73 XAudio2: Fix missing dispose. 2019-11-02 00:38:50 -04:00
J.D. Purcell 39b54f7202 Fix missing UI usings. 2019-11-02 00:38:50 -04:00
J.D. Purcell 17701dc57d Fix wrong return type in P/Invokes. 2019-11-02 00:38:50 -04:00
J.D. Purcell 447e8f59e5 To match master (merge error?) 2019-11-01 22:54:14 -04:00
J.D. Purcell 4b9f53db35 Remove unused files. 2019-11-01 22:51:01 -04:00
J.D. Purcell b8aa6c36d6 EmuHawk: Add manifest (like in master - accidentally omitted in last merge?) 2019-11-01 22:47:07 -04:00
J.D. Purcell f2d43f306c Remove unused setting. 2019-11-01 22:44:02 -04:00
adelikat fdd0076485 Merge branch 'master' into MoreUnixMonoCompatWork 2019-11-01 20:59:40 -05:00
adelikat ba9d5f7a4a SharpCompress - private = true, also remove processorArch = MSIL, not sure it matters or not, but didn't intent to put it 2019-11-01 20:54:40 -05:00
YoshiRulz d9f8a2c58e Hopefully fix AppVeyor CI 2019-11-01 21:32:17 -04:00
adelikat b862a464ee remove our outdated 7z shenanigans with sharpcompress 2019-11-01 20:22:05 -05:00
adelikat 5d6c33f080 remove TAStudio ui that was picking the renderer (it's automatic now) 2019-11-01 15:56:26 -05:00
J.D. Purcell 19dd590f2c Improve error message. 2019-11-01 14:53:37 -04:00
J.D. Purcell 0fdc533071 We don't need this anymore after 9141b0ed. 2019-11-01 14:52:41 -04:00
YoshiRulz 3a878b0570
Hopefully fix AppVeyor CI 2019-11-01 23:42:25 +10:00
adelikat 9141b0ed19 tool manager - don't go looking for tools outside of the EmuHawk assembly, I suspect this will actually fix the appveyor build issue, indirectly. 2019-10-31 21:03:19 -05:00
James Groom 7d780d1954
Un-delete ReflectionOnlyAssemblyResolve subscriber 2019-11-01 12:56:44 +11:00
adelikat 5f1c76b285 Revert "ReflectionTypeLoadException troubleshooting."
This reverts commit e15e32eb78.
2019-10-31 20:52:50 -05:00
James Groom c6dff68981
Fix bug remaining after merge commit 2019-11-01 00:41:53 +00:00
adelikat 00691b58a2 misc cleanups in Client.Common movie and watch files, mostly typos and C#7isms 2019-10-31 19:25:11 -05:00
J.D. Purcell e15e32eb78 ReflectionTypeLoadException troubleshooting. 2019-10-31 20:16:01 -04:00
adelikat 6c7653e158 Merge branch 'master' into MoreUnixMonoCompatWork
This doesn't compile because of Input.cs, didn't know what to do. Also search for Merge TODO for some commenting things that probably need to be deleted
# Conflicts:
#	BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
#	BizHawk.Client.EmuHawk/CustomControls/InputRoll.Drawing.cs
#	BizHawk.Client.EmuHawk/CustomControls/InputRoll/InputRoll.cs
#	BizHawk.Client.EmuHawk/Program.cs
#	BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs
#	BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs
#	BizHawk.Client.EmuHawk/tools/ToolHelpers.cs
#	BizHawk.Client.EmuHawk/tools/ToolManager.cs
#	BizHawk.Client.EmuHawk/tools/TraceLogger.Designer.cs
#	BizHawk.Client.EmuHawk/tools/TraceLogger.cs
#	BizHawk.Client.EmuHawk/tools/Watch/RamSearch.Designer.cs
#	BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs
#	BizHawk.Common/BizInvoke/DynamicLibraryImportResolver.cs
2019-10-31 17:01:19 -05:00
adelikat 7d554f06d3 return an IMovie instead of Bk2Movie from ImportFile 2019-10-31 16:08:05 -05:00
adelikat 3b25fdc8ca simplify some movie import code 2019-10-31 16:08:05 -05:00
alyosha-tas d6f46104dd O2hawk: internal graphics table 2019-10-31 13:29:18 -04:00
alyosha-tas 520ba97caa O2Hawk start 2019-10-31 09:43:25 -04:00
YoshiRulz 41caf0e616
Reduce "pause lag" on Paper Mario (#558) by using CopyColorToRDRAM = 1 2019-10-31 03:32:29 +10:00
YoshiRulz f8379d9fd4
Bump ReSharper analysis to C# 8.0 2019-10-31 03:30:00 +10:00
adelikat 2b7cb1bb7d BizHawk.Emulation.Common - cleanups -> C#6/7isms, fix some typos, variable naming, spaces to tabs 2019-10-29 13:59:08 -05:00
adelikat c78b6df363 remove Autohawk tool, this doesn't do anything and never caught on as an idea 2019-10-29 13:01:07 -05:00
adelikat abcda424dc fix a typo in a message box message, a few other cleanups in the vicinity 2019-10-29 12:50:28 -05:00
feos 0247a8f1a8
mame core wip (#1705)
* add MAME to OpenAdvanced
* make mame launch games
limited to arcades that only need rom name. other devices require machine name and rom name, and won't run. nor they are meant to be supported anyway: we have enough emulators that do the job better for particular devices.
dunno if direct disk access will be avoidable, there are quite some files it might want to load other than the rom (parent rom, bios, artwork). trapping all of these might be a future task.
it is also known that mame can load "romname.zip" file just as well as "romname" folder, which would represent an unarchived zip. I make use of it to send it zip name with extension. it's easy, and we're not obliged to recognize mere folder paths in the mame-advanced-loader logic.
* ability to run lua code inside mame
2019-10-29 18:37:27 +03:00
adelikat d65092e967 Misc cleanups in tool dialogs - mostly the use of expression body (C#6/C#7isms) 2019-10-29 09:27:56 -05:00
adelikat 0b965dffc5 misc cleanups 2019-10-29 08:23:45 -05:00
J.D. Purcell 1b548ed92d InputRoll horizontal: Improve look of column dragging. 2019-10-28 01:35:16 -04:00
J.D. Purcell 4d2f6e902e InputRoll horizontal! 2019-10-27 22:59:42 -04:00
J.D. Purcell 28c0586c8b InputRoll horizontal - WIP. 2019-10-27 21:00:52 -04:00
adelikat 5c674e5f8f Watch UI classes - some cleanups, mostly C#7isms 2019-10-27 18:02:06 -05:00
J.D. Purcell 90724bb777 Work on InputRoll horizontal mode a bit. 2019-10-27 17:55:53 -04:00
J.D. Purcell 9471f7ca03 Cleanups 2019-10-27 14:00:02 -04:00
adelikat 3e64051c7d Mainform - cleanups, remove unused code, typos, C#7isms 2019-10-27 11:42:17 -05:00
J.D. Purcell 69edada441 Set LangVersion to 8.0. Requires Visual Studio 2019 with 16.3+ update installed. 2019-10-27 12:14:19 -04:00
J.D. Purcell 3dfb0d39c8 AppVeyor test (C# 8.0?) 2019-10-27 12:05:13 -04:00
adelikat d9a160a9af Merge branch 'master' of https://github.com/TASVideos/BizHawk 2019-10-27 10:55:06 -05:00
adelikat 924618ee8f Set resharper language level to 7, add some emulator lingo to the resharper dictionary 2019-10-27 10:54:29 -05:00
J.D. Purcell 12c64dc40d InputRoll: Fix text clipping too early with GDI+ renderer. 2019-10-27 11:46:21 -04:00
adelikat 2fece04b5a set DeveloperBuild back to true 2019-10-27 10:35:29 -05:00
adelikat f579961823 marker control - no need to set Color.White, that is the default 2019-10-27 10:14:29 -05:00
adelikat cbace55d01 Tastudio - misc cleanups 2019-10-27 09:59:05 -05:00
adelikat aaee3cf48c Tastudio - fix splitter restore logic on restore defaults 2019-10-27 09:34:32 -05:00
adelikat 290cf4c4a4 InputRoll - attempt to cleanup drawing logic a bit 2019-10-27 09:18:14 -05:00
adelikat 5f021ca0e2 InputRoll - attempt to put some attributes on public properties. This is a control, public properties without attributes and/or documentation should be avoided 2019-10-26 18:35:12 -05:00
adelikat 9d87550c2a Cell - implement == and != overrides, this might fix some subtle problems in input roll 2019-10-26 17:22:49 -05:00
adelikat 6604e5dc17 InputRoll - cleanup and fix some typos 2019-10-26 17:16:15 -05:00
adelikat 0ce5046061 cleanup input roll column and cell classes 2019-10-26 17:06:42 -05:00
adelikat b54be19e9e InputRoll - reorg - put in its own folder, break out column and cell classes into separate files 2019-10-26 16:49:52 -05:00
adelikat 14ffd143d4 InputRoll - fix placement of rotated text 2019-10-26 16:25:42 -05:00
adelikat 5a17d20cf0 InputRoll - some more cleanup 2019-10-26 16:20:27 -05:00
adelikat af59d2fe6b InputRoll - misc cleanups 2019-10-26 16:04:27 -05:00
adelikat 179e71efee remove some now unused control extension methods 2019-10-26 16:01:21 -05:00
adelikat d592526c3c InputRoll - stop passing around unused paint event args 2019-10-26 15:47:43 -05:00
adelikat f7b2982dad Merge branch 'inputroll-rotatefix' 2019-10-26 15:37:47 -05:00
J.D. Purcell d2cf95e18f GdiPlusRenderer: Implement string rotation. 2019-10-26 16:31:21 -04:00
adelikat 772bd5b65e Remove blend option in IControlRenderer, true was always being passed for GDI, so just always do alpha blend in GDI 2019-10-26 15:22:47 -05:00
adelikat 4d576ea9da Hex Editor - improve performance a bit when there are highlighted or frozen addresses by not newing up brushes and pens on every draw 2019-10-26 15:08:54 -05:00
adelikat 064a78d7f3 inputroll - fix crash when resized to 0 2019-10-26 14:37:42 -05:00
adelikat e21e861e99 temp hack to force tastudio to draw the frame column rotated in horizontal orientation 2019-10-26 14:22:19 -05:00
adelikat f6b0fa1550 GdiRenderer - cleanup font caching logic and fix rotated text 2019-10-26 12:59:30 -05:00
adelikat e11f3e68e7
Merge pull request #1704 from TASVideos/GdipRenderer1
GdiPlusRenderer: Remove caches, implement Dispose
2019-10-26 12:45:16 -05:00
J.D. Purcell 4e2818222d GdiPlusRenderer: Remove caches, implement Dispose. 2019-10-26 13:40:20 -04:00
YoshiRulz 5e5f69f07e
Move _vBar/_hVar init out of ctor, init CellHeight to non-zero
CellHeight/_vBar/_hBar were being read *while the ctor was running* due to
unexplained Mono magic (and hence their values were 0/null/null, respectively)
2019-10-27 03:38:30 +10:00
adelikat 437c2f067a TAStudio - Consolidate the two restore defaults menu items. Restore splitter positions when restoring defaults 2019-10-26 11:40:04 -05:00
adelikat 9bbfb995b8 GDIPlusRenderer - put off rotate text, for now 2019-10-26 11:26:12 -05:00
adelikat 8977137e84 GDIPlusRenderer - cleanup 2019-10-26 11:11:38 -05:00
adelikat 2e489763b9 use OSTailoredCode class to decide GDI vs GDIPlus renderering 2019-10-25 18:20:13 -05:00
J.D. Purcell 6395089a9c TAStudio.ListView.cs: Fix missing alpha values. 2019-10-25 18:02:31 -04:00
YoshiRulz ada256b0f1
Port Gambatte 2019-10-25 22:07:14 +10:00
YoshiRulz b5d188ad5e
Migrate RAM Search to PAVLV 2019-10-25 22:04:56 +10:00
YoshiRulz 0f687ff84e
Port Cygne (Wonderswan core)
also updates blup_buf headers? blame @Asnivor
2019-10-25 21:46:17 +10:00
YoshiRulz d963f91707
Port VBA-Next 2019-10-25 21:39:46 +10:00
YoshiRulz 12e83ac257
Port Handy (Lynx core) 2019-10-25 21:36:18 +10:00
YoshiRulz 8c7862aa8a
Fix .so versioning 2019-10-25 21:33:05 +10:00
YoshiRulz a4a11ef859
Refactor search paths 2019-10-25 21:30:43 +10:00
YoshiRulz 92721a816a
Add /usr/lib/bizhawk to the search path 2019-10-25 21:28:03 +10:00
YoshiRulz 9946f2ff16
Re-add FPU precision, enabled only on Windows 2019-10-25 21:27:05 +10:00
YoshiRulz faddddca05
Add /usr/lib to the search path 2019-10-25 21:22:56 +10:00
YoshiRulz 60cf4e6c02
Remove FPU precision (probably not needed according to natt) 2019-10-25 21:21:56 +10:00
YoshiRulz 4974807b21
BizInvoke: resolve full path for DLLs on Unix 2019-10-25 21:19:58 +10:00
YoshiRulz fb29663ce6
Platform-agnostic VirtualListView 2019-10-25 21:11:54 +10:00
YoshiRulz b904d3d71c
Look for libquicknes.dll/.so better 2019-10-25 19:21:36 +10:00
YoshiRulz d0159ee565
Port InputRoll by adding GDI+ implementation
also available for Windows users via a toggle in TAStudio
2019-10-25 19:17:50 +10:00
adelikat 28dcae6c8b GDIPlus renderer - use brush cache for text drawing 2019-10-24 16:35:07 -05:00
Asnivor 2e8d7346c3 InputRoll: Implement proper double buffering (improves gdi+ inputroll performance by a factor of 8 or 9 on my machine) 2019-10-24 15:49:51 -05:00
adelikat 7b7e9a269a Rough in of a GDI+ Renderer implementation 2019-10-24 15:49:51 -05:00
adelikat b7f8f830e0 move some font shenanigans into GDI Renderer instead of input roll 2019-10-24 15:49:51 -05:00
adelikat b4a38597a6 remove unnecessary hack 2019-10-24 15:49:51 -05:00
adelikat f86b218111 Renderer doc fix 2019-10-24 15:49:51 -05:00
adelikat 9dc91e508e simplify renderer api 2019-10-24 15:49:51 -05:00
adelikat ca2767c536 HexView - cleanup and comment out GDIREnderer for now 2019-10-24 15:49:51 -05:00
adelikat 92d6769b06 inputroll - rename renderer variable 2019-10-24 15:49:50 -05:00
adelikat 0a7db2ad4d cleanup GDI Renderer 2019-10-24 15:49:50 -05:00
adelikat 74450ee0a6 create an interface for GDIRenderer 2019-10-24 15:49:50 -05:00
adelikat c0e2529b20 tastudio - don't nag about inaccurate cores if autoloading a file 2019-10-24 15:49:23 -05:00
J.D. Purcell 2054a6b905 RomFilter cleanup. 2019-10-22 11:54:42 -04:00
J.D. Purcell 219d0d2e8d Remove old commented code (it got moved to FileLoader 3+ years ago). 2019-10-22 09:44:22 -04:00
J.D. Purcell 1df41efc0d Consolidate core accuracy warning dialog. 2019-10-21 23:54:16 -04:00
J.D. Purcell 1aadff8ca1 Cleanup speed increase/decrease. 2019-10-21 22:13:48 -04:00
J.D. Purcell 09dc1df9ae Fix NullReferenceException when loading SNES MSU-1 XML file (MSU-1 still doesn't work for me though). 2019-10-21 20:09:55 -04:00
alyosha-tas bc76a4a040 Cheats: typo fix 2019-10-21 14:30:34 -04:00
alyosha-tas 3f216fb4a4 Disable cheats hotkey 2019-10-21 14:18:25 -04:00
J.D. Purcell c956b5993b Small FFT change I had stashed. 2019-10-21 00:10:28 -04:00
J.D. Purcell 952609eeaa Factor out some common stuff in rom load/close. 2019-10-20 23:36:11 -04:00
Loren b1554be720 Use WebUtility.HtmlDecode() to decode game names (#1698)
Change '&amp;' to '&' in gamedb_goodnes.txt. Fixes #1667.
2019-10-20 22:35:31 -04:00
J.D. Purcell 99f63f9a9f Don't even need this variable. 2019-10-20 21:27:53 -04:00
J.D. Purcell 69bb2322a1 Try to clean up ROM loading a bit. It's not much but it's a start. 2019-10-20 20:41:25 -04:00
J.D. Purcell bd6658aa41 Bump MinimumVisualStudioVersion in solution to require VS2019 2019-10-20 18:16:55 -04:00
J.D. Purcell efebef42c0 Test 2019-10-20 18:03:37 -04:00
J.D. Purcell 7532086235 Add appveyor.yml 2019-10-20 18:00:54 -04:00
J.D. Purcell 2f4a38d841 MSBuild 16 2019-10-20 17:44:50 -04:00
J.D. Purcell bb2c21b545 How about MSBuild 15 2019-10-20 17:30:54 -04:00
J.D. Purcell bda6206cb2 See if AppVeyor can use MSBuild 16 2019-10-20 17:29:30 -04:00
J.D. Purcell b9a4706133 Some C# style rules in editorconfig 2019-10-20 16:08:08 -04:00
J.D. Purcell b0c7bab94e Fix small binding regression (tabbing into the first input widget could trigger a tab bind). 2019-10-20 14:42:14 -04:00
J.D. Purcell 23433b856f Hotkey/controller config: Fix issue where input events get queued and processed by the main form after the dialog is closed. For example if you opened the hotkey config, typed "-" in the search box, and closed the dialog, it would trigger Decrease Speed in the main form. Also redo an old hack fix the right way. 2019-10-20 13:47:22 -04:00
J.D. Purcell 09314bdeda Add readonly keyword. 2019-10-20 11:06:39 -04:00
J.D. Purcell 4445a425a2 ToolManager cleanup. 2019-10-20 10:47:23 -04:00
J.D. Purcell 7e38bf61c9 ToolManager.IsAvailable fix. 2019-10-20 10:17:13 -04:00
alyosha-tas ff35dfab57 fix #1697 2019-10-20 09:42:54 -04:00
J.D. Purcell 1fadcb97f2 Misplaced this in last commit. 2019-10-20 01:43:08 -04:00
J.D. Purcell a2215fb5df Fix AppVeyor build. 2019-10-20 01:24:28 -04:00
J.D. Purcell b01f52c01b Ability to handle alternate keyboard layouts (e.g. Dvorak). Optional and off by default for now due to its experimental nature. Closes #1584 2019-10-20 01:16:27 -04:00
alyosha-tas db1dc74591 Mostly Fix #1696 2019-10-19 21:28:06 -04:00
J.D. Purcell 33d9b08e39 Cleanup 2019-10-19 21:17:47 -04:00
adelikat bc4498b9dd VirtualListView begone! 2019-10-19 20:06:59 -05:00
adelikat ccdf616d46 convert Tastudio UndoHistory from VirtualListView to InputRoll 2019-10-19 20:03:05 -05:00
adelikat 7fc4e82ef9 Debugger Breakpoints - use ListView in virtual mode instead of VirtualListView 2019-10-19 20:03:05 -05:00
J.D. Purcell 4eea88a988 Hotkey Config: Fix when binding key combination if the modifier is released first (e.g. Ctrl+C with Ctrl released first). 2019-10-19 20:51:04 -04:00
adelikat 9100526a0c Convert debugger to use InputRoll instead of VirtualListView 2019-10-19 19:16:45 -05:00
adelikat 701533f4fe convert CDL tool to use InputRoll 2019-10-19 18:17:21 -05:00
adelikat 279726d52c convert TraceLogger to use InputRoll 2019-10-19 18:17:21 -05:00
J.D. Purcell 4ed50200c8 Some cleanups in Input.cs 2019-10-19 17:50:24 -04:00
adelikat bd0c81d791 InputRoll - don't blow up if QueryItemBkColor isn't defined 2019-10-19 14:59:57 -05:00
adelikat ab5b2e44d8 Merge branch 'ramwatch-inputroll' 2019-10-19 14:41:48 -05:00
adelikat da0e59c10f Multihawk begone! 2019-10-19 14:38:58 -05:00
adelikat b84413b947 LuaFunctions dialog - use listview in virtualmode instead of virtuallistview 2019-10-19 14:26:45 -05:00
adelikat 2a6225940b PlayMovie - use listview in virtual mode instead of VirtualListView 2019-10-19 14:18:43 -05:00
adelikat 975c9f9f0d LogWindow - use ListView in virtual mode instead of VirtualListView 2019-10-19 13:55:26 -05:00
adelikat de01596617 delete unused TasListView, not sure what this was trying to be 2019-10-19 13:07:36 -05:00
adelikat b5d05e0f0c InputRoll - properly calculate if a vertical scrollbar is needed 2019-10-19 13:01:53 -05:00
adelikat f96e778c35 remove unused method 2019-10-19 11:46:56 -05:00
adelikat 7428a5d244 InputRoll - if column resize is enabled, double clicking a column edge resizes it to fit the text 2019-10-19 11:45:18 -05:00
adelikat fb2048075c InputRoll - cutoff text if it overflows the cell 2019-10-19 11:21:34 -05:00
adelikat 9a4de3b70d remove some now unused methods 2019-10-19 10:55:37 -05:00
adelikat 6c22e1c4c6 Lua console - implement saving/loading of column info 2019-10-19 10:45:42 -05:00
adelikat f802f48754 Lua console - implement double click toggle 2019-10-19 10:11:04 -05:00
adelikat 571c172bd4 remove image stuff from lua console .resx 2019-10-19 09:54:38 -05:00
adelikat d6972d1252 Lua Console - use InputRolle, fix all kinds of bugs with using Separators 2019-10-19 09:50:21 -05:00
adelikat 83032a363b Ram Watch - hack for backwards config compatibility 2019-10-19 09:16:45 -05:00
YoshiRulz 881974b495
Re-enable the Lua Console on Unix 2019-10-19 15:31:58 +10:00
YoshiRulz db020e499e
Extract superclass from MemoryBase and start on a Unix implementation 2019-10-19 15:20:31 +10:00
adelikat 5826d584cc convert cheats dialog to use InputRoll 2019-10-18 21:43:34 -05:00
adelikat 5b5a238590 Ram Search - allow column resize 2019-10-18 21:41:50 -05:00
adelikat 6977ac20a1 Ram Search - remove some code that i don't think is necessary with inputroll 2019-10-18 21:21:44 -05:00
adelikat 109b0fd8fe Ram Search - allow multi-select 2019-10-18 21:20:50 -05:00
adelikat d76531064e Ram Search - show Prev column by default 2019-10-18 20:07:16 -05:00
adelikat 3d33c3fa21 Ram Search - fix GoTo Address 2019-10-18 20:04:15 -05:00
adelikat 427f51f407 fix inputroll vertical scrollbar logic 2019-10-18 20:02:58 -05:00
adelikat a51bca38f0 convert RamSearch to use InputRoll 2019-10-18 18:56:21 -05:00
alyosha-tas 9da739eaeb GBHawk: TAMA5 initial work 2019-10-18 17:35:59 -04:00
adelikat b60ed03543 inputroll - column resizing (not implemented for HorizontalOrientation yet) 2019-10-18 10:05:26 -05:00
adelikat d898c321f2 make ram watch wider by default as input roll takes a bit more width for the text, fix changes default column width 2019-10-18 10:05:26 -05:00
adelikat b3e6d1b49f Ram Watch - wire up column sorting 2019-10-18 10:05:26 -05:00
adelikat 488b8457b0 Ram watch - this hack is no longer needed, inputroll doesn't have this issue 2019-10-18 10:05:26 -05:00
adelikat f875bf656d Ram Watch - more configuration settings 2019-10-18 10:05:26 -05:00
adelikat 3e1f783c27 Ram watch - fix multi-select 2019-10-18 10:05:26 -05:00
adelikat 9c574c2124 Ram Watch - cleanup 2019-10-18 10:05:26 -05:00
adelikat cfab768846 Ram Watch - saving/loading column settings 2019-10-18 10:05:25 -05:00
adelikat 5b83b9e019 Ram Watch - Wire up column hiding/showing 2019-10-18 10:05:25 -05:00
adelikat d3353f6acf Convert Ramwatch to use InputRoll instead of VirtualListView, rough in, still lots of todos 2019-10-18 10:05:25 -05:00
J.D. Purcell 854315d96d TabIndex fixes. 2019-10-14 11:39:49 -04:00
alyosha-tas 4324e1b309 GBHawk: sync settings fix 2019-10-14 08:58:54 -04:00
J.D. Purcell c42bf37e86 Sound: Improve audio throttle behavior with N64. GetSamplesSync sometimes returns > 100ms of audio from N64. 2019-10-13 22:56:14 -04:00
J.D. Purcell 6504387302 Option to accept background input only from controller. Closes #1396. 2019-10-13 19:49:24 -04:00
alyosha-tas 2e31d38568 GBHawk: fix a register 2019-10-13 19:27:14 -04:00
J.D. Purcell da49f85b81 HotkeyConfig: Code cleanup. 2019-10-13 16:34:55 -04:00
J.D. Purcell d95340182e Fix unescaped ampersands in the Recent ROM menu. 2019-10-13 15:42:38 -04:00
J.D. Purcell d3b62009e6 BasicBot: Fix DPI scaling issues. 2019-10-13 14:49:25 -04:00
J.D. Purcell 1ebdfa149a Fix NullReferenceException in ToolManager.IsAvailable and remove unnecessary try/catch. 2019-10-13 14:21:15 -04:00
J.D. Purcell eed94c11cc TAStudio: Improve control alignment and fix branches/markers not showing due to DPI scaling. Fixes #1151. 2019-10-13 13:04:23 -04:00
James Groom 90b0574bc3
Remove unnecessary calls to ToList (e.g. in foreach)
squashed PR #1591
2019-10-13 15:50:57 +00:00
YoshiRulz 0e9cc431d9 Rewrite IsAvailable, call to Assembly.GetTypes is now lazy 2019-10-13 15:27:37 +00:00
YoshiRulz 462bd891af
Fix SevenZipLibraryManager.LoadLibrary 2019-10-14 00:51:44 +10:00
YoshiRulz 7df71f2c86
Properly fix lib loading (builds upon 77bbc4128)
Also cleaned up OSTailoredCode.cs and fixed qualifiers in Program.cs
2019-10-13 15:23:14 +10:00
J.D. Purcell 9b8db26086 TAStudio: Disable DPI scaling at least until I find a proper fix. It's ugly but now usable at 150% scaling. 2019-10-12 23:27:42 -04:00
J.D. Purcell 0dcb0b9bb4 Fix DPI scaling issue in custom message boxes (Snex9x/QuickNES accuracy warnings). 2019-10-12 22:34:53 -04:00
J.D. Purcell 7ef07bac02 Fix DPI scaling. 2019-10-12 19:38:18 -04:00
J.D. Purcell 77bbc41286 Fix prerequisites dialog (broken by 42764f00 and 436b6452). 2019-10-12 17:56:20 -04:00
alyosha-tas d7ee6ba579 GBHawk: Misc cleanup 2019-10-12 16:04:13 -04:00
alyosha-tas 8384f4298d GBHawk: another mbc3 fix 2019-10-11 21:28:46 -04:00
alyosha-tas 1c51f09e65 GBHawk: add RTC offset setting 2019-10-11 13:19:40 -04:00
alyosha-tas 06d53a106a GBHawk: RTC update 2019-10-11 09:31:21 -04:00
alyosha-tas 5916b9af17 GBHawk: minor bug fixes 2019-10-10 20:12:44 -04:00
alyosha-tas 931a4dcde9 GBHawk: window timing fixes 2019-10-10 09:57:40 -04:00
alyosha-tas 78cbb9aac5 GBHawk: fix window timing, special cases still need work 2019-10-09 16:37:09 -04:00
alyosha-tas f765e42578 GBHawk: more IRQ timing 2019-10-09 12:46:48 -04:00
alyosha-tas 724a3783f1 GBHawk: more hdma work 2019-10-08 20:26:24 -04:00
alyosha-tas a8080d129d GBHawK: HDMA and IRQ work 2019-10-08 19:21:40 -04:00
alyosha-tas 1c07d3d2ad GBHawk: fix IRQ clear timing 2019-10-08 08:54:50 -04:00
alyosha-tas 8beb0a9ae5 GBHawk: MBC3: fix RTC 2019-10-07 20:04:57 -04:00
YoshiRulz 1f8972df4e
Allow initialising OpenGL context on Unix 2019-10-07 03:08:57 +10:00
YoshiRulz 4e5b763c38
Reenable OpenTK gamepad functionality 2019-10-07 03:08:41 +10:00
YoshiRulz 17ba5fa815
Use FolderBrowserDialog on Unix instead of FolderBrowserEx 2019-10-06 19:54:45 +10:00
YoshiRulz d9c42f44a1
Implement IHawkFileArchiveHandler using NuGet package SharpCompress 2019-10-06 16:51:02 +10:00
YoshiRulz 3c8c761cca
Subscribe to CurrentDomain.AssemblyResolve on Unix
This is so DLLs not in the executing directory can be found without having to
copy to local, i.e. Nlua.dll and KopiLua.dll --Asnivor
2019-10-06 16:22:05 +10:00
adelikat 357cdf5df7 WatchEditor - some code cleanup 2019-10-04 13:29:08 -05:00
adelikat 879f8a97bc Resharper - ProperCase is okay for constants 2019-10-04 13:21:48 -05:00
adelikat febdadc49e Ram Search - some cleanup 2019-10-04 13:19:14 -05:00
adelikat 093c86fb86 Ram watch - rename some properties to match naming style 2019-10-04 13:08:39 -05:00
alyosha-tas d2fe217869 GBHawk: expose 4x core 2019-10-04 13:52:29 -04:00
adelikat 905fc1ac1e tell resharper to prefer usings outside the namespace, and full qualified, and System. usings first 2019-10-04 12:30:42 -05:00
adelikat 3c0b793d97 lua console - fix a few other places where not having an association with .lua will throw an exception 2019-10-04 12:09:23 -05:00
adelikat 80150f70be Lua console - misc cleanups, remove some unused code 2019-10-04 12:06:23 -05:00
adelikat cf6c8c6dde Lua console - don't throw exception when opening a .lua file if the user has not associated a .lua file with an application. Fixes #1683 2019-10-04 11:52:46 -05:00
alyosha-tas 71527da3ed GBHawk: Start 4x support 2019-10-03 22:04:36 -04:00
alyosha-tas 211e65dbf5 GBHawk: IR comm working 2019-10-01 21:03:30 -04:00
alyosha-tas 9bfe61a9d4 GBHawk: more bug fixes 2019-10-01 18:36:39 -04:00
alyosha-tas 5cfda44cbf GBHawk: linking improvements 2019-09-30 11:17:15 -04:00
alyosha-tas 1520529acf GBHawk: Serial port cleanup 2019-09-29 21:08:05 -04:00
alyosha-tas 9b161ced56 GBHawk: Clean up frame display routines 2019-09-29 20:15:49 -04:00
alyosha-tas 96fa7feb09 GBHawk: Fix Worms Armaggedon 2019-09-28 21:46:55 -04:00
adelikat f81547b5ee Ram watch - more cleanup, remove unused and commented code, and some nitpicks 2019-09-28 09:17:00 -05:00
adelikat 19645e54bc Ram watch - a few cleanups, and change spaces to tabs 2019-09-28 09:11:41 -05:00
adelikat 5531c8731c Ram watch -update watch counter when duplicating a watch. Fixes #239 2019-09-28 09:11:26 -05:00
alyosha-tas 49ec644f71 GBHawk: Add in IR transfer support 2019-09-24 13:09:17 -04:00
alyosha-tas 514635c127 GBHawk: Fix pokemon Crystal (HDMA bug) 2019-09-23 20:13:08 -04:00
alyosha-tas 815145c939 GBHawk: Clean up and PPU seperation. 2019-09-22 21:09:47 -04:00
alyosha-tas 2c575dd91a GBHawk: Update frame definitions 2019-09-18 10:28:54 -04:00
alyosha-tas 32c2c4b78e GBHawk: Begin to seperate GBC and GBC-in-GB-compatibility-mode ppus. 2019-09-15 22:51:50 -04:00
alyosha-tas d5c9f32095 GB3x: update saveram and memory domains 2019-09-15 16:19:48 -04:00
alyosha-tas 0bd3553c27 NESHawk : fix dendy mode 2019-09-14 10:30:18 -04:00
alyosha-tas 42f9b817d2 GBHawk3x: Add center audio 2019-09-11 09:45:48 -04:00
alyosha-tas 9f8eaa87de GBhawkLink3x: linking 2019-09-09 14:06:37 -04:00
zeromus ef6a7d56e1
Merge pull request #1661 from MrCheeze/sram-flashram
Add N64 SRAM and FlashRAM memory domains
2019-09-08 23:41:35 -05:00
MrCheeze 4d49dc5d30 ALL n64 memory domains need to be byteswapped, not only rdram/rom 2019-09-09 00:16:43 -04:00
MrCheeze 3f26d14eaa added SRAM and FlashRAM memory domain support for N64 2019-09-08 23:20:35 -04:00
alyosha-tas 79c4b1e846 GBHawkLink3x: Initial Commits 2019-09-08 16:35:39 -04:00
alyosha-tas a01c205d62 GBHawk: don't try to read 0 samples. 2019-09-03 10:38:53 -04:00
YoshiRulz 0840687d4e
Allow disabling frame skip from Lua (resolves #1655) 2019-09-02 15:20:09 +10:00
feos ab042fafd0 srt export: I was dumb and made it edit the original thing instead of the copy 2019-08-30 19:51:49 +03:00
YoshiRulz e3e51678b7
Improve docs in SavestateLuaLibrary (resolves #1649) 2019-08-28 15:11:14 +10:00
zeromus 0753c9d924
Merge pull request #1645 from chuckries/SnesGfxDebuggerTSTMOBJ
Fix TM and TS checkboxes for OBJ in SNES Graphics Debugger
2019-08-22 14:41:41 -04:00
Chuck Ries 9e2ea95691 Fix TM and TS checkboxes for OBJ in SNES Graphics Debugger
Fixes an issue that caused the TM and TS checkboxes for the OBJ layer to
always be the opposite of what is correct.
2019-08-22 11:21:01 -07:00
YoshiRulz 8c53a06a6b
Port GetRelativePath 2019-08-17 16:03:27 +10:00
YoshiRulz 2073583157
Fix typo, re-add Asnivor's implementations which may help on .NET Core 2019-08-17 15:45:26 +10:00
YoshiRulz 67cbe9a5ee
Cleanup OSTailoredCode 2019-08-12 20:53:55 +10:00
YoshiRulz 72c052622c
Use SystemColors instead of using a lookup
And work around unimplemented stuff in the System.Drawing implementation that
I'm using --Sappharad
2019-08-12 20:34:17 +10:00
YoshiRulz 1992856655
Export env var so the command string is shorter 2019-08-12 20:16:35 +10:00
YoshiRulz 196594e1df
Port TryMakeRelative and IsSubfolder 2019-08-12 20:03:40 +10:00
YoshiRulz b7249a99a5
Extract shell command helpers 2019-08-12 20:00:42 +10:00
YoshiRulz 080343f902
Only check matching assembly versions on Windows
Assembly version check shouldn't be necessary if installed with a package
manager.
2019-08-12 02:20:09 +10:00
alyosha-tas 76df4758db A2600: update ball emulation
A7800: update m6532 to match 2600
2019-08-03 19:17:28 -04:00
alyosha-tas f058933342 Vectrex: Fix firmware 2019-08-03 09:26:30 -04:00
alyosha-tas 6948b999f1 A2600: Fix ram buffer 2019-08-01 08:51:32 -04:00
alyosha-tas dce8db231b GBHawk: color regs writable 2019-07-29 14:09:51 -04:00
alyosha-tas b429cdd9ac Basic bot, spaces back to tabs 2019-07-28 09:27:41 -04:00
alyosha-tas a9f0ab6326
Merge pull request #1615 from ShinobiWannabe/basicbot_tasstudio_issue
Basicbot tasstudio issue
2019-07-28 09:21:42 -04:00
alyosha-tas 58da61fbde A7800: oops, corrected bios 2019-07-25 13:03:05 -04:00
alyosha-tas 6cb85cf588 A7800: only use proper bios 2019-07-25 12:59:52 -04:00
Tony Konzel 58513ea22f
Merge pull request #1607 from TASVideos/c64-refactor
C64: General improvements (disk writing, CIA/VIA timers, 6502X decimal mode fixes)
2019-07-22 09:29:22 -05:00
alyosha-tas fca98ffe34 Various code cleanup 2019-07-21 09:05:07 -04:00
alyosha-tas 6a773ac272 Atari 2600: more bug fixes 2019-07-20 14:47:36 -04:00
SaxxonPike 1e5fe55f30 C64: Don't reallocate the SID filter buffer every time (purely perf) 2019-07-19 19:09:08 -05:00
alyosha-tas cf6cdf4ecc A2600: Bug fixes and Improvements 2019-07-19 20:03:30 -04:00
ShinobiWannabe 3edd6600be Fix merge issue
duplicate function
2019-07-15 23:00:41 -04:00
ShinobiWannabe 8c2eb9cd57 Merge branch 'master' into basicbot_tasstudio_issue 2019-07-15 22:54:50 -04:00
ShinobiWannabe bb0e0522f2 Icon change, and changed _lastAdvancedFrame to private
Had to put code back in to sync it.  Changed a variable to private and changed Copy icon on copy cutton to "duplicate".
Note: To fix the error with the pull request for being ahead x commits and behind x commits, must merge from upstream/master which got the missing commits.
2019-07-15 22:38:54 -04:00
SaxxonPike a119420c79 C64: VC count enable seems to need to be delayed by 1 cycle after badline
- which doesn't affect normal operation
- which DOES affect VSP
2019-07-14 20:22:07 -05:00
SaxxonPike 4d6ed8d6c8 C64: Savestate should include the new variables 2019-07-14 16:32:53 -05:00
alyosha-tas 7f29c4173b A2600: Fix a test rom mapper 2019-07-14 17:06:50 -04:00
SaxxonPike ad7cae8b71 Merge branch 'master' into c64-refactor 2019-07-14 10:45:44 -05:00
SaxxonPike 8e8d3a6a1b C64: Writes to some registers on the VIC in phase 2 by the CPU should only take effect on the following cycle 2019-07-14 10:44:56 -05:00
SaxxonPike e8902b829a C64: Apparently the 6502X core needs interrupts delayed by a cycle, do that with IRQ and NMI 2019-07-14 10:43:52 -05:00
ShinobiWannabe ac125fc19d Added Help MenuItem
Goes out to tasvideos page for the basic bot
2019-07-14 05:47:56 -04:00
ShinobiWannabe f7f3f65a19 Copy Best Input to Clipboard
Added a Copy button in the Best Attempt group.  There is a tooltip on the copy button that explains it literally copies the input and can be put into a text file or into TasStudio.
2019-07-14 03:51:26 -04:00
SaxxonPike 3bbfb98fc2 C64: Split out VIC IRQ delays 2019-07-13 19:28:44 -05:00
alyosha-tas 7df8ed1f27 A2600: Add HMCLR delay 2019-07-13 18:33:54 -04:00
SaxxonPike 154eefd2ad C64: Give BA/IRQ counting another go, seems to resolve many issues 2019-07-13 16:51:30 -05:00
SaxxonPike db38d5e65b C64: Try counting IRQ and BA correctly 2019-07-13 15:28:57 -05:00
SaxxonPike f22c9b7abd C64: CPU reads open bus when !AEC is asserted 2019-07-13 15:25:40 -05:00
SaxxonPike 894adbb610 C64: Remove an unused variable 2019-07-13 15:02:18 -05:00
SaxxonPike 76679bc8bc C64: Use the correct background color in bitmapped modes for 0 2019-07-13 15:01:11 -05:00
SaxxonPike bd20b355f0 C64: Writing to CPU port writes open bus data to 00/01 2019-07-13 14:06:23 -05:00
SaxxonPike f18e7c8833 C64: Make the system debuggable for once 2019-07-13 13:15:50 -05:00
SaxxonPike cae3340946 C64: No need to expose these with the CPU link in place 2019-07-13 12:53:34 -05:00
SaxxonPike 3369dbf43f C64: IRQ is implemented as a delay line; no delay added (yet) 2019-07-13 12:51:39 -05:00
SaxxonPike d39f3e2e61 6502X: pending IRQs are not delayed when !RDY is asserted 2019-07-13 12:31:09 -05:00
SaxxonPike bf2cba0e23 6502X: remove a comment (this is indeed a dummy fetch) 2019-07-13 11:38:03 -05:00
SaxxonPike d62f2ac3fe C64: 0F7 is a badline eligible raster (fixes 26-line text demo in Frodo test suite) 2019-07-13 01:41:58 -05:00
SaxxonPike e6871b2cc3 C64: Move VIC raster IRQ to phase 1 2019-07-13 00:27:08 -05:00
SaxxonPike dbf6b39e7f C64: Split out VIC phase1/phase2 2019-07-12 23:51:55 -05:00
SaxxonPike 85bc92b688 Merge remote-tracking branch 'origin/c64-refactor' into c64-refactor
# Conflicts:
#	BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Chip6510.cs
2019-07-12 22:10:08 -05:00
ShinobiWannabe 68a58c1dd5 CurrentBotAttmpt.Log will not go over amount of frames.
Restricting the Update function from adding additional _currentBotAttempt inputs.  Checks if Emulator.Frame advanced from last Update.  Works fine if you are not flipping through multiple branches in TasStudio. Doing that results in some other Ram Watches being off sometimes.
2019-07-12 21:08:12 -04:00
alyosha-tas 66cf00a917 Vectrex: Add frame buffer to state an set to released 2019-07-12 18:15:25 -04:00
alyosha-tas 90436811b9 GG: Fix World Derby 2019-07-12 15:07:58 -04:00
alyosha-tas 5e2b097902 MC6809: fix DAA 2019-07-10 19:30:17 -04:00
alyosha-tas fd51934ea4 Vectrex: Fix some bugs 2019-07-10 15:42:01 -04:00
alyosha-tas 9fe277a3ff Vectrex: a bit more controller and frame cleanup 2019-07-10 06:58:41 -04:00
SaxxonPike 0a7dc52aa0 C64: BA and raster IRQ cleanup 2019-07-09 22:41:12 -05:00
SaxxonPike 3a135c7c26 C64: Raster interrupt bit can be set even if not enabled, just won't actually assert IRQ 2019-07-09 21:40:03 -05:00
SaxxonPike e63d10b608 C64: Interrupts generated in phase 2 by the VIC won't trigger for the CPU until next cycle, also buffer BA 2019-07-09 20:55:14 -05:00
SaxxonPike b471fdc692 C64: The CPU can trigger VIC badlines on its own (needed for VSP) 2019-07-09 20:53:54 -05:00
SaxxonPike 2abe832289 C64: AEC does not prohibit the CPU from functioning, only BA (RDY) does 2019-07-09 20:52:51 -05:00
SaxxonPike 9758efe604 6502X: CPU does a read or write regardless if the result is trashed, even during reset and dummy pushes 2019-07-09 19:46:33 -05:00
alyosha-tas 84b0917f65 Vectrex: Add schema and do some miscellanous clean up 2019-07-09 20:01:45 -04:00
SaxxonPike a8fd85157c VIC: Use correct color mapping for non-multicolor bitmap mode 2019-07-09 08:02:55 -05:00
SaxxonPike 83b6553749 VIC: Respect idle state background color registers, plus black in undocumented gfx mode 2019-07-09 06:58:13 -05:00
SaxxonPike 89fa153477 VIC: Resolve background color registers separately to color matrix memory 2019-07-09 06:55:55 -05:00
SaxxonPike 9f733d3e7a VIC: More accurate pixel pipeline 2019-07-09 05:26:26 -05:00
SaxxonPike 3efea15038 6502X: When !RDY is asserted, still do other operations. Plus, do dummy reads on stack ops 2019-07-09 05:24:47 -05:00
alyosha-tas f544c044bf NES MMC3: Mapper test indicates IRQ was happening one ppu tick too late. 2019-07-08 08:16:43 -04:00
alyosha-tas 5b2ed7e4ff MC6800: disassembler and cleanup 2019-07-07 17:32:14 -04:00
alyosha-tas 53dd500875 MC6800: More cleanup 2019-07-07 09:08:26 -04:00
alyosha-tas e2014ba3f5 MC6800 work and MC6809 bug fix 2019-07-07 08:22:01 -04:00
alyosha-tas a4b38aa7a5 MC6800: Initial commit 2019-07-06 20:16:48 -04:00
SaxxonPike d36e02045b C64: Optimize the RNG for 1541 flux transitions. (same output) 2019-07-06 16:32:21 -05:00
SaxxonPike 3bf37f1c17 C64: No need for LagCycles anymore. 2019-07-06 16:29:14 -05:00
alyosha-tas 475702c1e8 Vectrex: code cleanup 2019-07-06 16:44:46 -04:00
alyosha-tas 432abb27f6 Vectrex: expose menues 2019-07-06 08:56:25 -04:00
SaxxonPike 6ed11de85b C64: Soft/Hard reset: it's about time 2019-07-06 01:19:58 -05:00
SaxxonPike d48964b642 6502X: According to the datasheet, RDY must be high in order for interrupts to trigger
- this has implications for C64, as it may cause VIC interrupts to fire quite later than they currently do
2019-07-06 00:00:51 -05:00
SaxxonPike 400b04b690 C64: CIA was sometimes delaying too long to fire interrupts by 1 cycle.
- This could have implications for existing TASes (!)
2019-07-05 23:59:01 -05:00
SaxxonPike 69f8b143a3 C64: Foreground pixels are black when VIC is in idle state. 2019-07-05 21:05:38 -05:00
SaxxonPike 8698aa41be Merge branch 'master' into c64-refactor 2019-07-05 20:14:28 -05:00
alyosha-tas 9cbc78778f Vectrex: interrupt fixes 2019-07-05 20:25:03 -04:00
alyosha-tas 6a5fc8b47e Vectrex: Implement interrupts, fixes Bedlam 2019-07-05 19:57:55 -04:00
alyosha-tas b0123ea133 Vectrex: fix control stick in some cases 2019-07-05 17:16:11 -04:00
alyosha-tas e9ca6f82bc Trace Logger: Fix exception when scrolling 2019-07-05 10:06:00 -04:00
alyosha-tas 275ccb381a Vectrex: ramp overscan more accurate, fixes numerous display bugs 2019-07-04 21:26:13 -04:00
alyosha-tas 9b2d926bc0 Vectrex: working controllers 2019-07-04 20:00:59 -04:00
SaxxonPike 49b613962e C64: Fix a typo disabling voice 3 when high pass filter is set 2019-07-04 17:32:35 -05:00
SaxxonPike f45e934fec C64: Reset the SID filter on hard reset. 2019-07-04 17:24:22 -05:00
SaxxonPike 579ffe5c25 C64: Had the flag with the wrong polarity. Thanks, C64Anabalt. 2019-07-04 14:20:12 -05:00
SaxxonPike 691577499f C64: When a sprite is eligible for display, initialize it with the correct crunch state based on Y expansion 2019-07-04 14:12:46 -05:00
SaxxonPike 36ac592193 C64: Individual IRQ flags for S/S or S/D collisions are always set even if not eligible to assert IRQ externally 2019-07-04 13:59:41 -05:00
SaxxonPike 5c9445fb96 C64: Reuse some local memory in the sprite renderer. 2019-07-04 12:47:09 -05:00
SaxxonPike 55145ff7ba C64: The T64 format was never supported, but at least make the core aware of it 2019-07-04 12:46:28 -05:00
SaxxonPike 2c804cab34 C64: Fix a function ambiguity in the CIA class. 2019-07-04 00:51:19 -05:00
SaxxonPike 2dd80eb0f4 C64: Implement more CIA features and CIA/VIA defaults. 2019-07-04 00:31:48 -05:00
SaxxonPike 32d59e8514 C64: Implement more VIA features. 2019-07-04 00:23:11 -05:00
SaxxonPike 7fbccb7a46 C64: Use write protection on G64 images (which are often copy protected), and disable it on D64 images. 2019-07-04 00:14:21 -05:00
SaxxonPike 4e1892d094 C64: Allow writing to disk. 2019-07-04 00:11:03 -05:00
SaxxonPike 0cdb28fc8f C64: Format D64 sector headers with directory ID instead of A0/A0. 2019-07-04 00:03:50 -05:00
SaxxonPike ceb1338459 C64: Use proper sector gaps based on density when converting from D64. 2019-07-04 00:02:28 -05:00
SaxxonPike e74dfe15a8 C64: VIA PB7 output timing adjusted to match datasheet. 2019-07-04 00:00:05 -05:00
SaxxonPike cb48104d7a 6502X: Fix ADC with decimal mode enabled. 2019-07-03 23:49:55 -05:00
alyosha-tas 95db4f2159 Vectrex: add pcm sample playback 2019-07-03 20:49:27 -04:00
alyosha-tas 38772dcd89 Vectrex: fix dumb cpu copy paste, fixes scramble and probably others 2019-07-02 20:33:43 -04:00
YoshiRulz c5c4c45596
Add NuGet package cache to .gitignore
I'm sick of doing this in every test branch
2019-07-02 16:39:10 +10:00
YoshiRulz 4842442ef7
Set MONO_WINFORMS_XIM_STYLE=disabled on all Debian-based distros 2019-07-02 16:34:37 +10:00
alyosha-tas 565bafd25e vectrex: fix display bug and add some brightness 2019-06-30 08:07:54 -04:00
alyosha-tas 233825bbb7 Vectrexx: More bug fixes 2019-06-29 12:27:17 -04:00
adelikat 290de71b71 some misc cleanups 2019-06-28 20:33:40 -05:00
adelikat 6b249c648d fix a bug in TasLagLog, not sure how it was working 2019-06-28 20:26:18 -05:00
adelikat 062ec8cb97 remove a todo that we decided not to do 2019-06-28 20:22:10 -05:00
adelikat 512b03f1b4 misc cleanups in tastudio files, mostly typos and redundant code 2019-06-28 17:51:03 -05:00
adelikat db0af57f54 fix unreachable code warning 2019-06-28 16:51:29 -05:00
alyosha-tas 00f766715e SubNESHawk: fix get and set regiesters 2019-06-28 16:13:25 -04:00
alyosha-tas 38d5fea8ee SubNESHawk: Fix memory domain callback i think 2019-06-28 16:03:11 -04:00
alyosha-tas 8df015cb0a Merge branch 'master' of https://github.com/TASVideos/BizHawk 2019-06-28 16:01:24 -04:00
alyosha-tas c887f7ca15 Revert "SubNESHawk: Fix memorydomain callbacks i think"
This reverts commit c29c3f0391.
2019-06-28 16:00:45 -04:00
alyosha-tas c29c3f0391 SubNESHawk: Fix memorydomain callbacks i think 2019-06-28 15:59:21 -04:00
adelikat 46a23e2b19 fix a few more warnings 2019-06-28 14:38:17 -05:00
adelikat 41d9d2da4d fix a warning, and fix the name of a variable nearby 2019-06-28 14:34:18 -05:00
alyosha-tas 5188b7a2e7 Vectrex: another round of bug fixes 2019-06-25 18:46:16 -04:00
alyosha-tas 94db48b24f vectrex; more bug fixes 2019-06-23 17:46:30 -04:00
feos 2edf5c08f8
Merge pull request #1592 from TASVideos/tsm-interface
Tsm interface
2019-06-23 18:04:56 +03:00
alyosha-tas d568a738b9 Vectrex: Start displaying things correctly. 2019-06-22 19:52:02 -04:00
alyosha-tas 84c0126f80 Vectrex: Start displaying stuff 2019-06-22 14:59:15 -04:00
alyosha-tas 982dc479e7 SubNESHawk: Play Movie dialog now calculates time correctly 2019-06-21 17:58:13 -04:00
YoshiRulz 0444b35899
Mute CS1591 "Missing XML comment for publicly visible type or member" 2019-06-21 19:38:27 +10:00
alyosha-tas 8da61871d3
Update FirmwareDatabase.cs
Fix a7800 bios
2019-06-20 11:23:39 -04:00
feos 92847b1d1d Revert "tastudio: instead of capturing a tsm state after loading a branch, force greenzone creation when we're navigating past last greenzone frame"
This reverts commit ade701f873.
2019-06-18 20:41:32 +03:00
feos b12b061a83 version and date 2019-06-18 19:43:06 +03:00
feos 84facd4c03 Merge branch 'master' into release
# Conflicts resolved:
#	BizHawk.Client.EmuHawk/tools/TAStudio/BookmarksBranchesBox.cs
#	References/OpenTK.dll.config
2019-06-18 19:41:31 +03:00
adelikat 02a3e4ceaf move Subneshawk menu to the nes submenu and enforce that you can not have quicknes=true and subneshawk=true, put "experiemental" on the menu item because while it is being officially "released" it is a very big edge case and I dont' want to confuse average TASers into thinking this is a core they should use for normal use cases 2019-06-17 18:22:55 -05:00
feos ef4cda38d1 n64: stop measuring resolutions array with a magic number 2019-06-17 20:07:36 +03:00
alyosha-tas e8d64cdbbb Vectrex: Add minestorm and bug fixes 2019-06-17 09:06:37 -04:00
alyosha-tas 0c8646cfd4 Vectrex: Set release flag to false 2019-06-16 18:33:55 -04:00
alyosha-tas ff2e91722d Vectrex: Input fix 2019-06-16 18:18:21 -04:00
alyosha-tas fb9ac2f3af Vectrex: hook up controllers 2019-06-16 08:17:34 -04:00
feos 6742978e0b update gliden to release 4.0 2019-06-16 12:20:59 +03:00
feos a2846ea8e6 fix #1447 2019-06-16 10:41:10 +03:00
adelikat 5075160355 some cleanups 2019-06-15 18:38:56 -05:00
adelikat cb4b7d7089 some cleanup 2019-06-15 18:31:46 -05:00
adelikat 26c190cd32 simplify 2019-06-15 18:26:59 -05:00
alyosha-tas c063319816 Vectrex: Hook up audio and fix more bugs 2019-06-15 18:39:00 -04:00
adelikat c9ae8e3db3 StateManagerState begone! 2019-06-15 17:06:13 -05:00
adelikat ea55217c3f I'm convinced this is a worthless check, -1 was never being passed in, and shouldn't be 2019-06-15 16:49:08 -05:00
adelikat 3ec2ec325a IStateManager - refactor indexer to not return a keyvalue pair, since it by design will try to return the exact frame, returning the frame is redundant 2019-06-15 16:43:21 -05:00
adelikat 394a6d86b5 According to the TSM api, the indexer will never return null, check length instead 2019-06-15 16:38:33 -05:00
feos 6f5d2cf24b movie: when pause on movie end is chosen, go to finished mode instead of stopping 2019-06-16 00:32:39 +03:00
adelikat cd0c237e31 simplify some tastudio logic 2019-06-15 16:26:16 -05:00
adelikat 5366b854a6 remove unnecessary savestate clone 2019-06-15 16:20:57 -05:00
adelikat d79a00f035 remove IStateManager.IsMarkerState 2019-06-15 16:17:49 -05:00
adelikat e89bb6c276 reorg TasStateManager file 2019-06-15 16:13:16 -05:00
adelikat eaef336492 rip out IStateManager.MountForWriteAccess() and simplify 2019-06-15 16:06:35 -05:00
adelikat c87c1d8328 simplify 2019-06-15 15:51:56 -05:00
adelikat d4432db7f9 simplify 2019-06-15 15:44:34 -05:00
adelikat 2a8b4504cd Simplify 2019-06-15 15:43:22 -05:00
adelikat 7f43fb09af delete an absurd check 2019-06-15 15:29:25 -05:00
adelikat d998a9587f remove a todo 2019-06-15 15:28:10 -05:00
adelikat 21c164abcf simplify Last implementation 2019-06-15 15:22:12 -05:00
adelikat 6004f30d3a rename IStateManager.ClearStateHistory -> Clear, LastStatedFrame -> Last 2019-06-15 15:19:18 -05:00
adelikat 0ab1b1887e IStateManager - remove IDisposable, this isn't a terrible idea, but let's put it back if/when we need it. Remove IDisposable from StateManagerState 2019-06-15 15:15:14 -05:00
adelikat b1296dd9bb rip out NDBDatabase 2019-06-15 15:13:08 -05:00
adelikat ed85ce806b more cleanup 2019-06-15 14:57:26 -05:00
adelikat 81ee00a1b6 cleanup 2019-06-15 14:56:03 -05:00
adelikat e0a51eaab1 Rename IStateManager.StateCount -> IStateManager.Count 2019-06-15 14:49:43 -05:00
adelikat cb4e71ebf7 rename a StateManager method, and delete some unused methods 2019-06-15 14:40:18 -05:00
adelikat 8f116a8428 Pass TasMovie into StateManagerDecay and have it get the last edited frame instead of from IStateManager 2019-06-15 14:35:31 -05:00
adelikat 3c27a332bb create IStateManager interface and use that instead of TasStateManager 2019-06-15 14:31:06 -05:00
adelikat 1bcf6394ed cleanup 2019-06-15 13:27:10 -05:00
adelikat 694ba93ec1 I think this is the correct wasLag logic 2019-06-15 13:10:31 -05:00
adelikat f431492944 better code for populating wasLag, I think 2019-06-15 12:53:17 -05:00
adelikat 3b9e54c250 refactor TasLagLog to allow for gaps in the history. Note that this is a breaking .tasproj format change currently 2019-06-15 12:11:52 -05:00
YoshiRulz 9cedf68407 Inline waveform 2019-06-15 16:30:17 +00:00
feos dfd80d23fc update gargoyles script (with a 2yo version) 2019-06-15 19:06:49 +03:00
YoshiRulz f6bd34c7ef Realign tables in comments w/ only spaces
*Without* moving them, that point was contentious
2019-06-15 13:02:10 +00:00
YoshiRulz 7cbd1decc1 It was a bug 2019-06-14 16:26:31 +00:00
YoshiRulz 1c0622d272 Move polar<=>rect conversion to new class 2019-06-14 16:26:31 +00:00
YoshiRulz 7e244be91a Inline event subscription 2019-06-14 16:26:31 +00:00
YoshiRulz 1a4e27fda7
Merge branch 'interp_cores' 2019-06-15 02:11:58 +10:00
YoshiRulz 4dd40305bc
Merge branch 'master' into interp_cores 2019-06-15 02:11:24 +10:00
YoshiRulz 3dec9e2e01
Fix missing helper method 2019-06-15 02:01:10 +10:00
YoshiRulz 63f6be07fe Remove unused string.Format call 2019-06-14 15:54:17 +00:00
YoshiRulz 3fa0f71a24 Inline ToHexString extension where param numdigits is constant 2019-06-14 15:54:17 +00:00
YoshiRulz a6c1e69630 Use ToHexString extension 2019-06-14 15:54:17 +00:00
YoshiRulz a2a5ec7566 Replace $"{a}{b}" and similar with concatenation 2019-06-14 15:54:17 +00:00
YoshiRulz 3b2f890f24 Inline interpolated string literals 2019-06-14 15:54:17 +00:00
YoshiRulz 2699ced133 Use string interpolation 2019-06-14 15:54:17 +00:00
James Groom a1ef3153b6
Fix broken/empty doc comments (merge #1578) 2019-06-14 14:03:19 +00:00
James Groom 067477ce18
Merge branch 'master' into clean_docs 2019-06-14 13:28:39 +00:00
zeromus 1258b2fa81 optimize CallMemoryCallbacks 2019-06-14 09:19:06 -04:00
James Groom 88c131782d
Elaborate on Windows prereqs 2019-06-14 13:59:38 +10:00
feos 2423f44540 tastudio: drop laglog from branches since they don't have greenzone anymore 2019-06-13 19:39:52 +03:00
feos bc990061b7 tastudio: refactor out a variable
fix autorestore triggering while drawing on future frames
2019-06-12 22:34:16 +03:00
feos b90e4b9838 tastudio: fix seek progressbar not to disappear on (every other) middle-click and || button
mainform: show pause icon first, even if we're seeking, because seeking is mostly a tastudio feature and its status is reported by tastudio already. fixes #1456
2019-06-10 23:34:19 +03:00
YoshiRulz 9b1eaca7be
Re-allow PadInputType.AnalogStick with reversed ranges
N64 standard controller in virtual pad no longer crashes
2019-06-11 05:11:24 +10:00
feos 3a8b3361e3 minor tweak to mgba, update its version in hawk 2019-06-10 22:02:19 +03:00
YoshiRulz 0d610301ec Use a new order for socket connection instructions (resolves #1174)
patch by @Ashafix
2019-06-10 21:32:42 +10:00
James Groom 1a00cf7dd3
Update Linux sections and Windows building section 2019-06-10 20:50:00 +10:00
YoshiRulz 3d097e3f04
Run jpegoptim on *.jpg and oxipng -so6 on *.png 2019-06-10 19:09:26 +10:00
zeromus 6a548220bd
Merge pull request #1462 from brian-armstrong/brian/mem_callback_addr_value
Studies show that PR's with threads exceeding 40 posts suffer a 50% greater chance of never getting merged for each additional post
2019-06-10 02:01:06 -04:00
feos f5bcdc4aba fix #1513
OSD info on branch hover is mandatory, so I'm not removing it. drawing the branch OSD-framebuffer on the emulator screen is barely possible without butchering everything, so I'm not doing it. instead, keep both core and client framebuffers and use them where they make sense: osd FB shows up on hover, core FB goes to emulator screen on branch load.
2019-06-09 20:34:14 +03:00
feos 1ac27e3c25 update mgba to 0.7.2
might need some fixing
2019-06-09 13:39:46 +03:00
Brian Armstrong a21297f16a more flags 2019-06-06 02:14:09 -07:00
Brian Armstrong 2c6ecb68bd Merge branch 'master' into brian/mem_callback_addr_value 2019-06-06 02:11:04 -07:00
Brian Armstrong d41bd867b8 flags 2019-06-06 02:04:47 -07:00
YoshiRulz 2642ef4049
Remove empty docs 2019-06-06 16:41:10 +10:00
adelikat 0216359c1f This image is pretty bad, we can do better 2019-06-02 18:31:09 -05:00
alyosha-tas 50a0b36572
Merge pull request #1582 from MrWint/update-gambatte-speedrun
Update Gambatte core
2019-06-02 09:14:39 -04:00
MrWint a93916e24c Gambatte core: Add RTC divisor offset support. 2019-06-02 13:24:54 +02:00
alyosha-tas e60896c1b7 A2600: Refactor audio and savestate it. 2019-06-01 19:44:01 -04:00
alyosha-tas c48d5be02a Merge branch 'master' of https://github.com/TASVideos/BizHawk 2019-06-01 12:25:57 -04:00
alyosha-tas dd0d34593e Vectrex: More bug fixes 2019-06-01 12:25:30 -04:00
MrWint 1c0f8ff36b libgambatte: Update makefiles 2019-05-30 21:11:58 +02:00
MrWint 73f4b0bf52 libgambatte: fix setTimeMode typo 2019-05-30 20:53:17 +02:00
MrWint cb7e0b0a82 libgambatte: Remove unused RTC callback 2019-05-30 20:16:54 +02:00
YoshiRulz ceb490828f
Fix docs "not placed on a valid language element" 2019-05-29 21:04:12 +10:00
YoshiRulz 268ed1a69d
Fix malformed docs 2019-05-29 20:58:01 +10:00
Maximilian Peters 80c0fe571b Squash merge #1505 - set socketServer IP/port via Lua (resolves #1495) 2019-05-29 15:06:38 +10:00
James Groom 27a4062ea2
Merge pull request #1568 from TASVideos/unix_prep
Preparation for Unix port
2019-05-29 15:01:27 +10:00
MrWint 7d33d604ae cycle-based RTC 2019-05-28 22:56:39 +02:00
MrWint d4f42d9f32 Make BG layer mask work properly for CGB 2019-05-28 17:42:30 +02:00
MrWint bc2ced1b7f More consistency, restore layer masks 2019-05-28 00:26:59 +02:00
alyosha-tas 65e350ef7d Fix #1553 2019-05-27 10:56:58 -04:00
alyosha-tas c822cf401f vectrex: More 6522 work and CPU bug fixes 2019-05-26 17:19:39 -04:00
feos 05770d88ec
Merge pull request #1573 from TASVideos/revert-1569-isavailable_rewrite
Revert "Rewrite ToolManager.IsAvailable"

It was easy to undo indeed, and since it doesn't seem to work at all, we're promptly revering it.
2019-05-26 23:03:58 +03:00
feos de9582f0e7
Revert "Rewrite ToolManager.IsAvailable" 2019-05-26 23:01:40 +03:00
MrWint 1547d324e7 libgambatte: fix interrupt execution anatomy 2019-05-26 20:24:58 +02:00
MrWint 7e851b19f3 Gambatte core: unify DMG and CGB bios handling 2019-05-26 20:11:50 +02:00
MrWint d8c238c9fb libgambatte: timar quirk accuracy 2019-05-26 19:40:19 +02:00
MrWint ca31e9ad72 libgambatte: Non-atomic interrupt handling 2019-05-26 19:29:17 +02:00
MrWint 9d266ce281 libgambatte: hang on invalid opcode 2019-05-26 19:19:39 +02:00
alyosha-tas cd1ab99f54 Vectrex: 6522 work 2019-05-26 09:16:53 -04:00
MrWint ae98698758 libgambatte: Refactor Memory 2019-05-26 14:17:22 +02:00
MrWint 51e8ba3cf5 libgambatte: refactor Tima 2019-05-26 12:46:17 +02:00
MrWint 79085f9a3a libgambatte: Remove unused saveState() functions 2019-05-26 12:36:08 +02:00
MrWint b58554f62e libgambatte: Remove unused interrupter 2019-05-26 12:33:32 +02:00
MrWint af42fbb714 Reformat gambatte.cpp 2019-05-26 12:22:53 +02:00
MrWint a79febdef9 Refactor cartridge code 2019-05-26 12:06:40 +02:00
MrWint 839c8abf54 Build x64 version 2019-05-26 10:52:18 +02:00
MrWint 92204d527f avoid bools in save state struct 2019-05-26 00:41:03 +02:00
MrWint a177b81b4b Update MinKeeper 2019-05-26 00:18:07 +02:00
MrWint 7b518d0cf7 Update InterruptRequester 2019-05-26 00:13:34 +02:00
MrWint 6036aefd13 Delete unused files 2019-05-26 00:02:49 +02:00
MrWint 2e4f68b29f more idiomatic types 2019-05-25 23:58:44 +02:00
MrWint 3d3de54485 video: formatting 2019-05-25 23:43:05 +02:00
MrWint 6bda071d5f rename MemEventId to IntEventId 2019-05-25 22:53:41 +02:00
MrWint 8247df4be5 pass intreq by ref 2019-05-25 22:37:59 +02:00
MrWint 40167579bb use ptrdiff_t to represent pitch 2019-05-25 22:28:23 +02:00
MrWint 6020542182 CPU refactoring 2019-05-25 22:11:58 +02:00
MrWint a6aeef840a Update PPU 2019-05-25 21:01:50 +02:00
MrWint b99b5a05d6 Update sound 2019-05-25 20:27:44 +02:00
MrWint 1dc9d0e123 allow mapping rom bank0 in more cases 2019-05-25 19:35:42 +02:00
MrWint 85ad140a2c ppu: less magical lcdc constants 2019-05-25 19:29:59 +02:00
MrWint 567756d6cc formatting/readability 2019-05-25 19:18:15 +02:00
MrWint 98076d286d return more informative load result 2019-05-25 18:58:49 +02:00
feos 05b770fcff
Merge pull request #1569 from TASVideos/isavailable_rewrite
Rewrite ToolManager.IsAvailable
2019-05-25 19:45:33 +03:00
MrWint a3ee854022 more ideomatic use of sizeof 2019-05-25 18:27:08 +02:00
MrWint 289439528d c++11 narrowing conversion warnings 2019-05-25 18:11:32 +02:00
MrWint 2bd332c862 fix psg ch3 regression introduced in r165 2019-05-25 18:08:14 +02:00
feos 8efcda388f
Merge pull request #1542 from Ashafix/audiosync
added new command line parameter audiosync
2019-05-25 10:34:01 +03:00
alyosha-tas 7a80560005 GBHawk: 10 second timeout if ppu not running 2019-05-22 17:30:04 -04:00
James Groom d11e35dc44
Add CurrentOS check paired with the one in MainForm.Events.cs 2019-05-20 23:32:46 +10:00
YoshiRulz 5a60e7f926
Rewrite IsAvailable, call to Assembly.GetTypes is now lazy 2019-05-20 18:38:09 +10:00
Asnivor ddbe3c7942 Remove Virtu.csproj references from solution (because they shouldnt be there - my bad) 2019-05-20 08:59:59 +01:00
YoshiRulz 2377e644e6
Add build scripts for Unix 2019-05-19 14:59:11 +10:00
YoshiRulz df232e6184
Add additional CurrentOS checks 2019-05-19 14:46:50 +10:00
YoshiRulz 35056ae2d9
Remove #if WINDOWS, using runtime check where applicable 2019-05-18 20:17:02 +10:00
YoshiRulz 1887420244
Refactor CurrentOS usage in Sound 2019-05-18 15:51:37 +10:00
YoshiRulz cefba8e16e
Refactor CurrentOS usage in Throttle 2019-05-18 15:45:49 +10:00
YoshiRulz e208edd573
Refactor ScreenSaver 2019-05-18 15:42:32 +10:00
YoshiRulz 58c738957c
Rename PlatformLinkedLibSingleton and children 2019-05-18 15:40:46 +10:00
YoshiRulz d76e1a8a8b
Refactor PlatformLinkedLibSingleton and replace RunningOnUnix with CurrentOS 2019-05-18 15:30:29 +10:00
YoshiRulz 436b6452fb
Misc. refactoring 2019-05-18 15:14:08 +10:00
YoshiRulz 752f8cfd49
Don't bother checking for Windows prereqs on Unix 2019-05-18 14:34:15 +10:00
YoshiRulz 2d5b069793
Inline PlatformSpecificMainLoopCrashHandler and implentations
UnixMono copy contained workaround for a bug that has since been fixed
2019-05-18 14:27:50 +10:00
YoshiRulz e8f66570ad
Update EmuHawkMono.sh 2019-05-18 14:09:50 +10:00
YoshiRulz 77a6e9c3ac
Remove unused shell script 2019-05-18 14:05:41 +10:00
YoshiRulz 6d5f51b5ba
Update .gitignore 2019-05-18 14:04:53 +10:00
alyosha-tas 87d5c72000
Merge pull request #1565 from sornerol/fix-gb-bios-buzz
Fix GB bios buzz (Fixes #1539)
2019-05-13 18:10:43 -04:00
sornerol bfa8f20cf9 Set state.spu.ch1.master = true (Fixes #1539)
This fixes #1539. Prior to 2.2.2, state.spu.ch1.master was set to false when using a BIOS. Starting with 2.2.2, the Game Boy BIOS is required. Setting this to true causes a buzzing sound while the Nintendo logo drops during BIOS.
2019-05-13 13:45:27 -05:00
Loren 729721b78f
Merge pull request #2 from TASVideos/master
Updating from original repository.
2019-05-08 21:01:01 -05:00
alyosha-tas be0f5f81cc GG: Link support initial capability 2019-05-08 17:39:15 -04:00
Loren a10cfb4cb6
Merge pull request #1 from TASVideos/master
Update from original repository
2019-05-08 15:10:51 -05:00
Asnivor 038bab2bff ChannelF: more bugfixes and disam update 2019-05-08 09:48:01 +01:00
Asnivor 47a5ce2798 ChannelF: some more changes 2019-05-07 14:43:36 +01:00
alyosha-tas c036e670be A2600: another DB update 2019-05-06 06:24:56 -04:00
alyosha-tas 133f5d223f
Merge pull request #1534 from TASVideos/serializer_floatdouble
Serializer: Add support for float[], double and double[]
2019-05-05 08:21:43 -04:00
alyosha-tas 86461b0692 A2600: gamedb update 2019-05-05 08:03:43 -04:00
alyosha-tas ca5585dfaa A2600: boost grip controller 2019-05-05 07:53:28 -04:00
feos a2289dde10
Update README.md 2019-05-05 11:24:59 +03:00
feos 3abf6dc5bb
Update README.md
In-game Saves and DISCLAIMER
2019-05-05 11:18:27 +03:00
feos 1ee19f17e1 OpenAdvanced_OpenRom wasn't working since 2.2.1
nobody noticed because nobody uses it. then why do we have it? maybe it could be fixed by better routing. yet again nobody uses it.
2019-05-03 11:34:53 +03:00
James Groom 38a8cddcfc
Fix spelling of Intellivision 2019-04-30 22:44:12 +10:00
James Groom 865e1cb10a
Update Win10 version
1803 goes EOL 2019-11-12
2019-04-30 16:48:30 +10:00
alyosha-tas 7c3d4f7e48 use previous value 2019-04-27 10:30:50 -04:00
alyosha-tas d726a6476f Fix #1555 2019-04-27 07:59:10 -04:00
Asnivor 356039638a F8: more bug hunting 2019-04-26 17:51:45 +01:00
Asnivor 74c6d33f16 F8: some fixes 2019-04-25 23:52:35 +01:00
Asnivor 7d961d85bd F8: Some commenting 2019-04-24 14:39:03 +01:00
zeromus 033fe57763 rebuild HelloWorld externaltool, AND include the zipfile sources, which DO get distributed along with it, so that people have a prayer of actually using this system. (it's all small, so it should be ok) 2019-04-22 23:58:34 -04:00
zeromus 41c854c030 fix some null reference exception I got while porting old HelloWorld externaltool. I dont understand any of this plumbing, so I can't describe it any better than that 2019-04-22 23:54:16 -04:00
alyosha-tas 25d4d6a840 Vectrex: some cleanup 2019-04-21 19:11:45 -04:00
alyosha-tas 1976e8e027 Disassembler: mouse wheel scrolling 2019-04-21 19:01:13 -04:00
alyosha-tas 1e4a0da15e Merge branch 'master' of https://github.com/TASVideos/BizHawk 2019-04-21 15:29:22 -04:00
alyosha-tas 27460c26ae update VRC7 sounds per #1527 2019-04-21 15:29:13 -04:00
YoshiRulz 2bb63c2bf1
Fix go to address UX in RAM Search 2019-04-22 01:09:18 +10:00
James Groom f599b33ee2
Don't change cell selection while context menu is open (resolves #1551) 2019-04-21 14:24:58 +00:00
alyosha-tas 1c9182a290 Fix exception when statrting from saveram multple times 2019-04-21 09:06:16 -04:00
alyosha-tas 655729f29c TAStudio: orderly shutdown if starting TAStudio returned nullEmulator. 2019-04-21 08:46:50 -04:00
YoshiRulz 6f1d61420d
Catch OverflowException when parsing address (hex str), resolves #1549 2019-04-21 05:18:42 +10:00
zeromus ab020cfad2 fix crash disposing unavailable pipelines (was already done in GL display method but not d3d.) fixes #1546 without walls of text discussion and KBs of pointless diffs 2019-04-20 14:52:32 -04:00
vadosnaprimer 7915ec8bc1 tsm decay: try to work around some more removal bugs 2019-04-18 19:11:45 +03:00
Asnivor 6214de366b ChannelF: Some progress 2019-04-17 22:28:12 +01:00
Asnivor f0384b7e83 ChannelF: Extreme WIP! I promise nothing... 2019-04-16 16:10:56 +01:00
Ashafix 3946075024 added new command line parameter audiosync 2019-04-15 09:28:54 +02:00
zeromus 6ea20e9e9b fix emuhawk app.config to allow running on network shares
fixes #1537
2019-04-12 14:04:42 -04:00
adelikat 8132afec8b
Merge pull request #1536 from Ashafix/sleep
Added sleep functions for Lua to client module (resolves #1177)
2019-04-12 12:51:25 -05:00
Ashafix 598723266e added sleep functions for Lua to client module 2019-04-12 19:03:14 +02:00
alyosha-tas 0d95943728 Vectrex: more disasm and bug fixes 2019-04-09 15:44:37 -05:00
alyosha-tas 9296092b84 Vectrex: Start running the cpu and fixing bugs 2019-04-08 18:57:21 -05:00
zeromus 41c57e5217 fix repeating sound buffer when calling client.SetSoundOn 2019-04-08 16:09:26 -04:00
Asnivor ff4acab261 Serializer: Add support for float[], double and double[] 2019-04-08 08:59:01 +01:00
alyosha-tas b14332d352 mc6809: wire up interrupts 2019-04-07 15:57:24 -05:00
alyosha-tas 07c3dd4aad mc6809: more disasm 2019-04-07 11:39:38 -05:00
alyosha-tas 10d1c230f3 mc6809 start disassembler 2019-04-06 19:42:07 -05:00
alyosha-tas 87214c252d MC6809; finish instruction decoding 2019-04-06 15:16:53 -05:00
alyosha-tas 8995e2e977 MC6809: more decoding work 2019-04-06 10:06:23 -05:00
Asnivor b2584145d7 SyncSoundMixer: improved and moved out of ZXSpectrum into Cores.Sound (as the CPC will use this and future cores may find it useful) 2019-04-04 12:16:16 +01:00
James Groom 8f5ecdf157
Remove trailing comma in vararg 2019-04-04 12:00:13 +10:00
James Groom b37ced84cb
Use string.Join 2019-04-04 11:57:36 +10:00
alyosha-tas 244b9d2231 More MC6809 2019-04-03 19:22:23 -05:00
YoshiRulz 9af93be0d3
Use string interpolation 2019-04-04 02:41:18 +10:00
YoshiRulz 7fb8051426
Use string.Concat/string.Join 2019-04-04 02:17:00 +10:00
Asnivor d2131ea947 1BitBeeper: actually do what the last commit was supposed to do 2019-04-03 17:12:09 +01:00
Asnivor 0ff0be2a93 1BitBeeper: allow clock incrementation by an arbitrary value (it is possible a core may need this) 2019-04-03 17:10:49 +01:00
Asnivor ae7bea226c ZXHawk: move the beeper implementation out of the core into Cores.Sound. The CPC core will also use this and we may have other cores in the future that want to make use of a nice 1-bit buzzer/implementation (tape loading, onboard speaker etc..) 2019-04-03 17:01:35 +01:00
alyosha-tas 7655e5194e Vectrex 6809 2019-04-02 19:25:48 -05:00
alyosha-tas ef0c7aee01 Vectrex: 6809 work 2019-04-01 19:00:54 -05:00
YoshiRulz c4fd79bf03
Use MutableIntRange in RenderSpritesScanline 2019-04-01 14:40:06 +10:00
James Groom 6b56a65d11
Add MutableIntRange and float.RoundToInt and refactor AnalogStickPanel 2019-04-01 14:41:08 +11:00
alyosha-tas ab1d47d756 Vectrex: Indexed Addressing 2019-03-31 16:33:02 -05:00
alyosha-tas 33af0b7fee Vectrex commit 2 2019-03-31 08:27:51 -05:00
alyosha-tas ba4ec02cb5 Vectrex Initial Commit 2019-03-30 16:09:04 -05:00
Asnivor 31237e0c92
Merge pull request #1394 from TASVideos/appleii_fixattempt
[WIP] Trying to get Virtu fixed up a bit
2019-03-29 15:04:00 +00:00
James Groom 59ad94f9b9
Merge branch 'master' into appleii_fixattempt 2019-03-28 20:25:11 +11:00
James Groom 4e91f88af3
Use nameof in cores 2019-03-28 14:18:58 +11:00
James Groom 779975f689
Use nameof 2019-03-28 14:17:14 +11:00
adelikat 165880b444
Merge pull request #1504 from TASVideos/semicolonFormat
[Untested] Use format strings with the semicolon section separator
2019-03-27 19:38:16 -05:00
adelikat 5bae4961a6
Merge pull request #1521 from TASVideos/interp_bizware
Use string interpolation in BizHawk.Bizware
2019-03-27 19:27:21 -05:00
adelikat d18855b0bc
Merge pull request #1520 from TASVideos/interp_clcommon
Use string interpolation in BizHawk.Client.Common
2019-03-27 19:26:32 -05:00
adelikat dec41d9556
Merge pull request #1519 from TASVideos/interp_common
Use string interpolation in BizHawk.Common
2019-03-27 19:25:29 -05:00
adelikat f4340943c0
Merge pull request #1517 from TASVideos/interp_emucommon
Use string interpolation in BizHawk.Emulation.Common and BizHawk.Emulation.DiscSystem
2019-03-27 19:24:41 -05:00
adelikat b9e42bc7aa
Merge pull request #1522 from TASVideos/interp_apihawk
Use string interpolation in BizHawk.Client.ApiHawk
2019-03-27 19:23:25 -05:00
adelikat 951dbfd83e
Merge pull request #1515 from TASVideos/interp_emuhawk
Use string interpolation in BizHawk.Client.EmuHawk
2019-03-27 19:22:42 -05:00
adelikat ecec7807f4
Merge pull request #1518 from TASVideos/interp_discohawk
Use string interpolation in BizHawk.Client.DiscoHawk
2019-03-27 19:11:21 -05:00
James Groom cff8c855a4
Use string interpolation 2019-03-26 17:57:33 +11:00
YoshiRulz 6fc3a07f49
Use string interpolation 2019-03-20 15:52:54 +10:00
YoshiRulz 51d0bdf4cf
Use string interpolation 2019-03-20 15:24:33 +10:00
YoshiRulz 20b3112284
Use string interpolation
Excludes Sprintf.cs
2019-03-20 15:13:04 +10:00
YoshiRulz 9d0ee22885
Use string interpolation 2019-03-20 15:01:12 +10:00
YoshiRulz d64df5a030
Use string interpolation 2019-03-20 14:41:19 +10:00
YoshiRulz 4ec33bab1c
Use string interpolation 2019-03-20 14:29:38 +10:00
YoshiRulz e6374ef477
Use string interpolation 2019-03-19 00:06:37 +10:00
feos d54146791e fix #1509 2019-03-14 19:30:52 +03:00
James Groom c49799bb5b
Fix erroneous s/watch\.//i 2019-03-15 00:08:43 +10:00
feos 9a40dbf3ab
link Latest development build once again 2019-03-10 16:31:38 +03:00
feos c3c262db12 N64:
- close #1478
- update gliden
- wire up halo removal
2019-03-10 16:15:55 +03:00
alyosha-tas 6d0973ca7e
Merge pull request #1429 from YoshiRulz/master
Inconsequential changes (no whitespace)

looks good to me
2019-03-09 17:32:10 -06:00
alyosha-tas e5d94f3d7c Genesis: fix VDP viewer, fixes #1449 2019-03-09 17:16:00 -06:00
James Groom bf423747a5
Fix typo 2019-03-09 00:07:30 +10:00
YoshiRulz 0b5a61dcd3
Rewrite "d" replacement again but more like the previous algorithm 2019-03-05 19:37:59 +10:00
YoshiRulz 5412a74890
Use the *correct* formatting string, skip calls to Math.Abs 2019-03-05 19:16:20 +10:00
YoshiRulz 2f3ac59c7a
Inline local vars, use interpolated strings, and use {0:P;M} format string 2019-03-03 17:55:25 +10:00
YoshiRulz 20087cd804
Use string interpolation with {0:P;M;Z} format string 2019-03-03 17:52:47 +10:00
zeromus 5b552af5d5 change >= 0x80 -> '.' remap in hex editor to >= 0x7F (fixes #1503) 2019-03-03 01:14:33 -05:00
James Groom 1c5ec3f1dd
Fix typo
...or is it the docs that are wrong?
2019-02-28 14:07:16 +10:00
James Groom 1d5a097a75
Fix typo
also this method sucks
2019-02-27 15:33:27 +10:00
alyosha-tas 7630be7e93 SMS: Some clean up and speed up 2019-02-24 11:02:59 -06:00
YoshiRulz 13152d670f
Rewrite MovieView_ColumnClick, also fixes typo 2019-02-24 15:49:10 +10:00
YoshiRulz a572b220f6
Fix typo copying to clipboard during loop 2019-02-24 15:48:09 +10:00
James Groom 99b600bbab
Fix typo, using interpolation 2019-02-24 15:41:00 +10:00
James Groom d5d2e7d412
Fix typo 2019-02-24 15:39:53 +10:00
James Groom cf23d9db87
Fix typo and cleanup loop 2019-02-24 15:39:01 +10:00
alyosha-tas 9f75222284 SMS: Refactor sound to not use AsyncSound 2019-02-23 11:31:09 -06:00
James Groom f987ede70d
Fix magic mega drive detection 2019-02-22 14:42:16 +10:00
alyosha-tas 469fc4836f NESHawk: Optimizations and Audio changes 2019-02-18 14:52:17 -06:00
alyosha-tas ee45e3114e manually revert 'allow alpha in screenshots' 2019-02-12 17:17:08 -06:00
alyosha-tas cb517aaded Game Linking: resolve #321 2019-02-10 16:22:29 -06:00
alyosha-tas cf80d15c8f GBHawk: bug fix 2019-02-10 09:25:56 -06:00
alyosha-tas ead1d8d08c GGHawkLink: Virtual Pad 2019-02-10 08:59:28 -06:00
alyosha-tas dc94825891 various code cleanup 2019-02-09 16:46:36 -06:00
alyosha-tas ea92bdcc66 GGHawkLink: tracelogger 2019-02-09 15:19:18 -06:00
alyosha-tas 5665617d9b GGHawkLink: menues and API stuff 2019-02-09 12:41:23 -06:00
alyosha-tas f08a521900 GGHawkLink:
-Seperate controller input
-Fix lag indicator
-Correct frame execution
2019-02-09 11:45:29 -06:00
alyosha-tas 4f17934d6c GGHawkLink: Initial Commit
- Make necessary access changes in SMS
- Implmement multi-disk bundler support
- Initial Video and sound support
2019-02-09 09:55:45 -06:00
alyosha-tas 4a73565ab2 GBHawklink, SubNESHawk: Set to released
everything seems in  order and error free
2019-02-06 18:44:51 -06:00
adelikat cfdb027f27
Merge pull request #1433 from YoshiRulz/readme
[Reviewing] Readme rewrite
2019-02-05 18:15:13 -06:00
zeromus b23cba072b fix ffmpeg webm support (fixes #1477) 2019-02-05 15:29:40 -05:00
alyosha-tas 939de46905 A2600: fix HMove 2019-02-03 10:13:51 -06:00
adelikat 143c172cf0 debugger - dissassembler - wire pageup/pagedown to incement/decrement 2019-02-02 17:08:26 -06:00
alyosha-tas ec333fe1b8 A2600: Bang! Demo ccorrect mapper 2019-02-02 09:10:37 -06:00
feos 104e40d8b5 update gliden64 2019-01-29 13:47:40 +03:00
alyosha-tas 1981877487 NESHawk: Remove GOTOs 2019-01-27 17:18:16 -06:00
Asnivor 76070cd89d OCD: Fix non-critial compiler warnings in my code 2019-01-25 15:45:15 +00:00
James Groom 777d4c6a81
Update README.md 2019-01-25 22:53:45 +10:00
James Groom 9791df8801
Update README.md 2019-01-25 22:51:32 +10:00
James Groom 462a0c5989
Update README.md 2019-01-25 22:50:10 +10:00
James Groom 81920d0dee
Update README.md 2019-01-25 22:48:19 +10:00
James Groom 7266cef5aa
Update README.md 2019-01-25 22:44:02 +10:00
James Groom 24e3e46620
Update README.md 2019-01-25 22:42:13 +10:00
James Groom 659c80a740
Update README.md 2019-01-25 22:39:40 +10:00
James Groom 6857585384
Update README.md 2019-01-25 22:38:42 +10:00
James Groom 530790b515
Update README.md 2019-01-25 22:35:41 +10:00
James Groom 363166fa90
Update README.md 2019-01-25 22:32:50 +10:00
James Groom ca42daa157
Update README.md 2019-01-25 22:31:36 +10:00
James Groom 50e5978144
Update README.md 2019-01-25 22:27:11 +10:00
James Groom 4f3dc6dafc
Update README.md 2019-01-25 22:25:48 +10:00
James Groom 73366ef5af
Update README.md 2019-01-25 22:17:21 +10:00
James Groom 41f464b80c
Update README.md 2019-01-25 22:09:31 +10:00
James Groom 1d6bd43532
Update README.md 2019-01-25 21:57:04 +10:00
Brian Armstrong fe3455be7d call with value, not 0 2019-01-24 03:25:50 -08:00
Brian Armstrong a8f293eec8 Call mem callbacks with addr, value 2019-01-24 03:23:21 -08:00
feos 766de68e18 tastudio: don't tell about clipboard if it's empty 2019-01-23 17:24:42 +03:00
feos 9955c55a0a
address #1458 2019-01-23 16:07:34 +03:00
feos ce3e3d2ed3 lua docs: couple hints 2019-01-23 15:42:02 +03:00
James Groom a7518d4e32
Update README.md 2019-01-23 20:43:32 +10:00
James Groom 248ed700a2
Update README.md 2019-01-23 20:38:05 +10:00
feos 21401636f1
Update README.md
Come one, was it so hard?
2019-01-23 13:23:25 +03:00
James Groom 9b145c27af
Update README.md 2019-01-23 16:54:07 +10:00
James Groom f2938d4895
Update README.md 2019-01-23 02:58:24 +10:00
Asnivor 40384b0103 ApiHawk: fixed incorrect case in GUIApi.cs (causing BizHawk not to build on case-intolerant linux) 2019-01-22 16:48:39 +00:00
alyosha-tas f65959f64c SubNESHawk: Pass through memory domains 2019-01-21 14:13:32 -06:00
alyosha-tas e50272f9f4 GBHawkLink: Fix frame display when loading a state 2019-01-20 10:12:06 -06:00
alyosha-tas a15e856390 Update link text to match link status 2019-01-20 09:30:08 -06:00
alyosha-tas 64c3b9dcd2 NESHawk: Implement newly found APU behaviour 2019-01-20 09:06:25 -06:00
nattthebear 0114e39489 change all uses of -c:a libvo_aac to -c:a aac because the ffmpeg we're packaging now no longer supports the former 2019-01-20 09:20:52 -05:00
zeromus 0ee9ddc9aa for some reason in 482a3ab8f6 I changed the sln to have x64 and x86 projects instead of anycpu. maybe I had a good reason for that, but I didn't write it in that commit, and so I'm reverting this until someone articulates a good reason 2019-01-20 02:30:19 -05:00
adelikat 5b26300e50
Merge pull request #1419 from upthorn/master
Extend APIHawk with a lua-like system of api libraries
2019-01-19 17:24:08 -06:00
alyosha-tas c4b3a7c3b8 TAStudio: Update window name when using saveas, Fixes #1444 2019-01-19 14:47:12 -06:00
alyosha-tas 6e1a19b5f8 TAStudio: Ask to override existing bk2 file when exporting 2019-01-19 14:02:45 -06:00
alyosha-tas 2bddf3663e TAStudio: Fix some bugs in new from menues 2019-01-19 13:30:42 -06:00
alyosha-tas 9696a75839
Merge pull request #1439 from TASVideos/subneshawkfixattempt
SubNESHawk
2019-01-19 09:48:43 -06:00
alyosha-tas 8e99908c47 SubNESHawk: Add ppu cycle to tracer 2019-01-19 09:23:22 -06:00
alyosha-tas ad6790cfb7 SubNESHawk: Add subframe reset 2019-01-18 18:48:50 -06:00
James Groom c15916d76a
Update README.md 2019-01-18 20:27:10 +10:00
James Groom 95f45da9da
Update README.md 2019-01-18 20:24:07 +10:00
James Groom 054048a907
Update README.md 2019-01-18 20:21:13 +10:00
zeromus b164d8b31c implement user crop area as a negative padding
fixes #1453
2019-01-18 01:16:03 -05:00
zeromus e53d861db4 Revert "bad attempt at implementing user crop area" 2019-01-18 01:00:24 -05:00
zeromus 578bb546f3 bad attempt at implementing user crop area. need to do differently. needs to happen.. like... as soon as we get the video provider. 2019-01-18 01:00:07 -05:00
zeromus cecdff8293 config hookup for user crop area 2019-01-18 00:59:45 -05:00
zeromus ca9385c3c8 add some little fragments i meant for the user display cropping stuff but didnt use 2019-01-18 00:59:23 -05:00
Brad Smith 65ce3abaa9 NES Mapper034.cs is missing SyncState (#1451)
* NES Mapper034.cs is missing SyncState
2019-01-17 16:42:27 -05:00
upthorn a0b668ddd3 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2019-01-16 12:48:28 -08:00
James Groom 08c0506483
Update README.md 2019-01-16 03:48:09 +10:00
James Groom a94a970b01
Update README.md 2019-01-16 01:33:55 +10:00
James Groom 01265a2893
Update README.md 2019-01-16 01:26:11 +10:00
James Groom 934e7edde2
Update README.md 2019-01-16 01:18:41 +10:00
James Groom 08d9c0a724
Update README.md 2019-01-16 01:13:20 +10:00
James Groom 8c7375147b
Update README.md 2019-01-16 01:10:36 +10:00
James Groom 1ac45bbdb8
Update README.md 2019-01-16 01:09:54 +10:00
James Groom 81ba013711
Update README.md 2019-01-16 01:09:24 +10:00
James Groom d54b377819
Update README.md 2019-01-16 01:08:39 +10:00
James Groom ba58fa3562
Update README.md 2019-01-16 00:54:42 +10:00
James Groom b7fd548b73
Update README.md 2019-01-16 00:44:47 +10:00
James Groom 3aec48de7f
Update README.md 2019-01-16 00:43:53 +10:00
James Groom 3f8518e6f2
Update README.md 2019-01-16 00:36:10 +10:00
James Groom 7b71703223
Update README.md 2019-01-15 18:39:37 +10:00
James Groom 77d099de53
Update README.md 2019-01-15 16:00:18 +10:00
upthorn 435d717f7b Merge branch 'master' of https://github.com/Upthorn/Bizhawk 2019-01-14 17:10:45 -08:00
James Groom d144479548
Update README.md 2019-01-15 01:52:29 +10:00
James Groom 1ae9de0921
Update README.md 2019-01-15 01:34:36 +10:00
James Groom c6a07396bd
Update README.md 2019-01-14 01:37:25 +10:00
James Groom 84d163d1cb
Update README.md 2019-01-14 00:29:25 +10:00
James Groom fefce3d9f1
Update README.md 2019-01-14 00:19:37 +10:00
James Groom 2448cf38bd
Update README.md 2019-01-14 00:10:54 +10:00
James Groom c1b85d0cb6
Update README.md 2019-01-13 23:43:32 +10:00
James Groom b6a0afaa1e
Update README.md 2019-01-13 23:41:09 +10:00
James Groom 3e78091904
Update README.md 2019-01-13 17:24:36 +10:00
James Groom fdc0f26ca6
Update README.md 2019-01-13 17:23:56 +10:00
James Groom 3aa70ba0cf
Update README.md 2019-01-13 17:22:02 +10:00
James Groom 90a3053447
Update README.md 2019-01-13 16:25:56 +10:00
alyosha-tas f6dd99a3ce GBHawkLink: Fix logic error in linking 2019-01-12 14:57:25 -06:00
alyosha-tas 74d20ca45c SubNEShawk: Add VBL Count to BK2 movie header 2019-01-12 13:27:00 -06:00
alyosha-tas c5cfe9e412 SubNESHawk: Fix up FPS viewer 2019-01-12 10:41:50 -06:00
James Groom e80a5779ce
Update README.md 2019-01-13 02:14:51 +10:00
James Groom 40928ad5ac
Update README.md 2019-01-13 01:57:06 +10:00
James Groom f16c538872
Update README.md 2019-01-13 01:47:37 +10:00
alyosha-tas 5256284ac6 SubNESHawk:
- Use NES settings for controllers / sync settings
- Clean up un-needed extra controller code
- Enable Menues
2019-01-12 09:32:01 -06:00
alyosha-tas 9fdeb9f5eb SubNESHawk: fix gambatte frameadvancepost, allow ppuviewer and nametableviewer 2019-01-12 08:12:21 -06:00
James Groom 5d1ca826c4
Update README.md 2019-01-12 18:06:19 +10:00
James Groom 33ac41d8b8
Update README.md 2019-01-12 17:40:26 +10:00
James Groom 37b1d99921
Update README.md 2019-01-12 17:40:10 +10:00
YoshiRulz 119b4058eb Revert "Update README.md"
This reverts commit 56a834b75f.
2019-01-12 15:13:48 +10:00
James Groom 56a834b75f
Update README.md 2019-01-12 02:56:25 +10:00
James Groom 4643e23028
Update README.md 2019-01-12 02:24:35 +10:00
James Groom aba7a9dde5
Update README.md 2019-01-12 02:16:55 +10:00
James Groom b2386830e3
Update README.md 2019-01-12 02:14:59 +10:00
James Groom 2afb731e5e
Update README.md 2019-01-12 02:13:58 +10:00
James Groom 1be4684281
Update README.md 2019-01-12 02:12:50 +10:00
James Groom a6cf78a8b5
Update README.md 2019-01-12 02:12:24 +10:00
James Groom 2647fcb74b
Update README.md 2019-01-12 01:58:20 +10:00
James Groom 73bbd68894
Update README.md 2019-01-12 01:53:13 +10:00
James Groom 6cca49f828
Update README.md 2019-01-12 01:46:54 +10:00
James Groom 99b4e7f4d8
Update README.md 2019-01-12 01:45:15 +10:00
James Groom 08fdb101dd
Update README.md 2019-01-12 00:40:18 +10:00
James Groom 31f28f466a
Update README.md 2019-01-12 00:39:53 +10:00
James Groom 25115fd293
Update README.md 2019-01-12 00:33:19 +10:00
James Groom 49fe454881
Update README.md 2019-01-11 22:15:06 +10:00
James Groom dd69df3433
Update README.md 2019-01-11 22:14:13 +10:00
James Groom 9cbf6455f8
Update README.md 2019-01-11 22:11:49 +10:00
James Groom a48c697016
Update README.md 2019-01-11 22:11:18 +10:00
James Groom 0d71b4a525
Update README.md 2019-01-11 22:10:10 +10:00
James Groom 993a6d80e2
Update README.md 2019-01-11 22:08:42 +10:00
James Groom 13704e1904
Update README.md 2019-01-11 21:58:06 +10:00
James Groom 91b486e9a0
Update README.md 2019-01-11 20:08:06 +10:00
James Groom 48e9f731b2
Update README.md 2019-01-11 20:07:09 +10:00
James Groom 9c397a0053
Update README.md 2019-01-11 20:02:51 +10:00
James Groom 3794d0ced8
Update README.md 2019-01-11 20:00:38 +10:00
James Groom 5905dc2d7c
Update README.md 2019-01-11 19:45:36 +10:00
James Groom 62363e3cde
Update README.md 2019-01-11 18:26:27 +10:00
James Groom 79252ee417
Update README.md 2019-01-11 18:25:16 +10:00
James Groom 5200ce89c6
Update README.md 2019-01-11 18:07:44 +10:00
James Groom e60be7753c
Update README.md 2019-01-11 04:32:54 +10:00
James Groom 17a73c31e5
Update README.md 2019-01-11 04:18:34 +10:00
James Groom 9a9daf20d8
Update README.md 2019-01-11 04:08:52 +10:00
James Groom c1e2d2388c
Update README.md 2019-01-11 03:55:46 +10:00
James Groom d9836e0c20
Update README.md 2019-01-11 03:45:48 +10:00
James Groom b62abb7f0b
Update README.md 2019-01-11 03:39:03 +10:00
James Groom ec65982893
Update README.md 2019-01-11 03:34:01 +10:00
James Groom c44aed966f
Update README.md 2019-01-11 03:28:48 +10:00
James Groom 4f53bb2d90
Update README.md 2019-01-11 03:27:38 +10:00
James Groom 753a14ef1e
Update README.md 2019-01-11 03:26:07 +10:00
James Groom 4ee836982a
Update README.md 2019-01-11 03:20:50 +10:00
James Groom a2edf3646a
Update README.md 2019-01-11 03:18:42 +10:00
James Groom 56c9033ef8
Update README.md 2019-01-11 03:17:12 +10:00
James Groom 47fe7743c8
Update README.md 2019-01-11 03:06:17 +10:00
James Groom d1f3b19c73
Update README.md 2019-01-11 03:05:27 +10:00
James Groom 5e3b2eada3
Update README.md 2019-01-11 03:04:07 +10:00
James Groom 506d9e2e0c
Update README.md 2019-01-11 03:00:34 +10:00
James Groom e7b18c5871
Update README.md 2019-01-11 02:44:52 +10:00
James Groom dd7abcd5df
Update README.md 2019-01-10 16:06:37 +00:00
James Groom 108879217f
Update README.md 2019-01-11 01:53:32 +10:00
James Groom 4bc924ebd4
Update README.md 2019-01-11 01:52:05 +10:00
James Groom 54729d3c15
Update README.md 2019-01-11 01:48:13 +10:00
James Groom 577b46f350
Update README.md 2019-01-11 01:43:21 +10:00
James Groom c21422c396
Update README.md 2019-01-11 01:29:37 +10:00
alyosha-tas c19c7cd5c3 SubNESHawk
also Input register shift fix

# Conflicts:
#	BizHawk.Client.EmuHawk/MainForm.Designer.cs
#	BizHawk.Client.EmuHawk/MainForm.Events.cs
#	BizHawk.Emulation.Cores/Computers/AmstradCPC/AmstradCPC.IEmulator.cs
#	BizHawk.Emulation.Cores/Computers/SinclairSpectrum/ZXSpectrum.IEmulator.cs
#	BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.run.cs
2019-01-10 18:25:59 +03:00
James Groom 746606a09d
Update README.md 2019-01-11 00:45:58 +10:00
James Groom 43286f7ec3
Update README.md 2019-01-11 00:35:54 +10:00
James Groom e22d10517f
Update README.md 2019-01-11 00:31:21 +10:00
James Groom 544b2c0748
Update README.md 2019-01-11 00:30:38 +10:00
James Groom f1041fc764
Update README.md 2019-01-11 00:30:22 +10:00
James Groom 200cffabc4
Update README.md 2019-01-11 00:30:05 +10:00
James Groom 5e3e722858
Update README.md 2019-01-11 00:20:04 +10:00
James Groom 54602ba86f
Update README.md 2019-01-11 00:12:17 +10:00
James Groom 9155d213d3
Update README.md 2019-01-10 23:50:46 +10:00
James Groom ef002869fb
Update README.md 2019-01-10 21:11:26 +10:00
James Groom b82875f33a
Update README.md 2019-01-10 20:50:32 +10:00
James Groom 041436e5fd
Update README.md 2019-01-10 20:42:06 +10:00
James Groom 7ab6517867
Update README.md 2019-01-10 20:28:43 +10:00
James Groom 0a41092150
Update README.md 2019-01-10 15:01:37 +10:00
James Groom 41061b44ab
Update README.md 2019-01-10 14:30:49 +10:00
zeromus cc532a2988 update nlua.dll with one built with optimization 2019-01-09 16:21:00 -05:00
James Groom b29516fb59
Update README.md 2019-01-10 04:39:40 +10:00
James Groom 531e4d8909
Update README.md 2019-01-10 04:37:10 +10:00
Asnivor d7caf48a70 EmuHawkMono.sh 'I suck at shell scripts' fix 2019-01-09 17:50:57 +00:00
James Groom 96042e2174
Update README.md 2019-01-09 17:39:13 +00:00
James Groom 37eb3a41fd
Update README.md 2019-01-09 17:31:16 +00:00
James Groom 43686a2cf1
Update README.md 2019-01-09 17:24:20 +00:00
James Groom 65ce6409ab
Update README.md 2019-01-09 17:18:41 +00:00
James Groom 233ac59d8a
Update README.md 2019-01-09 17:14:16 +00:00
James Groom 49301f4fe0
Update README.md 2019-01-09 17:09:28 +00:00
James Groom 592c6cd945
Update README.md 2019-01-09 17:05:57 +00:00
James Groom 245dce5571
Update README.md 2019-01-09 17:04:45 +00:00
James Groom 5297ba8eb7
Update README.md 2019-01-10 01:46:32 +10:00
James Groom fe52089b1a
Update README.md 2019-01-10 01:37:09 +10:00
James Groom 31300b9cca
Update README.md 2019-01-10 01:35:01 +10:00
Asnivor c2bc9893e5 Add Debian as option in EmuHawkMono.sh runscript 2019-01-09 14:37:11 +00:00
James Groom a0d9c81331
Update README.md 2019-01-10 00:31:48 +10:00
James Groom 8557cdb90a
Update README.md 2019-01-09 20:44:11 +10:00
James Groom bafcd6c724
Update README.md 2019-01-09 20:27:28 +10:00
Asnivor ec89abd419
Merge pull request #1435 from TASVideos/mGBA_determinismbios
EmuHawk: _LoadRom() - Change deterministic back to how it was before.
2019-01-09 09:38:03 +00:00
James Groom d8c22b5c9e
Update README.md 2019-01-09 16:23:16 +10:00
James Groom 10d7bcee6e
Update README.md 2019-01-09 16:21:12 +10:00
James Groom ff19a708a4
Update README.md 2019-01-09 16:11:27 +10:00
James Groom 220e0612a9
Update README.md 2019-01-09 15:58:16 +10:00
James Groom a43eacaa40
Update README.md 2019-01-09 15:54:24 +10:00
James Groom 0005b938e0
Update README.md 2019-01-09 15:53:31 +10:00
James Groom 689eb38801
Copy blurb from GitLab mirror 2019-01-09 03:57:51 +10:00
James Groom 47064f3d21
Update README.md 2019-01-09 03:52:51 +10:00
Asnivor 4c5728dedb EmuHawk: Deterministic Emulation Revert 2019-01-08 12:48:40 +00:00
James Groom a6b3717271
draft 3 2019-01-08 21:56:04 +10:00
Asnivor b7f2363584 EmuHawk: Change deterministic back to how it was before. TRUE if a movie is queued, FALSE if not (and let the cores manage this setting further down the foodchain if they want to). Without this, mGBA skipbios will never work #1432 2019-01-08 11:53:27 +00:00
James Groom a53f1f97dc
draft 2 2019-01-08 16:37:17 +10:00
James Groom 5f642845e7
draft 1 2019-01-08 16:08:37 +10:00
YoshiRulz c0a28a320b
Inconsequential changes (no whitespace)
Remove useless semicolon, remove useless `? true : false`, move period to next
line
2019-01-07 22:02:02 +10:00
feos 3b4d82defb fix #1424 2019-01-06 21:20:54 +03:00
adelikat 4a6a6079b0
Merge pull request #1425 from NarryG/master
Fix quicknes (Fixes #1423)
2019-01-06 11:57:13 -06:00
Dan B b962f06e07 Fix quicknes 2019-01-06 12:16:28 -05:00
feos 2174f1d305 nice 2019-01-06 18:26:31 +03:00
feos 2e52f765bc update the RELEASEDATE date to be up-to-date 2019-01-06 18:11:44 +03:00
feos ade701f873 tastudio: instead of capturing a tsm state after loading a branch, force greenzone creation when we're navigating past last greenzone frame
doesn't fire when you hit frame advance or > button tho

(don't know why it thinks mgba has changed)
2019-01-06 16:09:06 +03:00
feos c8c3ba1c39 tastudio: allow to actually unbind markers from input, and unbind by default 2019-01-05 23:09:18 +03:00
feos 19b716d7bb tastudio:
- don't use branch laglog after loading it. it's useless because we invalidate if needed anyway
- PauseOnFrame being null started to crash seeking, fixed
- make use of movie alias in branchbox
- capture tsm state after loading the branch

todo: if we load a branch in the middle of invalid greenzone, advancing won't draw new greenzone even tho states are being created. laglog doesn't seem to allow gaps either. unsure how to resolve
2019-01-05 23:09:18 +03:00
feos 457850d46a Merge branch 'Branch_2b7014f' into release 2019-01-05 23:08:10 +03:00
alyosha-tas 3a8ae031d3 GBHawkLink: Fix state error. 2019-01-05 13:00:37 -06:00
feos 56e77f4907 tastudio: allow to actually unbind markers from input, and unbind by default 2019-01-05 21:48:40 +03:00
feos cd2d63b04a tastudio:
- don't use branch laglog after loading it. it's useless because we invalidate if needed anyway
- PauseOnFrame being null started to crash seeking, fixed
- make use of movie alias in branchbox
- capture tsm state after loading the branch

todo: if we load a branch in the middle of invalid greenzone, advancing won't draw new greenzone even tho states are being created. laglog doesn't seem to allow gaps either. unsure how to resolve
2019-01-05 21:30:06 +03:00
alyosha-tas 292ee296dc GBHAwk: palette not writable during rendering: fixes lego racers 2019-01-05 10:34:19 -06:00
alyosha-tas e2ccff1c82 GBHawk: CGB double speed linking 2019-01-05 08:23:16 -06:00
alyosha-tas b9094545db update 7zip file location 2019-01-04 18:03:34 -06:00
zeromus 303e9df26e rejigger PlatformLinkedLibSingleton so it can be used embedded in the EXE without requiring a dependency on dlls, so it can boot when dlls are relocated 2019-01-04 17:42:12 -05:00
upthorn 8a9e8ceed2 Fix appveyor build error by removing use of C#7 features. 2019-01-04 14:25:24 -08:00
upthorn c8f826ada3 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2019-01-04 13:58:01 -08:00
upthorn 9d853d200d Remove vestigial hard-coded Ecco 2 tool 2019-01-04 13:57:34 -08:00
nattthebear b82fd1fb2c Remove bogus TODO.
Absolute requirements of MemoryBlock include:

1) Ability to set and deny RWX permissions at the individual page level within the block
2) Ability to map and unmap from memory at will
3) Ability to specifiy the exact address at which the mapping occurs

From the docs, I don't see any way to get at any of these from the MemoryMappedFile stuff.  So that's a nonstarter.

Should be easy enough to rewrite in POSIX though.
2019-01-04 16:30:13 -05:00
upthorn 71215adf0d Merge branch 'master' of https://github.com/TASVideos/BizHawk 2019-01-04 04:58:58 -08:00
alyosha-tas 32e4a2d9a4 GBHAwk: Linked play initial capability 2019-01-03 19:24:18 -06:00
alyosha-tas 12ad2d5b36 GBHawk: Link Cable work 2019-01-03 17:31:35 -06:00
James Groom 42764f0019 Add preliminary Unix compatibility (using Mono; resolves #1384) (#1380)
* Move PlatformSpecificLinkedLibs and implementations to common and rename
* Specify file ext. at LoadPlatformSpecific call site
* Move Client.Common.Global.RunningOnUnix to PlatformLinkedLibSingleton
* Inline var Resolver
* Use PlatformLinkedLibManager internally
* Move plugin load check to LinkedLibManager, use LinkedLibManager
* Interpolate
* Return exit code from dlclose/FreeLibrary
* Skip all calls to externs in BlipBufDll when using mono
* Use PlatformLinkedLibManager in SevenZipLibraryManager
* Add expected return value to workaround (from testing on Win32)
* Remove ".dll" from DllImport attr, remove temporary workaround, see desc.
The library can be built by changing the output file name in
`.../blip_buf/Makefile` to `libblip_buf.so`, and running `make`. It will be
loaded if placed in the `.../output` folder.
* Remove unused code, add TODO (this class is req. for Waterbox.PeWrapper)
The TODO is to [rewrite with
C#](https://docs.microsoft.com/en-us/dotnet/standard/io/memory-mapped-files)
instead of importing from `kernel32.dll`.
* Update OpenTK again but better (for #1384)
* Add Mono run script
* Add libblip_buf.so (temporary)
Temporary because it should be a separate package which BizHawk depends on.
* Add distro detection, add "already running" and "unknown distro" messages
* Gray-out Lua Console on Unix
* Extract superclass from EmuLuaLibrary, add shell implementation for Unix
* Specify libdl version, Fedora doesn't have the versionless symlink
* Remove empty `ToolStripMenuItem`, null `Text` caused crash on Unix
* Transform OpenTK keyboard input into a `List<KeyEvent>` and read that
Also fixes crash on rebind
* Remove debug `using ...;`
2019-01-04 01:50:55 +03:00
alyosha-tas f47c2d1558 GBHawk: Start link support 2019-01-03 12:10:53 -06:00
upthorn bc4330a9d1 External tools no longer crash on loading new ROM 2019-01-03 05:53:26 -08:00
upthorn c76d850687 Working types now allow implicit conversions from longs. 2019-01-03 05:52:31 -08:00
Asnivor 2b7014f8b8 ZXHawk: Some comment and group structure cleanup 2019-01-02 14:02:09 +00:00
Asnivor 3766e2380c ZXHawk: Fix exception thrown randomly by tape player subsystem 2019-01-02 12:38:32 +00:00
alyosha-tas 0621db4585 GBHawk: inital register state 2018-12-31 19:14:53 -06:00
zeromus 9d14c1f214 fix ugly cleartype mangling on lua canvas drawtext, unintended goof-up in code. fixes #1411 2018-12-30 02:32:38 -05:00
alyosha-tas cf806baff7 GBHawk: Fix very stupid bug: Fixes Lego Racers 2018-12-28 19:49:20 -06:00
alyosha-tas 19f3aeec3a GBHawk: GBC HW IO 2018-12-28 10:11:37 -06:00
alyosha-tas 36e159da72 GBHawk: GBC pass remaining Wilbert Pol tests 2018-12-28 09:15:16 -06:00
alyosha-tas 45de86de8d GBHawk: LY = LYC Fix: Fixes Slugfest 2018-12-28 06:51:22 -06:00
zeromus 642bc13e84 fix build error (maybe some new c# thing) 2018-12-24 20:33:09 -05:00
alyosha-tas 62c178ff2e GBHawk: add default bindings 2018-12-24 12:33:09 -06:00
feos 2121107d1a gpgx tracer: pc & 0xFFFFFF 2018-12-24 01:59:15 +03:00
upthorn 01914552de Merge branch 'master' of https://github.com/Upthorn/Bizhawk 2018-12-23 14:45:18 -08:00
feos d37ee39716 and more 2018-12-23 22:16:04 +03:00
feos f000b45d28 and more padding 2018-12-23 18:41:46 +03:00
feos 40d0ddb1c2 update gliden 2018-12-23 18:33:06 +03:00
feos a2ae8ed47f return gpgx tracelog padding 2018-12-23 18:23:44 +03:00
upthorn 34c207ff38 Fixed an infinite recursion in the implicit conversions of the working types 2018-12-23 04:25:08 -08:00
upthorn b9d35399b7 Created some working small integers to bypass C#'s hatred of 8bit and 16bit arithmetic. 2018-12-23 00:46:20 -08:00
zeromus 15131a0626 support --config=c:\path\to\config.ini (fixes #1404) 2018-12-23 00:23:57 -05:00
upthorn 3b1fd8fec6 Unrename SetExtraPadding methods. 2018-12-22 11:58:14 -08:00
upthorn 79aaef0257 Removed project references to old, unrefactored files that no longer exist. 2018-12-22 11:16:54 -08:00
upthorn efc6f73169 Merge branch 'PluginDev' 2018-12-22 10:43:12 -08:00
upthorn aba1da071d Completely refactored PluginAPI to extend ApiHawk. Ecco2AssistantPlugin is now an external tool. 2018-12-22 10:40:30 -08:00
alyosha-tas adf4dd6150 GBHawk: HuC3: Initial Capability 2018-12-22 09:10:27 -06:00
upthorn d238ecc311 Merge branch 'master' of https://github.com/TASVideos/bizhawk 2018-12-21 22:41:37 -08:00
upthorn ce81b67b8c Allow clientapi to modify GameExtraPadding, not just ClientExtraPadding 2018-12-21 22:39:19 -08:00
upthorn 8395193aee Allow alpha to matter in screenshots. 2018-12-21 22:38:03 -08:00
upthorn d3cb19e56b Uncomment mapdumping code. 2018-12-21 22:35:38 -08:00
Asnivor fbbdec8610
Merge pull request #1405 from TASVideos/z80_optimzation
Z80A Optimizations - closes #1395
2018-12-21 18:20:46 +00:00
Asnivor 32cce86f51 z80: optimization using fixed-size arrays 2018-12-21 13:46:47 +00:00
Asnivor 50045f3b4b Z80: tidy up old commented code 2018-12-21 10:29:10 +00:00
Asnivor b4219b8242 Z80: convert .Length lookups to integer 2018-12-21 09:57:49 +00:00
upthorn b343a19acc Commented out extraneous member. 2018-12-20 17:32:49 -08:00
alyosha-tas 812f3d5cfa
Update PPU.regs.cs
comment out debug line
2018-12-20 18:39:02 -06:00
Asnivor 6a60657199 Z80: optimization testing 2018-12-20 10:40:54 +00:00
alyosha-tas b773ba5798 NESHawk: Note on Mesen timings 2018-12-19 19:39:01 -06:00
feos 4675d692ff n64 plugins: add 4K 2018-12-17 23:00:51 +03:00
alyosha-tas 69fe1bdf97 NESHawk: VRAM write timing glitch 2018-12-16 13:10:04 -06:00
alyosha-tas 0fad2495d1 GBHawk: GBC ppu work, change to halt timing 2018-12-16 13:02:14 -06:00
alyosha-tas f2bcabb10f GBHawk:more ppu work 2018-12-16 09:50:35 -06:00
alyosha-tas 6fb626386b GBHawk: Pass sprite tests 2018-12-15 13:05:01 -06:00
alyosha-tas afebde0d3e A7800: change 'trigger' to 'button' 2018-12-14 18:23:24 -06:00
feos be218685c5 update gliden (partially fixes bomberman) 2018-12-08 13:41:11 +03:00
Asnivor eee1cb481c
Fix Lua documentation - #1389 2018-12-08 08:47:17 +00:00
Asnivor 6f7a26e803 Virtu: enable apple white and black keys 2018-12-07 15:03:19 +00:00
upthorn 05f9939ddf Merge branch 'master' into PluginDev 2018-12-06 12:29:58 -08:00
upthorn c50267fe96 GPGX trace no longer crashes when executing from M68K RAM. 2018-12-06 12:25:01 -08:00
upthorn 59f30b4a79 Allow signed display of fixed point values. 2018-12-06 12:25:00 -08:00
Asnivor 6621827b8f C64Hawk - reenable full border - #1341 2018-12-06 13:42:00 +00:00
Asnivor 0411be40fe ZXHawk: readme update 2018-12-06 13:15:24 +00:00
Asnivor 5da7c3849a
Merge pull request #1393 from TASVideos/ZXHawk_Pentagon
ZXHawk: pentagon initialisation
2018-12-06 13:04:53 +00:00
Asnivor 1ffeb7cf7e ZXHawk: pentagon initialisation 2018-12-06 12:58:52 +00:00
Asnivor bcd34246ac EmuHawk: fix typos in MainForm.RomFilter and FileLoader.KnownRomExtensions - fixes #1392 2018-12-06 09:48:28 +00:00
alyosha-tas f34e723056 NESHawk: remove unused cheat class and simplify 2018-12-05 17:44:49 -06:00
upthorn a13b9b3a31 Significant updates to example Ecco 2 plugin. 2018-12-05 11:59:13 -08:00
upthorn 9874c496ac Minor revisions to plugin API 2018-12-05 11:58:19 -08:00
alyosha-tas 59f43b144e Core Code Cleanup 2018-12-05 09:01:25 -06:00
Asnivor 49a497eb3f
Update repo readme with missing systems 2018-12-04 17:24:46 +00:00
feos 3857ccc18f fix #1388 2018-12-04 19:57:01 +03:00
Asnivor ff2d713a90
Merge pull request #1387 from TASVideos/pcehawk_outofrange_bufferfix
PCEHawk - DESR enforce 16bit register size - #1363
2018-12-04 09:55:22 +00:00
Asnivor 04b84a5c2e pcehawk: mask only when addr attached to vram 2018-12-03 23:06:48 +00:00
feos 8e58777c70 tastudio: update branchview buttons on any selection change
fix crash on branch dbl-clk without selection
2018-12-04 00:53:53 +03:00
Asnivor 0687d4a304 needs testing/a second eye on it - #1363 2018-12-03 21:16:58 +00:00
feos c85bb39d98 tastudio: branch loading now can behave as it does for regular rerecording!
Old control scheme for Branches ON:
- Loading in read+write (recording) mode restores the branch input and truncates it after the branch frame
- Loading in read-only (playback) mode only makes emulation jump to the frame of the branch, disregarding its savestate and timeline

Old control scheme for Branches OFF:
- Loading a branch ALWAYS restores its entire input

TASEditor adds to this that you only start recording after you load a branch in rec mode, but I don't think this is important here.
2018-12-04 00:16:14 +03:00
feos d03e12590e tastudio: make state-save hotkeys usable if the slot is empty, just add a branch 2018-12-03 23:27:21 +03:00
feos 731584344d tastudio: BranchesRestoreEntireMovie and LoadBranchOnDoubleclick 2018-12-03 22:33:42 +03:00
feos b316efb922 cute, I forgot to save the actual changes 2018-12-03 21:16:06 +03:00
feos 3a688d543b tastudio: fix rec mode dying when appending movie frames
close #1376
2018-12-03 21:10:14 +03:00
adelikat 12c11eec5d lua method - client.getconfig(), returns the current config object, note that you can actually use this to set primitive config values, do so at your own risk 2018-12-01 09:20:08 -06:00
zeromus 615d7848f9 basic bot - fix failure to fully use selected memory domain (fixes #1305) 2018-11-30 10:14:35 -06:00
zeromus 8c7919a1c4 nothing 2018-11-30 10:00:26 -06:00
zeromus 88ce214670 remove junk accidentally added bizwareGL ClassDiagram 2018-11-30 09:08:44 -06:00
feos 07dec3f7bf allow to rewind to frame 0
see #1371

- If we're at frame == 0, there's nowhere to rewind to, so the button is properly ignored.
- If we're at frame > 1, the logic is sending us to the previous frame, but it seems to be forcing emulation of that frame rather than just loading the state and stopping, and that is by design.
- If we're at frame 2, we want to arrive to frame 1, the logic will load state 0 and fastforward from that to 1. That way we don't have to store framebuffer in rewind states.
- If we're exactly at frame 1, we know we want to arrive to frame 0, but the logic implies emulating to frame 0, which is impossible. So instead it loads state 0 and emulates one frame as it's used to.
2018-11-28 22:10:16 +03:00
feos 0433b10d31
Revert "This fixes a bug in TAStudio where you cannot use '<'to get to frame 0" (#1382)
I'm committing the proper fix after this
2018-11-28 22:03:16 +03:00
adelikat 76bfd7c355
Merge pull request #1355 from Gikkman/lua-joypad-intersection
Create JoypadIntersection.lua
2018-11-25 08:02:28 -06:00
adelikat 776886082b
Merge pull request #1378 from layland34/master
fix typo
2018-11-25 08:01:39 -06:00
layland34 edab819d6b
fix typo 2018-11-25 14:54:55 +01:00
alyosha-tas af39f65b03 A7800: cycle based DMA list fetching 2018-11-23 10:20:52 -06:00
alyosha-tas 572c7f34c8 A7800: expand cart size for some demos 2018-11-22 19:41:59 -06:00
alyosha-tas d8ec5df92d A7800: BG color and read mode latching 2018-11-22 18:31:54 -06:00
alyosha-tas 2891f501df zx-spectrum: clean up multiple DB entries 2018-11-22 12:00:09 -06:00
alyosha-tas 17d88ca6d7 rewinder: Increase buffer limit 2018-11-22 11:13:51 -06:00
alyosha-tas 6849e55931 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2018-11-22 10:12:15 -06:00
alyosha-tas 14b5d03180 Gambatte: savestate GB rgb palettes
fixes #1337
2018-11-22 10:11:35 -06:00
adelikat b3a9512afb Make GPGX Z80 Ram memory domain little endian, fixes #1256 2018-11-18 13:21:09 -06:00
adelikat 786a505366 stuff bizhawk version into savestates, closes #1210 2018-11-18 12:29:56 -06:00
feos ddbc4de8f6 update ffmpeg to ffmpeg-20181118-529debc-win64-static 2018-11-18 21:06:59 +03:00
adelikat 2f2878d139 Input display - show the last frame of hte movie's input when in movie replay mode 2018-11-18 11:26:15 -06:00
adelikat 870c5c186a Hex editor - remember last domain used, and load it automatically if available, fixes #1345, fixes#508 2018-11-18 11:18:42 -06:00
adelikat b73e9d2f7a
Merge pull request #1371 from TASVideos/rewind_frame0
This fixes a bug in TAStudio where you cannot use '<'to get to frame 0
2018-11-18 11:07:11 -06:00
adelikat 32b1fa6f3f messages config - change label "Last Frame Input" to "Previous Frame Input" to avoid confusion 2018-11-18 11:06:19 -06:00
adelikat 288baf568d Revert "here's how I think input display should work. also fixes your bug. also breaks something that had this comment (maybe)"
This reverts commit d4a48a8ee1.
2018-11-18 10:43:11 -06:00
zeromus 9d6997692f Merge remote-tracking branch 'remotes/peeweek/retroizer' 2018-11-18 11:09:53 -05:00
adelikat 06bb89791f Add a nag when attempting to record a quicknes movie (but allow the user to continue), fixes #1353 2018-11-18 10:05:12 -06:00
zeromus e368f42254 probably should not try to set last rom directory when opening al ibretro core 2018-11-18 10:58:28 -05:00
zeromus 63e1bc5511 fix loading archive from recent roms (broke in 7a72bf72e6) 2018-11-18 10:55:19 -05:00
adelikat c8265f6c10 allow snes9x movies to be recorded (still nag, but allow the user to continue) 2018-11-18 09:52:35 -06:00
alyosha-tas 4794c1bd46
Add files via upload 2018-11-18 09:04:56 -06:00
alyosha-tas ae21d1748f
Add files via upload 2018-11-18 09:03:49 -06:00
alyosha-tas b65d87f40c
Add files via upload 2018-11-18 09:03:03 -06:00
adelikat a4dcd4d010
Merge pull request #1321 from TASVideos/firmwareimporterfixes
FirmwaresConfig: Stop indiscriminate importing (and some other things…
2018-11-18 08:37:26 -06:00
adelikat db50cfc648 Merge branch 'lua-polygon-pos' 2018-11-18 08:28:05 -06:00
adelikat 7d708029ad drawPolygon - change x,y to offsetX,offsetY, make them truely optional by fixing a subtle order of operations problem 2018-11-18 08:27:32 -06:00
adelikat ee9e21bcb2
Merge pull request #1180 from AntyMew/lua-polygon-pos
Lua: Add optional position parameters to `DrawPolygon`
2018-11-18 08:12:01 -06:00
adelikat 8582023346
Merge pull request #1291 from TASVideos/force_DE_onMovieRecord
EmuHawk: Movies and DeterministicEmulation - ensure this is enforced …
2018-11-18 08:06:34 -06:00
adelikat 1d82ab4e3a
Merge pull request #1326 from nog5/master
lua: drawText() vertical alignment "top" and "bottom" was backwards
2018-11-18 07:55:22 -06:00
alyosha-tas 4c5723b95e A7800: pokey version of pacman collection 2018-11-17 14:54:13 -06:00
alyosha-tas d465ddbf53 A7800 mapper fix 2018-11-17 14:46:22 -06:00
alyosha-tas f91c14e42e A7800: more Pokey fixes, should sound correct now 2018-11-17 11:37:18 -06:00
alyosha-tas c8bb21ab38 A7800: more pokey work, starting to sound correct 2018-11-17 10:18:11 -06:00
cah4e3 02e1ccd541 removing "alt version" or Joshua by Wisdom Tree. This is just a bad file. 2018-11-15 16:52:46 +03:00
zeromus 026527380d gbhawk CDL - fiddle with it a bit, ignore writes to rom 2018-11-15 05:00:53 -05:00
cah4e3 9955b43c0a Merge branch 'master' of https://github.com/TASVideos/BizHawk 2018-11-15 11:45:52 +03:00
zeromus 6dd6314c87 gbhawk CDL - all the mappers. not tested very thoroughly. 2018-11-14 21:27:13 -05:00
zeromus 7143b2c83f GBHawk CDL - hook up mappers, test with MBC5 2018-11-14 21:10:01 -05:00
zeromus a8db56d8b2 rough draft gbhawk CDL 2018-11-14 21:04:31 -05:00
zeromus 7a72bf72e6 experimental: add %rom% to path manager, so files related to a rom can be located relative to the rom
also refactored how %exe% worked because it blew my mind
2018-11-14 19:04:02 -05:00
alyosha-tas c7f717981b
Update GBHawk.cs 2018-11-14 17:47:34 -06:00
cah4e3 ce7977f015 fix gbhawk firmware load crash 2018-11-15 01:14:27 +03:00
zeromus 5a38882f9e refix CDL autosave 2018-11-13 03:21:19 -05:00
zeromus 026bd3e1e5 more cdlogger ux improvements; fixes #1346 2018-11-13 02:06:39 -05:00
zeromus 872af8517f improve CDL autoloading (should fix #1346, but this is all a mess. I dont know) 2018-11-12 18:50:58 -05:00
zeromus 68f97a708d fix more mess in cdl file management 2018-11-12 18:12:00 -05:00
zeromus 25ff1f9539 libgambatte CDL - dont log anything while the bios runs (fixes #1349) 2018-11-12 17:52:41 -05:00
alyosha-tas a3e0a9818e Merge branch 'master' of https://github.com/TASVideos/BizHawk 2018-11-12 09:29:23 -06:00
alyosha-tas ca52715673 A7800: Audio Overhaul 2018-11-12 09:29:11 -06:00
zeromus 25dcc8d05d try cleaning up some garbage in CDL file management
see #1346
2018-11-12 02:25:51 -05:00
alyosha-tas 6dbbc9256a Movie Importer: Display Failure Message 2018-11-10 17:23:45 -06:00
alyosha-tas f0271b1f72 GBHawk: Pass many more tests 2018-11-10 12:47:46 -06:00
zeromus 1961d8b8d0 fix mupen dll not to have 100 frame hack crash; change c# side to more visibly hang (the frame counter stops, so the condition can be detected) 2018-11-07 19:59:03 -05:00
zeromus 2eade372fd try a new technique to just unstick the frontend when the n64 emulation thread dies 2018-11-07 15:37:37 -05:00
zeromus aee7358a6d fix starting up in dist packages with dlls relocated 2018-11-06 19:05:03 -05:00
alyosha-tas 3eefa19d68 A2600: MegaBoy special frame setting 2018-11-04 14:04:08 -06:00
James Groom ca021d96cc Allow bizhawk to be built and run w/ MSBuild and Wine+Mono on GNU+Linux (#1237)
- Update to latest OpenTK, add input code from `mono-stable` branch
(kudos), and fix bugs arisen from version differences
- Move some functionality into Win-specific classes and add Wine+Mono
implementation where simple
- Add conditions to main loop so some things only run on Windows
2018-11-04 20:05:20 +03:00
zeromus 30bf94e68d use newer rsp vcxproj (old one doesnt build) 2018-11-04 05:39:18 -05:00
zeromus e6d1feaf83 fix output directories in newer rsp vcxproj 2018-11-04 05:39:07 -05:00
zeromus 4e76bd97d1 fix regression from 2948d7597a loading archive roms 2018-11-04 05:25:24 -05:00
zeromus 482a3ab8f6 trap more cases where n64 emulation can halt when running buggy code and shunt through my don't-halt-after-all logic. these are now all associated with error messages; it would be nice if someone knew a way to get those error messages out to c#. then again, that might make buggy code become hopelessly slow due to error spew
re #1214
2018-11-03 14:04:34 -04:00
zeromus d4aceb2aa1 handle `DebugMessage(M64MSG_ERROR` uniformly by using my new approach of kicking it to a vsync so the frontend can recover. In one particular case (trying to read from an unmapped memory range) this can result in emulation proceeding instead of just hanging the frontend, although the results from that point may be questionable. 2018-11-02 16:28:20 -04:00
zeromus 4bb5ce8941 dont read roms out of range 2018-11-02 16:26:50 -04:00
zeromus 2948d7597a fix breakage from june of opening libretro cores (fixes #1357)
@asnivor please check loading bundler XMLs
2018-11-02 15:48:30 -04:00
zeromus dac6c0a062 does the n64 jit have a concept of crashing, or does it just go in an infinite and possibly infinitely recursing loop? I dunno, but I changed at least one infinite loop to a kind of administrative 'end frame' so at least it doesn't hang the emulator. If it has a way of crashing or halting, we should use that instead, but I couldn't figure it out.txt
fixes #1362
2018-11-01 23:03:09 -04:00
adelikat a8e85f742c SxROM - some small cleanup/simplification 2018-11-01 10:27:51 -05:00
alyosha-tas 9ebe0d2531 Cheats: Toggle shortcut key function 2018-10-28 09:45:39 -05:00
alyosha-tas 2dc13967ce A7800: Add db entry and fix mirroring 2018-10-27 19:51:18 -05:00
alyosha-tas 738ffe596d A7800: DB update and bug fix 2018-10-25 19:28:21 -05:00
alyosha-tas 41d9bb6967 A7800: Pokey support for SGE mapper 2018-10-24 17:37:42 -05:00
feos 8a27fe9c56 fix copypaste error 2018-10-24 20:03:20 +03:00
Simon 0a82411c21
Create JoypadIntersection.lua
Adds a small script which, when run, only allows input to P1's controller if both P1 and P2 holds down the specific button simultaneously. Also useful since it demonstrates joypad manipulation.
2018-10-22 21:52:07 +02:00
Isotarge e808618981 TAStudio: Squish some more exceptions
- Opening a TASProj or closing BizHawk with the Virtual Pad open
- Opening TAStudio with small window size saved in settings
2018-10-19 12:35:14 +10:30
Isotarge c5407472cd TAStudio: Prevent exceptions with small window size 2018-10-18 21:21:52 +10:30
alyosha-tas 41d1db14ef GBHawk: HuC1 support 2018-10-14 09:45:13 -05:00
alyosha-tas 4dd55ad0ff GBHawk: bug fix 2018-10-13 19:21:57 -05:00
alyosha-tas 595c88960d GBHawk: Some timing fixes for Oh! and GBvideoplayer 2018-10-13 14:21:06 -05:00
alyosha-tas 0c2c2dcb7c Merge branch 'master' of https://github.com/TASVideos/BizHawk 2018-10-11 16:45:06 -05:00
alyosha-tas 41e217731d GBHawk: Fix DMG sprite evaluation (fixes Oh! Demo bug) 2018-10-11 16:44:52 -05:00
cah4e3 2820187883 fix to #1345 2018-10-10 23:36:03 +03:00
alyosha-tas 77938b0d1b GBHawk: another Joshua version 2018-10-09 18:00:07 -05:00
alyosha-tas bdc241d658 GBHawk: Fix Virtual Pad 2018-10-08 18:54:12 -05:00
alyosha-tas 77c186b0b2 GBHawk: Wisdom tree compatibility 2018-10-08 10:21:09 -05:00
alyosha-tas 0ff7a07eaf GBHawk: minor fixes for GBvideoplayer 2018-10-08 09:53:18 -05:00
alyosha-tas d32b1824ed Merge branch 'master' of https://github.com/TASVideos/BizHawk 2018-10-08 09:48:34 -05:00
alyosha-tas ea1b74c67c no message 2018-10-08 09:48:27 -05:00
alyosha-tas 2a6720d284 Wisdom tree Mapper 2018-10-08 09:43:08 -05:00
Asnivor ffcd7993f9 GameDB: Super Tetris (Pirate) - GG_in_SMS - #1157 2018-10-08 12:14:42 +01:00
Asnivor abb1242cc9 GameDB: Jang Pung II (Korean pirated SMSGG) - GG_in_SMS - #1157 2018-10-08 12:09:05 +01:00
Asnivor d0f9951634 GameDB: Excellent Dizzy Collection, The (Europe) - GG_in_SMS - #1157 2018-10-08 12:01:22 +01:00
Asnivor c11004cf19 GameDB: Fantastic Dizzy (Europe) (En,Fr,De,Es,It) GG_in_SMS - #1157 2018-10-08 11:59:11 +01:00
Asnivor a3a5250e39 GameDB: Super KickOff (J) GG_in_SMS - #1157 2018-10-08 11:55:58 +01:00
alyosha-tas 19a25e55fb
z80: IORQ signal interrupt acknowledge 2018-09-30 12:21:47 -05:00
alyosha-tas 7ba4e8a437
z80: minor cleanups and bug fixes 2018-09-30 10:02:50 -05:00
alyosha-tas 028a5b644e z80 cleanup and bug fix 2018-09-30 09:58:08 -05:00
alyosha-tas 4cdcb80721
z80: rewrite interrupt handling
step one in proper line polling for CPC
2018-09-29 22:08:19 -05:00
alyosha-tas bf9796f1e8 z80: rewrite interrupt handling 2018-09-29 22:04:37 -05:00
Asnivor 805d3abd9d CPCHawk: more work on new CRTC chip emulation 2018-09-27 14:27:11 +01:00
Asnivor 818b1d8016 PCE: one small thing missed in the revert operation 2018-09-26 10:28:38 +01:00
Asnivor 4a2d9dd0f1 PCE: Revert aa7cee1. This looks to resolve the following: #1333 #1303 #1287 #1231 #1203 and *maybe* #1266 2018-09-26 10:27:23 +01:00
Asnivor c64eff6baa GameDB (GG): moved Out Run Europa (E) to gg and set compat mode - #1157 2018-09-25 10:18:23 +01:00
Asnivor 0f6cd4bda6 GG: Fixed Olympic Gold (E) & (JU) - moved to gamedb_sega_gg.txt and set GG_in_SMS compat mode - #1157 2018-09-25 09:58:24 +01:00
Asnivor b747ac22d7 SMS/GG: PowerOn Z80 SP init - stops some games from crashing/note loading 2018-09-25 09:25:54 +01:00
feos 57fd6051e9 fix #1246 the easy way 2018-09-21 23:43:51 +03:00
feos 39305d3c3e new gliden submodule pointer 2018-09-21 23:43:51 +03:00
feos 4ef17b8662 better anchor items in Play Movie dialog
it appears at fixed size anyway, but shrinking it was breaking the layout
2018-09-21 23:43:51 +03:00
feos d1e7fc10fd make ffmpeg segment numeration the same as vfw has 2018-09-21 23:43:50 +03:00
feos 966dbcab62 gliden64: restore non-working overscan for now 2018-09-21 23:43:50 +03:00
Asnivor f149413df3 FirmwaresConfig: kick checkbox over to the right 2018-09-21 18:06:26 +01:00
Asnivor 3273d37ce5 FirmwareConfigs: small fix 2018-09-21 17:45:23 +01:00
Asnivor 84eea580c2 FirmwareConfig: Added 'allow unknown import' checkbox 2018-09-21 17:44:17 +01:00
Asnivor 4d92a9f04a gamedb: added NGP/NGPC and improved homebrew detection 2018-09-21 16:10:35 +01:00
Asnivor acebf2621c Manual reversion of PR #1277 2018-09-21 15:38:52 +01:00
Asnivor 2202efb124 gamedb: fixed some formatting in zxs and cpc files 2018-09-21 15:30:50 +01:00
Asnivor 314c854422 DevTools: Added NOINTRO->GameDB parser 2018-09-21 15:23:57 +01:00
Asnivor 0d1cfa843b GameDB: Added AmstradCPC 2018-09-21 14:13:00 +01:00
Asnivor 5207d2436a GameDB: Added ZXSpectrum 2018-09-21 14:01:57 +01:00
Asnivor 5d4d9c94a4 DevTools: DAT->GameDB parser (currently only TOSEC implemented) 2018-09-21 13:22:35 +01:00
Asnivor 2ed0c919d2
Merge pull request #1330 from TASVideos/z80fixes
Z80: fix IN A, (N) flag affection
2018-09-19 23:01:30 +01:00
Asnivor e0b6c67b70 CPCHawk: Menu and GUI fixes 2018-09-19 17:46:58 +01:00
Asnivor 43f401a193 CPCHawk: Update readme 2018-09-19 17:03:57 +01:00
Asnivor 2565f49c89
Merge branch 'AmstradCPC' into master 2018-09-19 14:56:41 +01:00
Asnivor 95e565c545 CPCHawk: Start of new CRCT and Gatearray implementations 2018-09-19 14:35:22 +01:00
Asnivor 3d55446526 A, (N) flag affection 2018-09-19 13:10:41 +01:00
Asnivor 864021031b SMSHawk: moved rastan saga (japan) to GG gamebd and set GG_in_SMS compat mode. This fixes controls not working - #1157 2018-09-18 11:46:45 +01:00
Asnivor becaff7e48 SMSHawk: moved castle of illusion to GG gamedb and set GG_in_SMS compat mode - #1157 2018-09-18 11:43:05 +01:00
Asnivor b3e79d5474 SMSHawk: GG WWF Steel cage challenge - moved to gg gamedb and set GG_in_SMS compat - #1157 2018-09-18 11:38:59 +01:00
Asnivor 64d053187d SMSHawk: GG Predator 2 - moved to gamedb_sega_gg.txt and set GG_in_SMS - now working. - #1157 2018-09-18 11:35:19 +01:00
Asnivor ef1a39dd99 SMSHawk: GG Prince of Persia - moved from SMS to GG gamesdb.txt - set GG_in_SMS compat mode - now working - #1157 2018-09-18 11:32:05 +01:00
Asnivor c4dd4c50e2 Z80: undo flag oops 2018-09-18 11:13:31 +01:00
Asnivor 1025167104 SMSHawk: GG - fixed double dragon missing background - #1157 #1320 2018-09-18 11:11:59 +01:00
Asnivor a7386a52f0 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2018-09-18 10:54:55 +01:00
Asnivor f62ab685a9 ZXHawk: Fix core GUI windows monospace weirdness 2018-09-18 10:50:15 +01:00
zeromus 9d99995e04 small revision to 14ad5a3907 to work better in some cases with really, really weird window sizes 2018-09-15 23:17:47 -04:00
feos 0869c4b31c ffmpeg writer:
- make all formats editable (only custom is saved tho)
- deduce extension (since -f is required)
- restore ffv1
- fix #1325
2018-09-16 00:31:09 +03:00
feos b83c99c857 gliden64: wire up overscan, but disable the ui option, because it somehow refuses to work 2018-09-15 20:30:19 +03:00
feos 2ab320ebf2 gliden64: wire up resolution display
the proper method is obviously hooking into m64p and getting this info via lua or something, but for now it's better than nothing (and easy)
2018-09-15 12:43:39 +03:00
feos 6af9b6aaa5 update gliden64 and wire up fxaa 2018-09-15 12:09:52 +03:00
nog5 6b3071d8a7 lua: drawText() alignment fix
The vertical alignment "top" and "bottom" was backwards
2018-09-14 23:16:35 +02:00
Asnivor 95a68d1497 ZXHawk: Fix Tape and Disk media submenus opening at 0,0 2018-09-14 18:27:04 +01:00
Asnivor a5fc5ed061 ZXHawk: Move core menu to the correct location 2018-09-14 18:03:18 +01:00
nog5 ab78d3ff0d Merge branch 'master' of https://github.com/nog5/BizHawk 2018-09-14 18:38:25 +02:00
Asnivor 35afeb2b3d FirmwaresConfig: set customization file chooser now incorporates ArchiveChooser - if an insidefile is selected this is copied to the global firmwares folder 2018-09-14 09:46:39 +01:00
Asnivor 92f187fce1 RAMWatch: Enhancements (#1315)
fix #1257
2018-09-14 08:28:38 +03:00
Asnivor 163a370be0 Firmwares: some comment culling 2018-09-13 15:23:15 +01:00
Asnivor a04ad91b2c FirmwaresConfig: Stop indescriminate importing (and some other things) - #314 2018-09-13 15:07:52 +01:00
Asnivor afc5d516b8 Merge branch 'master' of https://github.com/TASVideos/BizHawk.git 2018-09-13 10:44:58 +01:00
Asnivor c76e2f35a0 ZXHawk: Starting on UDI and IPF disk image support (although neither are fully working or hooked up yet) 2018-09-13 10:44:48 +01:00
zeromus ba4b32f619 rename TempFileCleaner to TempFileManager; add global path config for temp files
I did this in a funny way (sets the environment for the process).
The idea is that any code which sloppily used Path.GetTempDirectory (etc.) would now have its pathing changed.
It is a little dangerous to allow this to be changed on the fly (I do allow it) since something may expect it to be stable, but I think it's OK.
So anyway. keep your eyes peeled for problems. It's possible I could do this differently and only affect a subset of safely managed things.

should fix #1252
2018-09-11 21:32:50 -04:00
Asnivor faaf4d2f18 ZXHawk: Support double-sided *.dsk images and throw an exception if the images are not 42 track disks 2018-09-11 11:21:59 +01:00
zeromus d4a48a8ee1 here's how I think input display should work. also fixes your bug. also breaks something that had this comment (maybe)
// adelikat: TODO: this is likely the source of frame 0 TAStudio bugs, I think the intent is to check if the movie is 0 length?
2018-09-10 16:57:10 -04:00
feos c0650c7860 mgba: update build - zero bios state bug fixed
update submodule to latest bizhawk-0.6
2018-09-10 23:02:54 +03:00
zeromus 14ad5a3907 fix #1279 (warp speed during minimized) 2018-09-10 15:25:40 -04:00
feos 76cbc87f5c submodule our fork of mgba 2018-09-10 22:22:07 +03:00
Asnivor 8a10ba6372 EmuHawk: ToolManager.IsAvailable<T> (#1294) 2018-09-10 22:08:44 +03:00
nog5 c012f56e45 lua: forms.drawText() horizontal alignment "right" fix (#1316)
The lua function forms.drawText() horizontal alignment "right" did the same as "center"
2018-09-10 21:18:31 +03:00
feos 11065c46bd apparently this dialog wasn't nifty enough 2018-09-10 20:43:46 +03:00
feos fbdea8282d add missing zxs mnemonics
tastudio: properly handle Show X menu items
2018-09-10 20:22:41 +03:00
Asnivor 3e8326da50 Lua: client.getversion() - #1314
fix #1271
2018-09-10 19:24:36 +03:00
Asnivor bd26f73516 Merge branch 'master' of https://github.com/TASVideos/BizHawk.git 2018-09-10 10:08:45 +01:00
Asnivor 16d68ea813 ZXHawk: debug only zx-state snapshot export 2018-09-10 10:05:49 +01:00
nog5 2dea3e5b53 lua: forms.drawText() horizontal alignment "right" fix
The lua function forms.drawText() horizontal alignment "right" did the same as "center"
2018-09-10 10:27:29 +02:00
feos 47a66db995 tastudio: break keys into as many menus as needed, and show their ranges
the code looks somewhat crazy
2018-09-09 21:13:42 +03:00
feos 1b6d6988fc tastudio: break the keys menu into 2 dropdowns
WIP
2018-09-09 19:46:55 +03:00
feos 0893d96a7e tastudio: menus for keys 2018-09-09 17:41:57 +03:00
feos ef89b7bf67 tastudio: don't create player menus if we don't even have players 2018-09-09 16:48:25 +03:00
feos 1455e4cad7 tastudio: hide a few computer columns by default 2018-09-09 15:38:45 +03:00
feos 83f464528d c64 state: it wasn't a wild stab 2018-09-09 00:20:05 +03:00
feos aeca800c62 c64 state: drop 4MB more
now state sizes are either 268 or 277 KB
2018-09-08 23:42:51 +03:00
feos fe8b6bffc0 c64 state: crush a bit harder 2018-09-08 23:32:44 +03:00
feos 1cf29c8310 c64 state: don't save DiskDrive twice 2018-09-08 23:24:09 +03:00
feos 86999815f7 tastudio: show branch screenshot on the right if it's offscreen
fix #1311
2018-09-08 19:32:27 +03:00
feos 5721894dbf lua console context menu: copy and select all
fix #1284
2018-09-08 12:41:26 +03:00
feos c2e2e9a1f7 tastudio: fix #1310
we don't need statecount info to be THAT up-to-date
2018-09-07 23:33:07 +03:00
nattthebear c3df4a59f3 update upstream mgba to latest 0.6. fixes saveastate issue (#1307)
People confirmed that it fixes the thing it attempts to fix.
2018-09-04 21:27:18 +03:00
upthorn 6eed08f965 An example plugin. Hard-coded for now. 2018-09-03 19:31:43 -07:00
upthorn 9e814896cb Some plugin interface libraries, and further refactoring. 2018-09-03 19:31:01 -07:00
upthorn 0a6aa912cf Further plugin interface design/development work 2018-09-01 03:19:05 -07:00
upthorn bb020540eb Remove extraneous non-existent file/folders from project. 2018-08-31 21:26:38 -07:00
upthorn cdb205e696 Initial API Work 2018-08-31 21:21:34 -07:00
zeromus e3736bdaa7 oops, i forgot to implement shock_Destroy. 2018-08-26 23:05:09 -05:00
feos 0b36d49bf2
Revert "Resize unattended video if zoom factor >1" (#1295)
Using unchangeable hardcoded magic numbers that aren't used anywhere is bad.
2018-08-23 20:51:23 +03:00
feos 9d64e23982 ffmpeg dumper: ffv1 is dead, long live libx264rgb!
http://tasvideos.org/forum/viewtopic.php?p=473878#473878
2018-08-23 20:09:06 +03:00
Asnivor f436e25426 Fix movie header SystemID (#1277)
From ticket #1246

Small change to MovieConversionExtensions.PopulateWithDefaultHeaderValues()

Just changes SystemID to "GG" or "SG" if Global.Emulator .IsGameGear or IsSG1000 is true.

Without this, the play movie dialog shows 'Platform' as SMS for game gear and SG1000 movies (and highlights this in RED as it is incorrect).
2018-08-22 20:51:20 +03:00
feos a365284383 tastudio states decay: fix logic for last edited frame 2018-08-22 20:05:33 +03:00
Asnivor d28e4e9f70 C64Hawk: Fix border issues - #1272 (#1276) 2018-08-21 22:30:04 +03:00
Asnivor e39cb1274c
Merge pull request #1292 from TASVideos/saveram_fix
EmuHawk: Handle SaveRAM IO errors - #1241
2018-08-21 19:53:27 +01:00
Asnivor 25347dd344 EmuHawk: Handle SaveRAM IO errors - #1241 2018-08-21 16:09:56 +01:00
Asnivor c1c34d3794 EmuHawk: Movies and DeterministicEmulation - ensure this is enforced whenever a movie is queued - #1290 2018-08-21 14:36:07 +01:00
Asnivor 4e470cf17a ZXHawk: DeterministicEmulation to be overridden (TRUE) when recording a movie - #1290 2018-08-21 14:16:14 +01:00
Asnivor 7ff4cea6c7 ZXHawk: +3/+2a writes to 0x1ffd and 0x7ffd decoded more faithfully 2018-08-20 17:24:14 +01:00
Asnivor 6a5b77c338 ZXHawk: ICodeDataLogger implementation 2018-08-20 14:18:20 +01:00
Asnivor 6b61af008c ZXHawk: machine specific and more descriptive memory domains 2018-08-20 12:50:08 +01:00
Asnivor 59005fffcb Merge branch 'master' of https://github.com/TASVideos/BizHawk.git 2018-08-17 15:45:01 +01:00
Asnivor 13f9904111 ZXHawk: Updated outdated machine info 2018-08-17 15:44:48 +01:00
Asnivor c4167555ae MultiDiskBundler: Address request in ticket #764 (#1275) 2018-08-16 17:58:48 +03:00
Asnivor a471206d6a ZXHawk: Added bk2 mnemonic constants 2018-08-13 09:12:38 +01:00
Asnivor ddbe1b8a84 ZXHawk: Added non-sync setting to change core background color - #1263 2018-08-06 14:51:10 +01:00
Asnivor 92c3264ff7 ZXHawk: do not fire tape/disk inserted OSD messages on LoadState - closes #1250 2018-08-06 13:00:57 +01:00
Asnivor a7e0e728a7 CPCHawk: PSG now sounds *almost* right 2018-07-23 20:48:31 +01:00
Asnivor 1268b09849 Emulation.Common: Additional method added to inspect *.dsk images in order to work out whether they are ZX, CPC or AppleII 2018-07-19 13:46:37 +01:00
Asnivor facbdd3630 CPCHawk: Fixed ROM & RAM banking. Started CPC6128 implementation. 2018-07-18 16:17:08 +01:00
Asnivor ac0aae4afb CPCHawk: UI menus 2018-07-18 13:53:08 +01:00
Asnivor f35bb99c5f CPCHawk: Datacorder & tape sound, GateArray renderer modes 0, 1 & 2 2018-07-18 12:28:39 +01:00
Asnivor c0fcac5ab1 CPCHawk: Port IO changes, Interrupt generation, i8255 PPI chip, PSG IO & Keyboard/Joysticks 2018-07-18 08:12:44 +01:00
Asnivor 4192f764b1 CPCHawk: Gatearray now displaying a picture (mode1) 2018-07-13 16:34:36 +01:00
Asnivor 6863368dd3 CPCHawk: Start of the gate array implementation 2018-07-09 15:58:23 +01:00
feos 084baf39ad
Never mix different versions of BizHawk. Keep each version in its own folder. 2018-07-08 13:02:22 +03:00
alyosha-tas 8dff214eec A7800: fix Sirius 2018-07-07 09:33:50 -04:00
alyosha-tas 57c6149274 NESHawk: Fix VRC IRQ timing 2018-07-07 09:02:56 -04:00
alyosha-tas 994e415a1b ColecoHawk: Add remainder of SGM domain 2018-07-07 08:14:51 -04:00
Asnivor aec496b561 CPCHawk: CRCT implementaton 2018-07-06 14:46:07 +01:00
alyosha-tas 0e58e36b67 COlecoHawk: Add SGM memory domain, fix super action controller 2018-07-05 16:48:08 -04:00
Asnivor dd7b81a714 CPCHawk: Romloader tweak 2018-07-03 14:55:25 +01:00
Asnivor 531833c7b0 CPCHawk: Initial project outline (may or may not come to something eventually) 2018-07-03 14:53:09 +01:00
alyosha-tas 704e560d59 GBHAWk: PPU work (Fixes ken griffy Jr presents) 2018-07-03 08:58:12 -04:00
Asnivor da15b64eca ZXHawk: DCFilter implementation 2018-07-02 15:33:32 +01:00
alyosha-tas 7767ed6fb9 SMSHawk: Fix pause button
Fixes #1236
2018-07-02 08:23:29 -04:00
alyosha-tas 5ce8c8790c GBHawk: another audio fix, not sure where the root cause is 2018-07-02 07:46:27 -04:00
alyosha-tas 123df38731 GBHawk: Attempt to fix audio crash 2018-07-01 15:10:42 -04:00
alyosha-tas 58240dfe05 GBHawk: Fix audio effects for Wave channel
(Fixes 3-D Pool)
2018-07-01 14:44:53 -04:00
alyosha-tas 77bba444fd A7800: Fix unplugged controller and Pokey sound 2018-06-28 18:10:28 -04:00
alyosha-tas 7ff08fb63e GBHawk: MBC2 proper Bank masking
Fixes #1229
2018-06-26 08:17:33 -04:00
alyosha-tas 4160af8eaa GBHawk: Fix autosaving saveram. 2018-06-24 15:55:33 -04:00
feos af9d1bd217 Merge branch 'master' into release 2018-06-24 17:28:44 +03:00
feos a15b31a46b update mgba once again, fix #1195 2018-06-24 17:14:03 +03:00
adelikat bb9858d478 update version info 2018-06-23 13:49:48 -05:00
adelikat aa114694d4 Merge branch 'master' into release 2018-06-23 13:43:33 -05:00
adelikat 22d1818641 DoSettings file for all project to explicitely set language level to C#6 2018-06-23 13:06:13 -05:00
adelikat ce70b8b32a more resharper configuring 2018-06-23 12:50:07 -05:00
adelikat 23a061e1ba Turn off a lot of resharper defaults styling that we don't want in our code, things like over indented object initializers, using this. everywhere, and other clutter 2018-06-23 12:25:23 -05:00
adelikat 51e4a13384 Hex Editor - fix exception if autoload is set on table files when no files are in the recent menu 2018-06-23 11:35:20 -05:00
adelikat 24937b21ca
Merge pull request #1192 from Scepheo/1138-lua-draw-on-load
Draw Lua script when loading
2018-06-23 10:20:00 -05:00
feos 0dc8187cb5 update mgba info 2018-06-23 16:23:53 +03:00
feos b6acb998e1 actually update mgba 2018-06-23 15:22:23 +03:00
feos 08e33f7ec1 tastudio: make current branch track its new pos upon reordering 2018-06-23 00:47:46 +03:00
feos cea1a04425 tastudio: select newly created branch
makes button action experience smoother
2018-06-23 00:31:16 +03:00
feos 28de5cc84c update mgba to latest 0.6 branch (past 0.6.3 release) 2018-06-23 00:15:19 +03:00
feos fc03be879f gliden64: disable texture cache option, since internally it's hardcoded to 8000 now 2018-06-23 00:00:08 +03:00
feos 9ddeaed84c update gliden64 2018-06-22 23:47:24 +03:00
feos 03b3ea0b2f triple cast, but we don't have to cast to string to fetch ARGB 2018-06-22 23:15:35 +03:00
feos 8a2ee98bea fix #1221
can this also close #1222 I wonder?
2018-06-22 20:27:28 +03:00
Asnivor 8979b0abe1 EmuHawk: fix exception on multidiskbundler xml check when file is within an archive 2018-06-22 17:42:17 +01:00
Asnivor b397cb58fb ZXHawk: small update to defctrl.json 2018-06-22 17:11:25 +01:00
Asnivor 1ade5d0b49 ZXHawk: Prep for release 2018-06-22 16:55:57 +01:00
adelikat 25c6639aa2
Merge pull request #1152 from Asnivor/master
Partial fix for issue #1075
2018-06-22 10:47:48 -05:00
Asnivor 625f063861 ZXHawk: Added wav tape image support 2018-06-22 14:40:40 +01:00
Asnivor e2b58cfb98 ZXHawk: improvements to tape traps 2018-06-22 13:43:26 +01:00
Asnivor b81a7539cf ZXHawk: Added Compressed Square Wave (CSW) tape image support 2018-06-22 13:23:33 +01:00
Asnivor b90c8f0bec ZXHawk: small pzx PAUS block change 2018-06-21 16:16:31 +01:00
Asnivor 94436c307c ZXHawk: TapeDevice - replaced embedded end of block pause values with individual PAUSE blocks 2018-06-21 15:08:38 +01:00
Asnivor 84bc77e82e ZXHawk: Fixed bug in datacorder 'stop-the-tape' command implementation (when this command was detected it was skipping forward an extra block) 2018-06-21 14:03:10 +01:00
Asnivor 8236d7b645 ZXHawk: Some PZX changes 2018-06-21 13:39:23 +01:00
Asnivor 50123bf8e2 ZXHawk: Experimental PZX tape image support 2018-06-20 15:03:11 +01:00
Asnivor 5b0a41e31c ZXHawk: Throw an exception when unsupported double-sided disk images are loaded 2018-06-19 15:10:56 +01:00
Asnivor ae0543d1f3 ZXHawk: disk drivelight now active for all operations that it should be 2018-06-19 14:41:54 +01:00
Asnivor 6a3377417e ZXHawk: removed all Rand() references from weak sector disk read implementation (now all speedlock protected games should load *every* time without issue) 2018-06-19 14:30:44 +01:00
Asnivor 9bdcc81863 ZXHawk: Added shadow of the beast dsk detection (although it still doesnt work) 2018-06-19 13:29:54 +01:00
Asnivor 183983043a ZXHawk: Reset disk overrun detection counter on successful read (fixes IronLord.dsk) - #1158 2018-06-19 11:42:08 +01:00
Asnivor ab9fb5c4e5 ZXHawk: TZX 'stop-the-tape' block minor improvements 2018-06-18 09:51:08 +01:00
Asnivor 5459c92a4d ZXHawk: Hard/Soft client reset options implemented and working - #1158 2018-06-18 09:00:59 +01:00
bsmiles32 637bb90b54 [N64] Update RSP-HLE plugin to latest version. (#1213)
* [N64] Update RSP-HLE plugin to latest version.

* Updated RSP-HLE dll binary
2018-06-16 16:57:07 -04:00
alyosha-tas 19908bdd03 GBHawk: clean up 2018-06-14 15:54:57 -04:00
alyosha-tas 8edb61eb52 GBHawk: set to released and proper window time (tested on console) 2018-06-14 11:05:48 -04:00
Asnivor 6476b6739a ZXHawk: fixed render bool implementation (frameskip) 2018-06-14 14:52:49 +01:00
alyosha-tas 3e495e3a28 z80: reset cleanup 2018-06-14 08:02:06 -04:00
Asnivor 660fb500ae ZXHawk: codebase cleanup 2018-06-14 11:31:09 +01:00
Asnivor 76318fbc7a ZXHawk: Do ULA processing every cycle 2018-06-14 09:13:09 +01:00
Asnivor 2af6965ef5 Merge branch 'master' of https://github.com/TASVideos/BizHawk.git 2018-06-13 18:07:20 +01:00
Asnivor e0b417a9b5 ZXHawk: Interrupt bool missing from savestate 2018-06-13 18:07:07 +01:00
alyosha-tas 5d401b20d3 z80: clean up 2018-06-13 12:54:43 -04:00
Asnivor 2bae423df8 ZXHawk: Bit of a tidy & readme update 2018-06-13 15:17:19 +01:00
alyosha-tas ac95d9eb72 SMS: Remove unnecessary SP hack. 2018-06-13 08:50:44 -04:00
alyosha-tas a992e988b2
Merge pull request #1218 from TASVideos/ZXHawk-new-ULA
Zx hawk new ula
2018-06-13 08:40:26 -04:00
alyosha-tas 93dab42ba6 z80: Start up values for SP and AF 2018-06-13 08:29:07 -04:00
Asnivor 837c681bd5 ZXHawk: missed a bool 2018-06-13 11:57:43 +01:00
Asnivor 373db35805 ZXHawk: implemented +2a/+3 floating bus (confirmed working with 2017 release of 'A Yankee in Iraq') 2018-06-13 11:53:05 +01:00
Asnivor 7ce55e6601 ZXHawk: ReadPort method was incorrectly snagging occational floating bus requests and processing them as kempston joystick input 2018-06-13 09:24:43 +01:00
Asnivor 9166b0b931 ZXHawk: wire up +2a/+3 memory contention model (MREQ) 2018-06-13 07:55:23 +01:00
alyosha-tas 9a906cd8af z80: add memptr variable 2018-06-12 16:57:11 -04:00
alyosha-tas 8c3afc189a z80: add a MEMRQ vector for memory contention for zx spectrum 2018-06-12 16:51:21 -04:00
Asnivor 5ec469f2f3 ZXHawk: Tape status (F10) now reports tape progress in addition to current block progress 2018-06-12 14:22:28 +01:00
Asnivor 63593b4e2c ZXHawk: Media menu to change tapes and disks 2018-06-12 11:40:11 +01:00
Asnivor 651ec7f122 ZXHawk: CoreNameStatusBarButton tooltip shows emulated spectrum model 2018-06-12 11:08:03 +01:00
Asnivor 13a9c5bdc4 ZXHawk: Added POKE memory menu option 2018-06-12 10:16:43 +01:00
Asnivor fbba7c25ae ZXHawk: New interrupt implementation 2018-06-11 14:35:12 +01:00
alyosha-tas fe3e7c3dd2 SMS: Set stack pointer to RAM for Aerial Assult (W) 2018-06-10 18:30:12 -04:00
alyosha-tas 62d1005ed9 A2600: Fix special reset cases 2018-06-10 07:48:44 -04:00
alyosha-tas 173bb2a50f A2600: Add special cases for games that turn off screen to do calculations 2018-06-09 21:15:26 -04:00
Asnivor c47860fad7 ZXHawk: 48k offsets updated for z80 interrupt response time change 2018-06-08 19:09:40 +01:00
alyosha-tas 3ce546b774 z80: Resond to interrupts at the corect time 2018-06-08 12:28:51 -04:00
Asnivor a1d24400d0 ZXHawk: proper top border height 2018-06-08 14:39:23 +01:00
Asnivor faec0fb0e5 ZXHawk: 128k/+2 High-port contention now reporting properly in fusetest 2018-06-08 13:43:40 +01:00
Asnivor 7ced9fdc6a ZXHawk: 128k HAL10H8 chip crash emulation (INs to paging ports cause floating bus data being used to set the paging registers) 2018-06-08 13:24:43 +01:00
Asnivor fd889250b3 ZXHawk: 128k/+2 interrupt, ULA tables & contention tweaked 2018-06-08 12:27:52 +01:00
Asnivor 403a1032d8 ZXHawk: 48k Interrupt, ULA tables and contention tweaked 2018-06-08 11:07:16 +01:00
Asnivor f33863126c ZXHawk: Fix rendertable generation offset. btime.tap test now passes 2018-06-08 09:36:32 +01:00
alyosha-tas 6ae8f01872 z80: Fix some more contention stuff 2018-06-07 18:41:50 -04:00
Asnivor f4c47dc80a ZXHawk: modified vblank interrupt start time (128k/+2a/+3) so contention period starts at the correct time 2018-06-07 18:27:44 +01:00
Asnivor 25fe4a7a87 ZXHawk: more prep for contended 128k/+2/+2a/+3 2018-06-07 18:00:08 +01:00
Asnivor 83bbb83c64 ZXHawk: Missed rendercycle call on 128k border OUT 2018-06-07 16:40:48 +01:00
alyosha-tas 7ad65bd96e z80: WZ fixes 2018-06-07 11:11:56 -04:00
alyosha-tas cd7df2ea07 z80: more contention work 2018-06-07 10:37:26 -04:00
Asnivor 843dc7a69a ZXHawk: Small performance increase (rendering cycle now happens only when it needs to) 2018-06-07 15:33:58 +01:00
alyosha-tas b0af0e48e0 z80: IR contention update 2018-06-07 08:34:21 -04:00
alyosha-tas afd1ba38d8 z80: Fix remaining flags and WZ 2018-06-07 08:10:39 -04:00
alyosha-tas 275092528a z80: Fix some bugs in flags and WZ register
Only thing remaining is INI/IND/INIR/INDR
2018-06-06 19:34:46 -04:00
alyosha-tas af788ee108 z80: fix IO contention bug 2018-06-06 13:55:57 -04:00
Asnivor 535534a94a ZXHawk: start preparing 128k and +2a/+3 for updating timings 2018-06-06 15:56:27 +01:00
Asnivor c80f873adf ZXHawk: added CPUMonitor syncstate 2018-06-06 15:37:29 +01:00
Asnivor 7f8084d410 ZXHawk: IORQ check now happens pre T-Cycle 2018-06-06 14:39:41 +01:00
alyosha-tas 74e6f630c3 z80: IO port re-work and contention 2018-06-06 07:33:49 -04:00
alyosha-tas 620c4b3c2e z80:more contention work, only IN/OUT to go 2018-06-05 18:04:19 -04:00
alyosha-tas 978a93b681 z80: more memory contention timing work
(up to test 23)
2018-06-05 15:05:48 -04:00
alyosha-tas 6752a17321 z80: clean up prefetch implementation 2018-06-05 12:52:10 -04:00
Asnivor f764c137ee ZXHawk: 48k timing work 2018-06-05 17:14:37 +01:00
alyosha-tas beae64d563 z80: use high byte BUSRQ vector since PCl = 0 so the look up fails (oops) 2018-06-04 14:27:57 -04:00
Asnivor 7dfd19de2b ZXHawk: Fix memory contention lookup overflow 2018-06-04 17:11:12 +01:00
alyosha-tas bff3f41c9a z80: IN/OUT access fixes 2018-06-04 11:42:59 -04:00
alyosha-tas 2661b0804c z80: fix a typo 2018-06-04 11:15:26 -04:00
alyosha-tas 9f4b6f1ecf z80: Bus timing on interrupts 2018-06-04 08:57:12 -04:00
alyosha-tas 1125ccedc3 z80: fix a bug 2018-06-04 07:52:48 -04:00
Asnivor 7677b75de3 ZXHawk: Start building on new BUSRQ implementation 2018-06-04 10:35:12 +01:00
zeromus 795fb0b887
Merge pull request #1205 from Vilsol/master
Resize unattended video if zoom factor >1
2018-06-03 22:04:49 -04:00
alyosha-tas 32ae549c70 z80: Add bus request timing array to work with zx spectrum
Also some clean up
2018-06-03 19:14:30 -04:00
Frequency Modulation 136943b812 fixed some case-sensitivity issues (#1163) 2018-06-03 08:07:41 -04:00
Vilsol db8b051b00 Resize unattended video if zoom factor >1 2018-06-02 23:18:45 +03:00
alyosha-tas 1637ab3953 Merge branch 'ZXHawk-new-ULA' of https://github.com/TASVideos/BizHawk into ZXHawk-new-ULA 2018-06-01 15:21:14 -04:00
alyosha-tas 7220e9d394 z80: fix some instruction timings for IN/OUT 2018-06-01 15:21:05 -04:00
Matt Burgess b9dd435455 ZXHawk: Started 128 and +2a/3 new ULA implementation 2018-06-01 17:38:42 +01:00
alyosha-tas c0d6c02b2e Z80: Recast core to cycle accurate memory accesses and wait state timing 2018-05-31 21:05:41 -04:00
Matt Burgess 9a15cbf4d4 ZXHawk: new ULA implementation 2018-05-31 17:54:57 +01:00
alyosha-tas ccb1dcd7f5 GBHawk: improve Tilt controls 2018-05-28 13:14:40 -04:00
alyosha-tas b480476932 Gambatte: Make initial colors grey scale
Also make equal length frames false by default, fixes #1176
2018-05-26 11:54:01 -04:00
alyosha-tas d6a9d69f7e GBHawk: Fix Pinball Fantasies 2018-05-25 15:00:16 -04:00
nattthebear e5516b45fb Update tracelogger format in libbsnes 2018-05-23 17:07:44 -04:00
alyosha-tas 70961dd1fc GBHawk: Fixes for Samurai Showdown 2018-05-23 15:59:38 -04:00
alyosha-tas 704356bea2 GBHawk: Bug Fixes 2018-05-23 14:27:22 -04:00
alyosha-tas 3291c773ee GBHawk: Clean up window implementation 2018-05-23 10:07:59 -04:00
feos 20f10b9311 bsnes: remove embarrassing leftover empty space from trace log
requires rebuilding
2018-05-21 22:25:34 +03:00
Scepheo f3ea6fe025 Use generic interface type on MOS 6052X for talking to the emulator core (#1189)
* Use generic interface type on MOS 6052X for talking to the emulator core
* Change CpuLink constructors to not use expression-bodies, to get the AppVeyor build to pass.
* Add comment explaining why IMOS6502XLink exists.
2018-05-20 23:18:53 +03:00
adelikat e650f14d24 Lua functions docs to wiki - escape braces on optional params 2018-05-19 16:28:20 -05:00
nattthebear ebd6408315 add h, v regs to snes regs list 2018-05-18 17:35:28 -04:00
alyosha-tas 2144195bb8 GBHawk: Clean up some unused variables 2018-05-16 15:50:07 -04:00
alyosha-tas 6f2ae8cbf2 GBHawk: Fix window timing 2018-05-15 20:44:20 -04:00
alyosha-tas 148f6d4332 GBHawk: Timer work 2018-05-15 15:50:33 -04:00
alyosha-tas 1b991de966 GBHawk: More Hlat bug work 2018-05-15 14:26:48 -04:00
alyosha-tas a185f33487 Z80A: Add a WAIT state that can puase the CPU on reads / writes
NOTE: a wait state is added automatically to IN/OUT reads / writes, but I don't know if this is already accounted for in the cycle timings, TODO.
2018-05-15 09:44:39 -04:00
alyosha-tas 258fef46d7 Gambatte: Fix states 2018-05-15 08:25:27 -04:00
alyosha-tas 073d36e40f GBHawk: Fix Airaki 2018-05-12 18:33:11 -04:00
nattthebear e8145af463 i hope this breaks something 2018-05-12 12:55:42 -04:00
alyosha-tas 38b84fce09 Gambatte: Recommit Halt changes (now with Gifvex's improvements too) 2018-05-12 12:21:15 -04:00
alyosha-tas 98ed9e7c42
Merge pull request #1172 from gifvex/gambatte-lua
Gambatte x lua and fix #1159
2018-05-12 12:06:41 -04:00
alyosha-tas c49c585029 Revert "Gambatte: Fix halt behaviour"
This reverts commit efc35a5a0d.
2018-05-12 12:05:09 -04:00
alyosha-tas 3b778b873f Remove errant ReadMe file. 2018-05-12 11:49:36 -04:00
alyosha-tas efc35a5a0d Gambatte: Fix halt behaviour
Fixes #1187
2018-05-12 11:25:51 -04:00
alyosha-tas 942454e327 SMS/GG: Implement SMS compatibility mode for some games
(Technically the screen is supposed to be modified too but not implementing yet)
2018-05-11 20:08:42 -04:00
alyosha-tas 0535223592 GG: Terminator needs SRAM for background display 2018-05-11 15:48:21 -04:00
alyosha-tas 678666ddf0 GBHawk: Fix a bug in I Flag check 2018-05-10 15:31:06 -04:00
feos a0e5e0e593 tastudio: actually don't drop state above last edited frame 2018-05-10 20:32:44 +03:00
Asnivor de00fbaf19 Merge branch 'master' of https://github.com/TASVideos/BizHawk.git 2018-05-10 10:42:44 +01:00
Asnivor 0d4418a1cc ZXHawk: Disk Drive code tidy 2018-05-10 10:42:36 +01:00
alyosha-tas da1d190cce GBHawk: When windowing is active, start mode 3 earlier then usual (for pokemon yellow sync) 2018-05-09 22:18:10 -04:00
alyosha-tas 32f78cd311 GBHawk: Cleanup ppus 2018-05-09 20:05:53 -04:00
feos 056c24e4cf tastudio: attempt to fix greenzone decay failing to drop states 2018-05-09 17:18:21 +03:00
Asnivor 66b7f37327 ZXHawk: +3 UPD WriteData command now partially implemented. Data is written to the disk object in memory (allowing castlevania SI to get ingame) but changes to the disk are not serialized in any savestates - #1158 2018-05-09 13:47:59 +01:00
Asnivor 2f513a3ed5 ZXHawk: Better SoundProviderMixer implementation 2018-05-09 11:33:39 +01:00
alyosha-tas 828dbba1a5 GBHawk: Rework CPU to poll INT at the correct time. 2018-05-08 21:47:35 -04:00
Asnivor a679a8a7f2 ZXHawk: platformrates - more accuratey 2018-05-08 22:01:10 +01:00
Asnivor f79e2853c0 ZXHawk: Added to PlatformFrameRates.cs 2018-05-08 21:57:19 +01:00
Asnivor a4942f0fb8 ZXHawk: block index is now set to 0 when switching tapes - #1158 2018-05-08 21:29:01 +01:00
Asnivor 45c37ddc47 ZXHawk: Removed IO port contention for now (this fixes the slow beeper music problem). Will re-implement properly later - #1158 2018-05-08 20:37:47 +01:00
Asnivor 9c800cf133 ZXHawk: Buzzer/Beeper implementation now use BlipBuffer - #1158 2018-05-08 20:23:02 +01:00
alyosha-tas a21a11b70e GBCHawk: fix window timing to match console behaviour 2018-05-06 21:29:25 -04:00
Scepheo 37ace00fea Extract Lua file enable logic for toggling and reuse when loading for the first time. Fixes #1138. 2018-05-06 23:05:50 +02:00
Dan B (Narry) 43f2435737 Filter out forward slashes in FileSystemSafeName to fix games such as "Super Mario Bros. / Duck Hunt". Fixes #1088 2018-05-06 16:44:28 -04:00
alyosha-tas c9898c452a GBHawk audio: Fix wave sampling in pokemon yellow 2018-05-04 17:52:10 -04:00
alyosha-tas b3647c6e05 GBCHawk: adjust PPU 2018-05-04 15:45:18 -04:00
alyosha-tas e29b741bd4 GBCHawk: Halt test rom work, ppu still needs re-work 2018-05-03 21:26:33 -04:00
alyosha-tas d4eb3da512 GBHawk: Restructure to pass all other tests (as before) 2018-05-03 19:07:51 -04:00
Asnivor f36e252d5e ZXHawk: fixed tap tape image parsing exceptions (operation wolf etc) - #1158 2018-05-03 23:19:24 +01:00
Asnivor 41f1058469 ZXHawk: fixed edge-case tzx tape image parsing exceptions (red heat, live and let die, etc.) - #1158 2018-05-03 23:10:06 +01:00
nattthebear e4275ec777 update 7z.dll to a newer one to fix some security stuff 2018-05-03 17:16:10 -04:00
zeromus c1a6a16bb1 fix xpad triggers to actually be useful? I dont know if they ever were before. Triggers are like halfs of axes, but our whole input system isnt built to handle halfs of axes; so with this, I make them appear to be whole axes in a -1..1 range. 2018-05-03 15:02:24 -05:00
Asnivor 5df212817c ZXHawk: state should be populated in the disk AFTER the disk is loaded (maybe) 2018-05-03 19:53:42 +01:00
Asnivor 99b7adaf19 ZXHawk: Tape and Disk devices are now only re-initialized when a save state is loaded, NOT saved (TLDR: schoolboy error fixed) 2018-05-03 19:45:13 +01:00
Asnivor 20cdb02de8 ZXHawk: Started UPD write commands implementation 2018-05-03 19:45:13 +01:00
zeromus 2b53f9b954 fix hangs when sound throttle is enabled and cores go a long time without giving samples. i mean, 2018-05-03 12:55:11 -05:00
Asnivor a374f9f4b8 ZXHawk: Some UPD ReadID improvements 2018-05-03 15:33:30 +01:00
Asnivor 282c3533b4 ZXHawk: Multi-disks are now supported for +3 disk drive 2018-05-02 11:14:08 +01:00
alyosha-tas 19c509e9c2 GBHawk: Attempt at some halt bugs 2018-05-01 21:53:20 -04:00
Asnivor e977826c5e ZXHawk: Implemented CPU overrun detection within the FDC. This appears to have sorted more Alkatraz protected games AND N=6 (hexagon protection) sectors 2018-05-01 17:32:35 +01:00
Asnivor 462d66c549 ZXHawk: UPD ReadDiagnostic fix (more Alkatraz protected games now load) 2018-05-01 13:42:21 +01:00
Asnivor d891938d89 ZXHawk: fix speedlock +3 regression 2018-05-01 12:45:53 +01:00
Asnivor b5eef04b42 ZXHawk: FDC ReadDeletedData command now fixed. Alkatraz games and previously not loading Paul Owens protection (eg Red Heat) should now work 2018-05-01 09:41:07 +01:00
Asnivor 451d5654ce ZXHawk: modifications to UPD sense interrupt status instruction 2018-05-01 08:03:14 +01:00
Asnivor a7bf8e4ca3 ZXHawk: +3 Paul Owens Disk Protection games now loading 2018-04-30 17:36:16 +01:00
Asnivor bde120fc77 Merge branch 'master' of https://github.com/TASVideos/BizHawk.git 2018-04-29 09:35:19 +01:00
Asnivor bc023c11bd ZXHawk: Original CPC DSK format images now detected properly 2018-04-29 09:34:23 +01:00
alyosha-tas 2fbdc00183 GBHawk: upgrade audio to use blip buffer (avoids some high frequency aliasing) 2018-04-28 14:50:58 -04:00
Asnivor e642e0216c ZXHawk: improved detection of cpcemu dsk files 2018-04-28 17:07:59 +01:00
Asnivor 0c12707bb7 ZXHawk: some updates to speedlock disk detection 2018-04-28 17:06:46 +01:00
adelikat ca0ae3d971 Make the bk2 SetControllersAsMnemonic implementation less bad. Fixes #1181 2018-04-28 09:48:24 -05:00
Asnivor 23a2550444 ZXHawk: disabled auto-tape detection routines when a disk is in the drive 2018-04-27 10:57:54 +01:00
Asnivor 85fb40ed02 ZXHawk: Implemented UPD765A ReadTrack command (platoon now loads) 2018-04-26 16:39:40 +01:00
Asnivor 00f46b0e7d Fix edge-case issue where non-rom games have a header offset detected in RomGame.cs (leading to system detection issues further down the line) 2018-04-26 15:00:54 +01:00
Asnivor 7aaa5e8a52 ZXHawk: +3 disk ready for testing 2018-04-26 12:57:21 +01:00
alyosha-tas 0d3f8f16ed GBCHawk: Fix some palette bugs 2018-04-25 20:38:36 -04:00
alyosha-tas 9c06ac02a2 Z80: Fix Flags for IN operations 2018-04-18 19:00:59 -04:00
Callie LeFave be2085ecfb
._. 2018-04-16 16:56:56 -04:00
Callie LeFave a10d0ec6cc
Fix CI build 2018-04-16 16:44:18 -04:00
Callie LeFave 0d9ced7d83
Lua: Add optional position parameters to `DrawPolygon` 2018-04-16 16:15:37 -04:00
alyosha-tas 71499e5310 NESHawk: Mapper 219 savestates 2018-04-13 18:09:36 -04:00
alyosha-tas ee49f147fb PCE: Don't always make a new frame buffer when settings change
Fixes #1175
2018-04-13 16:21:53 -04:00
nattthebear 8e007490b5 use 0xff as the gba default saveram filler, just like mgba standalone. Fixes #1144 2018-04-12 17:38:59 -04:00
alyosha-tas 0e4887b2f7 GBHawk
- Reorganize Sachen Mappers
- Add Sachen MMC1 support (Captain Knick Knack)
2018-04-10 09:19:29 -04:00
alyosha-tas f2529fa0e0 NESHawk: Fix mapper 219 2018-04-09 12:48:47 -04:00
alyosha-tas 0fc046bea9 GBHawk: MBC7: Fix Command Master 2018-04-09 10:35:23 -04:00
alyosha-tas 9f7ce12f44 GBHawk: GBC sprite priority fixes 2018-04-09 09:07:08 -04:00
zeromus a7197b348e fix bug where autodump (and maybe lua-instructed client exits) would vanish the window but linger the process 2018-04-08 01:48:47 -05:00
alyosha-tas cdc1f0c21f GBHawk: MBC7: playable, needs testing 2018-04-07 16:47:43 -04:00
alyosha-tas a5eca362c8 GBHawk: MBC7 (Kirby tilt n tumble)
- Implement controller
- Fix some GBC bugs
- Start eeprom (WIP)
2018-04-06 19:11:21 -04:00
alyosha-tas 6019073157 GBHawk: Fix some GBC Behaviours, start MBC7 2018-04-03 18:18:41 -04:00
gifvex f48a795090 MemoryCallbackSystem: fix #1159 2018-04-02 18:19:40 -04:00
gifvex f968cbdd73 Gambatte: implement TotalExecutedCycles 2018-04-02 18:19:10 -04:00
Dan B (Narry) fde2035f31 Fixes #1167 by moving certain settings into the SyncSettings 2018-04-01 20:54:34 -04:00
alyosha-tas b2ed6eb737 Always initialize independent instances of IController in cores to NullController
- Fixes #1168
2018-03-31 11:23:55 -04:00
alyosha-tas 7a21f55c43 GBHawk: Add RockMan 8 mapper 2018-03-30 21:56:32 -04:00
alyosha-tas c829534170 GBHawk: Bug Fixes, fix to Beast fighter 2018-03-29 09:26:55 -04:00
alyosha-tas 75f380428f GBHawk: Fix GBC HDMA behaviour (Wacky Racers) 2018-03-28 19:02:02 -04:00
alyosha-tas 3e50881ab9 GBHawk: Fix GBC compatibility mode for GB games 2018-03-28 10:15:05 -04:00
alyosha-tas 220b41cc16 GBHawk: GBC Bug fixes 2018-03-27 17:24:55 -04:00
feos ae6ce00d7c I've heard bad things about ElementAt() 2018-03-27 19:01:17 +03:00
Asnivor 35c87c5aea ZXHawk: Fixed AY-3-8912 volume control (values under 50 were registering as maxvolume) - #1158 2018-03-27 16:38:08 +01:00
Asnivor f1fbd2b64e ZXHawk: AutoTapeLoad has been changed to a SyncSetting - #1158 2018-03-27 16:12:38 +01:00
Asnivor 8485a52662 ZXHawk: Finished separation of emulated TapeDevice - #1158 2018-03-27 16:12:38 +01:00
Asnivor 2cd641701e ZXHawk: Removed RomData object from SynState (this should always be deterministic anyway after a core reboot) 2018-03-27 16:12:38 +01:00
Asnivor 86dd0b4a06 ZXHawk: Started tapedevice independence implementation 2018-03-27 16:12:38 +01:00
alyosha-tas 3b9835274a GBHawk: GBC initial Compatibility 2018-03-27 10:50:55 -04:00
alyosha-tas 75d86e995e GBHawk: GBC commits round 3
-Color
-BG tile properties
2018-03-27 09:52:31 -04:00
alyosha-tas dcf3673f5c RAM Watch: Update values when clear changes is pressed
-fixes #1156
2018-03-26 14:56:10 -04:00
alyosha-tas 1c40bbd49b SMSHawK: Add Port5 variable (link cable)
-Fixes Pac Attack
2018-03-26 14:34:47 -04:00
Asnivor 2f35bec264 ZXHawk: removed maskable interrupt tape trap. Does not work as it should. 2018-03-26 17:29:31 +01:00
Asnivor e8cd3b259c ZXHawk: Small change to 128 paging 2018-03-26 16:47:49 +01:00
alyosha-tas f016c60b13 GBHawk: GBC Audio Quirks 2018-03-26 11:46:02 -04:00
Asnivor 426c3ddaea ZXHawk: All TZX blocks now handled correctly (in many cases these are not serialized correctly, but lengths are correct so the entire tape image should be loaded without throwing an exception) - #1158 2018-03-26 09:07:36 +01:00
Asnivor b0ae89f924 ZXHawk: TZX block 0x19 - added correct length placeholder - #1158 2018-03-26 08:37:18 +01:00
Asnivor 5f71e2428c ZXHawk: fixed array out of bounds exception with certain tiny (3 byte) tzx turbo data blocks. Operations Wolf & Thunderbolt now load - #1158 2018-03-26 08:16:04 +01:00
Asnivor 7b711cb890 Better error handling when parsing TZX files - #1158 2018-03-26 07:42:55 +01:00
alyosha-tas d4ee8f480b GBHawk: HDMA and GBC halt commits 2018-03-25 21:22:27 -04:00
alyosha-tas 380b9f085e GBHawk : GBC Commits round 2
-HDMA
-GBA setting
2018-03-25 17:58:21 -04:00
alyosha-tas ca69e52229 GBHawk: GBC commits round 1
-RAM banks
-Unify VRAM and add second Bank
-Speed Switch and associated reorg.
-Memory Map and Registers
-PPU seperation
2018-03-25 10:07:12 -04:00
alyosha-tas ac66b258ba GBHawk: Reorganize for pending GBC Support 2018-03-24 09:11:23 -04:00
alyosha-tas dc38794dad GBHawk: Pass some new tests and fix some errors 2018-03-23 19:49:54 -04:00
zeromus 6e72e47c1c do a thing better than crash when configfiles are corrupt. fixes #1063 2018-03-22 14:55:43 -05:00
Asnivor da71addddd ZXHawk: Fixed TZX block ID 0x33 deserialization (was causing some games to not be parsed properly) 2018-03-22 17:06:52 +00:00
Asnvior 2be76a405a Fix: rom status icon 2018-03-22 14:41:21 +00:00
Asnivor 35e9d2d551
Merge pull request #6 from TASVideos/master
bring fork up to date
2018-03-22 12:28:46 +00:00
Asnivor bdbfc3fb4e ZXHawk: Finally (hopefully) resolved all tape trap issues 2018-03-22 08:58:31 +00:00
alyosha-tas be253911c6 PCE: Increase read access time even more to fix Gate of Thunder Loading
fixes #70
2018-03-21 18:15:51 -04:00
Asnivor 76904df015 ZXHawk: Better detect maskable interrupt used as a tape trap 2018-03-21 16:48:14 +00:00
Asnivor 0ae1910259 ZXHawk: Tweaked some of the AY-3-8912 volumes 2018-03-21 15:02:12 +00:00
Asnivor c2d3a42a69 ZXHawk: Fixed auto-tape traps (now working properly for all games tested so far) 2018-03-21 14:23:41 +00:00
Asnivor 752bd0e35b ZXHawk: Audio settings menu implimenting volume controls for AY, tape and buzzer 2018-03-21 12:47:10 +00:00
alyosha-tas f86e00f925 PCE: only latch Y-scroll once per scanline after an offset.
The latching behaviour is correct, but I'm unsure of what the offset value should be.
fixes #771
2018-03-20 21:17:57 -04:00
Asnivor 9a9b56c69b ZXHawk: Improvements to reset methods 2018-03-20 15:28:23 +00:00
Asnivor cceece312d Merge branch 'master' of https://github.com/TASVideos/BizHawk.git 2018-03-20 14:51:46 +00:00
Asnivor beee25619d ZXHawk: Added missing OSD Message Verbosity setting menu option 2018-03-20 14:51:33 +00:00
alyosha-tas aa7cee1bb7 PCE: update some graphics properties 2018-03-20 10:40:14 -04:00
alyosha-tas 39e78db39c Merge branch 'master' of https://github.com/TASVideos/BizHawk 2018-03-20 10:08:24 -04:00
alyosha-tas 8f193eb68f PCE: Increase read delay to fix Mugen Senshi Valis fixes #554 2018-03-20 10:08:13 -04:00
Asnivor bd319056af Better volume levels for AY-3-8912 MONO panning configuration 2018-03-19 23:53:06 +00:00
alyosha-tas 981a31d32b
Merge pull request #1150 from TASVideos/ZXSpectrum
New system let's go!
2018-03-19 15:33:20 -04:00
Asnivor 683166da89 Readme update 2018-03-19 16:25:20 +00:00
Asnivor b939c47de6 Added reset methods 2018-03-19 16:21:15 +00:00
Asnivor e2eac983a1
Merge pull request #1149 from TASVideos/master
Bringing ZXSpectrum branch up to date with master
2018-03-19 15:52:55 +00:00
Asnivor 5ab7ecd4b0 A few more small changes 2018-03-19 15:34:25 +00:00
Asnivor 22656fd373 Some TapeDevice changes 2018-03-19 12:01:54 +00:00
alyosha-tas 014a652422 GBHawk: Implement SaveRam fixes 1147 2018-03-18 16:06:48 -04:00
Isotarge b28d159023 Hex Editor: Speedup FindPrev/FindNext 2018-03-19 00:56:36 +10:30
alyosha-tas 81e80acf86 z80: make TotalExecutedCycles long and change related variables accordingly 2018-03-18 09:55:56 -04:00
alyosha-tas 549b484c21 Increase Subtitle Maker frame limit 2018-03-16 18:48:19 -04:00
adelikat 4c98ee9ab9 NESHawk - Support a couple bad dumps of Super Donkey Kong (Unl) 2018-03-16 17:35:55 -05:00
adelikat 75ae209f5c turn off a few resharper things we don't care about 2018-03-16 17:22:18 -05:00
alyosha-tas dbb90a996d z80: clean up 2018-03-16 17:50:51 -04:00
adelikat 218d75c940 Update release info for the 2.2.2 release 2018-03-16 13:19:10 -05:00
adelikat 2577ccf503 Merge branch 'master' into release 2018-03-16 13:14:33 -05:00
Asnivor e198e7b8a6 Removed generic settings menu 2018-03-16 15:16:33 +00:00
Asnivor a0e2695811 UI - Added last non-sync settings menu 2018-03-16 15:12:55 +00:00
Asnivor 0ac17f2d1e UI - added Core Emulation Settings menu 2018-03-16 14:33:18 +00:00
Asnivor 7c9c39417b UI - added joystick settings menu 2018-03-16 11:58:02 +00:00
Asnivor 5bb1d1f327 Fixed +2a/+3 ROM paging bytes missing from SaveState serialization 2018-03-16 10:45:57 +00:00
Asnivor 4ecb247c17 Fixed AY-3-8912 overflow bug 2018-03-16 08:08:35 +00:00
alyosha-tas 396f875ac2 z80 disassembler: handle address wrap 2018-03-15 20:58:08 -04:00
alyosha-tas 8ebcadbc58 z80: fix port addressing in some cases 2018-03-15 20:47:47 -04:00
alyosha-tas 519e14aa1a RamWatch: Fix column settings fixes #1137 2018-03-15 19:27:24 -04:00
feos f9cef46bd7 6502 disasm: accidentally lost this fix 2018-03-15 22:20:23 +03:00
Asnivor 760ae8edf0 Fixed 128k and +2 memory paging bug 2018-03-15 17:19:13 +00:00
Asnivor 7a36f913ec New AY-3-8912 implementation. Better sounding and more performant 2018-03-15 16:32:26 +00:00
feos 09d765e853 make 6502 tracelog less bullshit
- stop spamming ---
- stop acting like 6502 is able to execute the same pc twice in a row
- put as many raw bytes as 6502 fetches per instruction
- reorder some registers
- stop being called when there's nothing to disasm
2018-03-15 00:30:50 +03:00
alyosha-tas 0cc72f4ee3 A7800: Fix High score SaveRAM #1130 2018-03-14 17:10:13 -04:00
zeromus 053ee9a45e feos, i dont know, try this 2018-03-14 16:49:42 -04:00
zeromus 0a18040aff remove pointless redundant function name from LuaMethodExampleAttributes 2018-03-13 21:05:30 -04:00
zeromus 205714df95 cleanup #1122 -related lua examples documentation stuff 2018-03-13 21:04:34 -04:00
zeromus 96a13e64f7 why in the world would you use negative values for example bitshift RHS operands? 2018-03-13 20:57:54 -04:00
zeromus d55e03538f revert weird changes to util.cs for unused parameter-filling code 2018-03-13 20:41:29 -04:00
zeromus 65bc534395 Merge remote-tracking branch 'remotes/azreally/Xadrophonix' 2018-03-13 20:39:42 -04:00
zeromus 2203270868 Merge remote-tracking branch 'remotes/origin/pr/1131'' 2018-03-13 20:37:48 -04:00
zeromus 2f874c3c54 re: #1126 - do some things to try and make input display better. might fix things, might mess everything up, I dont know. 2018-03-13 20:19:03 -04:00
Asnivor 8234b2acfa more typos. FML 2018-03-13 22:15:53 +00:00
Asnivor df5cf0d85f Type fix for sir feos 2018-03-13 22:13:26 +00:00
Asnivor 7739c0dee1 Handling loadstate issues for different machine configurations 2018-03-13 22:09:46 +00:00
zeromus f70da8dc1b Merge branch 'master' of https://github.com/TASVideos/BizHawk 2018-03-13 16:42:05 -04:00
Asnivor 6d66eee459 Disabled AY chip when memory paging is disabled (i.e. 48k mode) 2018-03-13 20:38:43 +00:00
zeromus b179a30d99 Merge remote-tracking branch 'remotes/origin/pr/1080'
# Conflicts:
#	BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj

merges PR #1080
closes PR #1080
(let's see if either of these can do it)
2018-03-13 16:33:53 -04:00
alyosha-tas 42131c5d57 Coleco: Fix audio quality 2018-03-13 16:31:21 -04:00
Asnivor d23dc0a296 Finally fixed tape trap auto loading/stopping routines 2018-03-13 20:31:13 +00:00
Asnivor 5a2b0ae6a6 Added joysticks 2 & 3 and removed TapeControls from VirtualPad schema (they are not needed there) 2018-03-13 19:16:12 +00:00
Asnivor 6c01ba3c6a StereoSound core setting fixed (was not used after core initliazation 2018-03-13 19:01:13 +00:00
Asnivor 9778cc2644 Reduced the AY center channel volume for better balance 2018-03-13 18:52:00 +00:00
alyosha-tas d481624f9e C64: Fix mapper F 2018-03-13 14:03:18 -04:00
alyosha-tas c4497b7c76 C64: Fix 4 in 1 (pot's should return 0xFF instead of 0 when not connected.) 2018-03-13 13:00:56 -04:00
Asnivor f612ae043b Disabled tape trap auto-stop (this is more trouble than its worth - tzx formats should include 'stopthetape' blocks anyway, and tap files are generally junk and should be discouraged) 2018-03-13 14:08:53 +00:00
Asnivor a7ed14cfe1 new IPSG interface ahead of trying to A/B a version of the ColecoHawk AY-3-8910 2018-03-13 14:00:29 +00:00
Asnivor 4e088574cf more code tidy 2018-03-13 13:20:09 +00:00
Asnivor a55cf000e7 Some code tidy 2018-03-13 13:09:44 +00:00
Asnivor 97c453ae91 Fixed zx16 machine after memory changes 2018-03-13 12:48:08 +00:00
feos a751131787 tastudio: disable shift+up/down, it breaks float editing mode 2018-03-12 21:41:11 +03:00
feos 61bf9b67a8 tastudio: a whole bunch of actions shouldn't be possible with no selection 2018-03-12 21:41:11 +03:00
Asnivor 33aa77d8e3 Removed [CoreConstructor("ZXSpectrum")] identifier (as this was causing an exception when loading roms for other systems 2018-03-12 18:17:06 +00:00
Asnivor baa46f3c99 Detection method for 48k (or 128k in 48k mode) - needed for 'stop the tape 48k' tzx block command detection 2018-03-12 15:48:00 +00:00
Asnivor 213437362d Memory overhaul for a nice performance benefit 2018-03-12 15:22:06 +00:00
Asnivor deba6b18b8 Added 'Get Tape Status' keybinding - fires an OSD message with state info about the current tape 2018-03-12 14:37:45 +00:00
alyosha-tas c839bffc33 A2600: Add Driving controller and fix coleco Super Action Controller 2018-03-12 09:12:41 -04:00
Asnivor ccb5947ade Finished port IO contention rewrites 2018-03-12 12:00:17 +00:00
Asnivor 0bd433210e Fixed tzx tape standard data block PauseAfter value. Now speedlock7 encoded games should work 2018-03-12 10:20:56 +00:00
Asnivor ae8b030e57 Started new port contention methods and increased the auto-tape monitor timeout (to eliminate false-positive stops) 2018-03-12 10:19:42 +00:00
alyosha-tas b5321b8d1e Coleco: Finalize Turbo Controller (fixes burn rubber) 2018-03-11 14:49:53 -04:00
feos 560092ffae tastudio: allow scrolling/jumping to marker 0 2018-03-11 20:05:33 +03:00
alyosha-tas 3d0ff89474 C64: Fix leaderboard Golf, but Serial Port interrupts need to be done correctly. 2018-03-11 11:44:15 -04:00
feos 661a15dc2c tsm decay: remove states within internal state gap
states settings: clamp things harder
2018-03-11 17:57:30 +03:00
alyosha-tas 8165fdaaeb C64: Partial Fixes for Leaderboard Golf and 4-in-1 2018-03-11 10:41:11 -04:00
feos 74d5797a6f tastudio: don't let ctrl+up go oob 2018-03-11 15:04:41 +03:00
feos 7162de1d3c tastudio: let's just report state count
will help to sort out possible decay bugs
2018-03-11 14:59:58 +03:00
feos 3932e5a025 tsm decay: fix failing to delete frames if marker is there
markers can be *not* mod _step
2018-03-11 13:49:40 +03:00
TASeditor 47255deef5 fix selection (#1134)
fix selection going out of bounds
2018-03-10 20:35:07 +03:00
feos 244530ffe3 tastudio: thanks for this 4 years old off-by-one
these kinds of errors are haunting me lately!

actually useful info about what it fixes: greenzone not being created after you insert right on current frame
2018-03-10 18:01:08 +03:00
feos 9c0328859d tastudio: fix disgusting copy-paste error causing exceptions out of nowhere 2018-03-10 18:01:08 +03:00
alyosha-tas 7d3f1b366f NESHawk: raise cap on cheats to include entire bus size 2018-03-10 08:14:38 -05:00
alyosha-tas 4208eea12f A7800Hawk fix cart parsing for RAM bank, fixes 1129 2018-03-10 08:06:07 -05:00
Azreal 6032063518 Now looks good :) 2018-03-10 03:00:44 -08:00
Azreal 26c0b1fff2 Continuing... 2018-03-10 02:49:39 -08:00
Azreal c4b2aba6bd Fixed some bad cases! 2018-03-10 02:43:58 -08:00
Azreal 96a35fe71b My first commit - add file "EmuLuaLibrary.Tastudio.cs" to examples (not all have a examples yet)" 2018-03-10 02:33:41 -08:00
alyosha-tas 38a07e8246 Coleco: Fix noise channel audio 2018-03-09 19:32:49 -05:00
feos 444e8d7621 hotkeys: move autofire closer to autohold
"Clear Autohold/Autofire" is not possible, too little space
2018-03-09 22:39:35 +03:00
Asnivor 8708e987f7 Improved tape auto-loading functions 2018-03-09 17:52:04 +00:00
feos 7fedbac9c3 lua: fix #1119 2018-03-09 13:35:42 +03:00
alyosha-tas 1cd82aa5d9 ColecoHawk: Fix turbo controller 2018-03-08 19:58:38 -05:00
Asnivor 31328dac2b Readme progress update! 2018-03-08 22:10:16 +00:00
Asnivor c7fe4c2887 Datacorder - implement basic manual tape block navigation (i.e. NextBlock, PrevBlock) 2018-03-08 21:25:19 +00:00
feos 900a9e5322 lua: let user know which lua core is in use 2018-03-08 23:44:42 +03:00
feos e8103a1c53 tastudio macros: don't die from colons in paths when saving to file
disable macros menu items when there's no selection
2018-03-08 22:58:18 +03:00
Asnivor e6d43fa5d2 Implemented +2a and +3 is now working (although disk drive not yet implemented so it just shows as +2a) 2018-03-08 19:33:14 +00:00
TASeditor 6580c2abef Tastudio: drawing stuff, selection, patterns, add column lua function (#1125)
* alt+columnclick draws pattern
* selection: taseditor logic
* shift/ctrl keys restructure to taseditor
shift + up/down: move frame courser up/down by one
shift + pageup/pagedown: move frame courser to next/prev marker
ctrl + left/right: add/remove selection at last selected row
ctrl + shift + left/right: add/remove selection at first selected row
* Alt+drawing pattern
still not working with drawing upwards
* pattern drawing
upwards drawing working except it doesn't update last row.
TODO: Disallow Alt click to focus on menu.
* pattern: last input ignoring fixed
* Lua columnms
TODO: Don't save them into tasproj
* no need to update float edit stuff or cell changes when its not needed
* Shift+clicking draws input from first selected row to clicked cell
* fixed pattern drawing on empty cells
2018-03-08 22:15:47 +03:00
feos 9d95a520f9 tastudio: fix analog values getting stuck in input port for new frames
interestingly, MovieControllerAdapter.LatchSticky() is only used by tastudio, so this shouldn't cause problems
2018-03-08 21:15:18 +03:00
Asnivor cf8b632381 Disabled new test DiagRom 2018-03-08 16:51:25 +00:00
Asnivor f121aedd6a Added floating bus implementation to 128k/+2 and started looking at +3 emulation 2018-03-08 16:50:56 +00:00
feos 40e28f2f98 tastudio: enable paste menu items when clipboard is available 2018-03-08 19:23:26 +03:00
feos fa5f34627a forgot to save the file 2018-03-08 17:01:47 +03:00
feos 6887447c65 c64: colors that we updated to are probably incorrect. use the ones that pepto actually got
todo: sort this out
2018-03-08 16:57:47 +03:00
feos b2642cd0d9 tastudio: let's try this super annoying method to introduce *intended* control scheme to users 2018-03-08 15:31:07 +03:00
feos d89677c729 tastudio: fix #913 2018-03-08 14:59:05 +03:00
feos f81f41f6f7 tastudio: fix #916 2018-03-08 14:44:09 +03:00
feos bf8c21663d
State manager decay (#1128)
* Finally use exponential decay algorithm for greenzone
  * Works in both directions (unlike fceux taseditor)
* Stop using last accesses states for anything
* When dropping states per project save, account for state gap better
* Use _states.Keys[i] instead of _states.ElementAt{i).Key in speedy parts, because it's apparently tons faster
* Use StateIsMarker() where it's supposed to be used
* Markers are still left untouched
* Branch states are still dead (probably forever)
2018-03-08 12:24:35 +03:00
Asnivor 74423041f3 Removed DCFilter 2018-03-07 17:40:15 +00:00
alyosha-tas 9804a0901a NES: Sprites don't render on scanline 0 2018-03-07 09:46:40 -05:00
alyosha-tas f2a7bdcb6a NES: Fix Traingle Channgel 2018-03-07 07:58:37 -05:00
Asnivor fbbd75b3ab Implemented DeterministicEmulation as a syncsetting and if this is set to false, audio and video devices respect the render and renderSound IEmulator bools 2018-03-07 12:21:36 +00:00
Asnivor 34663445f8 LagFrame syncstate 2018-03-06 18:03:55 +00:00
Asnivor 198008a573 LagFrame implementation 2018-03-06 17:57:13 +00:00
Asnivor 36485bba8a Updated readme 2018-03-06 17:04:58 +00:00
Asnivor 7a7b84f35c Fixed MemoryCallbacks (i think) - now debugger opens without throwing an exception 2018-03-06 17:04:12 +00:00
Asnivor 35bb1d0c93 Fixed default keys and also fixed a major syncsettings snafu 2018-03-06 16:40:25 +00:00
Asnivor aa1cfde69b Disabled replacement DiagRom bios (vblank tests now appear to be working) 2018-03-06 16:05:50 +00:00
Asnivor f8e1174aad ControllerConfiguration form now shows which Joystick type is assigned to each input 2018-03-06 16:01:40 +00:00
Asnivor 93ae29c3a0 Added Cursor(Protek) and Sinclair (left and right) joystick emulation. Also user can now set J1, J2, and J3 emulated joystick type through syncsettings 2018-03-06 15:47:14 +00:00
Asnivor 3cc4b94406 Added default control bindings and prettified the controller configuration panels 2018-03-06 11:17:30 +00:00
Asnivor b409c88c50 Fixed .tap system detection. was causing an exception due to shocking bit of anti-logic (on my part) when opening from zip files 2018-03-05 16:40:36 +00:00
Asnivor e2a212a0b8 Added tape trap auto-load option 2018-03-05 16:12:19 +00:00
Asnivor 23c07cdb67 OSD message handling implementation 2018-03-05 13:29:34 +00:00
Asnivor 90c1e293bf Implemented multi bundler functionlity and multiple tape controls 2018-03-05 11:17:22 +00:00
Xadrophonix d91bd35a95 Second pool of examples. 2018-03-04 14:07:06 -08:00
Xadrophonix 07c07fd72a First pool of examples. 2018-03-04 09:48:38 -08:00
alyosha-tas b0445521c9 ColecoVision: SGM Sound 2018-03-04 11:00:32 -05:00
zeromus 02c72a663a fix crashes when dsound devices go disabled 2018-03-04 02:43:50 -06:00
alyosha-tas 88f874f123 Oops missed a savestate variable 2018-03-03 11:01:04 -05:00
alyosha-tas f4aa1269ab Coleco: Initial commits for Super Game Module 2018-03-03 10:55:15 -05:00
alyosha-tas 47cfe9ceb6 Intellivision: TCI throw console warning instead of error, fixes popeye 2018-03-02 16:59:38 -05:00
Xadrophonix 4bcd69924b All required contents for: https://github.com/TASVideos/BizHawk/issues/1122 2018-03-02 12:06:01 -08:00
adelikat 439b908bdc
Merge pull request #1123 from Masterjun3/master
Lua: fix client.openrom
2018-02-28 18:19:32 -06:00
Masterjun 605ca5816a Lua: fix client.openrom 2018-03-01 01:06:15 +01:00
feos 0fe703c9b7 tsm: redo the algo from scratch, probably not last time 2018-02-27 01:28:24 +03:00
feos 13a49b00d0 tsm: improving the algo 2018-02-26 01:45:44 +03:00
alyosha-tas bc7a53abb5 Add FM to Wonder boy in Monster World (J) 2018-02-25 16:13:22 -05:00
alyosha-tas 82d8060fc8 Add mode 1 to ColecoVision 2018-02-25 15:31:03 -05:00
feos 50fdeb59e1 ffmpeg writer: lossless avi command (ffv1, dolphin style)
reorder options, make commands easier to read
2018-02-25 15:03:47 +03:00
nattthebear e70549667d Fix a lot of mappers in quicknes that had been accidentally broken since 2016, including mmc2, mmc4, vrc6 2018-02-24 15:19:26 -05:00
feos 2947f439b3 not just tasing 2018-02-23 16:37:34 +03:00
feos 88223f6a5d n64: let's stop advertising mk2 maybe? 2018-02-23 14:09:56 +03:00
frequem 71ba3024b7 Fixed linux build 2018-02-21 20:19:33 -05:00
frequem d0d73766bd Fixed some filenames causing problems on case-sensitive systems 2018-02-21 20:19:33 -05:00
nattthebear 13a3ae1a32 support palette settings in mgba, fixes #1042 (probably) 2018-02-21 19:20:10 -05:00
nattthebear cbd524c5c7 update mgba to latest 0.6 2018-02-21 18:08:45 -05:00
nattthebear bd23975201 Hackadoodle to change the initial value of the DIV register? This is probably a bad idea 2018-02-20 18:30:27 -05:00
feos 7ae374df01 tastudio: fuck this 2018-02-21 02:06:25 +03:00
alyosha-tas 92ec68349c Intellivision: Fix Space Patrol 2018-02-17 16:08:46 -05:00
zeromus 97a24951f3 add vcrt 2012 to startup checks 2018-02-17 13:49:51 -06:00
Asnivor 50d28c9627 file reorganisation and removal of obsolete stuff 2018-02-16 10:14:02 +00:00
Asnivor a3dc506c06 Another timing fix 2018-02-16 09:51:00 +00:00
Asnivor c8ea81bfd8 Fixed off-by-one-tstate frame timing issue 2018-02-16 08:49:41 +00:00
Asnivor ec7445669c Fixed integer overflow bug in the tape device 2018-02-15 18:16:12 +00:00
Asnivor b9729d0dc2 TZX tape format handling re-write nearly complete (supporting advanced protection/loader schemes) 2018-02-15 14:37:22 +00:00
Asnivor 42b5f5dc5d Tape device re-write and TAP format reading done. Loading state is now fully serializable 2018-02-14 12:21:02 +00:00
feos 3ed707b703 build new gliden64 2018-02-13 21:46:39 +03:00
feos 07796dd96f update gliden64 submodule to release 3.0 2018-02-13 21:05:26 +03:00
Asnivor f9e93cfa2a Starting new tape implementation 2018-02-13 15:29:21 +00:00
feos f828641388 core config: dynamically resize description field to fit text
fix #1091
2018-02-13 01:45:05 +03:00
Asnivor 181a6ba2ab fix deleted files 2018-02-12 17:23:45 +00:00
Asnivor d534ee3f5f Small settings change 2018-02-12 17:22:03 +00:00
alyosha-tas cace4bdb5a PCE: Fix a VPC typo 2018-02-11 14:02:08 -05:00
alyosha-tas 96fb867f9f PSX movie import: Fix copy-paste error
Partial Fix, buttons still don't line up but getting closer.
2018-02-11 10:03:57 -05:00
alyosha-tas fd7a3a731e PCEHawk: Add option for cropping
Resolves #71
2018-02-10 15:28:27 -05:00
TASeditor 36900b15d4 tastudio lua: setinput functions, onbranch callbacks (#1098) 2018-02-10 14:58:46 +03:00
alyosha-tas 58f6e624ff SMS add Korea to region selection options 2018-02-08 09:26:22 -05:00
alyosha-tas f2523f1cec PCE: Fix some VPC issues 2018-02-06 18:56:03 -05:00
alyosha-tas 6ae8bcfcf9 SMS: Fix Haja no Fuuin 'FM' Chip designation 2018-02-06 18:09:01 -05:00
Asnivor 7c82d6d526
Merge pull request #1106 from TASVideos/master
Bring ZXSpectrum branch up to date with master
2018-02-06 08:45:48 +00:00
alyosha-tas 5f250a2fb0 PCE: Fix display to correctly capture changes to display offset register
Fixes Devil's Crush (and by extension Final Blaster)
2018-02-05 16:58:46 -05:00
nattthebear f185f71026 I'm not sure where to start with this one... It wasn't hooked up to the frontend at all; the C# side enum doesn't have this flag. It can already be done with a different option in the frontend ("VBA Vivid".) It was stored in savestates, despite having no effect on emulation. Even with some other hypothetical front end, it could only be set at initial load time, despite the fact that our existing palette manipulation can be edited at any time, of course... 2018-02-03 14:35:38 -05:00
alyosha-tas 2cc092270d Gambatte: Palette selection for GB mode 2018-02-02 18:42:09 -05:00
zeromus b3b41fb75f fix movie backup saving path (was affected by PWD) 2018-01-21 14:17:14 -06:00
alyosha-tas 70d09673bc GBHawk: PPU cleanup 2018-01-19 09:37:55 -05:00
alyosha-tas a98ebef674 GBHawk: Initial sprite test pass 2018-01-18 20:35:56 -05:00
alyosha-tas 5bf7b060af GBHawk: Sprite Evaluation work 2018-01-17 21:38:00 -05:00
alyosha-tas 5d3ca7bc47 GBHawk: controller read fix 2018-01-17 17:17:43 -05:00
alyosha-tas 956518bfc1 GBHawk: update controller 2018-01-17 09:41:59 -05:00
alyosha-tas 296b88f155 GB minor clean ups 2018-01-16 20:00:42 -05:00
zeromus 5b17e5b958 looks like i never got around to using the 64bit luaperks, so luasockets wasnt built-in as promised ever since we went 64bit. fixes #1077 2018-01-15 17:20:24 -06:00
Asnivor 1fb10f3d9c Some TapeDevice serialization 2018-01-15 12:50:07 +00:00
alyosha-tas e5ded9b139 Gambatte: Merge improvements from gifvex(mcmaeve)
Restores Bios support and loading GB games into GBC
Accuracy imrpovements
2018-01-15 07:45:15 -05:00
adelikat c6bdae916f
Merge pull request #1095 from udoheld/master
Fix for #1094 lua mainmemory.readbyterange() issue
2018-01-13 18:27:03 -06:00
Udo Held 036a3d321a Fix for #1094 lua mainmemory.readbyterange() issue 2018-01-14 11:18:07 +11:00
alyosha-tas b53a89b88f C64: raster interrupt fix 2018-01-11 09:11:55 -05:00
vadosnaprimer fb692806c3 tastudio: supposedly fix #1090 question mark 2018-01-10 22:32:22 +03:00
vadosnaprimer d074880242 tastudio: MarkerView.ShrinkSelection() 2018-01-10 22:06:43 +03:00
vadosnaprimer 5bff769fe9 tastudio:
- scroll to new marker and new branch
- don't kill selection per marker removal
2018-01-10 22:06:41 +03:00
zeromus c17f793733 in 1809d19ecb @vadosnaprimer made the disk capacity for greenzone disabled, but for some reason old settings files may still be setting a value into it, or maybe old tasprojs or something, so I just put a big limit on it so things dont crash. /shrugs 2018-01-09 14:21:58 -06:00
alyosha-tas 4e8ae412fe FDS IRQ's round 2 2018-01-09 13:23:13 -05:00
alyosha-tas 9df6d3c01e FDS: fix timer IRQ timing 2018-01-09 12:22:26 -05:00
alyosha-tas e3c885a0ce C64: Flsuh audio when readin from voice 3 output ports
Fixes strongman
2018-01-08 20:25:57 -05:00
alyosha-tas f6c23270cc FDS: Fix Behaviour of disk status bit 2018-01-07 14:57:41 -05:00
alyosha-tas 5dd0ea4224 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2018-01-06 18:18:12 -05:00
alyosha-tas eaef35b126 C64: fix controller 2018-01-06 18:12:30 -05:00
vadosnaprimer eea6740722 lua: client.isturbo() and client.isseeking() 2018-01-06 13:30:47 +03:00
vadosnaprimer 68a0fcf408 move avi writer call so it captures lua messages
I think it doesn't outrun anything critical this way
2018-01-03 19:35:37 +03:00
vadosnaprimer 761c1532e0 fix single-line messaged 2018-01-02 22:46:24 +03:00
vadosnaprimer 81f681bcd8 account for linebreaks when measuring message string 2018-01-02 21:25:07 +03:00
alyosha-tas 353fec4f00 SMS: Add Korea BIOS support 2018-01-01 12:04:07 -05:00
alyosha-tas 06201a1c4f C64: Fix voume based audio sampling, fix some state bugs 2017-12-31 17:30:35 -05:00
alyosha-tas df8edae97e C64: Fix some bugs 2017-12-31 11:11:24 -05:00
alyosha-tas b1320f38ef Initial WRAM in Silva Saga to 0xFF instead of 0 so the game won't think valid files exist there 2017-12-30 19:55:06 -05:00
alyosha-tas c24e88d4a3 Add "" scope to GPGX memory domain callbacks so the callback created by the trace buffer is within scope. 2017-12-29 22:33:26 -05:00
alyosha-tas 59bb3e1fc8 Gambatte: Revert behaviour of ROM loading so that GB games will not load in GBC mode 2017-12-29 21:15:01 -05:00
Ashafix 07da0170fa unified camelCase for Lua functions, changed Lua test script 2017-12-24 11:42:51 +01:00
Ashafix 4d063f6061 new library for communicating with other programs via Lua 2017-12-24 00:24:22 +01:00
alyosha-tas 1f0c9f2be8 GBHawk: Fix audio and states 2017-12-15 14:29:11 -05:00
Asnivor 3d508455ec Some floating bus work (although still not working) 2017-12-11 18:00:59 +00:00
Asnivor 2759f65b1a Added more border configuration options 2017-12-11 16:05:36 +00:00
Asnivor a9d179d83a Added ULA state serialization 2017-12-11 14:35:27 +00:00
Asnivor 12f5df2b05 Added new ULA implementation for 128k and plus2 2017-12-11 14:33:47 +00:00
Asnivor a5b50fe547 48k - new ULA implementation - 80% faster 2017-12-11 14:08:00 +00:00
Asnivor 2b988954ee Started implementing new ULA implemetation (far more performant) 2017-12-11 12:54:48 +00:00
Asnivor 7532b4be8c Updated readme with progress info 2017-12-11 09:09:05 +00:00
Asnivor e155bb05fc Embedded ZX Roms (allowed for distribution from AMSTRAD) 2017-12-11 09:05:12 +00:00
Asnivor b6ddf03c96 Some comments 2017-12-07 17:34:02 +00:00
Asnivor 0cd8af5974 SyncSettings option for widescreen mode (remove top and bottom borders) 2017-12-07 17:24:30 +00:00
Asnivor fc8b89c837 Added original 16k speccy (even though it sucks) 2017-12-07 16:03:23 +00:00
Asnivor eff8ce69b4 More +3 stuff (still not working) 2017-12-07 15:43:28 +00:00
Asnivor 43ed79cd64 Mixer balancing and stereo output toggle 2017-12-07 13:09:53 +00:00
Asnivor f0cef1cf0d AY-3-8912 Implementation 2017-12-07 10:49:43 +00:00
alyosha-tas e92a455995 GBHawk Cleanups 2017-12-06 19:20:15 -05:00
alyosha-tas 7ae43505ec GBHawk: Clean up interrupt handling 2017-12-06 18:55:38 -05:00
alyosha-tas fe25f35b86 GBHawk: Halt DMA when CPU is halted 2017-12-06 10:50:43 -05:00
alyosha-tas 80e1ef7ad5 GBHawk: Pass new MBC1 test 2017-12-06 08:48:39 -05:00
alyosha-tas b65c10afc7 GBHawk: CPU Update for new test 2017-12-06 08:12:41 -05:00
alyosha-tas 6ffa22aa7a NESHawk: Fix APU IRQs 2017-12-05 19:36:02 -05:00
alyosha-tas acd3386366
Merge pull request #1073 from Mad-Matty/patch-1
Update Vic.VideoProvider.cs
2017-12-05 09:22:39 -05:00
Asnivor f82b1b8336 Custom SoundProviderMixer implementation 2017-12-05 13:08:47 +00:00
Asnivor 85d38a3379 template for plus3 (but not implemented yet) 2017-12-05 10:38:51 +00:00
Asnivor 27ba7e0008 Started +2 implementation 2017-12-05 10:26:06 +00:00
Asnivor 30019d68fc Started Spectrum128 implementation 2017-12-05 10:02:57 +00:00
alyosha-tas 3818ecf193 GBHawk: Implement obscure audio effects 2017-12-04 14:39:41 -05:00
Asnivor f92269657d Added core UI menu and fixed up settings / syncsettings 2017-12-04 15:40:27 +00:00
Asnivor 6d22b06c21 Added virtual pad to UI 2017-12-04 14:05:04 +00:00
Asnivor 38ee7147b3 _frameBuffer is now populated with correct data immediately, rather than converted during the IVideoProvider cycle 2017-12-04 09:42:08 +00:00
zeromus 6c1e45963e add a build tool command which can strip timestamps from PE files (for my own use).
not even committing the built buildtool exe since we're not using it.
2017-12-04 01:00:58 -06:00
alyosha-tas 05f165af1f Merge branch 'master' of https://github.com/TASVideos/BizHawk 2017-12-03 19:10:00 -05:00
alyosha-tas e951439bed GBHawk: Implement frame draw delay 2017-12-03 19:09:33 -05:00
adelikat 5c9da58ce8
Merge pull request #1067 from Ashafix/cliArguments
fixed possible upper case problem in command line arguments parser
2017-12-03 12:27:15 -06:00
alyosha-tas b7689dfe29 GBHawk: Fix some graphical bugs 2017-12-03 11:41:18 -05:00
alyosha-tas 8a48073a9b NESHawk: Mapper 63 2017-12-02 18:39:52 -05:00
alyosha-tas 5ba647a632 NESHawk: Implement mapper 43 and UNIF_UNL-SMB2J 2017-12-02 12:22:48 -05:00
alyosha-tas 5e481a6083 NESHawk: Fix some unlicensed games 2017-12-02 10:03:27 -05:00
alyosha-tas d840769a70 NESHawk: GameDB update 2017-12-01 20:52:41 -05:00
Asnivor 2b880d863b updated readme 2017-12-01 17:40:45 +00:00
Asnivor 048c65cd7e Implemented Kempston Joystick (hardcoded J1) 2017-12-01 17:33:56 +00:00
Asnivor fb8fd2ae90 Fixed input detection 2017-12-01 15:34:47 +00:00
vadosnaprimer fcb7588724 use actual Clamp() 2017-12-01 18:19:29 +03:00
Asnivor bce185b016 Merge branch 'ZXSpectrum' of https://github.com/TASVideos/BizHawk.git 2017-12-01 14:34:58 +00:00
Asnivor 42db947939 updated keyscanning code 2017-12-01 14:34:45 +00:00
alyosha-tas f1fee7dc6e TI832: fix port accesses 2017-12-01 08:51:18 -05:00
alyosha-tas a9f8828063 z80: fix port access behaviour 2017-12-01 08:20:18 -05:00
Asnivor 0ac6012320 small refactor 2017-12-01 11:36:57 +00:00
vadosnaprimer cea50c1ab1 fix #1072
thanks for helping, .net
2017-11-30 19:53:52 +03:00
Asnivor 64bb08cbb7 un-refactored input code and added some +keyboard combinations 2017-11-30 12:08:36 +00:00
Asnivor b38760caeb Internal facility to use DiagROM 2017-11-30 09:41:30 +00:00
alyosha-tas 30061a3536
ZX Spectrum draft DB Access 2017-11-29 16:32:34 -05:00
alyosha-tas 07b9e1243c
ZX Spectrum draft DB access 2017-11-29 16:31:53 -05:00
alyosha-tas 7428e8e673
ZX Spectrum: Draft DB access 2017-11-29 16:30:54 -05:00
alyosha-tas d09e73b592
z80: implement data bus
-needed for ZXspectrum mode 2 interrupts
-use with FetchDB function
2017-11-29 16:28:08 -05:00
alyosha-tas 701133d54e SMS: Fix states 2017-11-29 10:08:33 -05:00
Asnivor 16e0c1b75c
Merge pull request #5 from TASVideos/master
update fork
2017-11-29 09:23:29 +00:00
alyosha-tas dab3b85599
Merge pull request #1071 from Asnivor/speccy
ZXHawk Initial
2017-11-28 18:08:48 -05:00
Asnvior dba8e1f049 Added readme 2017-11-28 20:09:00 +00:00
Asnvior 7287afc5da More SynState work 2017-11-28 19:28:22 +00:00
alyosha-tas 160d54057a GBHawk: Fix altered space sprites 2017-11-27 19:37:13 -05:00
alyosha-tas 17aa0a00a7 GBHawk: allocate memory correctly >___> 2017-11-27 15:13:42 -05:00
Asnivor 74beecc1b0
Merge pull request #4 from TASVideos/master
update fork
2017-11-27 07:24:27 +00:00
alyosha-tas 0cfd2c59d0 Gameboy GPU Viewer: Always set upper byte of palette 2017-11-26 15:46:21 -05:00
alyosha-tas 34a17570d6 Gambatte: Properly dispose of GPUViewer memory pointers
-Still doesn't point to correct memory but at least doesn't crash
2017-11-26 09:25:16 -05:00
alyosha-tas 3e4ebb0dbd GBHawk: GPU Viewer get updates correctly 2017-11-25 22:02:04 -05:00
alyosha-tas 4563c0449c GBHawk: GPU Viewer fixes 2017-11-25 21:55:37 -05:00
alyosha-tas 13ec13a556 GBHawk : Initial support for GPU Viewer 2017-11-25 21:16:14 -05:00
alyosha-tas 2557be35d5 GBHawk: Bug Fix 2017-11-25 13:10:09 -05:00
alyosha-tas 35623000ac GBHawk: Bug Fix 2017-11-25 11:10:59 -05:00
alyosha-tas 0b1bbe5b87 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2017-11-25 11:04:55 -05:00
alyosha-tas e7a4bd3bab GBHawk: Initialize cartRAM to 0xFF
Fixes Initial D Gaiden
2017-11-25 11:04:07 -05:00
Ashafix 02692e932b fixed possible upper case problem in command line arguments parser 2017-11-25 15:56:20 +01:00
Tastyfish bc11c34e99 Eh make the SK-1100 defaults for Graph and Kana keys more reliable 2017-11-25 01:23:12 -05:00
Tastyfish 480f3b73f9 Keyboard support for SG-1000/Mark III 2017-11-25 01:23:12 -05:00
alyosha-tas 8972c8d57f GBHawk: Bug Fix 2017-11-24 20:21:53 -05:00
alyosha-tas 68e32e93e4 GBHawk: MBC3 state 2017-11-24 19:23:10 -05:00
alyosha-tas cbd217d479 GBHawk: MBC3 2017-11-24 15:44:29 -05:00
Asnivor 30483f3003 Started tape impl. 2017-11-24 18:43:04 +00:00
alyosha-tas ffbb1f3399 GBHawk: Bug Fixes 2017-11-24 12:24:22 -05:00
alyosha-tas d9183ede93 GBHawk: Bug Fixes 2017-11-24 10:28:38 -05:00
alyosha-tas 28fb17a9fe Merge branch 'master' of https://github.com/TASVideos/BizHawk 2017-11-24 09:34:03 -05:00
alyosha-tas 6f9066aac1 GBHawk: Bug FIx 2017-11-24 09:31:57 -05:00
Tastyfish 24b8d56f9c Actually display SP in SMS debugger 2017-11-24 02:56:21 -05:00
Tastyfish d0bdfd3d68 Fixes disassembler for SMS 2017-11-24 02:56:21 -05:00
Asnivor d012472999 Initial commit. 48K spectrum only. 2017-11-23 17:26:15 +00:00
alyosha-tas 5eae2d2a9a GBHawk: Bug Fix 2017-11-23 10:06:37 -05:00
alyosha-tas 9faae458af GBHawk: Sachen work 2017-11-22 21:38:56 -05:00
alyosha-tas b2bc602398 GBHawk: Add ROM domain, add Green palette option 2017-11-22 14:42:12 -05:00
alyosha-tas afe5a7cd11 GBHawk: Fix Amazing Penguin 2017-11-22 13:35:07 -05:00
alyosha-tas 0e028a2284 GBHawk: Bug Fixes 2017-11-22 11:10:45 -05:00
alyosha-tas f494b58f3b GBHAwk more work:
-Add basic serial port support
-Fix Mortal Kombat
-Add controller IRQs
-Fix contols and Bomberman
2017-11-21 20:22:56 -05:00
alyosha-tas 63f8fc0d90 GBHawk: Fix memory accesses during DMA 2017-11-21 13:26:40 -05:00
alyosha-tas 7a987810ef Cheats: Fix 2 byte return values
Fixes #1060
2017-11-21 09:58:16 -05:00
alyosha-tas 9f1c5b45c0 GBHawk: PPU fix 2017-11-21 09:20:09 -05:00
alyosha-tas a1ab551ea1 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2017-11-21 09:10:20 -05:00
alyosha-tas 80bf881228 GBHawk: PPU Fixes 2017-11-21 09:10:08 -05:00
zeromus cab18d46ab
Merge pull request #1064 from Tastyfish/closed-reboot
Make Reboot Core not crash after Close ROM
2017-11-20 20:53:20 -06:00
Tastyfish 5a0cf817ee Make Reboot Core not crash after Close ROM 2017-11-20 21:50:44 -05:00
alyosha-tas 4c3a1f32bb GBHawk: More audio work 2017-11-20 16:58:43 -05:00
alyosha-tas d8ab74472d GBHawk: Audio fix and volume increase 2017-11-20 13:56:37 -05:00
alyosha-tas 63ef676251 GameBoy:
-Remove BIOS support from Gambatte
-Fix GBHawk audio desync
-Fix controllers
2017-11-20 12:14:13 -05:00
Asnivor e5ff485e8a
Merge pull request #3 from TASVideos/master
GBHawk: Initialization fixes
2017-11-20 11:40:32 +00:00
alyosha-tas a3ae61f03f GBHawk: Initialization fixes 2017-11-19 15:16:15 -05:00
Asnivor 512cd56397
Merge pull request #2 from TASVideos/master
updatefork
2017-11-19 19:14:43 +00:00
alyosha-tas bc425ba44c
Merge pull request #1058 from TASVideos/GBHawk
Gb hawk
2017-11-19 10:39:55 -05:00
alyosha-tas b0095927b6 Make Gambatte use new disassembler 2017-11-19 10:36:38 -05:00
alyosha-tas 69170fb110 Remove old GB CPU core 2017-11-19 10:22:05 -05:00
alyosha-tas 8e1ba79e0a GBHawk: Add core picker 2017-11-19 10:17:23 -05:00
alyosha-tas 821953348a
Merge pull request #1057 from TASVideos/master
Sync GBHawk with master
2017-11-19 09:47:14 -05:00
alyosha-tas 26b1a2dff0 GBHawk: Pass all sound tests 2017-11-19 09:30:18 -05:00
alyosha-tas 087586bc49 GBHawk: pass new IRQ test 2017-11-18 19:45:11 -05:00
alyosha-tas 2d7501b203 GBHawk: More audio work, pass more tests 2017-11-18 18:02:04 -05:00
alyosha-tas 93addbe725 GBHawk: More audio work 2017-11-18 11:43:58 -05:00
alyosha-tas 21dca406b6 GBHawk: Pass sound test 3 2017-11-15 20:44:47 -05:00
alyosha-tas c9bfd57dd1 GBHawk: Start passing tests 2017-11-15 16:13:00 -05:00
alyosha-tas 27601653e5 GBHawk: Audio work 2017-11-15 12:17:58 -05:00
nattthebear 213c8189e8 update mgba 2017-11-14 19:46:40 -05:00
alyosha-tas 67d4f0bb7d GBHawk: Starting to get sound 2017-11-14 17:52:35 -05:00
alyosha-tas 574a78ee86 GBHawk: mapper and audio updates 2017-11-14 14:43:58 -05:00
alyosha-tas ff815dec65 GBAHawk start audio 2017-11-14 11:59:32 -05:00
alyosha-tas 76dca1147d
Merge pull request #1052 from YoshiRulz/ramwatch-displaycol
Add display type column (resolves #683)
2017-11-14 09:51:05 -05:00
nattthebear fe85175619 Fix Issue #1048: Flags on memory domain in picodrive 2017-11-13 21:12:27 -05:00
zeromus f71b3a2e75 update gliden64, maybe. fixes #1053, maybe, i dont know, try it and see what happens 2017-11-13 12:33:39 -06:00
zeromus 18d46630bc allow binding xpad triggers as analog controls. fixes #1054 2017-11-12 23:22:36 -06:00
Mad-Matty 7a6471556e
Update Vic.VideoProvider.cs
Updated C64 Colour Palette Values using the new (Feb 2017) Pepto Colodore values.  This is an update to Pepto's original palette currently in use.

Values taken from Winvice Colodore.vpl) Note that the vpl also has Dither values which I guess are not used by this emu.

http://www.pepto.de/projects/colorvic/
2017-11-12 22:20:23 +00:00
alyosha-tas c18298c8a5 GameBoy: Disable BIOS in Gambatte. Use GBHawk for GameBoy, Gambatte for CGB. 2017-11-11 09:07:58 -05:00
alyosha-tas 4cf9ef3f3a GBHawk: MBC1 updates and multi-cart support 2017-11-10 19:07:36 -05:00
YoshiRulz f983c91eb0 Add display type column (resolves #683) 2017-11-10 14:32:30 +11:00
alyosha-tas ee824dc308 Oops 2017-11-09 09:55:24 -05:00
alyosha-tas 7749e1407e GBHawk Updates and Sync 2017-11-09 09:51:39 -05:00
alyosha-tas b2d453441e
Merge pull request #1051 from TASVideos/master
Sync Master to GBHawk
2017-11-09 08:50:48 -05:00
alyosha-tas 40658e99cf Hex Editor: Update Big Endian Effect 2017-11-09 08:41:35 -05:00
alyosha-tas 6b18b3cb57
Update Atari2600.IEmulator.cs
Fix broken build
2017-11-08 18:22:53 -05:00
alyosha-tas e35b225fb0
Update Atari2600.IEmulator.cs
Add a frame termination condition so the core doesn't silently crash.
2017-11-08 14:11:13 -05:00
alyosha-tas 7a799583e9
Update Atari2600.cs
Kangaroo [!].a26 has banks swapped similar to a few other games, add it to the internal list.
2017-11-08 13:52:39 -05:00
zeromus 85a310590a fix #1049 - anchoring of "Contributors" LinkLabel in BizBox 2017-11-07 19:49:33 -05:00
vadosnaprimer 1809d19ecb smart state gap for greenzone. fix #915
disable disk capacity setting
2017-11-05 22:34:58 +03:00
vadosnaprimer fbbe42d7fa tastudio: drop logic that shrinks branch screenshot popup
the fact that it was screwing up osd text (that's not pixel based by design) causes more problems than smaller popup was ever intended to solve. and it's not branch or tasproject size, because screenshots are stored in the same resolution as your emulator screen. so I don't even know which problems it was solving. if it was made to shrink because originally it couldn't expand outside tastudio, this has been resolved a while ago, and we can afford covering as much user screen as they already cover with emuhawk. unless they complain, then it can return as an option.
2017-11-05 17:33:12 +03:00
vadosnaprimer e99ea11cf7 tastudio: why don't we update input every new frame we capture
everybody loves tiny off by one errors that completely break everything
2017-11-05 16:23:26 +03:00
adelikat 3c327449e8 meh, turn off some resharper stuff we don't care about for anyone who might be using it. And a meaninglessly C#6ism refactor 2017-11-03 14:52:19 -05:00
alyosha-tas eaf2ff4df6
QuickNES: Blacklist Joe and Mac
Resolves #993
2017-11-03 14:08:57 -04:00
alyosha-tas 7cdffc25c3
Update Z80A.cs
Properly reset instruction vector index
2017-11-03 08:39:02 -04:00
alyosha-tas ad66699b23
Update Mapper116.cs
Fixes Kart Fighter
Not sure why I added that condition in the first place, it doesn't break Somari.
2017-10-31 11:41:50 -04:00
alyosha-tas 41282bfc21
Update gamedb_nes.txt
Pocahontus and Super Donkey Kong use mapper 182
2017-10-31 10:46:21 -04:00
alyosha-tas ec848f2c43
NESHawk: Update Mapper 114 2017-10-31 10:36:00 -04:00
adelikat dda86fce90 gitignore the .vs folder 2017-10-29 12:44:25 -05:00
adelikat 635c1cdd05 Merge branch 'domainedmemoryhooks' of https://github.com/TASVideos/BizHawk into domainedmemoryhooks 2017-10-29 12:40:52 -05:00
adelikat ebcd237858 Merge branch 'master' into domainedmemoryhooks 2017-10-29 12:38:29 -05:00
adelikat 8ad49eacad 2.2.1 version info 2017-10-29 09:59:17 -05:00
adelikat 4efea2ca56 Merge branch 'master' into release 2017-10-29 09:51:10 -05:00
alyosha-tas 11b6bb6e2f
Merge pull request #1037 from Asnivor/discid-fixes
RomLoader - better disc load failures
2017-10-29 08:27:24 -04:00
vadosnaprimer e9a41ec938 gpgx: lowpass filter range was measured to be 40% instead of 60% on MD1
https://forums.libretro.com/t/genesis-plus-gx-where-is-the-audio-lowpass-filter/12169

enable hex mode for backdrop color (again) and lowpass range
2017-10-29 01:43:50 +03:00
Asnivor 7eee1c0f8f DiscSystem MDS: version check 2017-10-27 20:35:40 -04:00
Tastyfish 9693d812d2 Adds SEGA Sports Pad for SMS support, also make controller syncsetting 2017-10-27 20:34:12 -04:00
alyosha-tas 03dcc63467 Update BizHawk.Emulation.Cores.csproj 2017-10-26 21:12:18 -04:00
alyosha-tas 12d002fcf1 NESHawk: Add mapper 114
Aladdin Super Game
2017-10-26 21:11:21 -04:00
alyosha-tas fcfebcaf37 Update BizHawk.Emulation.Cores.csproj 2017-10-26 10:10:42 -04:00
alyosha-tas 50c69c90ef Update BizHawk.Emulation.Cores.csproj 2017-10-26 09:59:07 -04:00
alyosha-tas 7b8a61b8e4 NESHawk Cleanup 2017-10-26 09:58:24 -04:00
Asnivor 6ea1171ab7 RomLoader: graceful disc failures 2017-10-26 14:55:31 +01:00
alyosha-tas c96ea0d23d Update PPU.run.cs 2017-10-25 21:51:53 -04:00
Tastyfish fef2c131f8 Adds memory.hash_region to aid in detecting RAM changes 2017-10-25 21:12:31 -04:00
alyosha-tas a76a868ca8 Merge pull request #1036 from alyosha-tas/GBHawk
Gb hawk update
2017-10-25 19:51:22 -04:00
alyosha-tas f94d3f58c6 Z80: Fix CDL
Use FetchMemory for opcodes and ReadMemory for everything else
Also fix Dis-assembling
2017-10-25 19:21:30 -04:00
alyosha-tas c593cb4c47 Update SMS CodeDataLogger 2017-10-25 19:19:30 -04:00
alyosha-tas 8e7d8fbff5 Update SMS.cs 2017-10-25 19:18:45 -04:00
alyosha-tas cf9bfbe726 Update ColecoVision.cs 2017-10-25 19:17:00 -04:00
alyosha-tas 22337474db Update TI83.cs 2017-10-25 19:16:05 -04:00
Asnivor 6a0fe162a1 Merge pull request #1 from TASVideos/master
update fork
2017-10-25 17:38:45 +01:00
zeromus b6934ed195 Merge pull request #1034 from Asnivor/MDS
DiscSystem: MDS/MDF Support
2017-10-25 12:24:18 -04:00
zeromus e64d00bf7d psx - fix bug where saving the state cleared the memcard dirty flags. not 100% sure we'll keep this logic, need to revisit it on the date of the great automatic-flushing-deprecation.
fixes #1031
2017-10-25 12:22:58 -04:00
Asnivor 166edd7cba Added mds to file filters 2017-10-25 17:10:26 +01:00
Asnivor 6d87be1396 Experiemental MDS/MDF Support 2017-10-25 17:06:16 +01:00
peeweek 8c503f0e7e Retroizer Shader + Time uniform in custom shaders 2017-10-23 23:31:56 +02:00
alyosha-tas 9498206980 NESHawk: FDS Timer IRQ's 2017-10-23 17:15:08 -04:00
Tastyfish c594e48175 Save stating for the 93c46 too 2017-10-23 14:17:51 -04:00
Tastyfish 5e87b45df0 EEPROM (93c46) support for SMS 2017-10-23 14:17:51 -04:00
zeromus 3e3a64fffe Merge pull request #1020 from Asnivor/CDFS
DiscSystem - CDFS classes now consume CD-I discs
2017-10-22 15:12:32 -05:00
alyosha-tas b367f28971 Delete FCEUX.pal 2017-10-22 13:22:21 -04:00
alyosha-tas edc40edd46 NESHawk: FCEUX palette update 2017-10-22 13:21:37 -04:00
alyosha-tas 0fd046de0d Update HexEditor.cs 2017-10-21 09:55:03 -04:00
alyosha-tas 745e42a753 Hex Editor: Fix Cheat display
Fixes #1026
2017-10-21 09:52:07 -04:00
alyosha-tas 3c6dcf1dc3 TI-83 Upgrade
- Fix power on Behaviour
- Fix cycle timing
- Fix timer interrupt frequency
- NOTE: 'ON' buton on virtual calculator doesn't work since it's only a 'click', need to use shortcut key to turn the calculator on
2017-10-20 10:32:22 -04:00
Tastyfish 5e0a373c6f SMS Bart vs Space Mutants needs to run in PAL 2017-10-20 00:45:00 -04:00
alyosha-tas 28cce355bf Z80: Fix R register operation 2017-10-19 12:08:34 -04:00
alyosha-tas be6aa52bc8 Z80: Remove JAM
The relevent opcodes behave as NOPs
2017-10-19 10:55:17 -04:00
alyosha-tas af9c813c5b Add files via upload 2017-10-19 09:48:27 -04:00
alyosha-tas 7a93a0dcf2 Cheats: Fix endianess display
Fixes #1025
2017-10-19 09:46:39 -04:00
alyosha-tas 4f63cadb4a Z80
Corrections and Bug Fixes
2017-10-14 14:07:17 -04:00
alyosha-tas eca4299b87 Merge pull request #1021 from TASVideos/newZ80
New z80 Core
2017-10-13 18:42:04 -04:00
alyosha-tas 74fbe5a261 Update BizHawk.Emulation.Cores.csproj 2017-10-13 18:04:06 -04:00
alyosha-tas 09ce28d2bd Add files via upload 2017-10-13 18:01:14 -04:00
alyosha-tas 9d9133720c Add files via upload 2017-10-13 18:00:08 -04:00
alyosha-tas 8b2b796b53 Add files via upload 2017-10-13 17:59:14 -04:00
alyosha-tas 0fda518cb7 Add files via upload 2017-10-13 17:58:36 -04:00
alyosha-tas 7984eecd99 Delete Z80A.cs 2017-10-13 17:52:53 -04:00
alyosha-tas ac2c6a46e0 Delete Tables.cs 2017-10-13 17:52:45 -04:00
alyosha-tas 9776e65719 Delete Registers.cs 2017-10-13 17:52:36 -04:00
alyosha-tas 33079bed48 Delete Interrupts.cs 2017-10-13 17:52:27 -04:00
alyosha-tas 12e709e045 Delete Execute.cs 2017-10-13 17:52:17 -04:00
alyosha-tas 438b3893e3 Delete Disassembler.cs 2017-10-13 17:52:03 -04:00
alyosha-tas ce6dcab323 Add files via upload 2017-10-13 17:50:54 -04:00
alyosha-tas 3be21c583e Add files via upload 2017-10-13 16:27:41 -04:00
alyosha-tas 946c025cd6 Add files via upload 2017-10-13 16:26:32 -04:00
alyosha-tas 258688ebdd Add files via upload 2017-10-13 11:07:02 -04:00
Asnivor 3bbce67c10 Added a small method to return all files recursively as a List<KeyValuePair<string, ISOFileNode>> 2017-10-13 15:24:00 +01:00
Asnivor 73dfcf00bd DiscSystem - CDFS classes now also detect and consume CD-I (Green Book) disc images 2017-10-13 11:09:08 +01:00
alyosha-tas fc0a251040 Add files via upload 2017-10-12 20:21:32 -04:00
alyosha-tas 12c46db790 Add files via upload 2017-10-12 20:20:13 -04:00
alyosha-tas ff13009e97 Create ReadMe.txt 2017-10-12 20:19:42 -04:00
zeromus 59fdb4a4c3 Merge pull request #1018 from Asnivor/DiscSystemChanges
DiscIdentifier - Improved detection of PC-FX. Added detection of lots…
2017-10-11 12:07:11 -05:00
Asnivor 688015bde8 Reduced dreamcast detection time by a factor of 10 2017-10-11 11:20:46 +01:00
Asnivor 420aec7870 DiscIdentifier - Improved detection of PC-FX. Added detection of lots more systems. 2017-10-11 10:57:58 +01:00
feos 1bd535c31f tastudio: don't trigger right button up events if left button is still held down 2017-10-07 23:40:54 +03:00
feos 7529570ab8 tastudio: unbreak things if user cancels movie conversion on file open 2017-10-07 23:17:02 +03:00
feos 94170687a4 tastudio: always assign branch's laglog when it's loaded
fixes failure to color greenzone if a branch without input diff was loaded (and some other weird conditions were met)
2017-10-07 23:07:15 +03:00
feos 84412eafd9 tastudio: do normal seeking while recording too. needs testing
if you go to a frame while recording and unpaused, it will seek to that frame (not touching input since rec mode is suspended), and after it reaches it, it will unpause and restore rec mode
2017-10-07 15:20:30 +03:00
alyosha-tas 0d8b9c42cc Add reset button to colecovision
Fixes #992
2017-10-06 10:51:40 -04:00
zeromus 43b04a4ee0 fix "BSNES in SGB mode creates two entries for the WRAM domain" #1012 2017-10-03 15:35:16 -05:00
zeromus 74d1eba368 fix Broken Jump List #1015 2017-10-03 15:26:36 -05:00
nattthebear 148cadda72 Fix issue #1009: sameboy: stack pointer saved in init state 2017-09-29 18:07:50 -04:00
nattthebear 1532950961 sameboy: fix possible crash on loadstate with gb printer active 2017-09-29 18:07:11 -04:00
alyosha-tas 961723ef32 NESHawk Fix ACtion 52 2017-09-27 22:17:38 -04:00
alyosha-tas 32797eea46 Atari 2600
-Recast to run single cycle
-Remove frame buffer from state
-Always end frames on vsync boundary
2017-09-20 10:33:14 -04:00
alyosha-tas 30f1d61f7f Atari 2600
-Recast to run single cycle
-Remove frame buffer from state
-Always end frames on vsync boundary
2017-09-20 10:27:27 -04:00
alyosha-tas 0574013bd0 Atari 2600
-Recast to run single cycle
-Remove frame buffer from state
-Always end frames on vsync boundary
2017-09-20 10:26:33 -04:00
zeromus 561abcca51 add some 64bit libdarm.dll that I just made 2017-09-14 19:44:26 -05:00
pjgat09 1ff0cc1e0c N64: Tracelog now includes delay slot execution. Fixes #789 2017-09-14 16:04:53 -04:00
zeromus b34c9a5dd8 straighten out building of glide64mk2 dll. fixes #1003 2017-09-12 00:49:14 -05:00
alyosha-tas f42b8e2d7f Add files via upload 2017-09-09 15:44:41 -04:00
alyosha-tas ab3a246412 Add files via upload 2017-09-08 09:37:39 -04:00
zeromus 8d04dc32a9 discsystem: add a utility method for my own use, no interest to anybody else 2017-09-07 22:39:06 -05:00
alyosha-tas 7c1522cffe NESHawk: Audio Slider 2017-09-07 10:27:36 -04:00
alyosha-tas e66e70534a NESHawk: Audio slider 2017-09-07 10:26:27 -04:00
alyosha-tas 465d1ea3a1 Add files via upload 2017-09-06 19:38:18 -04:00
alyosha-tas f0306c10df Update PPU.cs 2017-09-06 09:32:59 -04:00
alyosha-tas 4f8559f637 NESHawk: Fix state errors 2017-09-05 20:53:09 -04:00
alyosha-tas 666e284e03 PPU add windowing 2017-09-04 17:36:26 -04:00
alyosha-tas 874d06797f NESHawk: Code Clean up
remove redundancies, fix scanline count
2017-09-02 10:48:23 -04:00
Tastyfish d0fdc75a1e SMS Light Phaser support 2017-09-01 22:39:01 -04:00
alyosha-tas 40ec613982 NesHawk: Single Tick PPU
Should allow for breaking out into a debugger.
2017-09-01 22:11:41 -04:00
Tastyfish 6f021653aa Fixes Galactic Defender's P2 paddle (#988) 2017-08-31 11:14:49 -04:00
alyosha-tas a8555c39ca Merge pull request #987 from Tastyfish/sms-controllers
Adds Sega Master System paddle support
2017-08-31 10:08:06 -04:00
Tastyfish 1069a50219 Adds Sega Master System paddle support 2017-08-30 23:16:14 -04:00
Tastyfish 56cdf32929 Make Gambatte show link status for printer connection 2017-08-30 15:55:19 -04:00
alyosha-tas 042fd6ddaa Merge pull request #985 from TASVideos/master
merge master into GBHawk
2017-08-29 20:15:57 -04:00
Tastyfish 200ab8f8d8 GB Printer support for Gambatte, output color improvements 2017-08-29 18:16:02 -04:00
nattthebear 148e40b504 Fix stack overflow in printer callback 2017-08-29 18:16:02 -04:00
Tastyfish e780e74f45 A frontend for the GB printer 2017-08-29 18:16:02 -04:00
nattthebear 0c3e18efb1 Could you use these things to print like, boobs? 2017-08-29 18:16:02 -04:00
alyosha-tas a8db3a6966 Update BizHawkFiles.wxs 2017-08-29 11:15:38 -04:00
alyosha-tas 9fbc21d34c Update BizHawkInstall.wxs
Completes clean up of EMU7800 references
2017-08-29 10:55:16 -04:00
alyosha-tas a90b00cba9 Update BizHawkFiles.wxs 2017-08-29 10:53:57 -04:00
alyosha-tas 7d9431e1b3 Update Building Other Solutions.txt 2017-08-29 10:53:03 -04:00
alyosha-tas 749c2eb500 Update BizHawk.Emulation.Cores.csproj 2017-08-29 10:52:32 -04:00
alyosha-tas aacb400da2 Update BizHawk.Client.EmuHawk.csproj 2017-08-29 10:51:47 -04:00
alyosha-tas 2489bc5c26 Update RomLoader.cs 2017-08-29 10:49:25 -04:00
alyosha-tas f94de09336 Delete emu7800.png 2017-08-29 10:43:53 -04:00
alyosha-tas 1a9adece4b Update Resources.resx
remove emu7800 reference
2017-08-29 10:43:03 -04:00
alyosha-tas 4c0668aed6 Merge pull request #983 from alyosha-tas/master
Remove EMU7800
2017-08-29 10:02:35 -04:00
alyosha-tas 8c0c115e69 Delete EMU7800.dll 2017-08-29 09:47:34 -04:00
alyosha-tas 2a590cad30 Delete EMU7800.csv 2017-08-29 09:45:26 -04:00
alyosha-tas 55580127db Update BizHawk.Emulation.Cores.csproj 2017-08-29 09:42:41 -04:00
alyosha-tas 3a4164cb5d Delete Atari7800Control.cs 2017-08-29 09:41:48 -04:00
alyosha-tas b6522a40cf Delete Atari7800.cs 2017-08-29 09:40:43 -04:00
alyosha-tas 17ee643a95 Delete Atari7800.IStatable.cs 2017-08-29 09:40:35 -04:00
alyosha-tas 1c989d0432 Delete Atari7800.ISaveRam.cs 2017-08-29 09:40:28 -04:00
alyosha-tas 588d60343a Delete Atari7800.IMemoryDomains.cs 2017-08-29 09:40:21 -04:00
alyosha-tas 79e9cfd69a Delete Atari7800.IInputPollable.cs 2017-08-29 09:40:13 -04:00
alyosha-tas ede569dab3 Delete Atari7800.IEmulator.cs 2017-08-29 09:40:04 -04:00
alyosha-tas 7717bd3181 Delete Atari7800.IDebuggable.cs 2017-08-29 09:39:57 -04:00
alyosha-tas 534bb63082 Delete TIATables.cs 2017-08-29 09:38:21 -04:00
alyosha-tas 444f90cde0 Delete TIASound.cs 2017-08-29 09:38:13 -04:00
alyosha-tas e98fb0c058 Delete TIA.cs 2017-08-29 09:38:03 -04:00
alyosha-tas 87c4cd9ba2 Delete SerializationContext.cs 2017-08-29 09:37:53 -04:00
alyosha-tas 1d3e7279d5 Delete RAM6116.cs 2017-08-29 09:37:45 -04:00
alyosha-tas 21ee6f8ccf Delete PokeySound.cs 2017-08-29 09:37:36 -04:00
alyosha-tas 15e59a000d Delete PIA.cs 2017-08-29 09:37:28 -04:00
alyosha-tas e7c45e1912 Delete NullLogger.cs 2017-08-29 09:37:20 -04:00
alyosha-tas d25b4e78b0 Delete NullDevice.cs 2017-08-29 09:37:13 -04:00
alyosha-tas 85c923e883 Delete MariaTables.cs 2017-08-29 09:37:07 -04:00
alyosha-tas 6f87bcdea4 Delete Maria.cs 2017-08-29 09:36:59 -04:00
alyosha-tas 1e33c5fbc6 Delete MachineType.cs 2017-08-29 09:36:46 -04:00
alyosha-tas 6962b6e4e1 Delete MachineInput.cs 2017-08-29 09:36:38 -04:00
alyosha-tas 61163aa4d4 Delete MachineBase.cs 2017-08-29 09:36:29 -04:00
alyosha-tas a9d1f58761 Delete Machine7800PAL.cs 2017-08-29 09:36:21 -04:00
alyosha-tas ca6765d0cd Delete Machine7800NTSC.cs 2017-08-29 09:36:12 -04:00
alyosha-tas b0bdd05426 Delete Machine7800.cs 2017-08-29 09:36:02 -04:00
alyosha-tas c60658a4dc Delete Machine2600PAL.cs 2017-08-29 09:35:52 -04:00
alyosha-tas 3079820043 Delete Machine2600NTSC.cs 2017-08-29 09:35:45 -04:00
alyosha-tas cb275f8f8d Delete Machine2600.cs 2017-08-29 09:35:37 -04:00
alyosha-tas c020855830 Delete M6502DASM.cs 2017-08-29 09:35:26 -04:00
alyosha-tas c7bb53978c Delete M6502.cs 2017-08-29 09:35:16 -04:00
alyosha-tas 40f4e4696c Delete LICENSE.TXT 2017-08-29 09:35:06 -04:00
alyosha-tas fb665254b2 Delete InputState.cs 2017-08-29 09:34:52 -04:00
alyosha-tas 17a94fc736 Delete ILogger.cs 2017-08-29 09:34:40 -04:00
alyosha-tas 431f8cece8 Delete IDevice.cs 2017-08-29 09:34:32 -04:00
alyosha-tas 8e4bf6a2be Delete HSC7800.cs 2017-08-29 09:34:23 -04:00
alyosha-tas 688018d0ed Delete FrameBuffer.cs 2017-08-29 09:34:15 -04:00
alyosha-tas 4c730be1d3 Delete FontRenderer.cs 2017-08-29 09:34:06 -04:00
alyosha-tas 78a924594d Delete Emu7800SerializationException.cs 2017-08-29 09:33:53 -04:00
alyosha-tas f50945e16e Delete Emu7800Exception.cs 2017-08-29 09:33:45 -04:00
alyosha-tas ae44c8f30e Delete DeserializationContext.cs 2017-08-29 09:33:34 -04:00
alyosha-tas 0147849535 Delete ControllerAction.cs 2017-08-29 09:33:21 -04:00
alyosha-tas f6bcd24542 Delete Controller.cs 2017-08-29 09:33:13 -04:00
alyosha-tas 4744077036 Delete ConsoleSwitch.cs 2017-08-29 09:33:04 -04:00
alyosha-tas 6d5a7b2974 Delete CartType.cs 2017-08-29 09:32:52 -04:00
alyosha-tas bcf24cf3b1 Delete CartTV8K.cs 2017-08-29 09:32:43 -04:00
alyosha-tas 2706d2ab39 Delete CartPB8K.cs 2017-08-29 09:32:35 -04:00
alyosha-tas c49dbfcd32 Delete CartMN16K.cs 2017-08-29 09:32:25 -04:00
alyosha-tas 0def568ff7 Delete CartDPC.cs 2017-08-29 09:32:14 -04:00
alyosha-tas 17cef7393a Delete CartDC8K.cs 2017-08-29 09:32:06 -04:00
alyosha-tas 6914f8b7c4 Delete CartCBS12K.cs 2017-08-29 09:31:57 -04:00
alyosha-tas 5a04d633be Delete CartA8KR.cs 2017-08-29 09:31:48 -04:00
alyosha-tas 27600934e3 Delete CartA8K.cs 2017-08-29 09:31:37 -04:00
alyosha-tas 8443c527b4 Delete CartA4K.cs 2017-08-29 09:31:24 -04:00
alyosha-tas 381b08889b Delete CartA32KR.cs 2017-08-29 09:31:08 -04:00
alyosha-tas d64f7e7a0d Delete CartA32K.cs 2017-08-29 09:30:54 -04:00
alyosha-tas ee67746a75 Delete CartA2K.cs 2017-08-29 09:30:45 -04:00
alyosha-tas 7a3d21a92c Delete CartA16KR.cs 2017-08-29 09:30:33 -04:00
alyosha-tas 2efe19e4a9 Delete CartA16K.cs 2017-08-29 09:30:23 -04:00
alyosha-tas 99895dd45a Delete Cart78SGP.cs 2017-08-29 09:30:10 -04:00
alyosha-tas eb622c5bbd Delete Cart78SG.cs 2017-08-29 09:30:01 -04:00
alyosha-tas c2240dfe23 Delete Cart78S9.cs 2017-08-29 09:29:52 -04:00
alyosha-tas 7d42d3e1ef Delete Cart78S4.cs 2017-08-29 09:29:43 -04:00
alyosha-tas c7a0edf744 Delete Cart78AC.cs 2017-08-29 09:29:35 -04:00
alyosha-tas ffd3fe3f90 Delete Cart78AB.cs 2017-08-29 09:29:26 -04:00
alyosha-tas 33fc036bd6 Delete Cart7848.cs 2017-08-29 09:29:18 -04:00
alyosha-tas 6077453a17 Delete Cart7832P.cs 2017-08-29 09:29:07 -04:00
alyosha-tas 1368935f37 Delete Cart7832.cs 2017-08-29 09:28:58 -04:00
alyosha-tas c952668bd1 Delete Cart7816.cs 2017-08-29 09:28:49 -04:00
alyosha-tas ddbb9f753d Delete Cart7808.cs 2017-08-29 09:28:37 -04:00
alyosha-tas 37b58ae4f8 Delete Cart.cs 2017-08-29 09:27:47 -04:00
alyosha-tas f6446228fb Delete BufferElement.cs 2017-08-29 09:26:29 -04:00
alyosha-tas a0995d3381 Delete Bios7800.cs 2017-08-29 09:26:05 -04:00
alyosha-tas 45df42e329 Delete AddressSpace.cs 2017-08-29 09:25:44 -04:00
alyosha-tas 84ff8f59f6 Delete AssemblyInfo.cs 2017-08-29 09:25:18 -04:00
alyosha-tas 7300c7b261 Delete GameProgramLibrary.cs 2017-08-29 09:24:52 -04:00
alyosha-tas ceaeb49b1d Delete GameProgram.cs 2017-08-29 09:24:32 -04:00
alyosha-tas 2dfe837c91 Delete EMU7800.sln 2017-08-29 09:24:10 -04:00
alyosha-tas 568861ff17 Delete EMU7800.csproj 2017-08-29 09:24:00 -04:00
alyosha-tas c12b1403de Delete Class1.cs 2017-08-29 09:23:52 -04:00
alyosha-tas 8dab8dc368 Add files via upload 2017-08-29 09:20:56 -04:00
alyosha-tas f7a016adaa Create ReadMe.txt 2017-08-29 09:20:09 -04:00
alyosha-tas 6237a284fa Add files via upload 2017-08-29 09:18:28 -04:00
alyosha-tas 6f73e1de1f Create ReadMe.txt 2017-08-29 09:16:24 -04:00
alyosha-tas 56d06b3357 LR35902 CPU commit 2017-08-29 09:13:56 -04:00
alyosha-tas 8ff899b731 Create ReadMe.txt 2017-08-29 09:12:31 -04:00
alyosha-tas 3961292294 NESHawk: more efficient sprite check
Gives a ~5% speed boost by not checking every sprite all the time.
2017-08-27 18:17:10 -04:00
alyosha-tas 0e37c12c4f Update RomLoader.cs
Thanks zeromus I forgot about that >__>
2017-08-27 14:08:29 -04:00
alyosha-tas a83474d255 A7800Hawk: Fix exception 2017-08-27 09:55:12 -04:00
alyosha-tas 4b520f2a8b A7800Hawk: Pokey Sound
now sounds correct
2017-08-27 09:22:41 -04:00
alyosha-tas a6d036e13c A7800Hawk: Pokey bug fixes 2017-08-26 20:58:08 -04:00
alyosha-tas 2c42448e0d A7800Hawk: Pokey initial commit 2017-08-26 12:46:59 -04:00
alyosha-tas 98a63ad823 A7800Hawk mapper: add pokey support 2017-08-26 12:45:38 -04:00
alyosha-tas f6f55c09de A7800Hawk: refactor sound for pokey 2017-08-25 11:28:19 -04:00
alyosha-tas 5b1c6d2862 A7800Hawk Refactor sound for pokey 2017-08-25 11:27:18 -04:00
alyosha-tas cf1b82ab73 Update BizHawk.Emulation.Cores.csproj 2017-08-25 11:26:26 -04:00
alyosha-tas 73d505cd71 Delete Tia.ISoundProvider.cs 2017-08-25 11:25:39 -04:00
alyosha-tas a907bb7f01 A7800Hawk: update mapper for pokey
Needed for Ball Blazer
2017-08-25 11:04:50 -04:00
alyosha-tas cfb2bc8ed4 remove A78 core picker from main form 2017-08-25 10:40:01 -04:00
alyosha-tas b957e3726c Update A7800Hawk Mapper 2017-08-25 10:25:38 -04:00
alyosha-tas 513b26f407 Update BizHawk.Emulation.Cores.csproj 2017-08-25 10:22:26 -04:00
alyosha-tas 13788253d8 A7800Hawk: Start Pokey emulation 2017-08-25 10:21:10 -04:00
alyosha-tas d5dd78bbdc Update RomLoader.cs 2017-08-25 10:02:43 -04:00
alyosha-tas cf0ea5eded Update MainForm to remove EMU7800 2017-08-25 09:47:17 -04:00
alyosha-tas c35abb61ee Remove EMU7800 from core extensions 2017-08-25 09:44:48 -04:00
alyosha-tas 1e30ae0242 Update moives to remove EMU7800 2017-08-25 09:43:56 -04:00
alyosha-tas ebc7958a68 Update Movies to remove EMU7800 2017-08-25 09:42:39 -04:00
alyosha-tas a49a4b2bc5 Config: Remove EMU7800 2017-08-25 09:41:24 -04:00
alyosha-tas b5b2e442c8 Schema: Remove EMU7800 2017-08-25 09:39:40 -04:00
alyosha-tas 434d88f613 ROM Loader remove EMU7800 2017-08-25 09:37:22 -04:00
alyosha-tas fc72a59c8b Update Resource Designer: remove EMU7800 2017-08-25 09:35:05 -04:00
nattthebear d990226a26 human build bot has completed! 2017-08-24 21:10:32 -04:00
zeromus 1250b72bce tidy autoflushing stuff 2017-08-23 10:32:17 -04:00
zeromus a7cbdd7dab Merge pull request #964 from shanehoman/flushsaveram
Timed SaveRAM flush to disk
2017-08-23 10:21:49 -04:00
zeromus b868c07a10 blind commit: add SMP hooks to bsnes to test hook scoping system (need to build a waterbox to proceed) 2017-08-23 10:08:43 -04:00
adelikat cdc934792e Merge branch 'saturnus-supertempo' 2017-08-22 17:41:47 -05:00
zeromus fb697840d0 dont blow up when a core reporting 0x0 virtualsize is auto-loaded. not the most graceful solution, but it works 2017-08-22 18:34:45 -04:00
nattthebear c001a1add5 saturnus - Port fix from Mednafen Team to fix super tempo 2017-08-20 20:42:07 -04:00
shanehoman 85575eae82 Standardize as AutoSaveRAM
- Rename files
- Add path to PathManager
- Alter config UI
Set default settings
- ASR disabled
- 5m preselected
Display OSD messages when ASR enabled
- SaveRAM is older than ASR
- SaveRAM doesn't exist but ASR does
2017-08-19 23:14:08 -07:00
shanehoman bdb197ac23 Rewrite FlushSaveRAM to write the newest sram to disk first, then move older data.
Moved autosave timer sets to save/load sram methods
Manual saves won't reset the autosave timer
Remove excess ticks when lowering the autosave timer
2017-08-18 22:42:28 -07:00
shanehoman 89059673f0 Configure autosave in Config -> Customize... -> Advanced under the SaveRAM backup option
reduced options to 5s for HUDs or other RAM watchers or 5m, typical backup save timing in visual studio and office.
Added option for custom autosave interval
Split Autosave enable/disable and time settings
Fixed hotkey display for Flush SaveRAM (menu was reading the wrong key in HotkeyBindings)
2017-08-18 21:02:51 -07:00
shanehoman fce06a7b5b don't overwrite the orderly shutdown SaveRAM files, keep a separate autosave channel 2017-08-18 17:15:48 -07:00
shanehoman acd194128e automatically save saveram every 1/5/15/30/60/300s
fun fact: a 1 frame flush timer is workable on a RAM disk
2017-08-18 15:36:26 -07:00
alyosha-tas 097d20adf2 Update MainForm.Events.cs
Let overscan be available to SG1000 as well
2017-08-15 21:23:30 -04:00
alyosha-tas ffb8069fe5 Update gambatte dll 2017-08-15 19:49:25 -04:00
alyosha-tas fbbaa2bc59 Gambatte: Always update half carry flag 2017-08-15 19:48:25 -04:00
nattthebear 36a84bd0dd Fix savestate hash match issue with Saturnus 2017-08-13 17:21:00 -04:00
nattthebear 77a535a7d8 Implement ICycleTiming on neshawk 2017-08-11 19:59:10 -04:00
nattthebear 5e3cdba869 Finally dump some old movie 1.0 cruft 2017-08-11 19:45:45 -04:00
nattthebear 5b97e5c7f6 Add ICycleTiming interface plus one implementation so I can feel like I did something 2017-08-11 19:42:53 -04:00
nattthebear d7032330f1 Remove console messages on swappable activate/deactivate, debugging cruft 2017-08-08 19:10:07 -04:00
Isotarge ffe051ab26 N64: Fix minAnalogX and minAnalogY values
D and L boolean inputs for the analog stick were one unit short of full
range
2017-08-09 01:23:44 +09:30
alyosha-tas 171022529d NES: Fix mapper 36
fixes #953
2017-08-06 10:12:04 -04:00
adelikat cb67251858 update release info 2017-08-05 13:55:18 -05:00
adelikat def444cc36 Merge branch 'master' into release 2017-08-05 13:51:56 -05:00
adelikat 3f8aa0e018 Lua - implement tastudio.getbranches() and tastudio.getbranchinput(), fixes #843 2017-08-05 11:04:00 -05:00
zeromus 34d3073346 fix libretro loading.. probably broken since we went 64bits, believe it or not 2017-08-05 00:59:17 -05:00
adelikat b5bb68fec5 Atari 7800 - when GameInfo options contains Pokey=true, use Emu7800 instead of A7800Hawk, regardless of core setting 2017-08-04 22:46:33 -05:00
adelikat 9819b92a42 expose Atari7800Hawk in release builds 2017-08-04 22:02:38 -05:00
adelikat 10b8ca80b9 Atari7800Hawk - implement IBoardInfo 2017-08-04 18:58:53 -05:00
adelikat cd5f6e66e1 Atari 7800 - sort out system id stuff 2017-08-04 17:17:14 -05:00
adelikat 49fc7223e6 Atari7800Hawk, wire up the disassembler, default to this core instead of emu7800 2017-08-04 15:57:26 -05:00
alyosha-tas 2ff7ae06ea Z80: Fix interrupts again
fixes #951
also made sure previous tricky IRQ games still work
2017-08-04 15:03:22 -04:00
adelikat 56859e9581 MemoryCallbacks - Change "domain" to "scope" 2017-08-03 20:03:40 -05:00
adelikat cd289c474e memorycallbacks with domains - Phase 2 - change api to Call methods and refactor accordingly, everything should behave as it was before the refactor at this point. No cores have yet to be implemented with domains other than the default bus they already had 2017-08-03 18:08:07 -05:00
zeromus cca2adfbe1 include appconfigs in dist package 2017-08-03 17:08:13 -05:00
alyosha-tas ad85143c8c NESHawk: Rambo-1 IRQ work
-maintains compatibility with skull and crossbones and klax.
-Fixes hard Drivin'
-More work to do here
2017-08-02 21:58:54 -04:00
alyosha-tas 497513f93a NESHawk: PPU: Fix OAMADDR
-Implements $2004 write glitch
-Correctly implements OAMADDR initialization
2017-08-02 11:24:49 -04:00
adelikat 04ce66c397 phase 1 of changing memory callback api to specify domain - require cores to specify which domains are available and have the domain passed in when creating callbacks. Still todo - cores need to pass in domain name on CallReads/Writes/Executes methods 2017-08-01 22:05:17 -05:00
alyosha-tas b8d1a19d7e Update BizHawk.Emulation.Cores.csproj 2017-08-01 12:07:59 -04:00
alyosha-tas fac8761194 Delete Mapper035.cs
-duplicate of mapper 90
2017-08-01 12:07:18 -04:00
alyosha-tas b8f502f670 NES Mappers: Make mapper 90 cover mapper 35
Mapper 35 is identical in function, fixes Warioland 2 (unl)
2017-08-01 12:06:33 -04:00
alyosha-tas 1eca64d17b Update NES DB: Fix Don Doko Don 2 2017-08-01 10:31:19 -04:00
alyosha-tas 2d648173a6 Update A7800Hawk.IEmulator.cs 2017-07-31 19:58:40 -04:00
alyosha-tas e6a0b20219 Update Readme.txt 2017-07-31 19:57:31 -04:00
alyosha-tas 0d0e8540d4 Update BizHawk.Client.EmuHawk.csproj 2017-07-31 12:41:45 -04:00
alyosha-tas ec8cfa9f86 Update BizHawk.Client.EmuHawk.csproj 2017-07-31 12:21:00 -04:00
alyosha-tas c972a74132 A7800Hawk: Filters and video provider
-Moved IVideoProvider out of Maria to make eventual A2600 mode support a bit easier.
-Add filter option so Tower Toppler looks correct, not implemeneted yet though
2017-07-31 12:14:42 -04:00
alyosha-tas edfc2ca576 A7800Hawk: move video provider out of maria 2017-07-31 12:13:03 -04:00
alyosha-tas 019b5ae2ce A7800Hawk: Filter Menu 2017-07-31 12:12:06 -04:00
alyosha-tas 795619e3c3 A7800Hawk: Add filter option
-Will be needed for Tower Toppler and Jinks
2017-07-31 12:10:08 -04:00
alyosha-tas fa55166059 Update BizHawk.Client.EmuHawk.csproj 2017-07-31 12:08:52 -04:00
alyosha-tas 88b6813528 A7800Hawk: Fix controller regression 2017-07-31 10:23:33 -04:00
alyosha-tas 981d960f1c A7800Hawk: clean up lightgun 2017-07-31 10:13:57 -04:00
alyosha-tas ec62e0b4a0 A7800Hawk: clean up light gun 2017-07-31 10:13:23 -04:00
adelikat ed0d65498b Add a bunch of genesis roms to the game db 2017-07-30 18:16:53 -05:00
alyosha-tas 803871daab z80: Fix bit test flags
-passes zexall bit test
-still some spurious cases to implement, but how to test them?
2017-07-30 17:35:48 -04:00
adelikat 62c2e0fc6a TAStudio - remove ability to edit the platform id when editing the header 2017-07-30 14:21:40 -05:00
feos 9af0989b40 m64p core: put newer deps back into win32 target 2017-07-30 16:51:43 +03:00
feos 14d19a76d7 m64p: add DBG to x64 target, stop having merge info in vcproj, rebuild 2017-07-30 13:27:52 +03:00
alyosha-tas 43185eb4c5 EMU7800: update controls
for testing between cores
2017-07-29 20:23:42 -04:00
alyosha-tas 61b300b65a Update EMU7800 schema
Facilitate testing between cores
2017-07-29 20:22:44 -04:00
alyosha-tas d66b7f61b8 A7800Hawk: small cleanup 2017-07-29 19:36:36 -04:00
alyosha-tas 84c9f83d28 A7800Hawk: small cleanup 2017-07-29 19:35:45 -04:00
alyosha-tas 1173e887ea A7800Hawk: Update to correct mnemonics 2017-07-29 19:23:08 -04:00
alyosha-tas d0c658b380 Update A7800Hawk schema with BW 2017-07-29 19:22:11 -04:00
alyosha-tas 3889955eab Update Bk2MnemonicConstants.cs
Add BW (black/white <-> color switch) to mnemonics
2017-07-29 19:20:32 -04:00
alyosha-tas 2ddfab1793 Update A7800Hawk.IMemoryDomains.cs 2017-07-29 18:06:25 -04:00
alyosha-tas bba8cc3202 A7800Hawk: FINALLY fix Scrapyard Dog
-Also fix a typo in memory domains
2017-07-29 18:05:23 -04:00
zeromus d96f26452c fix d3d dispmethod crash
probably fixes #947
2017-07-29 14:58:56 -05:00
alyosha-tas c38d598739 A7800Hawk: Light Gun
-Use Barnyard Blaster algorithm to guess at actual behaviour.
2017-07-29 15:49:06 -04:00
alyosha-tas 952a626cf0 A7800 Hawk: more light gun work 2017-07-29 15:18:45 -04:00
zeromus 6ace6898b9 add some more PSX bios (finish fixing #941) 2017-07-29 14:18:09 -05:00
zeromus 89e87bc4e3 fix crash in axis constraints application when not connecting any n64 controllers (fixes #946) 2017-07-29 13:57:50 -05:00
nattthebear 66955ca863 Add CARTROM domain to Snes9x core. Closes #943 2017-07-29 09:14:27 -04:00
nattthebear e9c04b1951 adjust some documentation written for the former Yabause core 2017-07-29 08:33:38 -04:00
nattthebear 7996f5dfbc snes9x: Don't set virtual size of 0 on frame 0 2017-07-29 08:24:03 -04:00
adelikat 89b57288e7 Cheat Code Converter - when creating NES game genie codes with a compare value, set comparison type to Equals, instead of relying on "None" to default to Equals 2017-07-28 18:13:32 -05:00
zeromus 29191a5468 fix *n syntax in kopilua. fixes #940.
If it doesn't work, use \r\n (I can't remember for sure now, but I think '\n' will work).
2017-07-27 23:54:34 -05:00
zeromus bd806d60d9 psx - add ps_22d as option for (J) region bios 2017-07-27 23:24:31 -05:00
zeromus c078375987 update PeNet to throw PeNetException instead of Exception 2017-07-27 22:51:48 -05:00
zeromus 94e2fe2a10 fix displaymanager crashes when rebooting snes9x (and maybe others) while paused (due to unset virtualsize). 2017-07-27 22:42:13 -05:00
zeromus b5db09dea9 add a PSX bios to the (E) list (addresses #941) 2017-07-26 22:44:06 -05:00
alyosha-tas efcb73615b A7800Hawk: Add Light Gun Support
-Needs testing
2017-07-26 09:28:14 -04:00
alyosha-tas 6bc1befc5b A7800Hawk: Add Light Gun Support
-Needs testing
2017-07-26 09:26:37 -04:00
alyosha-tas 773a70c125 A2600: Fix bitmap demo atext.bin
Gotta stay on par with Stella!
2017-07-26 09:17:08 -04:00
nattthebear 2329ebbe62 Sameboy SGB: allow hiding beautiful borders. Closes #938 2017-07-25 17:16:12 -04:00
nattthebear 06a369dbe2 PeRunner: Ignore writev iovecs with base == NULL. This seems to be what linux does and musl expects on fflush(). Fixes some saveram related stuff in sameboy 2017-07-25 17:02:59 -04:00
alyosha-tas 04b605005b A7800Hawk: Maria update DMA cycles
-The current limit is One on One Basketball, which uses 400 DMA cycles
2017-07-25 11:51:04 -04:00
alyosha-tas 36585213c8 A7800Hawk: Update timing 2017-07-25 11:30:53 -04:00
alyosha-tas e4d66c52f5 A7800Hawk: Maria Updates
-Improve performance
-Fix some DMA timing issues
2017-07-25 11:01:55 -04:00
alyosha-tas 36c3d69d77 Update BizHawk.Emulation.Cores.csproj 2017-07-24 19:40:04 -04:00
alyosha-tas 29ae26f235 A7800Hawk: Add Fractalus mapper 2017-07-24 19:38:57 -04:00
alyosha-tas a7a6fc6827 Update A7800Hawk.cs
Oops spelling
2017-07-24 19:38:21 -04:00
alyosha-tas fb10cc4bcd A7800Hawk: Add kangaroo mode and mappers 2017-07-24 19:36:54 -04:00
alyosha-tas 2277c58122 A7800 DB: Add some unique carts 2017-07-24 19:35:48 -04:00
alyosha-tas 42b379b486 A7800Hawk: Controller convention fixes
-Revert setting system ID to A78 (it broke controller selection)
-Fix some button names to match nemonics
-Fix controller names to match images (still some missing though)
2017-07-24 17:41:22 -04:00
alyosha-tas d1a78f4fcb Update Atari2600ControllerDeck.cs
- Repair controller image appearing in config -> controllers
2017-07-24 17:38:46 -04:00
alyosha-tas ca42aac5ff A7800Hawk: Rewrite Maria Rendering
- now has pixel accurate rendering
- much simpler code
2017-07-24 15:21:05 -04:00
alyosha-tas e983fc8419 Update gamedb_a7800.txt 2017-07-24 15:16:30 -04:00
zeromus 2063122d4c Update README.md
make readme.md be "cmark compatible", whatever that means (see #937)
2017-07-24 13:55:50 -05:00
adelikat bb1afe059e add the .32x extension to various lists of extensions that should probably not exists in the first place, fixes file chooser from opening up on unknown .32x roms, and auto-picking a .32x rom if it is the only file in an archive 2017-07-24 12:28:49 -05:00
zeromus f4a6e8711c add MIT license to repository, since that's what it's always been, but add a long section describing what a mishmash this repository is -- fair warning. Fixes #933 2017-07-24 12:05:42 -05:00
adelikat 51eed83cce lua - tastudio.getselection() - make key of the lua table an index 2017-07-24 08:44:15 -05:00
adelikat 5843ac2e79 Atari7800Hawk - make system id the same as Emu7800 2017-07-24 08:40:27 -05:00
nattthebear 4a2618470e saturnus: three dee virtual pad fix axis 2017-07-23 19:40:20 -04:00
zeromus 3a4b9ed798 disc ID: handle data tracks with audio sectors (bad rips, in other words). should fix #928, but since the user self-made his own bad dump, I can't verify it 2017-07-23 11:30:49 -05:00
adelikat 7bdbeb7815 Merge branch 'master' into release 2017-07-23 11:10:41 -05:00
adelikat f050718a87 Set SameBoy to released 2017-07-23 11:10:17 -05:00
adelikat 76682db136 update version info 2017-07-23 10:52:16 -05:00
adelikat 75689760c5 Merge branch 'master' into release 2017-07-23 10:21:52 -05:00
zeromus 5d22dfac0e fix custom listview win32 structs for 64bits (not 100% sure I did this correctly) 2017-07-23 10:16:55 -05:00
zeromus a0c84f4669 fix luainterface 2017-07-23 10:00:46 -05:00
alyosha-tas a264fa64c2 Intellivision: small STIC clean up 2017-07-23 10:55:17 -04:00
alyosha-tas 471f931b7c ROM Loading: keep header if game not in DB (A78)
-Only for A78 games for now, so the core can parse the header if it needs too
-Probably should do it for other systems as well but I don't know how it will impact them.
2017-07-23 10:26:08 -04:00
alyosha-tas edddf8cec0 A7800Hawk: clearer loading messages 2017-07-23 10:23:12 -04:00
alyosha-tas e872fbb7da A7800Hawk: Fix memory domains 2017-07-23 10:07:01 -04:00
zeromus d5770fb8a3 re-apply "keepalive" GC fixes to luainterface mode in emuhawk; maybe it will actually work now and not result in crashes. at least we should check it. 2017-07-22 23:41:30 -05:00
zeromus abcf627e24 updated lua dlls with fixes (maybe) to GC bug 2017-07-22 23:41:30 -05:00
zeromus 759a4536a4 fix (maybe) the bad GC bug in luainterface? 2017-07-22 23:41:30 -05:00
alyosha-tas 133d92cb6e Atari7800Hawk: Fix Controller detection 2017-07-22 21:33:21 -04:00
alyosha-tas b696aaea4c A7800Hawk: Fix controllers 2017-07-22 21:31:58 -04:00
adelikat 8ea7993e04 Multidisk bundler - Remove GEN as an option for now 2017-07-22 16:39:21 -05:00
nattthebear 3062b18467 gpgx: disable prev and next disk for now 2017-07-22 17:37:40 -04:00
nattthebear f6cc4c1749 stuff 2017-07-22 17:07:27 -04:00
alyosha-tas 1033995ed6 Update Maria.cs
-Fixes Xenophobe
2017-07-22 14:49:08 -04:00
nattthebear da88560815 sameboy: Fix some sgb audio issues in donkey kongs. Two problems: One, due to the HLE startup, DK starts writing audio data too early and sticks the SPC in a bad state. Two, the full transfer format for SOU_TRN doesn't seem to be documented anywhere; it's acutally a 0-terminated list of regions to upload; not just a single region. 2017-07-22 14:22:46 -04:00
alyosha-tas 39254cb0d2 A7800Hawk: Fix sound 2017-07-22 13:37:40 -04:00
alyosha-tas 0d6d8285a5 Update BizHawk.Emulation.Cores.csproj 2017-07-22 12:29:19 -04:00
alyosha-tas 1dc60e9274 Atari7800Hawk: More mappers and bug fixes
-Adds support for F18 and rampage
-Adds support for games needing cart RAM
-Fixes various bugs
2017-07-22 12:28:23 -04:00
alyosha-tas f6b8d2b8e3 A7800Hawk: More mappers
Also Cart RAM and Pokey Detection
2017-07-22 12:26:37 -04:00
alyosha-tas 0edebe167e A7800Hawk: Update game DB 2017-07-22 12:24:56 -04:00
nattthebear 569730a61b picodrive: region select. closes #929 2017-07-22 10:55:17 -04:00
zeromus 3ca8f9da9f add 64bit openal dlls 2017-07-21 18:48:33 -05:00
alyosha-tas 4b38d13ef4 Update RomLoader.cs 2017-07-21 19:43:46 -04:00
nattthebear abf60e57b8 forgot to commit this 2017-07-21 19:35:00 -04:00
alyosha-tas 2ae9de98ef A7800Hawk: Updates and Bug Fixes
-Fix save states
-Fix sync settings
-Controller Support / improvements
2017-07-21 19:32:50 -04:00
alyosha-tas d8b13d21b8 Update RomLoader.cs 2017-07-21 19:30:00 -04:00
alyosha-tas 7a0295e48f Update A7800 Hawk Schema 2017-07-21 19:28:44 -04:00
nattthebear fcfe2b23c9 Pizza Boy makes some interesting attempts, but doesn't stack up against the serious GB cores 2017-07-21 18:23:14 -04:00
nattthebear 38ff289990 Sameboy: Add copyright notices from original repo back. They were inadvertently left out because I copied a subdirectory and not the root directory 2017-07-21 16:44:12 -04:00
alyosha-tas 676a7d0721 Atari7800Hawk Game DB Update 2017-07-21 16:36:54 -04:00
alyosha-tas bd440f4830 Update BizHawk.Emulation.Cores.csproj 2017-07-21 16:36:17 -04:00
alyosha-tas d44971a021 Atari7800Hawk: More Mappers 2017-07-21 16:34:27 -04:00
alyosha-tas f5a5e9bd17 Atari7800Hawk: More mappers 2017-07-21 16:33:45 -04:00
adelikat 140f603607 rename menu item from Pizza Boy to SameBoy, remove some commented code 2017-07-21 08:34:44 -05:00
alyosha-tas 182cf4228b Update A7800 DB 2017-07-20 19:42:31 -04:00
alyosha-tas 19a9275a9e Atari7800Hawk: Fix some Maria bugs 2017-07-20 18:50:47 -04:00
nattthebear d640c16cff sameboi: fix lag flag and input callback on non-sgb mode 2017-07-20 18:39:51 -04:00
zeromus fd63acd644 ogl display method: dont crash when disposing if user's system can't compile shaders. also print some diagnostics for cgc failures to console 2017-07-20 17:18:18 -05:00
nattthebear 7880cbabb3 I thought there was more to this vb settings thing. I guess not. 2017-07-20 17:22:40 -04:00
zeromus c07f9e7ee6 kopilua: fix io.open with mode "a" 2017-07-20 15:02:21 -05:00
alyosha-tas 585f9f412b A7800Hawk: Start support for ROM Headers 2017-07-20 15:01:47 -04:00
alyosha-tas 0b7c10594c Update MapperSG.cs 2017-07-20 15:01:09 -04:00
alyosha-tas ab814fb3e4 Update Maria.cs 2017-07-20 12:23:24 -04:00
alyosha-tas 9038a4b8a5 A7800Hawk: Fix Holey DMA
Fixes Xenophobe
2017-07-20 12:22:15 -04:00
alyosha-tas c01850df2b A7800Hawk: Implement remaining display modes 2017-07-20 10:41:15 -04:00
adelikat db6858f2fe Merge branch 'pceperipherals' 2017-07-20 08:11:51 -05:00
nattthebear a6fb55fa7c gpgx: decrease RAM usage slightly 2017-07-19 21:39:00 -04:00
nattthebear 223902a2f8 tweak ECL_INVISIBLE a bit. Internal crap,. 2017-07-19 21:10:00 -04:00
alyosha-tas 3ff8eabdf2 A7800Hawk: Fix NTSC Palette 2017-07-19 20:53:41 -04:00
nattthebear e828868904 Merge branch 'sameboy' 2017-07-19 20:45:33 -04:00
nattthebear 491dc9c1fb sameboy: wbx file 2017-07-19 20:43:44 -04:00
nattthebear 0d6bdc200b sameboy: a bit of savestate optimization 2017-07-19 20:38:19 -04:00
nattthebear a640c53e52 Sameboy: RTC 2017-07-19 20:18:13 -04:00
nattthebear 57ca86710b sameboy: SAVERAMS 2017-07-19 19:49:23 -04:00
alyosha-tas 6e0ad90962 Update BizHawk.Emulation.Cores.csproj 2017-07-19 19:21:18 -04:00
alyosha-tas a05e7f2824 A7800Hawk: Start Super Game mappers 2017-07-19 19:19:37 -04:00
alyosha-tas 16467c3cb0 A7800Hawk: Start Supergame Mappers 2017-07-19 19:19:00 -04:00
nattthebear cf8013af4a sameboy: Add more features for the merciless slave driver 2017-07-19 18:48:11 -04:00
zeromus ee7b0bf20c i dont think the xinput joystick->direction mappings sensitivity was right. made them less sensitive. 2017-07-19 16:50:05 -05:00
nattthebear 7d2ee60ade sameboy: lag flag / inputcallback 2017-07-19 17:08:48 -04:00
alyosha-tas 9e76c8aa2f Update A7800 DB 2017-07-19 17:08:10 -04:00
alyosha-tas 436cae0df6 A7800Hawk: Fix PAL 2017-07-19 15:21:22 -04:00
alyosha-tas 8796269d6b A7800Hawk: more lag detection 2017-07-19 15:03:50 -04:00
alyosha-tas 4b79525e8d Atari780Hawk: Bug Fixes 2017-07-19 14:55:50 -04:00
alyosha-tas 052c35cd35 A7800Hawk: Fix Lag detection 2017-07-19 14:54:47 -04:00
alyosha-tas ab817f143d A7800Hawk: Maria timing Fix
Fixes Desert Falcon and Kung Fu Master
2017-07-19 09:35:58 -04:00
alyosha-tas 22178caea7 A7800Hawk: More Maria updates
-Fixes Donkey Kong and DK Jr
2017-07-18 21:17:27 -04:00
nattthebear 09672a6bf9 SGB: fix bugs in attr chr. Fixes some graphical glitches in Daffy Duck Marvin Missions 2017-07-18 20:45:06 -04:00
alyosha-tas 1f856b468f A7800Hawk: Maria Updates
Add DMA auto shutdown - Fixes Choplifter
Properly emulate read mode - Fixes top line of Centipede.
2017-07-18 20:00:16 -04:00
nattthebear bfd7337a32 sameboy: SGB support. Mostly accomplished through the power of copy+paste, since we plan on dropping pizza boy 2017-07-18 19:57:53 -04:00
nattthebear 1f89158179 sameboy: input 2017-07-18 18:19:51 -04:00
nattthebear 721a6c0470 sameboy: brip bruffer 2017-07-18 17:46:21 -04:00
nattthebear f7bb894753 sameboy: it's alive! 2017-07-18 16:48:49 -04:00
nattthebear 34e68c589f Sameboy progress 2017-07-18 16:48:49 -04:00
nattthebear 87f7183a27 sameboy: initial commit 2017-07-18 16:48:49 -04:00
adelikat 3109bdcc6a PCE - cleanup 2017-07-18 11:20:02 -05:00
adelikat eaaf424a2c PCE - refactor virtual pad logic to use the controller deck 2017-07-18 11:16:42 -05:00
adelikat 46e4ae05d6 PCE - rip out old controller config logic 2017-07-18 11:05:11 -05:00
adelikat 9fc8b8700d PCE - add ui for controller config 2017-07-18 11:01:50 -05:00
adelikat d99d2dd3dc PCE - start support for peripheral support - implement a controller deck and wire it up to the controller logic, with the same options as previously, 5 ports, with None and Gamepad as options. No ui for the new system. Old system code and ui still left in 2017-07-18 10:37:17 -05:00
adelikat f60a4a07e7 UI for multi-disc Sega-CD support. Note that the ui will technically allow you to bundle a mix of dics and carts, but tom loading for now will only take multiple discs. 2017-07-17 20:36:04 -05:00
nattthebear c31ebe176d gpgx: multidisk? dunno 2017-07-17 18:49:16 -04:00
nattthebear e61f7d7876 mgba to 0.6 release 2017-07-17 17:40:27 -04:00
zeromus 3ef2196a28 fix ghost window stealing input focus when exiting dialogs opened by hotkeys, or something like that 2017-07-17 13:00:08 -05:00
adelikat f424a22033 Tastudio - fix recent menu - fixes #920 2017-07-17 11:20:59 -05:00
adelikat 63b644d30c Merge pull request #925 from Ashafix/updated_argparse
Added missing commandline arguments
2017-07-17 10:44:32 -05:00
zeromus 720cc0d9bb fix path manager support of fully rooted paths (e.g. c:\roms) 2017-07-17 09:47:25 -05:00
Ashafix d42962a1b4 removed unnecessary code duplication 2017-07-17 08:23:58 +02:00
Ashafix a71255b4b2 updated arg parser 2017-07-17 01:28:22 +02:00
Alexander a5ea733269 Add the Ultraman Cartridge Hash/Checksum. 2017-07-16 09:16:07 -07:00
alyosha-tas c26979c0b1 Update A7800Hawk.cs 2017-07-16 12:02:21 -04:00
alyosha-tas 7914532ff0 A7800Hawk: Update Controllers
Now supports 2 button controller
Also fixes a few other small bugs
2017-07-16 11:56:02 -04:00
alyosha-tas a27b4aefc1 A7800Hawk: Update controllers
And fix bugs
2017-07-16 11:54:28 -04:00
alyosha-tas 46ea0cfd32 A7800: Update gameDB 2017-07-16 11:53:06 -04:00
nattthebear 0389b346f3 pcfx: fuck you mode 2017-07-16 10:01:31 -04:00
adelikat 6fdfbe7538 Merge branch 'master' into release 2017-07-16 08:48:48 -05:00
zeromus 01efd6bda0 stop referencing a strongly named kopilua 2017-07-16 08:18:43 -05:00
nattthebear 66940747b0 Cleanup 2017-07-16 08:40:06 -04:00
nattthebear abc894da93 meh 2017-07-16 07:38:52 -04:00
adelikat 848fc694a0 Update version info 2017-07-15 22:40:46 -05:00
adelikat 090b7d924a Merge branch 'master' into release 2017-07-15 22:38:31 -05:00
zeromus 60b9825f64 fix race condition in test of active window from input thread (which was a bad idea in the first place) which can throw null references in unlucky cases (fixes #917) 2017-07-15 22:09:50 -05:00
adelikat 8e19b47599 Merge branch 'master' into release 2017-07-15 21:43:52 -05:00
zeromus 4704f58ead add lua reboot notice 2017-07-15 16:41:01 -05:00
zeromus afda5dbb62 set a value in the switchable lua library to indicate whether it's NLua or LuaInterface; effectively undo 8bc067cbbe for LuaInterface 2017-07-15 16:36:18 -05:00
zeromus dce98db811 fix saturn PixelPro resolution management mode to reformat framebuffer to requirements, so it works like it's supposed to 2017-07-15 02:53:33 -05:00
adelikat af653725bb PCFX - multi-disc support 2017-07-14 19:46:05 -05:00
adelikat b67c104de7 Saturn - multi-disc support 2017-07-14 19:40:27 -05:00
nattthebear d5c07447d2 BSnes: Ignore the "crop SGB frame" setting if SGB is not active. 2017-07-14 18:55:21 -04:00
adelikat c70dce5b85 default controls for pizza boy 2017-07-14 14:52:58 -05:00
adelikat 3f16f8bd79 pc-fx - virtualpads 2017-07-14 14:21:50 -05:00
adelikat 8399cbc7c6 PC-FX - default controls 2017-07-14 13:52:47 -05:00
zeromus a8d10525b6 make a comment on prior commit for good recordkeeping purposes 2017-07-14 13:48:33 -05:00
zeromus ae4fff522d epic hacks to fix the lua selection on packaged builds (which significantly, contain bizhawk related dlls in the dll directory) 2017-07-14 13:45:57 -05:00
zeromus d271fe6542 Merge pull request #885 from Trivial-Man/master
Create LuaPictureBox class and implement it
2017-07-14 12:21:54 -05:00
zeromus 11fc26ec3b Merge pull request #918 from Ashafix/CLI
added command line arguments parser
2017-07-14 12:21:40 -05:00
Ashafix e2e278eea9 added command line arguments parser 2017-07-14 13:04:43 +02:00
zeromus af7a2d8b4a forgot to commit 2017-07-14 01:02:15 -05:00
zeromus 60ebaeaaf5 make nlua/luainterface selectable. see program.cs for details on the sensitive DLL layout and references 2017-07-14 00:57:01 -05:00
zeromus 56fbc65a91 move luainterface exceptions to tis own namespace like in nlua 2017-07-14 00:51:28 -05:00
zeromus 2dba613b0c change LuaInterface namespace to NLua. It's a lie, but we need it to make them readily switchable 2017-07-13 23:54:56 -05:00
Trivial-Man 8e0926449f Fix LuaPictureBox
Got left out when fixing other files. Sorry.
2017-07-13 22:48:37 -06:00
zeromus 256f4d43e7 Revert "remove LuaInterface. shouldn't need it, if things go well."
This reverts commit 4de4492f7a.

re-adding because we're going to make the lua core selectable
2017-07-13 23:44:11 -05:00
Trivial-Man 6cb3921864 Fix BizHawk.Client.EmuHawk.csproj
Missed some changed filenames
2017-07-13 22:40:51 -06:00
Trivial-Man 7b8818c35b Resolve issues with Master
- Uses NLua instead of LuaInterface
- Uses LuaMethod instead of LuaMethodAttribute
- All LuaCanvas Lua calls now begin with lowercase

- Also allows LuaPictureBoxes added through forms to be compatible with addClick
2017-07-13 22:32:27 -06:00
Trivial-Man 949cece7c5 Add files via upload 2017-07-13 22:30:35 -06:00
adelikat 9c791924b2 PC-FX - controller button orders 2017-07-13 21:23:16 -05:00
adelikat 9efa5a01b0 Option to pick the lua core in the customize dialog 2017-07-13 21:05:02 -05:00
adelikat 4a33ed219c make pizza boy the default for SGB 2017-07-13 20:49:01 -05:00
adelikat b968dbf81b pizza boy sgb - virtualpad support for the other controllers 2017-07-13 20:45:54 -05:00
zeromus d54fee4d91 Merge branch 'master' into master 2017-07-13 19:17:09 -05:00
nattthebear 05299c618f picodrive: Only honor reset and power buttons on leading edge. Works around bug where resetting every frame broke the emu 2017-07-13 18:06:35 -04:00
adelikat a105f29d04 PC-FX - mnemonics 2017-07-13 16:31:55 -05:00
nattthebear fea9afa216 https://www.youtube.com/watch?v=VYpd-2buQc0 2017-07-13 16:03:10 -04:00
adelikat be8baa9249 remove commented yabooze code 2017-07-13 14:38:02 -05:00
adelikat 9af3a88895 set Saturnus and Tst to released 2017-07-13 14:31:06 -05:00
adelikat 367b243990 Pizza Boy - preliminary SGB virtualpad support 2017-07-13 12:22:58 -05:00
adelikat d701e67e54 picoDrive - default controller assignments 2017-07-13 12:07:50 -05:00
adelikat 6d77f5a3c0 virtual pads for picoDrive 2017-07-13 12:02:08 -05:00
adelikat 1990c4f8c2 disable Genesis menu when picodrive is the GEN core, since it doesn't currently support anything in the menu 2017-07-13 11:56:26 -05:00
adelikat d65368d397 add .the 32x file extension to the Open Rom dialog 2017-07-13 11:53:19 -05:00
nattthebear 2bd7726b9b Fix a memory leak in the loonix waterbox interop code that's never been used before ever 2017-07-12 17:57:29 -04:00
adelikat 9cb44cad03 Fix some filenames from previous renames, and more attribute renames 2017-07-12 14:48:27 -05:00
adelikat 6e06947a33 rename ToolAttributes 2017-07-12 14:44:14 -05:00
adelikat 5d855ef60b more attribute renaming 2017-07-12 14:40:10 -05:00
adelikat c6e0e9fa57 Rename CoreAttributes to CoreAttribute as to not be a bad person 2017-07-12 14:10:55 -05:00
zeromus a0b2a04cd5 fix firmwareconfig categorization FIXMES 2017-07-11 21:13:36 -05:00
zeromus 44d284acd4 tooltips for main firmwares view 2017-07-11 21:05:14 -05:00
zeromus 010c9d262f firmwaresinfo tooltips 2017-07-11 21:02:24 -05:00
zeromus 3c2944d7b0 fix pcfx firmware 2017-07-11 20:55:52 -05:00
zeromus 2fc5a9c9a1 fix firmware scanning for 32x and probably others 2017-07-11 20:05:26 -05:00
nattthebear d305c873bf Gpgx: Backport some changes that were supposed to fix something 2017-07-11 20:52:08 -04:00
nattthebear ab4d81788e TSTHawk: Potentially release ready? 2017-07-11 20:35:01 -04:00
nattthebear 071efa5dac TSTHawk: Change the defaut pixel size for wide mode to 1024, per input from Top Experts 2017-07-11 18:51:01 -04:00
nattthebear a6daf3cfb0 PeWrapper: Don't save a copy of executable images after loading is done. We don't need it anyway (only the base xorstate and the hash). Saves a few meggerbytes of rayums, depending on core 2017-07-11 18:48:56 -04:00
nattthebear 9ab8b50c82 waterbox: Allow special section attributes to put variables directly in sealed or invisible. This can be easier to use than the heaps for adapting some existing code 2017-07-11 18:46:25 -04:00
adelikat 277c25c349 path configs for TST 2017-07-11 17:32:06 -05:00
zeromus 8b905eb68c maybe a crazy idea, lets try optimizing the release build configurations 2017-07-11 17:18:07 -05:00
nattthebear ff58de56a1 TSTHawk: Settings? 2017-07-11 18:12:03 -04:00
adelikat 5978db7036 Lua - forms.setsize() - add a description instead of just TODO 2017-07-11 08:17:49 -05:00
adelikat 875597ec24 remove movie.rerecordcount that has been deprecated for a long time now 2017-07-11 08:01:41 -05:00
adelikat 6074bd94e9 route .32x files to pico drive 2017-07-10 20:54:41 -05:00
zeromus 91741ca65b dunno whats up, here's fresh dll builds 2017-07-10 20:33:02 -05:00
nattthebear b7d743e280 TSTHawk: Lag flag detection and InputCallbacks 2017-07-10 20:35:51 -04:00
zeromus 75f3ef9b4e fix regressions in path management caused by my trying to fix other things. whatever use case involved file:// may be broken now too, but im not sure. 2017-07-10 19:26:36 -05:00
nattthebear c1e3411da3 TSTHawk: Give a correct-ish aspect ratio for interlace mode 2017-07-10 19:28:13 -04:00
nattthebear a1bcb90ee6 TSTHawk: Fix interlaced display so it doesn't crash because crashing is bad 2017-07-10 19:12:44 -04:00
adelikat 597708765a Lua canvas - use LuaMethodAttribute (if available) when registering canvas methods, also fix casing of a few methods for consistency, fixes #908 2017-07-10 14:59:05 -05:00
adelikat 9581ce6a93 rename LuaMethodAttributes to LuaMethodAttribute so as not to be a bad person 2017-07-10 14:02:08 -05:00
zeromus 0f686a0de1 * revert strict string checking behaviour from nlua Revision 10f4d0ce78a2a3cb9b727ac55c8705385f0ded7e (we dont want it, probably)
* do a better job porting old commits from bizhawk (should fix memory leaks, optional arguments)
2017-07-10 12:59:06 -05:00
adelikat 5781746251 Lua - use the proper Log method in some lua libraries 2017-07-10 11:24:32 -05:00
zeromus 2a2f3ea7e2 cleanup of some unused images 2017-07-10 00:48:36 -05:00
zeromus d68126ca82 fix build 2017-07-10 00:02:30 -05:00
zeromus 4de4492f7a remove LuaInterface. shouldn't need it, if things go well.
At this point we lack the luaperks (luasockets etc.) which we previously had; but maybe other people's libraries will work better.
2017-07-09 23:52:42 -05:00
zeromus 3417453b43 use NLua+KopiLua instead of LuaInterface 2017-07-09 23:51:02 -05:00
adelikat fb7e44642a set released to true on some new Pizza Boy, PicoDrive, and Uzem 2017-07-09 16:58:59 -05:00
nattthebear 7d30636398 TSTHawk: Change default height 2017-07-09 16:53:31 -04:00
nattthebear 468c52f5de Gambatte: Settings: Use an enum for ConsoleMode instead of stringly typed. Developers who have been using recent dev builds will need to change "Default" to 0 in config.inneys... 2017-07-09 16:27:32 -04:00
nattthebear 924515c69d Pizza: Fix trying to load a CGB rom in SGB causing the universe to explode 2017-07-09 14:44:56 -04:00
zeromus e1d0ea2bcb fix prereq alert target url (fixes #910) 2017-07-09 13:23:04 -05:00
adelikat af3ab7c208 TraceLogger - Turn off core tracing when closing, TooManager - check for disposed tools before running NewUpdate(), fixes #911 2017-07-09 13:19:09 -05:00
nattthebear a9ba725cb3 TSTHawk: Fix less than ideal video output. Whoops! 2017-07-09 14:16:15 -04:00
nattthebear 110d741cb3 TSTHawk: controller stuff 2017-07-09 13:40:52 -04:00
adelikat 2396ebeb82 use GLobal.Game to determine 32x flag 2017-07-09 12:27:13 -05:00
adelikat 4b2dfa97f8 asdf 2017-07-09 12:08:10 -05:00
zeromus cc33617f74 fix crash in snes virtualpad when mouse is used 2017-07-09 11:40:55 -05:00
nattthebear 2dd10ea951 Update some author meat-a deet-a 2017-07-09 12:18:33 -04:00
nattthebear dd7389f848 PicoDrive: Add core query whether 32X hardware is currently active. Remove code that assumed that the emulator would always activate 32X hardware when _32xPreinit was true, or that it would never activate 32X hardware when _32xPreinit was false. Both assumptions are false. 2017-07-09 12:14:27 -04:00
adelikat a7766fc4ee capture game gear flag in movies 2017-07-09 11:11:33 -05:00
nattthebear d1ff443540 PicoDrive: Add the rest of the games to the DB. Expose IRegionable information and use it to inform FPS rate 2017-07-09 11:59:54 -04:00
adelikat bbe9db2c62 Capture 32x flag in movies 2017-07-09 10:56:18 -05:00
adelikat 6de4888de2 add support for the .32x file extension 2017-07-09 10:23:27 -05:00
adelikat d46e81ed5f Rom loader - support loading the pico core from gamedb, set 32x games to pico and 32x mode 2017-07-09 10:23:26 -05:00
nattthebear 0ee1832d57 Adult Video Games 2017-07-09 11:18:03 -04:00
adelikat f53624f336 tastudio greenzone settings - don't check for if 64 bit process 2017-07-09 09:39:36 -05:00
adelikat 9a5ae16c7d remove the 32bit gpgx, and refactor things to only use the 64 bit version. keep 64bit stuff in a gpgx64 folder to avoid git auto-rename detection shenanigans 2017-07-09 09:21:03 -05:00
adelikat 7156d9c7c8 SNES - allow setting core from gamdb, set a bunch of roms to bsnes that either crash or do not run in snes9x, should fix #906 2017-07-08 21:33:21 -05:00
nattthebear 06e1f701aa Add a more intelligible error message when user error tries to load a bin file into saturn 2017-07-08 18:22:40 -04:00
nattthebear 97c0d52498 Make DGB run again. It has been broken since GB bios files were added 2017-07-06 19:18:26 -04:00
alyosha-tas ed9ef91926 Update Gambatte: Fixes pocket monsters
Also changes core selection behaviour so you can play game boy games in GBC
2017-07-06 17:56:51 -04:00
alyosha-tas 982813fb7e Update gambatte 2017-07-06 17:55:34 -04:00
alyosha-tas a3e2a94c60 update gambatte 2017-07-06 17:54:41 -04:00
alyosha-tas 08b6dadd49 Gambatte: Add core picker option
Replaces ForceDMG so that you can play gameboy roms in color game boy as well
2017-07-06 17:53:14 -04:00
alyosha-tas d9cc1558aa Atari7800Hawk: More Core Work
- Adds Fire button (centipede and Asteroid now playable)
- Improve Maria, add holey DMA, fix numerous bugs
- Fix slow cycle memory mapping.
2017-07-06 15:25:21 -04:00
alyosha-tas 8a5e613fff A7800Hawk: More Core Work 2017-07-06 15:23:21 -04:00
zeromus 6dcc23526b Merge pull request #905 from Ashafix/master
Added support for Lua scripts via the command line
2017-07-05 19:50:09 -05:00
Maximilian Peters 06612265df Merge pull request #1 from Ashafix/Lua_CommandLine
Added support for Lua scripts via the command line
2017-07-06 01:06:54 +02:00
Maximilian Peters bbcea298d7 Added support for Lua scripts via the command line 2017-07-06 01:06:31 +02:00
alyosha-tas 170381597b Atari7800Hawk: Core Cleanup
-now gets in game in choplifter
-implement player controls
-fix memory mapping bugs
-clean up code
-implement more video modes

There is still a serious timing bug that i need to track down and a lot of video mode work to do, but getting in game is at least making progress.
2017-07-05 16:14:27 -04:00
alyosha-tas 3c3915caa2 A7800Hawk: Core Cleanup 2017-07-05 16:12:03 -04:00
alyosha-tas 76a51ca79d A7800Hawk: Core Cleanup 2017-07-05 16:11:24 -04:00
alyosha-tas 643f487638 Game DB: add SRAM to desert trap
Fixes #902
2017-07-05 08:51:32 -04:00
nattthebear ee0ae25d3e uzem: Fix some controller stuff: clock activates on rising edge, latch is continuously active whenever high... fixes the detect controllers routine in the official kernel 2017-07-04 09:11:31 -04:00
nattthebear 7cfe84e27e uzem: a bit of cleanup 2017-07-04 07:36:25 -04:00
nattthebear bd57871171 New! With more games than the 32X! And better sounding ones too! 2017-07-03 21:29:34 -04:00
nattthebear 41fdb3a140 Lay down the CR/LF law 2017-07-03 14:44:30 -04:00
nattthebear 6406646893 waterbox: Use less rams and stuff 2017-07-03 14:44:14 -04:00
nattthebear ea02e62d05 PicoDrive: Add memory domains, including ISaveRammable support. In order to get memory domains for 32x, "32X" needs to be on the gamedb entry. 2017-07-03 11:43:03 -04:00
nattthebear 5e54b896b7 PicoDrive: Disable idle loop detection. Move rom to alloc_sealed. Set heap sizes. 2017-07-03 10:50:24 -04:00
nattthebear d1a9c41466 PicoDrive: Fail fast when trying to run any hardware that calls PicoCartResize (SVP, Pier Solar, and others). Bizhawk won't be using this, so no reason to think about it. 2017-07-03 10:24:26 -04:00
nattthebear b6d2f38899 remove stray printf 2017-07-03 09:09:00 -04:00
nattthebear bc55597e90 PicoDrive: CD Audio support. GPGX and PicoDrive both share the same MCD emulation core, which has significant accuracy difficulties with CD audio... 2017-07-03 08:16:34 -04:00
nattthebear 24cd317a1c PicoDrive: Mega CD. No CD audio yet. 2017-07-02 20:46:01 -04:00
nattthebear a80f16c032 PicoDrive: minor cleanup 2017-07-02 18:29:41 -04:00
nattthebear 45e0770d06 PicoDrive: Connect 32X bios files. These are not required by the emulator, but we'll require them for deterministic mode. Otherwise, they're used if available. 2017-07-02 18:16:38 -04:00
alyosha-tas 5fb8ef22b1 A7800Hawk: More Core Work
-Savestates work
-Sound works
-NMI fixed
-Makes it past the Atari logo intro but not quite into game yet
2017-07-02 18:01:36 -04:00
alyosha-tas 447fdd1275 A7800Hawk: TIA sound fixes 2017-07-02 17:59:38 -04:00
nattthebear fee2f865cc PicoDrive: Fix 32x. (The 32x video draw routines don't respect pitch so you have to set it to width in bytes) 2017-07-02 17:45:10 -04:00
nattthebear 264436e614 PicoDrive: input plus lagged and callback 2017-07-02 16:15:54 -04:00
nattthebear 8b4176df70 PicoDrive: Sound 2017-07-02 15:06:44 -04:00
nattthebear 47535f8158 PicoDrive (WIP) 2017-07-02 13:47:43 -04:00
nattthebear bc9726f687 Waterbox: Connect basic stdio. You get an empty stdin, real stdout and stderr, and can present readonly files to the core. 2017-07-01 21:02:52 -04:00
nattthebear dafe5a43cd Forgot Files 2017-07-01 19:48:57 -04:00
zeromus 5986a03543 refactorer in chief moved VsyncNumerator from a corecomm field to an interface property and then made it throw invalid operation exceptions on types where it doesnt make sense because thats just what you have to do when you choose to use interfaces, but users dont know whether it makes sense to call that. so return 0 instead of throwing exceptions. (should fix crashes dumping AVI with OSD captured) 2017-07-01 17:18:55 -05:00
alyosha-tas 8a13ab1719 GameDB: Remove patch bytes from wonder boy III
Why were they there and what did they do? 
I don't know, but they broke the game so remove them.

Fixes #898
2017-07-01 16:36:50 -04:00
nattthebear f972df72ea pizza: Save the last rendering of the border as well when MASK_EN is used. Seems to match real hardware? 2017-07-01 10:09:27 -04:00
nattthebear 8e1df5562a Pizza: Fix bug that broke sound channel 3 in certain cases. Bug was introduced by the porting process and does not exist in original core. 2017-07-01 09:38:20 -04:00
nattthebear bdfb859480 pizza boy: add the required SPC file as an embedded resource because zeromus said to 2017-07-01 09:06:04 -04:00
nattthebear 94050c161b pizza: bomb out the same way libsnes does if an attempt is made to load a CGB rom in SGB 2017-07-01 08:16:24 -04:00
alyosha-tas 7b3439a6b6 Atari7800Hawk: Finish DMA and start drawing
Successfully draws the intro graphic screen, so we're definitely making progress.

There are a lot of graphics modes though so still a lot of work left.
2017-06-30 21:21:09 -04:00
adelikat 90b12bec3a meh 2017-06-30 11:25:13 -05:00
adelikat cbe2f442a7 Neshawk - ppu - a small code simplification 2017-06-30 09:15:55 -05:00
adelikat a2a27fb634 Merge branch 'a26peripherals' 2017-06-30 08:36:49 -05:00
Trivial-Man 8a2056193d LuaCanvas: Add SetLocation function
Allows the user to reset the location of the canvas window at will while a script is running
2017-06-29 20:16:02 -06:00
Trivial-Man 22200171e7 LuaCanvas: Include GetMouseX & Y functions
Gets the X and Y coordinates for the mouse cursor relative to the canvas
2017-06-29 20:07:21 -06:00
Trivial-Man 1a1ae98a2e EmuLuaLibrary.Gui: update createcanvas
createcanvas now takes additional parameters that specify where the canvas window should be created
2017-06-29 20:03:18 -06:00
Trivial-Man 5900f9b1ec LuaCanvas: add parameters for specifying location
Constructor now takes in arguments for setting the x and y coordinates of the canvas window
2017-06-29 20:01:31 -06:00
Trivial-Man eb6676e0ba EmuLuaLibrary.Forms: add more PictureBox functions
Adds the functions for getting the mouse x and y coordinates from PictureBox components.
2017-06-29 19:59:27 -06:00
Trivial-Man fdc30ccd12 LuaPictureBox: Add GetMouse
A simple function that gets the point the mouse cursor is at relative to the LuaPictureBox's upper left corner
2017-06-29 19:52:40 -06:00
adelikat 9c60243f4e remove unused deterministic flag from LibsnesCore contructor 2017-06-29 19:56:17 -05:00
adelikat 3be2a92390 wire up pizza boy as a sgb option in the core menu 2017-06-29 19:34:02 -05:00
adelikat aaaeb95a05 Atari 2600 - update paddle virtualpads with the new float ranges 2017-06-29 13:46:17 -05:00
alyosha-tas a4360b9c36 A2600: Adjust range on float controls
Scale them in read function instead .

NOTE: still needs some play testing from someone familiar with how the paddle controls to see if it feels right.
2017-06-29 11:02:55 -04:00
adelikat f5cb35a862 Atari 2600 - vritual pad and mnemonics for paddles 2017-06-28 14:27:15 -05:00
alyosha-tas 82d03dc3e9 A2600: implement paddle support
Warning: Deadzone in float controls should be set to zero. I don't know where to look to do this by default though
2017-06-28 10:58:40 -04:00
alyosha-tas 2f6d05512f A2600 TIA: Hook up Paddle logic 2017-06-28 10:57:07 -04:00
adelikat d862ad8232 Atari 2600 - Virtual support for new controller configurations (Paddles just stubbed out), add Left and Rigth Difficulty toggle buttons to the console buttons section 2017-06-28 07:23:36 -05:00
adelikat c3b890c60c Atari 2600 - stub out the paddle controller 2017-06-27 17:22:45 -05:00
adelikat 74dd25e831 Start Atari 2600 peripheral support - currently ability to pick joystick or unplugged for port 1 and port 2. Virtualpads are not addressed with this commit 2017-06-27 15:14:41 -05:00
Trivial-Man d3834fff49 Merge branch 'master' into master 2017-06-25 18:45:41 -06:00
Trivial-Man ae3020b7c1 Undo previous edit
This was the wrong file to edit
2017-06-20 02:19:16 -06:00
Trivial-Man a6eb3f060e Include LuaPictureBox in project
Oops.
2017-06-20 02:18:24 -06:00
Trivial-Man 1eff513e43 I don't have a clue what happened here
I assume something changed here because I added a file to the project? Specifically LuaPictureBox. I don't know what specifically changed though and things won't build without updating this
2017-06-20 02:01:02 -06:00
Trivial-Man 2ddadeae24 Add PictureBox component and methods for drawing on it 2017-06-20 01:20:27 -06:00
Trivial-Man b0e39406a6 Use LuaPictureBox functions in LuaCanvas
Also add in the missing error logs and correct some typos in LuaMethodAttributes.
2017-06-20 01:18:35 -06:00
Trivial-Man 089c487f26 Use LuaPictureBox for the LuaCanvas 2017-06-20 01:16:57 -06:00
Trivial-Man 28acb602ae Create LuaPictureBox component 2017-06-20 01:12:13 -06:00
Trivial-Man 0fc3266880 Merge pull request #1 from TASVideos/master
Update
2017-06-20 01:08:30 -06:00
8780 changed files with 1230543 additions and 1037128 deletions

13
.config/dotnet-tools.json Normal file
View File

@ -0,0 +1,13 @@
{
"version": 1,
"isRoot": true,
"tools": {
"powershell": {
"version": "7.4.2",
"commands": [
"pwsh"
],
"rollForward": false
}
}
}

View File

@ -2,3 +2,136 @@ root = true
[*]
indent_style = tab
[*.yml]
indent_style = space
[*.cs]
csharp_new_line_before_open_brace = all
csharp_new_line_before_else = true
csharp_new_line_before_catch = true
csharp_new_line_before_finally = true
csharp_space_after_cast = true
csharp_indent_switch_labels = true
csharp_indent_case_contents = true
csharp_indent_labels = one_less_than_current
trim_trailing_whitespace = true
# Style rules
# Can't be in .globalconfig because dotnet format doesn't respect that https://github.com/dotnet/format/issues/1643
# Remove `this` or `Me` qualification
dotnet_diagnostic.IDE0003.severity = silent
# Remove unnecessary cast
dotnet_diagnostic.IDE0004.severity = warning
# Remove unnecessary import
dotnet_diagnostic.IDE0005.severity = warning
# Use var instead of explicit type
dotnet_diagnostic.IDE0007.severity = suggestion
# Use explicit type instead of var
dotnet_diagnostic.IDE0008.severity = silent
# Add `this` or `Me` qualification
dotnet_diagnostic.IDE0009.severity = silent
# Inline variable declaration
dotnet_diagnostic.IDE0018.severity = warning
# Use pattern matching to avoid as followed by a null check
dotnet_diagnostic.IDE0019.severity = warning
# Use pattern matching to avoid is check followed by a cast (with variable)
dotnet_diagnostic.IDE0020.severity = warning
# Use expression body for constructors
dotnet_diagnostic.IDE0021.severity = silent # UseExpressionBodyDiagnosticAnalyzer very slow
# Use expression body for methods
dotnet_diagnostic.IDE0022.severity = silent # UseExpressionBodyDiagnosticAnalyzer very slow
# Use expression body for conversion operators
dotnet_diagnostic.IDE0023.severity = silent # UseExpressionBodyDiagnosticAnalyzer very slow
# Use expression body for operators
dotnet_diagnostic.IDE0024.severity = silent # UseExpressionBodyDiagnosticAnalyzer very slow
# Use expression body for properties
dotnet_diagnostic.IDE0025.severity = silent # UseExpressionBodyDiagnosticAnalyzer very slow
# Use expression body for indexers
dotnet_diagnostic.IDE0026.severity = silent # UseExpressionBodyDiagnosticAnalyzer very slow
# Use expression body for accessors
dotnet_diagnostic.IDE0027.severity = silent # UseExpressionBodyDiagnosticAnalyzer very slow
# Null check can be simplified
dotnet_diagnostic.IDE0029.severity = warning
# Null check can be simplified
dotnet_diagnostic.IDE0030.severity = warning
# Use null propagation
dotnet_diagnostic.IDE0031.severity = warning
# Use auto property
dotnet_diagnostic.IDE0032.severity = suggestion
# Simplify default expression
dotnet_diagnostic.IDE0034.severity = suggestion
# Use pattern matching to avoid is check followed by a cast (without variable)
dotnet_diagnostic.IDE0038.severity = warning
# Use is null check
dotnet_diagnostic.IDE0041.severity = warning
# Deconstruct variable declaration
dotnet_diagnostic.IDE0042.severity = suggestion
# dotnet_diagnostic.IDE0049.severity = error # see SA1121
# Remove unused private member
dotnet_diagnostic.IDE0051.severity = suggestion
# Remove unread private member
dotnet_diagnostic.IDE0052.severity = silent # TODO: should be warning imo, but there's too much violation currently
# Use compound assignment
dotnet_diagnostic.IDE0054.severity = warning
# Use index operator
dotnet_diagnostic.IDE0056.severity = suggestion
# Use range operator
dotnet_diagnostic.IDE0057.severity = suggestion
# Use expression body for local functions
dotnet_diagnostic.IDE0061.severity = silent # UseExpressionBodyDiagnosticAnalyzer very slow
# Use simple using statement
dotnet_diagnostic.IDE0063.severity = suggestion
# Make struct fields writable
dotnet_diagnostic.IDE0064.severity = error
# using directive placement
dotnet_diagnostic.IDE0065.severity = error
# Use switch expression
dotnet_diagnostic.IDE0066.severity = suggestion
# Use System.HashCode.Combine
dotnet_diagnostic.IDE0070.severity = warning
# Simplify interpolation
dotnet_diagnostic.IDE0071.severity = suggestion
# Use coalesce compound assignment
dotnet_diagnostic.IDE0074.severity = suggestion
# Use pattern matching
dotnet_diagnostic.IDE0078.severity = suggestion
# Convert typeof to nameof
dotnet_diagnostic.IDE0082.severity = warning
# Use pattern matching (not operator)
dotnet_diagnostic.IDE0083.severity = warning
# Simplify new expression
dotnet_diagnostic.IDE0090.severity = suggestion
# Remove unnecessary equality operator
dotnet_diagnostic.IDE0100.severity = warning
# Remove unnecessary discard
dotnet_diagnostic.IDE0110.severity = warning
# Simplify LINQ expression
dotnet_diagnostic.IDE0120.severity = error
# Namespace does not match folder structure
dotnet_diagnostic.IDE0130.severity = silent # should be warning imo
# Use tuple to swap values
dotnet_diagnostic.IDE0180.severity = suggestion
# Use UTF-8 string literal
dotnet_diagnostic.IDE0230.severity = warning
# Nullable directive is redundant
dotnet_diagnostic.IDE0240.severity = warning
# Nullable directive is unnecessary
dotnet_diagnostic.IDE0241.severity = warning
# Struct can be made 'readonly'
dotnet_diagnostic.IDE0250.severity = suggestion
# Use pattern matching
dotnet_diagnostic.IDE0260.severity = suggestion
# Use nameof
dotnet_diagnostic.IDE0280.severity = error
# Collection initialization can be simplified
dotnet_diagnostic.IDE0305.severity = silent
csharp_style_var_when_type_is_apparent = true
csharp_style_var_elsewhere = true
csharp_style_expression_bodied_methods = when_on_single_line
csharp_style_expression_bodied_properties = when_on_single_line
csharp_style_expression_bodied_indexers = when_on_single_line
csharp_style_expression_bodied_accessors = when_on_single_line

23
.git-blame-ignore-revs Normal file
View File

@ -0,0 +1,23 @@
# This file can be used for git blame using --ignore-revs-file
# or by setting blame.ignoreRevsFile in the git config.
# Fix mixed line endings
ed3bf0e62b5f8b3046b8717dcef54c6b98cb7e77
# Spaces -> tabs, fix mixed newlines
fec63fb66afe70a22cf328eecdaf09e37c21ada5
# Convert spaces to tabs in ZX Spectrum and AmstradCPC cores
85be6af3d33be53d1c70cfbb11d0ebfde8cd417f
# Move projects to /src
3a3b22c03b422eda8fcd62c8cbbff3e838ba4f18
# EXTERMINATE SPACES (in main solution)
3ea71a2dda118b0cadd43c75ee6a577d01f5c6a9
# Fix indentation in `SpectrumBase.Media.cs`
5f29b5094034c4540a1c2a6a962ec4b22c72cb0e
# Remove line-end whitespace across main solution
605deb682dacec3342c650e76fb77972e5ffbe04

42
.github/ISSUE_TEMPLATE/30-bug_report.md vendored Normal file
View File

@ -0,0 +1,42 @@
---
name: Bug report
about: Crashes, inaccurate emulation, nitpicks, or regressions
title: '(issue title -- summarise the summary)'
labels: ''
assignees: ''
---
[//]: # "This description supports Markdown syntax. There's a cheatsheet here: https://guides.github.com/features/mastering-markdown/"
[//]: # "These lines are comments, for letting you know what you should be writing. You can delete them or leave them in."
[//]: # "Also, please don't waste your time writing until you've checked for similar Issues. Remember to check closed Issues too!"
### Summary
[//]: # "Briefly describe what's broken. Include relevant details: loaded core, loaded rom's hash, open tools, running scripts... You can embed a screenshot if it's easier to show the bug, but if you need more than one please put them at the end."
Whenever my cat sits on the left side of my keyboard, games run too fast for me to react to.
### Repro
[//]: # "If you can't figure out the list of steps, delete this section and put 'heisenbug' in the summary somewhere. If a Lua script can cause the bug, you can embed that instead (as simple as possible please)."
1. first step
2. second step
3. et cetera
### Output
[//]: # "Paste the contents of the error dialog if there is one (try Ctrl+C, it usually works), or paste the output from the Lua Console, or delete this section."
```
System.InvalidOperationException: o noes
at BizHawk.Client.EmuHawk.HawkBiz.Crash()
at BizHawk.Client.EmuHawk.HawkBiz.RunWithoutCrashing()
```
### Host env.
[//]: # "List the computers you've found the bug with. If there's a version that doesn't have the bug, please put that in too. Here are some examples:"
- BizHawk 2.5.2; Win10 Pro 1903; AMD/AMD
- BizHawk 2.4.2; Win8.1; Intel/NVIDIA
- BizHawk dev build at 370996875; Win10 Home 1809; Intel/AMD
- BizHawk 2.5; Fedora 31; AMD/NVIDIA
[//]: # "(screenshots, if applicable)"
[//]: # "That's it! If you'd like to help more, you could try a dev build (see Testing in the readme) or an older release. Click submit now and you can edit it later."

View File

@ -0,0 +1,33 @@
---
name: Core port request
about: Request another emulator be ported into BizHawk
title: "[Core Port Req.] (name of emulator, and systems emulated if it's not obvious)"
type: Feature
labels: "Request: New core/port/re-port"
---
[//]: # "This description supports Markdown syntax. There's a cheatsheet here: https://guides.github.com/features/mastering-markdown/"
[//]: # "These lines are comments, for letting you know what you should be writing. You can delete them or leave them in."
[//]: # "Also, please don't waste your time writing until you've checked for duplicate core requests, both on the issue tracker and on this Wiki page: https://github.com/TASEmulators/BizHawk/wiki/Core-Requests"
### Upstream info
- [Website](https://example.com)
- Target platforms: (win/mac/tux)
- [Source repo](https://github.com/group/repo)
- Language(s): (programming language)
- Licence: (licence name/identifier)
### Merits
[//]: # "Briefly explain why this emulator is worth including in BizHawk. If it emulates the same system as an existing core, compare them."
(explanation)
### Technical details
[//]: # "Non-exhaustive list of things to consider:"
- (able to build .dll/.so for P/Invoke?)
- (frontend/backend separation--for example, can backend be built without SDL?)
- (can force single-threaded?)
- (has I/O abstraction accepting byte array, or only accepts file paths? for disc-based consoles, can swap out implementation for BizHawk's?)
- (savestate quality)
[//]: # "Code speaks louder than words: If you're able to make a proof-of-concept, pushing it to GitHub and putting a link here will speed up the process."

8
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: "BEFORE OPENING AN ISSUE: Search for duplicates"
url: "https://github.com/TASVideos/BizHawk/issues?q=is:issue+<search+terms>"
about: "Use `is:issue <search terms>` to find open or closed issues that might be similar to your problem. (Clicking this option takes you back to the issue tracker index.)"
- name: "Chat with us on IRC"
url: "https://matrix.to/#/#bizhawk:libera.chat"
about: "Joins #bizhawk on Libera Chat with your browser. Please be patient as there isn't always somebody online."

13
.github/pull_request_template.md vendored Normal file
View File

@ -0,0 +1,13 @@
[//]: # "This description supports Markdown syntax. There's a cheatsheet here: https://guides.github.com/features/mastering-markdown/"
[//]: # "These lines are comments, for letting you know what you should be writing. You can delete them or leave them in."
[//]: # "Also, please remember to link related Issues! If a bug hasn't been reported, you may submit a fix without creating an Issue."
[//]: # "A button which takes you to the automated builds, once they're been processed—fill in your GitHub username and the name of the branch"
[![dev build for branch | USERNAME:BRANCHNAME](https://img.shields.io/badge/dev_build_for_branch-USERNAME:BRANCHNAME-8250DF?logo=github&logoColor=333333&style=popout)](https://nightly.link/USERNAME/BizHawk/workflows/ci/BRANCHNAME?preview)
(describe changeset here)
[//]: # "Apart from the mandatory license signature, these tasks are optional, but doing them could save reviewers some time and get the PR merged sooner."
Check if completed:
- [ ] I have run any relevant test suites
- [ ] I, the commit author, have read the [licensing terms for contributors](https://github.com/TASEmulators/BizHawk/blob/master/contributing.md#copyrights-and-licensing) (last updated 2024-06-22) and am compliant

78
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,78 @@
on: [push, pull_request, workflow_dispatch]
name: Build and test main solution
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
analyzer-build:
name: Build solution with analyzers
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install .NET 8
uses: actions/setup-dotnet@v4
with:
dotnet-version: "8"
- name: Debug build with analyzers
run: Dist/BuildDebug.sh -p:ContinuousIntegrationBuild=true -warnaserror
- name: Release build with analyzers
run: Dist/BuildRelease.sh -p:ContinuousIntegrationBuild=true -warnaserror
test:
name: Test
runs-on: ${{matrix.os.fullname}}
strategy:
fail-fast: false
matrix:
os:
- { prettyname: Windows, fullname: windows-latest }
- { prettyname: Linux, fullname: ubuntu-22.04 } # newer ubuntu versions don't ship with mono, so we need to pin for now, see https://github.com/actions/runner-images/issues/10636
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install .NET 8
uses: actions/setup-dotnet@v4
with:
dotnet-version: "8"
- name: Test
run: dotnet test BizHawk.sln -c Release -p:ContinuousIntegrationBuild=true
shell: pwsh
package:
name: Build and package output
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install .NET 8
uses: actions/setup-dotnet@v4
with:
dotnet-version: "8"
- name: Build solution
run: Dist/BuildRelease.sh
- name: Package (Linux)
run: Dist/Package.sh
- name: Upload Linux dev build
uses: actions/upload-artifact@v4
with:
name: BizHawk-dev-linux
path: packaged_output
- name: Package (Windows)
run: Dist/Package.sh windows-x64
- name: Upload Windows dev build
uses: actions/upload-artifact@v4
with:
name: BizHawk-dev-windows
path: packaged_output

60
.github/workflows/mame.yml vendored Normal file
View File

@ -0,0 +1,60 @@
name: Build mame (waterbox)
on:
pull_request:
branches: [ "master" ]
paths: [ "waterbox/emulibc/**", "waterbox/libco/**", "waterbox/libcxx/**", "waterbox/*", "waterbox/mame-arcade/**" ]
push:
branches: [ "master" ]
paths: [ "waterbox/emulibc/**", "waterbox/libco/**", "waterbox/libcxx/**", "waterbox/*", "waterbox/mame-arcade/**" ]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
CC: clang-18
jobs:
build-waterbox:
uses: ./.github/workflows/waterbox.yml
build-mame:
runs-on: ubuntu-latest
needs: build-waterbox
steps:
- uses: actions/checkout@v4
- name: Getting submodule(s)
working-directory: ./waterbox/
run: git submodule update --init mame-arcade/mame
- name: Install clang 18
run: wget https://apt.llvm.org/llvm.sh;
chmod u+x llvm.sh;
sudo ./llvm.sh 18;
clang-18 --version;
- name: Download compiled waterbox
uses: actions/download-artifact@v4
with:
name: compiled-waterbox
path: waterbox/sysroot
- name: Give execution permission to compiler
working-directory: ./waterbox/sysroot
run: chmod u+x bin/*
- name: Build emulibc
working-directory: ./waterbox/emulibc
run: make -j
- name: Build libco
working-directory: ./waterbox/libco
run: make -j
- name: Build MAME
working-directory: ./waterbox/mame-arcade
run: make -j4 install
- name: Upload mame core
uses: actions/upload-artifact@v4
with:
name: mame-core
path: |
Assets/dll/libmamearcade.wbx.zst
retention-days: 90

25
.github/workflows/nix-deps.yml vendored Normal file
View File

@ -0,0 +1,25 @@
name: Update nix dependencies
on:
push:
branches: [ "master" ]
paths: [ "Directory.Packages.props" ]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
update-nix-dependencies:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: nixbuild/nix-quick-install-action@v32
- run: nix-build --pure -A emuhawk.fetch-deps && ./result
- name: Commit Dist/deps.nix
uses: stefanzweifel/git-auto-commit-action@v6
with:
commit_message: "Nix expr: Regen NuGet lockfile"
file_pattern: Dist/deps.nix

34
.github/workflows/quickernes.yml vendored Normal file
View File

@ -0,0 +1,34 @@
name: Build quickerNES core
on:
pull_request:
branches: [ "master" ]
paths: [ "quicknes/**" ]
push:
branches: [ "master" ]
paths: [ "quicknes/**" ]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-quickernes:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Getting submodule(s)
working-directory: ./quicknes
run: git submodule update --recursive --init core
- name: Building QuickerNES core (Linux)
working-directory: ./quicknes/make
run: make -j4; make install
- name: Upload quicknes core
uses: actions/upload-artifact@v4
with:
name: quicknes-core
path: |
Assets/dll/libquicknes.so
retention-days: 90

88
.github/workflows/waterbox-cores.yml vendored Normal file
View File

@ -0,0 +1,88 @@
name: Build Waterbox Cores
on:
pull_request:
branches: [ "master" ]
paths: [ "waterbox/**" ]
push:
branches: [ "master" ]
paths: [ "waterbox/**" ]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
CC: clang-18
jobs:
build-waterbox:
uses: ./.github/workflows/waterbox.yml
build-waterboxed-cores:
runs-on: ubuntu-latest
needs: build-waterbox
steps:
- uses: actions/checkout@v4
- name: Getting submodule(s)
working-directory: ./waterbox/
run: git submodule update --init snes9x;
git submodule update --init melon/melonDS;
git submodule update --init melon/BizPlatform/faad2;
git submodule update --init nyma/mednafen;
git submodule update --init ares64/ares/thirdparty/angrylion-rdp;
git submodule update --init gpgx/Genesis-Plus-GX;
git submodule update --init ../submodules/sameboy/libsameboy;
git submodule update --init uae/libretro-uae;
git submodule update --init stella/core;
git submodule update --init dsda/core;
git submodule update --init opera/opera-libretro;
git submodule update --init --recursive dosbox/dosbox-x;
- name: Install clang 18
run: wget https://apt.llvm.org/llvm.sh;
chmod u+x llvm.sh;
sudo ./llvm.sh 18;
clang-18 --version;
- name: Download compiled waterbox
uses: actions/download-artifact@v4
with:
name: compiled-waterbox
path: waterbox/sysroot
- name: Give execution permission to compiler
working-directory: ./waterbox/sysroot
run: chmod u+x bin/*
- name: Build all waterbox cores
working-directory: ./waterbox/
run: ./make-all-cores.sh install
- name: Upload waterbox cores
uses: actions/upload-artifact@v4
with:
name: waterbox-cores
path: |
Assets/dll/ares64_interpreter.wbx.zst
Assets/dll/ares64_recompiler.wbx.zst
Assets/dll/bsnes.wbx.zst
Assets/dll/dosbox.wbx.zst
Assets/dll/dsda.wbx.zst
Assets/dll/faust.wbx.zst
Assets/dll/gpgx.wbx.zst
Assets/dll/hyper.wbx.zst
Assets/dll/libsnes.wbx.zst
Assets/dll/melonDS.wbx.zst
Assets/dll/ngp.wbx.zst
Assets/dll/opera.wbx.zst
Assets/dll/pcfx.wbx.zst
Assets/dll/picodrive.wbx.zst
Assets/dll/shock.wbx.zst
Assets/dll/snes9x.wbx.zst
Assets/dll/ss.wbx.zst
Assets/dll/stella.wbx.zst
Assets/dll/tic80.wbx.zst
Assets/dll/turbo.wbx.zst
Assets/dll/uae.wbx.zst
Assets/dll/uzem.wbx.zst
Assets/dll/vb.wbx.zst
Assets/dll/virtualjaguar.wbx.zst
retention-days: 90

55
.github/workflows/waterbox.yml vendored Normal file
View File

@ -0,0 +1,55 @@
name: Build Waterbox
on: [workflow_dispatch, workflow_call]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-waterbox
cancel-in-progress: true
env:
CC: clang-18
jobs:
build-waterbox:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install clang 18
run: wget https://apt.llvm.org/llvm.sh;
chmod u+x llvm.sh;
sudo ./llvm.sh 18;
clang-18 --version;
- name: Set up env variables
run: echo "CLANG_VERSION=$(clang-18 -dumpversion)" >> $GITHUB_ENV;
echo "MUSL_COMMIT=$(git rev-parse HEAD:waterbox/musl)" >> $GITHUB_ENV;
- name: Cache waterbox
id: cache-waterbox
uses: actions/cache@v4
with:
path: waterbox/sysroot
key: waterbox-${{ hashFiles('waterbox/libcxx/configure-for-waterbox-phase-*', 'waterbox/libcxx/setup-llvm.sh', 'waterbox/libcxx/do-everything.sh') }}-${{ env.MUSL_COMMIT }}-${{ env.CLANG_VERSION }}
- if: ${{ steps.cache-waterbox.outputs.cache-hit != 'true' }}
name: Checkout submodule
working-directory: ./waterbox/
run: git submodule update --init musl
- if: ${{ steps.cache-waterbox.outputs.cache-hit != 'true' }}
name: Build musl
working-directory: ./waterbox/musl
run: ./wbox_configure.sh;
./wbox_build.sh;
- if: ${{ steps.cache-waterbox.outputs.cache-hit != 'true' }}
name: Build libcxx
working-directory: ./waterbox/libcxx
run: ./do-everything.sh
- if: ${{ steps.cache-waterbox.outputs.cache-hit != 'true' }}
name: Build nyma zlib
working-directory: ./waterbox/nyma
run: ./build-and-install-zlib.sh
- name: Upload compiled waterbox
uses: actions/upload-artifact@v4
with:
name: compiled-waterbox
path: waterbox/sysroot
retention-days: 90

63
.gitignore vendored
View File

@ -1,17 +1,16 @@
/snes9xgit
svnrev.cs
**/bin/**
**/obj/**
**/.vs/**
**/.vscode/
/output/**
/output64/**
**/Release/**
**/Debug/**
/packaged_output
/result
/test_output
**/ipch/**
/Assets/dll/*.wbx
Backup/
UpgradeLog.htm
*.ilk
*.il
*.tlog
*.obj
*.o
@ -19,37 +18,13 @@ svnrev.cs
*.filters
*.opendb
/BizHawk.Client.EmuHawk/tools/TAStudio/HistoryBox.Designer.cs
/BizHawk.Client.EmuHawk/tools/TAStudio/HistoryBox.cs
/BizHawk.Client.EmuHawk/tools/TAStudio/HistoryBox.resx
/BizHawk.Emulation.DiscSystem/Properties/svnrev.cs
/Build/*.vshost.*
/Dist/*.zip
/Dist/git_hooks/*.local.ps1
/LuaInterface/LuaInterface/Properties
/Version/bin
/Version/obj
/Version/svnrev.cs
/attic/PsxHawk.API/Release
/attic/PsxHawk.Core/Debug
/attic/PsxHawk.Core/Release
/genplus-gx/libretro/msvc/ipch
/libmupen64plus/mupen64plus-video-z64/projects/msvc11/snes9xgit
# mupen64plus-win32-deps is a submodule, so ignores should be in that repo
/libmupen64plus/mupen64plus-win32-deps/SDL-1.2.14/docs
/libmupen64plus/mupen64plus-win32-deps/SDL-1.2.14/docs.html
/libsnes/vs2015/.vs
/libsnes/vs2015/.obj
/References/*.xml
*.opensdf
*.user
*.suo
@ -60,16 +35,16 @@ svnrev.cs
.hgignore
.hgtags
/LuaInterface/Lua/src/.libs
/LuaInterface/Lua/src/Release-LUAPERKS
/LuaInterface/Release-LUAPERKS
ExternalCoreProjects/Virtu/bin/*.*
/psx/octoshock/bizhawk/Win32
/psx/octoshock/bizhawk/x64
/psx/octoshock/bizhawk/*.opendb
**/StyleCop.Cache
libsnes/vs2015/libsnes.VC.db
waterbox/**/*.wbx
waterbox/**/*.wbx.in
/waterbox/**/*.wbx
/waterbox/**/*.wbx.in
.idea
/packages
launchSettings.json

216
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,216 @@
.disabled_not_a_job_include:
- template: Security/SAST.gitlab-ci.yml
variables:
CI_HAWK_ARTIFACT_NAME: "BizHawk_devbuild_${CI_COMMIT_SHORT_SHA}"
CI_HAWK_ARTIFACT_NAME_TAR: "$CI_HAWK_ARTIFACT_NAME.tar"
CI_HAWK_TMPARTIFACT_NAME: "BizHawk_tempbuild_${CI_COMMIT_REF_SLUG}_${CI_COMMIT_SHORT_SHA}"
workflow:
auto_cancel:
on_job_failure: all
stages:
- build
- test
- package
.with_cachix_mono:
before_script:
- nix-env -iA nixpkgs.cachix
- cachix use $CACHIX_CACHE_NAME
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/nixos/nix:latest
variables:
CACHIX_CACHE_NAME: mono-for-bizhawk
build_asms_debug:
artifacts:
expire_in: "30 minutes"
name: "$CI_HAWK_TMPARTIFACT_NAME"
paths:
- output
image: mcr.microsoft.com/dotnet/sdk:8.0
script:
- Dist/BuildDebug.sh -v normal
stage: build
build_asms_release:
artifacts:
expire_in: "30 minutes"
name: "$CI_HAWK_TMPARTIFACT_NAME"
paths:
- output
image: mcr.microsoft.com/dotnet/sdk:8.0
script:
- if [ "$CI_COMMIT_REF_SLUG" == "release" ]; then Dist/UpdateVersionInfoForRelease.sh; fi
- Dist/BuildRelease.sh -v normal
stage: build
build_ext_projs:
allow_failure: true
image: mcr.microsoft.com/dotnet/sdk:8.0
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: always
script:
- for d in $CI_PROJECT_DIR/ExternalProjects/*; do if [ -e "$d/build_release.sh" -a "$(find "$d" -maxdepth 1 -name '*.csproj' -print -quit)" ]; then cd "$d"; ./build_release.sh -v normal || exit $?; fi; done
stage: test
build_ext_tools:
allow_failure: true
image: mcr.microsoft.com/dotnet/sdk:8.0
needs:
- build_asms_release
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: always
script:
- for d in $CI_PROJECT_DIR/ExternalToolProjects/*; do if [ -d "$d" ]; then cd "$d" && ./build_release.sh -v normal; fi; done
stage: test
build_nix_master:
# extends: .with_cachix_mono
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/nixos/nix:latest
needs: []
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: always
script:
- nix-build --pure -A emuhawk
stage: test
build_nix_prev_release:
# extends: .with_cachix_mono
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/nixos/nix:latest
needs: []
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: always
script:
- nix-build --pure -A emuhawk-latest
stage: test
check_style:
image: mcr.microsoft.com/dotnet/sdk:8.0
needs:
- job: build_asms_release
artifacts: false
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: always
allow_failure: true
- if: $BIZHAWKBUILD_USE_ANALYZERS != null
when: always
allow_failure: false
script:
- Dist/BuildRelease.sh -v normal
stage: test
.disabled_job_infersharp:
artifacts:
paths:
- infer-out/*
image: mcr.microsoft.com/infersharp:v1.0
needs:
- job: build_asms_release
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: always
script:
- mkdir "infer-in"
- find output -name "BizHawk.*.dll" -exec cp "{}" "infer-in" \;
- cp "output/EmuHawk.exe" "infer-in"
- /app/run_infersharp.sh "infer-in"
stage: test
.package_linux_x64:
artifacts:
expire_in: "1 month"
name: "$CI_HAWK_ARTIFACT_NAME"
paths:
- "$CI_HAWK_ARTIFACT_NAME_TAR"
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/alpine:latest
needs:
- build_asms_release
- job: build_asms_debug
artifacts: false
script:
- Dist/Package.sh 'linux-x64'
- cd packaged_output
- tar -cf "../$CI_HAWK_ARTIFACT_NAME_TAR" *
stage: package
.package_windows_x64:
artifacts:
expire_in: "1 month"
name: "$CI_HAWK_ARTIFACT_NAME"
paths:
- ./*
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/alpine:latest
needs:
- build_asms_release
- job: build_asms_debug
artifacts: false
script:
- Dist/Package.sh 'windows-x64'
# now we replace $CI_PROJECT_DIR with $CI_PROJECT_DIR/packaged_output, so that the archival step will put everything at the top level
- mv packaged_output ..
- cd ..
- rm -fr $CI_PROJECT_DIR
- mv packaged_output $CI_PROJECT_DIR
stage: package
package_devbuild_linux:
extends: .package_linux_x64
rules:
- if: $CI_COMMIT_REF_SLUG == "master"
when: always
package_devbuild_windows:
extends: .package_windows_x64
rules:
- if: $CI_COMMIT_REF_SLUG == "master"
when: always
package_release_linux:
extends: .package_linux_x64
rules:
- if: $CI_COMMIT_REF_SLUG == "release"
when: always
variables:
CI_HAWK_ARTIFACT_NAME: "BizHawk-VERSIONHERE-linux-x64.tar" # .zip is added automatically
CI_HAWK_ARTIFACT_NAME_TAR: "BizHawk-linux-x64-$CI_COMMIT_SHORT_SHA.tar"
package_release_windows:
extends: .package_windows_x64
rules:
- if: $CI_COMMIT_REF_SLUG == "release"
when: always
variables:
CI_HAWK_ARTIFACT_NAME: "BizHawk-VERSIONHERE-win-x64"
run_tests:
artifacts:
paths:
- test_output/*.coverage.xml
reports:
junit:
- test_output/*.coverage.xml
image: mcr.microsoft.com/dotnet/sdk:8.0
needs:
- job: build_asms_release
artifacts: false
script:
- apt-get update && apt-get install liblua5.4-0
- Dist/BuildTestRelease.sh -v normal -p:TestProjTargetFrameworkOverride=net8.0
stage: test
.disabled_job_sast:
variables:
SAST_EXCLUDED_ANALYZERS: bandit, brakeman, eslint, flawfinder, gosec, kubesec, nodejs-scan, phpcs-security-audit, pmd-apex, sobelow, spotbugs
stage: test
.disabled_not_a_job_cache:
key: "$CI_COMMIT_REF_SLUG"
paths:
- $HOME/.nuget/packages # probably won't work; set NUGET_PACKAGES to `BizHawk_master/.nuget_packages` and cache that

95
.gitmodules vendored
View File

@ -3,11 +3,100 @@
url = https://github.com/mupen64plus/mupen64plus-win32-deps.git
[submodule "libmupen64plus/GLideN64"]
path = libmupen64plus/GLideN64
url = https://github.com/TASVideos/GLideN64.git
url = https://github.com/TASEmulators/GLideN64.git
[submodule "libmupen64plus/mupen64plus-rsp-cxd4"]
path = libmupen64plus/mupen64plus-rsp-cxd4
url = https://github.com/TASVideos/mupen64plus-rsp-cxd4.git
url = https://github.com/TASEmulators/mupen64plus-rsp-cxd4.git
[submodule "waterbox/snes9x"]
path = waterbox/snes9x
url = https://github.com/TASVideos/snes9x.git
url = https://github.com/TASEmulators/snes9x.git
branch = bizsnes
[submodule "mgba"]
path = submodules/mgba
url = https://github.com/TASEmulators/mgba.git
branch = bizhawk-0.11
[submodule "waterbox/melon/melonDS"]
path = waterbox/melon/melonDS
url = https://github.com/TASEmulators/melonDS.git
branch = melonbiz
[submodule "waterbox/melon/BizPlatform/faad2"]
path = waterbox/melon/BizPlatform/faad2
url = https://github.com/knik0/faad2.git
[submodule "waterbox/musl"]
path = waterbox/musl
url = https://github.com/nattthebear/musl.git
[submodule "waterbox/nyma/mednafen"]
path = waterbox/nyma/mednafen
url = https://github.com/TASEmulators/mednafen.git
[submodule "submodules/gambatte"]
path = submodules/gambatte
url = https://github.com/pokemon-speedrunning/gambatte-core.git
[submodule "submodules/libdarm"]
path = submodules/libdarm
url = https://github.com/jbremer/darm.git
[submodule "submodules/libfwunpack"]
path = submodules/libfwunpack
url = https://github.com/TASEmulators/fwunpack.git
[submodule "submodules/libemu83"]
path = submodules/libemu83
url = https://github.com/CasualPokePlayer/Emu83.git
[submodule "submodules/sameboy/libsameboy"]
path = submodules/sameboy/libsameboy
url = https://github.com/LIJI32/SameBoy.git
[submodule "waterbox/ares64/ares/thirdparty/angrylion-rdp"]
path = waterbox/ares64/ares/thirdparty/angrylion-rdp
url = https://github.com/TASEmulators/angrylion-rdp.git
branch = ares
[submodule "libmupen64plus/mupen64plus-video-angrylion-rdp"]
path = libmupen64plus/mupen64plus-video-angrylion-rdp
url = https://github.com/TASEmulators/angrylion-rdp.git
branch = biz_mupen64plus
[submodule "waterbox/mame-arcade/mame"]
path = waterbox/mame-arcade/mame
url = https://github.com/TASEmulators/mame.git
branch = mamehawk0252
[submodule "ExternalProjects/librcheevos/rcheevos"]
path = ExternalProjects/librcheevos/rcheevos
url = https://github.com/RetroAchievements/rcheevos.git
[submodule "encore/encore"]
path = encore/encore
url = https://github.com/CasualPokePlayer/encore.git
branch = headless
[submodule "ExternalProjects/SDL2/SDL"]
path = ExternalProjects/SDL2/SDL
url = https://github.com/libsdl-org/SDL.git
branch = SDL2
[submodule "ExternalProjects/SDL2/libusb"]
path = ExternalProjects/SDL2/libusb
url = https://github.com/libusb/libusb.git
[submodule "quicknes/core"]
path = quicknes/core
url = https://github.com/TASEmulators/quickerNES.git
branch = main
[submodule "waterbox/gpgx/Genesis-Plus-GX"]
path = waterbox/gpgx/Genesis-Plus-GX
url = https://github.com/TASEmulators/Genesis-Plus-GX.git
branch = tasvideos-2.2
[submodule "waterbox/stella/core"]
path = waterbox/stella/core
url = https://github.com/TASEmulators/stella.git
branch = tasvideos-1
[submodule "waterbox/uae/libretro-uae"]
path = waterbox/uae/libretro-uae
url = https://github.com/TASEmulators/libretro-uae.git
branch = wbx-1
[submodule "ExternalProjects/FlooohChips/chips"]
path = ExternalProjects/FlooohChips/chips
url = https://github.com/floooh/chips.git
[submodule "waterbox/dosbox/dosbox-x"]
path = waterbox/dosbox/dosbox-x
url = https://github.com/TASEmulators/dosbox-x.git
branch = wbx
[submodule "waterbox/dsda/core"]
path = waterbox/dsda/core
url = https://github.com/TASEmulators/dsda-doom.git
branch = wbx
[submodule "waterbox/opera/opera-libretro"]
path = waterbox/opera/opera-libretro
url = https://github.com/TASEmulators/opera-libretro.git
branch = wbx

855
.global.editorconfig.ini Normal file
View File

@ -0,0 +1,855 @@
is_global = true
# Obsolete member 'memberA' overrides non-obsolete member 'memberB' (this simply doesn't work, see https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0809#methods-recognized-as-obsolete)
dotnet_diagnostic.CS0809.severity = error
## BizHawk internal rules
# Do not use anonymous delegates
dotnet_diagnostic.BHI1001.severity = error
# Do not use anonymous types (classes)
dotnet_diagnostic.BHI1002.severity = error
# Do not use query expression syntax
dotnet_diagnostic.BHI1003.severity = error
# Verbatim interpolated strings should begin $@, not @$
dotnet_diagnostic.BHI1004.severity = error
# Default branch of switch expression should throw InvalidOperationException/SwitchExpressionException or not throw
dotnet_diagnostic.BHI1005.severity = silent
# Do not discard local variables
dotnet_diagnostic.BHI1006.severity = error
# Don't use target-typed new for throw expressions
dotnet_diagnostic.BHI1007.severity = error
# Do not use init setter
dotnet_diagnostic.BHI1008.severity = error
# ref struct should not override ValueType.{Equals,GetHashCode}
dotnet_diagnostic.BHI1009.severity = error
# Don't call this.GetType() in sealed type, use typeof operator
dotnet_diagnostic.BHI1100.severity = error
# Don't call this.GetType(), use typeof operator (or replace subtype check with better encapsulation)
dotnet_diagnostic.BHI1101.severity = error
# Don't call typeof(T).Name, use nameof operator
dotnet_diagnostic.BHI1102.severity = error
# Don't call typeof(T).ToString(), use nameof operator or typeof(T).FullName
dotnet_diagnostic.BHI1103.severity = error
# Don't use ^= (XOR-assign) for inverting the value of booleans
dotnet_diagnostic.BHI1104.severity = error
# Use unambiguous decimal<=>float/double conversion methods
dotnet_diagnostic.BHI1105.severity = error
# Brackets of collection expression should be separated with spaces
dotnet_diagnostic.BHI1110.severity = warning
# Expression-bodied member should be flowed to next line correctly
dotnet_diagnostic.BHI1120.severity = silent
# Record type declaration missing class (or struct) keyword
dotnet_diagnostic.BHI1130.severity = error
# Check result of IDictionary.TryGetValue, or discard it if default(T) is desired
dotnet_diagnostic.BHI1200.severity = error
# Inferred type of branches of ternary expression in interpolation don't match
dotnet_diagnostic.BHI1210.severity = error
# Declare checked operators
dotnet_diagnostic.BHI1300.severity = warning
# Call to FirstOrDefault when elements are of a value type; FirstOrNull may have been intended
dotnet_diagnostic.BHI3100.severity = error
# Use .Order()/.OrderDescending() shorthand
dotnet_diagnostic.BHI3101.severity = warning
# Prefer specialised methods over LINQ on string receivers
dotnet_diagnostic.BHI3102.severity = error
# Use IsEmpty instead of checking Length
dotnet_diagnostic.BHI3103.severity = error
# Throw NotImplementedException from methods/props marked [FeatureNotImplemented]
dotnet_diagnostic.BHI3300.severity = error
## Design rules
# Do not declare static members on generic types
dotnet_diagnostic.CA1000.severity = error
# Properties should not be write only
dotnet_diagnostic.CA1044.severity = error
# Do not raise exceptions in unexpected locations
dotnet_diagnostic.CA1065.severity = error
## Globalization rules
# Specify IFormatProvider
dotnet_diagnostic.CA1305.severity = error
dotnet_code_quality.CA1305.excluded_symbol_names = T:System.Byte|T:System.SByte|T:System.Int16|T:System.UInt16|T:System.Int32|T:System.UInt32|T:System.Int64|T:System.UInt64|T:System.String|T:System.Text.StringBuilder|T:System.Convert
# Specify marshalling for P/Invoke string arguments
dotnet_diagnostic.CA2101.severity = suggestion
# Specify StringComparison for clarity
dotnet_diagnostic.CA1307.severity = silent # SpecifyStringComparisonAnalyzer very slow
# Specify StringComparison for correctness
dotnet_diagnostic.CA1310.severity = silent # SpecifyStringComparisonAnalyzer very slow
## Naming rules
# Identifiers should have correct prefix
dotnet_diagnostic.CA1715.severity = error
# Property names should not match get methods
dotnet_diagnostic.CA1721.severity = warning
## Performance rules
# Do not initialize unnecessarily
dotnet_diagnostic.CA1805.severity = silent
# Do not ignore method results
dotnet_diagnostic.CA1806.severity = error
# Test for empty strings using string length
dotnet_diagnostic.CA1820.severity = warning
# Mark members as static
dotnet_diagnostic.CA1822.severity = silent
# Avoid zero-length array allocations
dotnet_diagnostic.CA1825.severity = warning
# Use property instead of Linq Enumerable method
dotnet_diagnostic.CA1826.severity = error
dotnet_code_quality.CA1826.exclude_ordefault_methods = true
# Do not use Count()/LongCount() when Any() can be used
dotnet_diagnostic.CA1827.severity = error
# Do not use CountAsync/LongCountAsync when AnyAsync can be used
dotnet_diagnostic.CA1828.severity = error
# Use Length/Count property instead of Enumerable.Count method
dotnet_diagnostic.CA1829.severity = error
# Prefer IsEmpty over Count when available
dotnet_diagnostic.CA1836.severity = error
# Avoid StringBuilder parameters for P/Invokes
dotnet_diagnostic.CA1838.severity = suggestion
# Prefer the `IDictionary.TryGetValue(TKey, out TValue)` method
dotnet_diagnostic.CA1854.severity = warning
# Avoid using 'Enumerable.Any()' extension method
dotnet_diagnostic.CA1860.severity = error
# Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
dotnet_diagnostic.CA1862.severity = error
# Unnecessary call to 'Contains' for sets
dotnet_diagnostic.CA1868.severity = warning
## Reliability rules
# `ThreadStatic` fields should not use inline initialization
dotnet_diagnostic.CA2019.severity = error
## Usage rules
# Call GC.SuppressFinalize correctly
dotnet_diagnostic.CA1816.severity = none
# Do not raise reserved exception types
dotnet_diagnostic.CA2201.severity = suggestion
# Do not call overridable methods in constructors
dotnet_diagnostic.CA2214.severity = warning
# Implement serialization constructors
dotnet_diagnostic.CA2229.severity = silent
# Opt in to preview features before using them
dotnet_diagnostic.CA2252.severity = silent # CSharpDetectPreviewFeatureAnalyzer very slow
## .NET DocumentationAnalyzers style rules
# Place text in paragraphs
dotnet_diagnostic.DOC100.severity = silent
# Use child blocks consistently
dotnet_diagnostic.DOC101.severity = silent
# Use child blocks consistently across elements of the same kind
dotnet_diagnostic.DOC102.severity = silent
# Use Unicode characters # unnecessary HTML entities also get picked up by CS1570, which seems more reliable
dotnet_diagnostic.DOC103.severity = error
# Prefer '<see langword="keyword"/>' to '<c>keyword</c>' for referencing language keywords
dotnet_diagnostic.DOC104.severity = warning
# Prefer '<paramref name="parameter"/>' to '<c>parameter</c>' for referencing parameters
dotnet_diagnostic.DOC105.severity = warning
# Prefer '<typeparamref name="type_parameter"/>' to '<c>type_parameter</c>' for referencing type parameters
dotnet_diagnostic.DOC106.severity = warning
# Prefer '<see cref="target"/>' to '<c>target</c>' for referencing code elements
dotnet_diagnostic.DOC107.severity = warning
# Avoid empty paragraphs
dotnet_diagnostic.DOC108.severity = error
## .NET DocumentationAnalyzers portability rules
# Use XML documentation syntax
dotnet_diagnostic.DOC200.severity = error
# Item should have description
dotnet_diagnostic.DOC201.severity = error
# Use section elements correctly
dotnet_diagnostic.DOC202.severity = error
# Use block elements correctly
dotnet_diagnostic.DOC203.severity = error
# Use inline elements correctly # but this doesn't pick up <seealso/> in <summary/>, for example...
dotnet_diagnostic.DOC204.severity = error
# 'langword' attribute value should be a language keyword
dotnet_diagnostic.DOC207.severity = error
# 'href' attribute value should be a URI # a lot of false negatives with this one too
dotnet_diagnostic.DOC209.severity = error
## Meziantou.Analyzers rules
# StringComparison is missing
dotnet_diagnostic.MA0001.severity = silent
# IEqualityComparer<string> or IComparer<string> is missing
dotnet_diagnostic.MA0002.severity = silent
# Add parameter name to improve readability
dotnet_diagnostic.MA0003.severity = silent
# Use Task.ConfigureAwait(false)
dotnet_diagnostic.MA0004.severity = silent
# Use Array.Empty<T>()
dotnet_diagnostic.MA0005.severity = silent # redundant with CA1825
# Use String.Equals instead of equality operator
dotnet_diagnostic.MA0006.severity = silent
# Add a comma after the last value
dotnet_diagnostic.MA0007.severity = silent
# Add StructLayoutAttribute
dotnet_diagnostic.MA0008.severity = silent
# Add regex evaluation timeout
dotnet_diagnostic.MA0009.severity = silent
# Mark attributes with AttributeUsageAttribute
dotnet_diagnostic.MA0010.severity = error
# IFormatProvider is missing
dotnet_diagnostic.MA0011.severity = silent
# Do not raise reserved exception type
dotnet_diagnostic.MA0012.severity = error
# Types should not extend System.ApplicationException
dotnet_diagnostic.MA0013.severity = error
# Do not raise System.ApplicationException type
dotnet_diagnostic.MA0014.severity = error
# Specify the parameter name in ArgumentException
dotnet_diagnostic.MA0015.severity = error
# Prefer returning collection abstraction instead of implementation
dotnet_diagnostic.MA0016.severity = silent
# Abstract types should not have public or internal constructors
dotnet_diagnostic.MA0017.severity = silent
# Use EventArgs.Empty
dotnet_diagnostic.MA0019.severity = error
# Use direct methods instead of LINQ methods
dotnet_diagnostic.MA0020.severity = error
# Use StringComparer.GetHashCode instead of string.GetHashCode
dotnet_diagnostic.MA0021.severity = silent
# Return Task.FromResult instead of returning null
dotnet_diagnostic.MA0022.severity = error
# Add RegexOptions.ExplicitCapture
dotnet_diagnostic.MA0023.severity = silent
# Use an explicit StringComparer when possible
dotnet_diagnostic.MA0024.severity = error
# Implement the functionality instead of throwing NotImplementedException
dotnet_diagnostic.MA0025.severity = silent
# Fix TODO comment
dotnet_diagnostic.MA0026.severity = silent
# Do not remove original exception
dotnet_diagnostic.MA0027.severity = error
# Optimize StringBuilder usage
dotnet_diagnostic.MA0028.severity = silent
# Combine LINQ methods
dotnet_diagnostic.MA0029.severity = error # redundant with IDE0120
# Remove useless OrderBy call
dotnet_diagnostic.MA0030.severity = error
# Optimize Enumerable.Count() usage
dotnet_diagnostic.MA0031.severity = error
# Use an overload with a CancellationToken argument
dotnet_diagnostic.MA0032.severity = silent # UseAnOverloadThatHasCancellationTokenAnalyzer very slow
# Do not tag instance fields with ThreadStaticAttribute
dotnet_diagnostic.MA0033.severity = error
# Do not use dangerous threading methods
dotnet_diagnostic.MA0035.severity = error
# Make class static
dotnet_diagnostic.MA0036.severity = silent
# Remove empty statement
dotnet_diagnostic.MA0037.severity = error
# Make method static
dotnet_diagnostic.MA0038.severity = silent
# Do not write your own certificate validation method
dotnet_diagnostic.MA0039.severity = error
# Flow the cancellation token
dotnet_diagnostic.MA0040.severity = silent # UseAnOverloadThatHasCancellationTokenAnalyzer very slow
# Make property static
dotnet_diagnostic.MA0041.severity = silent
# Do not use blocking calls in an async method
dotnet_diagnostic.MA0042.severity = silent # DoNotUseBlockingCallInAsyncContextAnalyzer very slow
# Use nameof operator in ArgumentException
dotnet_diagnostic.MA0043.severity = silent # redundant with CA1507
# Remove useless ToString call
dotnet_diagnostic.MA0044.severity = warning
# Do not use blocking call in a sync method (need to make containing method async)
dotnet_diagnostic.MA0045.severity = silent # DoNotUseBlockingCallInAsyncContextAnalyzer very slow
# Use EventHandler<T> to declare events
dotnet_diagnostic.MA0046.severity = silent
# Declare types in namespaces
dotnet_diagnostic.MA0047.severity = error
# File name must match type name
dotnet_diagnostic.MA0048.severity = silent
# Type name should not match containing namespace
dotnet_diagnostic.MA0049.severity = silent
# Validate arguments correctly in iterator methods
dotnet_diagnostic.MA0050.severity = error
# Method is too long
dotnet_diagnostic.MA0051.severity = silent
# Replace constant Enum.ToString with nameof
dotnet_diagnostic.MA0052.severity = error
# Make class sealed
dotnet_diagnostic.MA0053.severity = silent
# Embed the caught exception as innerException
dotnet_diagnostic.MA0054.severity = error
# Do not use finalizer
dotnet_diagnostic.MA0055.severity = silent
# Do not call overridable members in constructor
dotnet_diagnostic.MA0056.severity = silent
# Class name should end with 'Attribute'
dotnet_diagnostic.MA0057.severity = error
# Class name should end with 'Exception'
dotnet_diagnostic.MA0058.severity = error
# Class name should end with 'EventArgs'
dotnet_diagnostic.MA0059.severity = silent
# The value returned by Stream.Read/Stream.ReadAsync is not used
dotnet_diagnostic.MA0060.severity = error
# Method overrides should not change parameter defaults
dotnet_diagnostic.MA0061.severity = silent
# Non-flags enums should not be marked with "FlagsAttribute"
dotnet_diagnostic.MA0062.severity = silent
# Use Where before OrderBy
dotnet_diagnostic.MA0063.severity = error
# Avoid locking on publicly accessible instance
dotnet_diagnostic.MA0064.severity = silent
# Default ValueType.Equals or HashCode is used for struct's equality
dotnet_diagnostic.MA0065.severity = error
# Hash table unfriendly type is used in a hash table
dotnet_diagnostic.MA0066.severity = error
# Use Guid.Empty
dotnet_diagnostic.MA0067.severity = error
# Invalid parameter name for nullable attribute
dotnet_diagnostic.MA0068.severity = error
# Non-constant static fields should not be visible
dotnet_diagnostic.MA0069.severity = silent
# Obsolete attributes should include explanations
dotnet_diagnostic.MA0070.severity = warning
# Avoid using redundant else
dotnet_diagnostic.MA0071.severity = silent
# Do not throw from a finally block
dotnet_diagnostic.MA0072.severity = error
# Avoid comparison with bool constant
dotnet_diagnostic.MA0073.severity = silent
# Avoid implicit culture-sensitive methods
dotnet_diagnostic.MA0074.severity = silent
# Do not use implicit culture-sensitive ToString
dotnet_diagnostic.MA0075.severity = silent
# Do not use implicit culture-sensitive ToString in interpolated strings
dotnet_diagnostic.MA0076.severity = silent
# A class that provides Equals(T) should implement IEquatable<T>
dotnet_diagnostic.MA0077.severity = error
# Use 'Cast' instead of 'Select' to cast
dotnet_diagnostic.MA0078.severity = error
# Flow the cancellation token using .WithCancellation()
dotnet_diagnostic.MA0079.severity = silent # UseAnOverloadThatHasCancellationTokenAnalyzer very slow
# Use a cancellation token using .WithCancellation()
dotnet_diagnostic.MA0080.severity = silent # UseAnOverloadThatHasCancellationTokenAnalyzer very slow
# Method overrides should not omit params keyword
dotnet_diagnostic.MA0081.severity = error
# NaN should not be used in comparisons
dotnet_diagnostic.MA0082.severity = error
# ConstructorArgument parameters should exist in constructors
dotnet_diagnostic.MA0083.severity = error
# Local variable should not hide other symbols
dotnet_diagnostic.MA0084.severity = error
# Anonymous delegates should not be used to unsubscribe from Events
dotnet_diagnostic.MA0085.severity = error
# Do not throw from a finalizer
dotnet_diagnostic.MA0086.severity = error
# Parameters with [DefaultParameterValue] attributes should also be marked [Optional]
dotnet_diagnostic.MA0087.severity = error
# Use [DefaultParameterValue] instead of [DefaultValue]
dotnet_diagnostic.MA0088.severity = error
# Optimize string method usage
dotnet_diagnostic.MA0089.severity = error
# Remove empty else/finally block
dotnet_diagnostic.MA0090.severity = warning
# Sender should be 'this' for instance events
dotnet_diagnostic.MA0091.severity = error
# Sender should be 'null' for static events
dotnet_diagnostic.MA0092.severity = error
# EventArgs should not be null
dotnet_diagnostic.MA0093.severity = error
# A class that provides CompareTo(T) should implement IComparable<T>
dotnet_diagnostic.MA0094.severity = error
# A class that implements IEquatable<T> should override Equals(object)
dotnet_diagnostic.MA0095.severity = error
# A class that implements IComparable<T> should also implement IEquatable<T>
dotnet_diagnostic.MA0096.severity = silent
# A class that implements IComparable<T> or IComparable should override comparison operators
dotnet_diagnostic.MA0097.severity = silent
# Use indexer instead of LINQ methods
dotnet_diagnostic.MA0098.severity = warning
# Use Explicit enum value instead of 0
dotnet_diagnostic.MA0099.severity = silent
# Await task before disposing of resources
dotnet_diagnostic.MA0100.severity = error
# String contains an implicit end of line character
dotnet_diagnostic.MA0101.severity = silent
# Make member readonly
dotnet_diagnostic.MA0102.severity = silent
# Use SequenceEqual instead of equality operator
dotnet_diagnostic.MA0103.severity = error
# Do not create a type with a name from the BCL
dotnet_diagnostic.MA0104.severity = error
# Use the lambda parameters instead of using a closure
dotnet_diagnostic.MA0105.severity = error
# Avoid closure by using an overload with the 'factoryArgument' parameter
dotnet_diagnostic.MA0106.severity = error
# Do not use culture-sensitive object.ToString
dotnet_diagnostic.MA0107.severity = silent
# Remove redundant argument value
dotnet_diagnostic.MA0108.severity = error
# Consider adding an overload with a Span<T> or Memory<T>
dotnet_diagnostic.MA0109.severity = silent
# Use the Regex source generator
dotnet_diagnostic.MA0110.severity = error
# Use 'Count > 0' instead of 'Any()'
dotnet_diagnostic.MA0112.severity = error
# Raw String contains an implicit end of line character (if you compile on Windows you may get CRLFs in string literals)
dotnet_diagnostic.MA0136.severity = warning
# Both if and else branch have identical code
dotnet_diagnostic.MA0140.severity = warning
# Use pattern matching instead of inequality operators for null check
dotnet_diagnostic.MA0141.severity = silent
# Use pattern matching instead of equality operators for null check
dotnet_diagnostic.MA0142.severity = silent
# Use pattern matching instead of equality operators for discrete value
dotnet_diagnostic.MA0148.severity = silent
# Use pattern matching instead of inequality operators for discrete value
dotnet_diagnostic.MA0149.severity = silent
# Do not use async void methods
dotnet_diagnostic.MA0155.severity = error
# Use 'Async' suffix when a method returns IAsyncEnumerable<T>
dotnet_diagnostic.MA0156.severity = error
# Do not use 'Async' suffix when a method does not return IAsyncEnumerable<T>
dotnet_diagnostic.MA0157.severity = error
# Use ContainsKey instead of TryGetValue
dotnet_diagnostic.MA0160.severity = warning
# Use Process.Start overload with ProcessStartInfo
dotnet_diagnostic.MA0162.severity = error
# Use parentheses to make `not` pattern clearer
dotnet_diagnostic.MA0164.severity = error
# Forward the TimeProvider to methods that take one
dotnet_diagnostic.MA0166.severity = silent # redundant with MA0167
# Use an overload with a TimeProvider argument
dotnet_diagnostic.MA0167.severity = warning
# Use Equals method instead of operator (`==` call is non-overridden reference equality)
dotnet_diagnostic.MA0169.severity = error
# Type cannot be used as an attribute argument
dotnet_diagnostic.MA0170.severity = error
## Menees.Analyzers rules
# Line is too long
dotnet_diagnostic.MEN002.severity = silent
# Method is too long
dotnet_diagnostic.MEN003.severity = silent
# Property accessor is too long
dotnet_diagnostic.MEN004.severity = silent
# File is too long
dotnet_diagnostic.MEN005.severity = silent
# Use a single return
dotnet_diagnostic.MEN007.severity = silent
# File name should match type
dotnet_diagnostic.MEN008.severity = silent
# Use the preferred exception type
dotnet_diagnostic.MEN009.severity = silent
# Avoid magic numbers
dotnet_diagnostic.MEN010.severity = silent
# Flags should be powers of two
dotnet_diagnostic.MEN012.severity = silent
# Use UTC time
dotnet_diagnostic.MEN013.severity = silent
# Prefer TryGetValue
dotnet_diagnostic.MEN014.severity = warning
# Use Preferred Terms
dotnet_diagnostic.MEN015.severity = silent
# Use object-oriented methods instead of top-level statements
dotnet_diagnostic.MEN016.severity = silent
# Use Digit Separators
dotnet_diagnostic.MEN018.severity = warning
## Roslynator.Analyzers rules
# Put expression body on its own line
dotnet_diagnostic.RCS0062.severity = silent # doesn't work? we have BHI1120 ready to go anyway
# Use nameof operator
dotnet_diagnostic.RCS1015.severity = silent # redundant with CA1507
# Remove redundant boolean literal
dotnet_diagnostic.RCS1033.severity = silent # redundant with IDE0100
# Remove trailing white-space
dotnet_diagnostic.RCS1037.severity = silent # redundant with SA1028
# Remove 'partial' modifier from type with a single part
dotnet_diagnostic.RCS1043.severity = warning
# Remove original exception from throw statement
dotnet_diagnostic.RCS1044.severity = silent # redundant with MA0027
# Non-asynchronous method name should not end with 'Async'
dotnet_diagnostic.RCS1047.severity = silent # pending https://github.com/TASEmulators/BizHawk/issues/2888
# Use lambda expression instead of anonymous method
dotnet_diagnostic.RCS1048.severity = silent # redundant with BHI1001
# Simplify boolean comparison
dotnet_diagnostic.RCS1049.severity = silent # redundant with IDE0100
# Use compound assignment
dotnet_diagnostic.RCS1058.severity = silent # redundant with IDE0054
# Avoid locking on publicly accessible instance
dotnet_diagnostic.RCS1059.severity = silent
# Avoid empty catch clause that catches System.Exception
dotnet_diagnostic.RCS1075.severity = silent
# Optimize LINQ method call
dotnet_diagnostic.RCS1077.severity = silent # redundant with IDE0120
# Use 'Count/Length' property instead of 'Any' method
dotnet_diagnostic.RCS1080.severity = error
# Use --/++ operator instead of assignment
dotnet_diagnostic.RCS1089.severity = silent # redundant with IDE0054
# File contains no code
dotnet_diagnostic.RCS1093.severity = silent
# Remove redundant 'ToString' call
dotnet_diagnostic.RCS1097.severity = silent # redundant with MA0044
# Constant values should be placed on right side of comparisons
dotnet_diagnostic.RCS1098.severity = silent # comes for free w/ pattern matching
# Default label should be the last label in a switch section
dotnet_diagnostic.RCS1099.severity = silent
# Make class static
dotnet_diagnostic.RCS1102.severity = silent
# Simplify conditional expression
dotnet_diagnostic.RCS1104.severity = silent # redundant with IDE0075
# Declare type inside namespace
dotnet_diagnostic.RCS1110.severity = silent # redundant with MA0047
# Combine 'Enumerable.Where' method chain
dotnet_diagnostic.RCS1112.severity = silent # redundant with MA0029
# Add parentheses when necessary
dotnet_diagnostic.RCS1123.severity = silent
# Use coalesce expression
dotnet_diagnostic.RCS1128.severity = silent # redundant with IDE0074
# Bitwise operation on enum without Flags attribute
dotnet_diagnostic.RCS1130.severity = error
# Declare enum member with zero value (when enum has FlagsAttribute)
dotnet_diagnostic.RCS1135.severity = silent # redundant with CA1008
# Add summary to documentation comment
dotnet_diagnostic.RCS1138.severity = silent
# Add summary element to documentation comment
dotnet_diagnostic.RCS1139.severity = silent
# Use StringComparison when comparing strings
dotnet_diagnostic.RCS1155.severity = silent # redundant with CA1862
# Use string.Length instead of comparison with empty string
dotnet_diagnostic.RCS1156.severity = error
# Composite enum value contains undefined flag
dotnet_diagnostic.RCS1157.severity = warning
# Static member in generic type should use a type parameter
dotnet_diagnostic.RCS1158.severity = silent # redundant with CA1000/MA0018
# Use EventHandler<T>
dotnet_diagnostic.RCS1159.severity = silent
# Abstract type should not have public constructors
dotnet_diagnostic.RCS1160.severity = error
# Unused parameter
dotnet_diagnostic.RCS1163.severity = silent # redundant with IDE0060
# Value type object is never equal to null
dotnet_diagnostic.RCS1166.severity = silent # redundant with CS0472
# Make field read-only
dotnet_diagnostic.RCS1169.severity = silent # redundant with IDE0044
# Use read-only auto-implemented property
dotnet_diagnostic.RCS1170.severity = silent # redundant with MEN017
# Simplify lazy initialization
dotnet_diagnostic.RCS1171.severity = silent # redundant with IDE0074
# Unused 'this' parameter
dotnet_diagnostic.RCS1175.severity = silent # redundant with IDE0060
# Inline lazy initialization
dotnet_diagnostic.RCS1180.severity = silent # redundant with IDE0074
# Use constant instead of field
dotnet_diagnostic.RCS1187.severity = silent
# Declare enum value as combination of names
dotnet_diagnostic.RCS1191.severity = warning
# Overriding member should not change 'params' modifier
dotnet_diagnostic.RCS1193.severity = silent # redundant with MA0081
# Implement exception constructors
dotnet_diagnostic.RCS1194.severity = silent
# Use ^ operator
dotnet_diagnostic.RCS1195.severity = warning
# Use AttributeUsageAttribute
dotnet_diagnostic.RCS1203.severity = silent # redundant with MA0010
# Use EventArgs.Empty
dotnet_diagnostic.RCS1204.severity = silent # redundant with MA0019
# Order named arguments according to the order of parameters
dotnet_diagnostic.RCS1205.severity = silent
# Return completed task instead of returning null
dotnet_diagnostic.RCS1210.severity = silent # redundant with MA0022
# Remove unused member declaration
dotnet_diagnostic.RCS1213.severity = silent # redundant with CS0414
# Use pattern matching instead of combination of 'as' operator and null check
dotnet_diagnostic.RCS1221.severity = silent # redundant with IDE0019
# Merge preprocessor directives
dotnet_diagnostic.RCS1222.severity = silent
# Make method an extension method
dotnet_diagnostic.RCS1224.severity = warning
# Make class sealed
dotnet_diagnostic.RCS1225.severity = silent
# Add paragraph to documentation comment
dotnet_diagnostic.RCS1226.severity = warning
# Validate arguments correctly
dotnet_diagnostic.RCS1227.severity = error
# Use async/await when necessary
dotnet_diagnostic.RCS1229.severity = error
# Order elements in documentation comment
dotnet_diagnostic.RCS1232.severity = silent
# Duplicate enum value
dotnet_diagnostic.RCS1234.severity = silent
# Use exception filter
dotnet_diagnostic.RCS1236.severity = warning
# Operator is unnecessary
dotnet_diagnostic.RCS1240.severity = warning
# Do not pass non-read-only struct by read-only reference
dotnet_diagnostic.RCS1242.severity = silent
# Duplicate word in a comment
dotnet_diagnostic.RCS1243.severity = warning
# Use element access
dotnet_diagnostic.RCS1246.severity = warning
# Fix documentation comment tag
dotnet_diagnostic.RCS1247.severity = silent # redundant with DOC203
# Unnecessary null-forgiving operator
dotnet_diagnostic.RCS1249.severity = warning
# Normalize format of enum flag value
dotnet_diagnostic.RCS1254.severity = silent
# Invalid argument null check
dotnet_diagnostic.RCS1256.severity = error
# Use enum field explicitly
dotnet_diagnostic.RCS1257.severity = warning
# Unnecessary enum flag
dotnet_diagnostic.RCS1258.severity = warning
# Remove empty syntax
dotnet_diagnostic.RCS1259.severity = silent # `else`/`finally` redundant with MA0090, `;;` redundant with MA0037, obj. init. doesn't work, others useless
# Resource can be disposed asynchronously
dotnet_diagnostic.RCS1261.severity = error
# Unnecessary raw string literal
dotnet_diagnostic.RCS1262.severity = silent
# Invalid reference in a documentation comment
dotnet_diagnostic.RCS1263.severity = silent # redundant with CS1572
## Microsoft.CodeAnalysis.BannedApiAnalyzers rules
# Do not use banned APIs
dotnet_diagnostic.RS0030.severity = error
## StyleCop spacing rules
# Keywords should be spaced correctly
dotnet_diagnostic.SA1000.severity = silent
# Commas should be spaced correctly
dotnet_diagnostic.SA1001.severity = silent
# Semicolons should be spaced correctly
dotnet_diagnostic.SA1002.severity = silent
# Symbols should be spaced correctly
dotnet_diagnostic.SA1003.severity = silent
# Documentation lines should begin with single space
dotnet_diagnostic.SA1004.severity = silent
# Single line comments should begin with single space
dotnet_diagnostic.SA1005.severity = silent
# Preprocessor keywords should not be preceded by space
dotnet_diagnostic.SA1006.severity = silent # SA1006PreprocessorKeywordsMustNotBePrecededBySpace very slow
# Opening parenthesis should be spaced correctly
dotnet_diagnostic.SA1008.severity = silent
# Closing parenthesis should be spaced correctly
dotnet_diagnostic.SA1009.severity = silent
# Opening square brackets should be spaced correctly
dotnet_diagnostic.SA1010.severity = silent
# Closing square brackets should be spaced correctly
dotnet_diagnostic.SA1011.severity = silent
# Opening braces should be spaced correctly
dotnet_diagnostic.SA1012.severity = silent
# Closing braces should be spaced correctly
dotnet_diagnostic.SA1013.severity = silent
# Closing generic bracket should be followed by a space
dotnet_diagnostic.SA1015.severity = silent
# Member access symbols should be spaced correctly
dotnet_diagnostic.SA1019.severity = error
# Increment decrement symbols should be spaced correctly
dotnet_diagnostic.SA1020.severity = silent # SA1020IncrementDecrementSymbolsMustBeSpacedCorrectly very slow
# Negative signs should be spaced correctly
dotnet_diagnostic.SA1021.severity = silent
# Dereference and access of symbols should be spaced correctly
dotnet_diagnostic.SA1023.severity = silent
# Colons should be spaced correctly
dotnet_diagnostic.SA1024.severity = silent
# Code should not contain multiple whitespace in a row
dotnet_diagnostic.SA1025.severity = silent
# Use tabs correctly
dotnet_diagnostic.SA1027.severity = silent
# Code should not contain trailing whitespace
dotnet_diagnostic.SA1028.severity = error
## StyleCop readability rules
# Do not prefix calls with base unless local implementation exists
dotnet_diagnostic.SA1100.severity = error
# Prefix local calls with this
dotnet_diagnostic.SA1101.severity = silent
# Code should not contain multiple statements on one line
dotnet_diagnostic.SA1107.severity = silent
# Block statements should not contain embedded comments
dotnet_diagnostic.SA1108.severity = silent
# Opening parenthesis or bracket should be on declaration line
dotnet_diagnostic.SA1110.severity = silent
# Closing parenthesis should be on line of last parameter
dotnet_diagnostic.SA1111.severity = silent
# Parameter list should follow declaration
dotnet_diagnostic.SA1114.severity = silent
# Split parameters should start on line after declaration
dotnet_diagnostic.SA1116.severity = silent
# Parameters should be on same line or separate lines
dotnet_diagnostic.SA1117.severity = silent
# Parameter should not span multiple lines
dotnet_diagnostic.SA1118.severity = silent
# Comments should contain text
dotnet_diagnostic.SA1120.severity = warning
# Use built-in type alias
dotnet_diagnostic.SA1121.severity = silent # SA1121UseBuiltInTypeAlias very slow
# Use string.Empty for empty strings
dotnet_diagnostic.SA1122.severity = silent
# Generic type constraints should be on their own line
dotnet_diagnostic.SA1127.severity = silent
# Put constructor initializers on their own line
dotnet_diagnostic.SA1128.severity = silent
# Do not use default value type constructor
dotnet_diagnostic.SA1129.severity = error
# Use readable conditions
dotnet_diagnostic.SA1131.severity = silent
# Do not combine fields
dotnet_diagnostic.SA1132.severity = silent
# Do not combine attributes
dotnet_diagnostic.SA1133.severity = error
# Attributes should not share line
dotnet_diagnostic.SA1134.severity = silent
# Enum values should be on separate lines
dotnet_diagnostic.SA1136.severity = silent
# Elements should have the same indentation
dotnet_diagnostic.SA1137.severity = warning
## StyleCop ordering rules
# Elements should appear in the correct order
dotnet_diagnostic.SA1201.severity = silent
# Elements should be ordered by access
dotnet_diagnostic.SA1202.severity = silent
# Constants should appear before fields
dotnet_diagnostic.SA1203.severity = silent
# Static elements should appear before instance elements
dotnet_diagnostic.SA1204.severity = silent
# Partial elements should declare an access modifier
dotnet_diagnostic.SA1205.severity = error
# System using directives should be placed before other using directives
dotnet_diagnostic.SA1208.severity = error
# Using directives should be ordered alphabetically by namespace
dotnet_diagnostic.SA1210.severity = silent
# Using alias directives should be ordered alphabetically by alias name
dotnet_diagnostic.SA1211.severity = error
# Readonly fields should appear before non-readonly fields
dotnet_diagnostic.SA1214.severity = silent
## StyleCop naming rules
# Element should begin with upper-case letter
dotnet_diagnostic.SA1300.severity = silent
# Interface names should begin with I
dotnet_diagnostic.SA1302.severity = silent
# Const field names should begin with upper-case letter
dotnet_diagnostic.SA1303.severity = silent
# Non-private readonly fields should begin with upper-case letter
dotnet_diagnostic.SA1304.severity = silent
# Field names should begin with lower-case letter
dotnet_diagnostic.SA1306.severity = silent
# Accessible fields should begin with upper-case letter
dotnet_diagnostic.SA1307.severity = silent
# Variable names should not be prefixed
dotnet_diagnostic.SA1308.severity = silent
# Field names should not begin with underscore
dotnet_diagnostic.SA1309.severity = silent
# Field names should not contain underscore
dotnet_diagnostic.SA1310.severity = silent
# Static readonly fields should begin with upper-case letter
dotnet_diagnostic.SA1311.severity = silent
# Variable names should begin with lower-case letter
dotnet_diagnostic.SA1312.severity = silent
# Parameter names should begin with lower-case letter
dotnet_diagnostic.SA1313.severity = silent
## StyleCop maintainability rules
# Statement should not use unnecessary parenthesis # I put this rule in this section because the defaults put it here.
dotnet_diagnostic.SA1119.severity = silent
# Access modifier should be declared
dotnet_diagnostic.SA1400.severity = error
# Fields should be private
dotnet_diagnostic.SA1401.severity = silent
# File may only contain a single type
dotnet_diagnostic.SA1402.severity = silent
# Debug.Assert should provide message text
dotnet_diagnostic.SA1405.severity = silent
# Arithmetic expressions should declare precedence
dotnet_diagnostic.SA1407.severity = silent
# Conditional expressions should declare precedence
dotnet_diagnostic.SA1408.severity = silent
# Use trailing comma in multi-line initializers
dotnet_diagnostic.SA1413.severity = warning
## StyleCop layout rules
# Braces for multi-line statements should not share line
dotnet_diagnostic.SA1500.severity = silent
# Statement should not be on a single line
dotnet_diagnostic.SA1501.severity = silent
# Element should not be on a single line
dotnet_diagnostic.SA1502.severity = silent
# Braces should not be omitted
dotnet_diagnostic.SA1503.severity = silent
# Opening braces should not be followed by blank line
dotnet_diagnostic.SA1505.severity = silent
# Element documentation headers should not be followed by blank line
dotnet_diagnostic.SA1506.severity = warning
# Code should not contain multiple blank lines in a row
dotnet_diagnostic.SA1507.severity = silent
# Closing braces should not be preceded by blank line
dotnet_diagnostic.SA1508.severity = warning
# Opening braces should not be preceded by blank line
dotnet_diagnostic.SA1509.severity = silent
# Chained statement blocks should not be preceded by blank line
dotnet_diagnostic.SA1510.severity = silent
# Single-line comments should not be followed by blank line
dotnet_diagnostic.SA1512.severity = silent
# Closing brace should be followed by blank line
dotnet_diagnostic.SA1513.severity = silent
# Element documentation header should be preceded by blank line
dotnet_diagnostic.SA1514.severity = warning
# Single-line comment should be preceded by blank line
dotnet_diagnostic.SA1515.severity = silent
# Elements should be separated by blank line
dotnet_diagnostic.SA1516.severity = silent
# Code should not contain blank lines at start of file
dotnet_diagnostic.SA1517.severity = warning
# Use line endings correctly at end of file
dotnet_diagnostic.SA1518.severity = silent
# Braces should not be omitted from multi-line child statement
dotnet_diagnostic.SA1519.severity = silent
# Use braces consistently
dotnet_diagnostic.SA1520.severity = silent
## StyleCop documentation rules
# Element documentation should have summary text
dotnet_diagnostic.SA1606.severity = silent
# Property documentation should have value text
dotnet_diagnostic.SA1610.severity = silent
# Element parameter documentation should match element parameters
dotnet_diagnostic.SA1612.severity = silent
# Element parameter documentation should have text
dotnet_diagnostic.SA1614.severity = warning
# Element return value documentation should have text
dotnet_diagnostic.SA1616.severity = warning
# Generic type parameter documentation should have text
dotnet_diagnostic.SA1622.severity = warning
# Property summary documentation should match accessors
dotnet_diagnostic.SA1623.severity = silent
# Element documentation should not be copied and pasted
dotnet_diagnostic.SA1625.severity = silent
# Documentation text should not be empty
dotnet_diagnostic.SA1627.severity = silent
# Documentation text should end with a period
dotnet_diagnostic.SA1629.severity = silent
# File should have header
dotnet_diagnostic.SA1633.severity = silent
# Constructor summary documentation should begin with standard text
dotnet_diagnostic.SA1642.severity = silent
# File name should match first type name
dotnet_diagnostic.SA1649.severity = silent

26
.stylecop.json Normal file
View File

@ -0,0 +1,26 @@
{
"$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/1.2.0-beta.435/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json",
"settings": {
"documentationRules": {
"documentExposedElements": false,
"documentInterfaces": false,
"documentInternalElements": false
},
"indentation": {
"useTabs": true
},
"layoutRules": {
"allowConsecutiveUsings": false,
"newlineAtEndOfFile": "require"
},
"maintainabilityRules": {
"topLevelTypes": []
},
"namingRules": {
"allowedHungarianPrefixes": [ "dx", "dy", "k", "sa" ]
},
"orderingRules": {
"usingDirectivesPlacement": "outsideNamespace"
}
}
}

25
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,25 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": ".NET Launch (console)",
"type": "clr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/output/EmuHawk.exe",
"args": [],
"cwd": "${workspaceFolder}/output",
"console": "externalTerminal",
"stopAtEntry": false
},
{
"name": ".NET Attach",
"type": "clr",
"request": "attach",
"processId": "${command:pickProcess}"
}
]
}

7
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,7 @@
{
"editor.insertSpaces": false,
"editor.tabSize": 4,
"search.exclude": {
"waterbox/**": true
}
}

24
.vscode/tasks.json vendored Normal file
View File

@ -0,0 +1,24 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "shell",
"args": [
"build",
// Ask dotnet build to generate full paths for file names.
"/property:GenerateFullPaths=true",
// Do not generate summary otherwise it leads to duplicate errors in Problems panel
"/consoleloggerparameters:NoSummary"
],
"group": "build",
"presentation": {
"reveal": "silent"
},
"problemMatcher": "$msCompile"
}
]
}

35
Assets/EmuHawkMono.sh Executable file
View File

@ -0,0 +1,35 @@
#!/bin/sh
cd "$(dirname "$(realpath "$0")")"
libpath=""
if [ "$(command -v lsb_release)" ]; then
case "$(lsb_release -i | head -n1 | cut -c17- | tr A-Z a-z)" in
"arch"|"artix"|"manjarolinux") libpath="/usr/lib";;
"fedora"|"gentoo"|"nobaralinux"|"opensuse") libpath="/usr/lib64";;
"nixos") libpath="/usr/lib"; printf "Running on NixOS? Why aren't you using the Nix expr?\n";;
"debian"|"linuxmint"|"pop"|"ubuntu") libpath="/usr/lib/x86_64-linux-gnu";;
esac
else
printf "Distro does not provide LSB release info API! (You've met with a terrible fate, haven't you?)\n"
fi
if [ -z "$libpath" ]; then
printf "%s\n" "Unknown distro, assuming system-wide libraries are in /usr/lib..."
libpath="/usr/lib"
fi
export LD_LIBRARY_PATH="$PWD/dll:$PWD:$libpath"
export MONO_CRASH_NOFILE=1
export MONO_WINFORMS_XIM_STYLE=disabled # see https://bugzilla.xamarin.com/show_bug.cgi?id=28047#c9
if [ "$1" = "--mono-no-redirect" ]; then
# printf "(passing --mono-no-redirect is no longer necessary)\n" #TODO uncomment later
shift
fi
if (ps -C "mono" -o "cmd" --no-headers | grep -Fq "EmuHawk.exe"); then
printf "(it seems EmuHawk is already running, NOT capturing output)\n" >&2
exec mono EmuHawk.exe "$@"
fi
o="$(mktemp -u)"
e="$(mktemp -u)"
mkfifo "$o" "$e"
printf "(capturing output in %s/EmuHawkMono_last*.txt)\n" "$PWD" >&2
tee EmuHawkMono_laststdout.txt <"$o" &
tee EmuHawkMono_laststderr.txt <"$e" | sed "s/.*/$(tput setaf 1)&$(tput sgr0)/" >&2 &
exec mono EmuHawk.exe "$@" >"$o" 2>"$e"

View File

@ -0,0 +1,702 @@
-- feos, 2025
-- CONSTANTS
local NULL_OBJECT = 0x88888888 -- no object at that index
local OUT_OF_BOUNDS = 0xFFFFFFFF -- no such index
local MINIMAL_ZOOM = 0.0001 -- ???
local ZOOM_FACTOR = 0.02
local PAN_FACTOR = 10
local CHAR_WIDTH = 10
local CHAR_HEIGHT = 16
local NEGATIVE_MAXIMUM = 1 << 63
local POSITIVE_MAXIMUM = ~NEGATIVE_MAXIMUM
-- sizes in bytes
local SHORT = 2
local INT = 4
local POINTER = 8
local LINE_SIZE = 256 -- sizeof(line_t) is 232, but we padded it for niceness
local MOBJ_SIZE = 512 -- sizeof(mobj_t) is 464, but we padded it for niceness
-- shortcuts
local rl = memory.read_u32_le
local rw = memory.read_u16_le
local rb = memory.read_u8_le
local rls = memory.read_s32_le
local rws = memory.read_s16_le
local rbs = memory.read_s8_le
local text = gui.text
local box = gui.drawBox
local line = gui.drawLine
--local text = gui.pixelText -- INSANELY SLOW
-- TOP LEVEL VARIABLES
local Zoom = 1
local LastSize = 0
local Init = true
-- tables
-- view offset
local Pan = {
x = 0,
y = 0
}
-- object positions bounds
local OB = {
top = POSITIVE_MAXIMUM,
left = POSITIVE_MAXIMUM,
bottom = NEGATIVE_MAXIMUM,
right = NEGATIVE_MAXIMUM
}
local LastScreenSize = {
w = client.screenwidth(),
h = client.screenheight()
}
-- forward declarations
local Offsets = {} -- mobj member offsets in bytes
local MobjType = {}
local SpriteNumber = {}
local Objects = {}
--gui.defaultPixelFont("fceux")
gui.use_surface("client")
local function mapify_x(coord)
return math.floor(((coord / 0xffff)+Pan.x)*Zoom)
end
local function mapify_y(coord)
return math.floor(((coord / 0xffff)+Pan.y)*Zoom)
end
local function in_range(var, minimum, maximum)
return var >= minimum and var <= maximum
end
local function reset_view()
Init = true
update_zoom()
end
local function zoom_out()
local newZoom = Zoom * (1 - ZOOM_FACTOR)
if newZoom < MINIMAL_ZOOM then return end
Zoom = newZoom
end
local function zoom_in()
Zoom = Zoom * (1 + ZOOM_FACTOR)
end
local function pan_left()
Pan.x = Pan.x + PAN_FACTOR/Zoom/2
end
local function pan_right()
Pan.x = Pan.x - PAN_FACTOR/Zoom/2
end
local function pan_up()
Pan.y = Pan.y + PAN_FACTOR/Zoom/2
end
local function pan_down()
Pan.y = Pan.y - PAN_FACTOR/Zoom/2
end
local function add_offset(size, name)
Offsets[name] = LastSize
-- print(name, string.format("%X \t\t %X", size, LastSize))
LastSize = size + LastSize
end
function maybe_swap(left, right)
if left > right then
local smallest = right
right = left
left = smallest
end
end
local function get_line_count(str)
local lines = 1
local longest = 0
local size = 0
for i = 1, #str do
local c = str:sub(i, i)
if c == '\n' then
lines = lines + 1
if size > longest then
longest = size
size = -1
end
end
size = size + 1
end
if size > longest then longest = size end
return lines, longest
end
local function iterate()
if Init then return end
for _, addr in ipairs(Objects) do
local x = rls(addr + Offsets.x)
local y = rls(addr + Offsets.y) * -1
local health = rls(addr + Offsets.health)
local radius = math.floor((rls(addr + Offsets.radius) >> 16) * Zoom)
local sprite = SpriteNumber[rls(addr + Offsets.sprite)]
local type = rl(addr + Offsets.type)
local pos = { x = mapify_x(x), y = mapify_y(y) }
local color = "white"
if type == 0
then type = "PLAYER" print("PLAYER")
else type = MobjType[type]
end
if health <= 0 then color = "red" end
--[[--
local z = rls(addr + Offsets.z) / 0xffff
local index = rl (addr + Offsets.index)
local tics = rl (addr + Offsets.tics)
--]]--
if in_range(pos.x, 0, client.screenwidth())
and in_range(pos.y, 0, client.screenheight())
then
text(pos.x, pos.y, string.format("%s", type), color)
box(pos.x - radius, pos.y - radius, pos.x + radius, pos.y + radius, color)
end
end
for i = 0, 100000 do
local addr = i * LINE_SIZE
if addr > 0xFFFFFF then break end
local id = rl(addr, "Lines") & 0xFFFFFFFF
if id == OUT_OF_BOUNDS then break end
if id ~= NULL_OBJECT then
local vertices_offset = 0xe8
local v1 = { x = rls(addr+vertices_offset , "Lines"),
y = -rls(addr+vertices_offset+ 4, "Lines") }
local v2 = { x = rls(addr+vertices_offset+ 8, "Lines"),
y = -rls(addr+vertices_offset+12, "Lines") }
line(
mapify_x(v1.x),
mapify_y(v1.y),
mapify_x(v2.x),
mapify_y(v2.y),
0xffcccccc)
end
end
end
local function init_objects()
for i = 0, 100000 do
local addr = i * MOBJ_SIZE
if addr > 0xFFFFFF then break end
local thinker = rl(addr) & 0xFFFFFFFF -- just to check if mobj is there
if thinker == OUT_OF_BOUNDS then break end
if thinker ~= NULL_OBJECT then
local x = rls(addr + Offsets.x) / 0xffff
local y = rls(addr + Offsets.y) / 0xffff * -1
local type = rl (addr + Offsets.type)
if type == 0
then type = "PLAYER" print("PLAYER")
else type = MobjType[type]
end
-- print(string.format("%d %f %f %02X", index, x, y, type))
if type
and not string.find(type, "MISC")
then
if x < OB.left then OB.left = x end
if x > OB.right then OB.right = x end
if y < OB.top then OB.top = y end
if y > OB.bottom then OB.bottom = y end
-- cache the Objects we need
table.insert(Objects, addr)
end
end
end
end
function update_zoom()
if not Init
and LastScreenSize.w == client.screenwidth()
and LastScreenSize.h == client.screenheight()
then return end
if OB.top ~= POSITIVE_MAXIMUM
and OB.left ~= POSITIVE_MAXIMUM
and OB.right ~= NEGATIVE_MAXIMUM
and OB.bottom ~= NEGATIVE_MAXIMUM
and not emu.islagged()
then
maybe_swap(OB.right, OB.left)
maybe_swap(OB.top, OB.bottom)
local span = { x = OB.right-OB.left+200, y = OB.bottom-OB.top+200 }
local scale = { x = client.screenwidth()/span.x, y = client.screenheight()/span.y }
local spanCenter = { x = OB.left+span.x/2, y = OB.top+span.y/2 }
Zoom = math.min(scale.x, scale.y)
local sreenCenter = { x = client.screenwidth()/Zoom/2, y = client.screenheight()/Zoom/2 }
Pan.x = -math.floor(spanCenter.x - sreenCenter.x)
Pan.y = -math.floor(spanCenter.y - sreenCenter.y)
Init = false
end
end
local function make_button(x, y, name, func)
local boxWidth = CHAR_WIDTH
local boxHeight = CHAR_HEIGHT
local lineCount, longest = get_line_count(name)
local textWidth = longest *CHAR_WIDTH
local textHeight = lineCount*CHAR_HEIGHT
local colors = { 0x66bbddff, 0xaabbddff, 0xaa88aaff }
local colorIndex = 1
if textWidth + 10 > boxWidth then boxWidth = textWidth + 10 end
if textHeight + 10 > boxHeight then boxHeight = textHeight + 10 end
local textX = x + boxWidth /2 - textWidth /2
local textY = y + boxHeight/2 - textHeight/2 - boxHeight
local mouse = input.getmouse()
local mousePos = client.transformPoint(mouse.X, mouse.Y)
if in_range(mousePos.x, x, x+boxWidth)
and in_range(mousePos.y, y-boxHeight, y ) then
if mouse.Left then
colorIndex = 3
func()
else colorIndex = 2 end
end
box(x, y, x+boxWidth, y-boxHeight, 0xaaffffff, colors[colorIndex])
text(textX, textY, name, colors[colorIndex] | 0xff000000) -- full alpha
end
--[[--
thinker 30 0
x 4 30
y 4 34
z 4 38
snext 8 3C
sprev 8 44
angle 4 4C
sprite 4 50
frame 4 54
bnext 8 58
bprev 8 60
subsector 8 68
floorz 4 70
ceilingz 4 74
dropoffz 4 78
radius 4 7C
height 4 80
momx 4 84
momy 4 88
momz 4 8C
validcount 4 90
type 4 94
info 8 98
tics 4 A0
state 8 A4
flags 8 AC
intflags 4 B4
health 4 B8
movedir 2 BC
movecount 2 BE
strafecount 2 C0
target 8 C2
reactiontime 2 CA
threshold 2 CC
pursuecount 2 CE
gear 2 D0
player 8 D2
lastlook 2 DA
spawnpoint 3A DC
tracer 8 116
lastenemy 8 11E
friction 4 126
movefactor 4 12A
touching_sectorlist 8 12E
PrevX 4 136
PrevY 4 13A
PrevZ 4 13E
pitch 4 142
index 4 146
patch_width 2 14A
iden_nums 4 14C
--]]--
add_offset(48, "thinker")
add_offset(INT, "x")
add_offset(INT, "y")
add_offset(INT, "z")
add_offset(INT, "padding1")
add_offset(POINTER, "snext")
add_offset(POINTER, "sprev")
add_offset(INT, "angle")
add_offset(INT, "sprite")
add_offset(INT, "frame")
add_offset(INT, "padding2")
add_offset(POINTER, "bnext")
add_offset(POINTER, "bprev")
add_offset(POINTER, "subsector")
add_offset(INT, "floorz")
add_offset(INT, "ceilingz")
add_offset(INT, "dropoffz")
add_offset(INT, "radius")
add_offset(INT, "height")
add_offset(INT, "momx")
add_offset(INT, "momy")
add_offset(INT, "momz")
add_offset(INT, "validcount")
add_offset(INT, "type")
add_offset(POINTER, "info")
add_offset(INT, "tics")
add_offset(INT, "padding3")
add_offset(POINTER, "state")
add_offset(8, "flags")
add_offset(INT, "intflags")
add_offset(INT, "health")
add_offset(SHORT, "movedir")
add_offset(SHORT, "movecount")
add_offset(SHORT, "strafecount")
add_offset(SHORT, "padding4")
add_offset(POINTER, "target")
add_offset(SHORT, "reactiontime")
add_offset(SHORT, "threshold")
add_offset(SHORT, "pursuecount")
add_offset(SHORT, "gear")
add_offset(POINTER, "player")
add_offset(SHORT, "lastlook")
add_offset(58, "spawnpoint")
add_offset(INT, "padding5") -- unsure where this one should be exactly
add_offset(POINTER, "tracer")
add_offset(POINTER, "lastenemy")
add_offset(INT, "friction")
add_offset(INT, "movefactor")
add_offset(POINTER, "touching_sectorlist")
add_offset(INT, "PrevX")
add_offset(INT, "PrevY")
add_offset(INT, "PrevZ")
add_offset(INT, "pitch")
add_offset(INT, "index")
add_offset(SHORT, "patch_width")
add_offset(INT, "iden_nums")
-- the rest are non-doom
-- print(Offsets)
MobjType = {
-- "NULL" = -1,
-- "ZERO",
-- "PLAYER = ZERO",
"POSSESSED",
"SHOTGUY",
"VILE",
"FIRE",
"UNDEAD",
"TRACER",
"SMOKE",
"FATSO",
"FATSHOT",
"CHAINGUY",
"TROOP",
"SERGEANT",
"SHADOWS",
"HEAD",
"BRUISER",
"BRUISERSHOT",
"KNIGHT",
"SKULL",
"SPIDER",
"BABY",
"CYBORG",
"PAIN",
"WOLFSS",
"KEEN",
"BOSSBRAIN",
"BOSSSPIT",
"BOSSTARGET",
"SPAWNSHOT",
"SPAWNFIRE",
"BARREL",
"TROOPSHOT",
"HEADSHOT",
"ROCKET",
"PLASMA",
"BFG",
"ARACHPLAZ",
"PUFF",
"BLOOD",
"TFOG",
"IFOG",
"TELEPORTMAN",
"EXTRABFG",
"MISC0",
"MISC1",
"MISC2",
"MISC3",
"MISC4",
"MISC5",
"MISC6",
"MISC7",
"MISC8",
"MISC9",
"MISC10",
"MISC11",
"MISC12",
"INV",
"MISC13",
"INS",
"MISC14",
"MISC15",
"MISC16",
"MEGA",
"CLIP",
"MISC17",
"MISC18",
"MISC19",
"MISC20",
"MISC21",
"MISC22",
"MISC23",
"MISC24",
"MISC25",
"CHAINGUN",
"MISC26",
"MISC27",
"MISC28",
"SHOTGUN",
"SUPERSHOTGUN",
"MISC29",
"MISC30",
"MISC31",
"MISC32",
"MISC33",
"MISC34",
"MISC35",
"MISC36",
"MISC37",
"MISC38",
"MISC39",
"MISC40",
"MISC41",
"MISC42",
"MISC43",
"MISC44",
"MISC45",
"MISC46",
"MISC47",
"MISC48",
"MISC49",
"MISC50",
"MISC51",
"MISC52",
"MISC53",
"MISC54",
"MISC55",
"MISC56",
"MISC57",
"MISC58",
"MISC59",
"MISC60",
"MISC61",
"MISC62",
"MISC63",
"MISC64",
"MISC65",
"MISC66",
"MISC67",
"MISC68",
"MISC69",
"MISC70",
"MISC71",
"MISC72",
"MISC73",
"MISC74",
"MISC75",
"MISC76",
"MISC77",
"MISC78",
"MISC79",
"MISC80",
"MISC81",
"MISC82",
"MISC83",
"MISC84",
"MISC85",
"MISC86",
"PUSH",
"PULL",
"DOGS",
"PLASMA1",
"PLASMA2"
}
SpriteNumber = {
-- "TROO",
"SHTG",
"PUNG",
"PISG",
"PISF",
"SHTF",
"SHT2",
"CHGG",
"CHGF",
"MISG",
"MISF",
"SAWG",
"PLSG",
"PLSF",
"BFGG",
"BFGF",
"BLUD",
"PUFF",
"BAL1",
"BAL2",
"PLSS",
"PLSE",
"MISL",
"BFS1",
"BFE1",
"BFE2",
"TFOG",
"IFOG",
"PLAY",
"POSS",
"SPOS",
"VILE",
"FIRE",
"FATB",
"FBXP",
"SKEL",
"MANF",
"FATT",
"CPOS",
"SARG",
"HEAD",
"BAL7",
"BOSS",
"BOS2",
"SKUL",
"SPID",
"BSPI",
"APLS",
"APBX",
"CYBR",
"PAIN",
"SSWV",
"KEEN",
"BBRN",
"BOSF",
"ARM1",
"ARM2",
"BAR1",
"BEXP",
"FCAN",
"BON1",
"BON2",
"BKEY",
"RKEY",
"YKEY",
"BSKU",
"RSKU",
"YSKU",
"STIM",
"MEDI",
"SOUL",
"PINV",
"PSTR",
"PINS",
"MEGA",
"SUIT",
"PMAP",
"PVIS",
"CLIP",
"AMMO",
"ROCK",
"BROK",
"CELL",
"CELP",
"SHEL",
"SBOX",
"BPAK",
"BFUG",
"MGUN",
"CSAW",
"LAUN",
"PLAS",
"SHOT",
"SGN2",
"COLU",
"SMT2",
"GOR1",
"POL2",
"POL5",
"POL4",
"POL3",
"POL1",
"POL6",
"GOR2",
"GOR3",
"GOR4",
"GOR5",
"SMIT",
"COL1",
"COL2",
"COL3",
"COL4",
"CAND",
"CBRA",
"COL6",
"TRE1",
"TRE2",
"ELEC",
"CEYE",
"FSKU",
"COL5",
"TBLU",
"TGRN",
"TRED",
"SMBT",
"SMGT",
"SMRT",
"HDB1",
"HDB2",
"HDB3",
"HDB4",
"HDB5",
"HDB6",
"POB1",
"POB2",
"BRS1",
"TLMP",
"TLP2",
"TNT1",
"DOGS",
"PLS1",
"PLS2",
"BON3",
"BON4",
"BLD2"
}
while true do
if Init then init_objects() end
iterate()
update_zoom()
make_button( 10, client.screenheight()-70, "Zoom\nIn", zoom_in )
make_button( 10, client.screenheight()-10, "Zoom\nOut", zoom_out )
make_button( 80, client.screenheight()-40, "Pan\nLeft", pan_left )
make_button(150, client.screenheight()-70, "Pan \nUp", pan_up )
make_button(150, client.screenheight()-10, "Pan\nDown", pan_down )
make_button(220, client.screenheight()-40, "Pan\nRight", pan_right )
make_button(300, client.screenheight()-10, "Reset\nView", reset_view)
text(10, client.screenheight()-170, string.format(
"Zoom: %.4f\nPanX: %s\nPanY: %s",
Zoom, Pan.x, Pan.y), 0xffbbddff)
LastScreenSize.w = client.screenwidth()
LastScreenSize.h = client.screenheight()
emu.frameadvance()
end

View File

@ -0,0 +1,32 @@
-- feos, 2019
local offX, offY, camX, camY
local addr_offX = 0x5B96
local addr_offY = 0x5B98
local addr_camX = 0x59D0
local addr_camY = 0x59D2
while true do
client.invisibleemulation(true)
local memorystate = memorysavestate.savecorestate()
offX = mainmemory.read_u16_le(addr_offX)
offY = mainmemory.read_u16_le(addr_offY)
camX = mainmemory.read_u16_le(addr_camX)
camY = mainmemory.read_u16_le(addr_camY)
Xval = camX + offX - 128
Yval = camY + offY - 80
mainmemory.write_u16_le(addr_camX, Xval)
mainmemory.write_u16_le(addr_camY, Yval)
client.seekframe(emu.framecount()+1)
client.invisibleemulation(false)
client.seekframe(emu.framecount()+1)
client.invisibleemulation(true)
memorysavestate.loadcorestate(memorystate)
memorysavestate.removestate(memorystate)
-- client.invisibleemulation(false)
emu.frameadvance()
end

View File

@ -26,9 +26,8 @@ local rl = memory.read_u32_be
local box = gui.drawBox
local text = gui.pixelText
local line = gui.drawLine
local AND = bit.band
local SHIFTL = bit.lshift
local SHIFTR = bit.rshift
memory.usememorydomain("68K RAM")
event.onframestart(function()
rngcount = 0
@ -58,7 +57,7 @@ local function PostRngRoll(object,x,y)
for i = 1, #MsgTable do
if (MsgTable[i]) then
if object==MsgTable[i].object_ then
local color = 0x00ff0000+SHIFTL((MsgTable[i].timer_-emu.framecount())*MsgStep,24)
local color = 0x00ff0000+((MsgTable[i].timer_-emu.framecount())*MsgStep << 24)
line(130,7*i+8,x,y,color)
text(120,7*i+8,string.format("%X",MsgTable[i].routine_),color)
end
@ -128,34 +127,34 @@ end
local function GetFloor(x, y)
if drawfloor==0 then return {0,0} end
x = x*16+AND(camx,0xfff0)
y = y*16+AND(camy,0xfff0)
local d6 = SHIFTR(AND(y,0xfff0),3)
x = x*16+(camx & 0xfff0)
y = y*16+(camy & 0xfff0)
local d6 = (y & 0xfff0) >> 3
local a0 = rw(d6+0xb4e8)
local d0 = SHIFTR(x+0x10,4)
local d2 = AND(x,0xf)
local d0 = x+0x10 >> 4
local d2 = x & 0xf
local a1 = 0xb806+rw(0xfb9e)
local a2 = 0x273e1e
local d3 = SHIFTR(rw(a0+d0*2),1)
local d3 = rw(a0+d0*2) >> 1
local temp = a1+d3
if temp>0xffff then return {0,0} end
local d5 = SHIFTL(rb(temp),4)+d2
local newd5 = SHIFTL(rb(a1+d3),4)+d2+15
local newd0 = AND(rb(a2+newd5,"MD CART"),0x1f)
return {AND(rb(a2+d5,"MD CART"),0x1f), newd0}
local d5 = (rb(temp) << 4)+d2
local newd5 = (rb(a1+d3) << 4)+d2+15
local newd0 = rb(a2+newd5,"MD CART") & 0x1f
return { rb(a2+d5,"MD CART") & 0x1f, newd0 }
end
local function GetWall(x, y)
if drawwalls==0 then return 0 end
x = x*16+AND(camx,0xfff0)
y = y*16+AND(camy,0xfff0)
x = x*16+(camx & 0xfff0)
y = y*16+(camy & 0xfff0)
if y<0 then return 0 end
local d6 = SHIFTR(AND(y+6,0xfff0),3)
local d6 = (y+6 & 0xfff0) >> 3
local a0 = rw(d6+0xb4e6)
local temp = a0+SHIFTR(x,4)*2
local temp = a0+(x >> 4)*2
if temp>0xffff then return 0 end
local d0 = rw(temp)
temp = 0xb808+SHIFTR(d0,1)
temp = 0xb808+(d0 >> 1)
if temp>0xffff then return 0 end
return rb(temp)
end
@ -166,10 +165,10 @@ local function DrawBG()
for i=1,21 do
local a0 = GetWall(i,j)
if a0>0 then
x1 = i*16-AND(camx,0xf)-16
y1 = j*16-AND(camy,0xf)-16
x2 = i*16-AND(camx,0xf)-1
y2 = j*16-AND(camy,0xf)-1
x1 = i*16-(camx & 0xf)-16
y1 = j*16-(camy & 0xf)-16
x2 = i*16-(camx & 0xf)-1
y2 = j*16-(camy & 0xf)-1
if a0==255 then -- normal
box(x1,y1,x2,y2,0xff00ffff,0x4400ffff)
elseif a0==228 then -- snot
@ -202,10 +201,10 @@ local function DrawBG()
if d0>0 then
local newd0 = GetFloor(i,j)[2]
if newd0>0 then
x1 = i*16-AND(camx,0xf)
y1 = j*16-AND(camy,0xf)+d0
x2 = i*16-AND(camx,0xf)+15
y2 = j*16-AND(camy,0xf)+newd0
x1 = i*16-(camx & 0xf)
y1 = j*16-(camy & 0xf)+d0
x2 = i*16-(camx & 0xf)+15
y2 = j*16-(camy & 0xf)+newd0
else
for k=-2,2 do
newd0 = GetFloor(i+1,j+k)[1]
@ -219,10 +218,10 @@ local function DrawBG()
elseif k==2 then
add = 1
end
x1 = i*16-AND(camx,0xf)
y1 = j*16-AND(camy,0xf)+d0
x2 = i*16-AND(camx,0xf)+16
y2 = j*16-AND(camy,0xf)-newd0+k*16+add
x1 = i*16-(camx & 0xf)
y1 = j*16-(camy & 0xf)+d0
x2 = i*16-(camx & 0xf)+16
y2 = j*16-(camy & 0xf)-newd0+k*16+add
--text(x1,y2,k,"red")
end
end
@ -274,7 +273,7 @@ local function Bounce()
end
local counter = rb(0xfc87)
local a0 = 0xfc88
local d0 = SHIFTL(rb(a0+counter),5)+offset
local d0 = (rb(a0+counter) << 5)+offset
local vel = rw(0x25d482+d0, "MD CART")
if vel == 0x200 then bounce = 3
elseif vel == 0x3e0 then bounce = 1
@ -334,4 +333,5 @@ while true do
Configs()
end
emu.frameadvance()
gui.clearGraphics()
end

View File

@ -1,448 +1,521 @@
-- Gargoyles, Genesis (BizHawk)
-- feos, 2015-2016
--== Shortcuts ==--
rb = memory.read_u8
rw = memory.read_u16_be
rws = memory.read_s16_be
r24 = memory.read_u24_be
rl = memory.read_u32_be
box = gui.drawBox
text = gui.pixelText
line = gui.drawLine
AND = bit.band
SHIFT = bit.rshift
--== RAM addresses ==--
levnum = 0xff00ba
LevelFlr = 0xff00c0
LevelCon = 0xff00c4
mapline_tab = 0xff0244
GlobalBase = 0xff1c76
GolBase = 0xff2c76
MapA_Buff = 0xff4af0
--== Camera Hack ==--
camhack = false
div = 1 -- scale
size = 16/div -- block size
--== Block cache ==--
col = 0 -- block color
opout = 0x33000000 -- outer opacity
opin = 0x66000000 -- inner opacity
op = 0xff000000
cache = {}
--== Other stuff ==--
XposLast = 0
YposLast = 0
room = 0
workinglast = 0
lagcount = emu.lagcount()
gui.defaultPixelFont("fceux")
function main()
rnd1 = rl (0xff001c)
rnd2 = rw (0xff0020)
working = rb (0xff0073)
xblocks = rw (0xff00d4)
mapw = rw (0xff00d4)*8
maph = rw (0xff00d6)*8
Xpos = rws(0xff0106)
Ypos = rws(0xff0108)
camx = rws(0xff010c)+16
camy = rws(0xff010e)+16
run = rb (0xff1699)
inv = rw (0xff16d2)
health = rws(0xff2cc6)
backx = camx
backy = camy
Xspd = Xpos-XposLast
Yspd = Ypos-YposLast
facing = AND(rb(GolBase+0x48),2) -- object flag 1
Background()
CamhackHUD()
Objects()
PlayerBoxes()
HUD()
RoomTime()
Input()
end
function RoomTime()
local start11 = 894--767
local start12 = 2294
local start13 = 4101
local startl4 = 6000
timer = emu.framecount()
if timer < start11 then room = timer
elseif timer < start12 then room = timer - start11
elseif timer < start13 then room = timer - start12
elseif timer < startl4 then room = timer - start13
end
text(160,214,"room cnt: "..room, "white")
end
function HUD()
text(1, 0,emu.framecount(), framecol)
text(1,20,emu.lagcount(), "red")
text(1,30,movie.rerecordcount(),"orange")
if working>0 then return end
if rndlast ~= rnd1 then rndcol = "red" else rndcol = "white" end
text( 0,214,"rnd: ","yellow")
text( 26,214,string.format("%08X %04X",rnd1,rnd2),rndcol)
text(277, 0,string.format(
"x: %4d\ny: %4d\ndx: %3d\ndy: %3d\nhp: %3d\nrun:%3d\ninv:%3d",
Xpos,Ypos,Xspd,Yspd,health,run,inv)
)
end
function CamhackHUD()
if working==0 then
-- screen edge
box((backx-camx- 1)/div,
(backy-camy- 1)/div,
(backx-camx+320)/div,
(backy-camy+224)/div,
0xff0000ff)
-- map edge
box( 0-camx/div+size,
0-camy/div+size,
mapw/div-camx/div,
maph/div-camy/div,
0xff0000ff)
end
text(260,206,string.format("cHack: %s\nscale: %d",ch,div))
end
function Background()
if working>0 then
cache = {}
return
end
if camhack then
camx = Xpos-320/2*div
camy = Ypos-224/2*div
box(0,0,320,240,0,0x66000000)
ch = "on"
else
ch = "off"
end
local border = 0
local offset = 32
local basex = camx+border
local basey = camy+border
local basei = PosToIndex(basex-offset,basey-offset)
local boundx = 320*div-border
local boundy = 224*div-border
local xblockstockeck = ((camx+boundx+offset)-(basex-offset))/size/div
local yblockstockeck = ((camy+boundy+offset)-(basey-offset))/size/div
for yblock = 0,yblockstockeck do
for xblock = 0,xblockstockeck do
local i = yblock*xblocks+xblock+basei
local x = basex+xblock*size*div
local y = basey+yblock*size*div
if InBounds(x,basex-offset,camx+boundx+offset) then
local unit = cache[i]
if unit == nil or workinglast>0 then
if InBounds(x,basex,camx+boundx)
and InBounds(y,basey,camy+boundy)
then cache[i] = GetBlock(x,y)
end
else
if not InBounds(x,basex,camx+boundx)
and not InBounds(y,basey,camy+boundy)
then cache[i] = nil
end
end
if unit ~= nil then
DrawBG(unit,x,y)
end
elseif cache[i] ~= nil
then cache[i] = nil
end
end
end
end
function DrawBG(unit, x, y)
local val= 0
local x1 = x/div-camx/div-(camx%16)/div
local x2 = x1+size-1
local y1 = y/div-camy/div-(camy%16)/div
local y2 = y1+size-1
if unit.contour ~= nil then
box(x1,y1,x2,y2,0x5500ff00,0x5500ff00)
for pixel=0,15 do
val = unit.contour[pixel]
if val>0 then
gui.drawPixel(
x1+pixel/div,
y1+val/div-1/div,
0xffffff00)
end
end
end
if unit.block>0 then
local Fn = DrawBlock[unit.block] or DrawBlockDefault
Fn(x1,y1,x2,y2)
box(x1,y1,x2,y2,col+opin,col+opout)
end
end
function GetBlock(x,y)
if working>0 then return nil end
local final = { contour={}, block=0 }
if x>0 and x<mapw
and y>0 and y<maph then
local pixels = 0
local x1 = x/div-camx/div
local x2 = x1+size-1
local y1 = y/div-camy/div
local y2 = y1+size-1
local d4 = rw(mapline_tab+SHIFT(y,4)*2)
local a1 = r24(LevelFlr+1)
local d1 = SHIFT(rw(MapA_Buff+d4+SHIFT(x,4)*2),1)
final.block = rb(a1+d1+2)
d1 = rw(a1+d1)
a1 = r24(LevelCon+1)+d1
if rb(a1)>0 or rb(a1+8)>0 then
for pixel=0,15 do
final.contour[pixel] = rb(a1+pixel)
end
else
final.contour = nil
end
else
return nil
end
return final
end
function PosToIndex(x,y)
return math.floor(x/16)+math.floor(y/16)*xblocks
end
function IndexToPos(i)
return { x=(i%xblocks)*16, y=math.floor(i/xblocks)*16 }
end
function InBounds(x,minimum,maximum)
if x>=minimum and x<=maximum
then return true
else return false
end
end
DrawBlock = {
[0x80] = function(x1,y1,x2,y2) -- WALL
col = 0x00ffffff -- white
line(x1,y1,x1,y2,col+op) -- left
line(x2,y1,x2,y2,col+op) -- right
end,
[0x81] = function(x1,y1,x2,y2) -- CEILING
col = 0x00ffffff -- white
line(x1,y2,x2,y2,col+op) -- bottom
end,
[0x82] = function(x1,y1,x2,y2) -- CLIMB_U
col = 0x0000ffff -- cyan
line(x1,y2,x2,y2,col+op) -- bottom
end,
[0x83] = function(x1,y1,x2,y2) -- CLIMB_R
col = 0x0000ffff -- cyan
line(x1,y1,x1,y2,col+op) -- left
end,
[0x84] = function(x1,y1,x2,y2) -- CLIMB_L
col = 0x0000ffff -- cyan
line(x2,y1,x2,y2,col+op) -- right
end,
[0x85] = function(x1,y1,x2,y2) -- CLIMB_LR
col = 0x0000ffff -- cyan
line(x1,y1,x1,y2,col+op) -- left
line(x2,y1,x2,y2,col+op) -- right
end,
[0x86] = function(x1,y1,x2,y2) -- CLIMB_R_STAND_R
col = 0x00ffffff -- white
line(x1,y1,x2,y1,col+op) -- top
col = 0x0000ffff -- cyan
line(x1,y1,x1,y2,col+op) -- left
end,
[0x87] = function(x1,y1,x2,y2) -- CLIMB_L_STAND_L
col = 0x00ffffff -- white
line(x1,y1,x2,y1,col+op) -- top
col = 0x0000ffff -- cyan
line(x2,y1,x2,y2,col+op) -- right
end,
[0x88] = function(x1,y1,x2,y2) -- CLIMB_LR_STAND_LR
col = 0x00ffffff -- white
line(x1,y1,x2,y1,col+op) -- top
col = 0x00ff00ff -- cyan
line(x1,y1,x1,y2,col+op) -- left
col = 0x0000ffff -- cyan
line(x2,y1,x2,y2,col+op) -- right
end,
[0x70] = function(x1,y1,x2,y2) -- GRAB_SWING
col = 0x0000ff00 -- green
box(x1,y1,x2,y2,col,col+opout)
end,
[0x7f] = function(x1,y1,x2,y2) -- EXIT
col = 0x00ffff00 -- yellow
end,
[0xd0] = function(x1,y1,x2,y2) -- SPIKES
col = 0x00ff0000 -- red
box(x1,y1,x2,y2,col,col+opout)
end,
[0xd1] = function(x1,y1,x2,y2) -- SPIKES
col = 0x00ff0000 -- red
box(x1,y1,x2,y2,col,col+opout)
end
}
function DrawBlockDefault(x1,y1,x2,y2)-- LEVEL_SPECIFIC
col = 0x00ff8800 -- orange
box(x1,y1,x2,y2,col+opin,col+opout)
end
function Objects()
if working>0 then return end
for i=0,63 do
local base = GlobalBase+i*128
local flag2 = AND(rb(base+0x49),0x10) -- active
if flag2==0x10 then
local xpos = rw (base+0x00)
local ypos = rw (base+0x02)
local dmg = rb (base+0x10)
local type = rw (base+0x40)
local hp = rw (base+0x50)
local cRAM = r24(base+0x75) -- pointer to 4 collision boxes per object
local col = 0 -- collision color
local xscr = (xpos-camx)/div
local yscr = (ypos-camy)/div
for boxx=0,4 do
local x1 = (rws(cRAM+boxx*8+0)-camx)/div
local y1 = (rws(cRAM+boxx*8+2)-camy)/div
local x2 = (rws(cRAM+boxx*8+4)-camx)/div
local y2 = (rws(cRAM+boxx*8+6)-camy)/div
if boxx==0 then
col = 0xff00ff00 -- body
if type==282 or type==258 then hp = 1 end -- archer hp doesn't matter
if hp>0 and type>0 then
text(x1+2,y1+1,string.format("%d",hp),col,0x88000000,"gens")
end
elseif boxx==1 then
col = 0xffffff00 -- floor
elseif boxx==2 then
if dmg>0
then col = 0xffff0000 -- projectile
else col = 0xff8800ff -- item
end
if dmg>0 then
text(x1+2,y2+1,string.format("%d",dmg),col,0x88000000,"gens")
end
else
col = 0xffffffff -- other
end
if x1~=0x8888 and x2<320 and x1>0 and y2<224 and y1>0 then
box(x1,y1,x2,y2,col)
end
end
end
end
end
function PlayerBoxes()
if working>0 then return end
local xx = (Xpos-camx)/div
local yy = (Ypos-camy)/div
local col = 0xff00ffff
local swcol = col -- usual detection
if Yspd>0 then -- gimme swings to grab!
swcol = 0xff00ff00
elseif Yspd==0 then -- can tell that too
swcol = 0xffffffff
end
if facing==2 then
box(xx-0xf /div-2,yy-0x2c/div-1,xx-0xf /div+0,yy-0x2c/div+1,swcol) -- lefttop
else
box(xx+0xf /div-1,yy-0x2c/div-1,xx+0xf /div+1,yy-0x2c/div+1,swcol) -- rightttop
end
box(xx -1,yy-0x2c/div-1,xx +1,yy-0x2c/div+1,col) -- top
box(xx-0xf /div-2,yy-0x1f/div-1,xx-0xf /div+0,yy-0x1f/div+1,col) -- left
box(xx+0x10/div-1,yy-0x1f/div-1,xx+0x10/div+1,yy-0x1f/div+1,col) -- right
-- box(xx -1,yy-0x1f/div-1,xx +1,yy-0x1f/div+1,col) -- center
box(xx -1,yy-0x0f/div-1,xx +1,yy-0x0f/div+1,col) -- bottom
box(xx -1,yy -1,xx +1,yy +1,0xffffff00) -- feet
-- box(xx -1,yy+0x10/div-1,xx +1,yy+0x10/div+1,col) -- ground
end
function Input()
local i,u,d,l,r,a,b,c,s
if movie.isloaded() then
i = movie.getinput(emu.framecount()-1)
else
i = joypad.getimmediate()
end
if i["P1 Up" ] then u = "U" else u = " " end
if i["P1 Down" ] then d = "D" else d = " " end
if i["P1 Left" ] then l = "L" else l = " " end
if i["P1 Right"] then r = "R" else r = " " end
if i["P1 A" ] then a = "A" else a = " " end
if i["P1 B" ] then b = "B" else b = " " end
if i["P1 C" ] then c = "C" else c = " " end
if i["P1 Start"] then s = "S" else s = " " end
text(1,10,u..d..l..r..a..b..c..s,"yellow")
end
event.onframeend(function()
emu.setislagged(rb(0xfff6d4)==0)
if rb(0xfff6d4)==0 then
lagcount = lagcount+1
framecol = "red"
else
framecol = "white"
end
emu.setlagcount(lagcount)
rndlast = rnd1
workinglast = working
XposLast = Xpos
YposLast = Ypos
end)
while true do
main()
emu.frameadvance()
-- Gargoyles, Genesis (BizHawk)
-- feos, 2015-2017
--== Shortcuts ==--
local rb = memory.read_u8
local rw = memory.read_u16_be
local rws = memory.read_s16_be
local r24 = memory.read_u24_be
local rl = memory.read_u32_be
local box = gui.drawBox
local text = gui.text
local ptext = gui.pixelText
local line = gui.drawLine
--== RAM addresses ==--
local levnum = 0xff00ba
local LevelFlr = 0xff00c0
local LevelCon = 0xff00c4
local mapline_tab = 0xff0244
local GlobalBase = 0xff1c76
local GolBase = 0xff2c76
local MapA_Buff = 0xff4af0
--== Camera Hack ==--
local camhack = false
local div = 1 -- scale
local size = 16/div -- block size
--== Block cache ==--
local col = 0 -- block color
local opout = 0x33000000 -- outer opacity
local opin = 0x66000000 -- inner opacity
local op = 0xff000000
local cache = {}
--== Other stuff ==--
local MsgCutoff = 20
local MsgTime = 1
local MsgStep = 14
local MsgOffs = 2
local MsgTable = {}
local XposLast = 0
local YposLast = 0
local room = 0
local workinglast = 0
local wSize = client.getwindowsize()
local lagcount = emu.lagcount()
gui.defaultTextBackground(0xff000000)
--== Object types ==--
local types = {
"Goliath","Orb","Health1PLR","Health2PLR","Health1NME","Health2NME","Numeral",
"BigExplode","SmallExplode","GlassDebris","MetalDebris","WoodDebris",
"WallDebris","SignPiece","SteamVent","BreakWall","SkyLight","BreakLight",
"ThrowCrate","BreakEdgeLeft","BreakEdgeRight","Spark","Spark2","Sparks",
"Sparks2","Fireball","HomingProj1","HorzProj1","VertProj1","DirProj1",
"DirProj2","DropMine","Scratch","Icon","RaptorBot","SniperBot","SpiderBot",
"WaspBot","Xanatos","PlasmaBot","RabidHH","MorningStar","Archer","Arrow",
"Valkyrie","Axe","WeaponExp","Couldron","SpittingCouldron","FireballHead",
"FireballTrail","BigFireballHead","BigFireballTrail","Oil","OilGenerator",
"Claw","Stump","StumpBubble","StumpFire","ClawStump","StumpFireGen","Vent",
"VentSparks","Chain","FlameLick","Floor","MutVikBody","MutVikHead",
"MutVikHammer","EyeOfOdin","EyeOfOdinTrail","L1BreakWall","Catapult",
"L1BreakFloor","Gate","GateCrusher","Weight","WeightCrusher","WallFire",
"Balista","BalistaLog","PasteWall","FlameBoulder","CastlePiece",
"MutantSpiderBot","MutSpiLegs","MutSpiHead","MutSpiHeadFlame","MutSpiProj",
"MutSpiElecV","MutSpiElecH","PlasmaBall","PlasmaBallTail","PlasmaDeadHead",
"VertFlame","WallFlame","FloorFlame","OPPlatform","OPLink","OPOrb",
"Furnace","RobotGenerator","RockGenerator","BigRock","MediumRock",
"SmallRock","BigCouldronGen","BigCouldron","Trough","TroughGen","Energizer",
"Demona","TrajectoryProj","WallPaste","EdgePaste","Tentacle","Infuser",
"BigGuns","BigGunsProj","HighSignPole","HighSign","LowLight","L5Skylight",
"L5Wall","ElecGenerator","Electricity","WaspGenerator","TunnelEdge",
"ForegroundPost","Sorcerer","LightningTop","LightningBot","MDemonaWallFire",
"MDemonaFloorFire","EyeRooftopUp","EyeRooftopDn","EyeRaptor"
}
local function RoomTime()
local start11 = 894--767
local start12 = 2294
local start13 = 5468 -- 4254 -- 4101
local startl4 = 5506
local startl5 = 7117
local startl6 = 8412
local startl7 = 17117
local timer = emu.framecount()
if timer < start11 then room = timer
elseif timer < start12 then room = timer - start11
elseif timer < start13 then room = timer - start12
elseif timer < startl4 then room = timer - start13
elseif timer < startl5 then room = timer - startl4
elseif timer < startl6 then room = timer - startl5
elseif timer < startl7 then room = timer - startl6
end
text(2, 2, string.format("cx:%5d\ncy:%5d\nroom:%d", camx, camy, room), "white", "bottomright")
end
local function HUD()
--if working > 0 then return end
local rndcol = "white"
if rndlast ~= rnd1 then rndcol = "red" end
text(0, 2, string.format("RNG:%08X %04X", rnd1, rnd2), rndcol, "bottomleft")
text(2, 0, string.format(
"x: %4d\ny: %4d\ndx: %3d\ndy: %3d\nhp: %3d\nrun:%3d\ninv:%3d",
Xpos, Ypos, Xspd, Yspd, health, run, inv),
"white", "topright")
end
local function CamhackHUD()
if working == 0 then
-- screen edge
box((backx-camx- 1)/div,
(backy-camy- 1)/div,
(backx-camx+320)/div,
(backy-camy+224)/div,
0xff0000ff, 0)
-- map edge
box( 0-camx/div+size,
0-camy/div+size,
mapw/div-camx/div,
maph/div-camy/div,
0xff0000ff, 0)
end
if camhack or div > 1 then
text(0, 0, string.format("div:%d", div), "white", "topleft")
end
end
local function PosToIndex(x, y)
return (x // 16)+(y // 16)*xblocks
end
local function IndexToPos(i)
return { x=(i%xblocks)*16, y=(i // xblocks)*16 }
end
local function InBounds(x, minimum, maximum)
if x >= minimum and x <= maximum
then return true
else return false
end
end
local function GetBlock(x, y)
if working > 0 then return nil end
local final = { contour={}, block=0 }
if x > 0 and x < mapw
and y > 0 and y < maph then
local pixels = 0
local x1 = x/div-camx/div
local x2 = x1+size-1
local y1 = y/div-camy/div
local y2 = y1+size-1
local d4 = rw(mapline_tab+(y >> 4)*2)
local a1 = r24(LevelFlr+1)
local d1 = rw(MapA_Buff+d4+(x >> 4)*2) >> 1
final.block = rb(a1+d1+2)
d1 = rw(a1+d1)
a1 = r24(LevelCon+1)+d1
if rb(a1) > 0 or rb(a1+8) > 0 then
for pixel=0, 15 do
final.contour[pixel] = rb(a1+pixel)
end
else
final.contour = nil
end
else
return nil
end
return final
end
local DrawBlock = {
[0x80] = function(x1, y1, x2, y2) -- WALL
col = 0x00ffffff -- white
line(x1, y1, x1, y2, col+op) -- left
line(x2, y1, x2, y2, col+op) -- right
end,
[0x81] = function(x1, y1, x2, y2) -- CEILING
col = 0x00ffffff -- white
line(x1, y2, x2, y2, col+op) -- bottom
end,
[0x82] = function(x1, y1, x2, y2) -- CLIMB_U
col = 0x0000ffff -- cyan
line(x1, y2, x2, y2, col+op) -- bottom
end,
[0x83] = function(x1, y1, x2, y2) -- CLIMB_R
col = 0x0000ffff -- cyan
line(x1, y1, x1, y2, col+op) -- left
end,
[0x84] = function(x1, y1, x2, y2) -- CLIMB_L
col = 0x0000ffff -- cyan
line(x2, y1, x2, y2, col+op) -- right
end,
[0x85] = function(x1, y1, x2, y2) -- CLIMB_LR
col = 0x0000ffff -- cyan
line(x1, y1, x1, y2, col+op) -- left
line(x2, y1, x2, y2, col+op) -- right
end,
[0x86] = function(x1, y1, x2, y2) -- CLIMB_R_STAND_R
col = 0x00ffffff -- white
line(x1, y1, x2, y1, col+op) -- top
col = 0x0000ffff -- cyan
line(x1, y1, x1, y2, col+op) -- left
end,
[0x87] = function(x1, y1, x2, y2) -- CLIMB_L_STAND_L
col = 0x00ffffff -- white
line(x1, y1, x2, y1, col+op) -- top
col = 0x0000ffff -- cyan
line(x2, y1, x2, y2, col+op) -- right
end,
[0x88] = function(x1, y1, x2, y2) -- CLIMB_LR_STAND_LR
col = 0x00ffffff -- white
line(x1, y1, x2, y1, col+op) -- top
col = 0x00ff00ff -- cyan
line(x1, y1, x1, y2, col+op) -- left
col = 0x0000ffff -- cyan
line(x2, y1, x2, y2, col+op) -- right
end,
[0x70] = function(x1, y1, x2, y2) -- GRAB_SWING
col = 0x0000ff00 -- green
box(x1, y1, x2, y2, col, col+opout)
end,
[0x7f] = function(x1, y1, x2, y2) -- EXIT
col = 0x00ffff00 -- yellow
end,
[0xd0] = function(x1, y1, x2, y2) -- SPIKES
col = 0x00ff0000 -- red
box(x1, y1, x2, y2, col, col+opout)
end,
[0xd1] = function(x1, y1, x2, y2) -- SPIKES
col = 0x00ff0000 -- red
box(x1, y1, x2, y2, col, col+opout)
end
}
local function DrawBlockDefault(x1, y1, x2, y2) -- LEVEL_SPECIFIC
col = 0x00ff8800 -- orange
box(x1, y1, x2, y2, col+opin, col+opout)
end
local function DrawBG(unit, x, y)
local val= 0
local x1 = x/div-camx/div-(camx%16)/div
local x2 = x1+size-1
local y1 = y/div-camy/div-(camy%16)/div
local y2 = y1+size-1
if unit.contour ~= nil then
box(x1, y1, x2, y2, 0x5500ff00, 0x5500ff00)
for pixel=0, 15 do
val = unit.contour[pixel]
--[ [--
if val > 0 then
gui.drawPixel(
x1+pixel/div,
y1+val/div-1/div,
0xffffff00)
end
--]]--
end
end
if unit.block > 0 then
local Fn = DrawBlock[unit.block] or DrawBlockDefault
Fn(x1, y1, x2, y2)
box(x1, y1, x2, y2, col+opin, col+opout)
end
end
local function Background()
if working > 0 then
cache = {}
return
end
if camhack then
camx = Xpos-320/2*div
camy = Ypos-224/2*div
box(0, 0, 320, 240, 0, 0x66000000)
end
local border = 0
local offset = 32
local basex = camx+border
local basey = camy+border
local basei = PosToIndex(basex-offset, basey-offset)
local boundx = 320*div-border
local boundy = 224*div-border
local xblockstockeck = ((camx+boundx+offset)-(basex-offset))/size/div
local yblockstockeck = ((camy+boundy+offset)-(basey-offset))/size/div
for yblock = 0, yblockstockeck do
for xblock = 0, xblockstockeck do
local i = yblock*xblocks+xblock+basei
local x = basex+xblock*size*div
local y = basey+yblock*size*div
if InBounds(x, basex-offset, camx+boundx+offset) then
local unit = cache[i]
if unit == nil or workinglast > 0 then
if InBounds(x, basex, camx+boundx)
and InBounds(y, basey, camy+boundy)
then cache[i] = GetBlock(x, y)
end
else
if not InBounds(x, basex, camx+boundx)
and not InBounds(y, basey, camy+boundy)
then cache[i] = nil
end
end
if unit ~= nil then
DrawBG(unit, x, y)
end
elseif cache[i] ~= nil
then cache[i] = nil
end
end
end
CamhackHUD()
end
local function Clamp(v, vmin, vmax)
if v < vmin then v = vmin end
if v > vmax then v = vmax end
return v
end
local function Objects()
if working > 0 then return end
for i=0, 63 do
local base = GlobalBase+i*128
local flag2 = rb(base+0x49) & 0x10 -- active
if flag2 == 0x10 then
local xpos = rw (base+0x00)
local ypos = rw (base+0x02)
local state = rw (base+0x0c)
local dmg = rb (base+0x10)
local id = rw (base+0x40)
local hp = rw (base+0x50)
local cRAM = r24(base+0x75) -- pointer to 4 collision boxes per object
local xscr = (xpos-camx)/div
local yscr = (ypos-camy)/div
local num = id/6
local name = types[num]
local col = 0 -- collision color
for boxx=0, 4 do
local x0 = rw (cRAM+boxx*8)
local x1 = (rws(cRAM+boxx*8+0)-camx)/div
local y1 = (rws(cRAM+boxx*8+2)-camy)/div
local x2 = (rws(cRAM+boxx*8+4)-camx)/div
local y2 = (rws(cRAM+boxx*8+6)-camy)/div
if boxx == 0 then
col = 0xff00ff00 -- body
-- archer hp doesn't matter
if id == 282 or id == 258 then hp = 1 end
if hp > 0 and id > 0 and x0 ~= 0x8888 then
local xx = Clamp(xscr, 0, 318-string.len(name)*4)
local yy = Clamp(yscr, 0, 214)
ptext(xx, yy+2, string.format("%d", hp), col)
end
elseif boxx == 1 then
col = 0xffffff00 -- floor
elseif boxx == 2 then
if dmg > 0
then col = 0xffff0000 -- projectile
else col = 0xff8800ff -- item
end
if dmg > 0 then
text(x1*wSize+2, y2*wSize+1,
string.format("%d", dmg), col, 0x88000000)
end
else
col = 0xffffffff -- other
end
if x1 ~= 0x8888
and x1 <= 320 and x2 >= 0
and y1 <= 224 and y2 >= 0 then
box(x1, y1, x2, y2, col, 0)
end
end
end
end
end
local function PostRndRoll()
for i = 1,#MsgTable do
if MsgTable[i] and MsgTable[i].index == i then
local base = MsgTable[i].base
local xpos = rw(base+0x00)
local ypos = rw(base+0x02)
local id = rw(base+0x40)
local x = (xpos-camx)/div
local y = (ypos-camy)/div
local num = id/6
local ymsg = 0
local yoffs = ((i-1) // MsgCutoff)*14
local name = types[num]
local color = 0xffffff00
if base == GolBase then
name = "Goliath"
elseif not name then
name = string.format("%X", base)
color = 0xff00ffff
end
if y < 224/2 then
yoffs = -yoffs
ymsg = 210
end
x = Clamp(x, 2, 320-string.len(name)*4)
y = Clamp(y, 20, 214)
line ((i-1)%MsgCutoff*MsgStep+3 +MsgOffs, ymsg+yoffs+4, x, y, color-0x88000000)
ptext((i-1)%MsgCutoff*MsgStep*wSize+MsgOffs, ymsg+yoffs, i, color)
MsgTable[i].timer = MsgTable[i].timer-1
if MsgTable[i].timer <= 0 then
MsgTable[i] = nil
end
end
end
end
local function PlayerBoxes()
if working > 0 then return end
local xx = (Xpos-camx)/div
local yy = (Ypos-camy)/div
local col = 0xff00ffff
local swcol = col -- usual detection
if Yspd > 0 then -- gimme swings to grab!
swcol = 0xff00ff00
elseif Yspd == 0 then -- can tell that too
swcol = 0xffffffff
end
if facing == 2
then box(xx-0xf /div-2, yy-0x2c/div-1, xx-0xf/div+0, yy-0x2c/div+1, swcol, 0) -- lefttop
else box(xx+0xf /div , yy-0x2c/div-1, xx+0xf/div+2, yy-0x2c/div+1, swcol, 0) -- rightttop
end
box(xx -1, yy-0x2c/div-1, xx +1, yy-0x2c/div+1, col, 0) -- top
box(xx-0xf /div-2, yy-0x1f/div-1, xx-0xf /div+0, yy-0x1f/div+1, col, 0) -- left
box(xx+0x10/div-1, yy-0x1f/div-1, xx+0x10/div+1, yy-0x1f/div+1, col, 0) -- right
-- box(xx -1, yy-0x1f/div-1, xx +1, yy-0x1f/div+1, col, 0) -- center
box(xx -1, yy-0x0f/div-1, xx +1, yy-0x0f/div+1, col, 0) -- bottom
box(xx -1, yy -1, xx +1, yy +1,0xffffff00, 0) -- feet
-- box(xx -1, yy+0x10/div-1, xx +1, yy+0x10/div+1, col, 0) -- ground
end
local function Input()
local i, u, d, l, r, a, b, c, s
if movie.isloaded()
then i = movie.getinput(emu.framecount()-1)
else i = joypad.getimmediate()
end
if i["P1 Up" ] then u = "U" else u = " " end
if i["P1 Down" ] then d = "D" else d = " " end
if i["P1 Left" ] then l = "L" else l = " " end
if i["P1 Right"] then r = "R" else r = " " end
if i["P1 A" ] then a = "A" else a = " " end
if i["P1 B" ] then b = "B" else b = " " end
if i["P1 C" ] then c = "C" else c = " " end
if i["P1 Start"] then s = "S" else s = " " end
text(1, 10, u..d..l..r..a..b..c..s, "yellow")
end
event.onframeend(function()
emu.setislagged(rb(0xfff6d4) == 0)
if rb(0xfff6d4) == 0 then
lagcount = lagcount+1
framecol = "red"
else
framecol = "white"
end
emu.setlagcount(lagcount)
wSize = client.getwindowsize()
rndlast = rnd1
workinglast = working
XposLast = Xpos
YposLast = Ypos
end)
event.onmemoryexecute(function()
local a0 = emu.getregister("M68K A0") & 0xffffff
if a0 ~= 0xff4044 then
for i = 1, 200 do
if MsgTable[i] == nil then
MsgTable[i] = { index = i, timer = MsgTime, base = a0 }
break
end
end
end
end, 0x257A, "RNGseed")
local function main()
rnd1 = rl (0xff001c)
rnd2 = rw (0xff0020)
working = rb (0xff0073)
xblocks = rw (0xff00d4)
mapw = rw (0xff00d4)*8
maph = rw (0xff00d6)*8
Xpos = rws(0xff0106)
Ypos = rws(0xff0108)
camx = rws(0xff010c)+16
camy = rws(0xff010e)+16
run = rb (0xff1699)
inv = rw (0xff16d2)
health = rws(0xff2cc6)
backx = camx
backy = camy
Xspd = Xpos-XposLast
Yspd = Ypos-YposLast
facing = rb(GolBase+0x48) & 2 -- object flag 1
if working > 0 then MsgTable = {} end
Background()
PlayerBoxes()
Objects()
PostRndRoll()
HUD()
RoomTime()
end
while true do
main()
emu.frameadvance()
gui.clearGraphics()
end

View File

@ -0,0 +1,485 @@
-- The Adventures of Batman and Robin
-- 2013-2024, feos and r57shell
-- GLOBALS --
MsgTable = {}
MsgTime = 16
MsgOffs = 24
MsgCutoff = 60
RNGcount = 0
SpawnCount = 0
SpawnDelay = 0
SpawnX = 0
SpawnY = 0
Enemies = 0
Items = 0
Hearts = 0
-- SHORTCUTS --
rb = memory.read_u8
rbs = memory.read_s8
rw = memory.read_u16_be
rws = memory.read_s16_be
rl = memory.read_u32_be
rls = memory.read_s32_be
rex = event.onmemoryexecute
getr= emu.getregister
box = gui.drawBox
text= gui.pixelText
line= gui.drawLine
memory.usememorydomain("M68K BUS")
userdata.set("SpawnCount", 0)
userdata.set("SpawnOpac", 192)
function ToSigned16(num)
if num > 32768 then
num = num - (2 * 32768)
return num
else return num
end
end
function FitX(x, text)
local length = 0
if text ~= nil then length = string.len(text)*5 end
if x < 0 then x = 0
elseif x+length > 319 then x = 319-length end
return x
end
function FitY(y)
if y < 0 then y = 0
elseif y > 210 then y = 210 end
return y
end
function GetCam()
xcam = rws(0xFFDFC4)
if rb(0xFFFFF6) == 50 then
ycam = rws(0xFFDFE0)-20
else
ycam = 0
end
end
function EnemyPos(Base)
GetCam()
x1 = rws(Base + 0x12) - xcam
y1 = rws(Base + 0x14) - ycam
x2 = rws(Base + 0x16) - xcam
y2 = rws(Base + 0x18) - ycam
hp = rws(Base + 0x1E)
end
function PlayerPos()
local sbase1 = rw(0xFFAD5C) + 0xFF0000
local sbase2 = rw(0xFFADB6) + 0xFF0000
p1speedx = rls(sbase1 + 0x18) / 0x10000
p1speedy = rls(sbase1 + 0x1C) / 0x10000
p2speedx = rls(sbase2 + 0x18) / 0x10000
p2speedy = rls(sbase2 + 0x1C) / 0x10000
LIFT = rw(0xFF9024)
end
function HandleMsgTable(clear)
for i = 1, #MsgTable do
if clear then
MsgTable[i] = nil
end
if MsgTable[i] then
GetCam()
if MsgTable[i].y_ > MsgCutoff then
MsgY1 = 0
MsgY2 = 6
else
MsgY1 = 203
MsgY2 = 203
end
line(i * MsgOffs + 3, MsgY2,
MsgTable[i].x_ - xcam, MsgTable[i].y_,
0xFF0000 + (MsgTable[i].timer_ << 28))
text(i * MsgOffs , MsgY1, MsgTable[i].damage_, "red")
MsgTable[i].timer_ = MsgTable[i].timer_ - 1
if MsgTable[i].timer_ <= 0 then
MsgTable[i] = nil
end
end
end
end
function HandleDamage()
local damage = getr("M68K D0") & 0xFFFF
local base = getr("M68K A2") & 0xFFFFFF
-- print(string.format("%X", getr("M68K PC")))
EnemyPos(base)
unit = {
timer_ = MsgTime,
damage_ = damage,
x_ = x1 + xcam,
y_ = y1
}
for i = 1, 200 do
if MsgTable[i] == nil then
MsgTable[i] = unit
break
end
end
end
function Collision()
GetCam()
local a0 = getr("M68K A0") & 0xFFFFFF
local a6 = getr("M68K A6") & 0xFFFFFF
local wx1 = ToSigned16(getr("M68K D4") & 0xFFFF) - xcam
local wy1 = ToSigned16(getr("M68K D5") & 0xFFFF) - ycam
local wx2 = ToSigned16(getr("M68K D6") & 0xFFFF) - xcam
local wy2 = ToSigned16(getr("M68K D7") & 0xFFFF) - ycam
local id = rw(a6 + 2)
local damage = rw(a6 + 0x12)
-- text(wx2 + 2, wy1 + 1, string.format("%X",a6))
if damage == 0 then
damage = rw(a0 + 0x34)
end
if DamageHitbox then
box(wx1, wy1, wx2, wy2, 0xFFFF0000)
text(wx1 + 2, wy1 + 1, damage)
else
box(wx1, wy1, wx2, wy2, 0xFFFFFF00)
if id == 0x53B4 then Hearts = Hearts + 1 end
end
end
function InRange(var, num1, num2)
if var >= num1 and var <= num2
then return true
end
end
function Item()
GetCam()
local a6 = getr("M68K A6") & 0xFFFFFF
local x = rw(a6 + 0x3E) - xcam
local y = rw(a6 + 0x42)
local code = rb(a6 + 0x19)
if InRange(code, 0, 1) then return
elseif InRange(code, 7, 19) then item = "Amo" -- ammo
elseif InRange(code, 21, 23) then item = "Cha" -- fast charge
elseif InRange(code, 24, 26) then item = "Bom" -- bomb
elseif InRange(code, 27, 29) then item = "Lif" -- life
elseif InRange(code, 30, 47) then item = "HiP" -- hearts
else item = tostring(code)
end
text(x-7, y, string.format("%s" , item ), "yellow")
-- text(x-7, y, string.format("\n%X", a6+0x19), "yellow")
end
function Hitbox(address)
local i = 0
local base = rw(address)
while (base ~= 0) do
base = base + 0xFF0000
if rw(base + 2) == 0 then break end
EnemyPos(base)
if address == 0xFFDEB2 then
box(x1, y1, x2, y2, 0xFF00FF00)
elseif address == 0xFFDEBA then
box(x1, y1, x2, y2, 0xFF00FFFF)
text(FitX(x1, hp) + 2, FitY(y1) + 1, hp, 0xFFFF00FF)
-- if x2 < 0 then text(x1 + 2, y2 - 7, "x:" .. x1 ) end
-- if x1 >= 320 then text(x1 + 2, y2 - 7, "x:" .. x1 - 320) end
-- if y2 < 0 then text(x2 + 2, y2 - 7, "y:" .. y2 ) end
local offtext = ""
if x2 < 0 then offtext = offtext .. "x:" .. x1 end
if x1 >= 320 then offtext = offtext .. "x:" .. x1 - 320 end
if y2 < 0 then offtext = offtext .. "y:" .. y2 end
if y2 >= 224 then offtext = offtext .. "y:" .. y2 - 224 end
if offtext ~= "" then
text(FitX(x1, offtext), FitY(y1) - 7, offtext)
end
end
base = rw(base + 2)
i = i + 1
if i > 400 then break end
end
end
function Objects()
local level = rw(0xFFFFF5)
if level ~= 818 and level ~= 1026 then return end
Enemies = 0
Items = 0
GetCam()
local base = 0xFFAD54
for i=0,100 do
local id = rl (base)
local link = rw (base+ 6)
local ptr1 = rw (base+0x0A) + 0xFF0000
local delay = rl (base+0x2E) >> 8
local x = rws(base+0x3E)
local xsub = rb (base+0x40)
local y = rws(base+0x42)
local ysub = rb (base+0x44)
local hp = rw (base+0x52)
local ptr2 = 0
if id == 0x53B3 then ptr2 = rl(ptr1+0x2A) end
-- local code = rw (ptr2)
if base > 0 then
if ptr2 == 0x27DEE -- helicopter black
or ptr2 == 0x27F9C -- helicopter red
or ptr2 == 0x2804E -- plane black
or ptr2 == 0x28134 -- helicopter green
or ptr2 == 0x282B8 -- plane red
or ptr2 == 0x2860A -- missile
or ptr2 == 0x28DD2 -- helicopter red phase 1
or ptr2 == 0x28E08 -- helicopter red phase 2
then
Enemies = Enemies + 1
elseif ptr2 == 0x13326
or ptr2 == 0x13BDE
then
Items = Items + 1
else
text(x - xcam, y - ycam, string.format("%d", delay))
end
if delay > 0 and delay < 1000 then
SpawnDelay = delay
-- print(string.format("%d delay = %d", i, delay))
local xscr = 100
local yscr = 30 + i*10
text(xscr, yscr, string.format("delay %d: %d", i, delay))
end
end
base = link + 0xFF0000
local a5 = rl(base)
if a5 == 0x88BE then return end
end
end
function Spawns()
local level = rw(0xFFFFF5)
if level ~= 818 and level ~= 1026 then return end
local base = getr("M68K A6") & 0xFFFFFF
local ptr1 = rw(base+0x0A) + 0xFF0000
local ptr2 = rl(ptr1+0x2A)
local code = rw(ptr2)
local text = ""
SpawnX = rws(base+0x3E) - xcam
SpawnY = rws(base+0x42) - ycam
if ptr2 == 0x3A6E2 then text = "HOMING"
elseif ptr2 == 0x3A5C6 then text = "SCROLLING"
elseif ptr2 == 0x3A81E then text = "LONG 1"
elseif ptr2 == 0x3A778 then text = "LONG 2"
else text = "UNKNOWN"
end
if code ~= 0xAE6 -- drone
and code ~= 0xAF2 -- mini-missile
and code ~= 0x2384 -- item
then
userdata.set("SpawnOpac", 192)
userdata.set("SpawnCount", userdata.get("SpawnCount") + 1)
-- print(string.format("%02d - %X - %s", userdata.get("SpawnCount"), ptr2, text))
end
end
function Waves()
local level = rw(0xFFFFF5)
if level ~= 1142 then return end
GetCam()
local waveCount = rw(0xffdfb0)
text(120, 8, "Waves: " .. waveCount)
local base = 0xFFAD54
for i=0,100 do
local id = rl (base)
local link = rw (base+ 6)
local x0A = rw (base+0x0A)
local x12 = rw (base+0x12)
local x14 = rw (base+0x14)
local code = rl (base+0x1E) & 0xffffff
local delay = rl (base+0x2E) >> 8
local x = rws(base+0x3E)
local y = rws(base+0x42)
local hp = rws(base+0x52)
local nextop = rw (code)
local wait = ""
local color = 0xffffffff
if base > 0
and id ~= 0x53b4 -- projectile
and x0A ~= 0xaf16 -- batman
and not (hp <= 0 and id == 0x7D2) -- item
then
local xscr = 120
local yscr = 0 + i*7 + 14
if base == 0xFFAE62 then color = "yellow" end
if code == 0x411FC then color = 0xff00ff00 end
if code == 0x41206 or code == 0x4130E then color = "red" end
if nextop == 0x6ED2 then
wait = ":: wait enemies == 0"
elseif nextop >= 0x6EB2 and nextop <= 0x6ED2 then
wait = string.format(":: wait enemies <= %d", (0x6ED2 - nextop) / 4)
end
if x ~= 0 or y ~= 0 then
line(x - xcam, y - ycam, xscr, yscr+3, 0xAAFFFFFF)
end
text(xscr, yscr, string.format(
"%2d:%4X %4X %4X Timer:%3d %s",
i, x0A, x12, x14, delay, wait), color)
text(x - xcam - 10, y - ycam, i, 0xFF00FF00)
end
base = link + 0xFF0000
if rl(base) == 0x88BE then return end
end
end
function CalculateDelay()
local d0 = getr("M68K D0") >> 8
local d1 = getr("M68K D1") >> 8
print(string.format("Random spawn delay: %d + %d", d1, d0))
end
function PredictItem(rng)
rng = rng & 0xFFFF
local a2 = 0x29B78
local d0 = 0
local carry = rw(a2) > rng
a2 = a2 + 2
if carry then
a2 = a2 + 2
while rw(a2) > rng do
a2 = a2 + 4
end
a2 = a2 + 2
end
a2 = a2 + rw(a2) + 2
if a2 == 0x29BBA then a2 = 0 end
return rw(a2) & 0xFF
end
function RNGroll(seed1, seed2) -- subroutine $995C
local d0 = seed1
local d1 = seed2
d1 = (d1 << 1) | (d1 >> 31) -- ROL.L #1,D1
d1 = ((d1 & 0xFFFF) ~ d0) | (d1 & 0xFFFF0000) -- EOR.W D0,D1
d1 = ((d1 & 0xFFFF) << 16) | (d1 >> 16) -- SWAP.W D1
d0 = (d1 ~ d0) & 0xFFFF -- EOR.W D1,D0
d0 = ((d0 << 1) & 0xFFFF) | ((d0 << 1) >> 16) -- ROL.W #1,D0
d1 = ((d1 & 0xFFFF) ~ d0) | (d1 & 0xFFFF0000) -- EOR.W D0,D1
d1 = ((d1 & 0xFFFF) << 16) | (d1 >> 16) -- SWAP.W D1
d0 = ((d1 & 0xFFFF) ~ d0) -- EOR.W D1,D0
return {(d0 & 0xFFFF), d1}
end
function ItemPrediction()
local RNG1 = rw (0xFFF5FC)
local RNG2 = rl (0xFFF5FE)
local RNG = RNGroll(RNG1, RNG2)
local RNG = RNGroll(RNG[1], RNG[2])
local item = PredictItem(RNG[1])
gui.text(0, 170, string.format("%2X", item),"yellow")
end
function Main()
local color0 = "yellow"
local color1 = "yellow"
local color2 = "yellow"
local base1 = 0xFFAD54
local base2 = 0xFFADAE
-- local hp1 = rw (0xFFF654)
-- local life1 = rw (0xFFF644)
local level = rw (0xFFFFF5)
local X1 = rw (base1 + 0x3E)
local X1sub = rb (base1 + 0x40)
local Y1 = rws(base1 + 0x42)
local Y1sub = rb (base1 + 0x44)
local X2 = rw (base2 + 0x3E)
local X2sub = rb (base2 + 0x40)
local Y2 = rws(base2 + 0x42)
local Y2sub = rb (base2 + 0x44)
local RNG1 = rw (0xFFF5FC)
-- local RNG2 = rl (0xFFF5FE)
local Weapon1 = rb (0xFFF67B)
local Weapon2 = rb (0xFFF6BB)
local Charge1 = (rw(0xFFF658) - 0x2800) / -0x80
local Charge2 = (rw(0xFFF698) - 0x2800) / -0x80
local ScreenLock = rw (0xFFDFC0)
if Charge1 <= 0 then Charge1 = 0 color1 = "red" end
if Charge2 <= 0 then Charge2 = 0 color2 = "red" end
if RNGcount > 1 then color0 = "red" end
HandleMsgTable()
PlayerPos()
Objects()
Waves()
if level == 818 or level == 1026 then
line(30, 42, SpawnX, SpawnY, 0x00FF00 + (userdata.get("SpawnOpac") << 24))
text( 0, 35, string.format("Obj: %d", userdata.get("SpawnCount")), 0xFF00FF00)
text( 0, 49, string.format("%d %d %s", Enemies, Items, Hearts/2))
if SpawnDelay > 0 and SpawnDelay < 1000 then
text(0, 42, string.format("Del: %d", SpawnDelay), "yellow")
end
end
text( 1, 217, string.format("RNG:%X" , RNG1))
text( 40, 217, string.format("Lock:%d" , ScreenLock))
text( 81, 210, string.format("Pos: %d.%d\nSpd: %.5f", X1, X1sub, p1speedx))
text(137, 210, string.format("/ %d.%d\n/ %.5f" , Y1, Y1sub, p1speedy))
text( 80, 22, string.format("%2.0f" , Charge1), color1)
-- text(235, 20, string.format("%2.0f" , Charge2), color2)
text( 34, 217, string.format("%d" , RNGcount), color0)
text(180, 217, string.format("%2d" , Weapon1+1), "yellow")
-- text(300, 217, string.format("%2d" , Weapon2+1), "yellow")
-- text(203, 210, string.format("Pos: %d.%d\nSpd: %.5f", X2, X2sub, p2speedx), 0xFF00FF00)
-- text(260, 210, string.format("/ %d.%d\n/ %.5f" , Y2, Y2sub, p2speedy), 0xFF00FF00)
Hitbox(0xFFDEB2)
Hitbox(0xFFDEBA)
RNGcount = 0
if rb(0xFF4633) == 5 then
-- text(143,3,string.format(" %2d", LIFT), 0xFFFF00FF, clear)
end
DER = rw(0xFFAEA0)
-- text(135,3,string.format(" %2d", DER), 0xFFFF00FF, clear)
-- emu.frameadvance()
-- gui.clearGraphics()
end
event.onframeend(function()
local spawnOpac = userdata.get("SpawnOpac") - 4
if spawnOpac < 0 then spawnOpac = 0 end
userdata.set("SpawnOpac", spawnOpac)
Main()
end)
event.onframestart(function()
SpawnDelay1 = 0
SpawnDelay2 = 0
Hearts = 0
ItemPrediction()
end)
event.onloadstate(function()
Enemies = 0
Items = 0
Hearts = 0
SpawnCount = 0
return HandleMsgTable(1)
end)
rex(function() DamageHitbox = false end , 0x375A, "DamageHitbox-")
rex(function() DamageHitbox = true end , 0x375E, "DamageHitbox+")
rex(function() DamageHitbox = false end , 0x3768, "DamageHitbox-")
rex(function() DamageHitbox = true end , 0x376C, "DamageHitbox+")
rex(function() DamageHitbox = false end , 0x65C4, "DamageHitbox-")
rex(function() DamageHitbox = true end , 0x65C8, "DamageHitbox+")
rex(CalculateDelay , 0x6ADE, "Delay")
rex(function() RNGcount = RNGcount + 1 end, 0x995C, "RNGcount++")
rex(Item , 0x4738, "Item")
rex(Item , 0x4534, "Item")
rex(Spawns , 0x8DE6, "Spawns")
rex(Spawns , 0x8DCE, "Spawns")
rex(Collision , 0x8C9A, "Collision")
rex(HandleDamage , 0x1085A, "MeeleeDamage")
rex(HandleDamage , 0x10CBA, "WeaponDamage")
rex(HandleDamage , 0x10CC4, "WeaponDamage")

1056
Assets/Lua/Input_Display.lua Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,57 @@
---------------------------------------------------------
-- Small script for only allowing input on P1 controller
-- if both P1 and P2 holds down a specific input
--
-- Note that this script only works on systems which
-- has two or more joypads (such as NES) and not on
-- systems with just one joypad (such as Gameboy)
--
-- Author: Gikkman
---------------------------------------------------------
-- Pre-made array for resetting the P1 joypad
local reset = joypad.get(1)
for k,v in pairs(reset) do
reset[k] = ''
end
event.onframestart( function()
local p1 = joypad.get(1)
local p2 = joypad.get(2)
local consolidated = intersection(p1, p2)
gui.drawText(0,10, 'P1: ' .. dump(p1))
gui.drawText(0,25, 'P2: ' .. dump(p2))
joypad.set(consolidated, 1)
end )
event.onframeend( function()
joypad.set(reset, 1)
end )
-- Get intersection of P1 and P2 joypads
function intersection(p1, p2)
local ret = {}
for k,v in pairs(p1) do
ret[k] = p1[k] and p2[k]
end
return ret
end
-- Print all pressed buttons
function dump(o)
local s = ''
for k,v in pairs(o) do
if v then s = s .. tostring(k) .. ' ' end
end
return s
end
--------------------------------------
-- Main loop --
--------------------------------------
while true do
emu.frameadvance()
end

View File

@ -1,12 +1,28 @@
local START_FRAME = 0;
local CORNER = "topright";
local OFFSET_X = 0;
local OFFSET_Y = 0;
while true do
if (movie.isloaded()) then
fps = movie.getfps();
frames = movie.length();
tseconds = (frames / fps)
if movie.getheader()["Core"] == "Gambatte" then
clockrate = 2 ^ 21;
cycles = emu.totalexecutedcycles();
tseconds = (cycles / clockrate);
elseif movie.getheader()["Core"] == "SubGBHawk" then
clockrate = 2 ^ 22;
cycles = emu.totalexecutedcycles();
tseconds = (cycles / clockrate);
else
fps = movie.getfps();
frames = emu.framecount();
frames = frames < START_FRAME and 0 or (frames - START_FRAME);
tseconds = (frames / fps);
end
secondsraw = tseconds % 60;
shift = 10 ^ 2;
seconds = math.floor((secondsraw * shift) + 0.5) / shift;
secondsstr = string.format("%.2f", seconds)
secondsstr = string.format("%.2f", seconds);
if (seconds < 10) then
secondsstr = "0" .. secondsstr;
end
@ -23,7 +39,7 @@ while true do
if (hours > 0) then
time = "0" .. hours .. ":" .. time;
end
gui.text(0, 0, time, null, null, 1);
gui.text(OFFSET_X, OFFSET_Y, time, nil, CORNER);
end
emu.frameadvance();
end
end

View File

@ -0,0 +1,56 @@
-- Gives a cross hair UI for the stylus for DS games
local upColor = 'lime'
local downColor = 'red'
local dotColor = 'blue'
function Draw(x, y, maxX, maxY, isDown)
color = upColor
if isDown then
color = downColor
end
gui.drawLine(0, y - 1, maxX, y - 1, color, "client")
gui.drawLine(0, y, maxX, y, color, "client")
gui.drawLine(0, y + 1, maxX, y + 1, color, "client")
gui.drawLine(x - 1, 0, x - 1, maxY, color, "client")
gui.drawLine(x, 0, x, maxY, color, "client")
gui.drawLine(x + 1, 0, x + 1, maxY, color, "client")
if isDown then
gui.drawPixel(x - 1, y - 1, dotColor, "client")
gui.drawPixel(x, y - 1, dotColor, "client")
gui.drawPixel(x + 1, y - 1, dotColor, "client")
gui.drawPixel(x - 1, y, dotColor, "client")
gui.drawPixel(x, y, dotColor, "client")
gui.drawPixel(x + 1, y, dotColor, "client")
gui.drawPixel(x - 1, y + 1, dotColor, "client")
gui.drawPixel(x, y + 1, dotColor, "client")
gui.drawPixel(x + 1, y + 1, dotColor, "client")
end
end
while true do
if emu.getsystemid() ~= "NDS" then
console.log('This script is for Nintendo DS only')
break
end
local btns = joypad.get()
if movie.mode() == "PLAY" and emu.framecount() > 0 then
btns = movie.getinput(emu.framecount() - 1)
end
local x = btns['Touch X']
local y = btns['Touch Y']
local isDown = btns['Touch']
local pts = client.transformPoint(x, y)
local tx = pts["x"];
local ty = pts["y"];
Draw(tx, ty, 10000, 10000, isDown)
emu.yield()
end

View File

@ -61,10 +61,10 @@ end
while true do
--*****************************************************************************
EnemyHP = mainmemory.read_u8(EHP)
gui.text(0,0,"Opponent: " .. EnemyHP, null, null, "topright")
gui.text(0,0,"Opponent: " .. EnemyHP, nil, nil, "topright")
MacHP = mainmemory.read_u8(MHP)
gui.text(0,12,"Mac: " .. MacHP, null, null, "topright")
gui.text(0,12,"Mac: " .. MacHP, nil, nil, "topright")
if IsOppDown() then
OppWillGet = mainmemory.read_u8(OppWillGetUpWith)
@ -72,8 +72,8 @@ while true do
if OppGetUpCount == -153 then
OppGetUpCount = "never!"
end
gui.text(0, 12, "Next health: " .. OppWillGet, null, null, "bottomright")
gui.text(OppGetUpX, OppGetUpY, "Will get up on: " .. OppGetUpCount, null, null, "bottomright")
gui.text(0, 12, "Next health: " .. OppWillGet, nil, nil, "bottomright")
gui.text(OppGetUpX, OppGetUpY, "Will get up on: " .. OppGetUpCount, nil, nil, "bottomright")
end
if OppIsHit() then
@ -83,7 +83,7 @@ while true do
end
if OppHitTimer > 0 then
gui.text(0, 0, "Damage: " .. OppHitToDisplay, null, null, "bottomright")
gui.text(0, 0, "Damage: " .. OppHitToDisplay, nil, nil, "bottomright")
end

View File

@ -177,49 +177,49 @@ pitchtype = mainmemory.read_u8(pitchtypeAddr);
--What the pitcher will pitch
if (pitchtype == 0) then
gui.text(0,0,"Sinker!!", null, null, "bottomright");
gui.text(0,0,"Sinker!!", nil, nil, "bottomright");
end
if (pitchtype == 2) then
gui.text(0,0, "Fast Ball", null, null, "bottomright")
gui.text(0,0, "Fast Ball", nil, nil, "bottomright")
end
if (pitchtype == 1) then
gui.text(0,0,"Regular Pitch", null, null, "bottomright")
gui.text(0,0,"Regular Pitch", nil, nil, "bottomright")
end
--Top of Inning
if (inningtb == 0) then
gui.text(0,0, "Health " .. mainmemory.read_u8(0x061D), null, null, "topright")
gui.text(0,12,"Drop " .. mainmemory.read_u8(0x0617) % 16, null, null, "topright")
gui.text(0,24,"CurveL " .. mainmemory.read_u8(0x061C) / 16, null, null, "topright")
gui.text(0,36,"CurveR " .. mainmemory.read_u8(0x061C) % 16, null, null, "topright")
gui.text(0,48,"Fast SP " .. mainmemory.read_u8(0x061B), null, null, "topright")
gui.text(0,60,"Reg SP " .. mainmemory.read_u8(0x061A), null, null, "topright")
gui.text(0,72,"Sink SP " .. mainmemory.read_u8(0x0619), null, null, "topright")
gui.text(0,0, "Health " .. mainmemory.read_u8(0x061D), nil, nil, "topright")
gui.text(0,12,"Drop " .. mainmemory.read_u8(0x0617) % 16, nil, nil, "topright")
gui.text(0,24,"CurveL " .. mainmemory.read_u8(0x061C) / 16, nil, nil, "topright")
gui.text(0,36,"CurveR " .. mainmemory.read_u8(0x061C) % 16, nil, nil, "topright")
gui.text(0,48,"Fast SP " .. mainmemory.read_u8(0x061B), nil, nil, "topright")
gui.text(0,60,"Reg SP " .. mainmemory.read_u8(0x061A), nil, nil, "topright")
gui.text(0,72,"Sink SP " .. mainmemory.read_u8(0x0619), nil, nil, "topright")
P1currPower = mainmemory.read_u8(P1currHitterPowerAddr) + (mainmemory.read_u8(P1currHitterPowerAddr+1) * 256);
gui.text(0,108, "Power: " .. P1currPower, null, null, "topright");
gui.text(0,108, "Power: " .. P1currPower, nil, nil, "topright");
P1currSpeed = mainmemory.read_u8(P1currSpeedAddr);
gui.text(0,120, "Speed: " .. P1currSpeed, null, null, "topright");
gui.text(0,120, "Speed: " .. P1currSpeed, nil, nil, "topright");
P1currCt = mainmemory.read_u8(P1currContactAddr);
gui.text(0,132, "Contact: " .. P1currCt, null, null, "topright");
gui.text(0,132, "Contact: " .. P1currCt, nil, nil, "topright");
end
--Bottom of Inning
if (inningtb == 0x10) then
gui.text(0,0,"Health " .. mainmemory.read_u8(0x060D), null, null, "topright")
gui.text(0,12,"Drop " .. mainmemory.read_u8(0x0607) % 16, null, null, "topright")
gui.text(0,24,"CurveL " .. mainmemory.read_u8(0x060C) / 16, null, null, "topright")
gui.text(0,36,"CurveR " .. mainmemory.read_u8(0x060C) % 16, null, null, "topright")
gui.text(0,48,"Fast SP " .. mainmemory.read_u8(0x060B), null, null, "topright")
gui.text(0,60,"Reg SP " .. mainmemory.read_u8(0x060A), null, null, "topright")
gui.text(0,72,"Sink SP " .. mainmemory.read_u8(0x0609), null, null, "topright")
gui.text(0,0,"Health " .. mainmemory.read_u8(0x060D), nil, nil, "topright")
gui.text(0,12,"Drop " .. mainmemory.read_u8(0x0607) % 16, nil, nil, "topright")
gui.text(0,24,"CurveL " .. mainmemory.read_u8(0x060C) / 16, nil, nil, "topright")
gui.text(0,36,"CurveR " .. mainmemory.read_u8(0x060C) % 16, nil, nil, "topright")
gui.text(0,48,"Fast SP " .. mainmemory.read_u8(0x060B), nil, nil, "topright")
gui.text(0,60,"Reg SP " .. mainmemory.read_u8(0x060A), nil, nil, "topright")
gui.text(0,72,"Sink SP " .. mainmemory.read_u8(0x0609), nil, nil, "topright")
P2currPower = mainmemory.read_u8(P2currHitterPowerAddr) + (mainmemory.read_u8(P2currHitterPowerAddr+1) * 256);
gui.text(0,108, "Power: " .. P2currPower, null, null, "topright");
gui.text(0,108, "Power: " .. P2currPower, nil, nil, "topright");
P2currSpeed = mainmemory.read_u8(P2currSpeedAddr);
gui.text(0,120, "Speed: " .. P2currSpeed, null, null, "topright");
gui.text(0,120, "Speed: " .. P2currSpeed, nil, nil, "topright");
P2currCt = mainmemory.read_u8(P2currContactAddr);
gui.text(0,132, "Contact: " .. P2currCt, null, null, "topright");
gui.text(0,132, "Contact: " .. P2currCt, nil, nil, "topright");
end
end
@ -228,7 +228,7 @@ end
if (PitchingScreen == 0x0036) then
p1Outs = mainmemory.read_u8(p1OutsAddr);
gui.text(0,0, "Outs " .. p1Outs, null, null, "topright");
gui.text(0,0, "Outs " .. p1Outs, nil, nil, "topright");
end
-------------------------------------------------------

View File

@ -6,6 +6,8 @@
-- Git repository: https://github.com/rodamaral/smw-tas
---------------------------------------------------------------------------
bit = (require "migration_helpers").EmuHawk_pre_2_9_bit();
--#############################################################################
-- CONFIG:
@ -948,9 +950,11 @@ local Nextframe, Starting_subframe_next_frame, Starting_subframe_next_frame, Fin
local function bizhawk_status()
Movie_active = movie.isloaded() -- BizHawk
Readonly = movie.getreadonly() -- BizHawk
Framecount = movie.length() -- BizHawk
if Movie_active then
Framecount = movie.length() -- BizHawk
Rerecords = movie.getrerecordcount() -- BizHawk
end
Lagcount = emu.lagcount() -- BizHawk
Rerecords = movie.getrerecordcount() -- BizHawk
Is_lagged = emu.islagged() -- BizHawk
Game_region = emu.getdisplaytype() -- BizHawk
@ -2616,7 +2620,7 @@ local function yoshi()
if eat_id == SMW.null_sprite_id and tongue_len == 0 and tongue_timer == 0 and tongue_wait == 0 then
Text_opacity = 0.2
end
draw_text(x_text, y_text + h, fmt("(%0s, %0s) %02d, %d, %d",
draw_text(x_text, y_text + h, fmt("(%s, %s) %02d, %d, %d",
eat_id_str, eat_type_str, tongue_len, tongue_wait, tongue_timer), COLOUR.yoshi)
;

View File

@ -13,7 +13,7 @@ buttons = { };
buttons["Up"] = false;
buttons["Down"] = true;
buttons["Left"] = "invert";
buttons["Right"] = null;
buttons["Right"] = nil;
joypad.set(buttons, 1);
pushThings = true;
@ -24,17 +24,17 @@ while true do
buttons["A"] = false;
buttons["B"] = true;
buttons["Select"] = "invert";
buttons["Start"] = null;
buttons["Start"] = nil;
joypad.set(buttons, 1);
end
if (emu.framecount() == 600) then
pushThings = false;
turnoff = { };
turnoff["A"] = null;
turnoff["B"] = null;
turnoff["Select"] = null;
turnoff["Start"] = null;
turnoff["A"] = nil;
turnoff["B"] = nil;
turnoff["Select"] = nil;
turnoff["Start"] = nil;
joypad.set(turnoff, 1);
console.writeline("cleared")

View File

@ -13,7 +13,7 @@ buttons = { };
buttons["Up"] = false;
buttons["Down"] = true;
buttons["Left"] = "invert";
buttons["Right"] = null;
buttons["Right"] = nil;
joypad.set(buttons, 1);
pushThings = true;
@ -24,17 +24,17 @@ while true do
buttons["A"] = false;
buttons["B"] = true;
buttons["Select"] = "invert";
buttons["Start"] = null;
buttons["Start"] = nil;
joypad.set(buttons, 1);
end
if (emu.framecount() == 600) then
pushThings = false;
turnoff = { };
turnoff["A"] = null;
turnoff["B"] = null;
turnoff["Select"] = null;
turnoff["Start"] = null;
turnoff["A"] = nil;
turnoff["B"] = nil;
turnoff["Select"] = nil;
turnoff["Start"] = nil;
joypad.set(turnoff, 1);
console.writeline("cleared")

View File

@ -0,0 +1,149 @@
function round(num, numDecimalPlaces)
local mult = 10^(numDecimalPlaces or 0)
return math.floor(num * mult + 0.5) / mult
end
function get_baseline()
i = 100
client.reboot_core()
t = os.clock()
while i > 0 do
emu.frameadvance()
i = i - 1
end
baseline = os.clock() - t
print('Baseline: ' .. round(baseline, 3) .. " secs")
return baseline
end
function test_mmf()
i = 100
client.reboot_core()
t = os.clock()
while i > 0 do
emu.frameadvance()
comm.mmfScreenshot()
i = i - 1
end
print('Memory mapped files: ' .. round((os.clock() - t - baseline), 3) .. " secs")
end
function test_http()
print("Testing HTTP server")
client.reboot_core()
i = 100
t = os.clock()
while i > 0 do
emu.frameadvance()
comm.httpTestGet()
i = i - 1
end
print('HTTP get: ' .. round((os.clock() - t - baseline), 3) .. " secs")
client.reboot_core()
i = 100
t = os.clock()
while i > 0 do
emu.frameadvance()
comm.httpPostScreenshot()
i = i - 1
end
print('HTTP post: ' .. round((os.clock() - t - baseline), 3) .. " secs")
end
function test_socket()
i = 100
client.reboot_core()
t = os.clock()
while i > 0 do
emu.frameadvance()
comm.socketServerScreenShot()
i = i - 1
end
print('Socket server: ' .. round((os.clock() - t - baseline), 3) .. " secs")
end
function test_socketresponse()
best_time = -100
timeouts = {1, 2, 3, 4, 5, 10, 20, 25, 50, 100, 250, 500, 1000}
comm.socketServerSetTimeout(1000)
resp = comm.socketServerScreenShotResponse()
for t, timeout in ipairs(timeouts) do
comm.socketServerSetTimeout(timeout)
client.reboot_core()
print("Trying to find minimal timeout for Socket server")
i = 100
t = os.clock()
while i > 0 do
emu.frameadvance()
resp = comm.socketServerScreenShotResponse()
if resp ~= 'ack' then
i = -100
print(resp)
print("Failed to a get a proper response")
end
i = i - 1
end
if i > -100 then
print("Best timeout: " .. timeout .. " msecs")
print("Best time: " .. round((os.clock() - t - baseline), 3) .. " secs")
break
end
end
end
function test_http_response()
err = false
print("Testing HTTP server response")
client.reboot_core()
i = 100
while i > 0 do
emu.frameadvance()
resp = comm.httpTestGet()
if resp ~= "<html><body><h1>hi!</h1></body></html>" then
print("Failed to get correct HTTP get response")
print(resp)
i = 0
err = true
end
i = i - 1
end
if not err then
print("HTTP GET looks fine: No errors occurred")
end
client.reboot_core()
i = 100
err = false
while i > 0 do
emu.frameadvance()
resp = comm.httpPostScreenshot()
if resp ~= "<html><body>OK</body></html>" then
print("Failed to get correct HTTP post response")
print(resp)
i = 0
err = true
end
i = i - 1
end
if not err then
print("HTTP POST looks fine: No errors occurred")
end
end
baseline = get_baseline()
test_socket()
test_mmf()
test_http()
print("#####################")
test_http_response()
test_socketresponse()
print()

View File

@ -0,0 +1,91 @@
print("##########################################################")
getUrl = comm.httpGetGetUrl()
print("GET URL: " .. getUrl)
postUrl = comm.httpGetPostUrl()
print("POST URL: " .. postUrl)
print("\nChecking GET URL change")
error = false
comm.httpSetGetUrl('a')
if (getUrl ~= comm.httpGetGetUrl()) then
comm.httpSetGetUrl(getUrl)
error = (getUrl ~= comm.httpGetGetUrl())
else
error = true
end
if error == false then
print("Get URL was successfully changed")
else
print("Error while changing Get URL")
end
print("\nChecking POST URL change")
error = false
comm.httpSetPostUrl('a')
if (postUrl ~= comm.httpGetPostUrl()) then
comm.httpSetPostUrl(postUrl)
error = (postUrl ~= comm.httpGetPostUrl())
else
error = true
end
if error == false then
print("Post URL was successfully changed")
else
print("Error while changing Post URL")
end
print("\nChecking GET request")
getResponse = comm.httpGet("http://tasvideos.org/BizHawk.html")
if string.find(getResponse, "Bizhawk") then
print("GET seems to work")
else
print("Either the Bizhawk site is down or the GET does not work")
end
print("\nChecking memory mapped filed")
size = comm.mmfScreenshot()
if size > 0 then
print("Memory mapped file was successfully written")
else
print("Failed to write memory mapped file")
end
mmf_filename = comm.mmfGetFilename()
print("MMF filename: " .. mmf_filename)
comm.mmfSetFilename("deleteme.tmp")
error = false
if (mmf_filename ~= comm.mmfGetFilename()) then
comm.mmfSetFilename(mmf_filename)
error = (mmf_filename ~= comm.mmfGetFilename())
else
error = true
end
if error == false then
print("MMF filename successfully changed")
else
print("MMF filename change failed")
end
print("Writing to MMF")
message = "ABC"
resp_n = tonumber(comm.mmfWrite(mmf_filename, message))
if (resp_n ~= string.len(message)) then
print("Failed to write to MMF")
else
resp = comm.mmfRead(mmf_filename, string.len(message))
if (resp ~= message) then
print("Failed to read from MMF")
else
print("MMF read and read OK")
end
end
print("\nTests finished")
print("Please run TestCommunication_All.lua with the supplied Python server for a more comprehensive test")

View File

@ -0,0 +1,22 @@
local helpers = {};
helpers.EmuHawk_pre_2_9_bit = function()
local wrapped_bit = {
band = function(val, amt) return val & amt; end,
bnot = function(val) return ~val; end,
bor = function(val, amt) return val | amt; end,
bxor = function(val, amt) return val ~ amt; end, -- not a typo
lshift = function(val, amt) return val << amt; end,
rol = bit.rol,
ror = bit.ror,
rshift = function(val, amt) return val >> amt; end,
arshift = bit.arshift,
check = bit.check,
set = bit.set,
clear = bit.clear,
byteswap_16 = bit.byteswap_16,
byteswap_32 = bit.byteswap_32,
byteswap_64 = bit.byteswap_64,
};
return wrapped_bit;
end;
return helpers;

BIN
Assets/Lua/mime/core.dll Normal file

Binary file not shown.

BIN
Assets/Lua/socket/core.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,32 +0,0 @@
struct input
{
float2 video_size;
float2 texture_size;
float2 output_size;
};
void main_vertex
(
float4 position : POSITION,
out float4 oPosition : POSITION,
uniform float4x4 modelViewProj,
float2 tex : TEXCOORD,
uniform input IN,
out float2 oTexcoord : TEXCOORD
)
{
oPosition = mul(modelViewProj, position);
oTexcoord = tex;
}
uniform float uIntensity;
float4 main_fragment (in float2 texcoord : TEXCOORD, in float2 wpos : WPOS, uniform sampler2D s_p : TEXUNIT0) : COLOR
{
float4 temp = tex2D(s_p,texcoord);
if(floor(wpos.y/2) != floor(wpos.y)/2) temp.rgb *= uIntensity;
return temp;
}

View File

@ -0,0 +1,34 @@
#ifdef VERTEX
uniform mat4 MVPMatrix;
in vec4 VertexCoord;
in vec2 TexCoord;
out vec2 vTex;
void main()
{
gl_Position = MVPMatrix * VertexCoord;
vTex = TexCoord;
}
#endif
#ifdef FRAGMENT
uniform float uIntensity;
uniform sampler2D s_p;
in vec2 vTex;
out vec4 FragColor;
void main()
{
vec4 temp = texture(s_p,vTex);
vec2 wpos = gl_FragCoord.xy;
if(floor(wpos.y/2.0) != floor(wpos.y)/2.0) temp.rgb *= uIntensity;
FragColor = temp;
}
#endif

View File

@ -0,0 +1,25 @@
void main_vertex
(
float4 position : POSITION,
float2 tex : TEXCOORD0,
uniform float4x4 modelViewProj,
out float4 oPosition : POSITION,
out float2 oTex0 : TEXCOORD0,
out float oTex1 : TEXCOORD1
)
{
oPosition = mul(modelViewProj, position);
oTex0 = tex;
oTex1 = position.y;
}
uniform float uIntensity;
float4 main_fragment (in float4 vpos : POSITION, in float2 tex0 : TEXCOORD0, in float tex1 : TEXCOORD1, uniform sampler2D s_p : TEXUNIT0) : COLOR
{
float4 temp = tex2D(s_p, tex0);
if (floor(tex1 / 2) != floor(tex1) / 2) temp.rgb *= uIntensity;
return temp;
}

View File

@ -1,152 +0,0 @@
/* COMPATIBILITY
- HLSL compilers
- Cg compilers
*/
/*
bicubic-fast Shader
Copyright (C) 2011-2015 Hyllian - sergiogdb@gmail.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
const static float4x4 invX = float4x4(-1.0/6.0, 0.5, -1.0/3.0, 0.0,
0.5, -1.0, -0.5, 1.0,
-0.5, 0.5, 1.0, 0.0,
1.0/6.0, 0.0, -1.0/6.0, 0.0);
// Can't init statically from variable, even though it's const ...
//const static float4x4 invY = transpose(invX);
const static float4x4 invY = float4x4(-1.0/6.0, 0.5, -0.5, 1.0/6.0,
0.5, -1.0, 0.5, 0.0,
-1.0/3.0, -0.5, 1.0, -1.0/6.0,
0.0, 1.0, 0.0, 0.0);
struct input
{
float2 video_size;
float2 texture_size;
float2 output_size;
float frame_count;
float frame_direction;
float frame_rotation;
};
struct out_vertex {
float2 texCoord : TEXCOORD0;
float4 t1 : TEXCOORD1;
float4 t2 : TEXCOORD2;
float4 t3 : TEXCOORD3;
float4 t4 : TEXCOORD4;
float4 t5 : TEXCOORD5;
float4 t6 : TEXCOORD6;
float4 t7 : TEXCOORD7;
float2 t8 : COLOR0;
};
/* VERTEX_SHADER */
out_vertex main_vertex
(
float4 position : POSITION,
out float4 oPosition : POSITION,
float2 texCoord1 : TEXCOORD0,
uniform float4x4 modelViewProj,
uniform input IN
)
{
float2 ps = float2(1.0/IN.texture_size.x, 1.0/IN.texture_size.y);
float dx = ps.x;
float dy = ps.y;
oPosition = mul(modelViewProj, position);
// This line fix a bug in ATI cards.
float2 tex = texCoord1 + float2(0.0000001, 0.0000001);
out_vertex OUT = {
tex,
float4(tex,tex) + float4( -dx, -dy, 0.0, -dy),
float4(tex,tex) + float4( dx, -dy, 2.0*dx, -dy),
float4(tex,tex) + float4( -dx, 0.0, dx, 0.0),
float4(tex,tex) + float4(2.0*dx, 0.0, -dx, dy),
float4(tex,tex) + float4( 0.0, dy, dx, dy),
float4(tex,tex) + float4(2.0*dx, dy, -dx, 2.0*dy),
float4(tex,tex) + float4( 0.0, 2.0*dy, dx, 2.0*dy),
tex + float2(2.0*dx, 2.0*dy)
};
return OUT;
}
float4 main_fragment(in out_vertex VAR, uniform sampler2D s_p : TEXUNIT0, uniform input IN) : COLOR
{
float2 fp = frac(VAR.texCoord*IN.texture_size);
float3 c00 = tex2D(s_p, VAR.t1.xy).xyz;
float3 c01 = tex2D(s_p, VAR.t1.zw).xyz;
float3 c02 = tex2D(s_p, VAR.t2.xy).xyz;
float3 c03 = tex2D(s_p, VAR.t2.zw).xyz;
float3 c10 = tex2D(s_p, VAR.t3.xy).xyz;
float3 c11 = tex2D(s_p, VAR.texCoord).xyz;
float3 c12 = tex2D(s_p, VAR.t3.zw).xyz;
float3 c13 = tex2D(s_p, VAR.t4.xy).xyz;
float3 c20 = tex2D(s_p, VAR.t4.zw).xyz;
float3 c21 = tex2D(s_p, VAR.t5.xy).xyz;
float3 c22 = tex2D(s_p, VAR.t5.zw).xyz;
float3 c23 = tex2D(s_p, VAR.t6.xy).xyz;
float3 c30 = tex2D(s_p, VAR.t6.zw).xyz;
float3 c31 = tex2D(s_p, VAR.t7.xy).xyz;
float3 c32 = tex2D(s_p, VAR.t7.zw).xyz;
float3 c33 = tex2D(s_p, VAR.t8.xy).xyz;
float4x4 red_matrix = float4x4(c00.x, c01.x, c02.x, c03.x,
c10.x, c11.x, c12.x, c13.x,
c20.x, c21.x, c22.x, c23.x,
c30.x, c31.x, c32.x, c33.x);
float4x4 green_matrix = float4x4(c00.y, c01.y, c02.y, c03.y,
c10.y, c11.y, c12.y, c13.y,
c20.y, c21.y, c22.y, c23.y,
c30.y, c31.y, c32.y, c33.y);
float4x4 blue_matrix = float4x4(c00.z, c01.z, c02.z, c03.z,
c10.z, c11.z, c12.z, c13.z,
c20.z, c21.z, c22.z, c23.z,
c30.z, c31.z, c32.z, c33.z);
float4x1 invX_Px = mul(invX, float4x1(fp.x*fp.x*fp.x, fp.x*fp.x, fp.x, 1.0));
float1x4 Py_invY = mul(float1x4(fp.y*fp.y*fp.y, fp.y*fp.y, fp.y, 1.0), invY);
float red = mul(Py_invY, mul( red_matrix, invX_Px));
float green = mul(Py_invY, mul(green_matrix, invX_Px));
float blue = mul(Py_invY, mul( blue_matrix, invX_Px));
return float4(red, green, blue, 1.0);
}

View File

@ -0,0 +1,153 @@
/* COMPATIBILITY
- HLSL compilers
- Cg compilers
*/
/*
bicubic-fast Shader
Copyright (C) 2011-2015 Hyllian - sergiogdb@gmail.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
const static float4x4 invX = float4x4(-1.0/6.0, 0.5, -1.0/3.0, 0.0,
0.5, -1.0, -0.5, 1.0,
-0.5, 0.5, 1.0, 0.0,
1.0/6.0, 0.0, -1.0/6.0, 0.0);
// Can't init statically from variable, even though it's const ...
//const static float4x4 invY = transpose(invX);
const static float4x4 invY = float4x4(-1.0/6.0, 0.5, -0.5, 1.0/6.0,
0.5, -1.0, 0.5, 0.0,
-1.0/3.0, -0.5, 1.0, -1.0/6.0,
0.0, 1.0, 0.0, 0.0);
struct input
{
float2 video_size;
float2 texture_size;
float2 output_size;
float frame_count;
float frame_direction;
float frame_rotation;
};
struct out_vertex
{
float2 texCoord : TEXCOORD0;
float4 t1 : TEXCOORD1;
float4 t2 : TEXCOORD2;
float4 t3 : TEXCOORD3;
float4 t4 : TEXCOORD4;
float4 t5 : TEXCOORD5;
float4 t6 : TEXCOORD6;
float4 t7 : TEXCOORD7;
float2 t8 : COLOR0;
};
/* VERTEX_SHADER */
void main_vertex
(
float4 position : POSITION,
float2 texCoord1 : TEXCOORD0,
uniform float4x4 modelViewProj,
uniform input IN,
out float4 oPosition : POSITION,
out out_vertex oVAR
)
{
float2 ps = float2(1.0/IN.texture_size.x, 1.0/IN.texture_size.y);
float dx = ps.x;
float dy = ps.y;
oPosition = mul(modelViewProj, position);
// This line fix a bug in ATI cards.
float2 tex = texCoord1 + float2(0.0000001, 0.0000001);
out_vertex OUT =
{
tex,
float4(tex,tex) + float4( -dx, -dy, 0.0, -dy),
float4(tex,tex) + float4( dx, -dy, 2.0*dx, -dy),
float4(tex,tex) + float4( -dx, 0.0, dx, 0.0),
float4(tex,tex) + float4(2.0*dx, 0.0, -dx, dy),
float4(tex,tex) + float4( 0.0, dy, dx, dy),
float4(tex,tex) + float4(2.0*dx, dy, -dx, 2.0*dy),
float4(tex,tex) + float4( 0.0, 2.0*dy, dx, 2.0*dy),
tex + float2(2.0*dx, 2.0*dy)
};
oVAR = OUT;
}
float4 main_fragment(in float4 vpos : POSITION, in out_vertex VAR, uniform sampler2D s_p : TEXUNIT0, uniform input IN) : COLOR
{
float2 fp = frac(VAR.texCoord*IN.texture_size);
float3 c00 = tex2D(s_p, VAR.t1.xy).xyz;
float3 c01 = tex2D(s_p, VAR.t1.zw).xyz;
float3 c02 = tex2D(s_p, VAR.t2.xy).xyz;
float3 c03 = tex2D(s_p, VAR.t2.zw).xyz;
float3 c10 = tex2D(s_p, VAR.t3.xy).xyz;
float3 c11 = tex2D(s_p, VAR.texCoord).xyz;
float3 c12 = tex2D(s_p, VAR.t3.zw).xyz;
float3 c13 = tex2D(s_p, VAR.t4.xy).xyz;
float3 c20 = tex2D(s_p, VAR.t4.zw).xyz;
float3 c21 = tex2D(s_p, VAR.t5.xy).xyz;
float3 c22 = tex2D(s_p, VAR.t5.zw).xyz;
float3 c23 = tex2D(s_p, VAR.t6.xy).xyz;
float3 c30 = tex2D(s_p, VAR.t6.zw).xyz;
float3 c31 = tex2D(s_p, VAR.t7.xy).xyz;
float3 c32 = tex2D(s_p, VAR.t7.zw).xyz;
float3 c33 = tex2D(s_p, VAR.t8.xy).xyz;
float4x4 red_matrix = float4x4(c00.x, c01.x, c02.x, c03.x,
c10.x, c11.x, c12.x, c13.x,
c20.x, c21.x, c22.x, c23.x,
c30.x, c31.x, c32.x, c33.x);
float4x4 green_matrix = float4x4(c00.y, c01.y, c02.y, c03.y,
c10.y, c11.y, c12.y, c13.y,
c20.y, c21.y, c22.y, c23.y,
c30.y, c31.y, c32.y, c33.y);
float4x4 blue_matrix = float4x4(c00.z, c01.z, c02.z, c03.z,
c10.z, c11.z, c12.z, c13.z,
c20.z, c21.z, c22.z, c23.z,
c30.z, c31.z, c32.z, c33.z);
float4x1 invX_Px = mul(invX, float4x1(fp.x*fp.x*fp.x, fp.x*fp.x, fp.x, 1.0));
float1x4 Py_invY = mul(float1x4(fp.y*fp.y*fp.y, fp.y*fp.y, fp.y, 1.0), invY);
float red = mul(Py_invY, mul( red_matrix, invX_Px));
float green = mul(Py_invY, mul(green_matrix, invX_Px));
float blue = mul(Py_invY, mul( blue_matrix, invX_Px));
return float4(red, green, blue, 1.0);
}

View File

@ -1,151 +0,0 @@
/* COMPATIBILITY
- HLSL compilers
- Cg compilers
*/
/*
Copyright (C) 2010 Team XBMC
http://www.xbmc.org
Copyright (C) 2011 Stefanos A.
http://www.opentk.com
This Program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This Program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with XBMC; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
http://www.gnu.org/copyleft/gpl.html
From this forum post:
http://board.byuu.org/viewtopic.php?p=33488#p33488
*/
/* Default Vertex shader */
void main_vertex
(
float4 position : POSITION,
//float4 color : COLOR,
float2 texCoord1 : TEXCOORD0,
uniform float4x4 modelViewProj,
out float4 oPosition : POSITION,
//out float4 oColor : COLOR,
out float2 otexCoord : TEXCOORD
)
{
oPosition = mul(modelViewProj, position);
//oColor = color;
otexCoord = texCoord1;
}
struct output
{
float4 color : COLOR;
};
struct input
{
float2 video_size;
float2 texture_size;
float2 output_size;
float frame_count;
float frame_direction;
float frame_rotation;
};
float weight(float x)
{
float ax = abs(x);
// Mitchel-Netravali coefficients.
// Best psychovisual result.
const float B = 1.0 / 3.0;
const float C = 1.0 / 3.0;
// Sharper version.
// May look better in some cases.
//const float B = 0.0;
//const float C = 0.75;
if (ax < 1.0)
{
return
(
pow(x, 2.0) * ((12.0 - 9.0 * B - 6.0 * C) * ax + (-18.0 + 12.0 * B + 6.0 * C)) +
(6.0 - 2.0 * B)
) / 6.0;
}
else if ((ax >= 1.0) && (ax < 2.0))
{
return
(
pow(x, 2.0) * ((-B - 6.0 * C) * ax + (6.0 * B + 30.0 * C)) +
(-12.0 * B - 48.0 * C) * ax + (8.0 * B + 24.0 * C)
) / 6.0;
}
else
{
return 0.0;
}
}
float4 weight4(float x)
{
return float4(
weight(x - 2.0),
weight(x - 1.0),
weight(x),
weight(x + 1.0));
}
float3 pixel(float xpos, float ypos, uniform sampler2D s_p)
{
return tex2D(s_p, float2(xpos, ypos)).rgb;
}
float3 line_run(float ypos, float4 xpos, float4 linetaps, uniform sampler2D s_p)
{
return
pixel(xpos.r, ypos, s_p) * linetaps.r +
pixel(xpos.g, ypos, s_p) * linetaps.g +
pixel(xpos.b, ypos, s_p) * linetaps.b +
pixel(xpos.a, ypos, s_p) * linetaps.a;
}
output main_fragment (float2 tex : TEXCOORD0, uniform input IN, uniform sampler2D s_p : TEXUNIT0)
{
float2 stepxy = float2(1.0/IN.texture_size.x, 1.0/IN.texture_size.y);
float2 pos = tex.xy + stepxy * 0.5;
float2 f = frac(pos / stepxy);
float4 linetaps = weight4(1.0 - f.x);
float4 columntaps = weight4(1.0 - f.y);
//make sure all taps added together is exactly 1.0, otherwise some (very small) distortion can occur
linetaps /= linetaps.r + linetaps.g + linetaps.b + linetaps.a;
columntaps /= columntaps.r + columntaps.g + columntaps.b + columntaps.a;
float2 xystart = (-1.5 - f) * stepxy + pos;
float4 xpos = float4(xystart.x, xystart.x + stepxy.x, xystart.x + stepxy.x * 2.0, xystart.x + stepxy.x * 3.0);
// final sum and weight normalization
output OUT;
OUT.color = float4(line_run(xystart.y , xpos, linetaps, s_p) * columntaps.r +
line_run(xystart.y + stepxy.y , xpos, linetaps, s_p) * columntaps.g +
line_run(xystart.y + stepxy.y * 2.0, xpos, linetaps, s_p) * columntaps.b +
line_run(xystart.y + stepxy.y * 3.0, xpos, linetaps, s_p) * columntaps.a,1);
return OUT;
}

View File

@ -0,0 +1,147 @@
/* COMPATIBILITY
- HLSL compilers
- Cg compilers
*/
/*
Copyright (C) 2010 Team XBMC
http://www.xbmc.org
Copyright (C) 2011 Stefanos A.
http://www.opentk.com
This Program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This Program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with XBMC; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
http://www.gnu.org/copyleft/gpl.html
From this forum post:
http://board.byuu.org/viewtopic.php?p=33488#p33488
*/
/* Default Vertex shader */
void main_vertex
(
float4 position : POSITION,
float2 texCoord1 : TEXCOORD0,
uniform float4x4 modelViewProj,
out float4 oPosition : POSITION,
out float2 otexCoord : TEXCOORD
)
{
oPosition = mul(modelViewProj, position);
otexCoord = texCoord1;
}
struct output
{
float4 color : COLOR;
};
struct input
{
float2 video_size;
float2 texture_size;
float2 output_size;
float frame_count;
float frame_direction;
float frame_rotation;
};
float weight(float x)
{
float ax = abs(x);
// Mitchel-Netravali coefficients.
// Best psychovisual result.
const float B = 1.0 / 3.0;
const float C = 1.0 / 3.0;
// Sharper version.
// May look better in some cases.
//const float B = 0.0;
//const float C = 0.75;
if (ax < 1.0)
{
return
(
pow(x, 2.0) * ((12.0 - 9.0 * B - 6.0 * C) * ax + (-18.0 + 12.0 * B + 6.0 * C)) +
(6.0 - 2.0 * B)
) / 6.0;
}
else if ((ax >= 1.0) && (ax < 2.0))
{
return
(
pow(x, 2.0) * ((-B - 6.0 * C) * ax + (6.0 * B + 30.0 * C)) +
(-12.0 * B - 48.0 * C) * ax + (8.0 * B + 24.0 * C)
) / 6.0;
}
else
{
return 0.0;
}
}
float4 weight4(float x)
{
return float4(
weight(x - 2.0),
weight(x - 1.0),
weight(x),
weight(x + 1.0));
}
float3 pixel(float xpos, float ypos, uniform sampler2D s_p)
{
return tex2D(s_p, float2(xpos, ypos)).rgb;
}
float3 line_run(float ypos, float4 xpos, float4 linetaps, uniform sampler2D s_p)
{
return
pixel(xpos.r, ypos, s_p) * linetaps.r +
pixel(xpos.g, ypos, s_p) * linetaps.g +
pixel(xpos.b, ypos, s_p) * linetaps.b +
pixel(xpos.a, ypos, s_p) * linetaps.a;
}
output main_fragment (in float4 vpos : POSITION, float2 tex : TEXCOORD0, uniform input IN, uniform sampler2D s_p : TEXUNIT0)
{
float2 stepxy = float2(1.0/IN.texture_size.x, 1.0/IN.texture_size.y);
float2 pos = tex.xy + stepxy * 0.5;
float2 f = frac(pos / stepxy);
float4 linetaps = weight4(1.0 - f.x);
float4 columntaps = weight4(1.0 - f.y);
//make sure all taps added together is exactly 1.0, otherwise some (very small) distortion can occur
linetaps /= linetaps.r + linetaps.g + linetaps.b + linetaps.a;
columntaps /= columntaps.r + columntaps.g + columntaps.b + columntaps.a;
float2 xystart = (-1.5 - f) * stepxy + pos;
float4 xpos = float4(xystart.x, xystart.x + stepxy.x, xystart.x + stepxy.x * 2.0, xystart.x + stepxy.x * 3.0);
// final sum and weight normalization
output OUT;
OUT.color = float4(line_run(xystart.y , xpos, linetaps, s_p) * columntaps.r +
line_run(xystart.y + stepxy.y , xpos, linetaps, s_p) * columntaps.g +
line_run(xystart.y + stepxy.y * 2.0, xpos, linetaps, s_p) * columntaps.b +
line_run(xystart.y + stepxy.y * 3.0, xpos, linetaps, s_p) * columntaps.a,1);
return OUT;
}

View File

@ -0,0 +1,4 @@
shaders = 1
shader0 = bsnes-gamma.cg
scale0 = 1

View File

@ -0,0 +1,56 @@
//https://raw.githubusercontent.com/Themaister/Emulator-Shader-Pack/master/Cg/TV/gamma.cg
/*
Author: Themaister
License: Public domain
*/
// Shader that replicates gamma-ramp of bSNES/Higan.
#ifdef VERTEX
uniform mat4 MVPMatrix;
in vec4 VertexCoord;
in vec2 TexCoord;
out vec2 vTex;
void main()
{
gl_Position = MVPMatrix * VertexCoord;
vTex = TexCoord;
}
#endif
#ifdef FRAGMENT
uniform sampler2D s_p;
in vec2 vTex;
out vec4 FragColor;
// Tweakables.
#define saturation 1.0
#define gamma 1.5
#define luminance 1.0
vec3 grayscale(vec3 col)
{
// Non-conventional way to do grayscale,
// but bSNES uses this as grayscale value.
float v = dot(col, vec3(0.3333,0.3333,0.3333));
return vec3(v,v,v);
}
void main()
{
vec3 res = texture(s_p,vTex).xyz;
res = mix(grayscale(res), res, saturation); // Apply saturation
res = pow(res, vec3(gamma,gamma,gamma)); // Apply gamma
FragColor = vec4(clamp(res * luminance,0.0,1.0), 1.0);
}
#endif

View File

@ -0,0 +1,45 @@
//https://raw.githubusercontent.com/Themaister/Emulator-Shader-Pack/master/Cg/TV/gamma.cg
/*
Author: Themaister
License: Public domain
*/
// Shader that replicates gamma-ramp of bSNES/Higan.
void main_vertex
(
float4 position : POSITION,
float2 tex : TEXCOORD,
uniform float4x4 modelViewProj,
out float4 oPosition : POSITION,
out float2 oTex : TEXCOORD
)
{
oPosition = mul(modelViewProj, position);
oTex = tex;
}
// Tweakables.
#define saturation 1.0
#define gamma 1.5
#define luminance 1.0
float3 grayscale(float3 col)
{
// Non-conventional way to do grayscale,
// but bSNES uses this as grayscale value.
float v = dot(col, float3(0.3333,0.3333,0.3333));
return float3(v,v,v);
}
float4 main_fragment(in float4 vpos : POSITION, in float2 tex : TEXCOORD, uniform sampler2D s0 : TEXUNIT0) : COLOR
{
float3 res = tex2D(s0, tex).xyz;
res = lerp(grayscale(res), res, saturation); // Apply saturation
res = pow(res, float3(gamma,gamma,gamma)); // Apply gamma
return float4(saturate(res * luminance), 1.0);
}

View File

@ -1,95 +0,0 @@
struct tex_coords
{
float2 c00 : TEXCOORD0;
float2 c01 : TEXCOORD1;
float2 c02 : TEXCOORD2;
float2 c10 : TEXCOORD3;
float2 c11 : TEXCOORD4;
float2 c12 : TEXCOORD5;
float2 c20 : TEXCOORD6;
float2 c21 : TEXCOORD7;
float2 c22 : COLOR0;
};
struct input
{
float2 video_size;
float2 texture_size;
float2 output_size;
};
void main_vertex
(
float4 position : POSITION,
out float4 oPosition : POSITION,
uniform float4x4 modelViewProj,
float2 tex : TEXCOORD,
uniform input IN,
out tex_coords coords
)
{
oPosition = mul(modelViewProj, position);
float2 texsize = IN.texture_size;
float2 delta = 0.5 / texsize;
float dx = delta.x;
float dy = delta.y;
coords = tex_coords (
tex + float2(-dx, -dy),
tex + float2(-dx, 0),
tex + float2(-dx, dy),
tex + float2(0, -dy),
tex + float2(0, 0),
tex + float2(0, dy),
tex + float2(dx, -dy),
tex + float2(dx, 0),
tex + float2(dx, dy)
);
}
const float mx = 0.325; // start smoothing wt.
const float k = -0.250; // wt. decrease factor
const float max_w = 0.25; // max filter weigth
const float min_w = -0.05; // min filter weigth
const float lum_add = 0.25; // effects smoothing
float4 main_fragment (in tex_coords co, uniform sampler2D s_p : TEXUNIT0) : COLOR
{
float3 c00 = tex2D(s_p, co.c00).xyz;
float3 c01 = tex2D(s_p, co.c01).xyz;
float3 c02 = tex2D(s_p, co.c02).xyz;
float3 c10 = tex2D(s_p, co.c10).xyz;
float3 c11 = tex2D(s_p, co.c11).xyz;
float3 c12 = tex2D(s_p, co.c12).xyz;
float3 c20 = tex2D(s_p, co.c20).xyz;
float3 c21 = tex2D(s_p, co.c21).xyz;
float3 c22 = tex2D(s_p, co.c22).xyz;
float3 dt = float3(1.0);
float md1 = dot(abs(c00 - c22), dt);
float md2 = dot(abs(c02 - c20), dt);
float w1 = dot(abs(c22 - c11), dt) * md2;
float w2 = dot(abs(c02 - c11), dt) * md1;
float w3 = dot(abs(c00 - c11), dt) * md2;
float w4 = dot(abs(c20 - c11), dt) * md1;
float t1 = w1 + w3;
float t2 = w2 + w4;
float ww = max(t1, t2) + 0.0001;
c11 = (w1 * c00 + w2 * c20 + w3 * c22 + w4 * c02 + ww * c11) / (t1 + t2 + ww);
float lc1 = k / (0.12 * dot(c10 + c12 + c11, dt) + lum_add);
float lc2 = k / (0.12 * dot(c01 + c21 + c11, dt) + lum_add);
w1 = clamp(lc1 * dot(abs(c11 - c10), dt) + mx, min_w, max_w);
w2 = clamp(lc2 * dot(abs(c11 - c21), dt) + mx, min_w, max_w);
w3 = clamp(lc1 * dot(abs(c11 - c12), dt) + mx, min_w, max_w);
w4 = clamp(lc2 * dot(abs(c11 - c01), dt) + mx, min_w, max_w);
return float4(w1 * c10 + w2 * c21 + w3 * c12 + w4 * c01 + (1.0 - w1 - w2 - w3 - w4) * c11, 1.0);
}

View File

@ -0,0 +1,90 @@
uniform struct
{
vec2 video_size;
vec2 texture_size;
vec2 output_size;
} IN;
#ifdef VERTEX
uniform mat4 MVPMatrix;
in vec4 VertexCoord;
in vec2 TexCoord;
out vec2 coords[9];
void main()
{
gl_Position = MVPMatrix * VertexCoord;
vec2 texsize = IN.texture_size;
vec2 delta = 0.5 / texsize;
float dx = delta.x;
float dy = delta.y;
coords[0] = TexCoord + vec2(-dx, -dy);
coords[1] = TexCoord + vec2(-dx, 0.0);
coords[2] = TexCoord + vec2(-dx, dy);
coords[3] = TexCoord + vec2(0.0, -dy);
coords[4] = TexCoord + vec2(0.0, 0.0);
coords[5] = TexCoord + vec2(0.0, dy);
coords[6] = TexCoord + vec2(dx, -dy);
coords[7] = TexCoord + vec2(dx, 0);
coords[8] = TexCoord + vec2(dx, dy);
}
#endif
#ifdef FRAGMENT
uniform sampler2D s_p;
in vec2 coords[9];
out vec4 FragColor;
const float mx = 0.325; // start smoothing wt.
const float k = -0.250; // wt. decrease factor
const float max_w = 0.25; // max filter weigth
const float min_w = -0.05; // min filter weigth
const float lum_add = 0.25; // effects smoothing
void main()
{
vec3 c00 = texture(s_p, coords[0]).xyz;
vec3 c01 = texture(s_p, coords[1]).xyz;
vec3 c02 = texture(s_p, coords[2]).xyz;
vec3 c10 = texture(s_p, coords[3]).xyz;
vec3 c11 = texture(s_p, coords[4]).xyz;
vec3 c12 = texture(s_p, coords[5]).xyz;
vec3 c20 = texture(s_p, coords[6]).xyz;
vec3 c21 = texture(s_p, coords[7]).xyz;
vec3 c22 = texture(s_p, coords[8]).xyz;
vec3 dt = vec3(1.0,1.0,1.0);
float md1 = dot(abs(c00 - c22), dt);
float md2 = dot(abs(c02 - c20), dt);
float w1 = dot(abs(c22 - c11), dt) * md2;
float w2 = dot(abs(c02 - c11), dt) * md1;
float w3 = dot(abs(c00 - c11), dt) * md2;
float w4 = dot(abs(c20 - c11), dt) * md1;
float t1 = w1 + w3;
float t2 = w2 + w4;
float ww = max(t1, t2) + 0.0001;
c11 = (w1 * c00 + w2 * c20 + w3 * c22 + w4 * c02 + ww * c11) / (t1 + t2 + ww);
float lc1 = k / (0.12 * dot(c10 + c12 + c11, dt) + lum_add);
float lc2 = k / (0.12 * dot(c01 + c21 + c11, dt) + lum_add);
w1 = clamp(lc1 * dot(abs(c11 - c10), dt) + mx, min_w, max_w);
w2 = clamp(lc2 * dot(abs(c11 - c21), dt) + mx, min_w, max_w);
w3 = clamp(lc1 * dot(abs(c11 - c12), dt) + mx, min_w, max_w);
w4 = clamp(lc2 * dot(abs(c11 - c01), dt) + mx, min_w, max_w);
FragColor = vec4(w1 * c10 + w2 * c21 + w3 * c12 + w4 * c01 + (1.0 - w1 - w2 - w3 - w4) * c11, 1.0);
}
#endif

View File

@ -0,0 +1,93 @@
struct tex_coords
{
float2 c00 : TEXCOORD0;
float2 c01 : TEXCOORD1;
float2 c02 : TEXCOORD2;
float2 c10 : TEXCOORD3;
float2 c11 : TEXCOORD4;
float2 c12 : TEXCOORD5;
float2 c20 : TEXCOORD6;
float2 c21 : TEXCOORD7;
float2 c22 : COLOR0;
};
struct input
{
float2 video_size;
float2 texture_size;
float2 output_size;
};
void main_vertex
(
float4 position : POSITION,
float2 tex : TEXCOORD0,
uniform float4x4 modelViewProj,
uniform input IN,
out float4 oPosition : POSITION,
out tex_coords coords
)
{
oPosition = mul(modelViewProj, position);
float2 texsize = IN.texture_size;
float2 delta = 0.5 / texsize;
float dx = delta.x;
float dy = delta.y;
coords.c00 = tex + float2(-dx, -dy);
coords.c01 = tex + float2(-dx, 0.0);
coords.c02 = tex + float2(-dx, dy);
coords.c10 = tex + float2(0.0, -dy);
coords.c11 = tex + float2(0.0, 0.0);
coords.c12 = tex + float2(0.0, dy);
coords.c20 = tex + float2(dx, -dy);
coords.c21 = tex + float2(dx, 0);
coords.c22 = tex + float2(dx, dy);
}
static const float mx = 0.325; // start smoothing wt.
static const float k = -0.250; // wt. decrease factor
static const float max_w = 0.25; // max filter weigth
static const float min_w = -0.05; // min filter weigth
static const float lum_add = 0.25; // effects smoothing
float4 main_fragment (in float4 vpos : POSITION, in tex_coords co, uniform sampler2D s_p : TEXUNIT0) : COLOR
{
float3 c00 = tex2D(s_p, co.c00).xyz;
float3 c01 = tex2D(s_p, co.c01).xyz;
float3 c02 = tex2D(s_p, co.c02).xyz;
float3 c10 = tex2D(s_p, co.c10).xyz;
float3 c11 = tex2D(s_p, co.c11).xyz;
float3 c12 = tex2D(s_p, co.c12).xyz;
float3 c20 = tex2D(s_p, co.c20).xyz;
float3 c21 = tex2D(s_p, co.c21).xyz;
float3 c22 = tex2D(s_p, co.c22).xyz;
float3 dt = float3(1.0,1.0,1.0);
float md1 = dot(abs(c00 - c22), dt);
float md2 = dot(abs(c02 - c20), dt);
float w1 = dot(abs(c22 - c11), dt) * md2;
float w2 = dot(abs(c02 - c11), dt) * md1;
float w3 = dot(abs(c00 - c11), dt) * md2;
float w4 = dot(abs(c20 - c11), dt) * md1;
float t1 = w1 + w3;
float t2 = w2 + w4;
float ww = max(t1, t2) + 0.0001;
c11 = (w1 * c00 + w2 * c20 + w3 * c22 + w4 * c02 + ww * c11) / (t1 + t2 + ww);
float lc1 = k / (0.12 * dot(c10 + c12 + c11, dt) + lum_add);
float lc2 = k / (0.12 * dot(c01 + c21 + c11, dt) + lum_add);
w1 = clamp(lc1 * dot(abs(c11 - c10), dt) + mx, min_w, max_w);
w2 = clamp(lc2 * dot(abs(c11 - c21), dt) + mx, min_w, max_w);
w3 = clamp(lc1 * dot(abs(c11 - c12), dt) + mx, min_w, max_w);
w4 = clamp(lc2 * dot(abs(c11 - c01), dt) + mx, min_w, max_w);
return float4(w1 * c10 + w2 * c21 + w3 * c12 + w4 * c01 + (1.0 - w1 - w2 - w3 - w4) * c11, 1.0);
}

View File

@ -0,0 +1,4 @@
shaders = 1
shader0 = retroizer.cg
scale0 = 6

View File

@ -0,0 +1,224 @@
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////
//// VERTEX SHADER : STOLEN FROM NEIGHBOURING SHADERS
////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
#ifdef VERTEX
uniform mat4 MVPMatrix;
in vec4 VertexCoord;
in vec2 TexCoord;
out vec2 vTexcoord;
void main()
{
gl_Position = MVPMatrix * VertexCoord;
vTexcoord = TexCoord;
}
#endif //VERTEX
#ifdef FRAGMENT
uniform struct
{
vec2 video_size;
vec2 texture_size;
vec2 output_size;
} IN;
uniform float Time;
uniform sampler2D s_p;
in vec2 vTexcoord;
out vec4 FragColor;
float saturate(float x)
{
return max(0, min(1, x));
}
vec2 saturate(vec2 x)
{
return max(vec2(0.0,0.0), min(vec2(1.0,1.0), x));
}
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//// EFFECT CONSTANTS : TWEAK THEM!
////
// Size of the border effect
const vec2 OverscanMaskHardness = vec2(12.0f ,12.0f );
// Attenuation of the border effect
const float OverscanMaskPower = 4.0f;
// Intensity of the border effect
const float OverscanIntensity = 0.96f;
// Intensity of the TV Corners (round-ness) deformation
const float TVDeformInstensity = 0.02f;
// How much R, G and B are offset : default is -0.333 pixels in fake-pixel-space
const float ColorFringeIntensity = -0.666;
// How much luminosity is output by a fake-pixel
const float FakePixelMaskGain = 0.75f;
// How much luminosity is output between fake-pixels (adds to the fake-pixel value)
const float FakePixelMaskOffset = 0.55f;
// How sharp will appear the pixels (Horizontal Sharpness, Vertical Sharpness A.K.A Scanlines)
const vec2 FakePixelMaskPower = vec2(0.150f ,2.0f );
// Scanline Off Sync (Slides one line out of two)
const float ScanlineOffSync = 0.25;
// Base Brightness
const float BaseBrightness = 0.55f;
// How much the Fake-Pixel effect is Active (0.0 = normal image, 1.0 = full FakePixel Effect)
const float FakePixelEffectBlend = 0.95f;
// Ghost Sampling : enable define to activate
#define GHOST_SAMPLING;
const float GhostLatencyIntensity = 0.03f;
// Number of samples (higer is slower)
const int GhostNumSamples = 32;
// Latency of the RGB Signal (per-signal, in screen width percentage)
const vec3 SignalLatencyRGB = vec3(0.184f,0.08f,0.0624f);
// Attenuation of the ghosting latency
const float SignalLatencyAttenuation = 1.0f;
// Bloom : enable define to activate
#define BLOOM;
const float BloomIntensity = 0.75f;
const float BloomExponent = 1.00f;
const float BloomWeights[25] = float[] (
0.003765, 0.015019, 0.023792, 0.015019, 0.003765,
0.015019, 0.059912, 0.094907, 0.059912, 0.015019,
0.023792, 0.094907, 0.150342, 0.094907, 0.023792,
0.015019, 0.059912, 0.094907, 0.059912, 0.015019,
0.003765, 0.015019, 0.023792, 0.015019, 0.003765
);
const float BloomPositions[5] = float[] ( -2, -1, 0 , 1 , 2 );
////
////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
float expow(float value, float exponent) {
return mix(1.0f,pow(value,max(exponent,1.0f)),saturate(exponent));
}
//the code that calls expow() carefully builds vec2 for some reason and calls this only to have it implicitly thrown away (which is a warning)
//so this was added to get rid of the warning
float expow(vec2 value, vec2 exponent) {
return mix(1.0f,pow(value.x,max(exponent.x,1.0f)),saturate(exponent.x));
}
float expow(vec2 value, float exponent) {
return mix(1.0f,pow(value.x,max(exponent,1.0f)),saturate(exponent));
}
// MultiSampling for ghosting effect
vec3 GhostSample(vec2 t, float latency) {
vec3 Out = texture(s_p,t).rgb;
float Weight = 1.0f;
vec2 Direction = vec2(-latency,0.0f);
for(int i=1; i < GhostNumSamples; i++) {
float curweight = pow(1.0f-(float(i)/GhostNumSamples),1.0f/SignalLatencyAttenuation);
Out += GhostLatencyIntensity * curweight * texture(s_p,saturate(t+(1.0f-curweight)*Direction)).xyz;
Weight += GhostLatencyIntensity * curweight;
}
return Out/Weight;
}
// MultiSampling for ghosting effect
vec3 Bloom(vec2 t, vec2 r) {
vec3 Out = vec3(0,0,0);
for(int j = 0; j < 5; j++)
for(int i = 0; i < 5; i++)
{
vec2 offset = vec2(BloomPositions[i],BloomPositions[j]) / r;
Out += texture(s_p, t + offset).rgb * BloomWeights[i*5+j];
}
return pow(Out, vec3(BloomExponent,BloomExponent,BloomExponent)) * BloomIntensity;
}
// Compositing of the TV Emulation
vec3 TVEffect(vec2 in_Position, vec2 FakeResolution, float Time) {
// TV Deformation
vec2 ScreenPos = in_Position + dot(in_Position-0.5f,in_Position-0.5f)*(in_Position-0.5f)* TVDeformInstensity;
// Apply Off-Sync
ScreenPos += (ScanlineOffSync/FakeResolution.x) * vec2(sin((Time*30*3.1415926)+(ScreenPos.y*3.1415926*FakeResolution.y)),0);
// Sampling 3 Images biased to simulate TV RGB Offset
#ifdef GHOST_SAMPLING
vec3 latencyweight = vec3(0.0f,0.0f,0.0f);
for(int i=1; i < GhostNumSamples; i++) {
latencyweight += texture(s_p, ScreenPos + vec2(1.0f/FakeResolution.x,0.0f)).xyz;
}
vec3 LatencyRGB = SignalLatencyRGB * (1.0-(latencyweight/GhostNumSamples));
vec3 SMP_Red = GhostSample((ScreenPos),LatencyRGB.x).xyz;
vec3 SMP_Green = GhostSample((ScreenPos) + ((vec2(ColorFringeIntensity,0.0f))/FakeResolution),LatencyRGB.y).xyz;
vec3 SMP_Blue = GhostSample((ScreenPos) + ((vec2(ColorFringeIntensity*2.0f,0.0f))/FakeResolution),LatencyRGB.z).xyz;
#else
vec3 SMP_Red = texture(s_p, (ScreenPos)).xyz;
vec3 SMP_Green = texture(s_p, (ScreenPos) + ((vec2(ColorFringeIntensity,0.0f))/FakeResolution)).xyz;
vec3 SMP_Blue = texture(s_p, (ScreenPos) + ((vec2(ColorFringeIntensity*2.0f,0.0f))/FakeResolution)).xyz;
#endif
#ifdef BLOOM
vec3 bloom = Bloom(ScreenPos, FakeResolution);
SMP_Red += bloom.r;
SMP_Green += bloom.g;
SMP_Blue += bloom.b;
#endif
// Apply base Brightness
SMP_Red *= BaseBrightness;
SMP_Green *= BaseBrightness;
SMP_Blue *= BaseBrightness;
// Overscan Darkening Mask
float ScreenMaskPower = 1.0f/OverscanMaskPower;
vec2 ScreenMask = pow(saturate(ScreenPos*(1.0f-ScreenPos)*OverscanMaskHardness),vec2(ScreenMaskPower,ScreenMaskPower));
float mask = mix(1.0, ScreenMask.x * ScreenMask.y, OverscanIntensity);
// CRT Cell Masks (HorizontalRGB+Scanline)
float PixelMaskR = expow(saturate(4*fract(ScreenPos.x*FakeResolution.x)*(1.0f-fract(ScreenPos.x*FakeResolution.x))),FakePixelMaskPower.x);
float PixelMaskG = expow(saturate(4*fract(ScreenPos.x*FakeResolution.x+vec2(ColorFringeIntensity,0.0f))*(1.0f-fract(ScreenPos.x*FakeResolution.x+vec2(ColorFringeIntensity,0.0f)))),FakePixelMaskPower.x);
float PixelMaskB = expow(saturate(4*fract(ScreenPos.x*FakeResolution.x+vec2(ColorFringeIntensity*2.0f,0.0f))*(1.0f-fract(ScreenPos.x*FakeResolution.x+vec2(ColorFringeIntensity*2.0f,0.0f)))),FakePixelMaskPower.x);
float PixelMaskScanline = pow(saturate(4*fract(ScreenPos.y*FakeResolution.y)*(1.0f-fract(ScreenPos.y*FakeResolution.y))),FakePixelMaskPower.y);
vec3 PixelRGB = vec3 (
((PixelMaskR*PixelMaskScanline * FakePixelMaskGain)+FakePixelMaskOffset) * SMP_Red.x ,
((PixelMaskG*PixelMaskScanline * FakePixelMaskGain)+FakePixelMaskOffset) * SMP_Green.y ,
((PixelMaskB*PixelMaskScanline * FakePixelMaskGain)+FakePixelMaskOffset) * SMP_Blue.z
);
// Non-Pixelated Image
vec3 ImageRGB = texture(s_p, ScreenPos).xyz;
return mix(ImageRGB, PixelRGB, FakePixelEffectBlend) * mask;
}
void main()
{
vec4 color = vec4(1.0f,1.0f,1.0f,1.0f);
color.xyz = TVEffect(vTexcoord, IN.texture_size, Time);
FragColor = color;
}
#endif

View File

@ -0,0 +1,216 @@
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////
//// VERTEX SHADER : STOLEN FROM NEIGHBOURING SHADERS
////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
struct input
{
float2 video_size;
float2 texture_size;
float2 output_size;
};
void main_vertex
(
float4 position : POSITION,
float2 tex : TEXCOORD0,
uniform float4x4 modelViewProj,
uniform input IN,
out float4 oPosition : POSITION,
out float2 oTexcoord : TEXCOORD0,
out float2 oFakeResolution : TEXCOORD1
)
{
oPosition = mul(modelViewProj, position);
oTexcoord = tex;
oFakeResolution = IN.texture_size;
}
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//// EFFECT CONSTANTS : TWEAK THEM!
////
// Size of the border effect
static const float2 OverscanMaskHardness = {12.0f ,12.0f };
// Attenuation of the border effect
static const float OverscanMaskPower = 4.0f;
// Intensity of the border effect
static const float OverscanIntensity = 0.96f;
// Intensity of the TV Corners (round-ness) deformation
static const float TVDeformInstensity = 0.02f;
// How much R, G and B are offset : default is -0.333 pixels in fake-pixel-space
static const float ColorFringeIntensity = -0.666;
// How much luminosity is output by a fake-pixel
static const float FakePixelMaskGain = 0.75f;
// How much luminosity is output between fake-pixels (adds to the fake-pixel value)
static const float FakePixelMaskOffset = 0.55f;
// How sharp will appear the pixels (Horizontal Sharpness, Vertical Sharpness A.K.A Scanlines)
static const float2 FakePixelMaskPower = {0.150f ,2.0f };
// Scanline Off Sync (Slides one line out of two)
static const float ScanlineOffSync = 0.25;
// Base Brightness
static const float BaseBrightness = 0.55f;
// How much the Fake-Pixel effect is Active (0.0 = normal image, 1.0 = full FakePixel Effect)
static const float FakePixelEffectBlend = 0.95f;
// Ghost Sampling : enable define to activate
#define GHOST_SAMPLING;
static const float GhostLatencyIntensity = 0.03f;
// Number of samples (higer is slower)
static const int GhostNumSamples = 32;
// Latency of the RGB Signal (per-signal, in screen width percentage)
static const float3 SignalLatencyRGB = {0.184f,0.08f,0.0624f};
// Attenuation of the ghosting latency
static const float SignalLatencyAttenuation = 1.0f;
// Bloom : enable define to activate
#define BLOOM;
static const float BloomIntensity = 0.75f;
static const float BloomExponent = 1.00f;
static const float BloomWeights[5][5] =
{
{0.003765, 0.015019, 0.023792, 0.015019, 0.003765},
{0.015019, 0.059912, 0.094907, 0.059912, 0.015019},
{0.023792, 0.094907, 0.150342, 0.094907, 0.023792},
{0.015019, 0.059912, 0.094907, 0.059912, 0.015019},
{0.003765, 0.015019, 0.023792, 0.015019, 0.003765}
};
static const float BloomPositions[5] = { -2, -1, 0 , 1 , 2};
////
////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
float expow(float value, float exponent)
{
return lerp(1.0f,pow(value,max(exponent,1.0f)),saturate(exponent));
}
//the code that calls expow() carefully builds float2 for some reason and calls this only to have it implicitly thrown away (which is a warning)
//so this was added to get rid of the warning
float expow(float2 value, float2 exponent)
{
return lerp(1.0f,pow(value,max(exponent,1.0f)),saturate(exponent)).x;
}
// MultiSampling for ghosting effect
float3 GhostSample(sampler2D s, float2 t, float latency)
{
float3 Out = tex2D(s,t);
float Weight = 1.0f;
float2 Direction = float2(-latency,0.0f);
for(int i=1; i < GhostNumSamples; i++)
{
float curweight = pow(1.0f-((float)i/GhostNumSamples),1.0f/SignalLatencyAttenuation);
Out += GhostLatencyIntensity * curweight * tex2D(s,saturate(t+(1.0f-curweight)*Direction)).xyz;
Weight += GhostLatencyIntensity * curweight;
}
return Out/Weight;
}
// MultiSampling for ghosting effect
float3 Bloom(sampler2D s, float2 t, float2 r)
{
float3 Out = float3(0,0,0);
for(int j = 0; j < 5; j++)
{
for(int i = 0; i < 5; i++)
{
float2 offset = float2(BloomPositions[i],BloomPositions[j]) / r;
Out += tex2D(s, t + offset).rgb * BloomWeights[i][j];
}
}
return pow(Out, BloomExponent) * BloomIntensity;
}
// Compositing of the TV Emulation
float3 TVEffect(float2 in_Position, float2 FakeResolution, sampler2D Texture, float Time)
{
// TV Deformation
float2 ScreenPos = in_Position + dot(in_Position-0.5f,in_Position-0.5f)*(in_Position-0.5f)* TVDeformInstensity;
// Apply Off-Sync
ScreenPos += (ScanlineOffSync/FakeResolution.x) * float2(sin((Time*30*3.1415926)+(ScreenPos.y*3.1415926*FakeResolution.y)),0);
// Sampling 3 Images biased to simulate TV RGB Offset
#ifdef GHOST_SAMPLING
float3 latencyweight = float3(0.0f,0.0f,0.0f);
for(int i=1; i < GhostNumSamples; i++)
{
latencyweight += tex2D(Texture, ScreenPos + float2(1.0f/FakeResolution.x,0.0f)).xyz;
}
float3 LatencyRGB = SignalLatencyRGB * (1.0-(latencyweight/GhostNumSamples));
float3 SMP_Red = GhostSample(Texture, (ScreenPos),LatencyRGB.x).xyz;
float3 SMP_Green = GhostSample(Texture, (ScreenPos) + ((float2(ColorFringeIntensity,0.0f))/FakeResolution),LatencyRGB.y).xyz;
float3 SMP_Blue = GhostSample(Texture, (ScreenPos) + ((float2(ColorFringeIntensity*2.0f,0.0f))/FakeResolution),LatencyRGB.z).xyz;
#else
float3 SMP_Red = tex2D(Texture, (ScreenPos)).xyz;
float3 SMP_Green = tex2D(Texture, (ScreenPos) + ((float2(ColorFringeIntensity,0.0f))/FakeResolution)).xyz;
float3 SMP_Blue = tex2D(Texture, (ScreenPos) + ((float2(ColorFringeIntensity*2.0f,0.0f))/FakeResolution)).xyz;
#endif
#ifdef BLOOM
float3 bloom = Bloom(Texture, ScreenPos, FakeResolution);
SMP_Red += bloom.r;
SMP_Green += bloom.g;
SMP_Blue += bloom.b;
#endif
// Apply base Brightness
SMP_Red *= BaseBrightness;
SMP_Green *= BaseBrightness;
SMP_Blue *= BaseBrightness;
// Overscan Darkening Mask
float2 ScreenMask = pow(saturate(ScreenPos*(1.0f-ScreenPos)*OverscanMaskHardness),1.0f/OverscanMaskPower);
float mask = lerp(1.0, ScreenMask.x * ScreenMask.y, OverscanIntensity);
// CRT Cell Masks (HorizontalRGB+Scanline)
float PixelMaskR = expow(saturate(4*frac(ScreenPos.x*FakeResolution.x)*(1.0f-frac(ScreenPos.x*FakeResolution.x))),FakePixelMaskPower.x);
float PixelMaskG = expow(saturate(4*frac(ScreenPos.x*FakeResolution.x+float2(ColorFringeIntensity,0.0f))*(1.0f-frac(ScreenPos.x*FakeResolution.x+float2(ColorFringeIntensity,0.0f)))),FakePixelMaskPower.x);
float PixelMaskB = expow(saturate(4*frac(ScreenPos.x*FakeResolution.x+float2(ColorFringeIntensity*2.0f,0.0f))*(1.0f-frac(ScreenPos.x*FakeResolution.x+float2(ColorFringeIntensity*2.0f,0.0f)))),FakePixelMaskPower.x);
float PixelMaskScanline = pow(saturate(4*frac(ScreenPos.y*FakeResolution.y)*(1.0f-frac(ScreenPos.y*FakeResolution.y))),FakePixelMaskPower.y);
float3 PixelRGB = float3(((PixelMaskR*PixelMaskScanline * FakePixelMaskGain)+FakePixelMaskOffset) * SMP_Red.x,
((PixelMaskG*PixelMaskScanline * FakePixelMaskGain)+FakePixelMaskOffset) * SMP_Green.y,
((PixelMaskB*PixelMaskScanline * FakePixelMaskGain)+FakePixelMaskOffset) * SMP_Blue.z);
// Non-Pixelated Image
float3 ImageRGB = tex2D(Texture, ScreenPos).xyz;
return lerp(ImageRGB, PixelRGB, FakePixelEffectBlend) * mask;
//return float3(PixelMaskR*PixelMaskScanline,PixelMaskG*PixelMaskScanline,PixelMaskB*PixelMaskScanline);
}
float4 main_fragment
(
in float4 vpos : POSITION,
in float2 TexCoord : TEXCOORD0,
in float2 FakeResolution : TEXCOORD1,
uniform sampler2D s_p : TEXUNIT0,
uniform float Time
) : COLOR
{
float4 color = float4(1.0f,1.0f,1.0f,1.0f);
color.xyz = TVEffect(TexCoord,FakeResolution, s_p, Time);
return color;
}

View File

@ -0,0 +1,16 @@
Despite using the "cgp" derived "retro shader" approach, we're doing things a bit different than retroarch.
A single .cgp file is used for any graphics backend. The shader references inside it can be written extensionless, or with .cg (or with .hlsl or .glsl for reasons, read on)
In case you have shaders that work only GLSL or HLSL -- well, they simply won't work in the wrong mode.
In that case, try something like bizhawkdir/Shaders/myshaders/glsl/mybadshader.cgp
In this case, the .cgp can reference .glsl shaders internally.
An important point, which you will perceive by checking out the bizhawk shaders, is that a .cgp is now portable due to the extension-ignorant behaviour AND the separate .glsl and .hlsl extensions.
(For instance, BizScanlines.cgp+BizScanlines.hlsl+BizScanlines.glsl).
The separate extensions let there be separate shaders for each backend, each referenced by the same cgp which references .cg (arbitrarily; it could be blank)
However if the .cgp referenced a .glsl, it wouldn't work on D3D.
In case you haven't pieced it together yet, this means there is no automatic mechanism for transpiling shaders. It isn't reliable and created an unmaintainable, slow, mess.
Porting shaders from retroarch will require touching them extensively, probably.

File diff suppressed because it is too large Load Diff

BIN
Assets/dll/FlooohZ80.dll Normal file

Binary file not shown.

BIN
Assets/dll/MSXHawk.dll Normal file

Binary file not shown.

BIN
Assets/dll/OpenAL32.dll Normal file

Binary file not shown.

BIN
Assets/dll/SDL2.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Assets/dll/bizlynx.dll Normal file

Binary file not shown.

BIN
Assets/dll/bizswan.dll Normal file

Binary file not shown.

BIN
Assets/dll/blip_buf.dll Normal file

Binary file not shown.

BIN
Assets/dll/bsnes.wbx.zst Normal file

Binary file not shown.

Binary file not shown.

BIN
Assets/dll/chd_capi.dll Normal file

Binary file not shown.

BIN
Assets/dll/cimgui.dll Normal file

Binary file not shown.

BIN
Assets/dll/dosbox.wbx.zst Normal file

Binary file not shown.

BIN
Assets/dll/dsda.wbx.zst Normal file

Binary file not shown.

BIN
Assets/dll/e_sqlite3.dll Normal file

Binary file not shown.

BIN
Assets/dll/encore.dll Normal file

Binary file not shown.

BIN
Assets/dll/faust.wbx.zst Normal file

Binary file not shown.

BIN
Assets/dll/freetype.dll Normal file

Binary file not shown.

BIN
Assets/dll/gpgx.wbx.zst Normal file

Binary file not shown.

BIN
Assets/dll/hyper.wbx.zst Normal file

Binary file not shown.

BIN
Assets/dll/libFlooohZ80.so Executable file

Binary file not shown.

Binary file not shown.

BIN
Assets/dll/libLibretroBridge.so Executable file

Binary file not shown.

BIN
Assets/dll/libMSXHawk.so Executable file

Binary file not shown.

BIN
Assets/dll/libSDL2.so Executable file

Binary file not shown.

Binary file not shown.

BIN
Assets/dll/libbizhash.dll Normal file

Binary file not shown.

BIN
Assets/dll/libbizhash.so Executable file

Binary file not shown.

BIN
Assets/dll/libbizlynx.dll.so Executable file

Binary file not shown.

BIN
Assets/dll/libbizswan.dll.so Executable file

Binary file not shown.

BIN
Assets/dll/libblip_buf.so Executable file

Binary file not shown.

BIN
Assets/dll/libchd_capi.so Executable file

Binary file not shown.

BIN
Assets/dll/libcimgui.so Executable file

Binary file not shown.

BIN
Assets/dll/libdarm.dll Normal file

Binary file not shown.

BIN
Assets/dll/libdarm.so Executable file

Binary file not shown.

BIN
Assets/dll/libe_sqlite3.so Executable file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More