{"id":16620,"date":"2009-01-11T11:16:18","date_gmt":"2009-01-11T11:16:18","guid":{"rendered":"http:\/\/127.0.0.1\/ef\/?p=16620"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T22:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/www.emu-france.com\/?p=16620","title":{"rendered":"[Console] Gambatte v0.4.1"},"content":{"rendered":"<p>Un \u00e9mulateur GameBoy N&#038;B\/Color dont le but est d&rsquo;obtenir une \u00e9mulation la plus pr\u00e9cise possible.<\/p>\n<p><em><strong>libgambatte:<\/strong><br \/>\n    &#8211; Fix HqXx filter pitch.<br \/>\n    &#8211; Fix mbc2 not getting a rambank.<br \/>\n    &#8211; Make sure to reset passed pointers when deleted. Fixes potential crash<br \/>\n      when loading ROM during OAM busy.<\/p>\n<p><strong>common:<\/strong><br \/>\n    &#8211; Substantially improved rate estimation averaging.<br \/>\n    &#8211; RateEst: Add a convenient way of filtering measures that extend beyond<br \/>\n      a buffer time, and are as such probably invalid.<br \/>\n    &#8211; RateEst: Allow using a custom timestamp in feed().<br \/>\n    &#8211; RateEst: Keep a queue of the last ~100 msec worth of samples and<br \/>\n      duration, and filter out collective samples that give a pre-estimate<br \/>\n      that seems way off.<br \/>\n    &#8211; Replace \u00ab\u00a0Game Boy \/ Game Boy Color emulator\u00a0\u00bb with \u00ab\u00a0Game Boy Color<br \/>\n      emulator\u00a0\u00bb for now to avoid misleading anyone on the current status.<\/p>\n<p><strong>gambatte_qt:<\/strong><br \/>\n    &#8211; Disable BlitterWidget updates (paintEvents) while not paused.<br \/>\n    &#8211; Allow BlitterWidgets to opt in to get paintEvents while unpaused. Do so<br \/>\n      for QGLBlitter since it may need to clear buffers afterwards.<br \/>\n    &#8211; QGLBlitter: Try to blit right after sync in the case of single buffering.<br \/>\n    &#8211; Up default audio buffer latency to 100 ms (some common system audio<br \/>\n      servers require a lot of buffering to work well).<br \/>\n    &#8211; Adaptively skip BlitterWidget syncs if audio buffer is low, in a manner<br \/>\n      that should minimize wasted skips in sync to vblank situation, and tries<br \/>\n      to be non-disturbing. This replaces frame time halving, and blitter<br \/>\n      specific rescueing.<br \/>\n    &#8211; Clear display buffers in DirectDrawBlitter and Direct3DBlitter in<br \/>\n      exclusive mode, since blits don&rsquo;t necessarily cover the entire buffers.<br \/>\n    &#8211; DirectDrawBlitter: Make sure that a minimum amount of time has passed<br \/>\n      between calls to WaitForVerticalBlank, since it can return in the same<br \/>\n      vblank period twice on a fast system.<br \/>\n    &#8211; DirectDrawBlitter: Support vsync for refresh rate ~= 2x frame rate.<br \/>\n    &#8211; DirectDrawBlitter: Refactor somewhat and get rid of a couple minor<br \/>\n      potential bugs.<br \/>\n    &#8211; DirectDrawBlitter: Some tweaks to get updates closer to sync time in<br \/>\n      certain situations.<br \/>\n    &#8211; DirectDrawBlitter: Some tweaks to better support DONOTWAIT.<br \/>\n    &#8211; DirectDrawBlitter: Make only updating during vblank while page flipping<br \/>\n      optional.<br \/>\n    &#8211; Direct3DBlitter: Some tweaks to get updates closer to sync time in<br \/>\n      certain situations.<br \/>\n    &#8211; Filter out very short frame times in frame time estimation.<br \/>\n    &#8211; Don&rsquo;t adjust frame time during turbo, but rather skip BlitterWidget<br \/>\n      syncs to speed up, which avoids vsync limits without disabling vsync.<br \/>\n    &#8211; DirectDrawBlitter: Add triple buffering option.<br \/>\n    &#8211; Direct3DBlitter: Use D3DSWAPEFFECT_DISCARD in non-exclusive mode.<br \/>\n    &#8211; Direct3DBlitter: Allow triple buffering and vblank-only updates in<br \/>\n      non-excusive mode.<br \/>\n    &#8211; Rename \u00ab\u00a0Page flipping\u00a0\u00bb in Direct3D and DirectDraw blitters to<br \/>\n      \u00ab\u00a0Exclusive full screen\u00a0\u00bb.<br \/>\n    &#8211; Pause audio on win32 titlebar clicks\/drags to avoid looping audio due to<br \/>\n      underruns from blocked timerEvents.<br \/>\n    &#8211; Use wildcards for platform detection to avoid being unnecessarily<br \/>\n      compiler\/architecture specific. Fixes bug 2377772.<br \/>\n    &#8211; Rewrite most of DirectSoundEngine, supporting primary buffer option,<br \/>\n      making it more robust, correct and hopefully cleaner. Only use part of<br \/>\n      the primary buffer if the desired buffer size is lower than the<br \/>\n      primary buffer size.<br \/>\n    &#8211; Direct3DBlitter and DirectDrawBlitter: Force blocking updates when sync<br \/>\n      to vblank is enabled. Some updates only block if there&rsquo;s a prior<br \/>\n      unfinished update in progress. This screws up frame time estimation in<br \/>\n      turn screwing up vsync. To fix this we do a double update (and extra blit)<br \/>\n      if close to a frame time period has passed since the last update when<br \/>\n      sync to vblank is enabled. I really should have noticed this earlier as<br \/>\n      it pretty much breaks vsync adaption completely.<br \/>\n    &#8211; Direct3DBlitter: Use the D3DCREATE_FPU_PRESERVE flag when creating<br \/>\n      device. Omitting this flag can screw up floating point calculations in<br \/>\n      other parts of the code. For instance WASAPI cursor timestamps get<br \/>\n      utterly screwed up here.<br \/>\n    &#8211; Direct3DBlitter: It appears that managed textures are updated before<br \/>\n      they are unlocked, which screws up redraws, making things appear choppy<br \/>\n      in some situations. Use a default memory texture and a system memory<br \/>\n      texture and the UpdateTexure method instead.<br \/>\n    &#8211; DirectSoundEngine: Make use of the sample period limit feature of<br \/>\n      RateEst, rather than duplicating the feature.<br \/>\n    &#8211; Add polling WASAPI engine with exclusive mode support. Latency and rate<br \/>\n      estimation is generally better than DirectSound, and in exclusive mode<br \/>\n      there is less blocking as well as exclusive mode being better than<br \/>\n      shared mode in the other areas too.<br \/>\n    &#8211; WasapiEngine: Add device selection.<br \/>\n    &#8211; WasapiEngine: Add static isUsable() method. Only listed if isUsable().<br \/>\n      Default engine if isUsable().<br \/>\n    &#8211; WasapiEngine: Use default device if there&rsquo;s only one device available,<br \/>\n      since we don&rsquo;t show the combobox anyway.<br \/>\n    &#8211; DirectSoundEngine: Provide the integrated read and status get write<br \/>\n      method optimization.<br \/>\n    &#8211; XvBlitter: Set NosystemBackground attribute rather than OpaquePaintEvent.<br \/>\n      Reimplement paintEngine to return NULL as suggested by Qt docs.<br \/>\n    &#8211; X11Blitter: Reimplement paintEngine to return NULL.<br \/>\n    &#8211; AlsaEngine: Make use of sample period limit feature of RateEst. Don&rsquo;t<br \/>\n      increase estimated sample rate on underrun.<br \/>\n    &#8211; OssEngine: Make use of sample period limit feature of RateEst. Don&rsquo;t<br \/>\n      increase estimated sample rate on underrun.<br \/>\n    &#8211; Esc exits fullscreen on macx.<br \/>\n    &#8211; Drop OpenAL from default macx binary.<br \/>\n    &#8211; Add some useful but commented build flags for macx to .pro files.<\/em><\/p>\n<p class=\"p_telecharger_icone_zip\"><a class=\"telecharger_icone_zip\" href=\"https:\/\/www.emu-france.com\/?wpfb_dl=2934\" title=\"Download Gambatte\">T\u00e9l\u00e9charger Gambatte v0.5.0 r571 (2.0 Mo)<\/a><\/p>\n<p class=\"p_site_officiel\"><a href=\"http:\/\/sourceforge.net\/projects\/gambatte\/\" class=\"site_officiel\" target=\"_blank\">Site Officiel<\/a><\/p>\n<p class=\"p_en_savoir_plus\"><a href=\"https:\/\/www.emu-france.com\/emulateurs\/5-consoles\/62-nintendo-game-boy\/\" class=\"en_savoir_plus\">En savoir plus&#8230;<\/a><\/p>\n<div class=\"fcbkbttn_buttons_block\" id=\"fcbkbttn_left\"><div class=\"fb-share-button  \" data-href=\"https:\/\/www.emu-france.com\/?p=16620\" data-type=\"button_count\" data-size=\"small\"><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Un \u00e9mulateur GameBoy N&#038;B\/Color dont le but est d&rsquo;obtenir une \u00e9mulation la plus pr\u00e9cise possible. libgambatte: &#8211; Fix HqXx filter pitch. &#8211; Fix mbc2 not getting a rambank. &#8211; Make sure to reset passed pointers when deleted. Fixes potential crash &#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[],"tags":[],"class_list":["post-16620","post","type-post","status-publish","format-standard","hentry","uentry","postonpage-1","odd","post-author-Jets"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/sKi2R-","jetpack_likes_enabled":false,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/16620","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=16620"}],"version-history":[{"count":0,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/16620\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16620"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=16620"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=16620"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}