Commit Graph

2323 Commits

Author SHA1 Message Date
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 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
adelikat c66243254c remove unused GameInfo parameter in some core constructors 2020-03-15 10:19:01 -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 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 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 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 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 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
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
YoshiRulz acaaa126bb
Add item names to ValueTuple return type 2020-03-07 07:57:25 +10: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 bbb28525f1
Fix typo in switch expression
fixes up 18762c75e
2020-03-02 17:15:30 +10: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 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
adelikat 46d05de51f nothing to see here 2020-02-28 12:52:48 -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
James Groom c9d20426d3
Cleanup HawkFile (#1865) 2020-02-27 17:41:07 -06:00
YoshiRulz a22a1637d0 Cleanup VirtualPadAnalogStick and use LUTs for polar conversion 2020-02-27 04:34:31 +00:00
adelikat 7e741b1200 misc cleanups in lua code 2020-02-26 17:06:04 -06:00
adelikat f5e9e8eecd cleanup VersionInfo.cs a bit 2020-02-26 15:33:50 -06:00
adelikat e1bb93971a use expression body in various places 2020-02-25 15:14:14 -06: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
alyosha-tas 961f682cdc SubGBHawk: misc. movie stuff 2020-02-23 19:20:49 -05:00
alyosha-tas f0692111d7 SubGBHawk: add 2020-02-23 09:54:42 -05:00
YoshiRulz 2b8c0edcc2
Reorganise *.props 2020-02-23 06:17:35 +10:00
adelikat c3811721c2 delete unused KeyTurbo.cs and misc small cleanups to InputAdapters 2020-02-22 12:44:03 -06:00
adelikat 5386b8b18c Client.Common cleanups - mostly using higher language features 2020-02-22 12:29:12 -06:00
YoshiRulz 9829fd699b Unify helpers for generating file extension lists (for open/save) 2020-02-20 21:59:20 +00:00
YoshiRulz f71cc532a8
Misc. cleanups 2020-02-21 07:05:13 +10: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
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
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 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
zeromus 4617476bcd SharpCompressArchiveHandler: throw fewer exceptions 2020-02-09 23:27:09 -05:00
adelikat d7f97b1539 actually delete things instead of removing them from the project 2020-02-08 13:09:27 -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
feos 08ee1c8170 show proper movie length for cycle based timing (gambatte) 2020-02-08 15:36:21 +03:00
alyosha-tas 75ead6e3c4 GBHawk: put CGB flag into bk2 for proper parsing 2020-02-07 07:40:33 -05:00
YoshiRulz c0fcd01b69
Yet more work on AutoGenConfig 2020-02-06 05:19:40 +10:00
adelikat e770047eef profile config - rip out code for the custom profile that never got implemented 2020-02-03 17:51:07 -06:00
YoshiRulz fd06504882
More work on AutoGenConfig 2020-02-03 06:14:09 +10: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 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 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
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
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
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
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 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 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
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
YoshiRulz bfde89b9f3
Enable SA1139 and fix noncompliance
"Use literal suffix notation instead of casting"
2020-01-25 07:55:48 +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 ff2efca658
Cleanup Util 2020-01-23 14:54:34 +10: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
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
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
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
YoshiRulz ebfccf51de
Add DependentUpon and SubType modifiers to globbed files 2020-01-20 10:29:27 +10: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
adelikat b1d5a4d644 Convert TI83 keypad to use IToolFormAutoConfig and ConfigPersist 2020-01-19 13:48:26 -06:00
adelikat 10e2f24210 TasMovie - private setter for a variable 2020-01-18 17:30:40 -06:00