adelikat
698c6741ae
Refactor IEmulator and remove the IController property, instead pass it as a paramter to the FrameAdvance() method
2017-05-01 20:09:11 -05:00
adelikat
ded1c2d7b7
Break off BoardName from IEmulator into a separate IBoardInfo service
2017-04-30 21:01:54 -05:00
J.D. Purcell
083d9bec0e
Throttle cleanup.
2017-04-30 20:38:10 -04:00
J.D. Purcell
0d853fd74a
MainForm cleanups.
2017-04-29 15:18:08 -04:00
J.D. Purcell
3ebcaa8af0
Rewind cleanup / tweaks.
2017-04-29 14:04:19 -04:00
J.D. Purcell
a72bdfe30f
Allow rewind during movies.
2017-04-29 11:06:00 -04:00
J.D. Purcell
4848bb5cc3
MainForm: Remove unused line.
2017-04-24 10:34:13 -04:00
adelikat
13ca76f3f8
UI for changing SNES controller configurations
2017-04-15 20:34:32 -05:00
J.D. Purcell
16bf63ade8
Random cleanups.
2017-04-10 09:36:04 -04:00
shanehoman
58e1b52369
expose MainForm.SaveRam() method to lua
2017-04-02 23:12:38 -07:00
J.D. Purcell
07a8c2c027
Remove unnecessary rewind capture on ROM load. I reviewed the original commit where it was added, and it was only to initialize the delta rewind buffer.
2017-04-02 23:01:41 -04:00
J.D. Purcell
3f776dbf6f
Rewind: Fix subtle off-by-one-frame bugs (only really noticeable when frame advancing).
2017-04-02 18:50:34 -04:00
J.D. Purcell
c58d2929f8
SoundOutputProvider: Standalone mode to eliminate the need for an external buffer when used with SyncToAsyncProvider.
2017-03-25 16:26:46 -04:00
J.D. Purcell
231795c2cb
Correction to previous AVI recording commit: buffer doesn't need to be so large.
2017-03-23 09:30:22 -04:00
J.D. Purcell
33d42152a8
Fix N64 audio weirdness in AVI recording.
2017-03-22 23:00:37 -04:00
J.D. Purcell
6cc5a914b7
Rewind cleanup.
2017-03-18 21:22:02 -04:00
zeromus
edc3cea302
use gizmo to load roms from drag&drop and commandline (file>open already magically worked, due to explorer I guess)
2017-03-15 22:50:35 -05:00
feos
5c91c2f98c
tastudio: allow exporting a named state
2017-02-24 21:58:41 +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
adelikat
2f3c0af4ea
Open Rom dialog - mark intellivision as not experiemental and have it show up in release builds
2017-02-11 12:45:20 -06: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
zeromus
136c071ee8
12hz is too fast for default fps updates, i cant even read it.
2017-02-06 23:17:46 -06:00
zeromus
a70e6e2fc4
fix #790 (Scroll wheel missing from input.getMouse())
2017-02-04 20:52:32 -06:00
J.D. Purcell
52d604cb24
Fix turbo mode not disabling sound rendering (broken by 68a362c
).
...
Apply FF&RW volume when unthrottled.
2016-12-20 22:41:59 -05:00
J.D. Purcell
970a9017d4
Fix typo in previous commit.
2016-12-18 13:03:58 -05:00
adelikat
40be0dd0b3
Refactor the way a Null ControllerDefinition is created
2016-12-16 23:34:18 -06:00
J.D. Purcell
7843664f68
Improve FPS smoothing to initialize with a real value instead of ramping up from zero. Re-initialize the FPS data after pausing or changing fast forward/rewind state to eliminate ramp-up and ramp-down in those cases. Only the initial behavior has changed; the FPS calculation/smoothing is otherwise mathematically identical.
2016-12-16 16:01:21 -05:00
J.D. Purcell
84480e4235
Fix sound bugs + cleanup.
2016-12-14 21:19:46 -05:00
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
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