CINXE.COM
Strange games - PPSSPP
<!doctype html> <html lang="en" data-theme="dark"> <head> <title>Strange games - PPSSPP</title> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script async src="https://www.googletagmanager.com/gtag/js?id=G-PEQLDV0155"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'G-PEQLDV0155'); </script> <link rel="stylesheet" type="text/css" href="/static/css/all.css"> <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="PPSSPP RSS Feed"> <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="PPSSPP Atom Feed"> <script src="/static/script/squirrelly.min.js" defer></script> <script src="/static/script/main.js" defer></script> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3281131109267988" crossorigin="anonymous"></script> <script> // Special behaviors. There's probably a better way. var g_loginByKey = false; var g_thankYouPage = false; var g_downloadPage = false; </script> <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/js/fontawesome.min.js" crossorigin="anonymous" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/js/solid.min.js" crossorigin="anonymous" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/js/brands.min.js" crossorigin="anonymous" defer></script> </head> <body> <div class="page-wrapper"> <nav class="top-nav"> <div class='menu-button-container' id="burgerButton" onclick="burgerClick()" tabindex="0"> <div class='menu-button'></div> </div> <div class="top-nav-logo"> <a href="/" class="center-vertical"><img src="/static/img/platform/ppsspp-icon.png" alt="icon" class="icon-32"> PPSSPP</a> </div> <ul class="menu"> <li><a href="/download" class="">Downloads</a></li> <li><a href="/news" class="">News</a></li> <li><a href="/blog" class="">Blog</a></li> <li><a href="/docs" class="selected">Docs & Help</a></li> <li><a href="/media" class="">Media</a></li> <li><a href="/contact" class="">Contact</a></li> <li><a href="https://forums.ppsspp.org/" class=" external">Forums <i class="fas fa-up-right-from-square icon-link" alt=""></i></a></li> <li><a href="https://github.com/hrydgard/ppsspp" class=" external">GitHub <i class="fas fa-up-right-from-square icon-link" alt=""></i></a></li> <li> <div onclick="switchTheme()" style="display:inline"><i class="fas fa-moon"></i></div> </li> </ul> <div id="loginCorner" style="display:inline"><a href="/login">Login</a></div> </nav> <section class="contents"> <div class="burger-sidebar hidden" id="rootSidebar"> <!-- We repeat all the same stuff again, but add Login. better than crazy CSS tricks... --> <ul class="burger-menu"> <li><a href="/download" class="">Downloads</a></li> <li><a href="/news" class="">News</a></li> <li><a href="/blog" class="">Blog</a></li> <li><a href="/docs" class="selected">Docs & Help</a></li> <li><a href="/media" class="">Media</a></li> <li><a href="/contact" class="">Contact</a></li> <li><a href="https://forums.ppsspp.org/" class=" external">Forums <i class="fas fa-up-right-from-square icon-link" alt=""></i></a></li> <li><a href="https://github.com/hrydgard/ppsspp" class=" external">GitHub <i class="fas fa-up-right-from-square icon-link" alt=""></i></a></li> <li> <div id="loginItem"><a href="/login">Login</a></div> </li> <li> <a id="darkItem" class="switch-theme" onclick="switchTheme()"> <i class="fas fa-moon"></i> Dark Mode </a> </li> </ul> </div> <div class="doc-container"> <div class="doc-sidebar" id="localSidebar"> <ul class="nav-tree-items level-0"> <li><a href="/docs/getting-started" class="nav-tree-category">Getting started</a></li> <li><a href="/docs/troubleshooting" class="nav-tree-category">Troubleshooting</a></li> <li><a href="/docs/settings" class="nav-tree-category">Settings</a></li> <li><a href="/docs/development" class="nav-tree-category">Development</a></li> <li><a href="/docs/multiplayer" class="nav-tree-category">Multiplayer</a></li> <li><a href="/docs/psp-hardware" class="nav-tree-category">PSP hardware</a></li> <li><a href="/docs/reference" class="nav-tree-category selected">Reference</a><ul class="nav-tree-items level-1"> <li><a href="/docs/reference/command-line" class="nav-tree-item ">Command Line arguments</a></li> <li><a href="/docs/reference/texture-replacement" class="nav-tree-item ">Creating texture replacement packs</a></li> <li><a href="/docs/reference/custom-drivers" class="nav-tree-item ">Custom Adreno graphics drivers</a></li> <li><a href="/docs/reference/custom-background-music" class="nav-tree-item ">Custom background music</a></li> <li><a href="/docs/reference/disc-streaming" class="nav-tree-item ">Disc streaming</a></li> <li><a href="/docs/reference/homebrew-store-distribution" class="nav-tree-item ">Distribution terms of the content in the homebrew store</a></li> <li><a href="/docs/reference/front-end-integration" class="nav-tree-item ">Front end integration on Android</a></li> <li><a href="/docs/reference/how-to-update" class="nav-tree-item ">How to update PPSSPP</a></li> <li><a href="/docs/reference/rewind" class="nav-tree-item ">How to use the Rewind feature</a></li> <li><a href="/docs/reference/whygold" class="nav-tree-item ">PPSSPP Gold - the what and why</a></li> <li><a href="/docs/reference/legacy-edition" class="nav-tree-item ">PPSSPP Legacy Edition for Android</a></li> <li><a href="/docs/reference/websocket-api" class="nav-tree-item ">PPSSPP Websocket API</a></li> <li><a href="/docs/reference/ios-support" class="nav-tree-item ">PPSSPP for iOS</a></li> <li><a href="/docs/reference/mac" class="nav-tree-item ">PPSSPP on macOS</a></li> <li><a href="/docs/reference/process-hacks" class="nav-tree-item ">PPSSPP process hacking</a></li> <li><a href="/docs/reference/psp-custom-firmware" class="nav-tree-item ">PSP Custom Firmware resources</a></li> <li><a href="/docs/reference/plugins" class="nav-tree-item ">Plugins in PPSSPP</a></li> <li><a href="/docs/reference/retro-achievements" class="nav-tree-item ">RetroAchievements - setup and use</a></li> <li><a href="/docs/reference/strange-games" class="nav-tree-item selected">Strange games</a></li> <li><a href="/docs/reference/interesting-links" class="nav-tree-item ">Test Drive hacking by TAbdiukov</a></li> <li><a href="/docs/reference/android-release-process" class="nav-tree-item ">The Android release process</a></li> <li><a href="/docs/reference/custom-game-configs" class="nav-tree-item ">Using custom game configs</a></li> <li><a href="/docs/reference/use-texture-replacement" class="nav-tree-item ">Using texture replacement packs</a></li> <li><a href="/docs/reference/key-bindings" class="nav-tree-item ">What are all those key binds?</a></li> </ul> </li> <li><a href="/docs/articles" class="nav-tree-category">Articles</a></li> <li><a href="/docs/intro" class="nav-tree-item ">Documentation & Help</a></li> <li><a href="/docs/faq" class="nav-tree-item ">FAQ - Frequently Asked Questions</a></li> </ul> </div> <div class="doc-contents"> <ul class="breadcrumb" vocab="https://schema.org/" typeof="BreadcrumbList"> <li property="itemListElement" typeof="ListItem"> <a href="/docs" property="item" typeof="WebPage"> <span property="name">Docs</span> </a> <meta property="position" content="0"> </li> <li property="itemListElement" typeof="ListItem"> <a href="/docs/reference" property="item" typeof="WebPage"> <span property="name">Reference</span> </a> <meta property="position" content="0"> </li> <li property="itemListElement" typeof="ListItem"> <a href="/docs/reference/strange-games" property="item" typeof="WebPage"> <span property="name">Strange games</span> </a> <meta property="position" content="0"> </li> </ul> <h1>Strange games</h1> <p>These are a list of games that tend to cause questions, or do questionable things.</p> <h2>Zenonia</h2> <p>This is a pixel-art game that nevertheless doesn't use exact PSP pixels for its graphics. It has its own strange resolution and relies on bilinear filtering to not look bad. This means that unlike with most other games, you can't get perfect pixels by the usual combination: Nearest texture filtering, 1x rendering, nearest scale factor and integer scaling. Instead, the result will be a distorted mess.</p> <p>The likely cause of this is that the game is a port from a mobile phone game, likely a device with a very different resolution so just translating the graphics 1:1 made things too small on the PSP.</p> <p>For this game, if you want the sharp pixel look, change texture filtering to nearest and crank up the rendering resolution to 5x or more. That's as close as you'll get to an ideal result.</p> <h2>Darkstalkers</h2> <p>This game draws to the screen using the CPU. This is highly unusual outside homebrew software, and it even uses the GE to draw hardware accelerated graphics and then draws using the CPU on top. This is not possible to emulate efficiently using a PC GPU, so instead, for this game we force the use of our software renderer, with some special optimizations.</p> <p>Additionally, this game runs at an unusual resolution, and it ends each frame by upscaling its lower resolution framebuffer to full screen. This is quite expensive to do with the software renderer due to it being a full screen bilinear filtered blit, plus it ruins the sharpness of the image, so instead we completely bypass this step, and use the low original resolution directly, for a much better result.</p> <p>This means that in PPSSPP, it's the only game that doesn't actually run at 480x272 at 1x render resolution!</p> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3281131109267988" crossorigin="anonymous"></script> <!-- Responsive Black --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3281131109267988" data-ad-slot="6642932432" data-ad-format="auto"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> <div class="nav-link-container"> <a href="/docs/reference/retro-achievements" class="nav-link"> <div class="direction"> Prev </div> <div class="title"> « RetroAchievements - setup and use </div> </a> <a href="/docs/reference/interesting-links" class="nav-link next"> <div class="direction"> Next </div> <div class="title"> Test Drive hacking by TAbdiukov » </div> </a> </div> </div> </div> </section> <footer> <div class="container"> <div class="row"> <div class="col-4"> <h2>Documentation</h2> <ul class="clean-list"> <li><a href="/docs/intro">Docs & Help</a></li> <li><a href="/docs/getting-started">Getting Started</a></li> </ul> </div> <div class="col-4"> <h2>Community</h2> <ul class="clean-list"> <li><a href="https://discord.gg/5NJB6dD">Discord <i class="fas fa-up-right-from-square icon-link" alt=""></i></a> </li> <li><a href="https://x.com/PPSSPP_emu">PPSSPP on X <i class="fas fa-up-right-from-square icon-link" alt=""></i></a> </li> </ul> </div> <div class="col-4"> <h2>More</h2> <ul class="clean-list"> <li><a href="https://github.com/hrydgard/ppsspp">GitHub <i class="fas fa-up-right-from-square icon-link" alt=""></i></a></li> <li><a href="https://github.com/hrydgard/ppsspp-site">Website GitHub <i class="fas fa-up-right-from-square icon-link" alt=""></i></a></li> <li><a href="/login">Login</a></li> </ul> </div> </div> <div class="center-text footer-bottom-text"> Copyright 漏 2024 PPSSPP Project. <a href="/privacy">Privacy Policy</a> </div> </div> </footer> </div> </body> </html>