gambatte/libgambatte/SConstruct

57 lines
1.5 KiB
Python
Raw Normal View History

global_cflags = ARGUMENTS.get('CFLAGS', '-Wall -Wextra -O2 -fomit-frame-pointer')
global_cxxflags = ARGUMENTS.get('CXXFLAGS', global_cflags + ' -fno-exceptions -fno-rtti')
global_defines = ' -DHAVE_STDINT_H'
vars = Variables()
vars.Add('CC')
vars.Add('CXX')
- Real-time, sophisticated resampling framework with several performance/quality profiles for dynamically generated windowed sinc and CIC chains based on analysis of 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
2008-10-13 21:08:08 +00:00
env = Environment(CPPPATH = ['src', 'include', '../common'],
CFLAGS = global_cflags + global_defines,
CXXFLAGS = global_cxxflags + global_defines,
variables = vars)
sourceFiles = Split('''
src/bitmap_font.cpp
src/cpu.cpp
src/gambatte.cpp
src/initstate.cpp
src/interrupter.cpp
src/interruptrequester.cpp
src/loadres.cpp
src/memory.cpp
src/sound.cpp
src/state_osd_elements.cpp
src/statesaver.cpp
src/tima.cpp
src/video.cpp
src/mem/cartridge.cpp
src/mem/memptrs.cpp
src/mem/pakinfo.cpp
src/mem/rtc.cpp
src/sound/channel1.cpp
src/sound/channel2.cpp
src/sound/channel3.cpp
src/sound/channel4.cpp
src/sound/duty_unit.cpp
src/sound/envelope_unit.cpp
src/sound/length_counter.cpp
src/video/ly_counter.cpp
src/video/lyc_irq.cpp
src/video/next_m0_time.cpp
src/video/ppu.cpp
src/video/sprite_mapper.cpp
''')
conf = env.Configure()
if conf.CheckHeader('zlib.h'):
sourceFiles.append('src/file/unzip/unzip.c')
sourceFiles.append('src/file/unzip/ioapi.c')
sourceFiles.append('src/file/file_zip.cpp')
else:
sourceFiles.append('src/file/file.cpp')
conf.Finish()
env.Library('gambatte', sourceFiles)