changelog 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536
  1. -- 0.4.1 -- 2009-01-10
  2. libgambatte:
  3. - Fix HqXx filter pitch.
  4. - Fix mbc2 not getting a rambank.
  5. - Make sure to reset passed pointers when deleted. Fixes potential crash
  6. when loading ROM during OAM busy.
  7. common:
  8. - Substantially improved rate estimation averaging.
  9. - RateEst: Add a convenient way of filtering measures that extend beyond
  10. a buffer time, and are as such probably invalid.
  11. - RateEst: Allow using a custom timestamp in feed().
  12. - RateEst: Keep a queue of the last ~100 msec worth of samples and
  13. duration, and filter out collective samples that give a pre-estimate
  14. that seems way off.
  15. - Replace "Game Boy / Game Boy Color emulator" with "Game Boy Color
  16. emulator" for now to avoid misleading anyone on the current status.
  17. gambatte_qt:
  18. - Disable BlitterWidget updates (paintEvents) while not paused.
  19. - QGLBlitter: Do a cheap front blit rather than a vsynced flip if audio
  20. buffers are low.
  21. - Allow BlitterWidgets to opt in to get paintEvents while unpaused. Do so
  22. for QGLBlitter since it may need to clear buffers afterwards.
  23. - QGLBlitter: Try to blit right after sync in the case of single buffering.
  24. - Up default audio buffer latency to 100 ms (some common system audio
  25. servers require a lot of buffering to work well).
  26. - Adaptively skip BlitterWidget syncs if audio buffer is low, in a manner
  27. that should minimize wasted skips in sync to vblank situation, and tries
  28. to be non-disturbing. This replaces frame time halving, and blitter
  29. specific rescueing.
  30. - Clear display buffers in DirectDrawBlitter and Direct3DBlitter in
  31. exclusive mode, since blits don't necessarily cover the entire buffers.
  32. - DirectDrawBlitter: Make sure that a minimum amount of time has passed
  33. between calls to WaitForVerticalBlank, since it can return in the same
  34. vblank period twice on a fast system.
  35. - DirectDrawBlitter: Support vsync for refresh rate ~= 2x frame rate.
  36. - DirectDrawBlitter: Refactor somewhat and get rid of a couple minor
  37. potential bugs.
  38. - DirectDrawBlitter: Some tweaks to get updates closer to sync time in
  39. certain situations.
  40. - DirectDrawBlitter: Some tweaks to better support DONOTWAIT.
  41. - DirectDrawBlitter: Make only updating during vblank while page flipping
  42. optional.
  43. - Direct3DBlitter: Some tweaks to get updates closer to sync time in
  44. certain situations.
  45. - Filter out very short frame times in frame time estimation.
  46. - Don't adjust frame time during turbo, but rather skip BlitterWidget
  47. syncs to speed up, which avoids vsync limits without disabling vsync.
  48. - DirectDrawBlitter: Add triple buffering option.
  49. - Direct3DBlitter: Use D3DSWAPEFFECT_DISCARD in non-exclusive mode.
  50. - Direct3DBlitter: Allow triple buffering and vblank-only updates in
  51. non-excusive mode.
  52. - Rename "Page flipping" in Direct3D and DirectDraw blitters to
  53. "Exclusive full screen".
  54. - Pause audio on win32 titlebar clicks/drags to avoid looping audio due to
  55. underruns from blocked timerEvents.
  56. - Use wildcards for platform detection to avoid being unnecessarily
  57. compiler/architecture specific. Fixes bug 2377772.
  58. - Rewrite most of DirectSoundEngine, supporting primary buffer option,
  59. making it more robust, correct and hopefully cleaner. Only use part of
  60. the primary buffer if the desired buffer size is lower than the
  61. primary buffer size.
  62. - Direct3DBlitter and DirectDrawBlitter: Force blocking updates when sync
  63. to vblank is enabled. Some updates only block if there's a prior
  64. unfinished update in progress. This screws up frame time estimation in
  65. turn screwing up vsync. To fix this we do a double update (and extra blit)
  66. if close to a frame time period has passed since the last update when
  67. sync to vblank is enabled. I really should have noticed this earlier as
  68. it pretty much breaks vsync adaption completely.
  69. - Direct3DBlitter: Use the D3DCREATE_FPU_PRESERVE flag when creating
  70. device. Omitting this flag can screw up floating point calculations in
  71. other parts of the code. For instance WASAPI cursor timestamps get
  72. utterly screwed up here.
  73. - Direct3DBlitter: It appears that managed textures are updated before
  74. they are unlocked, which screws up redraws, making things appear choppy
  75. in some situations. Use a default memory texture and a system memory
  76. texture and the UpdateTexure method instead.
  77. - DirectSoundEngine: Make use of the sample period limit feature of
  78. RateEst, rather than duplicating the feature.
  79. - Add polling WASAPI engine with exclusive mode support. Latency and rate
  80. estimation is generally better than DirectSound, and in exclusive mode
  81. there is less blocking as well as exclusive mode being better than
  82. shared mode in the other areas too.
  83. - WasapiEngine: Add device selection.
  84. - WasapiEngine: Add static isUsable() method. Only listed if isUsable().
  85. Default engine if isUsable().
  86. - WasapiEngine: Use default device if there's only one device available,
  87. since we don't show the combobox anyway.
  88. - DirectSoundEngine: Provide the integrated read and status get write
  89. method optimization.
  90. - XvBlitter: Set NosystemBackground attribute rather than OpaquePaintEvent.
  91. Reimplement paintEngine to return NULL as suggested by Qt docs.
  92. - X11Blitter: Reimplement paintEngine to return NULL.
  93. - AlsaEngine: Make use of sample period limit feature of RateEst. Don't
  94. increase estimated sample rate on underrun.
  95. - OssEngine: Make use of sample period limit feature of RateEst. Don't
  96. increase estimated sample rate on underrun.
  97. - Esc exits fullscreen on macx.
  98. - Drop OpenAL from default macx binary.
  99. - Add some useful but commented build flags for macx to .pro files.
  100. -- 0.4.0 -- 2008-10-27
  101. libgambatte:
  102. - less fixed-width type dependencies. don't assume unsigned int > 16 bits
  103. - slightly faster sprite mapping
  104. - Skip potential high frequency events when they don't matter.
  105. - do sprite sorting and cycle calculations pr line as needed instead of all
  106. at once
  107. - fix broken volume on/off event notification
  108. - less int > 16-bits assumptions
  109. - more type width dependency fixes
  110. - int width deps. Gambatte namespace
  111. - wx affects sprite m3 cycles
  112. - cache m3 cycles, related refactoring
  113. - readjust cgb dma cycles to previously changed m3 timing
  114. - clean up goofy lyc calculation.
  115. - cgb dma from various areas results in 0xFF being written.
  116. - 0xFEA0-0xFEFF not writable when OAM isn't
  117. - unusable ioram bits fixes
  118. - dmg ioram startup state fixes.
  119. - various oamdma accuracy
  120. - oamdma bus conflicts with cpu, ppu, cgbdma.
  121. - rewritten memory read/write methods.
  122. - accurate timing of ppu sprite mapping reads.
  123. - fix recent cgb sprite cycles sorting slip up.
  124. - preoffset mem pointers.
  125. - get rid of unused memory.
  126. - save state infrastructure,
  127. - clean up video timing code,
  128. - use save state for initialization and reset,
  129. - do color conversion outside filters
  130. - fast rgb32ToUyvy,
  131. - add overlooked oamdma event,
  132. - adjust subcycle irq timing (shouldn't affect anything),
  133. - various refactoring
  134. - save savedata before loading state
  135. - fix silly initstate ifreg regression
  136. - save state selection
  137. - save state osd preview snapshots
  138. - fix a few potential security holes when loading invalid state
  139. - get rid of some undefined behaviour in statesaver
  140. - always draw in rgb32, color convert afterwards, too bad for maemo/16-bit
  141. depth users
  142. - get rid of silly c string stuff
  143. - add bitmap font rendering with font based on Bitstream Vera Sans
  144. - osd state n saved/loaded text
  145. - empty state osd thumbs marked with "Empty" text
  146. - adjust thumbnail interpolation weighing slightly
  147. - utilize templates for more flexible osd text printing
  148. - use grey osd text with black outline for save/load state messages
  149. - move state 0 OSD pos to rightmost to match kbd layout
  150. - state 1 default on ROM load
  151. - support external save state files
  152. - missing includes
  153. - missing virtual destructor
  154. - std::ifstream construction missing binary flag
  155. - fix gcc-4.3 compilation
  156. - avoid signed overflow in constant (which is both undefined and likely
  157. to cause problems on architectures where sizeof(long) != sizeof(int)) in
  158. rgb2yuv code.
  159. - Fix wrong pitch passed to filter if color conversion is needed.
  160. - Fix potential problem with rgb32ToUyvy cache init values on 16-bit systems
  161. - Correct unhalttime when resetting counters. Fixes perodic infinite halt
  162. issue in Kirby's Star Stacker and probably other games.
  163. - Fix LY display disable regression
  164. - Use deltas and a running sum to decrease buffer writes in sound emulation
  165. sample generation.
  166. - Rearrange sound emulation event loop to optimize for high-frequency event
  167. units.
  168. - Initialize palette arrays to avoid valgrind noise.
  169. - Don't do resampling in libgambatte. Update API to reflect this.
  170. - No rambanks for ROMs that don't request any.
  171. - Route invalid rombank addresses in non-power-of-2 number of rombanks
  172. cases to disabled area assuming ceiled power of 2 address bus.
  173. - no sprites or sprite mapping busy cycles on first line after display
  174. enable. slight cleanup.
  175. - small oam accessibility correction.
  176. - Tile loading and tile rendering can seemingly get out of sync when
  177. modifying scx at a critical time. Another pessimation with little gain in
  178. the name of accuracy.
  179. - Use a look-up table to do tile byte merging.
  180. - Append "_dmg" to save base name when forcing DMG mode, to avoid
  181. corrupting CGB save files and vice versa.
  182. - saner ly write behaviour
  183. - Add adapted and optimized hq3x.
  184. - Revert to big f'ing switch hq2x code, as there's less duplication now.
  185. Also optimized interpolation functions further. No idea how I missed that
  186. initially.
  187. - Lower opacity OSD text.
  188. gambatte_sdl:
  189. - less retarded indenting
  190. - saner placement of fill_buffer function
  191. - int width deps. Gambatte namespace
  192. - Scalebuffer dstpitch aware.
  193. - save state selection
  194. - add number key slot selection shortcuts
  195. - Estimate actual output sample rate in terms of OS timers
  196. and derive frame rate from it.
  197. - Move AudioData and RingBuffer classes to separate files.
  198. - Make underruns slightly less painful, by resetting buffer
  199. positions.
  200. - Skip resampling when fast-forwarding
  201. - Fill available buffer space before waiting for more.
  202. - Audio buffer command line options.
  203. - Use half video frame sleep time if audio buffer is close to underrun.
  204. - Adjust estimated frame time each frame.
  205. gambatte_qt:
  206. - more likely to build on mac os x
  207. - Fix fixed window size issues with various window managers (metacity,
  208. xfwm4...)
  209. - macx build fixes
  210. - hopefully fix opengl clearing issues
  211. - Gambatte namespace
  212. - Decouple Qt GUI from gambatte.
  213. - Lots of cleanups, flexibility added
  214. - setting of various properties, frame time, aspect ratio, button events,
  215. video sources, sample rates, pauseOnDialogExec, custom menus etc.
  216. - Document some interfaces.
  217. - Support for setting approximate sound buffer latency.
  218. - Use rational math for 100% exact timers (even though the actual system
  219. timers are unlikely to be accurate).
  220. - Add fast-forward to input settings.
  221. - timeGetTime() fallback for win32
  222. - Store full screen mode values/text rather than less reliable indexes.
  223. - Repaint on xvblitter port changes to avoid color key not getting
  224. repainted.
  225. - improved ALSA buffer reporting
  226. - add sampleRate info to MediaSource::setSampleBuffer.
  227. - clarify that "samples" refers to stereo samples
  228. - fix 24-bit depth non-shm ximage creation
  229. - fix blittercontainer incorrectly using minimumSize for integer scaling
  230. - add unrestricted fast bilinear and nearest neighbor sw scaling to
  231. x11/qpainter blitter
  232. - swscale: remove forgotten static qualifiers
  233. - swscale: center linear weighing bias
  234. - swscale: exclude iostream
  235. - swscale: less bloated
  236. - macx fixed/variable window size change issue fixed
  237. - macx opengl drawbuffer change issues worked around
  238. - add openal engine, default on macx
  239. - add macx quartz video mode toggler
  240. - multi-head infrastructure
  241. - support multiple monitors in macx quartz toggler
  242. - more work-arounds for Qt failing to set correct geometry on video mode
  243. changes.
  244. - more explicit fast-forward button handling, to avoid missed key
  245. press/release events on macx
  246. - opengl doublebuffer preblitting, try to make actual screen updates as
  247. close to right after sync wait is over as possible
  248. - add xf86vidmode toggler (xrandrtoggler is default)
  249. - x11blitter: check for other supported visuals if the default is
  250. unsupported.
  251. - temporarily return to original video mode and minimize on full screen
  252. alt-tab (except on macx or if there are multiple screens), switch back on
  253. focus-in
  254. - hide mouse cursor after move timeout, or key/joystick pressed (more sane
  255. on macx)
  256. - exit fullscreen rather than toggle menubar on macx (note that the menubar
  257. will automatically pop-up on macx full screen if the mouse is moved to
  258. the top of the primary screen)
  259. - add (independent) pause counter for non-client pauses.
  260. - reset X11 screen saver on joystick activity
  261. - change "turbo"-mode to temporarily set frametime as a way of avoiding
  262. vsync issues (for a laugh, check out the video dialog while in
  263. fast-forward mode and see "Sync to vertical blank in 65535 and 131070 Hz
  264. modes").
  265. - fix win32 compilation
  266. - refix win32 fullscreen geometry correction
  267. - neater win32 BlitterWidget::sync
  268. - avoid misleading minimize on fullscreen close
  269. - refactor Blitterwidget::sync
  270. - directdrawblitter: remove unecessary turbo conditions
  271. - gditoggler: add multi-monitor support (win32)
  272. - videodialog: save actual hz values for real this time
  273. - quartztoggler: avoid potentially reverting to the wrong mode on double
  274. setFullMode(false) in multi-head configs
  275. - make sure window is within screen after mode change, so Qt doesn't reset
  276. it to the primary screen
  277. - revert to previous win32 fullscreen geometry correction behaviour so that
  278. the geometry gets properly reset after fullscreen
  279. - Add directdraw device selection.
  280. - directsoundengine: add device selection.
  281. - directdrawblitter: only list devices if there are more than 2 devices
  282. (including primary)
  283. - directdrawblitter: use private static member rather than global friend
  284. enumeration callback
  285. - capitalization changes
  286. - add direct3d9 blitter with support for vsync, bf, page flipping, triple
  287. buffering, device selection, multi-head etc. d3d9.dll loaded at runtime
  288. - more strict and thorough exclusive mode handling to support d3d fullscreen
  289. - work around file open dialog not returning focus properly
  290. - gditoggler: use current registry settings for return modes
  291. - directsoundengine: set DSBCAPS_GETCURRENTPOSITION2 flag
  292. - revert bad macx return from fullscreen on menu-toggle
  293. - don't build xf86vidmodetoggler by default
  294. - add save state actions to GUI menu
  295. - clean up GUI menu creation code
  296. - move GUI recent files to submenu
  297. - support external save state files
  298. - add number key slot selection shortcuts
  299. - missing includes
  300. - missing virtual destructor
  301. - make sure windows path arguments don't use backslashes by using QFileInfo
  302. - add Play menu with Pause, Frame Step, Dec/Inc/Reset Frame Rate
  303. - Add tab support to input settings dialog.
  304. - Add alternate key support to input settings dialog.
  305. - Auto-focus to next likely input box after settings key in input dialog.
  306. - Add "Play" and "State" input settings dialog tabs.
  307. - Avoid using the most convenient keys as forced menu short-cuts, set them
  308. as default keys in input settings dialog instead. This unfortunately
  309. makes the more useful shortcuts less visible, but it allows remapping
  310. the most convenient keyboard keys.
  311. - Avoid duplicate joystick axis "press" events by keeping a map of axis
  312. states.
  313. - Make sure to discard irrelevant/old joystick events.
  314. - Don't give MediaSource button events when stopped.
  315. - Allow joystick-based button events while paused by using a very
  316. low-frequency poll timer.
  317. - Make some of the joystick event wrapping stuff less messy.
  318. - missing string include
  319. - use QString for videoSourceLabel passed to MainWindow constructor
  320. - store currently selected scheme as string, since it appears ModelIndex
  321. is neither tied to the data it points to nor invalidated by changes.
  322. enforce valid state on reject since the list of schemes may have
  323. changed.
  324. - Direct3DCreate function pointer typedef needs WINAPI macro
  325. - disable page flipping dependent checkboxes in constructor to ensure
  326. correct start state
  327. - add custom sample rate support
  328. - change default buffer latency to 67 ms
  329. - don't auto-repeat buttons bound to keyboard
  330. - use enums for somewhat more robust gambattesource button setup
  331. - fix silly "alsa not using default device by default" bug
  332. - Only ask for xrandr config once to avoid potential server roundtrips in
  333. some xrandr versions.
  334. - Make sure xrandr version is >= 1.1 and < 2
  335. - Prevent all text editing of input boxes.
  336. - Add custom context menu to input boxes.
  337. - Update AudioEngine to support sample rate estimation in terms of OS
  338. timers.
  339. - Implement sample rate estimation in ALSA and OSS audio engines.
  340. - AlsaEngine: Revert to using snd_pcm_avail_update for buffer status since
  341. snd_pcm_delay may consider external latencies.
  342. - AlsaEngine: Use snd_pcm_hw_params_set_buffer_time_near. Don't request a
  343. particular number of periods per buffer.
  344. - AlsaEngine: Use hw as default custom device string, rather than hw:0,0.
  345. - OssEngine: Don't trust GETOSPACE fragment info.
  346. - Estimate optimal frame rate based on sample rate estimations.
  347. - Extend BlitterWidget to support estimation of vsynced frame rate in terms
  348. of OS timers.
  349. - Implement vsync frame rate estimation in QGlBlitter, Direct3DBlitter and
  350. DirectDrawBlitter.
  351. - Use a combination of OS timer sample rate estimation and vsync frame rate
  352. estimation to derive resampling ratio for no-frame-duplication vsync.
  353. - Change API to reflect MediaSources not being responsible for resampling.
  354. - Make sure to parent PaletteDialog list model, so it gets deleted properly.
  355. - Various refactoring, small changes and stuff I forgot.
  356. - limit vsync frame rate estimation deviation
  357. - More averaging in estimation code.
  358. - Stricter estimate deviation limit
  359. - Adjust estimated frame time each frame.
  360. - Use half frame time if audio buffer is close to underrun.
  361. - Provide combined audioengine write and status get, to avoid doing
  362. potentially expensive operations twice. Utilized in OSS and ALSA engines.
  363. - Saner vsync estimate variance protection.
  364. - allow dynamically setting samples per frame
  365. - Don't bother allowing sources the choice of which output sample rates are
  366. selecrable, as it's not really a per source thing at this point. If
  367. resampling avoidance is desired, then that should rather be a user option
  368. (to depend on the OS for resampling, which is mostly nonsensical for the
  369. Game Boy/NES/PSG-system case btw).
  370. - Move Qt media framework to a separate subdir
  371. - postpone buffered x11 blits to after sync.
  372. - Add support for XRandR 1.2 + multi-head
  373. - use crtc mode dimensions rather than crtc dimensions when discarding
  374. modes since crtc dimensions may be rotated
  375. - Fractional bits for intermediate rate estimation averages.
  376. - Add RateEst reset method. Initialize RateEst count to 1.
  377. - Less refresh rate estimation averaging.
  378. - Allow more refresh rate estimation deviation.
  379. - Return NULL paintEngine in windows blitters that use the PaintToScreen
  380. attribute.
  381. - Add checks for things not being initialized in DirectDraw-blitter and
  382. QPainterBlitter paintEvents.
  383. - Don't reparent blitters (mainly to make a bug in Qt 4.4.3 win less
  384. annoying, widgets that do internal reparenting are still affected).
  385. - Check for window position less than screen top-left after mode change,
  386. before full screen, to avoid Qt moving it to the primary screen.
  387. - Add rate estimation to DirectSound engine.
  388. - Better underrun detection in DirectSound engine.
  389. - Don't duplicate blitter pointer in mainwindow.
  390. - Use RateEst.reset rather than re-initing on pause.
  391. - Add CoreAudio engine with rate estimation and buffer status support.
  392. Default engine on Mac OS X.
  393. - 44100 Hz default sample rate on OS X, since OS X tends to resample
  394. everything to 44100 Hz.
  395. - Get rid of buffer status averaging in OpenAlEngine, since it makes
  396. assumptions on usage pattern that shouldn't be made.
  397. - Fix CoreAudio engine reporting buffer status in samples rather than
  398. frames.
  399. - Update SDL_Joystick to SDL-1.2 SVN.
  400. - #undef UNICODE in win32/SDL_mmjoystick.c to avoid joystick name mangling.
  401. - work around annoying random non-updating OpenGL on Mac OS X after full
  402. screen.
  403. common/other:
  404. - Fix GCC 4.3 warnings about people getting confused by operator precedence
  405. by adding parentheses.
  406. - Real-time, sophisticated resampling framework with several
  407. performance/quality profiles for dynamically generated windowed sinc and
  408. CIC chains based on analysis of fourier transforms and optimal cost
  409. equations. Fast 2-tap linear as a low quality alternative.
  410. - Move non-emulation common code to a common directory to avoid duplication.
  411. - Update front-ends to new libgambatte API.
  412. - Utilize resampling framework in front-ends. Selectable resamplers.
  413. - Improved adaptive sleep class that estimates oversleep.
  414. - Various refactoring, small changes and stuff I forgot.
  415. - Do per phase normalization to avoid dc fluctuations.
  416. - More averaging in estimation code.
  417. - Stricter estimate deviation limit
  418. - Fractional bits for intermediate rate estimation averages.
  419. - Add RateEst reset method. Initialize RateEst count to 1.
  420. - Extend ringbuffer.h to support resetting size, and move it to common dir
  421. since gambatte_qt/coreaudioengine uses it too now.
  422. - Add "force DMG mode" option.
  423. - Allow more rate estimation deviation.
  424. hwtests:
  425. - wx affects sprite m3 cycles.
  426. - cgb dma from various areas results in 0xFF being written.
  427. - add hwtests for oam dma
  428. - m3 cycles wo bg
  429. - more oamdma tests
  430. - various oamdma accuracy. oamdma bus conflicts with cpu, ppu, cgbdma.
  431. - accurate timing of ppu sprite mapping reads.
  432. -- 0.3.1 -- 2007-10-26 --
  433. gambatte_qt:
  434. - Enable Joystick POV-Hat events.
  435. -- 0.3.0 -- 2007-10-26 --
  436. libgambatte:
  437. - Fix adc/sbc and add_hl_rr hfc calc, sp_plus_n cf/hcf calc and daa thanks
  438. to blargg.
  439. - document HF2 better
  440. - Update sound core according to blargg's findings.
  441. - Improve resampling quality and performance.
  442. - Fix overlooked "add hl,sp" flag calculation.
  443. - fix initial endtime value
  444. - check for resampling ratio < 1
  445. - Add support for DMG palette customization.
  446. gambatte_sdl:
  447. - use std::map for parser
  448. - Don't bother hashing.
  449. - Add input config support.
  450. - Add joystick support.
  451. - Fix horrid "turbo can affect emulation" bug.
  452. - Add sw and yuv overlay scaling.
  453. - Use cond/mutex for thread syncing, RAII, refactor.
  454. - add option for sample rate choice
  455. - Add option to list valid input keys
  456. - don't die if audio fails
  457. gambatte_qt:
  458. - no point in filter being non-static anymore
  459. - use std::map for input vectors
  460. - remove unused unusedBool
  461. - Fix horrid "turbo can affect emulation" bug.
  462. - remove some useless optimizations
  463. - auto_ptr love.
  464. - support joystick hat.
  465. - nicer input handling.
  466. - Add sound dialog.
  467. - Add custom dev choice for oss, alsa engines.
  468. - Use rgb if available for xv.
  469. - Get rid of BAD_MATCH warnings for setting non-existent xv attributes.
  470. - make subblitters private nested classes
  471. - add reset action
  472. - Add support for DMG palette customization.
  473. - Add global buffer option for dsound engine
  474. -- 0.2.0 -- 2007-09-05 --
  475. libgambatte:
  476. - fix 64-bit compile and segfault. Thanks to Nach for noticing.
  477. - Add zip support. Thanks to Nach for contributing nice, clear code
  478. - fix sound ch4 frequency calculation
  479. - Several PPU reads timings depend on wx. Thanks to franpa for noticing the
  480. corrupt line in The LoZ: Oracle of Seasons.
  481. - remove unused doubleSpeed parameter from m3ExtraCycles call
  482. gambatte_sdl:
  483. - Thread safety, bigger sound buffer
  484. - Compile on more platforms. Thanks to Thristian for the find.
  485. - actually increment iterator so the loop makes some sense (parser.cpp)
  486. gambatte_qt:
  487. - fix 64-bit compile. Thanks to Nach.
  488. - better license info for x11getprocaddress.cpp
  489. - initial joystick support, mostly using SDL's joystick code (separated from
  490. the rest of SDL)
  491. - use binary search for gb inputs.
  492. all:
  493. - make sure to use std:: despite sloppy compilers allowing omission. Thanks
  494. to blargg for the reminder.
  495. - get rid of some valgrind warnings. Thanks to Nach for noticing.
  496. hwtests:
  497. - add tests for wx effects on PPU read timings.
  498. build:
  499. - add -Wextra to default compile flags
  500. doc:
  501. - mention optional zlib dependency
  502. - additions to thanks section
  503. -- 0.1.1 -- 2007-08-29 --
  504. libgambatte:
  505. - fix integer overflow in color conversion to rgb16
  506. - only accept valid filter indexes
  507. gambatte_sdl:
  508. - print version
  509. - print usage
  510. - support command line arguments.
  511. - add option for starting in full-screen
  512. - add option for using video filter
  513. gambatte_qt:
  514. - clean up obsolete includes.
  515. - directdraw: only use alpha if primary surface uses it.
  516. - add support for loading rom from porgam argument.
  517. - s/"a highly accurate"/"an accuracy-focused"/ in about box
  518. - gditoggler: fix unordered video mode listing
  519. build:
  520. - Support external CPPFLAGS
  521. - Use sdl-config
  522. doc:
  523. - fix silly wording in README about section
  524. - s/seperate/separate/
  525. - s/Automake/Make/
  526. - mention XShm dependency
  527. - mention sys/shm.h requirement
  528. - document key mapping better
  529. - s/"a highly accurate"/"an accuracy-focused"/
  530. - add man pages