Commit Graph

625 Commits

Author SHA1 Message Date
Meerkov 6a9510c9ae Re-enable Thread Sleep when not in Absolute Zero mode 2016-09-29 01:19:25 -07:00
Meerkov 129fdf2a68 Revert "Allow Fast Forward Volume to be Louder than Normal Volume"
This reverts commit 4bd6608940.
2016-09-29 01:10:23 -07:00
Meerkov 9eafac83d4 Improve Absolute Zero Mode by 15-30%
Short-circuits out of the Render function in the main program loop.

With an NES game running at 8500 FPS before, this brings it to 9700 FPS.

With no game loaded, running at 45k FPS, this brings it to 60k FPS.
2016-09-29 00:57:32 -07:00
Meerkov 151c88feb8 Removes busy-wait
This sleep doesn't appear to be needed. It's just busy waiting.

We save CPU cycles by not doing this.
2016-09-29 00:18:55 -07:00
Meerkov 1b8d32e82f Refactor the FPS Counter to it's own function
1) Takes the block of code that calculates the string to print and gives
it it's own function.

2) Stores a static display variable. Fixes incorrect FPS while fast
forwarding as a result.

3) Reduces updates per second to 12 from 16.
2016-09-29 00:04:39 -07:00
Meerkov 68a362c8ff Fix subtle bug in renderSound
Bug as follows:

renderSound was true when any of the following:
_currAviWriter!=null&&_currAviWriter.UsesAudio
!IsTurboing || _currAviWriter!=null

So, if _currAviWriter!=null, it didn't matter if it has the UsesAudio
flag on or not.
2016-09-28 23:14:18 -07:00
Meerkov 4bd6608940 Allow Fast Forward Volume to be Louder than Normal Volume
Allows FF Volume to override the normal volume, instead of multiplying
it (which could only decrease the volume).
2016-09-28 22:40:14 -07:00
Meerkov 4aa64b1f34 Refactor atten variable checks
Cleans up volume checks, makes it a bit easier to follow by removing
negations.
2016-09-28 22:37:26 -07:00
Meerkov d3547b15d4 Fix bug with Mute Frame Advance
It will actually mute when you hold the Frame Advance button.

Previously, the setting did nothing.
2016-09-28 22:02:38 -07:00
Meerkov 49d7f79ce5 Reduce redundant attenuation code in main loop
This simplifies the code for setting the attenuation by setting it to 0,
and moving all the checks that change it next to each other.
2016-09-28 21:48:35 -07:00
Meerkov cd46188efe Remove Unused Variable
UpdateFrame can never be true, so all of this code is pointless.
2016-09-28 21:24:09 -07:00
Meerkov 4e99ed17ae Replace spaces with tabs 2016-09-28 21:16:24 -07:00
Meerkov 91c5eda526 Update FPS Counter
Changes the FPS counter to fade.

Why: FPS counter has a bug where it doesn't normalize the frame count to
the time passed since last update. This can result in an error of 1 FPS.
When running at 30 FPS, that is ~3.33%. The lower the FPS, the worse
this error grows.

1) Adds a parameter for how often to update the FPS (e.g. 16 times per
second).

2) Normalizes to the number of seconds passed since last update (fixing
the bug).

