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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
58beef8a46
remove speex use in melonDS (see 5f0e6a2242
for unmanaged side changes)
2022-12-16 23:04:35 -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
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
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
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
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
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
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
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