- 44100 Hz default sample rate on OS X, since OS X tends to resample everything to 44100 Hz.
- Get rid of buffer status averaging in OpenAlEngine, since it makes assumptions on usage pattern that shouldn't be made.
- Extend ringbuffer.h to support resetting size, and move it to common dir since gambatte_qt/coreaudioengine uses it too now.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@185 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
Add RateEst reset method. Initialize RateEst count to 1.
Less refresh rate estimation averaging.
Allow more refresh rate estimation deviation.
Return NULL paintEngine in windows blitters that use the PaintToScreen attribute.
Add checks for things not being initialized in DirectDraw-blitter and QPainterBlitter paintEvents.
Don't reparent blitters (mainly to make a bug in Qt 4.4.3 win less annoying, widgets that do internal reparenting are still affected).
Check for window position less than screen top-left after mode change, before full screen, to avoid Qt moving it to the primary screen.
Add rate estimation to DirectSound engine.
Better underrun detection in DirectSound engine.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@182 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
as it's not really a per source thing at this point. If resampling avoidance is desired, then that
should rather be a user option (to depend on the OS for resampling, which is mostly nonsensical for the Game Boy/NES/PSG-system case btw).
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@176 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
Use half frame time if audio buffer is close to underrun.
Provide combined audioengine write and status get, to avoid doing potentially expensive operations twice. Utilized in OSS and ALSA engines.
Saner vsync estimate variance protection.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@174 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
Audio buffer command line options.
Use half video frame sleep time if audio buffer is close to underrun.
Adjust estimated frame time each frame.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@172 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
fourier transforms and optimal cost equations. Fast 2-tap linear as a low quality alternative.
- libgambatte: Use deltas and a running sum to decrease buffer writes in sound emulation sample generation.
- libgambatte: Rearrange sound emulation event loop to optimize for high-frequency event units.
- libgambatte: Initialize palette arrays to avoid valgrind noise.
- Don't do resampling in libgambatte. Update API to reflect this.
- Move non-emulation common code to a common directory to avoid duplication.
- Update front-ends to new libgambatte API.
- Utilize resampling framework in front-ends. Selectable resamplers.
- Improved adaptive sleep class that estimates oversleep.
- Gambatte SDL: Estimate actual output sample rate in terms of OS timers and derive frame rate from it.
- Gambatte SDL: Move AudioData and RingBuffer classes to separate files.
- Gambatte SDL: Make underruns slightly less painful, by resetting buffer positions.
- Gambatte Qt: Update AudioEngine to support sample rate estimation in terms of OS timers.
- Gambatte Qt: Implement sample rate estimation in ALSA and OSS audio engines.
- Gambatte Qt: AlsaEngine: Revert to using snd_pcm_avail_update for buffer status since snd_pcm_delay may consider external latencies.
- Gambatte Qt: AlsaEngine: Use snd_pcm_hw_params_set_buffer_time_near. Don't request a particular number of periods per buffer.
- Gambatte Qt: AlsaEngine: Use hw as default custom device string, rather than hw:0,0.
- Gambatte Qt: OssEngine: Don't trust GETOSPACE fragment info.
- Gambatte Qt: Estimate optimal frame rate based on sample rate estimations.
- Gambatte Qt: Extend BlitterWidget to support estimation of vsynced frame rate in terms of OS timers.
- Gambatte Qt: Implement vsync frame rate estimation in QGlBlitter, Direct3DBlitter and DirectDrawBlitter.
- Gambatte Qt: Use a combination of OS timer sample rate estimation and vsync frame rate estimation to derive resampling ratio for no-frame-duplication vsync.
- Gambatte Qt: Change API to reflect MediaSources not being responsible for resampling.
- Gambatte Qt: Make sure to parent PaletteDialog list model, so it gets deleted properly.
- Various refactoring, small changes and stuff I forgot.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@165 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
avoid signed overflow in constant (which is both undefined and likely to cause problems on architectures where sizeof(long) != sizeof(int)) in rgb2yuv code.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@156 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
change default buffer latency to 67 ms
don't auto-repeat buttons bound to keyboard
use enums for somewhat more robust gambattesource button setup
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@154 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
is neither tied to the data it points to nor invalidated by changes.
enforce valid state on reject since the list of schemes may have
changed.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@152 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
Add alternate key support to input settings dialog.
Auto-focus to next likely input box after settings key in input dialog.
Add "Play" and "State" input settings dialog tabs.
Avoid using the most convenient keys as forced menu short-cuts, set them
as default keys in input settings dialog instead. This unfortunately
makes the more useful shortcuts less visible, but it allows remapping
the most convenient keyboard keys.
Avoid duplicate joystick axis "press" events by keeping a map of axis
states.
Make sure to discard irrelevant/old joystick events.
Don't give MediaSource button events when stopped.
Allow joystick-based button events while paused by using a very
low-frequency poll timer.
Make some of the joystick event wrapping stuff less messy.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@149 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
clean up GUI menu creation code
move GUI recent files to submenu
move state 0 OSD pos to rightmost to match kbd layout
state 1 default on ROM load
support external save state files
add number key slot selection shortcuts
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@145 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
osd state n saved/loaded text
empty state osd thumbs marked with "Empty" text
adjust thumbnail interpolation weighing slightly
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@143 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
save state osd preview snapshots
fix a few potential security holes when loading invalid state
get rid of some undefined behaviour in statesaver
always draw in rgb32, color convert afterwards, too bad for maemo/16-bit
depth users
get rid of silly c string stuff
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@142 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
page flipping, triple buffering, device selection,
multi-head etc. d3d9.dll loaded at runtime
- more strict and thorough exclusive mode handling to support d3d fullscreen
- work around file open dialog not returning focus properly
- gditoggler: use current registry settings for return modes
- directsoundengine: set DSBCAPS_GETCURRENTPOSITION2 flag
- revert bad macx return from fullscreen on menu-toggle
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@140 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
directdrawblitter: only list devices if there are more than 2 devices (including primary)
directdrawblitter: use private static member rather than global friend enumeration callback
capitalization changes
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@139 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24