Commit Graph

840 Commits

Author SHA1 Message Date
adelikat 9584ff1f53 use switch expressions in some various places in EmuHawk, and some other simplifications 2020-03-04 20:18:43 -06:00
YoshiRulz 9829fd699b Unify helpers for generating file extension lists (for open/save) 2020-02-20 21:59:20 +00:00
adelikat 4b704d5e31 add .o2 files for Odyssey2 to open rom dialog filter 2020-02-18 17:42:22 -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 f43d7c5b1b MovieSession - add a PopupMessage method, will be used later 2020-02-08 10:50:05 -06: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 ef13754f79 consistent variable naming in config.cs 2020-01-25 10:57:39 -06:00
adelikat 548ff15e33 Break off rewind config variables into their own class 2020-01-24 20:03:54 -06:00
YoshiRulz e4827929b8
Parse float with invariant formatting (resolves #1806) 2020-01-22 04:40:16 +10:00
adelikat 3d833af617 break out enums from Config.cs 2020-01-21 09:02:42 -06: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
YoshiRulz dd4f9aaf64
Use ranges 2020-01-13 06:59:40 +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
feos c330541c35 Revert "cleanup ArgParser"
This reverts commit 84593b2d48.
magical fix to magically broken avi dumping
2020-01-12 21:33:41 +03:00
alyosha-tas 46d0818f09 MSXHawk: Core interface stuff 2020-01-10 15:51:56 -05:00
adelikat 57610488fe use globals a bit less 2020-01-03 13:59:39 -06:00
adelikat 84593b2d48 cleanup ArgParser 2020-01-03 13:09:27 -06:00
adelikat 023da20cb9 Cleanup GamePad code, pass in mainform dependency 2020-01-03 10:38:04 -06:00
YoshiRulz 060255471b
Improve exception docs in BizHawk.Client.EmuHawk 2020-01-02 21:51:37 +10:00
adelikat eb438fd9cb pass in mainform to Keyboard.cs instead of using global 2019-12-31 17:06:40 -06:00
adelikat 64ea9afee5 cleanups 2019-12-31 10:17:55 -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 e7e30371fe Remove Rewinder from Global and put as a mainform variable instead 2019-12-22 14:25:06 -06:00
adelikat 1c57622032 refactor UpdateCheatRelatedTools to be a ToolManager method 2019-12-22 13:32:18 -06:00
adelikat ed45318a75 presentation panel - pass in dependencies 2019-12-22 13:32:18 -06:00
James Groom 78fcde9480
Merge branch 'master' into winhacksbgone 2019-12-22 17:01:10 +00:00
adelikat c162b2774d Mainform - a bit of cleanup 2019-12-22 10:57:06 -06:00
adelikat c6b6e7b6cb pass Config into ToolManager 2019-12-22 10:57:05 -06: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 81b2b8c888 remove unused method 2019-12-21 17:21:39 -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 18fbd9af1c MessageConfig - don't use Global.Emulator 2019-12-21 14:58:33 -06:00
adelikat 98bfcabfe8 refactor Global.SystemInfo into an extension method class 2019-12-21 13:07:05 -06:00
adelikat bab3dbca98 cleanup PlatformChooser and don't use globals 2019-12-21 12:45:28 -06: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 7ea8fb185a
Congregate, organise, and cleanup some Win32 imports and their usages 2019-12-21 18:21:51 +10: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 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 fb8ff37fe9 Mainform - use OnScreen method instead of GlobalWin.OSD references 2019-12-20 07:31:03 -06:00
adelikat 28305339f9 VideoWriterChooserForm - pass in dependencies 2019-12-17 09:50:38 -06: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 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 35fdb5dbdd Tastudio - Integrate branches with the statusbar slot icons 2019-12-08 13:53:36 -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
YoshiRulz cc9ff8022c
Re-add images; it appears that the Designer is now dropping them 2019-12-08 04:20:54 +10:00
feos 48e39a72d1 add arcade menu 2019-12-07 17:44:49 +03:00
adelikat 7d8522e0b3 Remove snowy null emulator option and simplify Null Emulator 2019-12-06 18:42:00 -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
alyosha-tas ae18284520 O2Hawk: mainform stuff 2019-11-28 17:02:26 -05:00
adelikat f926142921 cleanup OSDManager 2019-11-26 19:36:04 -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 4c57718f7d Move autoloading of tools to the Shown event fixes #334 2019-11-17 11:35:53 -06:00
YoshiRulz 6e809adc66
Disable Lua script loading on Unix (resolves #1735) 2019-11-17 02:26:23 +10:00
adelikat 673073e650 data drive the import movies dialog filter 2019-11-14 18:00:33 -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
TheGreatRambler 3b3cd3d2fd
Update MainForm.cs 2019-11-13 20:05:46 -05: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
YoshiRulz 8c059aa43c
Replace helper methods with readonly bool IsUnixHost and cleanup 2019-11-04 14:30:05 +10:00
adelikat 942d9fc75e Simplify OS checks with some helpful methods 2019-11-03 16:04:42 -06:00
J.D. Purcell 39b54f7202 Fix missing UI usings. 2019-11-02 00:38:50 -04: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 3e64051c7d Mainform - cleanups, remove unused code, typos, C#7isms 2019-10-27 11:42:17 -05:00
J.D. Purcell 2054a6b905 RomFilter cleanup. 2019-10-22 11:54:42 -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
J.D. Purcell 952609eeaa Factor out some common stuff in rom load/close. 2019-10-20 23:36:11 -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 6504387302 Option to accept background input only from controller. Closes #1396. 2019-10-13 19:49:24 -04:00
alyosha-tas d2fe217869 GBHawk: expose 4x core 2019-10-04 13:52:29 -04:00
alyosha-tas 79c4b1e846 GBHawkLink3x: Initial Commits 2019-09-08 16:35:39 -04:00
alyosha-tas 432abb27f6 Vectrex: expose menues 2019-07-06 08:56:25 -04: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 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
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
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
feos 8efcda388f
Merge pull request #1542 from Ashafix/audiosync
added new command line parameter audiosync
2019-05-25 10:34:01 +03: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
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
Ashafix 3946075024 added new command line parameter audiosync 2019-04-15 09:28:54 +02:00
YoshiRulz e6374ef477
Use string interpolation 2019-03-19 00:06:37 +10:00
alyosha-tas 5665617d9b GGHawkLink: menues and API stuff 2019-02-09 12:41:23 -06:00
alyosha-tas a15e856390 Update link text to match link status 2019-01-20 09:30:08 -06: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