Revert to big f'ing switch hq2x code, as there's less duplication now. Also optimized interpolation functions further. No idea how I missed that initially.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@195 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
Route invalid rombank addresses in non-power-of-2 number of rombanks cases to disabled area assuming ceiled power of 2 address bus.
DMG window display disregards bg enable bit.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@189 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
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
clean up video timing code,
use save state for initialization and reset,
do color conversion outside filters, fast rgb32ToUyvy,
add overlooked oamdma event,
adjust subcycle irq timing (shouldn't affect anything),
various refactoring
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@126 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
Lots of cleanups, flexibility added, setting of various properties, frame time,
aspect ratio, button events, video sources, sample rates, pauseOnDialogExec, custom menus etc.
Document some interfaces.
Support for setting approximate sound buffer latency.
Use rational math for 100% exact timers (even though the actual system timers are unlikely to be accurate).
Add fast-forward to input settings.
Scalebuffer dstpitch aware.
timeGetTime() fallback for win32
Store full screen mode values/text rather than less reliable indexes.
Repaint on xvblitter port changes to avoid color key not getting repainted.
stuff I forgot
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@120 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24