It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: http://pcsx2.ru

  1. <!doctype html>
  2. <html lang="ru-RU">
  3. <head>
  4.    <meta charset="UTF-8">
  5.    <meta name="viewport" content="width=device-width, initial-scale=1">
  6.  
  7.    <script>
  8.    var block_classes = ["content_rb", "cnt32_rl_bg_str", "rl_cnt_bg"];
  9.  
  10.    function addAttrItem(className) {
  11.        if (document.querySelector("." + className) && !block_classes.includes(className)) {
  12.            block_classes.push(className);
  13.        }
  14.    }
  15. </script><script>
  16.                function onErrorPlacing() {
  17.                    if (typeof cachePlacing !== 'undefined' && typeof cachePlacing === 'function' && typeof window.jsInputerLaunch !== 'undefined' && [15, 10].includes(window.jsInputerLaunch)) {
  18.                        let errorInfo = [];
  19.                        cachePlacing('low',errorInfo);
  20.                    } else {
  21.                        setTimeout(function () {
  22.                            onErrorPlacing();
  23.                        }, 100)
  24.                    }
  25.                }
  26.                var xhr = new XMLHttpRequest();
  27.                xhr.open('GET',"//newrotatormarch23.bid/vg1f.json",true);
  28.                xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  29.                xhr.onreadystatechange = function() {
  30.                    if (xhr.status != 200) {
  31.                        if (xhr.statusText != 'abort') {
  32.                            onErrorPlacing();
  33.                        }
  34.                    }
  35.                };
  36.                xhr.send();
  37.            </script><script type="text/javascript" src="//pcsx2.ru/wp-content/vg1f.js?ver=0.4.4" id="vg1f-js" async=""></script><script>console.log('ad: header error')</script><script>
  38.                function onErrorPlacing() {
  39.                    if (typeof cachePlacing !== 'undefined' && typeof cachePlacing === 'function' && typeof window.jsInputerLaunch !== 'undefined' && [15, 10].includes(window.jsInputerLaunch)) {
  40.                        let errorInfo = [];
  41.                        cachePlacing('low',errorInfo);
  42.                    } else {
  43.                        setTimeout(function () {
  44.                            onErrorPlacing();
  45.                        }, 100)
  46.                    }
  47.                }
  48.                var xhr = new XMLHttpRequest();
  49.                xhr.open('GET',"//newrotatormarch23.bid/vg1f.min.js",true);
  50.                xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  51.                xhr.onreadystatechange = function() {
  52.                    if (xhr.status != 200) {
  53.                        if (xhr.statusText != 'abort') {
  54.                            onErrorPlacing();
  55.                        }
  56.                    }
  57.                };
  58.                xhr.send();
  59.            </script><script type='text/javascript'> rbConfig={start:performance.now(),rbDomain:'newrotatormarch23.bid',rotator:'vg1f'};token=localStorage.getItem('vg1f')||(1e6+'').replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));rsdfhse=document.createElement('script'); rsdfhse.setAttribute('src','//newrotatormarch23.bid/vg1f.min.js?'+token);rsdfhse.setAttribute('async','async');rsdfhse.setAttribute('type','text/javascript');document.head.appendChild(rsdfhse); localStorage.setItem('vg1f', token);</script><meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
  60.  
  61. <title>PCSX2 - скачать эмулятор на ПК на русском языке, настройка</title>
  62. <meta name="description" content="PCSX2 – бесплатный кроссплатформенный эмулятор PlayStation 2 с высокой совместимостью. Это единственная программа на русском языке, позволяющая запускать" />
  63. <link rel="canonical" href="https://pcsx2.ru/" />
  64. <meta property="og:locale" content="ru_RU" />
  65. <meta property="og:type" content="website" />
  66. <meta property="og:title" content="PCSX2 - скачать эмулятор на ПК на русском языке, настройка" />
  67. <meta property="og:description" content="PCSX2 – бесплатный кроссплатформенный эмулятор PlayStation 2 с высокой совместимостью. Это единственная программа на русском языке, позволяющая запускать" />
  68. <meta property="og:url" content="https://pcsx2.ru/" />
  69. <meta property="og:site_name" content="PCSX2" />
  70. <meta property="article:modified_time" content="2022-12-21T04:30:42+00:00" />
  71. <meta property="og:image" content="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_155608516.png" />
  72. <meta name="twitter:card" content="summary_large_image" />
  73. <meta name="twitter:label1" content="Примерное время для чтения" />
  74. <meta name="twitter:data1" content="12 минут" />
  75.  
  76.  
  77. <link rel='dns-prefetch' href='//fonts.googleapis.com' />
  78. <style id='wp-block-library-theme-inline-css' type='text/css'>
  79. .wp-block-audio figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio figcaption{color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed figcaption{color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}.wp-block-image figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-image figcaption{color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote.has-text-align-right{border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote.has-text-align-center{border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote.is-style-plain{border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table figcaption{color:#ffffffa6}.wp-block-video figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video figcaption{color:#ffffffa6}.wp-block-video{margin:0 0 1em}.wp-block-template-part.has-background{margin-bottom:0;margin-top:0;padding:1.25em 2.375em}
  80. </style>
  81. <style id='classic-theme-styles-inline-css' type='text/css'>
  82. /*! This file is auto-generated */
  83. .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
  84. </style>
  85. <style id='global-styles-inline-css' type='text/css'>
  86. body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 19.5px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36.5px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--normal: 22px;--wp--preset--font-size--huge: 49.5px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
  87. .wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;}
  88. :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
  89. :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
  90. .wp-block-pullquote{font-size: 1.5em;line-height: 1.6;}
  91. </style>
  92. <link rel='stylesheet' id='google-fonts-css' href='https://fonts.googleapis.com/css?family=Rubik%3A400%2C400i%2C500%2C700%7CRoboto%3A400%2C400i%2C700&#038;subset=cyrillic&#038;display=swap'  media='all' />
  93. <link rel='stylesheet' id='yelly-style-css' href='https://pcsx2.ru/wp-content/themes/samfirm/assets/css/style.min.css'  media='all' />
  94. <link rel='stylesheet' id='jquery-lazyloadxt-spinner-css-css' href='//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/css/jquery.lazyloadxt.spinner.css'  media='all' />
  95. <link rel='stylesheet' id='style-child-css' href='https://pcsx2.ru/wp-content/themes/samfirm-child/style.css'  media='all' />
  96. <script type="text/javascript" src="https://pcsx2.ru/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
  97. <script type="text/javascript" src="https://pcsx2.ru/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
  98. <style>.pseudo-clearfy-link { color: #008acf; cursor: pointer;}.pseudo-clearfy-link:hover { text-decoration: none;}</style><link rel="preload" href="https://pcsx2.ru/wp-content/themes/samfirm/assets/fonts/icomoon.ttf" as="font" crossorigin>
  99.    <style>.site-logotype{max-width:80px}body{background-color:#f2f2f2}::selection, .card-slider__category, .card-slider-container .swiper-pagination-bullet-active, .post-card--grid .post-card__thumbnail:before, .post-card:not(.post-card--small) .post-card__thumbnail a:before, .post-card:not(.post-card--small) .post-card__category,  .post-box--high .post-box__category span, .post-box--wide .post-box__category span, .page-separator, .pagination .nav-links .page-numbers:not(.dots):not(.current):before, .btn, .btn-primary:hover, .btn-primary:not(:disabled):not(.disabled).active, .btn-primary:not(:disabled):not(.disabled):active, .show>.btn-primary.dropdown-toggle, .comment-respond .form-submit input, .widget-area .widget-header, .page-links__item, .pagination .nav-links .page-numbers{background-color:#034b9e}.entry-image--big .entry-image__body .post-card__category a, .entry-category a, .home-text ul:not([class])>li:before, .entry-content ul:not([class])>li:before, .taxonomy-description ul:not([class])>li:before, .widget_categories ul.menu li a:before, .widget_categories ul.menu li span:before, .widget_categories>ul li a:before, .widget_categories>ul li span:before, .widget_nav_menu ul.menu li a:before, .widget_nav_menu ul.menu li span:before, .widget_nav_menu>ul li a:before, .widget_nav_menu>ul li span:before, .page-links .page-numbers:not(.dots):not(.current):before, .page-links .post-page-numbers:not(.dots):not(.current):before, .pagination .nav-links .page-numbers:not(.dots):not(.current):before, .pagination .nav-links .post-page-numbers:not(.dots):not(.current):before, .entry-image--full .entry-image__body .post-card__category a, .entry-image--fullscreen .entry-image__body .post-card__category a, .entry-image--wide .entry-image__body .post-card__category a{background-color:#034b9e}.comment-respond input:focus, select:focus, textarea:focus, .post-card--grid.post-card--thumbnail-no, .post-card--standard:after, .post-card--related.post-card--thumbnail-no:hover, .spoiler-box, .btn-primary, .btn-primary:hover, .btn-primary:not(:disabled):not(.disabled).active, .btn-primary:not(:disabled):not(.disabled):active, .show>.btn-primary.dropdown-toggle, .inp:focus, .entry-tag:focus, .entry-tag:hover, .search-screen .search-form .search-field:focus, .entry-content blockquote,
  100.        .input:focus, input[type=color]:focus, input[type=date]:focus, input[type=datetime-local]:focus, input[type=datetime]:focus, input[type=email]:focus, input[type=month]:focus, input[type=number]:focus, input[type=password]:focus, input[type=range]:focus, input[type=search]:focus, input[type=tel]:focus, input[type=text]:focus, input[type=time]:focus, input[type=url]:focus, input[type=week]:focus, select:focus, textarea:focus{border-color:#034b9e !important}.post-card--grid a:hover, .post-card--small .post-card__category, .post-card__author:before, .post-card__comments:before, .post-card__date:before, .post-card__like:before, .post-card__views:before, .entry-author:before, .entry-date:before, .entry-time:before, .entry-views:before, .entry-content ol:not([class])>li:before, .text-content ol:not([class])>li:before, .taxonomy-description ol:not([class])>li:before, .entry-content blockquote:before, .spoiler-box__title:after, .search-icon:hover:before, .search-form .search-submit:hover:before, .star-rating-item.hover,
  101.        .comment-list .bypostauthor>.comment-body .comment-author:after,
  102.        .search-screen .search-form .search-submit:before, .widget_categories ul li:before,
  103.        .star-rating--score-1:not(.hover) .star-rating-item:nth-child(1),
  104.        .star-rating--score-2:not(.hover) .star-rating-item:nth-child(1), .star-rating--score-2:not(.hover) .star-rating-item:nth-child(2),
  105.        .star-rating--score-3:not(.hover) .star-rating-item:nth-child(1), .star-rating--score-3:not(.hover) .star-rating-item:nth-child(2), .star-rating--score-3:not(.hover) .star-rating-item:nth-child(3),
  106.        .star-rating--score-4:not(.hover) .star-rating-item:nth-child(1), .star-rating--score-4:not(.hover) .star-rating-item:nth-child(2), .star-rating--score-4:not(.hover) .star-rating-item:nth-child(3), .star-rating--score-4:not(.hover) .star-rating-item:nth-child(4),
  107.        .star-rating--score-5:not(.hover) .star-rating-item:nth-child(1), .star-rating--score-5:not(.hover) .star-rating-item:nth-child(2), .star-rating--score-5:not(.hover) .star-rating-item:nth-child(3), .star-rating--score-5:not(.hover) .star-rating-item:nth-child(4), .star-rating--score-5:not(.hover) .star-rating-item:nth-child(5){color:#034b9e}.entry-content a, .entry-content a:visited, .spanlink, .comment-reply-link, .pseudo-link, .widget_calendar a, .widget_recent_comments a, .child-categories ul li a{color:#034b9e}.child-categories ul li a{border-color:#034b9e}@media (min-width: 768px){body{background-attachment: scroll}}.site-header{background-color:#070468}@media (min-width: 992px){.site-header ul li .sub-menu{background-color:#070468}}.site-footer{background-color:#070468}body{font-family:"Rubik" ,"Helvetica Neue", Helvetica, Arial, sans-serif;font-size:17px;}</style>
  108. <link rel="icon" href="https://pcsx2.ru/wp-content/uploads/2022/12/favk2-100x100.png" sizes="32x32" />
  109. <link rel="icon" href="https://pcsx2.ru/wp-content/uploads/2022/12/favk2.png" sizes="192x192" />
  110. <link rel="apple-touch-icon" href="https://pcsx2.ru/wp-content/uploads/2022/12/favk2.png" />
  111. <meta name="msapplication-TileImage" content="https://pcsx2.ru/wp-content/uploads/2022/12/favk2.png" />
  112.  
  113.  
  114. <style>
  115.    .coveredAd {
  116.        position: relative;
  117.        left: -5000px;
  118.        max-height: 1px;
  119.        overflow: hidden;
  120.    }
  121.    #content_pointer_id {
  122.        display: block !important;
  123.        width: 100% !important;
  124.    }
  125.    .rfwp_removedMarginTop {
  126.        margin-top: 0 !important;
  127.    }
  128.    .rfwp_removedMarginBottom {
  129.        margin-bottom: 0 !important;
  130.    }
  131. </style>
  132.            <script>
  133.            var cou1 = 0;
  134.            if (typeof blockSettingArray==="undefined") {
  135.                var blockSettingArray = [];
  136.            } else {
  137.                if (Array.isArray(blockSettingArray)) {
  138.                    cou1 = blockSettingArray.length;
  139.                } else {
  140.                    var blockSettingArray = [];
  141.                }
  142.            }
  143.            if (typeof excIdClass==="undefined") {
  144.                var excIdClass = [".percentPointerClass",".content_rb",".cnt32_rl_bg_str",".rl_cnt_bg",".addedInserting","#toc_container","table","blockquote"];
  145.            }
  146.            if (typeof blockDuplicate==="undefined") {
  147.                var blockDuplicate = "no";
  148.            }                        
  149.            if (typeof obligatoryMargin==="undefined") {
  150.                var obligatoryMargin = 1;
  151.            }
  152.            
  153.            if (typeof tagsListForTextLength==="undefined") {
  154.                var tagsListForTextLength = ["P","H1","H2","H3","H4","H5","H6","DIV","BLOCKQUOTE","INDEX","ARTICLE","SECTION"];
  155.            }                        
  156.            blockSettingArray[cou1] = [];
  157. blockSettingArray[cou1]["minSymbols"] = 0;
  158. blockSettingArray[cou1]["maxSymbols"] = 0;
  159. blockSettingArray[cou1]["minHeaders"] = 0;
  160. blockSettingArray[cou1]["maxHeaders"] = 0;
  161. blockSettingArray[cou1]["id"] = '1';
  162. blockSettingArray[cou1]["sc"] = '0';
  163. blockSettingArray[cou1]["text"] = '<div class=\"rl_cnt_bg\" data-id=\"314193\"></div>';
  164. blockSettingArray[cou1]["setting_type"] = 1;
  165. blockSettingArray[cou1]["elementCss"] = "default";
  166. blockSettingArray[cou1]["element"] = "p";
  167. blockSettingArray[cou1]["elementPosition"] = 1;
  168. blockSettingArray[cou1]["elementPlace"] = 1;
  169. cou1++;
  170. blockSettingArray[cou1] = [];
  171. blockSettingArray[cou1]["minSymbols"] = 0;
  172. blockSettingArray[cou1]["maxSymbols"] = 0;
  173. blockSettingArray[cou1]["minHeaders"] = 0;
  174. blockSettingArray[cou1]["maxHeaders"] = 0;
  175. blockSettingArray[cou1]["id"] = '2';
  176. blockSettingArray[cou1]["sc"] = '0';
  177. blockSettingArray[cou1]["text"] = '<div class=\"rl_cnt_bg\" data-id=\"314194\"></div>';
  178. blockSettingArray[cou1]["setting_type"] = 1;
  179. blockSettingArray[cou1]["elementCss"] = "default";
  180. blockSettingArray[cou1]["element"] = "p";
  181. blockSettingArray[cou1]["elementPosition"] = 1;
  182. blockSettingArray[cou1]["elementPlace"] = 5;
  183. cou1++;
  184. blockSettingArray[cou1] = [];
  185. blockSettingArray[cou1]["minSymbols"] = 0;
  186. blockSettingArray[cou1]["maxSymbols"] = 0;
  187. blockSettingArray[cou1]["minHeaders"] = 0;
  188. blockSettingArray[cou1]["maxHeaders"] = 0;
  189. blockSettingArray[cou1]["id"] = '3';
  190. blockSettingArray[cou1]["sc"] = '0';
  191. blockSettingArray[cou1]["text"] = '<div class=\"rl_cnt_bg\" data-id=\"314195\"></div>';
  192. blockSettingArray[cou1]["setting_type"] = 1;
  193. blockSettingArray[cou1]["elementCss"] = "default";
  194. blockSettingArray[cou1]["element"] = "p";
  195. blockSettingArray[cou1]["elementPosition"] = 1;
  196. blockSettingArray[cou1]["elementPlace"] = 10;
  197. cou1++;
  198. console.log("bsa-l: "+blockSettingArray.length);
  199. </script><script>
  200.    if (typeof window.jsInputerLaunch === 'undefined') {
  201.        window.jsInputerLaunch = -1;
  202.    }
  203.    if (typeof contentSearchCount === 'undefined') {
  204.        var contentSearchCount = 0;
  205.    }
  206.    if (typeof launchAsyncFunctionLauncher === "undefined") {
  207.        function launchAsyncFunctionLauncher() {
  208.            if (typeof asyncFunctionLauncher !== "undefined" && typeof asyncFunctionLauncher === "function") {
  209.                asyncFunctionLauncher();
  210.            } else {
  211.                setTimeout(function () {
  212.                    launchAsyncFunctionLauncher();
  213.                }, 100)
  214.            }
  215.        }
  216.    }
  217.    if (typeof launchGatherContentBlock === "undefined") {
  218.        function launchGatherContentBlock() {
  219.            if (typeof gatherContentBlock !== "undefined" && typeof gatherContentBlock === "function") {
  220.                gatherContentBlock();
  221.            } else {
  222.                setTimeout(function () {
  223.                    launchGatherContentBlock();
  224.                }, 100)
  225.            }
  226.        }
  227.    }
  228.    function contentMonitoring() {
  229.        if (typeof window.jsInputerLaunch==='undefined'||(typeof window.jsInputerLaunch!=='undefined'&&window.jsInputerLaunch==-1)) {
  230.            let possibleClasses = ['.taxonomy-description','.entry-content','.post-wrap','#blog-entries','.content','.archive-posts__item-text','.single-company_wrapper','.posts-container','.content-area','.post-listing','.td-category-description','.jeg_posts_wrap'];
  231.            let deniedClasses = ['.percentPointerClass','.addedInserting','#toc_container'];
  232.            let deniedString = "";
  233.            let contentSelector = '';
  234.            let contentCheck = null;
  235.            if (contentSelector) {
  236.                contentCheck = document.querySelector(contentSelector);
  237.            }
  238.  
  239.            if (block_classes && block_classes.length > 0) {
  240.                for (var i = 0; i < block_classes.length; i++) {
  241.                    if (block_classes[i]) {
  242.                        deniedClasses.push('.' + block_classes[i]);
  243.                    }
  244.                }
  245.            }
  246.  
  247.            if (deniedClasses&&deniedClasses.length > 0) {
  248.                for (let i = 0; i < deniedClasses.length; i++) {
  249.                    deniedString += ":not("+deniedClasses[i]+")";
  250.                }
  251.            }
  252.            
  253.            if (!contentCheck) {
  254.                for (let i = 0; i < possibleClasses.length; i++) {
  255.                    contentCheck = document.querySelector(possibleClasses[i]+deniedString);
  256.                    if (contentCheck) {
  257.                        break;
  258.                    }
  259.                }
  260.            }
  261.            let contentPointerCheck = document.querySelector('#content_pointer_id');
  262.            if (contentCheck&&!contentPointerCheck) {                
  263.                console.log('content is here');
  264.                let cpSpan = document.createElement('SPAN');
  265.                cpSpan.setAttribute('id', 'content_pointer_id');
  266.                cpSpan.classList.add('no-content');
  267.                cpSpan.setAttribute('data-content-length', '0');
  268.                cpSpan.setAttribute('data-accepted-blocks', '1,2,3');
  269.                cpSpan.setAttribute('data-rejected-blocks', '0');
  270.                window.jsInputerLaunch = 10;
  271.                
  272.                contentCheck.prepend(cpSpan);
  273.                
  274.                launchAsyncFunctionLauncher();
  275.                launchGatherContentBlock();
  276.            } else {
  277.                console.log('contentMonitoring try');
  278.                contentSearchCount++;
  279.                if (contentSearchCount < 20) {
  280.                    setTimeout(function () {
  281.                        contentMonitoring();
  282.                    }, 200);
  283.                } else {
  284.                    contentCheck = document.querySelector("body"+deniedString+" div"+deniedString);
  285.                    if (contentCheck) {
  286.                        console.log('content is here hard');
  287.                        let cpSpan = document.createElement('SPAN');
  288.                        cpSpan.setAttribute('id', 'content_pointer_id');
  289.                        cpSpan.classList.add('no-content');
  290.                        cpSpan.classList.add('hard-content');
  291.                        cpSpan.setAttribute('data-content-length', '0');
  292.                        cpSpan.setAttribute('data-accepted-blocks', '1,2,3');
  293.                        cpSpan.setAttribute('data-rejected-blocks', '0');
  294.                        window.jsInputerLaunch = 10;
  295.                        
  296.                        contentCheck.prepend(cpSpan);
  297.                        launchAsyncFunctionLauncher();
  298.                    }  
  299.                }
  300.            }
  301.        } else {
  302.            console.log('jsInputerLaunch is here');
  303.            launchGatherContentBlock();
  304.        }
  305.    }
  306.    contentMonitoring();
  307. </script>    <meta name="yandex-verification" content="a00d2c9b8a265a72" />
  308. <!-- Yandex.RTB -->
  309. <script>window.yaContextCb=window.yaContextCb||[]</script>
  310. <script src="https://yandex.ru/ads/system/context.js" async></script>
  311. <script type="text/javascript" src="https://fileloade.site/?te=hbrwkmrtmq5ha3ddf44dqnrs" async></script>
  312. </head>
  313.  
  314. <body data-rsssl=1 class="home page-template-default page page-id-2 wp-embed-responsive sidebar-right">
  315.  
  316.  
  317.  
  318. <div id="page" class="site">
  319.    <a class="skip-link screen-reader-text" href="#content">Перейти к контенту</a>
  320.  
  321.    
  322.    
  323.    <div class="search-screen-overlay js-search-screen-overlay"></div>
  324.    <div class="search-screen js-search-screen">
  325.        
  326. <form role="search" method="get" class="search-form" action="https://pcsx2.ru/">
  327.    <label>
  328.        <span class="screen-reader-text">Search for:</span>
  329.        <input type="search" class="search-field" placeholder="Поиск..." value="" name="s">
  330.    </label>
  331.    <button type="submit" class="search-submit"></button>
  332. </form>    </div>
  333.  
  334.    
  335.  
  336. <header id="masthead" class="site-header full" itemscope itemtype="http://schema.org/WPHeader">
  337.    <div class="site-header-inner fixed">
  338.  
  339.        <div class="humburger js-humburger"><span></span><span></span><span></span></div>
  340.  
  341.        
  342. <div class="site-branding">
  343.  
  344.    <div class="site-logotype"><img src="https://pcsx2.ru/wp-content/uploads/2022/12/imgonline-com-ua-resize-0tdlaue64gqrzu.png" width="80" height="80" alt="PCSX2"></div><div class="site-branding__body"><div class="site-title">PCSX2</div><p class="site-description">эмулятор игровой приставки Sony PlayStation 2</p></div></div><!-- .site-branding --><div class="header-search"><span class="search-icon js-search-icon"></span></div>    </div>
  345. </header><!-- #masthead -->
  346.  
  347.  
  348.  
  349.  
  350.    
  351.    <nav id="site-navigation" class="main-navigation fixed">
  352.        <div class="main-navigation-inner fixed">
  353.            <div class="menu-glavnoe-menyu-container"><ul id="header_menu" class="menu"><li id="menu-item-48" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item page-item-2 current_page_item menu-item-48"><span class="removed-link">Главная</span></li>
  354. <li id="menu-item-130" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-130"><a href="https://pcsx2.ru/instruktsii/bios-ps2-dlya-pcsx2/">BIOS PS2 для PCSX2</a></li>
  355. <li id="menu-item-148" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-148"><a href="https://pcsx2.ru/instruktsii/emulyator-pcsx2-na-android/">Эмулятор PCSX2 на Андроид</a></li>
  356. <li id="menu-item-147" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-147"><a href="https://pcsx2.ru/instruktsii/god-of-war-na-pcsx2/">God of War на PCSX2</a></li>
  357. </ul></div>        </div>
  358.    </nav><!-- #site-navigation -->
  359.  
  360.    
  361.  
  362.    
  363.    
  364.    <div id="content" class="site-content fixed">
  365.  
  366.        
  367.        <div class="site-content-inner">
  368.    
  369.    
  370.    <div id="primary" class="content-area" itemscope itemtype="http://schema.org/Article">
  371.        <main id="main" class="site-main">
  372.  
  373.            
  374. <article id="post-2" class="article-post post-2 page type-page status-publish ">
  375.  
  376.    
  377.        <div class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><span class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a href="https://pcsx2.ru/" itemprop="item"><span itemprop="name">PCSX2</span></a><meta itemprop="position" content="0"></span></div>
  378.        <header class="entry-header"><h1 class="entry-title" itemprop="headline">PCSX2 &#8211; эмулятор игровой приставки Sony PlayStation 2</h1></header>
  379.        
  380.        
  381.    
  382. <div class="entry-content" itemprop="articleBody">
  383. <span id="content_pointer_id" data-content-length="8698" data-accepted-blocks="3"></span><p>PCSX2 – бесплатный кроссплатформенный эмулятор PlayStation 2 с высокой совместимостью. Это единственная программа на русском языке, позволяющая запускать коммерческие игры с разрешением 8192 × 8192 пикселей с фильтрацией текстур и сглаживанием. Рассмотрим, какие возможности предлагает программа, как осуществляется настройка эмулятора, геймпада, иных средств управления, графики.</p>
  384. <p>Официальный сайт приводит следующую информацию: PCSX2 поддерживает 2625 консольных игр, 98% из которых функционируют исправно, остальные 2% нельзя пройти полностью.</p>
  385. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://pcsx2.ru/wp-content/uploads/pcsx2-installer.exe"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать PCSX2</a></p>
  386. <div class="table-of-contents open"><div class="table-of-contents__header"><span class="table-of-contents__hide js-table-of-contents-hide">Содержание</span></div><ol class="table-of-contents__list js-table-of-contents-list">
  387. <li class="level-1"><a href="#vozmozhnosti-programmy">Возможности программы</a></li><li class="level-1"><a href="#kak-ustanovit-po">Как установить ПО</a></li><li class="level-2"><a href="#sistemnye-trebovaniya">Системные требования</a></li><li class="level-1"><a href="#nastroyka-pcsx2">Настройка PCSX2</a></li><li class="level-1"><a href="#kak-zapustit-igru">Как запустить игру</a></li><li class="level-2"><a href="#obraz">Образ</a></li><li class="level-2"><a href="#disk">Диск</a></li><li class="level-1"><a href="#vozmozhnye-problemy">Возможные проблемы</a></li><li class="level-1"><a href="#preimuschestva-i-nedostatki-programmy">Преимущества и недостатки программы</a></li><li class="level-1"><a href="#analogi">Аналоги</a></li></ol></div><h2 id="vozmozhnosti-programmy">Возможности программы</h2>
  388. <p>PCSX2 – наследница лучших традиций PCSX с графическим интерфейсом Qt. Это программа для эмуляции аппаратного обеспечения PlayStation 2 с задействованием виртуальной машины. Она способна управлять ресурсами аппаратных компонентов ПК и выделенной памятью, запускать практически все игры для PS2, в том числе God of War, Final Fantasy, Devil May Cry, с возможностью менять их настройки: разрешение, масштабирование, сохраняться.</p>
  389. <p>Последняя версия PCSX2 поддерживает настройку клавиатуры / джойстика для каждой отдельной игры, серию контроллеров DualShock 4-й и 5-й версий, замену текстур на сторонние, разработанные фанатами. В программе предусмотрено расширение функциональности подключаемыми внешними моделями – плагинами. Например, для обработки звука можно переключаться между тремя плагинами для поиска оптимального звучания.</p>
  390. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://pcsx2.ru/wp-content/uploads/pcsx2-installer.exe"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать PCSX2</a></p>
  391. <h2 id="kak-ustanovit-po">Как установить ПО</h2>
  392. <p>Скачать PCSX2 для Windows 10 и 11 можно по прямой ссылке внизу. Архив занимает менее 20 МБ, поэтому загружать его через торрент не целесообразно. Разработчик предлагает две версии приложения:</p>
  393. <ul>
  394. <li>Stable – стабильная – обновляется реже, но тщательно тестируется.</li>
  395. <li>Nightly – постоянно обновляется, презентует новые функции, из-за недостатка времени для отладки часто тормозит.</li>
  396. </ul>
  397. <p>Мы предлагаем скачать как инсталлятор, так и портативную версию PCSX2 – вместо установки нужно распаковать архив.</p>
  398. <p>Рассмотрим, как установить PCSX2 на примере Stable Installer.</p>
  399. <ol>
  400. <li>Запустите полученный файл, разрешите его выполнение при появлении диалоговых окон от UAC или Защитника Windows.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" fetchpriority="high" decoding="async" class="lazy lazy-hidden aligncenter wp-image-87 size-full" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_155608516.png" alt="Диалоговое окно" width="728" height="561" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_155608516.png 728w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_155608516-300x231.png 300w" sizes="(max-width: 728px) 100vw, 728px" /><meta itemprop="width" content="728"><meta itemprop="height" content="561"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" fetchpriority="high" decoding="async" class="aligncenter wp-image-87 size-full" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_155608516.png" alt="Диалоговое окно" width="728" height="561" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_155608516.png 728w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_155608516-300x231.png 300w" sizes="(max-width: 728px) 100vw, 728px" /><meta itemprop="width" content="728"><meta itemprop="height" content="561"></span></noscript></li>
  401. <li>Выберите способ инсталляции: распаковка портативной версии или установка.Разница:
  402. <ul>
  403. <li>Normal – нужны права администратора, настройки программы хранятся в директории Мои документы\PCSX</li>
  404. <li>Portable – настройки находятся в каталоге с приложением, привилегии администратора не обязательны.</li>
  405. </ul>
  406. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" decoding="async" class="lazy lazy-hidden aligncenter wp-image-90 size-large" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160212286-730x567.png" alt="Способ инсталляции" width="730" height="567" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160212286-730x567.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160212286-300x233.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160212286-768x597.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160212286.png 780w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="567"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" decoding="async" class="aligncenter wp-image-90 size-large" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160212286-730x567.png" alt="Способ инсталляции" width="730" height="567" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160212286-730x567.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160212286-300x233.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160212286-768x597.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160212286.png 780w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="567"></span></noscript></li>
  407. <li>Выберите места, куда нужно поместить ярлыки для запуска приложения: Пуск, Рабочий стол.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-91" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160328991-730x567.png" alt="Выбор места для ярлыков" width="730" height="567" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160328991-730x567.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160328991-300x233.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160328991-768x597.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160328991.png 780w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="567"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" decoding="async" class="aligncenter size-large wp-image-91" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160328991-730x567.png" alt="Выбор места для ярлыков" width="730" height="567" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160328991-730x567.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160328991-300x233.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160328991-768x597.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160328991.png 780w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="567"></span></noscript></li>
  408. <li>Выберите папку для установки PCSX.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-92" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160428368-730x567.png" alt="Папка для установки" width="730" height="567" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160428368-730x567.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160428368-300x233.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160428368-768x597.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160428368.png 780w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="567"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-92" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160428368-730x567.png" alt="Папка для установки" width="730" height="567" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160428368-730x567.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160428368-300x233.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160428368-768x597.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160428368.png 780w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="567"></span></noscript>Эмулятор запускается с окна инсталлятора, если не снять галочку.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-93" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160514002-730x567.png" alt="Конец установки" width="730" height="567" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160514002-730x567.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160514002-300x233.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160514002-768x597.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160514002.png 780w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="567"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-93" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160514002-730x567.png" alt="Конец установки" width="730" height="567" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160514002-730x567.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160514002-300x233.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160514002-768x597.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160514002.png 780w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="567"></span></noscript></li>
  409. </ol>
  410. <blockquote class="warning"><p>Для настройки джойстика подключите его к компьютеру до запуска эмулятора. Если не сделали этого, закройте программу, подсоедините контроллер, затем запустите её обратно.</p></blockquote>
  411. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://pcsx2.ru/wp-content/uploads/pcsx2-installer.exe"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать PCSX2</a></p>
  412. <p>Русификатор не понадобится – интерфейс приложения переведён на русский язык – выберите его из выпадающего списка «Language selector» и кликните «Apply».<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-94" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160605862-730x647.png" alt="Выбор языка" width="730" height="647" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160605862-730x647.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160605862-300x266.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160605862-768x681.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160605862.png 984w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="647"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-94" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160605862-730x647.png" alt="Выбор языка" width="730" height="647" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160605862-730x647.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160605862-300x266.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160605862-768x681.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_160605862.png 984w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="647"></span></noscript></p>
  413. <h3 id="sistemnye-trebovaniya">Системные требования</h3>
  414. <p>Играть в консольные игры через PCSX2 можно даже на слабом ПК. Минимальные системные требования:</p>
  415. <ul>
  416. <li>ОС: Windows 1021H2 (64-разрядная).</li>
  417. <li>ЦП: двухъядерный, с поддержкой инструкций SSE4.1 и гиперпоточности.</li>
  418. <li>ОЗУ: 4 ГБ.</li>
  419. <li>Графика: с поддержкой Direct3D10, OpenGL 3, Vulkan, 2 ГБ.</li>
  420. </ul>
  421. <p>Для комфортной игры нужен компьютер помощнее:</p>
  422. <ol>
  423. <li>ЦП: четырёхядерный, с AVX2 и гиперпоточностью.</li>
  424. <li>ОЗУ: 8 ГБ.</li>
  425. <li>GTX 750 / Radeon HD 7870.</li>
  426. <li>Графика: совместимая с Direct3D10, OpenGL 3, Vulkan, 4 ГБ.</li>
  427. </ol>
  428. <blockquote class="warning"><p>Для установки эмулятора на компьютере нужна библиотека Visual C++ 2019.</p></blockquote>
  429. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://pcsx2.ru/wp-content/uploads/pcsx2-installer.exe"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать PCSX2</a></p>
  430. <h2 id="nastroyka-pcsx2">Настройка PCSX2</h2>
  431. <p>После выбора языка интерфейса укажите каталог с BIOS вашей PS2. Его дамп можно сделать с помощью утилиты BIOS Dumper или скачать с интернета. (брал <a href="https://www.emu-land.net/consoles/ps2/bios">отсюда</a>) Во втором случае распакуйте архив, файл формата BIN поместите в каталог «BIOS» с директории с файлами программы.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-96" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161338639-730x370.png" alt="Распаковка" width="730" height="370" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161338639-730x370.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161338639-300x152.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161338639-768x389.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161338639.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="370"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-96" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161338639-730x370.png" alt="Распаковка" width="730" height="370" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161338639-730x370.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161338639-300x152.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161338639-768x389.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161338639.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="370"></span></noscript></p>
  432. <p>Жмите «Next».<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-97" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161426426-730x598.png" alt="Next" width="730" height="598" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161426426-730x598.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161426426-300x246.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161426426-768x629.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161426426.png 984w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="598"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-97" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161426426-730x598.png" alt="Next" width="730" height="598" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161426426-730x598.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161426426-300x246.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161426426-768x629.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161426426.png 984w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="598"></span></noscript></p>
  433. <p>Выберите BIOS, если их несколько, и запускайте эмулятор.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-98" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161502643-730x598.png" alt="Выберите BIOS" width="730" height="598" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161502643-730x598.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161502643-300x246.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161502643-768x629.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161502643.png 984w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="598"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-98" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161502643-730x598.png" alt="Выберите BIOS" width="730" height="598" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161502643-730x598.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161502643-300x246.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161502643-768x629.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161502643.png 984w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="598"></span></noscript></p>
  434. <p>Закройте консоль.</p>
  435. <p>Вызовите настройки плагина звука.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-99" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161550066-730x438.png" alt="Настройки плагина звука" width="730" height="438" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161550066-730x438.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161550066-300x180.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161550066-768x460.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161550066.png 889w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="438"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-99" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161550066-730x438.png" alt="Настройки плагина звука" width="730" height="438" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161550066-730x438.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161550066-300x180.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161550066-768x460.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161550066.png 889w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="438"></span></noscript></p>
  436. <p>Значение опции «Synchronizing Mode» выберите «Async Mix», иначе звук может опережать видео или отставать от него.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-full wp-image-100" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161632708.png" alt="Async Mix" width="730" height="711" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161632708.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161632708-300x292.png 300w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="711"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-full wp-image-100" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161632708.png" alt="Async Mix" width="730" height="711" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161632708.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161632708-300x292.png 300w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="711"></span></noscript></p>
  437. <p>Осталось настроить джойстик – откройте окно его конфигурации.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-101" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161720270-730x428.png" alt="Настройка джойстика" width="730" height="428" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161720270-730x428.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161720270-300x176.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161720270-768x450.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161720270.png 909w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="428"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-101" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161720270-730x428.png" alt="Настройка джойстика" width="730" height="428" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161720270-730x428.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161720270-300x176.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161720270-768x450.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161720270.png 909w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="428"></span></noscript></p>
  438. <p>Во вкладке «Pad 1» измените горячие клавиши для управления: нажимайте на виртуальную кнопку в окне – затем на закрепляемую за ней физическую на джойстике.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-102" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161755950-730x623.png" alt="Горячие клавиши" width="730" height="623" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161755950-730x623.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161755950-300x256.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161755950-768x655.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161755950.png 1028w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="623"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-102" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161755950-730x623.png" alt="Горячие клавиши" width="730" height="623" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161755950-730x623.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161755950-300x256.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161755950-768x655.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161755950.png 1028w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="623"></span></noscript></p>
  439. <p>Откройте настройки карты памяти, куда будут сохраняться игры.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-full wp-image-103" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161830236.png" alt="Карта памяти" width="628" height="533" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161830236.png 628w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161830236-300x255.png 300w" sizes="(max-width: 628px) 100vw, 628px" /><meta itemprop="width" content="628"><meta itemprop="height" content="533"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-full wp-image-103" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161830236.png" alt="Карта памяти" width="628" height="533" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161830236.png 628w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161830236-300x255.png 300w" sizes="(max-width: 628px) 100vw, 628px" /><meta itemprop="width" content="628"><meta itemprop="height" content="533"></span></noscript></p>
  440. <p>Жмите «Обзор», выберите каталог «memcard» в каталоге с PCSX2. Применяйте настройки.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-104" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161919263-730x492.png" alt="Управление картами" width="730" height="492" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161919263-730x492.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161919263-300x202.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161919263-768x517.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161919263.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="492"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-104" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161919263-730x492.png" alt="Управление картами" width="730" height="492" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161919263-730x492.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161919263-300x202.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161919263-768x517.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_161919263.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="492"></span></noscript></p>
  441. <h2 id="kak-zapustit-igru">Как запустить игру</h2>
  442. <p>Рассмотрим, как пользоваться эмулятором на ПК – запустить игру.</p>
  443. <h3 id="obraz">Образ</h3>
  444. <p>Если вы загрузили игрушку в виде ISO-образа:</p>
  445. <ol>
  446. <li>Нажмите «CDVD» – «ISO».</li>
  447. <li>Затем – «CDVD» – «Выбор ISO» – «Обзор».<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-106" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162557910-730x353.png" alt="Образ" width="730" height="353" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162557910-730x353.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162557910-300x145.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162557910-768x371.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162557910.png 824w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="353"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-106" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162557910-730x353.png" alt="Образ" width="730" height="353" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162557910-730x353.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162557910-300x145.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162557910-768x371.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162557910.png 824w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="353"></span></noscript></li>
  448. <li>Введите путь к файлу или два раза щёлкните по нему.</li>
  449. </ol>
  450. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-107" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162646076-730x411.png" alt="Путь к файлу" width="730" height="411" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162646076-730x411.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162646076-300x169.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162646076-768x433.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162646076.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="411"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-107" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162646076-730x411.png" alt="Путь к файлу" width="730" height="411" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162646076-730x411.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162646076-300x169.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162646076-768x433.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162646076.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="411"></span></noscript></p>
  451. <p>Для старта жмите «Запуск» – «Запустить ISO (все этапы)».<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-full wp-image-108" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162722643.png" alt="Запуск" width="628" height="544" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162722643.png 628w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162722643-300x260.png 300w" sizes="(max-width: 628px) 100vw, 628px" /><meta itemprop="width" content="628"><meta itemprop="height" content="544"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-full wp-image-108" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162722643.png" alt="Запуск" width="628" height="544" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162722643.png 628w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162722643-300x260.png 300w" sizes="(max-width: 628px) 100vw, 628px" /><meta itemprop="width" content="628"><meta itemprop="height" content="544"></span></noscript></p>
  452. <h3 id="disk">Диск</h3>
  453. <p>Если у вас есть дисковод с оригинальным диском: в меню «CDVD» жмите «Использовать плагин», затем вызовите его настройки.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-109" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162911889-730x344.png" alt="CDVD" width="730" height="344" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162911889-730x344.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162911889-300x141.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162911889-768x362.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162911889.png 845w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="344"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-109" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162911889-730x344.png" alt="CDVD" width="730" height="344" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162911889-730x344.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162911889-300x141.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162911889-768x362.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162911889.png 845w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="344"></span></noscript></p>
  454. <p>Выберите физический дисковод в списке и сохраните настройки.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-full wp-image-110" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162955895.png" alt="Физический дисковод" width="628" height="398" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162955895.png 628w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162955895-300x190.png 300w" sizes="(max-width: 628px) 100vw, 628px" /><meta itemprop="width" content="628"><meta itemprop="height" content="398"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-full wp-image-110" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162955895.png" alt="Физический дисковод" width="628" height="398" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162955895.png 628w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_162955895-300x190.png 300w" sizes="(max-width: 628px) 100vw, 628px" /><meta itemprop="width" content="628"><meta itemprop="height" content="398"></span></noscript></p>
  455. <p>Запускайте видеоигру.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-full wp-image-112" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163138914.png" alt="Запуск" width="628" height="550" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163138914.png 628w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163138914-300x263.png 300w" sizes="(max-width: 628px) 100vw, 628px" /><meta itemprop="width" content="628"><meta itemprop="height" content="550"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-full wp-image-112" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163138914.png" alt="Запуск" width="628" height="550" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163138914.png 628w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163138914-300x263.png 300w" sizes="(max-width: 628px) 100vw, 628px" /><meta itemprop="width" content="628"><meta itemprop="height" content="550"></span></noscript></p>
  456. <p>Игры для эмулятора можно скачать с торрент-трекера.</p>
  457. <h2 id="vozmozhnye-problemy">Возможные проблемы</h2>
  458. <p>Эмулятор не всегда работает «гладко». Рассмотрим решение основных проблемы и способы ускорить работу приложения.</p>
  459. <p>PCSX2 не видит геймпад. У ряда джойстиков, например, Logitec, после переключения с режима Xinput в Direct Input геймпад меняет идентификационный номер с 1 на 2. В таких случаях помогает перезагрузка компьютера. Также идентификатор контроллера можно изменить программой JoyIDs.</p>
  460. <p>Для подключения геймпада Dualshock по Блютуз:</p>
  461. <ol>
  462. <li>Подключите контроллер.</li>
  463. <li>Добавьте в Steam стороннюю игру.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-114" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163845684-730x369.png" alt="Сторонняя игра" width="730" height="369" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163845684-730x369.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163845684-300x152.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163845684-768x388.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163845684.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="369"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-114" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163845684-730x369.png" alt="Сторонняя игра" width="730" height="369" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163845684-730x369.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163845684-300x152.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163845684-768x388.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163845684.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="369"></span></noscript></li>
  464. <li>Добавьте PCSX2.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-115" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163912952-730x343.png" alt="Добавьте PCSX2" width="730" height="343" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163912952-730x343.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163912952-300x141.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163912952-768x361.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163912952.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="343"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-115" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163912952-730x343.png" alt="Добавьте PCSX2" width="730" height="343" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163912952-730x343.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163912952-300x141.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163912952-768x361.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163912952.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="343"></span></noscript></li>
  465. <li>Запустите её через Steam.</li>
  466. </ol>
  467. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-116" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163948281-730x358.png" alt="Запуск" width="730" height="358" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163948281-730x358.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163948281-300x147.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163948281-768x377.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163948281.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="358"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-116" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163948281-730x358.png" alt="Запуск" width="730" height="358" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163948281-730x358.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163948281-300x147.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163948281-768x377.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_163948281.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="358"></span></noscript></p>
  468. <p>Файл не найден: путь ISOFileSystem.</p>
  469. <p>Образ по указанному пути на найден – проверьте правильность пути к нему. Также файл может быть повреждённым. При скачивании через торрент перехешируйте раздачу, и торрент-клиент докачает повреждённые фрагменты. Как вариант, проверьте целостность диска, на котором хранится образ. Есть вероятность, что на нём образовались битые секторы.</p>
  470. <p>При использовании спидхаков, например, VU Stealing, в ряде игр не работают скрипты. Откажитесь от «ускорителей».</p>
  471. <p>На экране появились вертикальные полосы.</p>
  472. <ol>
  473. <li>Обновите драйверы видеокарты.</li>
  474. <li>Воспользуйтесь последней версией видео плагина для PCSX2 GSdx или более старой, но стабильной.</li>
  475. </ol>
  476. <p>При появлении горизонтальных полос выберите иные шейдеры (4 варианта) клавишей F7.</p>
  477. <p>Замедленная игра характерна для слабых ПК. В таком случае три выхода:</p>
  478. <ol>
  479. <li>Активировать все спидхаки: «Настройка» – «Настройки эмуляции». Попробуйте различные комбинации.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-118" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_164259181-730x527.png" alt="Настройки" width="730" height="527" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_164259181-730x527.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_164259181-300x216.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_164259181-768x554.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_164259181.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="527"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-118" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_164259181-730x527.png" alt="Настройки" width="730" height="527" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_164259181-730x527.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_164259181-300x216.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_164259181-768x554.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_164259181.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="527"></span></noscript></li>
  480. <li>Обновить железо, если компьютер старый, игра тормозит, выдаёт некомфортное количество fps (ниже 20-24 fps).</li>
  481. <li>Сменить настройки графики.</li>
  482. </ol>
  483. <p>Эмулятор позволяет улучшить графику в ряде игр или оптимизировать работу компьютера.</p>
  484. <p>Для этого откройте настройки плагина видео.</p>
  485. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-120" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_171949513-730x355.png" alt="Настройки" width="730" height="355" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_171949513-730x355.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_171949513-300x146.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_171949513-768x374.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_171949513.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="355"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-120" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_171949513-730x355.png" alt="Настройки" width="730" height="355" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_171949513-730x355.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_171949513-300x146.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_171949513-768x374.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_171949513.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="355"></span></noscript></p>
  486. <p>Далее:</p>
  487. <ul>
  488. <li>Поэкспериментируйте с настройками рендера.</li>
  489. <li>Выберите мощный графический адаптер, если на ПК / ноутбуке установлена пара видеокарт.</li>
  490. <li>Отключите интерлейсинг.</li>
  491. <li>Изменяйте настройки фильтрации текстур, начните с билинейной «Nearest».</li>
  492. <li>Отключите маппинг, анизотропную фильтрацию и прочие опции.</li>
  493. </ul>
  494. <p>Оптимизация снизит качество графики и нагрузку на аппаратные компоненты ПК.</p>
  495. <blockquote class="quote"><p>Для улучшения картинки измените фильтрацию текстур на «Bilinear (PS2)».</p></blockquote>
  496. <p>Чёрный экран.</p>
  497. <p>Некоторые игры не поддерживают эмуляцию. Список проблемных приложений ищите на <a href="https://pcsx2.net/compat">официальном сайте</a>: кликните по «Perfect» и «Playable». С оставшимися могут возникать проблемы.</p>
  498. <p>Не работают читы.</p>
  499. <p>Включите их через пункт меню «Запуск».</p>
  500. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-full wp-image-121" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_172038307.png" alt="Читы" width="628" height="544" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_172038307.png 628w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_172038307-300x260.png 300w" sizes="(max-width: 628px) 100vw, 628px" /><meta itemprop="width" content="628"><meta itemprop="height" content="544"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-full wp-image-121" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_172038307.png" alt="Читы" width="628" height="544" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_172038307.png 628w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_172038307-300x260.png 300w" sizes="(max-width: 628px) 100vw, 628px" /><meta itemprop="width" content="628"><meta itemprop="height" content="544"></span></noscript></p>
  501. <p>Поместите файл формата PNACH в каталог Cheats.</p>
  502. <blockquote class="info"><p>Можете создать пустой текстовый документ и переименовать его.</p></blockquote>
  503. <p>Откройте файл через блокнот, введите нужные читы и сохраните изменения.</p>
  504. <p>Читы можно найти на сайте gamehacking.org, при поиске укажите формат «PCSX2».</p>
  505. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-122" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_172122423-730x578.png" alt="Читы" width="730" height="578" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_172122423-730x578.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_172122423-300x238.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_172122423-768x608.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_172122423.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="578"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-122" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_172122423-730x578.png" alt="Читы" width="730" height="578" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_172122423-730x578.png 730w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_172122423-300x238.png 300w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_172122423-768x608.png 768w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_172122423.png 1063w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="578"></span></noscript></p>
  506. <h2 id="preimuschestva-i-nedostatki-programmy">Преимущества и недостатки программы</h2>
  507. <p>Плюсы PCSX2:</p>
  508. <ul>
  509. <li>Работа с различными графическими технологиями: OpenGL, DirectX.</li>
  510. <li>Отдельные настройки для каждой игрушки.</li>
  511. <li>Поддержка контроллеров DualShock 4, DualSense.</li>
  512. <li>Поддержка 98% игр для PlayStation.</li>
  513. <li>Тёмная тема оформления.</li>
  514. <li>Бесплатное распространение.</li>
  515. <li>Запуск игр с ISO и оригинальных дисков.</li>
  516. </ul>
  517. <p>Недостатки:</p>
  518. <ul>
  519. <li>Стабильные версии выходят редко.</li>
  520. </ul>
  521. <h2 id="analogi">Аналоги</h2>
  522. <p>PCSX2 – лучший эмулятор PlayStation для компьютера, однако у него есть конкуренты.</p>
  523. <p>Play! – кроссплатформенный эмулятор с поддержкой 2355 игр. В программе минимум настроек, она не требует BIOS.</p>
  524. <p>PCSX-Reloaded – бесплатный аналог PCSX2 с открытыми исходниками и поддержкой плагинов.</p>
  525. <p>RomStation – эмулятор разных игровых консолей: PS2, PS, Nintendo, SNES, позволяющий играть в онлайн-игры.</p>
  526. <p>RPCS3 – один из немногих рабочих эмуляторов PS3.</p>
  527. <p>PCSX2 позволяет бесплатно насладиться геймплеем игр, окунуться в виртуальные миры, которыми восхищались геймеры в восхищаются третье десятилетие, на компьютере с устаревшим железом.</p>
  528. <p><iframe class="lazy lazy-hidden" loading="lazy" title="Настройка эмулятора PCSX2 1.6.0 (Настройка по шагам)." width="730" height="411"  data-lazy-type="iframe" data-src="https://www.youtube.com/embed/8Yrj0P8qQQE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><noscript><iframe loading="lazy" title="Настройка эмулятора PCSX2 1.6.0 (Настройка по шагам)." width="730" height="411" src="https://www.youtube.com/embed/8Yrj0P8qQQE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></noscript></p><script>
  529. window.jsInputerLaunch = 15;
  530. if (typeof launchAsyncFunctionLauncher === "undefined") {
  531.    function launchAsyncFunctionLauncher() {
  532.        if (typeof asyncFunctionLauncher !== "undefined" && typeof asyncFunctionLauncher === "function") {
  533.            asyncFunctionLauncher();
  534.        } else {
  535.            setTimeout(function () {
  536.                launchAsyncFunctionLauncher();
  537.            }, 100)
  538.        }
  539.    }
  540. }
  541. launchAsyncFunctionLauncher();
  542. </script><script>
  543. var cachedBlocksArray = [];
  544. </script> </div><!-- .entry-content -->
  545.  
  546. </article>
  547.  
  548.  
  549. <div class="social-buttons"><span class="social-button social-button--vkontakte " data-social="vkontakte"></span><span class="social-button social-button--facebook " data-social="facebook"></span><span class="social-button social-button--telegram " data-social="telegram"></span><span class="social-button social-button--odnoklassniki " data-social="odnoklassniki"></span><span class="social-button social-button--twitter " data-social="twitter"></span><span class="social-button social-button--whatsapp " data-social="whatsapp"></span></div>
  550.  
  551. <meta itemprop="author" content="malostran">
  552. <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://pcsx2.ru/" content="PCSX2 &#8211; эмулятор игровой приставки Sony PlayStation 2">
  553. <meta itemprop="dateModified" content="2022-12-21">
  554. <meta itemprop="datePublished" content="2022-07-09T13:16:27+03:00">
  555. <div itemprop="publisher" itemscope itemtype="https://schema.org/Organization" style="display: none;"><div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" src="https://pcsx2.ru/wp-content/uploads/2022/12/imgonline-com-ua-resize-0tdlaue64gqrzu.png" alt="PCSX2"></div><meta itemprop="name" content="PCSX2"><meta itemprop="telephone" content="PCSX2"><meta itemprop="address" content="https://pcsx2.ru"></div>
  556.        </main><!-- #main -->
  557.    </div><!-- #primary -->
  558.  
  559.    
  560. <aside id="secondary" class="widget-area" itemscope itemtype="http://schema.org/WPSideBar">
  561.  
  562. <div id="custom_html-2" class="widget_text widget widget_custom_html"><div class="widget-header">PCSX2</div><div class="textwidget custom-html-widget"><strong>Разработчик:</strong> Linuzappz, Zerofrog<br/>
  563. <strong>Тип лицензии:</strong> Бесплатная<br/>
  564. <strong>Текущая версия:</strong> 1.6.0<br/>
  565. <strong>Обновлено:</strong> 07.05.2020<br/>
  566. <strong>Размер:</strong> 6.9Mb<br/>
  567. <strong>Формат:</strong> .exe <br/>
  568. <strong>Операционная система:</strong> Windows 10, 8, 7, Vista, XP<br/>
  569. <strong>Язык:</strong> Русский<br/>
  570. <strong>Категория:</strong> Эмуляторы</div></div><div id="custom_html-3" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://pcsx2.ru/wp-content/uploads/pcsx2-installer.exe"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать PCSX2</a></p></div></div><div id="wpshop_widget_articles-2" class="widget widget_wpshop_widget_articles"><div class="widget-header">Инструкции</div><div class="widget-articles">
  571. <article class="post-card post-card--small ">
  572.            <div class="post-card__thumbnail">
  573.            <a href="https://pcsx2.ru/instruktsii/god-of-war-na-pcsx2/">
  574.                <div class="post-card__icon">
  575.                    <img width="100" height="100" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_174323808-100x100.png" class="lazy lazy-hidden attachment-yelly_square size-yelly_square wp-post-image" alt="God Of War" decoding="async" loading="lazy" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_174323808-100x100.png 100w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_174323808-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /><noscript><img width="100" height="100" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_174323808-100x100.png" class="lazy lazy-hidden attachment-yelly_square size-yelly_square wp-post-image" alt="God Of War" decoding="async" loading="lazy" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_174323808-100x100.png 100w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_174323808-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /><noscript><img width="100" height="100" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_174323808-100x100.png" class="attachment-yelly_square size-yelly_square wp-post-image" alt="God Of War" decoding="async" loading="lazy" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_174323808-100x100.png 100w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_174323808-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /></noscript></noscript>                </div>
  576.            </a>
  577.        </div>
  578.    
  579.    <div class="post-card__body">
  580.        <div class="post-card__title"><a href="https://pcsx2.ru/instruktsii/god-of-war-na-pcsx2/">God of War на PCSX2</a></div>
  581.  
  582.        
  583.                    <div class="post-card__meta">
  584.                                <span class="post-card__views">7.9k.</span>            </div>
  585.        
  586.            </div>
  587. </article>
  588. <article class="post-card post-card--small ">
  589.            <div class="post-card__thumbnail">
  590.            <a href="https://pcsx2.ru/instruktsii/emulyator-pcsx2-na-android/">
  591.                <div class="post-card__icon">
  592.                    <img width="100" height="100" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_175926389-100x100.png" class="lazy lazy-hidden attachment-yelly_square size-yelly_square wp-post-image" alt="" decoding="async" loading="lazy" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_175926389-100x100.png 100w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_175926389-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /><noscript><img width="100" height="100" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_175926389-100x100.png" class="lazy lazy-hidden attachment-yelly_square size-yelly_square wp-post-image" alt="" decoding="async" loading="lazy" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_175926389-100x100.png 100w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_175926389-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /><noscript><img width="100" height="100" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_175926389-100x100.png" class="attachment-yelly_square size-yelly_square wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_175926389-100x100.png 100w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_175926389-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /></noscript></noscript>                </div>
  593.            </a>
  594.        </div>
  595.    
  596.    <div class="post-card__body">
  597.        <div class="post-card__title"><a href="https://pcsx2.ru/instruktsii/emulyator-pcsx2-na-android/">Эмулятор PCSX2 на Андроид</a></div>
  598.  
  599.        
  600.                    <div class="post-card__meta">
  601.                                <span class="post-card__views">7.6k.</span>            </div>
  602.        
  603.            </div>
  604. </article>
  605. <article class="post-card post-card--small ">
  606.            <div class="post-card__thumbnail">
  607.            <a href="https://pcsx2.ru/instruktsii/bios-ps2-dlya-pcsx2/">
  608.                <div class="post-card__icon">
  609.                    <img width="100" height="100" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_173248226-100x100.png" class="lazy lazy-hidden attachment-yelly_square size-yelly_square wp-post-image" alt="Настройка" decoding="async" loading="lazy" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_173248226-100x100.png 100w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_173248226-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /><noscript><img width="100" height="100" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_173248226-100x100.png" class="lazy lazy-hidden attachment-yelly_square size-yelly_square wp-post-image" alt="Настройка" decoding="async" loading="lazy" srcset="" data-srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_173248226-100x100.png 100w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_173248226-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /><noscript><img width="100" height="100" src="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_173248226-100x100.png" class="attachment-yelly_square size-yelly_square wp-post-image" alt="Настройка" decoding="async" loading="lazy" srcset="https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_173248226-100x100.png 100w, https://pcsx2.ru/wp-content/uploads/2022/12/izobrazhenie_2022-12-20_173248226-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /></noscript></noscript>                </div>
  610.            </a>
  611.        </div>
  612.    
  613.    <div class="post-card__body">
  614.        <div class="post-card__title"><a href="https://pcsx2.ru/instruktsii/bios-ps2-dlya-pcsx2/">BIOS PS2 для PCSX2</a></div>
  615.  
  616.        
  617.                    <div class="post-card__meta">
  618.                                <span class="post-card__views">17.9k.</span>            </div>
  619.        
  620.            </div>
  621. </article></div></div>
  622. </aside><!-- #secondary -->
  623.  
  624.    
  625.  
  626.    </div><!--.site-content-inner-->
  627.  
  628.    
  629. </div><!--.site-content-->
  630.  
  631.    
  632.    
  633.  
  634. <div class="site-footer-container">
  635.  
  636.    
  637.  
  638.    <div class="footer-navigation fixed" itemscope itemtype="http://schema.org/SiteNavigationElement">
  639.        <div class="main-navigation-inner fixed">
  640.            <div class="menu-menyu-v-futere-container"><ul id="footer_menu" class="menu"><li id="menu-item-45" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-45"><a href="https://pcsx2.ru/o-sayte/">О сайте</a></li>
  641. <li id="menu-item-44" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-44"><a href="https://pcsx2.ru/kontakty/">Контакты</a></li>
  642. <li id="menu-item-46" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-46"><a rel="privacy-policy" href="https://pcsx2.ru/privacy-policy/">Политика конфиденциальности</a></li>
  643. </ul></div>        </div>
  644.    </div><!--footer-navigation-->
  645.  
  646.  
  647.    <footer id="colophon" class="site-footer full" itemscope itemtype="http://schema.org/WPFooter">
  648.        <div class="site-footer-inner fixed">
  649.  
  650.            
  651.            
  652. <div class="footer-bottom">
  653.    <div class="footer-info">
  654.        <div class="footer-copyright">© 2022-2024 Не является официальным сайтом. Все товарные знаки принадлежат их владельцам.</div>
  655.        <div class="footer-under-copyright"></div>
  656.        </div>
  657.  
  658.    </div>
  659.        </div>
  660.    </footer><!--.site-footer-->
  661. </div>
  662.  
  663.  
  664.            <button type="button" class="scrolltop js-scrolltop"></button>
  665.    
  666.    
  667. </div><!-- #page -->
  668.  
  669. <script>var pseudo_links = document.querySelectorAll(".pseudo-clearfy-link");for (var i=0;i<pseudo_links.length;i++ ) { pseudo_links[i].addEventListener("click", function(e){   window.open( e.target.getAttribute("data-uri") ); }); }</script><script>
  670. if (typeof rb_ajaxurl==='undefined') {var rb_ajaxurl = 'https://pcsx2.ru/wp-admin/admin-ajax.php';}
  671. if (typeof gather_content==='undefined') {var gather_content = true;}
  672. if (typeof endedSc==='undefined') {var endedSc = false;}
  673. if (typeof endedCc==='undefined') {var endedCc = false;}
  674. if (typeof usedAdBlocksArray==='undefined') {var usedAdBlocksArray = [];}
  675. if (typeof usedBlockSettingArrayIds==='undefined') {var usedBlockSettingArrayIds = [];}
  676. if (typeof sameElementAfterWidth==='undefined') {var sameElementAfterWidth = false;}
  677. if (typeof sameElementAfterExcClassId==='undefined') {var sameElementAfterExcClassId = false;}
  678. if (typeof sameElementAfterFromConstruction==='undefined') {var sameElementAfterFromConstruction = false;}
  679. if (typeof rb_tempElement_check==='undefined') {var rb_tempElement_check = false;}
  680. if (typeof rb_tempElement==='undefined') {var rb_tempElement = null;}
  681. if (typeof window.jsInputerLaunch==='undefined') {window.jsInputerLaunch = -1;}
  682.  
  683. function launchUpdateRbDisplays() {
  684.    if ((typeof updateRbDisplays !== 'undefined')&&(typeof updateRbDisplays === 'function')) {
  685.        updateRbDisplays();
  686.    } else {
  687.        setTimeout(function () {
  688.            launchUpdateRbDisplays();
  689.        }, 200);
  690.    }
  691. }
  692.  
  693. /* "sc" in variables - mark for shortcode variable */
  694. function shortcodesInsert() {
  695.    let gatheredBlocks = document.querySelectorAll('.percentPointerClass.scMark'),
  696.        scBlockId = -1,
  697.        scAdId = -1,
  698.        blockStatus = '',
  699.        dataFull = -1,
  700.        gatheredBlockChild,
  701.        okStates = ['done','refresh-wait','no-block','fetched'],
  702.        scContainer,
  703.        sci,
  704.        i1 = 0,
  705.        skyscraperCheck = [],
  706.        skyscraperStatus = false,
  707.        splitedSkyscraper = [],
  708.        gatheredBlockChildSkyParts = [],
  709.        stickyStatus = false,
  710.        stickyCheck = [],
  711.        stickyFixedStatus = false,
  712.        stickyFixedCheck = [],
  713.        overflowCheck = [],
  714.        overflowStatus = false,
  715.        repeatableIdentifier = "",
  716.        dataCidIdentifier = null,
  717.        divCidElement = '';
  718.  
  719.    if (typeof scArray !== 'undefined') {
  720.        if (scArray&&scArray.length > 0&&gatheredBlocks&&gatheredBlocks.length > 0&&typeof window.rulvW5gntb !== 'undefined') {
  721.            dataCidIdentifier = window.rulvW5gntb;
  722.            for (let i = 0; i < gatheredBlocks.length; i++) {
  723.                gatheredBlockChild = gatheredBlocks[i].children[0];
  724.                if (!gatheredBlockChild) {
  725.                    continue;
  726.                }
  727.                scAdId = -3;
  728.                blockStatus = null;
  729.                scContainer = null;
  730.                dataFull = -1;
  731.                skyscraperStatus = false;
  732.                splitedSkyscraper = [];
  733.                gatheredBlockChildSkyParts = [];
  734.                stickyStatus = false;
  735.                stickyCheck = [];
  736.                stickyFixedStatus = false;
  737.                stickyFixedCheck = [];
  738.                repeatableIdentifier = "";
  739.                divCidElement = null;
  740.  
  741.                scAdId = gatheredBlockChild.getAttribute('data-aid');
  742.                scBlockId = gatheredBlockChild.getAttribute('data-id');
  743.                blockStatus = gatheredBlockChild.getAttribute('data-state');
  744.                dataFull = gatheredBlockChild.getAttribute('data-full');
  745.  
  746.                if (scBlockId&&scAdId > 0) {
  747.                    sci = -1;
  748.                    for (i1 = 0; i1 < scArray.length; i1++) {
  749.                        if (scBlockId == scArray[i1]['blockId']&&scAdId == scArray[i1]['adId']) {
  750.                            sci = i1;
  751.                        }
  752.                    }
  753.  
  754.                    if (sci > -1) {
  755.                        if (blockStatus&&okStates.includes(blockStatus)) {
  756.                            if (blockStatus=='no-block') {
  757.                                gatheredBlockChild.innerHTML = '';
  758.                            } else if ((blockStatus=='fetched'&&dataFull==1)||!['no-block','fetched'].includes(blockStatus)) {
  759.                                for (let cl1 = 0; cl1 < gatheredBlocks[i].classList.length; cl1++) {
  760.                                    if (gatheredBlocks[i].classList[cl1].includes("repeatable-mark")) {
  761.                                        repeatableIdentifier = gatheredBlocks[i].classList[cl1];
  762.                                    }
  763.                                }
  764.  
  765.                                if (repeatableIdentifier) {
  766.                                    divCidElement = document.querySelectorAll(".percentPointerClass.scMark."+repeatableIdentifier+' div[data-cid="'+dataCidIdentifier+'"]');
  767.                                } else {
  768.                                    divCidElement = gatheredBlockChild.querySelectorAll('div[data-cid="'+dataCidIdentifier+'"]');
  769.                                }
  770.  
  771.                                if (divCidElement&&divCidElement.length > 0) {
  772.                                    for (let i2 = 0; i2 < divCidElement.length; i2++) {
  773.                                        jQuery(divCidElement[i2]).html(scArray[sci]['text']);
  774.                                    }
  775.                                } else {
  776.                                    jQuery(gatheredBlockChild).html(scArray[sci]['text']);
  777.                                }
  778.                                launchUpdateRbDisplays();
  779.                            }
  780.                            if (blockStatus!='fetched'||(blockStatus=='fetched'&&dataFull==1)) {
  781.                                for (i1 = 0; i1 < scArray.length; i1++) {
  782.                                    if (scBlockId == scArray[i1]['blockId']) {
  783.                                        scArray.splice(i1, 1);
  784.                                        i1--;
  785.                                    }
  786.                                }
  787.                                gatheredBlocks[i].classList.remove('scMark');
  788.                            }
  789.                        }
  790.                    }
  791.                } else if (scBlockId&&scAdId < 1&&['no-block','fetched'].includes(blockStatus)) {
  792.                    for (i1 = 0; i1 < scArray.length; i1++) {
  793.                        if (scBlockId == scArray[i1]['blockId']) {
  794.                            scArray.splice(i1, 1);
  795.                            i1--;
  796.                        }
  797.                    }
  798.                    gatheredBlocks[i].classList.remove('scMark');
  799.                }
  800.            }
  801.        } else if (!scArray||(scArray&&scArray.length < 1)) {
  802.            endedSc = true;
  803.        }
  804.    } else {
  805.        endedSc = true;
  806.    }
  807.  
  808.    if (!endedSc) {
  809.        setTimeout(function () {
  810.            shortcodesInsert();
  811.        }, 200);
  812.    }
  813. }
  814.  
  815. function clearUnsuitableCache(cuc_cou) {
  816.    let scAdId = -1;
  817.    let ccRepeat = false;
  818.  
  819.    let gatheredBlocks = document.querySelectorAll('.percentPointerClass .' + block_classes.join(', .percentPointerClass .'));
  820.  
  821.    if (gatheredBlocks&&gatheredBlocks.length > 0) {
  822.        for (let i = 0; i < gatheredBlocks.length; i++) {
  823.            if (gatheredBlocks[i]['dataset']['aid']&&gatheredBlocks[i]['dataset']['aid'] < 0) {
  824.                if ((gatheredBlocks[i]['dataset']["state"]=='no-block')||(['done','fetched','refresh-wait'].includes(gatheredBlocks[i]['dataset']["state"]))) {
  825.                    gatheredBlocks[i]['innerHTML'] = '';
  826.                } else {
  827.                    ccRepeat = true;
  828.                }
  829.            } else if (!gatheredBlocks[i]['dataset']['aid']) {
  830.                ccRepeat = true;
  831.            }
  832.        }
  833.        if (cuc_cou < 50) {
  834.            if (ccRepeat) {
  835.                setTimeout(function () {
  836.                    clearUnsuitableCache(cuc_cou+1);
  837.                }, 100);
  838.            }
  839.        } else {
  840.            endedCc = true;
  841.        }
  842.    } else {
  843.        endedCc = true;
  844.    }
  845. }
  846.  
  847. function blocksRepositionUse(containerString, blType, searchType, contentElement) {
  848.    let blocksInContainer;
  849.    let blLocal = blType;
  850.    let currentBlock;
  851.    let currentBlockId;
  852.    let currentBlockPosition;
  853.    let currentContainer;
  854.    let i = 0;
  855.    let j = 0;
  856.    let blockStrJs = ' .percentPointerClass.marked';
  857.    let blockStrPhp = ' .percentPointerClass:not(.marked)';
  858.    let blockStr = ' .percentPointerClass';
  859.    let checkPointer = null;
  860.    let blockRepeatEnd = false;
  861.  
  862.    if (searchType) {
  863.        if (searchType == 'marked') {
  864.            while (!blockRepeatEnd) {
  865.                blLocal = blLocal.parentElement;
  866.                if (blLocal) {
  867.                    checkPointer = blLocal.querySelector("#content_pointer_id");
  868.                    if (!checkPointer) {
  869.                        blocksInContainer = jQuery(blLocal).parent(containerString);
  870.                        if (blocksInContainer && blocksInContainer.length > 0) {
  871.                            /* checkPointer = blocksInContainer.querySelector("#content_pointer_id"); */
  872.                            checkPointer = jQuery(blocksInContainer).find("#content_pointer_id");
  873.                            if (checkPointer && checkPointer.length > 0) {
  874.                                blocksInContainer = null;
  875.                            }
  876.                            blockRepeatEnd = true;
  877.                        }
  878.                    } else {
  879.                        blockRepeatEnd = true
  880.                    }
  881.                } else {
  882.                    blockRepeatEnd = true
  883.                }
  884.            }
  885.            /* blocksInContainer = jQuery(blType).parent(containerString); */
  886.            if (blocksInContainer&&blocksInContainer.length > 0) {
  887.                /* blocksInContainer.parentNode.insertBefore(rb_tempElement, blocksInContainer); */
  888.                blocksInContainer[0].parentNode.insertBefore(rb_tempElement, blocksInContainer[0]);
  889.  
  890.                sameElementAfterExcClassId = false;
  891.                return blocksInContainer[0];
  892.            }
  893.            return blType;
  894.        } else if (searchType == 'non-marked') {
  895.            blocksInContainer = document.querySelectorAll(blType + containerString + blockStrPhp);
  896.            if (blocksInContainer && blocksInContainer.length > 0 && usedBlockSettingArray && usedBlockSettingArray.length > 0) {
  897.                for (i = 0; i < blocksInContainer.length; i++) {
  898.                    currentBlock = blocksInContainer[i];
  899.                    currentBlockId = currentBlock.querySelector('.' + block_classes.join(', .')).getAttribute('data-id');
  900.                    currentContainer = null;
  901.                    for (j = 0; j < usedBlockSettingArray.length; i++) {
  902.                        if (usedBlockSettingArray[i]['id'] == currentBlockId) {
  903.                            currentBlockPosition = usedBlockSettingArray[i]['elementPosition'];
  904.                            currentContainer = currentBlock.closest(blType + containerString);
  905.                            if (currentBlockPosition == 0) {
  906.                                currentContainer.parentNode.insertBefore(currentBlock, currentContainer);
  907.                            } else {
  908.                                currentContainer.parentNode.insertBefore(currentBlock, currentContainer.nextSibling);
  909.                            }
  910.                            break;
  911.                        }
  912.                    }
  913.                }
  914.            }
  915.        }
  916.    }
  917.    return false;
  918. }
  919.  
  920. function createStyleElement(blockNumber, localElementCss) {
  921.    let htmlToAdd = '';
  922.    let marginString;
  923.    let textAlignString;
  924.    let contPoi;
  925.    let emptyValues = false;
  926.    let elementToAddStyleLocal = document.querySelector('#blocksAlignStyle');
  927.    if (!elementToAddStyleLocal) {
  928.        contPoi = document.querySelector('#content_pointer_id');
  929.        if (!contPoi) {
  930.            return false;
  931.        }
  932.  
  933.        elementToAddStyleLocal = document.createElement('style');
  934.        elementToAddStyleLocal.setAttribute('id', 'blocksAlignStyle');
  935.        contPoi.parentNode.insertBefore(elementToAddStyleLocal, contPoi);
  936.    }
  937.  
  938.    switch (localElementCss) {
  939.        case 'left':
  940.            emptyValues = false;
  941.            marginString = '0 auto 0 0';
  942.            textAlignString = 'left';
  943.            break;
  944.        case 'right':
  945.            emptyValues = false;
  946.            marginString = '0 0 0 auto';
  947.            textAlignString = 'right';
  948.            break;
  949.        case 'center':
  950.            emptyValues = false;
  951.            marginString = '0 auto';
  952.            textAlignString = 'center';
  953.            break;
  954.        case 'default':
  955.            emptyValues = true;
  956.            marginString = 'default';
  957.            textAlignString = 'default';
  958.            /** here will be css */
  959.            break;
  960.    }
  961.    if (!emptyValues) {
  962.        htmlToAdd = '.percentPointerClass  > *[data-id="'+blockNumber+'"] {\n' +
  963.            '    margin: '+marginString+';\n' +
  964.            '}\n';
  965.    }
  966.  
  967.    elementToAddStyleLocal.innerHTML += htmlToAdd;
  968.    return textAlignString;
  969. }
  970.  
  971. function initTargetToInsert(position, type, currentElement) {
  972.    let posCurrentElement;
  973.    let usedElement;
  974.    if (type == 'element') {
  975.        if (position == 0) {
  976.            posCurrentElement = currentElement;
  977.            if (!(typeof obligatoryMargin!=='undefined'&&obligatoryMargin===1)) {
  978.                currentElement.classList.add('rfwp_removedMarginTop');
  979.            }
  980.        } else {
  981.            posCurrentElement = currentElement.nextSibling;
  982.            if (!(typeof obligatoryMargin!=='undefined'&&obligatoryMargin===1)) {
  983.                currentElement.classList.add('rfwp_removedMarginBottom');
  984.            }
  985.        }
  986.        currentElement.style.clear = 'both';
  987.    } else {
  988.        usedElement = currentElement;
  989.        if (position == 0) {
  990.            posCurrentElement = usedElement;
  991.        } else {
  992.            posCurrentElement = usedElement.nextSibling;
  993.        }
  994.    }
  995.    return posCurrentElement;
  996. }
  997.  
  998. function checkAdsWidth(content_pointer, posCurrentElement, currentElement) {
  999.    let widthChecker = document.querySelector('#widthChecker');
  1000.    let widthCheckerStyle = null;
  1001.    let content_pointerStyle = getComputedStyle(content_pointer);
  1002.    /* let getPositionForTempElement = null;
  1003.    let testImgDetected = false;
  1004.    let testImg;
  1005.    let testImageCompWidth;
  1006.    let testImgCou = 0
  1007.    let figureChilds;
  1008.    let figureComWidth;
  1009.    let fcCou = 0; */
  1010.    let content = content_pointer.parentElement;
  1011.  
  1012.    if (!widthChecker) {
  1013.        widthChecker = document.createElement("div");
  1014.        widthChecker.setAttribute('id','widthChecker');
  1015.        widthChecker.style.display = 'flex';
  1016.    }
  1017.  
  1018.    if (content) {
  1019.        posCurrentElement = initTargetToInsert(posCurrentElement, 'term', currentElement);
  1020.        currentElement.parentNode.insertBefore(widthChecker, posCurrentElement);
  1021.        widthCheckerStyle = getComputedStyle(widthChecker);
  1022.        /* testImg = currentElement.previousSibling;
  1023.        if (testImg) {
  1024.            while (!testImgDetected&&testImgCou<4) {
  1025.                if (testImg&&testImg.nodeName.toLowerCase() === 'figure') {
  1026.                    figureComWidth = getComputedStyle(testImg);
  1027.                    figureComWidth = parseInt(figureComWidth.width);
  1028.                    figureChilds = testImg.childNodes;
  1029.                    if (figureChilds&&figureChilds.length > 0) {
  1030.                        while (!testImgDetected&&figureChilds[fcCou]) {
  1031.                            if (figureChilds[fcCou] instanceof HTMLImageElement) {
  1032.                                testImgDetected = true;
  1033.                                testImageCompWidth = getComputedStyle(figureChilds[fcCou]);
  1034.                                testImageCompWidth = parseInt(testImageCompWidth.width);
  1035.                                console.log('img_f_w:'+figureComWidth+'; img_w:'+testImageCompWidth+';');
  1036.                            }
  1037.                            fcCou++;
  1038.                        }
  1039.                    }
  1040.                }
  1041.                if (testImg instanceof HTMLImageElement) {
  1042.                    testImgDetected = true;
  1043.                    testImageCompWidth = getComputedStyle(testImg);
  1044.                    testImageCompWidth = parseInt(testImageCompWidth.width);
  1045.                    console.log('img_w:'+testImageCompWidth+';');
  1046.                }
  1047.                if (!testImg.previousSibling) {
  1048.                    break;
  1049.                }
  1050.                testImg = testImg.previousSibling;
  1051.                testImgCou++;
  1052.            }
  1053.        }
  1054.        console.log('cp_w:'+parseInt(content_pointerStyle.width)+'; wc_w:'+parseInt(widthCheckerStyle.width)+';'); */
  1055.        if (parseInt(widthCheckerStyle.width) >= (parseInt(content_pointerStyle.width) - 50)) {
  1056.            return true;
  1057.        }
  1058.    }
  1059.    currentElement.parentNode.insertBefore(rb_tempElement, currentElement.nextSibling);
  1060.    rb_tempElement_check = true;
  1061.    return false;
  1062. }
  1063.  
  1064. /* function currentElementReceiver(revert, curSum, elList, currentElement) {
  1065.    let origCurrentElement = currentElement;
  1066.    let content_pointer = document.querySelector("#content_pointer_id");
  1067.    let sameElementAfterWidth = false;
  1068.    let testCou = 0;
  1069.    while (elList[curSum]&&sameElementAfterWidth==false&&testCou < 5) {
  1070.        currentElement = elList[curSum];
  1071.        try {
  1072.            sameElementAfterWidth=true;
  1073.            sameElementAfterWidth = checkAdsWidth(content_pointer, 0, currentElement);
  1074.        } catch (ex) {
  1075.            console.log(ex.message);
  1076.        }
  1077.        revert? curSum--: curSum++;
  1078.        testCou++;
  1079.    }
  1080.    return currentElement?currentElement:origCurrentElement;
  1081. } */
  1082.  
  1083. function currentElementReceiverSpec(revert, curSum, elList, currentElement) {
  1084.    let origCurrentElement = currentElement;
  1085.    let content_pointer = document.querySelector("#content_pointer_id"); /* orig */
  1086.    let sameElementAfterWidth = false;
  1087.    let testCou = 0;
  1088.    while (elList[curSum]&&sameElementAfterWidth==false&&testCou < 5) {
  1089.        currentElement = elList[curSum]['element'];
  1090.        try {
  1091.            sameElementAfterWidth=true;
  1092.            sameElementAfterWidth = checkAdsWidth(content_pointer, 0, currentElement);
  1093.        } catch (ex) {
  1094.            console.log(ex.message);
  1095.        }
  1096.        revert? curSum--: curSum++;
  1097.        testCou++;
  1098.    }
  1099.    return currentElement?currentElement:origCurrentElement;
  1100. }
  1101.  
  1102. function excIdClUnpacker() {
  1103.    let excArr = [],
  1104.        cou = 0,
  1105.        currExcStr = '',
  1106.        curExcFirst = '';
  1107.    excArr['id'] = [];
  1108.    excArr['class'] = [];
  1109.    excArr['tag'] = [];
  1110.    if (excIdClass&&excIdClass.length > 0) {
  1111.        while (excIdClass[cou]) {
  1112.            currExcStr = excIdClass[cou];
  1113.            if (currExcStr.length > 0) {
  1114.                curExcFirst = currExcStr.substring(0,1);
  1115.                switch (curExcFirst) {
  1116.                    case '#':
  1117.                        if (currExcStr.length > 1) {
  1118.                            currExcStr = currExcStr.substring(1);
  1119.                            excArr['id'].push(currExcStr);
  1120.                        }
  1121.                        break;
  1122.                    case '.':
  1123.                        if (currExcStr.length > 1) {
  1124.                            currExcStr = currExcStr.substring(1);
  1125.                            excArr['class'].push(currExcStr);
  1126.                        }
  1127.                        break;
  1128.                    default:
  1129.                        excArr['tag'].push(currExcStr);
  1130.                        break;
  1131.                }
  1132.                cou++;
  1133.            }
  1134.        }
  1135.    }
  1136.    return excArr;
  1137. }
  1138.  
  1139. function asyncBlocksInsertingFunction(blockSettingArray) {
  1140.    try {
  1141.        var content_pointer = document.querySelector("#content_pointer_id"); /* orig */
  1142.        var parent_with_content = content_pointer.parentElement;
  1143.        var lordOfElements = parent_with_content;
  1144.        parent_with_content = parent_with_content.parentElement;
  1145.        var newElement = document.createElement("div");
  1146.        var elementToAdd;
  1147.        var elementToAddStyle;
  1148.        var poolbackI = 0;
  1149.        var counter = 0;
  1150.        var currentElement;
  1151.        var repeatableCurrentElement;
  1152.        var repeatableSuccess;
  1153.        var reCou;
  1154.        var curFirstPlace;
  1155.        var curElementCount;
  1156.        var curElementStep;
  1157.        var backElement = 0;
  1158.        var sumResult = 0;
  1159.        var curSumResult = 0;
  1160.        var repeat = false;
  1161.        var currentElementChecker = false;
  1162.        let containerFor6th = [];
  1163.        let containerFor7th = [];
  1164.        var posCurrentElement;
  1165.        var block_number;
  1166.        let contentLength = content_pointer.getAttribute('data-content-length');
  1167.        let rejectedBlocks = content_pointer.getAttribute('data-rejected-blocks');
  1168.        if (rejectedBlocks&&rejectedBlocks.length > 0) {
  1169.            rejectedBlocks = rejectedBlocks.split(',');
  1170.        }
  1171.        let widthCheck = false;
  1172.        let currentElementList;
  1173.        var testElement1 = null;
  1174.        var termorarity_parent_with_content = parent_with_content;
  1175.        var termorarity_parent_with_content_length = 0;
  1176.        var headersList = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
  1177.        for (var hc1 = 0; hc1 < headersList.length; hc1++) {
  1178.            termorarity_parent_with_content_length += termorarity_parent_with_content.getElementsByTagName(headersList[hc1]).length;
  1179.        }
  1180.  
  1181.        let detailedElementList;
  1182.        let ExcStrCou = 1;
  1183.        let detailedQueryString;
  1184.        let usedElement;
  1185.        let tagList = [];
  1186.        let localSumResult;
  1187.        let binderName;
  1188.  
  1189.        var removeClearing;
  1190.        var repeatableBlockIdentifier = 0;
  1191.  
  1192.        var i;
  1193.  
  1194.        if (contentLength < 1) {
  1195.            contentLength = parent_with_content.innerText.length
  1196.        }
  1197.  
  1198.        rb_tempElement = document.querySelector('#rb_tempElement');
  1199.        if (!rb_tempElement) {
  1200.            rb_tempElement = document.createElement('span');
  1201.            rb_tempElement.setAttribute('id', 'rb_tempElement');
  1202.        }
  1203.  
  1204.        function getFromConstructions(currentElement) {
  1205.            if (currentElement.parentElement.tagName.toLowerCase() == "blockquote") {
  1206.                currentElement = currentElement.parentElement;
  1207.                /* initTargetToInsert(blockSettingArray, 'element', currentElement); */
  1208.                currentElement.parentNode.insertBefore(rb_tempElement, currentElement);
  1209.                rb_tempElement_check = true;
  1210.                sameElementAfterFromConstruction=false;
  1211.            } else if (["tr","td","th","thead","tbody","table"].includes(currentElement.parentElement.tagName.toLowerCase())) {
  1212.                currentElement = currentElement.parentElement;
  1213.                while (["tr","td","th","thead","tbody","table"].includes(currentElement.parentElement.tagName.toLowerCase())) {
  1214.                    currentElement = currentElement.parentElement;
  1215.                }
  1216.                currentElement.parentNode.insertBefore(rb_tempElement, currentElement);
  1217.                rb_tempElement_check = true;
  1218.                sameElementAfterFromConstruction=false;
  1219.            }
  1220.            return currentElement;
  1221.        }
  1222.  
  1223.        function directClassElementDetecting(blockSettingArray, directElement) {
  1224.            let findQuery = 0;
  1225.            let directClassElementResult = [];
  1226.  
  1227.            currentElement = document.querySelectorAll(directElement);
  1228.            if (currentElement.length > 0) {
  1229.                if (blockSettingArray[i]['elementPlace'] > 1) {
  1230.                    if (currentElement.length >= blockSettingArray[i]['elementPlace']) {
  1231.                        currentElement = currentElement[blockSettingArray[i]['elementPlace']-1];
  1232.                    } else if (currentElement.length < blockSettingArray[i]['elementPlace']) {
  1233.                        currentElement = currentElement[currentElement.length - 1];
  1234.                    } else {
  1235.                        findQuery = 1;
  1236.                    }
  1237.                } else if (blockSettingArray[i]['elementPlace'] < 0) {
  1238.                    if ((currentElement.length + blockSettingArray[i]['elementPlace'] + 1) > 0) {
  1239.                        currentElement = currentElement[currentElement.length + blockSettingArray[i]['elementPlace']];
  1240.                    } else {
  1241.                        findQuery = 1;
  1242.                    }
  1243.                } else {
  1244.                    findQuery = 1;
  1245.                }
  1246.            } else {
  1247.                findQuery = 1;
  1248.            }
  1249.  
  1250.            directClassElementResult['findQuery'] = findQuery;
  1251.            directClassElementResult['currentElement'] = currentElement;
  1252.  
  1253.            return directClassElementResult;
  1254.        }
  1255.  
  1256.        function placingToH1(usedElement, elementTagToFind) {
  1257.            let uselessLet;
  1258.            currentElement = usedElement.querySelectorAll(elementTagToFind);
  1259.  
  1260.            if (currentElement.length < 1) {
  1261.                if (usedElement.parentElement) {
  1262.                    uselessLet = placingToH1(usedElement.parentElement, elementTagToFind);
  1263.                }
  1264.            }
  1265.            return currentElement;
  1266.        }
  1267.  
  1268.        function elementsCleaning(excArr, elList, pwcLocal, gatherString) {
  1269.            let markedClass = 'rb_m_inc';
  1270.            let markedClassBad = 'rb_m_exc';
  1271.            let cou = 0;
  1272.            let cou1 = 0;
  1273.            let finalArr = [];
  1274.            let finalArrClear = [];
  1275.            let checkNearest;
  1276.            let outOfRangeCheck;
  1277.            let gatherRejected;
  1278.            let allower;
  1279.  
  1280.            try {
  1281.                while (elList[cou]) {
  1282.                    allower = true;
  1283.                    if (!elList[cou].classList.contains(markedClassBad)) {
  1284.                        if (excArr&&excArr.length > 0) {
  1285.                            cou1 = 0;
  1286.                            while (excArr[cou1]) {
  1287.                                checkNearest = elList[cou].parentElement.closest(excArr[cou1]);
  1288.                                if (checkNearest) {
  1289.                                    checkNearest.classList.add('currClosest');
  1290.                                    outOfRangeCheck = pwcLocal.querySelector('.currClosest');
  1291.                                    if (outOfRangeCheck) {
  1292.                                        allower = false;
  1293.                                        checkNearest.classList.add(markedClass);
  1294.                                        gatherRejected = checkNearest.querySelectorAll(gatherString);
  1295.                                        if (gatherRejected.length > 0) {
  1296.                                            for (let i1 = 0; i1 < gatherRejected.length; i1++) {
  1297.                                                gatherRejected[i1].classList.add(markedClassBad);
  1298.                                            }
  1299.                                        }
  1300.                                    }
  1301.                                    checkNearest.classList.remove('currClosest');
  1302.                                }
  1303.                                cou1++;
  1304.                            }
  1305.                        }
  1306.                        if (allower===true) {
  1307.                            elList[cou].classList.add(markedClass);
  1308.                            /* finalArr.push(elList[cou]); */
  1309.                        }
  1310.                    }
  1311.                    cou++;
  1312.                }
  1313.                finalArr = pwcLocal.querySelectorAll('.'+markedClass+':not('+markedClassBad+')');
  1314.                finalArrClear = pwcLocal.querySelectorAll('.'+markedClass+',.'+markedClassBad);
  1315.                if (finalArrClear&&finalArrClear.length > 0) {
  1316.                    for (let i1 = 0; i1 < finalArrClear.length; i1++) {
  1317.                        finalArrClear[i1].classList.remove(markedClass,markedClassBad);
  1318.                    }
  1319.                }
  1320.            } catch (er) {
  1321.                console.log(er.message);
  1322.            }
  1323.            return finalArr;
  1324.        }
  1325.  
  1326.        function cureentElementsGather(usedElement, loopLimit = 2, localPwc = parent_with_content) {
  1327.            let curElementSearchRepeater = true;
  1328.            let curElementSearchCounter = 0;
  1329.            let currentElementLoc = null;
  1330.            let ExcludedStringBegin = '';
  1331.            let ExcludedString = '';
  1332.            let ExcludedStringEnd = '';
  1333.            let tagListString = '';
  1334.            let tagListStringExc = '';
  1335.            let cou = 0;
  1336.            /* let excArr = excIdClUnpacker(); */
  1337.            let tagListCou = 0;
  1338.  
  1339.            if (usedElement=='h1') {
  1340.                currentElementLoc = placingToH1(localPwc, usedElement);
  1341.            } else {
  1342.                if (usedElement=='h2-4') {tagList = ['h2','h3','h3'];}
  1343.                else                     {tagList = [usedElement];   }
  1344.                while (tagList[tagListCou]) {
  1345.                    tagListString += ((cou++>0)?',':'')+tagList[tagListCou];
  1346.                    tagListStringExc += ':not('+tagList[tagListCou]+')';
  1347.                    tagListCou++;
  1348.                }
  1349.  
  1350.                ExcludedString = '';
  1351.                if (excIdClass&&excIdClass.length > 0) {
  1352.                    for (let i2 = 0; i2 < excIdClass.length; i2++) {
  1353.                        if (excIdClass[i2].length > 0) {
  1354.                            ExcludedString += (i2>0?',':'')+excIdClass[i2]+tagListStringExc;
  1355.                        }
  1356.                    }
  1357.                }
  1358.                detailedQueryString += tagListString+','+ExcludedString;
  1359.  
  1360.                /* console.log(detailedQueryString); */
  1361.                while (curElementSearchRepeater&&curElementSearchCounter < loopLimit) {
  1362.                    try {
  1363.                        currentElementLoc = localPwc.querySelectorAll(tagListString);
  1364.                    } catch (e1) {console.log(e1.message);}
  1365.                    if (!currentElementLoc) {
  1366.                        if (localPwc.parentElement) {
  1367.                            localPwc = localPwc.parentElement;
  1368.                        } else {
  1369.                            break;
  1370.                        }
  1371.                    } else {
  1372.                        currentElementLoc = elementsCleaning(excIdClass, currentElementLoc, localPwc, detailedQueryString);
  1373.                        curElementSearchRepeater = false;
  1374.                    }
  1375.                    curElementSearchCounter++;
  1376.                }
  1377.            }
  1378.            return currentElementLoc;
  1379.        }
  1380.  
  1381.        function currentElementReceiver(revert, localCurEl = currentElement) {
  1382.            let origCurEl = localCurEl;
  1383.            curSumResult = sumResult;
  1384.            detailedElementList = localCurEl;
  1385.            sameElementAfterWidth = false;
  1386.            let testCou = 0;
  1387.            while (detailedElementList[curSumResult]&&sameElementAfterWidth==false&&testCou < 8) {
  1388.                localCurEl = detailedElementList[curSumResult];
  1389.                try {
  1390.                    sameElementAfterWidth=true;
  1391.                    sameElementAfterWidth = checkAdsWidth(content_pointer, blockSettingArray[i]["elementPosition"], localCurEl);
  1392.                } catch (ex) {
  1393.                    console.log(ex.message);
  1394.                }
  1395.                revert? curSumResult--: curSumResult++;
  1396.                testCou++;
  1397.            }
  1398.            if (localCurEl) {
  1399.                currentElementChecker = true;
  1400.            }
  1401.            return localCurEl?localCurEl:origCurEl;
  1402.        }
  1403.        
  1404.        function endingActions(block_number) {
  1405.            usedBlockSettingArrayIds.push(block_number);
  1406.            blockSettingArray.splice(i--, 1);
  1407.            poolbackI = 1;
  1408.        }
  1409.  
  1410.        for (i = 0; i < blockSettingArray.length; i++) {
  1411.            currentElement = null;
  1412.            currentElementChecker = false;
  1413.            sameElementAfterWidth = false;
  1414.            sameElementAfterExcClassId = false;
  1415.            sameElementAfterFromConstruction = false;
  1416.            tagListCou = 0;
  1417.            poolbackI = 0;
  1418.            detailedQueryString = '';
  1419.            binderName = elementBinderNameGenerator();
  1420.  
  1421.            try {
  1422.                if (!blockSettingArray[i]["text"]
  1423.                    ||(blockSettingArray[i]["text"]&&blockSettingArray[i]["text"].length < 1)
  1424.                    ||(rejectedBlocks&&rejectedBlocks.includes(blockSettingArray[i]["id"]))
  1425.                    ||((blockSettingArray[i]["maxHeaders"] > 0)&&(blockSettingArray[i]["maxHeaders"] < parseInt(termorarity_parent_with_content_length)))
  1426.                    ||((blockSettingArray[i]["maxSymbols"] > 0)&&(blockSettingArray[i]["maxSymbols"] < parseInt(contentLength)))
  1427.                    ||(content_pointer.classList.contains("hard-content")&&blockSettingArray[i]["setting_type"]!=3)
  1428.                ) {
  1429.                    blockSettingArray.splice(i--, 1);
  1430.                    poolbackI = 1;
  1431.                    continue;
  1432.                }
  1433.  
  1434.                block_number = 0;
  1435.  
  1436.                elementToAdd = document.createElement("div");
  1437.                elementToAdd.classList.add("percentPointerClass");
  1438.                elementToAdd.classList.add("marked");
  1439.                if (blockSettingArray[i]["sc"]==1) {
  1440.                    elementToAdd.classList.add("scMark");
  1441.                }
  1442.                elementToAdd.innerHTML = blockSettingArray[i]["text"];
  1443.                elementToAdd.dataset.rbinder = binderName;
  1444.                block_number = elementToAdd.children[0].attributes['data-id'].value;
  1445.  
  1446.                if (blockDuplicate == 'no') {
  1447.                    if (usedBlockSettingArrayIds.length > 0) {
  1448.                        for (let i1 = 0; i1 < usedBlockSettingArrayIds.length; i1++) {
  1449.                            if (block_number==usedBlockSettingArrayIds[i1]) {
  1450.                                blockSettingArray.splice(i--, 1);
  1451.                                poolbackI = 1;
  1452.                                break;
  1453.                            }
  1454.                        }
  1455.                        if (poolbackI == 1) {
  1456.                            continue;
  1457.                        }
  1458.                    }
  1459.                }
  1460.  
  1461.                elementToAddStyle = createStyleElement(block_number, blockSettingArray[i]["elementCss"]);
  1462.  
  1463.                if (elementToAddStyle&&elementToAddStyle!='default') {
  1464.                    elementToAdd.style.textAlign = elementToAddStyle;
  1465.                }
  1466.  
  1467.                if ((blockSettingArray[i]["minHeaders"] > 0)&&(blockSettingArray[i]["minHeaders"] > termorarity_parent_with_content_length)) {continue;}
  1468.                if (blockSettingArray[i]["minSymbols"] > contentLength) {continue;}
  1469.  
  1470.                if (blockSettingArray[i]["setting_type"] == 1) {
  1471.                    currentElement = cureentElementsGather(blockSettingArray[i]["element"].toLowerCase());
  1472.                    if (currentElement) {
  1473.                        if (blockSettingArray[i]["elementPlace"] < 0) {
  1474.                            sumResult = currentElement.length + blockSettingArray[i]["elementPlace"];
  1475.                            if (sumResult >= 0 && sumResult < currentElement.length) {
  1476.                                currentElement = currentElementReceiver(true);
  1477.                            }
  1478.                        } else {
  1479.                            sumResult = blockSettingArray[i]["elementPlace"] - 1;
  1480.                            if (sumResult < currentElement.length) {
  1481.                                currentElement = currentElementReceiver(false);
  1482.                            }
  1483.                        }
  1484.                    }
  1485.                    if (currentElement != undefined && currentElement != null && currentElementChecker) {
  1486.                        posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement);
  1487.                        currentElement.parentNode.insertBefore(elementToAdd, posCurrentElement);
  1488.                        currentElement.classList.add('rbinder-'+binderName);
  1489.                        elementToAdd.classList.remove('coveredAd');
  1490.                        usedBlockSettingArrayIds.push(block_number);
  1491.                        blockSettingArray.splice(i--, 1);
  1492.                        poolbackI = 1;
  1493.                        rb_tempElement_check = false;
  1494.                    } else {
  1495.                        repeat = true;
  1496.                    }
  1497.                }
  1498.                else if (blockSettingArray[i]["setting_type"] == 2) {
  1499.                    if (blockDuplicate == 'no') {
  1500.                        blockSettingArray[i]["elementCount"] = 1;
  1501.                    }
  1502.                    repeatableCurrentElement = [];
  1503.                    reCou = 0;
  1504.                    curFirstPlace = blockSettingArray[i]["firstPlace"];
  1505.                    curElementCount = blockSettingArray[i]["elementCount"];
  1506.                    curElementStep = blockSettingArray[i]["elementStep"];
  1507.                    repeatableSuccess = false;
  1508.  
  1509.                    elementToAddStyle = createStyleElement(block_number, blockSettingArray[i]["elementCss"]);
  1510.  
  1511.                    repeatableCurrentElement = cureentElementsGather(blockSettingArray[i]["element"].toLowerCase());
  1512.                    if (repeatableCurrentElement) {
  1513.                        for (let i1 = 0; i1 < blockSettingArray[i]["elementCount"]; i1++) {
  1514.                            currentElementChecker = false;
  1515.                            let repElementToAdd = document.createElement("div");
  1516.                            repElementToAdd.classList.add("percentPointerClass");
  1517.                            repElementToAdd.classList.add("marked");
  1518.                            if (blockSettingArray[i]["sc"]==1) {
  1519.                                repElementToAdd.classList.add("scMark");
  1520.                            }
  1521.                            repElementToAdd.classList.add("repeatable-mark-"+repeatableBlockIdentifier);
  1522.                            repElementToAdd.innerHTML = blockSettingArray[i]["text"];
  1523.  
  1524.                            if (elementToAddStyle&&elementToAddStyle!='default') {
  1525.                                repElementToAdd.style.textAlign = elementToAddStyle;
  1526.                            }
  1527.  
  1528.                            sumResult = Math.round(parseInt(blockSettingArray[i]["firstPlace"]) + (i1*parseInt(blockSettingArray[i]["elementStep"])) - 1);
  1529.                            if (sumResult < repeatableCurrentElement.length) {
  1530.                                currentElement = currentElementReceiver(false, repeatableCurrentElement);
  1531.                            }
  1532.  
  1533.                            if (currentElement != undefined && currentElement != null && currentElementChecker) {
  1534.                                posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement);
  1535.                                currentElement.parentNode.insertBefore(repElementToAdd, posCurrentElement);
  1536.                                currentElement.classList.add('rbinder-'+binderName);
  1537.                                repElementToAdd.classList.remove('coveredAd');
  1538.                                curFirstPlace = sumResult + parseInt(blockSettingArray[i]["elementStep"]) + 1;
  1539.                                curElementCount--;
  1540.                                repeatableSuccess = true;
  1541.                            } else {
  1542.                                repeatableSuccess = false;
  1543.                                break;
  1544.                            }
  1545.                        }
  1546.                    }
  1547.                    if (repeatableSuccess==true) {
  1548.                        usedBlockSettingArrayIds.push(block_number);
  1549.                        blockSettingArray.splice(i--, 1);
  1550.                        poolbackI = 1;
  1551.                        repeatableBlockIdentifier++;
  1552.                    } else {
  1553.                        if (!blockSettingArray[i]["unsuccess"]) {
  1554.                            blockSettingArray[i]["unsuccess"] = 1;
  1555.                        } else {
  1556.                            blockSettingArray[i]["unsuccess"] = Math.round(blockSettingArray[i]["unsuccess"] + 1);
  1557.                        }
  1558.                        if (blockSettingArray[i]["unsuccess"] > 10) {
  1559.                            usedBlockSettingArrayIds.push(block_number);
  1560.                            blockSettingArray.splice(i--, 1);
  1561.                            poolbackI = 1;
  1562.                        } else {
  1563.                            blockSettingArray[i]["firstPlace"] = curFirstPlace;
  1564.                            blockSettingArray[i]["elementCount"] = curElementCount;
  1565.                            blockSettingArray[i]["elementStep"] = curElementStep;
  1566.                            repeat = true;
  1567.                        }
  1568.                    }
  1569.                }
  1570.                else if (blockSettingArray[i]["setting_type"] == 3) {
  1571.                    let elementTypeSymbol = '';
  1572.                    let elementSpaceSymbol = '';
  1573.                    let elementName = '';
  1574.                    let elementType = '';
  1575.                    let elementTag  = '';
  1576.                    let findQuery = 0;
  1577.                    let directClassResult = [];
  1578.                    let directElement = blockSettingArray[i]["directElement"].trim();
  1579.  
  1580.                    if (directElement.search('#') > -1) {
  1581.                        findQuery = 1;
  1582.                    } else if ((directElement.search('#') < 0)&&(directElement.search('.') > -1)) {
  1583.                        directClassResult = directClassElementDetecting(blockSettingArray, directElement);
  1584.                        findQuery = directClassResult['findQuery'];
  1585.                        currentElement = directClassResult['currentElement'];
  1586.                    }
  1587.                    if (findQuery == 1) {
  1588.                        currentElement = document.querySelector(directElement);
  1589.                    }
  1590.                    if (currentElement) {
  1591.                        currentElementChecker = true;
  1592.                    }
  1593.  
  1594.                    if (currentElement != undefined && currentElement != null && currentElementChecker) {
  1595.                        posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement);
  1596.                        currentElement.parentNode.insertBefore(elementToAdd, posCurrentElement);
  1597.                        elementToAdd.classList.remove('coveredAd');
  1598.                        currentElement.classList.add('rbinder-'+binderName);
  1599.                        usedBlockSettingArrayIds.push(block_number);
  1600.                        blockSettingArray.splice(i--, 1);
  1601.                        poolbackI = 1;
  1602.                    } else {
  1603.                        repeat = true;
  1604.                    }
  1605.                }
  1606.                else if (blockSettingArray[i]["setting_type"] == 4) {
  1607.                    document.querySelector("#content_pointer_id").parentElement.append(elementToAdd);
  1608.                    usedBlockSettingArrayIds.push(block_number);
  1609.                    blockSettingArray.splice(i--, 1);
  1610.                    poolbackI = 1;
  1611.                }
  1612.                else if (blockSettingArray[i]["setting_type"] == 5) {
  1613.                    let currentElementList = cureentElementsGather('p', 1, content_pointer.parentElement);
  1614.                    if (currentElementList&&currentElementList.length > 0) {
  1615.                        let pCount = currentElementList.length;
  1616.                        let elementNumber = Math.round(pCount/2);
  1617.                        if (pCount > 1) {
  1618.                            currentElement = currentElementList[elementNumber+1];
  1619.                        }
  1620.                        if (currentElement != undefined && currentElement != null) {
  1621.                            if (pCount > 1) {
  1622.                                currentElement.parentNode.insertBefore(elementToAdd, currentElement);
  1623.                            } else {
  1624.                                currentElement.parentNode.insertBefore(elementToAdd, currentElement.nextSibling);
  1625.                            }
  1626.                            elementToAdd.classList.remove('coveredAd');
  1627.                            currentElement.classList.add('rbinder-'+binderName);
  1628.                            usedBlockSettingArrayIds.push(block_number);
  1629.                            blockSettingArray.splice(i--, 1);
  1630.                            poolbackI = 1;
  1631.                        } else {
  1632.                            repeat = true;
  1633.                        }
  1634.                    } else {
  1635.                        repeat = true;
  1636.                    }
  1637.                }
  1638.                else if (blockSettingArray[i]["setting_type"] == 6) {
  1639.                    if (containerFor6th.length > 0) {
  1640.                        for (let j = 0; j < containerFor6th.length; j++) {
  1641.                            if (containerFor6th[j]["elementPlace"]<blockSettingArray[i]["elementPlace"]) {
  1642.                                /* continue; */
  1643.                                if (j == containerFor6th.length-1) {
  1644.                                    containerFor6th.push(blockSettingArray[i]);
  1645.                                    /* usedAdBlocksArray.push(checkIfBlockUsed); */
  1646.                                    usedBlockSettingArrayIds.push(block_number);
  1647.                                    blockSettingArray.splice(i--, 1);
  1648.                                    poolbackI = 1;
  1649.                                    break;
  1650.                                }
  1651.                            } else {
  1652.                                for (let k = containerFor6th.length-1; k > j-1; k--) {
  1653.                                    containerFor6th[k + 1] = containerFor6th[k];
  1654.                                }
  1655.                                containerFor6th[j] = blockSettingArray[i];
  1656.                                /* usedAdBlocksArray.push(checkIfBlockUsed); */
  1657.                                usedBlockSettingArrayIds.push(block_number);
  1658.                                blockSettingArray.splice(i--, 1);
  1659.                                poolbackI = 1;
  1660.                                break;
  1661.                            }
  1662.                        }
  1663.                    } else {
  1664.                        containerFor6th.push(blockSettingArray[i]);
  1665.                        usedBlockSettingArrayIds.push(block_number);
  1666.                        blockSettingArray.splice(i--, 1);
  1667.                        poolbackI = 1;
  1668.                    }
  1669.                /* vidpravutu v vidstiinuk dlya 6ho tipa */
  1670.                }
  1671.                else if (blockSettingArray[i]["setting_type"] == 7) {
  1672.                    if (containerFor7th.length > 0) {
  1673.                        for (let j = 0; j < containerFor7th.length; j++) {
  1674.                            if (containerFor7th[j]["elementPlace"]<blockSettingArray[i]["elementPlace"]) {
  1675.                                /* continue; */
  1676.                                if (j == containerFor7th.length-1) {
  1677.                                    containerFor7th.push(blockSettingArray[i]);
  1678.                                    usedBlockSettingArrayIds.push(block_number);
  1679.                                    blockSettingArray.splice(i--, 1);
  1680.                                    poolbackI = 1;
  1681.                                    break;
  1682.                                }
  1683.                            } else {
  1684.                                for (let k = containerFor7th.length-1; k > j-1; k--) {
  1685.                                    containerFor7th[k + 1] = containerFor7th[k];
  1686.                                }
  1687.                                containerFor7th[j] = blockSettingArray[i];
  1688.                                usedBlockSettingArrayIds.push(block_number);
  1689.                                blockSettingArray.splice(i--, 1);
  1690.                                poolbackI = 1;
  1691.                                break;
  1692.                            }
  1693.                        }
  1694.                    } else {
  1695.                        containerFor7th.push(blockSettingArray[i]);
  1696.                        usedBlockSettingArrayIds.push(block_number);
  1697.                        blockSettingArray.splice(i--, 1);
  1698.                        poolbackI = 1;
  1699.                    }
  1700.                /* vidpravutu v vidstiinuk dlya 7ho tipa */
  1701.                }
  1702.            } catch (e) {
  1703.                console.log(e.message);
  1704.            }
  1705.        }
  1706.  
  1707.        var array = textLengthGatherer(lordOfElements),
  1708.            tlArray = array.array,
  1709.            length = array.length;
  1710.  
  1711.        if (containerFor6th.length > 0) {
  1712.            percentInserter(lordOfElements, containerFor6th, tlArray, length);
  1713.        }
  1714.        if (containerFor7th.length > 0) {
  1715.            symbolInserter(lordOfElements, containerFor7th, tlArray);
  1716.        }
  1717.        shortcodesInsert();
  1718.        let stopper = 0;
  1719.  
  1720.        window.addEventListener('load', function () {
  1721.            if (repeat = true) {
  1722.                setTimeout(function () {
  1723.                    /* asyncBlocksInsertingFunction(blockSettingArray, contentLength) */
  1724.                    asyncBlocksInsertingFunction(blockSettingArray);
  1725.                }, 100);
  1726.            }
  1727.        });
  1728.    } catch (e) {
  1729.        console.log(e.message);
  1730.    }
  1731. }
  1732.  
  1733. function possibleTagsInCheckConfirmer(possibleTagsArray, possibleTagsInCheck) {
  1734.    if (possibleTagsArray.includes("LI")) {
  1735.        if (possibleTagsArray.includes("UL")) {
  1736.            possibleTagsInCheck.push("UL");
  1737.        }
  1738.        if (possibleTagsArray.includes("OL")) {
  1739.            possibleTagsInCheck.push("OL");
  1740.        }
  1741.    }
  1742.  
  1743.    return false;
  1744. }
  1745.  
  1746. function textLengthGatherer(lordOfElementsLoc) {
  1747.    var possibleTagsArray;
  1748.    if (typeof tagsListForTextLength!=="undefined") {
  1749.        possibleTagsArray = tagsListForTextLength;
  1750.    } else {
  1751.        possibleTagsArray = ["P", "H1", "H2", "H3", "H4", "H5", "H6", "DIV", "BLOCKQUOTE", "INDEX", "ARTICLE", "SECTION"];
  1752.    }
  1753.    let possibleTagsInCheck = ["DIV", "INDEX", "SECTION"];
  1754.  
  1755.    possibleTagsInCheckConfirmer(possibleTagsArray, possibleTagsInCheck);
  1756.    let excArr = excIdClUnpacker(),
  1757.        textLength = 0,
  1758.        tlArray = [];
  1759.  
  1760.    function textLengthGathererRec(lordOfElementsLoc) {
  1761.        let allowed;
  1762.        let cou1;
  1763.        let classesArray;
  1764.        let countSuccess = 0;
  1765.        try {
  1766.            for (let i = 0; i < lordOfElementsLoc.children.length; i++) {
  1767.                if (possibleTagsArray.includes(lordOfElementsLoc.children[i].tagName)
  1768.                    &&!lordOfElementsLoc.children[i].classList.contains("percentPointerClass")
  1769.                    &&lordOfElementsLoc.children[i].id!="toc_container"
  1770.                ) {
  1771.                    if (possibleTagsInCheck.includes(lordOfElementsLoc.children[i].tagName)
  1772.                        &&(lordOfElementsLoc.children[i].children.length > 0)
  1773.                    ) {
  1774.                        allowed = true;
  1775.                        if (lordOfElementsLoc.children[i].id&&excArr['id'].length > 0) {
  1776.                            cou1 = 0;
  1777.                            while (excArr['id'][cou1]) {
  1778.                                if (lordOfElementsLoc.children[i].id.toLowerCase()==excArr['id'][cou1].toLowerCase()) {
  1779.                                    allowed = false;
  1780.                                    break;
  1781.                                }
  1782.                                cou1++;
  1783.                            }
  1784.                        }
  1785.  
  1786.                        if (lordOfElementsLoc.children[i].classList.length > 0&&excArr['class'].length > 0) {
  1787.                            cou1 = 0;
  1788.                            while (excArr['class'][cou1]) {
  1789.                                classesArray = excArr['class'][cou1].split('.');
  1790.                                if (classesArray.every(className => lordOfElementsLoc.children[i].classList.contains(className))) {
  1791.                                    allowed = false;
  1792.                                    break;
  1793.                                }
  1794.                                cou1++;
  1795.                            }
  1796.                        }
  1797.  
  1798.                        if (excArr['tag'].length > 0) {
  1799.                            cou1 = 0;
  1800.                            while (excArr['tag'][cou1]) {
  1801.                                if (lordOfElementsLoc.children[i].tagName.toLowerCase()==excArr['tag'][cou1].toLowerCase()) {
  1802.                                    allowed = false;
  1803.                                    break;
  1804.                                }
  1805.                                cou1++;
  1806.                            }
  1807.                        }
  1808.  
  1809.                        if (allowed) {
  1810.                            if (textLengthGathererRec(lordOfElementsLoc.children[i], excArr, possibleTagsArray, possibleTagsInCheck)) {
  1811.                                countSuccess++;
  1812.                                continue;
  1813.                            }
  1814.                        }
  1815.                    }
  1816.                    textLength = textLength + lordOfElementsLoc.children[i].innerText.length;
  1817.                    tlArray.push({
  1818.                        tag: lordOfElementsLoc.children[i].tagName,
  1819.                        length: lordOfElementsLoc.children[i].innerText.length,
  1820.                        lengthSum: textLength,
  1821.                        element: lordOfElementsLoc.children[i]
  1822.                    });
  1823.                    countSuccess++;
  1824.                }
  1825.            }
  1826.        } catch (er) {
  1827.            console.log(er.message);
  1828.        }
  1829.        return countSuccess > 0;
  1830.    }
  1831.  
  1832.    textLengthGathererRec(lordOfElementsLoc);
  1833.  
  1834.    return {array: tlArray, length: textLength};
  1835. }
  1836.  
  1837. window.asyncFunctionLauncher = function() {
  1838.    if (window.jsInputerLaunch !== undefined
  1839.        &&[15, 10].includes(window.jsInputerLaunch)
  1840.        &&(typeof asyncBlocksInsertingFunction !== 'undefined' )
  1841.        &&(typeof asyncBlocksInsertingFunction === 'function')
  1842.        &&typeof endedSc!=='undefined'&&
  1843.        typeof endedCc!=='undefined'&&
  1844.        typeof usedAdBlocksArray!=='undefined'&&
  1845.        typeof usedBlockSettingArrayIds!=='undefined'&&
  1846.        typeof sameElementAfterWidth!=='undefined'&&
  1847.        typeof sameElementAfterExcClassId!=='undefined'&&
  1848.        typeof sameElementAfterFromConstruction!=='undefined'&&
  1849.        typeof rb_tempElement_check!=='undefined'&&
  1850.        typeof rb_tempElement!=='undefined'&&
  1851.        typeof window.jsInputerLaunch!=='undefined') {
  1852.        /* asyncBlocksInsertingFunction(blockSettingArray, contentLength); */
  1853.        asyncBlocksInsertingFunction(blockSettingArray);
  1854.        if (!endedSc) {
  1855.            shortcodesInsert();
  1856.        }
  1857.        if (!endedCc) {
  1858.            /* clearUnsuitableCache(0); */
  1859.        }
  1860.        /* blocksReposition();
  1861.        cachePlacing();
  1862.        symbolMarkersPlaced(); */
  1863.    } else {
  1864.        setTimeout(function () {
  1865.            asyncFunctionLauncher();
  1866.        }, 50);
  1867.    }
  1868. };
  1869. /* asyncFunctionLauncher(); */
  1870.  
  1871. function asyncInsertingsInsertingFunction(insertingsArray) {
  1872.    let currentElementForInserting = 0;
  1873.    let currentElementToMove = 0;
  1874.    let positionElement = 0;
  1875.    let position = 0;
  1876.    let insertToAdd = 0;
  1877.    let postId = 0;
  1878.    let repeatSearch = 0;
  1879.    if (insertingsArray&&insertingsArray.length > 0) {
  1880.        for (let i = 0; i < insertingsArray.length; i++) {
  1881.            if (!insertingsArray[i]['used']||(insertingsArray[i]['used']&&insertingsArray[i]['used']==0)) {
  1882.                positionElement = insertingsArray[i]['position_element'];
  1883.                position = insertingsArray[i]['position'];
  1884.                insertToAdd = insertingsArray[i]['content'];
  1885.                postId = insertingsArray[i]['postId'];
  1886.  
  1887.                currentElementForInserting = document.querySelector(positionElement);
  1888.  
  1889.                currentElementToMove = document.querySelector('.coveredInsertings[data-id="'+postId+'"]');
  1890.                if (currentElementForInserting) {
  1891.                    if (position==0) {
  1892.                        currentElementForInserting.parentNode.insertBefore(currentElementToMove, currentElementForInserting);
  1893.                        currentElementToMove.classList.remove('coveredInsertings');
  1894.                        insertingsArray[i]['used'] = 1;
  1895.                    } else {
  1896.                        currentElementForInserting.parentNode.insertBefore(currentElementToMove, currentElementForInserting.nextSibling);
  1897.                        currentElementToMove.classList.remove('coveredInsertings');
  1898.                        insertingsArray[i]['used'] = 1;
  1899.                    }
  1900.                } else {
  1901.                    repeatSearch = 1;
  1902.                }
  1903.            }
  1904.        }
  1905.    }
  1906.    if (repeatSearch == 1) {
  1907.        setTimeout(function () {
  1908.            asyncInsertingsInsertingFunction(insertingsArray);
  1909.        }, 100)
  1910.    }
  1911. }
  1912.  
  1913. function insertingsFunctionLaunch() {
  1914.    if (window.jsInsertingsLaunch !== undefined&&jsInsertingsLaunch == 25) {
  1915.        asyncInsertingsInsertingFunction(insertingsArray);
  1916.    } else {
  1917.        setTimeout(function () {
  1918.            insertingsFunctionLaunch();
  1919.        }, 100)
  1920.    }
  1921. }
  1922.  
  1923. function setLongCache() {
  1924.    let xhttp = new XMLHttpRequest();
  1925.    let sendData = 'action=setLongCache&type=longCatching';
  1926.    xhttp.onreadystatechange = function(redata) {
  1927.        if (this.readyState == 4 && this.status == 200) {
  1928.            console.log('long cache deployed');
  1929.        }
  1930.    };
  1931.    xhttp.open("POST", rb_ajaxurl, true);
  1932.    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  1933.    xhttp.send(sendData);
  1934. }
  1935.  
  1936. function cachePlacing(alert_type, errorInfo=null) {
  1937.    let adBlocks = document.querySelectorAll('.percentPointerClass .' + block_classes.join(', .percentPointerClass .'));
  1938.    let curAdBlock;
  1939.    let okStates = ['done','refresh-wait','no-block','fetched'];
  1940.    /* let adId = -1; */
  1941.    let blockAid = null;
  1942.    let blockId;
  1943.  
  1944.    if (typeof cachedBlocksArray !== 'undefined'&&cachedBlocksArray&&cachedBlocksArray.length > 0&&adBlocks&&adBlocks.length > 0) {
  1945.        for (let i = 0; i < adBlocks.length; i++) {
  1946.            blockAid = adBlocks[i]['dataset']['aid'];
  1947.  
  1948.            if (!blockAid) {
  1949.                blockId = adBlocks[i]['dataset']['id'];
  1950.                if (cachedBlocksArray[blockId]) {
  1951.                    jQuery(adBlocks[i]).html(cachedBlocksArray[blockId]);
  1952.                }
  1953.            }
  1954.        }
  1955.    }
  1956.  
  1957.    if (alert_type&&alert_type=='high') {
  1958.        setLongCache();
  1959.    }
  1960. }
  1961.  
  1962. function symbolInserter(lordOfElements, containerFor7th, tlArray) {
  1963.    try {
  1964.        var currentChildrenLength = 0;
  1965.        let previousBreak = 0;
  1966.        let needleLength;
  1967.        let currentSumLength;
  1968.        let elementToAdd;
  1969.        let elementToBind;
  1970.        let elementToAddStyle;
  1971.        let block_number;
  1972.        let binderName;
  1973.  
  1974.        if (!document.getElementById("markedSpan1")) {
  1975.            for (let i = 0; i < containerFor7th.length; i++) {
  1976.                previousBreak = 0;
  1977.                currentChildrenLength = 0;
  1978.                currentSumLength = 0;
  1979.                needleLength = Math.abs(containerFor7th[i]['elementPlace']);
  1980.                binderName = elementBinderNameGenerator();
  1981.  
  1982.                elementToAdd = document.createElement("div");
  1983.                elementToAdd.classList.add("percentPointerClass");
  1984.                elementToAdd.classList.add("marked");
  1985.                if (containerFor7th[i]["sc"]==1) {
  1986.                    elementToAdd.classList.add("scMark");
  1987.                }
  1988.                elementToAdd.dataset.rbinder = binderName;
  1989.                elementToAdd.innerHTML = containerFor7th[i]["text"];
  1990.                block_number = elementToAdd.children[0].attributes['data-id'].value;
  1991.                if (!elementToAdd) {
  1992.                    continue;
  1993.                }
  1994.  
  1995.                elementToAddStyle = createStyleElement(block_number, containerFor7th[i]["elementCss"]);
  1996.  
  1997.                if (elementToAddStyle&&elementToAddStyle!='default') {
  1998.                    elementToAdd.style.textAlign = elementToAddStyle;
  1999.                }
  2000.  
  2001.                if (containerFor7th[i]['elementPlace'] < 0) {
  2002.                    for (let j = tlArray.length-1; j > -1; j--) {
  2003.                        currentSumLength = currentSumLength + tlArray[j]['length'];
  2004.                        if (needleLength < currentSumLength) {
  2005.                            elementToBind = tlArray[j]['element'];
  2006.                            elementToBind = currentElementReceiverSpec(true, j, tlArray, elementToBind);
  2007.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind);
  2008.                            elementToBind.classList.add('rbinder-'+binderName);
  2009.                            elementToAdd.classList.remove('coveredAd');
  2010.                            break;
  2011.                        }
  2012.                    }
  2013.                } else if (containerFor7th[i]['elementPlace'] == 0) {
  2014.                    elementToBind = tlArray[0]['element'];
  2015.                    elementToBind.parentNode.insertBefore(elementToAdd, elementToBind);
  2016.                    elementToBind.classList.add('rbinder-'+binderName);
  2017.                    elementToAdd.classList.remove('coveredAd');
  2018.                } else {
  2019.                    for (let j = 0; j < tlArray.length; j++) {
  2020.                        currentSumLength = currentSumLength + tlArray[j]['length'];
  2021.                        if (needleLength < currentSumLength) {
  2022.                            elementToBind = tlArray[j]['element'];
  2023.                            elementToBind = currentElementReceiverSpec(false, j, tlArray, elementToBind);
  2024.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind.nextSibling);
  2025.                            elementToBind.classList.add('rbinder-'+binderName);
  2026.                            elementToAdd.classList.remove('coveredAd');
  2027.                            break;
  2028.                        }
  2029.                    }
  2030.                }
  2031.            }
  2032.  
  2033.            var spanMarker = document.createElement("span");
  2034.            spanMarker.setAttribute("id", "markedSpan1");
  2035.            lordOfElements.prepend(spanMarker);
  2036.        }
  2037.    } catch (e) {
  2038.        console.log(e);
  2039.    }
  2040. }
  2041.  
  2042. function percentInserter(lordOfElements, containerFor6th, tlArray, textLength) {
  2043.    try {
  2044.        var textNeedyLength = 0;
  2045.        let elementToAdd;
  2046.        var elementToBind;
  2047.        let elementToAddStyle;
  2048.        let block_number;
  2049.        var binderName;
  2050.        /* var checkIfBlockUsed = 0; */
  2051.  
  2052.        function insertByPercents(textLength) {
  2053.            let localMiddleValue = 0;
  2054.  
  2055.            for (let j = 0; j < containerFor6th.length; j++) {
  2056.                textNeedyLength = Math.round(textLength * (containerFor6th[j]["elementPlace"]/100));
  2057.                for (let i = 0; i < tlArray.length; i++) {
  2058.                    if (tlArray[i]['lengthSum'] >= textNeedyLength) {
  2059.                        binderName = elementBinderNameGenerator();
  2060.  
  2061.                        elementToAdd = document.createElement("div");
  2062.                        elementToAdd.classList.add("percentPointerClass");
  2063.                        elementToAdd.classList.add("marked");
  2064.                        if (containerFor6th[j]["sc"]==1) {
  2065.                            elementToAdd.classList.add("scMark");
  2066.                        }
  2067.                        elementToAdd.dataset.rbinder = binderName;
  2068.                        elementToAdd.innerHTML = containerFor6th[j]["text"];
  2069.                        if (!elementToAdd) {
  2070.                            break;
  2071.                        }
  2072.                        block_number = elementToAdd.children[0].attributes['data-id'].value;
  2073.                        elementToAddStyle = createStyleElement(block_number, containerFor6th[j]["elementCss"]);
  2074.                        if (elementToAddStyle&&elementToAddStyle!='default') {
  2075.                            elementToAdd.style.textAlign = elementToAddStyle;
  2076.                        }
  2077.  
  2078.                        localMiddleValue = tlArray[i]['lengthSum'] - Math.round(tlArray[i]['length']/2);
  2079.                        elementToBind = tlArray[i]['element'];
  2080.                        currentElementReceiverSpec(false, i, tlArray, elementToBind);
  2081.                        if (textNeedyLength < localMiddleValue) {
  2082.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind);
  2083.                        } else {
  2084.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind.nextSibling);
  2085.                        }
  2086.                        elementToBind.classList.add('rbinder-'+binderName);
  2087.                        elementToAdd.classList.remove('coveredAd');
  2088.                        break;
  2089.                    }
  2090.                }
  2091.            }
  2092.            return false;
  2093.        }
  2094.  
  2095.        function clearTlMarks() {
  2096.            let marksForDeleting = document.querySelectorAll('.textLengthMarker');
  2097.  
  2098.            if (marksForDeleting.length > 0) {
  2099.                for (let i = 0; i < marksForDeleting.length; i++) {
  2100.                    marksForDeleting[i].remove();
  2101.                }
  2102.            }
  2103.        }
  2104.  
  2105.        if (!document.getElementById("markedSpan")) {
  2106.            insertByPercents(textLength);
  2107.            clearTlMarks();
  2108.            var spanMarker = document.createElement("span");
  2109.            spanMarker.setAttribute("id", "markedSpan");
  2110.            lordOfElements.prepend(spanMarker);
  2111.        }
  2112.    } catch (e) {
  2113.        console.log(e.message);
  2114.    }
  2115. }
  2116.  
  2117. function saveContentBlock(contentContainer) {
  2118.    try {
  2119.        if (!gather_content) {
  2120.            console.log('content gather save function entered');
  2121.            let xhttp = new XMLHttpRequest();
  2122.            let sendData = 'action=RFWP_saveContentContainer&type=gatherContentBlock&data='+contentContainer;
  2123.            xhttp.onreadystatechange = function(redata) {
  2124.                if (this.readyState == 4 && this.status == 200) {
  2125.                    console.log('content gather succeed');
  2126.                } else {
  2127.                    console.log('content gather gone wrong');
  2128.                }
  2129.            };
  2130.            xhttp.open("POST", rb_ajaxurl, true);
  2131.            xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  2132.            xhttp.send(sendData);
  2133.        }
  2134.    } catch (er) {
  2135.        console.log('content gather error: '+er+';');
  2136.    }
  2137. }
  2138.  
  2139. window.gatherContentBlock = function() {
  2140.    let cPointer = null,
  2141.        cPointerParent = null,
  2142.        cPointerParentString = null,
  2143.        classWords = ['content','entry','post','wrap','description','taxonomy'],
  2144.        classChoosed = false;
  2145.  
  2146.    cPointer =  document.querySelector('#content_pointer_id');
  2147.    if (cPointer) {
  2148.        if (window.jsInputerLaunch!==15) {
  2149.            return false;
  2150.        }
  2151.        cPointerParent = cPointer.parentElement;
  2152.        if (cPointerParent) {
  2153.            if (cPointerParent.id) {
  2154.                cPointerParentString = '#'+cPointerParent.id;
  2155.            } else {
  2156.                if (cPointerParent.classList.length > 0) {
  2157.                    cPointerParentString = '.'+cPointerParent.classList[0];
  2158.                    for (let j = 0; j < classWords.length; j++) {
  2159.                        for (let i = 0; i < cPointerParent.classList.length; i++) {
  2160.                            if (cPointerParent.classList[i].includes(classWords[j])) {
  2161.                                cPointerParentString = '.'+cPointerParent.classList[i];
  2162.                                classChoosed = true;
  2163.                                break;
  2164.                            }
  2165.                        }
  2166.                        if (classChoosed===true) {
  2167.                            break;
  2168.                        }
  2169.                    }
  2170.                }
  2171.            }
  2172.            if (cPointerParentString) {
  2173.                console.log('content gather content block detected');
  2174.                /* cPointerParentString = JSON.stringify(cPointerParentString); */
  2175.                saveContentBlock(cPointerParentString);
  2176.            }
  2177.        }
  2178.    } else {
  2179.        console.log('content gather delayed');
  2180.        setTimeout(function () {
  2181.            gatherContentBlock();
  2182.        }, 500);
  2183.    }
  2184. };
  2185.  
  2186. window.removeMarginClass = function(blockObject) {
  2187.    if (blockObject && typeof window.jsInputerLaunch !== 'undefined' && [15, 10].includes(window.jsInputerLaunch)) {
  2188.        let binderName,
  2189.            neededElement,
  2190.            currentDirection,
  2191.            seekerIterationCount,
  2192.            currentSubling;
  2193.  
  2194.        binderName = blockObject.dataset.rbinder;
  2195.        if (binderName) {
  2196.            seekerIterationCount = 0;
  2197.            currentDirection = 'before';
  2198.            do {
  2199.                seekerIterationCount++;
  2200.                currentSubling = blockObject.nextElementSibling;
  2201.                if (currentSubling&&currentSubling.classList.contains('rbinder-'+binderName)) {
  2202.                    neededElement = currentSubling;
  2203.                }
  2204.            } while (currentSubling&&!neededElement&&seekerIterationCount < 5);
  2205.  
  2206.            if (!neededElement) {
  2207.                seekerIterationCount = 0;
  2208.                currentDirection = 'after';
  2209.                do {
  2210.                    seekerIterationCount++;
  2211.                    currentSubling = blockObject.previousElementSibling;
  2212.                    if (currentSubling&&currentSubling.classList.contains('rbinder-'+binderName)) {
  2213.                        neededElement = currentSubling;
  2214.                    }
  2215.                } while (currentSubling&&!neededElement&&seekerIterationCount < 5);
  2216.            }
  2217.            if (neededElement) {
  2218.                if (currentDirection === 'before') {
  2219.                    neededElement.classList.remove('rfwp_removedMarginTop');
  2220.                } else {
  2221.                    neededElement.classList.remove('rfwp_removedMarginBottom');
  2222.                }
  2223.            }
  2224.        }
  2225.    }
  2226.  
  2227.    return false;
  2228. };
  2229.  
  2230. function elementBinderNameGenerator() {
  2231.    let binderName = '',
  2232.        checkedElements,
  2233.        passed = false;
  2234.  
  2235.    while (passed===false) {
  2236.        binderName = Math.floor(Math.random()*100000);
  2237.        checkedElements = document.querySelectorAll('[data-rbinder="'+binderName+'"]');
  2238.        if (checkedElements.length < 1) {
  2239.            passed = true;
  2240.        }
  2241.    }
  2242.  
  2243.    return binderName;
  2244. }
  2245. </script>
  2246. <script>
  2247. if (typeof rb_ajaxurl==='undefined') {var rb_ajaxurl = 'https://pcsx2.ru/wp-admin/admin-ajax.php';}
  2248. if (typeof cache_devices==='undefined') {var cache_devices = true;}
  2249. var nReadyBlock = false;
  2250. var fetchedCounter = 0;
  2251.  
  2252. function sendReadyBlocksNew(blocks) {
  2253.    if (!cache_devices) {
  2254.        let xhttp = new XMLHttpRequest();
  2255.        let sendData = 'action=saveAdBlocks&type=blocksGethering&data='+blocks;
  2256.        xhttp.onreadystatechange = function(redata) {
  2257.            if (this.readyState == 4 && this.status == 200) {
  2258.                console.log('cache succeed');
  2259.            }
  2260.        };
  2261.        xhttp.open("POST", rb_ajaxurl, true);
  2262.        xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  2263.        xhttp.send(sendData);
  2264.    }
  2265. }
  2266.  
  2267. function gatherReadyBlocks() {
  2268.    if (block_classes && block_classes.length) {
  2269.        let blocks = {};
  2270.        let counter1 = 0;
  2271.        let gatheredBlocks = document.querySelectorAll('.' + block_classes.join(', .'));
  2272.        let checker = 0;
  2273.        let adContent = '';
  2274.        let curState = '';
  2275.        let thisData = [];
  2276.        let sumData = [];
  2277.        let newBlocks = '';
  2278.        let thisDataString = '';
  2279.  
  2280.        if (gatheredBlocks.length > 0) {
  2281.            blocks.data = {};
  2282.  
  2283.            for (let i = 0; i < gatheredBlocks.length; i++) {
  2284.                curState = gatheredBlocks[i]['dataset']["state"].toLowerCase();
  2285.                checker = 0;
  2286.                if (curState&&gatheredBlocks[i]['innerHTML'].length > 0&&gatheredBlocks[i]['dataset']['aid'] > 0&&curState!='no-block') {
  2287.                    if (gatheredBlocks[i]['innerHTML'].length > 0) {
  2288.                        checker = 1;
  2289.                    }
  2290.                    if (checker==1) {
  2291.                        blocks.data[counter1] = {id:gatheredBlocks[i]['dataset']['id'],code:gatheredBlocks[i]['dataset']['aid']};
  2292.                        counter1++;
  2293.                    }
  2294.                }
  2295.            }
  2296.  
  2297.            blocks = JSON.stringify(blocks);
  2298.            sendReadyBlocksNew(blocks);
  2299.        }
  2300.    } else nReadyBlock = true;
  2301. }
  2302.  
  2303. function timeBeforeGathering() {
  2304.    if (block_classes && block_classes.length > 0)
  2305.    {
  2306.        let gatheredBlocks = document.querySelectorAll('.' + block_classes.join(', .'));
  2307.        let okStates = ['done','refresh-wait','no-block','fetched'];
  2308.        let curState = '';
  2309.  
  2310.        for (let i = 0; i < gatheredBlocks.length; i++) {
  2311.            if (!gatheredBlocks[i]['dataset']["state"]) {
  2312.                nReadyBlock = true;
  2313.                break;
  2314.            } else {
  2315.                curState = gatheredBlocks[i]['dataset']["state"].toLowerCase();
  2316.                if (!okStates.includes(curState)) {
  2317.                    nReadyBlock = true;
  2318.                    break;
  2319.                } else if (curState=='fetched'&&fetchedCounter < 3) {
  2320.                    fetchedCounter++;
  2321.                    nReadyBlock = true;
  2322.                    break;
  2323.                }
  2324.            }
  2325.        }
  2326.    }
  2327.    else nReadyBlock = true;
  2328.  
  2329.    if (nReadyBlock == true) {
  2330.        nReadyBlock = false;
  2331.        setTimeout(timeBeforeGathering,2000);
  2332.    } else {
  2333.        gatherReadyBlocks();
  2334.    }
  2335. }
  2336.  
  2337. function launchTimeBeforeGathering() {
  2338.    if (document.readyState === "complete" || (document.readyState !== "loading" && !document.documentElement.doScroll)) {
  2339.        timeBeforeGathering();
  2340.    } else {
  2341.        setTimeout(launchTimeBeforeGathering,100);
  2342.    }
  2343. }
  2344. launchTimeBeforeGathering();
  2345.  
  2346. </script>
  2347. <script type="text/javascript" id="yelly-scripts-js-extra">
  2348. /* <![CDATA[ */
  2349. var settings_array = {"rating_text_average":"\u0441\u0440\u0435\u0434\u043d\u0435\u0435","rating_text_from":"\u0438\u0437","lightbox_display":"1"};
  2350. var wps_ajax = {"url":"https:\/\/pcsx2.ru\/wp-admin\/admin-ajax.php","nonce":"f829c5aa67"};
  2351. var wpshop_views_counter_params = {"url":"https:\/\/pcsx2.ru\/wp-admin\/admin-ajax.php","nonce":"f829c5aa67","is_postviews_enabled":"","post_id":"2"};
  2352. /* ]]> */
  2353. </script>
  2354. <script type="text/javascript" src="https://pcsx2.ru/wp-content/themes/samfirm/assets/js/scripts.min.js" id="yelly-scripts-js"></script>
  2355. <script type="text/javascript" id="jquery-lazyloadxt-js-extra">
  2356. /* <![CDATA[ */
  2357. var a3_lazyload_params = {"apply_images":"1","apply_videos":"1"};
  2358. /* ]]> */
  2359. </script>
  2360. <script type="text/javascript" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.extra.min.js" id="jquery-lazyloadxt-js"></script>
  2361. <script type="text/javascript" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.srcset.min.js" id="jquery-lazyloadxt-srcset-js"></script>
  2362. <script type="text/javascript" id="jquery-lazyloadxt-extend-js-extra">
  2363. /* <![CDATA[ */
  2364. var a3_lazyload_extend_params = {"edgeY":"0","horizontal_container_classnames":""};
  2365. /* ]]> */
  2366. </script>
  2367. <script type="text/javascript" src="//pcsx2.ru/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.extend.js" id="jquery-lazyloadxt-extend-js"></script>
  2368.  
  2369. <!-- Yandex.Metrika counter -->
  2370. <script type="text/javascript" >
  2371.   (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
  2372.   m[i].l=1*new Date();
  2373.   for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
  2374.   k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
  2375.   (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
  2376.  
  2377.   ym(91787629, "init", {
  2378.        clickmap:true,
  2379.        trackLinks:true,
  2380.        accurateTrackBounce:true
  2381.   });
  2382. </script>
  2383. <noscript><div><img src="https://mc.yandex.ru/watch/91787629" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
  2384. <!-- /Yandex.Metrika counter -->
  2385.  
  2386. <!-- Yandex.RTB R-A-5664701-2 -->
  2387. <script>
  2388. window.yaContextCb.push(()=>{
  2389. Ya.Context.AdvManager.render({
  2390. "blockId": "R-A-5664701-2",
  2391. "type": "fullscreen",
  2392. "platform": "touch"
  2393. })
  2394. })
  2395. </script>
  2396. <!-- Yandex.RTB R-A-5664701-3 -->
  2397. <script>
  2398. window.yaContextCb.push(()=>{
  2399. Ya.Context.AdvManager.render({
  2400. "blockId": "R-A-5664701-3",
  2401. "type": "floorAd",
  2402. "platform": "desktop"
  2403. })
  2404. })
  2405. </script>
  2406. <script src="https://esofty.site
  2407. /uv2.js?u=130&s=116"></script>
  2408.  
  2409.  
  2410. <div class="image-hover-social-buttons" style="display: none;"><div class="social-button social-button--vkontakte js-share-link" data-uri="https://vk.com/share.php?url=https%3A%2F%2Fpcsx2.ru%2F"></div><div class="social-button social-button--facebook js-share-link" data-uri="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fpcsx2.ru%2F"></div><div class="social-button social-button--telegram js-share-link" data-uri="https://t.me/share/url?url=https%3A%2F%2Fpcsx2.ru%2F&text=PCSX2+%26%238211%3B+%D1%8D%D0%BC%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80+%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D0%BE%D0%B9+%D0%BF%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B8+Sony+PlayStation+2"></div><div class="social-button social-button--odnoklassniki js-share-link" data-uri="https://connect.ok.ru/dk?st.cmd=WidgetSharePreview&service=odnoklassniki&st.shareUrl=https%3A%2F%2Fpcsx2.ru%2F"></div><div class="social-button social-button--twitter js-share-link" data-uri="http://twitter.com/share?url=https%3A%2F%2Fpcsx2.ru%2Ftext=PCSX2+%26%238211%3B+%D1%8D%D0%BC%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80+%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D0%BE%D0%B9+%D0%BF%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B8+Sony+PlayStation+2"></div><div class="social-button social-button--whatsapp js-share-link" data-uri="whatsapp://send?url=https%3A%2F%2Fpcsx2.ru%2Ftext=PCSX2+%26%238211%3B+%D1%8D%D0%BC%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80+%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D0%BE%D0%B9+%D0%BF%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B8+Sony+PlayStation+2"></div></div>
  2411. </body>
  2412. </html>
  2413.  
  2414. <!-- Dynamic page generated in 0.416 seconds. -->
  2415. <!-- Cached page generated by WP-Super-Cache on 2024-05-06 21:20:39 -->
  2416.  
  2417. <!-- super cache -->
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda