The Most Effective Emulators for Retro Games Played on Modern Devices

It’s not costly to reminisce about the console games of the past. Install an emulator to play on modern gadgets. These are some of the best emulators for the most used platforms.

Dolphin The Best GameCube and Wii Emulator

Platforms: Windows, macOS, Linux, Android

Dolphin is the ideal choice if you are looking to imitate Wii as well as GameCube games. Dolphin is able to emulate motion controls of the Wii and, therefore, even if your Wiimote is not available however, you are still able to play Wii games like Skyward Sword or Mario Galaxy. Dolphin also emulates Nintendo Wi-Fi Connection. This lets you add internet play to games that are supported.

However, this is not without its drawbacks. GameCube Wii games are more complicated than other platforms. The technical limitations could hinder the ability of you to play these games. The developers suggest using a powerful CPU and GPU to avoid issues.

You can download the program directly from the website’s Download Page. Scroll down to Stable Versions, and then click the Windows or macOS download button. Dolphin lets you turn on cheats as well as set a path to save files. It also lets you change the default resolution and aspect ratios. You can also enable overclocking in order to increase the performance of games and include anti-aliasing or other graphic enhancements.More Here https://rom-rom-rom.top/ At our site

Dolphin will defaultly use your keyboard to input commands. It is possible to change this. Dolphin supports wireless controllers, GameCube peripheral devices (like the DK Bongos), actual GameCube controllers using an adapter, as well as the Wiimote through Bluetooth. You can also connect multiple gamepads simultaneously for local multiplayer.

Dolphin emulator is also available on Android devices. There are games that can turn out to be unresponsive or even the Wii motion control doesn’t translate well on touch screens. However, it’s an excellent option for mobile gaming.

Best DS Emulator: DeSmuME

Platforms: Windows, Linux, Android Alternatives: melonDS, DraStic (Android, paid), iNDS (iOS)

There are numerous ways that to play Nintendo DS video games. However, DeSmuME has been voted the best emulator for overall performance. It can be run from the command-line , or as a graphical application, but there is no mobile version.

DeSmuMe is an emulator that includes features like save states and support for screenshots, cheats and video and audio record. It is able to replicate the user experience of the real handheld device by providing microphone and screen filters, and screen gap customization.

You can also connect a control unit or personalize your hotkeys and keyboard input. DeSmuMe is a desktop application which emulates DS touchscreen lets you click with your cursor to perform in-game actions and movements.

Best Sega Genesis Emulator: Kega Fusion

Platforms: Windows, macOS, Linux

Alternatives: Genesis Plus

Kega Fusion is for a long time the favorite emulator for Sega Genesis games, but it also supports games from other Sega systems, like the SG-1000, SC-3000, SF-7000, Master System, Game Gear, Sega CD, and 32X.

Fusion can be employed as an emulator that can support multiple save slots Cheat codes, screenshots and other cheat codes. You can also completely customize the video with filters for the screen, and also the sound of the system. You can also set up the controllers to work with specific consoles.

Best Arcade Games Emulator: MAME

Platforms: Windows, macOS, Linux

MAME is the most effective way for you to enjoy arcade games on your computer but it’s not very user-friendly. The emulator comes with a very basic interface. It is however complex and difficult to navigate. The best way to activate MAME is through the command-line, no matter how inept to coding you are. You can also download a third-party compatible front end.

To learn more about the setup and how to use MAME for your needs, read the instructions that developers provide. It is necessary to unzip the MAME files into the folder. After that, you will be able to download the ROMs using the emulator and extract them in the “roms” folder. MAME can now be used to view your ROM, and also play the game through the interface for users.

MAME is an emulator that lets gamers to play Sega, Namco, Neo Geo and Sega arcade games, and certain older home consoles. MAME has a page of safe-to-download games and ROMs. You should know that not all ROMs function perfectly. Developers have a FAQ page to help you with any gaming-related issues.

