Commit Graph

547 Commits

Author SHA1 Message Date
J.D. Purcell afd55fdc6b Revert "Default to Sync sound instead of Async"
This reverts commit 6702f7795c.
2016-12-14 18:26:19 -05:00
alyosha-tas 6702f7795c Default to Sync sound instead of Async
It seems like 'CanProvideAsync' was always returning true so the else if at 1621 was defaulting to setting Async, which caused an exception later.

This seems similar to some TAStudio issues where different people are getting different results depending on Windows version, but I don't see any issue with not setting Async mode.
2016-12-14 15:07:04 -05:00
adelikat dd48864058 AsVideoProviderOrDefault() extension method 2016-12-12 13:47:11 -06:00
nattthebear dbdac5e3f2 Fix stuff or not 2016-12-11 22:37:28 -05:00
nattthebear a98316ba97 Soudn refactoring: Unbreak clock & vsync thrtottle 2016-12-11 18:35:42 -05:00
nattthebear ca60a33293 mess some stuff up 2016-12-11 15:01:42 -05:00
nattthebear eb72ff9053 Swag up NullSound 2016-12-11 14:07:12 -05:00
adelikat b73a500d6b Major sound provider refactor. Create a unified interface ISoundProvider, that is an IEmulator service and break it off of IEmulator. IAsyncSoundProvider was kept as a shim for now, for legacy cores that were inherintly async. 2016-12-11 11:15:00 -06:00
adelikat b697110098 Rename ISoundProvider to IAsyncSoundProvider to more accurately describe what the service does 2016-12-09 10:24:43 -06:00
adelikat 4d1629e271 Completely divorce IVideoProvider from IEmulator, use a NullVideo implementation in MainForm if a core does not provide one, Remove VideoProviderGlue. Note that NullEmulator does implement IVideoProvider still, since we like to have fun with that one 2016-12-07 13:21:18 -06:00
adelikat 9135aea773 Make a shim property in Mainform as a step towards reducing the use of Globals 2016-12-04 11:19:34 -06:00
adelikat 78bb41e3cf Mainform - make AV and Screenshot menus dependent on having a VideoProvider, and remove some usages of VideoProviderGlue 2016-12-04 10:50:28 -06:00
adelikat 5665de1797 Intellivision - add a "Fake analog" controller as the default controller for easier binding for casual play, but also leave a boolean option as well for more precise (TAS) control. Add a controller config dialog to select them. 2016-12-03 17:44:25 -06:00
feos 05d47a7318 tastudio: make analog hotkeys working, and their names fit in 2016-11-21 18:00:21 +03:00
feos 95dc2fd6b3 tastudio: move arrow keys logic to hotkeys
disallow sending Minus to MainForm
2016-11-20 23:26:13 +03:00
adelikat be93e78dd5 Intellivision - add .int files to the open file dialog in developer builds 2016-11-13 08:25:19 -06:00
zeromus 595a207c97 add new field to gamedb to specify which core should be used.
allow it to be 'neshawk' or 'quicknes'.

this should only be employed by end-users; we won't make those choices in the gamedb officially.

the quicknes blacklist is still implemented separately.

yeah, that's a lot of prioritization levels.
2016-11-12 19:23:54 -06:00
zeromus c7b639be28 apply ArcadePit idea: Let user change the string in the emulator title bar via a file
(but changed the format of the string to be more generally useful, and changed it to dll/custombuild.txt)
2016-11-12 18:49:03 -06:00
zeromus 0b4fc8b6a5 apply Arcade Pit work: "Extract NesCarts.xml for easier modification" 2016-11-12 18:32:18 -06:00
adelikat 60f84fa028 Merge pull request #706 from Meerkov/master
Fix Volume Controls
2016-11-08 10:42:27 -06:00
adelikat 8033a8c4fc Fix a null emulator check, fixes dump status icon not updating after a failed rom load 2016-11-07 14:26:02 -06:00
adelikat ef6c9131c6 Fix behavior when loading a new rom when a cheat is loaded, fixes #550 2016-10-06 13:57:39 -05:00
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