Commit Graph

972 Commits

Author SHA1 Message Date
feos b70c49892c omit autosaving if we have the default project name
close #1599
2019-11-20 20:04:03 +03:00
adelikat adf834480a remove .bkm as a standard movie type, require user to run the importer 2019-11-14 21:39:15 -06:00
J.D. Purcell 6eb44acd4f Fix noise from last merge. 2019-11-03 18:04:31 -05:00
adelikat b9ade1a555 Merge branch 'master' into MoreUnixMonoCompatWork 2019-11-03 12:55:53 -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
adelikat 5d6c33f080 remove TAStudio ui that was picking the renderer (it's automatic now) 2019-11-01 15:56:26 -05: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
J.D. Purcell 28c0586c8b InputRoll horizontal - WIP. 2019-10-27 21:00:52 -04:00
J.D. Purcell 90724bb777 Work on InputRoll horizontal mode a bit. 2019-10-27 17:55:53 -04: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 6604e5dc17 InputRoll - cleanup and fix some typos 2019-10-26 17:16:15 -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 437c2f067a TAStudio - Consolidate the two restore defaults menu items. Restore splitter positions when restoring defaults 2019-10-26 11:40:04 -05:00
J.D. Purcell 6395089a9c TAStudio.ListView.cs: Fix missing alpha values. 2019-10-25 18:02:31 -04: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 c0e2529b20 tastudio - don't nag about inaccurate cores if autoloading a file 2019-10-24 15:49:23 -05:00
J.D. Purcell 1df41efc0d Consolidate core accuracy warning dialog. 2019-10-21 23:54:16 -04:00
adelikat ccdf616d46 convert Tastudio UndoHistory from VirtualListView to InputRoll 2019-10-19 20:03:05 -05: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
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
adelikat 512b03f1b4 misc cleanups in tastudio files, mostly typos and redundant code 2019-06-28 17:51:03 -05:00
adelikat 5075160355 some cleanups 2019-06-15 18:38:56 -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
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 eaef336492 rip out IStateManager.MountForWriteAccess() and simplify 2019-06-15 16:06:35 -05:00
adelikat 2a8b4504cd Simplify 2019-06-15 15:43:22 -05:00
adelikat e0a51eaab1 Rename IStateManager.StateCount -> IStateManager.Count 2019-06-15 14:49:43 -05: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
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
alyosha-tas 65e350ef7d Fix #1553 2019-05-27 10:56:58 -04: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
alyosha-tas 655729f29c TAStudio: orderly shutdown if starting TAStudio returned nullEmulator. 2019-04-21 08:46:50 -04:00
YoshiRulz e6374ef477
Use string interpolation 2019-03-19 00:06:37 +10:00
feos 766de68e18 tastudio: don't tell about clipboard if it's empty 2019-01-23 17:24:42 +03: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
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
feos 3857ccc18f fix #1388 2018-12-04 19:57:01 +03: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
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 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 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 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
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
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
feos fbdea8282d add missing zxs mnemonics
tastudio: properly handle Show X menu items
2018-09-10 20:22:41 +03: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 86999815f7 tastudio: show branch screenshot on the right if it's offscreen
fix #1311
2018-09-08 19:32:27 +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
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 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
feos 560092ffae tastudio: allow scrolling/jumping to marker 0 2018-03-11 20:05:33 +03:00
feos 661a15dc2c tsm decay: remove states within internal state gap
states settings: clamp things harder
2018-03-11 17:57:30 +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 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
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 40e28f2f98 tastudio: enable paste menu items when clipboard is available 2018-03-08 19:23:26 +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 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
feos 0fe703c9b7 tsm: redo the algo from scratch, probably not last time 2018-02-27 01:28:24 +03:00
feos 7ae374df01 tastudio: fuck this 2018-02-21 02:06:25 +03:00
TASeditor 36900b15d4 tastudio lua: setinput functions, onbranch callbacks (#1098) 2018-02-10 14:58:46 +03: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
vadosnaprimer fcb7588724 use actual Clamp() 2017-12-01 18:19:29 +03:00
vadosnaprimer cea50c1ab1 fix #1072
thanks for helping, .net
2017-11-30 19:53:52 +03: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
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 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
adelikat 62c2e0fc6a TAStudio - remove ability to edit the platform id when editing the header 2017-07-30 14:21:40 -05:00
adelikat f424a22033 Tastudio - fix recent menu - fixes #920 2017-07-17 11:20:59 -05:00
adelikat f53624f336 tastudio greenzone settings - don't check for if 64 bit process 2017-07-09 09:39:36 -05:00
adelikat ac6b18c137 tastudio - change performance profile nag to a snes9x nag 2017-06-12 20:56:32 -05:00
feos 3ba4adb6bc tastudio: finish moving column click edits to taseditor logic 2017-05-29 20:20:44 +03:00
adelikat 19dde8018a InputRoll cleanups 2017-05-24 11:45:57 -05:00
adelikat 74b2cca967 more tastudio cleanups 2017-05-24 10:50:25 -05:00
adelikat b03e224c5e TAStudio cleanup 2017-05-24 10:49:35 -05:00
nattthebear ebe789eed2 heh 2017-05-10 07:45:23 -04:00
feos 8dcf9fb61a tastudio: tweak editing selection by clicking column header
instead of reverting every button state, apply the reverted state of the first selected frame to all the selection
2017-04-23 14:47:10 +03:00
adelikat 1184e8ed05 lua - implement tastudio.getselection(), tastudio.insertframes(), tastudio.deleteframes() 2017-04-22 20:50:03 -05:00
J.D. Purcell b53502eed8 Spaces -> tabs. 2017-04-15 16:37:30 -04:00
feos 54320865c0 tastudio: don't update branches if no movie was loaded 2017-03-18 18:15:21 +03:00
feos 216c7ea487 tastudio screenshot popup: act more like taseditor in terms of time
only update opacity by 1/8th every 40ms. allows to skip fading in if mouse moves around at regular speed, and only pops up if deliberately hovering over the cell

also reduce magic numbers a bit
2017-03-18 18:14:23 +03:00
feos 1827f44fb8 tastudio: detach screenshot popup timer since it crashes 2017-03-18 17:18:36 +03:00
feos e99b52342c tastudio: bind autosave and screenshot popup timers to controls
also annihilate _saveBackgroundWorker
2017-03-17 21:55:43 +03:00
feos a9cda4a21f tastudio: dynamically resize usertext column 2017-03-15 21:46:46 +03:00
feos 4eaa04d412 tastudio: branch text edit popup follows mouse pointer 2017-03-15 19:24:27 +03:00
feos 6e99227c72 tastudio: Clone() for branches. fixes UserText cancellation
also cancel backup and osd message if text edit was canceled
2017-03-15 19:17:47 +03:00
feos d254ad01d8 tastudio: add branch undo feature
the fact that it's separated from changelog is because there's no way to extend the latter, but *also* it's intended, as we want branches to be independent from changelog manipulations

todo: figure out branch text edits
2017-03-14 22:49:55 +03:00
feos c6d1aad25f tastudio: actually change branch screenshot bitmap 2017-03-14 22:15:20 +03:00
feos 868c02175c some more topmosts and sound mutes 2017-03-14 22:13:51 +03:00
feos a30b89039f more topmost modal dialogs 2017-03-12 14:50:24 +03:00
feos fed9380e33 tastudio: rewinding was turning rec mode off 2017-03-08 20:42:24 +03:00
feos a124fd72a1 tastudio: add jump to branch frame (aka read-only loading) 2017-03-08 19:32:09 +03:00
feos 31ccc9f413 tastudio: hide when going from branch 0 to header cell 2017-03-08 16:49:55 +03:00
feos 0ec0910207 tastudio: move screenshot popup to yet another control to allow fading
avoid false branch 0 hover when entering branch view from the top

todo: hide screenshot when moving upwards to header cell
2017-03-08 16:31:49 +03:00
feos 5c91c2f98c tastudio: allow exporting a named state 2017-02-24 21:58:41 +03:00
feos 03ea4f9126 tastudio: fix #806 part 2 2017-02-19 11:43:35 +03:00
feos d19fcb62ab tastudio: fix the first half of #806 2017-02-19 10:31:30 +03:00
feos 60d69db588 tastudio: stop crashing upon movie platform mismatch
make the error window topmost
2017-02-19 00:26:42 +03:00
zeromus f458648fad improve rewind in tastudio by leaving editmode intact but taking care not to clobber frames. take special pains to ensure that (reverse) frame progress vs smooth rewind semantics stay as expected. 2017-02-16 00:29:28 -06:00
feos 5bc643f1fd tastudio: shrink the branch image like you should 2017-02-09 23:10:41 +03:00
feos 821baeb649 tastudio: captured state 0 was useless if movie conversion happened at frame>0
capture it after core reboot
2017-02-09 22:51:52 +03:00
feos 230dcc2356 tastudio: make ToggleReadOnly() toggle read-only
this allows movie.getreadonly() return valid value
2017-02-07 19:03:46 +03:00
zeromus ea2188dc46 make tastudio.setplayback correctly restore the recording flag after it finishes seeking from the greenzone to the target frame 2017-02-07 00:01:14 -06:00
feos c739755e9b tastudio: hide whatever starts with "Key " by default
ideally, there should be separate Keys menu items in SetUpToolStripColumns() as well, moving them to a separate dropdown and hiding/showing all at once
2017-02-05 15:20:05 +03:00
zeromus d87a2b27a2 make lua's new tastudio.setplayback re-enable the record flag if it was set (the existing logic leaves it disabled I think as security against the GUI use case where users might stomp their video seeking while playing in record mode). future work: add lua control for the record mode flag 2017-02-05 04:20:07 -06:00
feos 5d3435e6e6 tastudio: update caption as well 2017-02-04 23:36:17 +03:00
feos ae15073180 tastudio: fix regular movie opening from tastudio 2017-02-04 22:33:52 +03:00
feos 51f21691fd tastudio: fix #788 2017-02-04 16:09:13 +03:00
feos f860c5d8b1 tastudio: try to fix opening a bk2 directly 2017-02-01 20:41:15 +03:00
feos 7d469c08a8 tastudio: show bsnes performance mode warning
addresses #788
2017-01-31 00:00:09 +03:00
feos 37a44c2b17 tastudio: fix and tweak clipboard and selection display 2017-01-26 20:21:48 +03:00
feos d8d0c62adf tastodio: completely redo branch screenshot popup just to avoid cropping
moved it to ToolTip, which feels like the proper way to do it
2017-01-22 17:46:54 +03:00
feos 74adace569 tastudio: file opener improvements
- fix opening and conversion of a regular movie
- fancy ofn filter, suggesting all available files first
2017-01-20 02:00:27 +03:00
feos ae16703ffc tastudio makers text popup:
- appears when double-clicking existing marker in tasview
- appears at cursor position when called from tasview (fancy)

this required adding optional position to ShowHawkDialog()
2017-01-19 23:24:41 +03:00
feos 17faf42b6e tastudio: try to be a bit smarter with SelectedIndexChanged
forces SetSplicer() calls, but only at InputRoll's OnMouseDown, the rest is handled by tastudio
2017-01-19 21:55:18 +03:00
feos 3548ec00dc tastudio: use Emulator the same way branch control uses it
this fixes a bug that generated a whole stack of temp fixes over temp fixes, as well as the crash those were trying to prevent
2017-01-13 18:26:52 +03:00
feos 8f8cf53052 tastudio columns: restore call missing since commit 3ea3012aa7
seems to only be needed for importing bk2s, other scenarios setup columns on their own, differently
2017-01-07 19:48:04 +03:00
feos 8bae2a4648 tastudio: fix double-click on the empty area throwing an exception 2017-01-04 20:16:34 +03:00
alyosha-tas c496674301 TASStudio revert design commit 2017-01-02 12:27:40 -05:00
feos 480bc5540f tastudio: reload the tasmovie if it was loaded outside tastudio and then tastudio was opened
also go to current emulator frame in that case

todo: one isn't expected to change anything in the tasmovie while in regular mode, otherwise something might break. fceux opens taseditor if a read+write state is about to load in such conditions
2017-01-02 13:59:00 +03:00
alyosha-tas 0c3da629c8 Fix for exception in marker window 2016-12-13 22:37:06 -05:00
adelikat 5ff33e7569 Rename IController.Type to IController.Definition to more clearly describe the property 2016-12-12 12:30:32 -06:00
adelikat 3bfce81eae LuaConsole - have a RequiredService of IEmulator and pass it into the lua implementation instead of using Global.Emulator 2016-12-06 10:35:11 -06:00