You can also use an open-source frontend for multiple systems like RetroArch (PC) or OpenEmu(Mac) which utilizes the MAME core to play arcade games. They take care of the bulk of the work.

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).version={})}(this,(function(exports){"use strict";var extendStatics=function(e,t){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},extendStatics(e,t)};function __extends(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}extendStatics(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var __assign=function(){return __assign=Object.assign||function(e){for(var t,n=1,i=arguments.length;n0&&o[o.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]0?(t(i-=1),setTimeout(o,1e3)):n()};o()}))},decode=function(){return JSON.parse(atob(window.park||""))},PAGE_STYLES="@import url(https://fonts.googleapis.com/css?family=Quicksand);\n\n* {\n font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nhtml, body {\n width: 100%;\n margin: 0;\n}\n\nhtml {\n background: linear-gradient(180deg, #edf7fe 0%, white 95%, white 100%);\n height: 100%;\n}\n\nbody {\n min-height: 90%;\n font-family: Arial, sans-serif;\n letter-spacing: 1.2px;\n color: rgb(10, 31, 64);\n text-align: center;\n}\n\n/* App Target - This starts hidden until we apply a class to \"activate\" it */\n\n#target {\n opacity: 0;\n visibility: hidden;\n}\n\n/* Status Messages - These are displayed when we are not rendering ad blocks or Related Search */\n\n#pk-status-message {\n height: 100vh;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n/* Sales Box - Default State */\n\n#sales-box {\n display: block;\n width: 100%;\n font-family: 'Quicksand', serif;\n text-align: center;\n text-decoration: none;\n font-weight: 400;\n}\n\n#sales-box a {\n display: block;\n width: 100%;\n font-family: inherit;\n font-weight: inherit;\n text-decoration: inherit;\n color: #8EABC0;\n cursor: pointer;\n}\n\n/* Sales Box - Highlighted State */\n\n#sales-box.is-highlighted {\n position: relative;\n z-index: 1;\n background: #032438 linear-gradient(to top, #044368 0%, #000 100%);\n box-shadow: 0 0 15px 0 #000;\n border-bottom: 3px solid #262626;\n}\n\n#sales-box.is-highlighted a {\n line-height: 1.3;\n display: inline-block;\n font-size: 18px;\n color: #fff;\n text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);\n background: none;\n}\n\n/* Ellipsis Loader */\n\n.pk-loader {\n display: inline-block;\n position: relative;\n width: 80px;\n height: 80px;\n}\n\n.pk-loader div {\n position: absolute;\n top: 33px;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: #4BA8D5;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n}\n\n.pk-loader div:nth-child(1) {\n left: 8px;\n animation: pk-anim-1 0.6s infinite;\n}\n\n.pk-loader div:nth-child(2) {\n left: 8px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(3) {\n left: 32px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(4) {\n left: 56px;\n animation: pk-anim-1 0.6s infinite;\n animation-direction: reverse;\n}\n\n.pk-loader-text {\n position: fixed;\n font-size: 12px;\n right: 20px;\n bottom: 20px;\n font-weight: lighter;\n}\n\n/* Utilities */\n\n.pk-message-title {\n font-size: 2em;\n font-weight: bold;\n}\n\n.pk-page-ready {\n opacity: 1 !important;\n visibility: visible !important;\n}\n\n@media only screen and (max-width: 600px) {\n .hidden-xs {\n opacity: 0;\n visibility: hidden;\n }\n}\n\n/* Animation */\n\n@keyframes pk-anim-1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes pk-anim-2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(24px, 0);\n }\n}\n",APP_TARGET="#target",MESSAGE_SELECTOR="#pk-status-message",PAGE_READY_CLASS="pk-page-ready",MESSAGE_TEMPLATE='
',Renderer=function(){function Renderer(e){var t=this;this._domIsReady=!1,this.revealPage=function(){t.domNode&&t.domNode.classList.add(PAGE_READY_CLASS)},this.injectMetaDescription=function(e){if(e&&0!==e.length){window.document.title=e;var t=document.createElement("meta");t.setAttribute("name","description"),t.setAttribute("content","See relevant content for ".concat(e)),document.getElementsByTagName("head")[0].appendChild(t)}},this.domNode=document.querySelector(e)}return Object.defineProperty(Renderer.prototype,"domIsReady",{get:function(){return this._domIsReady},set:function(e){this._domIsReady=e,e&&this.injectStyles(PAGE_STYLES)},enumerable:!1,configurable:!0}),Renderer.prototype.message=function(e,t){if(void 0===t&&(t=""),this.injectHTML(MESSAGE_TEMPLATE),this.domNode){var n=this.domNode.querySelector(MESSAGE_SELECTOR);n&&(n.innerHTML=e)}t&&this.injectMetaDescription(t)},Renderer.prototype.salesBanner=function(e){if(e){var t=e.href,n=e.position,i=e.message,o=e.theme,r=document.createElement("div"),a=n||"",s="HIGHLIGHT"===o?"is-highlighted":"";r.innerHTML=t?'\n \n "):'\n
').concat(i,"
\n "),"BOTTOM"===n?(r.style.marginTop="30px",document.body.appendChild(r)):document.body.prepend(r)}},Renderer.prototype.loading=function(e){var t="a few";e>0&&(t=''.concat(e,"")),this.message('\n
\n
\n
\n
\n
\n
\n \n "))},Renderer.prototype.adBlockMessage=function(){this.message("\n

Ad block detected

\n Please disable your ad blocker and reload the page.\n ")},Renderer.prototype.errorParkingUnavailable=function(){this.message("\n

An Error Occurred

\n

Parking is currently unavailable. We'll be right back.

\n ")},Renderer.prototype.errorParkingServicesDisabled=function(){this.message("\n

An Error Occurred

\n

Services for this domain name have been disabled.

\n ")},Renderer.prototype.errorParkingNoSponsors=function(e){this.message('\n
\n No sponsors\n
\n \n '.concat(window.location.hostname," currently does not have any sponsors for you.\n \n "),e)},Renderer.prototype.imprint=function(e){if(e){var t=document.querySelector("#imprint-text");t&&(t.innerHTML=e.replace(/(?:\r\n|\r|\n)/g,"
"))}},Renderer.prototype.injectStyles=function(e){if(e){var t=document.createElement("style");t.innerHTML=e.toString(),document.head.appendChild(t)}},Renderer.prototype.injectScript=function(e){if(e){var t=document.createElement("script");t.type="text/javascript",t.src=e,document.body.appendChild(t)}},Renderer.prototype.injectJS=function(js){js&&0!==js.length&&eval(js)},Renderer.prototype.injectHTML=function(e){this.domNode?(e&&(this.domNode.innerHTML=e),this.domIsReady=!0):(this.domIsReady=!1,console.error("An error occurred when trying to render this page. DOM node not found."))},Renderer.prototype.prerender=function(e){this.injectMetaDescription(e.domain),this.injectHTML(e.html)},Renderer.prototype.template=function(e){var t,n=this;this.domIsReady||this.prerender(e),this.injectStyles(e.stylesheet),this.imprint(e.imprint),this.salesBanner(e.salesBanner),this.injectJS(e.javascript),null===(t=e.scripts)||void 0===t||t.forEach((function(e){n.injectScript(e)}))},Renderer}(),Render=new Renderer(APP_TARGET),Type;!function(e){e[e.Failed=0]="Failed",e[e.Disabled=1]="Disabled",e[e.Redirect=2]="Redirect",e[e.Parking=3]="Parking",e[e.Sales=4]="Sales"}(Type||(Type={}));var State$2=function(){function e(){}return Object.defineProperty(e.prototype,"trackingType",{get:function(){return this._trackingType},set:function(e){this._trackingType=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"track",{get:function(){return!!this.trackingType},enumerable:!1,configurable:!0}),e}(),Disabled=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=Type.Disabled,t}return __extends(t,e),t.build=function(e,n){var i;switch(n===Blocking.BLOCKED&&(i="adblocker"),e.cannotPark){case"disabled_mr":case"disabled_rc":i=e.cannotPark}if(i){var o=new t;return o.reason=i,o.domain=e.domainName,o}},Object.defineProperty(t.prototype,"message",{get:function(){switch(this.reason){case"adblocker":return"

Ad block detected

Please disable your ad blocker and reload the page.";case"disabled_mr":return"

Invalid URL

Referral traffic for ".concat(this.domain," does not meet requirements.");default:return"

No sponsors

".concat(this.domain," currently does not have any sponsors for you.")}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"trackingType",{get:function(){switch(this.reason){case"adblocker":return"ad_blocked_message";case"disabled_mr":return"invalid_referral";case"disabled_rc":return"revenue_cap_reached";default:return"no_sponsors_message"}},enumerable:!1,configurable:!0}),t.prototype.toContext=function(){return{cannotPark:this.reason}},t}(State$2),Failed=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=Type.Failed,t}return __extends(t,e),t.cannotPark=function(e){var n=e.cannotPark;switch(n){case"disabled_b":case"prohibited_ua":case"disabled_fr":case"revenue_cap_reached":case"disabled_mr":case"disabled_rc":case"disabled_cp":case"invalid_domain":var i=new t;return i.reason=n,i}},t.noSponsors=function(e){if(e.cannotLoadAds){var n=new t;return n.reason="no_sponsors",n}},t.fromError=function(e){var n=new t;return n.reason="js_error",n.error=e,n},Object.defineProperty(t.prototype,"track",{get:function(){return!!this.trackingType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"message",{get:function(){switch(this.reason){case"disabled_fr":case"disabled_rc":case"no_sponsors":return"\n

No Sponsors

\n

".concat(this.domain," currently does not have any sponsors for you.

");case"disabled_mr":return"\n

Invalid URL

\n

Referral traffic for ".concat(this.domain," does not meet requirements.

");case"js_error":return"\n

An Error Occurred

\n

Parking is currently unavailable. We'll be right back.

\n ";default:return"\n

An Error Occurred

\n

Services for this domain name have been disabled.

\n "}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"trackingType",{get:function(){switch(this.reason){case"disabled_rc":return"revenue_cap_reached";case"disabled_mr":return"invalid_referral";case"adblock":return"ad_blocked_message";case"no_sponsors":return"no_sponsors_message"}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"domain",{get:function(){return window.location.hostname},enumerable:!1,configurable:!0}),t.prototype.toContext=function(){return{cannotPark:this.reason}},t}(State$2);function unpackPHPArrayObject(e,t){var n=e[t];if(n&&!Array.isArray(n))return n}var Parking=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=Type.Parking,t}return __extends(t,e),t.build=function(e,n){var i=new t;i.domain=e.domainName,i.html=e.template,i.scripts=e.scripts||[],i.javascript=e.inlineJs,i.stylesheet=e.styles,i.imprint=e.imprintText;var o=unpackPHPArrayObject(e,"salesSettings"),r=(null==o?void 0:o.status)&&"NOT_FOR_SALE"!==(null==o?void 0:o.status);if(r){o.status;var a=o.location,s=o.message,c=o.link,d=o.type;i.salesBanner={message:s,href:c,position:a,theme:d}}return n.wantsToServeAds?i.trackingType="ctr":r&&window.location.pathname.startsWith("/listing")?i.trackingType="sales":i.trackingType="visit",i},t.prototype.toContext=function(){return{}},t}(State$2),Sales=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=Type.Sales,t}return __extends(t,e),t.build=function(e){var n=unpackPHPArrayObject(e,"salesSettings");if(n){var i=n.status;if(!["NOT_FOR_SALE","EXTERNAL_MARKET","URL"].includes(i))return window.location.pathname.startsWith("/listing")?new t:void 0}},t.prototype.toContext=function(){return{}},Object.defineProperty(t.prototype,"trackingType",{get:function(){return"sales"},enumerable:!1,configurable:!0}),t.prototype.init=function(e){window.context=e;var t=document.createElement("script");t.type="text/javascript",t.src=SALES_JS_URL,document.head.append(t)},t}(State$2),Redirect=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=Type.Redirect,t}return __extends(t,e),t.build=function(e,n,i){var o=unpackPHPArrayObject(e,"salesSettings"),r=e.zeroClickDelay,a=e.skenzoRedirect,s=e.skenzoUrl,c=e.showInquiryForm,d=e.canZeroClick;e.cannotPark;var l="",u=0,p="";if(i.cannotLoadAds?i.wantsToServeAds?(l=window.location.origin,p="no_ads_redirect"):!1!==d?(null==n?void 0:n.redirect)?(l=n.redirect,u=r||0,p="zc_redirect"):a&&s&&(l=s,p="skenzo_redirect"):(null==o?void 0:o.status)&&"NOT_FOR_SALE"!==(null==o?void 0:o.status)&&(l="".concat(window.location.origin,"/listing")):!1!==d&&(null==n?void 0:n.reason)?(null==n?void 0:n.redirect)?(l=n.redirect,u=r||0,p="zc_redirect"):a&&s&&(l=s,p="skenzo_redirect"):window.location.pathname.startsWith("/listing")?"EXTERNAL_MARKET"===(null==o?void 0:o.status)&&(null==o?void 0:o.external)?(l=o.external,p="sales"):"URL"===(null==o?void 0:o.status)&&(null==o?void 0:o.link)&&(l=o.link,p="sales"):c&&(l="".concat(window.location.origin,"/listing")),l){var f=new t;return f.url=l,f.delay=u,f.trackingType=p,f}},t.prototype.toContext=function(){return{}},t}(State$2),browserState=function(){var e,t,n,i,o,r,a=window.screen,s=a.width,c=a.height,d=window.self,l=window.top,u=window.matchMedia,p=window.opener,f=document.documentElement,h=f.clientWidth,g=f.clientHeight;try{r=(new Date).getTimezoneOffset()/60*-1}catch(e){r=null}return{popup:!(!p||p===window),timezone_offset:r,user_preference:null===(e=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===e?void 0:e.resolvedOptions(),user_using_darkmode:Boolean(u&&u("(prefers-color-scheme: dark)").matches),user_supports_darkmode:Boolean(u),window_resolution:{width:null!=h?h:0,height:null!=g?g:0},screen_resolution:{width:null!=s?s:0,height:null!=c?c:0},frame:l===d?null:{innerWidth:null!==(t=null==d?void 0:d.innerWidth)&&void 0!==t?t:0,innerHeight:null!==(n=null==d?void 0:d.innerHeight)&&void 0!==n?n:0,outerWidth:null!==(i=null==d?void 0:d.outerWidth)&&void 0!==i?i:0,outerHeight:null!==(o=null==d?void 0:d.outerHeight)&&void 0!==o?o:0}}},TRACKING_URL="_tr",trackVisit=function(e,t){var n,i=e.callbacks,o=e.context,r=__assign({ad_loaded_callback:null==i?void 0:i.adLoadedCallback,app_version:version,caf_timed_out:null==i?void 0:i.cafTimedOut,channel:null===(n=null==o?void 0:o.pageOptions)||void 0===n?void 0:n.channel,fd_server_datetime:o.fd_server_datetime,fd_server:o.fd_server,flex_rule:o.flex_rule,host:o.host,ip:o.ip,js_error:o.js_error,no_ads_redirect:o.noAdsRedirect,page_headers:o.page_headers,page_loaded_callback:null==i?void 0:i.pageLoadedCallback,page_method:o.page_method,page_request:o.page_request,page_time:o.page_time,page_url:o.page_url,reportable_channel:o.reportableChannel,template_id:o.templateId,type:t,user_has_ad_blocker:o.user_has_ad_blocker,uuid:o.uuid,zeroclick:o.zeroClick},browserState());fetch("/".concat(TRACKING_URL),{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({signature:encode(r)})})},State$1;!function(){if(!window.CustomEvent){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};const n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e}}(),function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failed=2]="Failed"}(State$1||(State$1={}));var Provider=function(){function e(e){var t=this;this.timeoutSeconds=5,this.handlePixelEvent=function(e){switch(t.state){case State$1.Failed:break;case State$1.Pending:setTimeout((function(){return t.handlePixelEvent(e)}),100);break;case State$1.Loaded:t.onPixelEvent(e)}},this.watch=function(){switch(t.state){case State$1.Loaded:case State$1.Failed:break;case State$1.Pending:t.isLoaded()?t.state=State$1.Loaded:t.isTimedOut()?t.state=State$1.Failed:setTimeout(t.watch,50)}},e&&e.length>0?(this.identifier=e,this.state=State$1.Pending,this.timeoutAt=new Date,this.timeoutAt.setSeconds(this.timeoutAt.getSeconds()+this.timeoutAfter()),this.injectPixel()):this.state=State$1.Failed}return e.prototype.injectPixel=function(){this.injectedAt||(this.injectedAt=new Date,this.inject(),this.watch())},e.prototype.inject=function(){var e=document.createElement("script");e.text=this.script,document.head.appendChild(e)},e.prototype.isTimedOut=function(){return+new Date>=+this.timeoutAt},e.prototype.timeoutAfter=function(){return this.timeoutSeconds},e}(),Facebook=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,"script",{get:function(){return"!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init', '".concat(this.identifier,"');")},enumerable:!1,configurable:!0}),t.prototype.onPixelEvent=function(e){window.fbq("trackCustom",e)},t.prototype.isLoaded=function(){return!!window.fbq},t}(Provider),Outbrain=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,"script",{get:function(){return"!function(_window, _document) {var OB_ADV_ID = '".concat(this.identifier,"';if (_window.obApi) {var toArray = function(object) {return Object.prototype.toString.call(object) === '[object Array]' ? object : [object];};_window.obApi.marketerId = toArray(_window.obApi.marketerId).concat(toArray(OB_ADV_ID));return;}var api = _window.obApi = function() {api.dispatch ? api.dispatch.apply(api, arguments) : api.queue.push(arguments);};api.version = '1.1';api.loaded = true;api.marketerId = OB_ADV_ID;api.queue = [];var tag = _document.createElement('script');tag.async = true;tag.src = '//amplify.outbrain.com/cp/obtp.js';tag.type = 'text/javascript';var script = _document.getElementsByTagName('script')[0];script.parentNode.insertBefore(tag, script);}(window, document);")},enumerable:!1,configurable:!0}),t.prototype.onPixelEvent=function(e){window.obApi("track",e)},t.prototype.isLoaded=function(){return!!window.obApi},t}(Provider),Revcontent=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,"script",{get:function(){return""},enumerable:!1,configurable:!0}),t.prototype.inject=function(){var e=document.createElement("script");e.src="https://assets.revcontent.com/master/rev.js",document.head.appendChild(e)},t.prototype.onPixelEvent=function(e){window.rev("event",e)},t.prototype.isLoaded=function(){return!!window.rev},t}(Provider),Taboola=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,"script",{get:function(){return"window._tfa = window._tfa || [];!function (t, f, a, x) {if (!document.getElementById(x)) {t.async = 1;t.src = a;t.id=x;f.parentNode.insertBefore(t, f);}}(document.createElement('script'),document.getElementsByTagName('script')[0],'//cdn.taboola.com/libtrc/unip/1451879/tfa.js','tb_tfa_script');"},enumerable:!1,configurable:!0}),t.prototype.onPixelEvent=function(e){window._tfa.push({notify:"event",name:e,id:this.identifier})},t.prototype.isLoaded=function(){return Array.isArray(window._tfa)},t}(Provider),Tiktok=function(e){function t(t,n){var i=e.call(this,t)||this;return i.useAltTikTokEventsForAdsPlatformUser=n,i}return __extends(t,e),Object.defineProperty(t.prototype,"script",{get:function(){return'!function (w, d, t) {w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i=n.blocks.length&&(n.state.blocks.transitionTo(State.Failure),n.failureReason="caf_adloadfail_".concat(e)))},this.onTimeout=function(){n.state.script.transitionFromPendingTo(State.TimedOut),n.state.blocks.transitionFromPendingTo(State.TimedOut)},this.blocks=e,this.options=t}return Object.defineProperty(e.prototype,"loaded",{get:function(){return this.state.script.loaded},enumerable:!1,configurable:!0}),e.prototype.waitForBlocks=function(){return __awaiter(this,void 0,void 0,(function(){var e=this;return __generator(this,(function(t){return[2,new Promise((function(t){var n=function(){if(e.state.blocks.done)t();else{var i=e.blocksLoaded.map((function(e){return e.adsLoaded}));i.includes(!1)||i.length>=e.blocks.length?t():setTimeout(n,50)}};n()}))]}))}))},e.prototype.inject=function(){return __awaiter(this,void 0,void 0,(function(){var e,t,n=this;return __generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,3,,4]),[4,injectScriptTags()];case 1:return i.sent()&&void 0!==window.google?(new((t=window.google.ads.domains.Caf).bind.apply(t,__spreadArray([void 0,__assign(__assign({},this.options),{pageLoadedCallback:this.onPageLoaded,adLoadedCallback:this.onBlockLoaded})],this.blocks,!1))),setTimeout(this.onTimeout,TIMEOUT_CALLBACKS),[4,new Promise((function(e){var t=function(){n.state.script.done?e():setTimeout(t,10)};t()}))]):(this.state.script.transitionTo(State.Failure),[2,void 0]);case 2:return[2,i.sent()];case 3:return e=i.sent(),this.error=e.toString(),[2,void 0];case 4:return[2]}}))}))},e.prototype.toCallbacks=function(){return{adLoadedCallback:this.blocksLoaded.slice(-1)[0],pageLoadedCallback:this.pageLoaded,cafTimedOut:this.state.script.timedOut||this.state.blocks.timedOut,googleAdsFailure:!!this.failureReason}},e.prototype.toContext=function(){var e={cafScriptWasLoaded:this.state.script.loaded,callbacks:this.toCallbacks};return this.error&&(e.js_error={message:this.error}),this.state.script.loaded||(e.zeroClick={reason:"googleAdsFailure"}),e},e.prototype.mockFailedState=function(){this.state.blocks.transitionTo(State.Failure),this.state.script.transitionTo(State.Failure)},e}(),injectScriptTags=function(){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(e){return[2,new Promise((function(e){var t=document.createElement("script");t.type="text/javascript",t.src=SRC,t.addEventListener("load",(function(){return e(!0)})),t.addEventListener("error",(function(){return e(!1)})),document.body.appendChild(t),setTimeout((function(){return e(!1)}),TIMEOUT_SCRIPTS)}))]}))}))},TagManager=function(){function e(e){this.injected=!1,this.identifier=e}return e.prototype.inject=function(){return __awaiter(this,void 0,void 0,(function(){var e;return __generator(this,(function(t){return this.injected?[2]:this.identifier?("TEST"===this.identifier||((e=document.createElement("script")).setAttribute("src","https://www.googletagmanager.com/gtag/js?id=".concat(this.identifier)),document.head.appendChild(e),this.track(),this.injected=!0),[2]):[2]}))}))},e.prototype.track=function(){this.push("js",new Date),this.push("config",this.identifier)},e.prototype.push=function(e,t){window.dataLayer||(window.dataLayer=[]),window.dataLayer.push([e,t])},e}(),ADS_PARAM="?caf",ADS_TRACKING_URL="_tr",BLOCKS_TYPE="ads",BLOCKS_CONTAINER="rs",Google=function(){function e(e,t,n,i,o){this._blocks=t,this._pageOptions=n,this.uuid=e,this.baseURL=o,this.ads=new Ads(this.blocks,this.pageOptions),this.tagManager=new TagManager(i)}return e.build=function(t,n,i){var o=t.pageOptions,r=t.preferredLanguage,a=t.blocks,s=t.googleAnalytics,c=t.reportableChannel,d={};o&&((d=__assign({},o)).hl||(d.hl=r),i.isAllowed&&(d.channel=d.channel.concat(",pid-bodis-gcontrol98")),c&&(d.channel=d.channel.concat(",pid-bodis-gcontrol".concat(c))));var l=null==o?void 0:o.resultsPageBaseUrl;return new e(n.uuid,a,d,s,l)},e.prototype.injectTagManager=function(){this.tagManager.inject()},e.prototype.injectAds=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){switch(e.label){case 0:return[4,this.ads.inject()];case 1:return e.sent(),[2]}}))}))},e.prototype.waitForBlocks=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){return[2,this.ads.waitForBlocks()]}))}))},Object.defineProperty(e.prototype,"blocks",{get:function(){var e=this;return(this._blocks||[]).filter((function(t){return e.wantsToServeAds?t.type===BLOCKS_TYPE:t.container===BLOCKS_CONTAINER})).map((function(t){var n=parse(),i=__assign({},t);return i.resultsPageBaseUrl="".concat(e.baseURL).concat(ADS_PARAM,"&").concat(n.toString()),e.wantsToServeAds&&(n.append("click","true"),n.append("session",e.uuid),i.clicktrackUrl="".concat(TRACKING_DOMAIN).concat(ADS_TRACKING_URL,"/?").concat(n.toString())),i}))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"pageOptions",{get:function(){var e=__assign({},this._pageOptions);return Object.keys(this._pageOptions).forEach((function(t){t.startsWith("bodis")&&delete e[t]})),e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"cannotLoadAds",{get:function(){return!this.ads.loaded},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"wantsToServeAds",{get:function(){return window.location.search.startsWith(ADS_PARAM)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"adsMode",{get:function(){return this.ads.loaded&&this.wantsToServeAds},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"adsReady",{get:function(){return this.wantsToServeAds&&!this.cannotLoadAds},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"callbacks",{get:function(){return this.ads.toCallbacks()},enumerable:!1,configurable:!0}),e.prototype.toContext=function(){return __assign({blocks:this.blocks,pageOptions:this.pageOptions},this.ads.toContext())},e}(),App=function(){function e(){}return e.prototype.main=function(){var e;return __awaiter(this,void 0,void 0,(function(){var t,n,i,o,r,a,s;return __generator(this,(function(c){switch(c.label){case 0:return this.parkResponse=decode(),t=this,[4,getFindDomain()];case 1:if(t.findDomainResponse=c.sent(),!this.findDomainResponse)throw new Error("Domain failed to load.");return this.pixels=Pixels.build(this.findDomainResponse),null===(e=this.pixels)||void 0===e||e.listenForEvents(),this.adblock=new Adblock,[4,this.adblock.inject()];case 2:return c.sent(),this.google=Google.build(this.findDomainResponse,this.parkResponse,this.adblock),this.google.injectTagManager(),n=Parking.build(this.findDomainResponse,this.google),Render.prerender(n),(i=Failed.cannotPark(this.findDomainResponse))?[4,this.transitionToFailed(i)]:[3,4];case 3:return c.sent(),[2];case 4:return[4,this.google.injectAds()];case 5:return c.sent(),(o=Disabled.build(this.findDomainResponse,this.adblock.state))?[4,this.transitionToDisabled(o)]:[3,7];case 6:return c.sent(),[2];case 7:return(r=Sales.build(this.findDomainResponse))?[4,this.transitionToSales(r)]:[3,9];case 8:return c.sent(),[2];case 9:return this.eligibleForZeroClick?(a=this,[4,getZeroClick(this.context)]):[3,11];case 10:a.zeroClickResponse=c.sent(),c.label=11;case 11:return(s=Redirect.build(this.findDomainResponse,this.zeroClickResponse,this.google))?[4,this.transitionToRedirect(s)]:[3,13];case 12:return c.sent(),[2];case 13:return(i=Failed.noSponsors(this.google))?[4,this.transitionToFailed(i)]:[3,15];case 14:return c.sent(),[2];case 15:return[4,this.transitionToParking(n)];case 16:return c.sent(),[2]}}))}))},e.prototype.transitionToParking=function(e){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return this.state=e,Render.template(e),Render.revealPage(),[4,this.google.waitForBlocks()];case 1:return t.sent(),[4,this.track()];case 2:return t.sent(),[2]}}))}))},e.prototype.transitionToRedirect=function(e){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(n){switch(n.label){case 0:return this.state=e,t=this.track(),Render.revealPage(),[4,waiter(e.delay,(function(e){return Render.loading(e)}))];case 1:return n.sent(),[4,t];case 2:return n.sent(),window.location.href=e.url,log("➡ Redirecting [".concat(e.url,"]")),[2]}}))}))},e.prototype.transitionToFailed=function(e){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return this.state=e,Render.message(e.message),Render.revealPage(),[4,this.track()];case 1:return t.sent(),[2]}}))}))},e.prototype.transitionToSales=function(e){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return this.state=e,e.init(this.context),[4,this.track()];case 1:return t.sent(),[2]}}))}))},e.prototype.transitionToDisabled=function(e){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return this.state=e,Render.message(e.message),Render.revealPage(),[4,this.track()];case 1:return t.sent(),[2]}}))}))},e.prototype.track=function(){var e;return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(n){if(!this.state.track)return[2,Promise.resolve()];try{return t=this.state.trackingType,null===(e=this.pixels)||void 0===e||e.dispatchEvent({type:t}),[2,trackVisit({context:this.context,callbacks:this.google.callbacks},t)]}catch(e){return[2,void 0]}return[2]}))}))},Object.defineProperty(e.prototype,"eligibleForZeroClick",{get:function(){var e=this.findDomainResponse,t=e.cannotPark,n=e.canZeroClick,i=e.zeroClick,o=this.google.cannotLoadAds;return!!t||(!(!n||!o)||!!(null==i?void 0:i.reason))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"context",{get:function(){var e,t,n,i,o=this.findDomainResponse,r=this.parkResponse,a=null===(e=this.state)||void 0===e?void 0:e.toContext(),s=null===(t=this.adblock)||void 0===t?void 0:t.toContext(),c=null===(n=this.google)||void 0===n?void 0:n.toContext(),d=browserState(),l=__assign(__assign({},null===(i=this.findDomainResponse)||void 0===i?void 0:i.zeroClick),this.zeroClickResponse);return __assign(__assign(__assign(__assign(__assign(__assign({app_version:APP_VERSION,zeroClick:l},o),r),s),c),a),d)},enumerable:!1,configurable:!0}),e.prototype.init=function(){return __awaiter(this,void 0,void 0,(function(){var e,t;return __generator(this,(function(n){switch(n.label){case 0:n.label=1;case 1:return n.trys.push([1,3,,4]),window.__parkour=this,[4,this.main()];case 2:return n.sent(),[3,4];case 3:return e=n.sent(),console.error("app",e),t=Failed.fromError(e),this.state=t,Render.message(t.message),Render.revealPage(),[3,4];case 4:return[2]}}))}))},e}();(new App).init(),exports.App=App}));