3) Adds a smoothing parameter (e.g. weigh the most recent interval at
8x, and normalize with current displayed date). This results in less
jumpy FPS because it takes into account historical data.
2016-09-28 21:04:53 -07:00
adelikat 707c0944f0 clear the OSD before doing loadstate callbacks, fixes #635 2016-09-22 10:13:26 -04:00
adelikat 10a2ae1471 Detect when a joypad is added or removed while bizhawk is open fixes #698 2016-09-21 21:23:57 -04:00
feos ef445c90c7 tastudio: fix a couple of crashes 2016-09-09 19:15:00 +03:00
feos a0d718acc0 tastudio: don't pause on green arrow is seeking past it 2016-09-08 23:29:17 +03:00
feos 2b0dc82d16 tastudio: finally make < > buttons operate identically to advance/rewind hotkeys 2016-08-28 18:42:59 +03:00
feos 0246c952eb tastudio: complete overhaul of seek logic, replicating taseditor
todo: fix lastpositionframe dying if editing the same row twice with no autorestore, probably improve cursor color and rename old seek related vars
2016-08-28 01:08:43 +03:00
feos ef47d9fbca tracer: reboot on game close
more ^final^ tweaks
2016-08-22 21:57:18 +03:00
zeromus 94383ab143 fix deleting recent roms when missing 2016-08-17 20:24:14 -05:00
feos 80c90e7acc m64p: attempt to add execute callback
no memory callback seems to be working yet though
2016-08-11 21:58:09 +03:00
feos f94b352765 tastudio:
- fix escape handling
- frame advance doesn't unpause emu when seek frame is reached
2016-08-04 19:42:42 +03:00
feos bade8f9217 tastudio: properly handle global rewind function (step'n'run)
not attaching it to playback buttons, because they're obsolete and because they kinda simulate holding anyway.
2016-06-13 13:17:21 +03:00
Hathor86 7fb0eaf337 Add Save/Load state methods and events to ApiHawk
Now, ApiHawk can save and load name state. There are also events that
you can attached too. Furthermore, BeforeQuickSave/BeforeQuickLoad
events occurs just after user pressed button. We can react to this and
even override behavior.
Finally, I just allow .bat to take xml files (for ApiHawk doc)

PS: Yeah, I'm still alive
2016-05-29 16:50:16 +02:00
zeromus ef318aa0f8 fix noise in some cores during pause 2016-05-22 15:00:45 -05:00
zeromus 1a1a688b96 remove NeedsToPaint; client now repaints ~100fps while paused all the time. as it already did when input display was enabled. fixes #615.. probably 2016-04-20 12:17:41 -05:00
zeromus 1b8a51e447 rework sound config dialog and sound volume control to permit independent control of volume during FF & RW, and independent toggling of sound synthesis vs volume=0 suppression 2016-03-29 03:40:37 -05:00
zeromus 10272b4857 add alternate vsync method for d3d display method, in case youre the lucky owner of a system that sucks 2016-03-27 04:49:17 -05:00
zeromus 406b431280 add comments for later about triple buffering 2016-03-26 12:39:31 -05:00
zeromus c429ebdbcf fix error in "Display Vsync set to" OSD message 2016-03-26 12:39:31 -05:00
zeromus 204ff2365f I think the 1px padding hack (enabled by default) should have only applied to opengl (it was created when we only had opengl and it's meant to address a problem i think is opengl only). May possibly cause flickering when going fullscreen, if I'm wrong. 2016-03-24 14:47:18 -05:00
Hathor86 c0f7219b06 Contextualization of external tools + Basic of ClientApi
We can now specify a context for external tools. Global, specific for a
type of emulator / system or specific for a game (If not specified, a
tool is global).  It should avoid loading something unwanted.

Also add ClientApi, a static class that can interract with EmuHawk
window (SetPadding is the only thing implemented currently).
2016-03-16 23:06:53 +01:00
zeromus de576bb067 AVWriters now implement UsesAudio and UsesVideo so that the frontend can decide how much work it needs to tell the core to do to fulfill the AVWriter's needs (fixes #593) 2016-03-05 17:20:00 -06:00
adelikat f1f45afd83 Remove CoreComm link cable properties and turn it into an ILInkable service instead 2016-02-28 13:52:17 -05:00
adelikat 7a4a210ccc Remove some unused code and usings 2016-02-28 13:36:17 -05:00
adelikat c333403895 Prevent Advanced loader from pooping all over every other tool, this needs to be refactored 2016-02-28 12:15:23 -05:00
zeromus 3c96e9d434 ok so i messed up with the FileInfo, because it was already there and I just lazily used it. But lets try handling this with the sophistication it calls for 2016-02-27 16:19:41 -06:00
adelikat fa3ccc59e7 try/catch the File.Move when making a backup savestate and do nothing 2016-02-27 09:58:41 -05:00
nattthebear 35f2599c13 Remove savestate wait that caused nothing but trouble 2016-02-27 09:51:01 -05:00
zeromus 95bc69b448 some prepwork for opengl texture ID importing (skip rendertarget resolve on OGL display method) but there are still problems and it can't be enabled yet 2016-02-22 00:23:20 -06:00
zeromus 10b8a54e6c savestate backup had delete (it's asynchronous) vs move race condition 2016-02-21 22:01:36 -06:00
zeromus 0eb6e83384 glcontexts can specify versions and clean themselves up 2016-02-21 17:19:34 -06:00
adelikat c41851e877 Call the lua loadstate callback before redrawing the screen and other updates 2016-02-15 19:17:19 -05:00
adelikat b3728ff192 Make Screenshot Raw to Clipboard and Screenshot Client to Clipboard into configurable hotkeys instead of hardcoded shortcut keys in the menu items 2016-02-14 21:30:24 -05:00
adelikat 8168031bed Make TargetZoomFactor a per systemId setting 2016-01-31 21:05:08 -05:00
adelikat 894a9c2318 Rework ToolHelpers from a static object to ToolFormBase that inherits form and have a lot of tools inherit it, in hopes of moving a lot of copy pasta into a base class, move a few functions that show up a lot there 2016-01-30 20:24:53 -05:00
feos 099df32224 ability to save/load specific config files 2016-01-27 19:07:26 +03:00
adelikat 60692450e8 New Hex Editor - add the plumbing for the HexView widget, that will use the GDIRenderer as the basis for the drawing. 2015-12-24 11:15:29 -05:00
zeromus 22143f99fb work on stability of avi writing. Unfortunately, I did a half dozen things here, overlapping in complicated ways, and at least 2 of which were required to fix it: changed pinvoke wrapper of AVISaveOptions, removed ownership of pointers from codec token (simplified analysis and in principle [but not practice] determinism due to less GC involvement), changed life cycle management of codec token (irrelevant due to prior), changed functions used to allocate memory from AllocHGlobal to pinvoke HeapAlloc, made different assumptions of ownership/lifecycle of pointers accessed by AVISaveOptions. notably the pinvoke wrapper for AVISaveOptions was the last thing I fixed that sealed the deal, but I don't think it was that simple. 2015-12-19 05:13:31 -06:00
feos d77c414a06 avi: traditional avi setup menu item. 2015-12-16 21:14:13 +03:00
pgrimsrud bb327261ae Add a return value to the main function for various purposes.
Add Lua function ExitCode to allow script writers to terminate the client with an exit code.
2015-12-15 22:39:42 -07:00
feos 2535207a40 tastudio: actually implement seeking progressbar. 2015-12-13 00:00:23 +03:00
zeromus 48bf9616db fix --fullscreen and fullscreenOnLoad options 2015-12-12 13:25:59 -06:00
feos 2a6a2a7a8a tastudio: properly report saving progress.
also attempt to report seeking progress.
report occurs, but progressbar doesn't show up...
2015-12-10 01:38:06 +03:00
feos 173b9e9d76 new lua script, relying on recent features.
show frame when rewinding.
2015-12-07 21:43:32 +03:00
feos 72b650d606 tastudio: properly save/load column settings.
wrap MainForm savestate functions that tastudio can now control into IControlMainform.
2015-12-07 20:05:04 +03:00
zeromus 35066b69ef tastudio - fix behaviour of menu by special hacks involving ALT key 2015-12-05 11:32:56 -06:00
feos 84ea239180 tastudio: better check if it was engaged.
baka-yoke branch messages.
2015-12-05 18:33:35 +03:00
feos abd118253f tastudio: Save State hotkeys (finally) control branches:
- save/load by slot number (select that branch if it exists)
- save/load current slot (selected branch)
- select branch by slot number
- select next/previous branch
- bind 2 default tastudio hotkeys
keep selection when branch gets removed.
2015-12-05 17:07:24 +03:00
feos 6d4c5ef17f preparations for state hotkeys functioning with tastudio branches.
typos.
2015-12-05 14:48:04 +03:00
Hathor86 d92eed5845 Menuing
Change the menu item name
Change interface name
turn menu item into a submenu dynamically filled
2015-11-21 01:03:48 +01:00
Hathor86 bae4d53cbf merge remote master 2015-11-20 13:14:38 +01:00
zeromus 10fcf662a1 oops, i didnt commit enough 2015-11-18 21:18:00 -06:00
Hathor86 c7dcb42b94 Merge from maser@TASVideos 2015-11-15 11:27:00 +01:00
hegyak 77e6239992 Correct/Cleanup the GameShark Tool.
Conflicts:
	BizHawk.Client.EmuHawk/tools/GameShark.cs
2015-11-14 15:15:47 -06:00
zeromus fae4d27bed Revert "Cleanup GameShark.Designer.cs"
This reverts commit 9864d8190c, reversing
changes made to 0630be922b.
2015-11-14 15:11:13 -06:00
hegyak 6c9006241d Correct/Cleanup the GameShark Tool. 2015-11-14 12:10:23 -08:00
hegyak 1ba166af19 Correct the GameShark Menu Item. 2015-11-14 06:57:11 -08:00
hegyak c112a2b0a2 Added GameShark Converter. 2015-11-14 04:49:45 -08:00
zeromus 283cb4ae50 fix loading of roms from commandline 2015-11-12 17:47:39 -06:00
Hathor86 5c36c16160 Fixing merge 2015-11-08 22:57:54 +01:00
Hathor86 cc2c888870 Merge remote-tracking branch 'refs/remotes/TASVideos/master'
Conflicts:
	BizHawk.Client.EmuHawk/MainForm.Designer.cs
	BizHawk.Client.EmuHawk/MainForm.cs
	BizHawk.Client.EmuHawk/tools/CDL.Designer.cs
	BizHawk.Client.EmuHawk/tools/CDL.cs
	BizHawk.Client.EmuHawk/tools/CDL.resx
	BizHawk.Common/InstanceDll.cs
	BizHawk.Emulation.Common/CodeDataLog.cs
2015-11-08 22:41:51 +01:00
zeromus b745d5776a tidy libretro core info and use recommended extensions 2015-11-07 19:59:10 -06:00
zeromus 70b7098cb8 fix rebooting of libretro cores, add CPU detection win32 hacks, add retro perf interface 2015-11-07 13:05:40 -06:00
zeromus 7651f418fe usably functional libretro player 2015-11-07 00:14:59 -06:00
zeromus fb7ed39944 change order of shutting down core vs tools so tools have a chance to unhook from the core before the core is disposed 2015-11-03 23:45:57 -06:00
Hathor86 f70a2c8c6c Merge from TASVideo 2015-11-01 22:01:19 +01:00
zeromus bef877365c make CDL generic, and prep for GB CDL 2015-10-26 19:15:21 -05:00
zeromus 188bf5a6c6 fix #530 "AV Resizing shows black screen with PSX" 2015-10-25 16:06:50 -05:00
feos 4e7d03d9a3 tastudio: clean up garbage lua text and drawings.
- text was written twice if we update tools and PauseOnFrame (seek) within one frame.
- drawings didn't update during turbo even when RunScriptsDuringTurbo was on, but a whole bunch of accumulated drawings was appearing at once, when you do a normal advance after turbo mode.
2015-10-22 19:33:31 +03:00
zeromus 500f8f9d70 print aspect ratio in caption in addition to client size while resizing main window 2015-10-21 04:47:15 -05:00
zeromus 5906bf232b add --load-state to go along with --load-slot 2015-10-17 21:36:21 -05:00
Hathor86 9b46de0d3e Menuing
Allow tool to be loaded from menu instead of ROM loading
2015-10-17 20:44:36 +02:00
zeromus bff94896f9 fix "multiple screenshots within the same second" better. it used to conk out on the 4th. to test this I had to build a robot since reyvgm's supersonic finger was unavailable 2015-10-12 16:35:45 -05:00
Hathor86 b55a175556 Merge remote-tracking branch 'refs/remotes/TASVideos/master' into NewrRelease
Conflicts:
	Version/VersionInfo.cs
2015-10-11 19:51:03 +02:00
Hathor86 8f123527e8 Merge remote-tracking branch 'refs/remotes/TASVideos/master' into NewrRelease 2015-10-11 19:40:46 +02:00
adelikat c57519c54f C64 - add a c64 menu with a settings menu and dialog 2015-10-10 12:20:59 -04:00
adelikat 3ca25ccb69 Merge pull request #506 from Kabuto/master
C64 core: tape loading added, lots of bugfixes and improvements
2015-10-10 11:11:59 -04:00
Hathor86 8ad8ad2c6a Start back from initial release branch
Just to have cleaner changes
2015-10-07 23:54:57 +02:00
Suuper d1fa718120 Put my AutofireStickyXORAdapter back and fixed the bug it had. 2015-10-03 09:36:07 -05:00
Kabuto 1e9564a337 C64 core: tape loading added, lots of bugfixes and improvements 2015-09-28 01:30:58 +02:00
zeromus 9df7a4d31b psx - add option (defaults to disabled) to use mednafen's error correction 2015-09-13 19:17:17 -05:00
zeromus d69a17b25e fix #495 2015-09-08 15:56:20 -05:00
adelikat 81df9f1224 Basic Bot - don't show quicksave loaded osd message 2015-09-06 22:49:23 -04:00
adelikat 2290becddf Basic Bot - turbo when botting, normal speed when playing, save and load frame length in bot files 2015-09-06 18:00:39 -04:00
adelikat 08978978d0 issue #493 - add option to not display OSD messages 2015-09-05 16:48:37 -04:00
zeromus f0c34517e1 display manager: sort out all the y-flipping madness and fix some bugs in gdi+ with screenshot and prescaling 2015-08-30 09:20:03 -05:00
adelikat d6a998b6de Start the Basic Bot tool, a tool that will be based upon the design in Fceu.16 (programmed by Luke). This check in is just the boiler plate stuff 2015-08-26 21:55:55 -04:00
adelikat 407f44bf96 Fix issue #461 - broken by Tastudio autofire patterns, THIS BREAKS TAStudio autofire patterns, they need to be fixed, in a way that doesn't break autofire 2015-08-24 20:51:53 -04:00
zeromus 7e828d5618 d3d display method 2015-08-24 13:10:50 -05:00
zeromus 2adb3deac7 combine throttle OSD messages into a unified representation 2015-08-17 23:49:24 -05:00
zeromus 3f78e2e70f add feature to display config > misc tab for disabling display of screen and hud for true maximum turbo performance. also display FPS in window caption during that mode, so you can still tell what's going on 2015-08-17 23:26:19 -05:00
zeromus 243dcefc7e don't render audio if SoundEnabled=false. This makes unthrottled scenarios run faster when sound is disabled, as you would be expecting 2015-08-17 23:14:40 -05:00
adelikat adbe7a2340 add .unf to the Open Rom dialog 2015-08-17 16:27:40 -04:00
zeromus 0cd3a82862 psx - improve framebuffer clipping method, add deinterlacer settings, fix some PAR for PAL games; fix bugs in GameExtraPadding handling 2015-08-09 13:57:45 -05:00
zeromus 15fab8e5d2 sequentially number screenshots taken in the same second 2015-08-05 09:47:00 -05:00
adelikat 2e3b27494f when loading a movie via commandline, don't nag about lacking sync settings 2015-08-01 11:13:22 -04:00
adelikat f487a1f937 when loading a movie via commandline, check for importable movie types and import them 2015-08-01 10:55:19 -04:00
zeromus 63197300b4 add fullscreen auto-hide mouse cursor 2015-07-24 16:00:04 -05:00
zeromus 39c2db3354 fixup frontend file filters extension lists a bit to add m3u and some other tidying 2015-07-23 10:23:39 -05:00
zeromus 6e1cde2793 hookup PSF support 2015-07-20 23:11:00 -05:00
adelikat 1af28239dc Tastudio - lots of progress on branches 2015-07-18 22:20:38 -04:00
zeromus 7bec7b806b add PSX disc hashing tool 2015-07-12 20:08:30 -05:00
scrimpeh 667e4273f3 Firmware Manager - Add option to reload ROM if ROM load has failed before 2015-07-12 21:30:26 +02:00
adelikat b594360a25 We had two variables controlling the state of the visibility of the windowed status bar, remove one of them. Fixes issue #448 2015-07-12 10:58:13 -04:00
adelikat d015b1aed0 same as last commit, but a different place 2015-07-09 19:35:00 -04:00
adelikat 453d8014bf change an "if (!x)" to "if (x)" because that's easier to read 2015-07-09 19:25:59 -04:00
adelikat 261ae5e323 Don't warn that a movie lacks sync settings if the core itself has no sync settings. Cores like Apple II do not, for instance. Fixes issue #437 2015-06-21 00:50:34 +00:00
goyuken 81d8018d4c apple2: support MONCHRONOME 2015-06-16 23:24:52 +00:00
adelikat 1631297cdd Start AutoHawk, just a stub with the anticipated required services and a config object 2015-06-15 22:12:24 +00:00
adelikat 80957a1071 Apple II - set status of core as released, add file extensions to the released version of the open rom filter, and add author info 2015-06-10 22:32:47 +00:00
adelikat f3dbf8e013 On startup, respect the show status bar flag, fixes issue #421 2015-06-06 22:31:56 +00:00
adelikat b9d9ffe7a5 Core picker for mGBA 2015-06-06 20:47:50 +00:00
goyuken 4a5f87387c saverams in mgba, maybe 2015-06-06 12:49:31 +00:00
adelikat 26769ba476 Add .do and .po files as Apple II files 2015-05-28 00:16:08 +00:00
adelikat adb9f542c0 add core selection to the Nes menu 2015-05-09 12:19:55 +00:00
zeromus 6833a24638 add NES music ripper tool prototype 2015-05-08 00:56:46 +00:00
adelikat 732bc5389c progress on MultiDiskBundler 2015-04-19 22:34:08 +00:00
adelikat 64c588ea5a start the MultiDiskBundler tool, that will make it easy to make multi-game xml files such as for Apple II and dual gameboy (and eventually other systems) 2015-04-19 21:02:22 +00:00
adelikat e6e94b8d54 Apple II - ui for disk changing 2015-04-13 00:46:11 +00:00
hegyak ae341fc81a Added dsk to the LoadROM Dialog 2015-04-09 15:20:50 +00:00
SuuperW 6783978f49 Bugfix: Extending movie by painting invalidated last frame
Moved GreenzoneCurrentFrame call to a new method called after frame advance.
Feature: Scroll to marker
Page up/down now scrolls by one page
Scrolling via dragging bar and via wheel now both have the same max value.
2015-03-16 20:42:14 +00:00
SuuperW a3eadc8e5f Various bug fixes, most to TasStateManager. 2015-03-16 16:36:00 +00:00
SuuperW 37590e7ea4 TasStateManager can now save states to disk. 2015-03-15 06:26:57 +00:00
zeromus db9fbced86 neshawk - rough sketch of NSF player. basically functional for some games 2015-03-11 09:46:27 +00:00
SuuperW 7360badb4a Added AutoFire support in TAStudio, fixed/improved patterns.
-A couple minor fixes
2015-03-08 04:42:04 +00:00
adelikat be51677fde Remove Global.NullControls 2015-02-22 20:38:10 +00:00
adelikat 817c798eab Remove Global.CoreComm since it was pointless 2015-02-22 20:06:30 +00:00
adelikat 7e92f38eb3 AutofireController - pass in an instance of an emulator rather than use Global.Emulator 2015-02-22 18:02:56 +00:00
adelikat 7e763408e2 Move MainForm.SupportedPlatforms to Emulation.Common.SystemLookup 2015-02-22 17:15:09 +00:00
adelikat 41950cb9e0 ToolManager - take a Form owner in the constructor and pass it in to any tools that are also Form objects (all of them). ToolBox - use the Parent property instead of GlobalWin.MainForm now that it is populated 2015-02-22 04:02:30 +00:00
adelikat 1514faf300 Move PresentationPanel from GlobalWin to Mainform, since it was primarily used there (and the few other places knew about GlobaWin.MainForm anyway) 2015-02-22 03:53:07 +00:00
adelikat e3f9388a17 Move HotkeyCoalescer from GlobalWin to MainForm since only MainForm uses it anyway 2015-02-22 03:45:00 +00:00
adelikat f3c29e5bc2 replace some references to GlobalWin.MainForm in MainForm itself, because that makes no sense. 2015-02-22 03:26:00 +00:00
jdpurcell 730694644d Add option for OpenAL on Windows. 2015-02-19 03:22:20 +00:00
jdpurcell c56edd6e93 Add OpenAL sound output.
XAudio2: Some stuff I forgot to dispose.
2015-02-19 02:30:55 +00:00
zeromus dbbfda1c85 add (odd) resolution warning to choose a/v writer and make 'autodetect' button apply CaptureOSD setting 2015-02-17 00:13:19 +00:00
jdpurcell 2261e8dc03 Remove duplicate CheatList.Changed event wireup (happens in constructor as well). 2015-02-08 15:41:38 +00:00
adelikat d5ed4369e9 Fix autoloading of TI-83 keypad 2015-02-07 14:30:14 +00:00