mirror of
https://github.com/libretro/Play-.git
synced 2024-11-28 03:00:49 +00:00
538 lines
14 KiB
HTML
538 lines
14 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
|
|
<html>
|
|
|
|
<head>
|
|
<title>Play! - Official Documentation</title>
|
|
<style type="text/css">
|
|
table
|
|
{
|
|
border: 1px outset black;
|
|
}
|
|
|
|
td
|
|
{
|
|
border: 1px inset black;
|
|
}
|
|
|
|
table.comp
|
|
{
|
|
width: 100%;
|
|
}
|
|
|
|
table.ext
|
|
{
|
|
width: 100%;
|
|
}
|
|
|
|
table.ctrl
|
|
{
|
|
width: 100%;
|
|
}
|
|
|
|
td.ctrl_header
|
|
{
|
|
width: 50%;
|
|
text-align: center;
|
|
text-decoration: underline;
|
|
}
|
|
|
|
td.comp_header
|
|
{
|
|
width: 50%;
|
|
text-align: center;
|
|
text-decoration: underline;
|
|
}
|
|
|
|
td.comp_header
|
|
{
|
|
width: 50%;
|
|
text-align: center;
|
|
text-decoration: underline;
|
|
}
|
|
|
|
</style>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<h1>Play! - Official Documentation</h1>
|
|
|
|
<div>
|
|
<h2>Table of Contents</h2>
|
|
|
|
<ul>
|
|
<li><a href="#disclaimer">Disclaimer</a></li>
|
|
<li><a href="#whatsthis">What's this?</a></li>
|
|
<li><a href="#requirements">System Requirements</a></li>
|
|
<li><a href="#features">Technical Features</a></li>
|
|
<li><a href="#guide">Basic User Guide</a>
|
|
<ul>
|
|
<li><a href="#home_directory">Home Directory</a></li>
|
|
<li><a href="#guide_playing">Playing a Game</a></li>
|
|
<li><a href="#guide_controls">Game Controls</a></li>
|
|
<li><a href="#guide_state">State Saving/Loading</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#ext">OpenGL Extensions</a></li>
|
|
<li><a href="#comp">Compatibility</a></li>
|
|
<li><a href="#contact">Contact Information</a></li>
|
|
<li><a href="#greetings">Special Thanks/Greetings</a></li>
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
<hr />
|
|
|
|
<div>
|
|
|
|
<h2 id="disclaimer">Discalimer</h2>
|
|
|
|
<p>
|
|
|
|
This PlayStation 2 emulator is provided as is with absolutely no garantees.
|
|
<br /><br />
|
|
The author takes no responsability for any damage/loss caused by the use of this emulator.
|
|
<br /><br />
|
|
You are not allowed to sell this emulator.
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
<hr />
|
|
|
|
<div>
|
|
|
|
<h2 id="whatsthis">What's this?</h2>
|
|
|
|
<p>
|
|
|
|
Play! is a PlayStation 2 console emulator still in preliminary stages. This won't run your favorite
|
|
PlayStation 2 game perfectly at optimal speed: this only works with a few demos and games created by
|
|
people involved in the non-professional PS2 coding scene.
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
<hr />
|
|
|
|
<div>
|
|
|
|
<h2 id="requirements">System Requirements</h2>
|
|
|
|
<ul>
|
|
<li>OS: Windows XP/Vista/7/8/8.1/10</li>
|
|
<li>CPU: x86 SSSE3 CPU running @ 2.0GHz and + is recommended.</li>
|
|
<li>RAM: 256MBs of RAM is recommended.</li>
|
|
<li>Video Card: Any DirectX9 class GPU should be enough.</li>
|
|
<li>Note: Play! doesn't take advantage of multi-core CPUs yet.</li>
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
<hr />
|
|
|
|
<div>
|
|
|
|
<h2 id="features">Technical Features</h2>
|
|
|
|
<ul>
|
|
<li>EmotionEngine:
|
|
<ul>
|
|
<li>Near complete emulation of the base MIPSIV core.</li>
|
|
<li>Good COP0 (System Control Unit) / COP1 (Floating Point Unit) emulation.</li>
|
|
<li>Fair emulation of the MMI instruction subset.</li>
|
|
<li>CPU emulation done using an instruction caching/recompilation scheme.</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>OS:
|
|
<ul>
|
|
<li>ELF binaries loading support.</li>
|
|
<li>BIOS emulation done in high-level</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>GS/GIF:
|
|
<ul>
|
|
<li>Basic GIF transfers implemented.</li>
|
|
<li>Basic GS registers emulation.</li>
|
|
<li>Basic GS rendering supported (using OpenGL).</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>VU/VIF:
|
|
<ul>
|
|
<li>Micromode support for the VU0/VU1.</li>
|
|
<li>Macromode support for the VU0.</li>
|
|
<li>Basic VIF transfers implemented.</li>
|
|
<li>VU flags emulation not very well supported.</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>IPU:
|
|
<ul>
|
|
<li>MPEG-1/2 macroblock decoding supported.</li>
|
|
<li>All commands emulated.</li>
|
|
<li>Still very buggy, so it won't playback movies really well.</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>IOP/SIF:
|
|
<ul>
|
|
<li>High-level emulation of the IO processor done by intercepting SIF commands and routing them to native modules.</li>
|
|
<li>Common IOP modules emulated in high-level.</li>
|
|
<li>Can load and execute game specific IOP modules.</li>
|
|
</ul>
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
<hr />
|
|
|
|
<div>
|
|
|
|
<h2 id="guide">Basic User Guide</h2>
|
|
|
|
<h3 id="home_directory">Home Directory</h3>
|
|
|
|
<p>
|
|
The first time you'll be running the emulator, it'll create a new "Play Data Files" folder in your "My Documents" folder.
|
|
This is going to be the place where the emulator will store saved games and also the place where it will look for homebrewn games data files.
|
|
</p>
|
|
|
|
<h3 id="guide_playing">Playing a Game</h3>
|
|
|
|
<p>
|
|
To play an homebrewn game or demo, follow these steps:
|
|
</p>
|
|
|
|
<ul>
|
|
<li>Extract the contents of the archive containing the game or demo data into the "/vfs/host" subdirectory of the home directory.</li>
|
|
<li>In the emulator, select "File | Load ELF..." from the menu bar.</li>
|
|
<li>Select the ELF executable image file that should have been extracted in the "/vfs/host" directory.</li>
|
|
<li>After a successful loading, the virtual machine will start executing the program.</li>
|
|
</ul>
|
|
|
|
<p>
|
|
To play a commercial game on a DVD-ROM or in a disk image in raw ISO9660 format (.iso file), follow these steps:
|
|
</p>
|
|
|
|
<ul>
|
|
<li>
|
|
Configure the source that will be used for the disk data by selecting "Options | Virtual File System Manager..." from the menu bar
|
|
and double clicking on the "cdrom0" device.
|
|
<ul>
|
|
<li>
|
|
If you want to use a physical DVD-ROM, click the "Physical CD/DVD Reader Device" radio button
|
|
and select the drive that'll be containing the disk in the combo box below.
|
|
</li>
|
|
<li>
|
|
If you have a disk image, click the "ISO9660 Disk Image" radio button and select your image file by clicking the "..." button.
|
|
</li>
|
|
<li>
|
|
Confirm your changes and go back to the main window.
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>Select "File | Boot cdrom0" from the menu bar.</li>
|
|
<li>After a successful loading, the virtual machine will start executing the program.</li>
|
|
<li>Note: You can also use the "File | Boot Disk Image..." to load a disk image file directly.</li>
|
|
</ul>
|
|
|
|
<h3 id="guide_controls">Game Controls</h3>
|
|
|
|
<p>
|
|
You can change your controller configuration by selecting "Options | Controller Settings...". It's possible to use either your keyboard
|
|
or your DirectInput compatible game controller to bind with the Dual Shock controller keys. The default config is this one:
|
|
</p>
|
|
|
|
<table class="ctrl">
|
|
<tr>
|
|
<td class="ctrl_header">Dual Shock Controller Button</td>
|
|
<td class="ctrl_header">Keyboard Equivalent</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Left (d-pad)</td>
|
|
<td>Left Arrow</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Right (d-pad)</td>
|
|
<td>Right Arrow</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Up (d-pad)</td>
|
|
<td>Up Arrow</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Down (d-pad)</td>
|
|
<td>Down Arrow</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Square</td>
|
|
<td>A</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Cross (X)</td>
|
|
<td>Z</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Triangle</td>
|
|
<td>S</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Circle</td>
|
|
<td>X</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Start</td>
|
|
<td>Return</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Select</td>
|
|
<td>Left or Right Shift</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3 id="guide_state">State Saving/Loading</h3>
|
|
|
|
<p>
|
|
To save a state, simply press F7 or select the "Virtual Machine | Save State" menu item.
|
|
To load a previously saved state, press F8 or select the "Virtual Machine | Load State" menu item. There's also 10 slots
|
|
available for you to place your saved states in, accessible through the "Virtual Machine | State Slot" submenu. Please note that
|
|
saved states aren't very stable and could result in data loss. Prefer using the game's save mechanism if it's available.
|
|
</p>
|
|
|
|
</div>
|
|
|
|
<hr />
|
|
|
|
<div>
|
|
|
|
<h2 id="ext">OpenGL Extensions</h2>
|
|
|
|
<p>
|
|
|
|
The current GS handler requires some OpenGL extensions in order to emulate some features of the GS correctly.
|
|
To check which extensions are supported by your video card driver, consult the "Renderer Settings" dialog in the emulator.
|
|
The following table lists which extensions are currently being used and what might be the consequences
|
|
if your video card driver do not support them.
|
|
|
|
</p>
|
|
|
|
<table class="ext">
|
|
<tr>
|
|
<td class="comp_header">Extension</td>
|
|
<td class="comp_header">Absence Effect</td>
|
|
</tr>
|
|
<tr>
|
|
<td>glBlendColor function</td>
|
|
<td>Used for "Ys I & II: Eternal Story". Some elements of the game that should appear translucent will appear opaque.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>glBlendEquation function</td>
|
|
<td>Used for "Ys I & II: Eternal Story". Some elements of the game that should appear translucent will appear opaque.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>glColorTable function</td>
|
|
<td>Used for "Ys I & II: Eternal Story". Textures need to be converted to the RGBA8888 format resulting in a slow down.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>GL_UNSIGNED_SHORT_1_5_5_5_REV texture format</td>
|
|
<td>Used for "Lobotomia". Textures need to be converted to the RGBA8888 format resulting in a slow down.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</div>
|
|
|
|
<hr />
|
|
|
|
<div>
|
|
|
|
<h2 id="comp">Compatibility</h2>
|
|
|
|
<p>
|
|
The following table lists the games I've tested with the emulator and the status of thier support.
|
|
Please note that sound isn't considered in this compatibility list.
|
|
</p>
|
|
|
|
<table class="comp">
|
|
<tr>
|
|
<td class="comp_header">Game/Demo</td>
|
|
<td class="comp_header">Compatibility Status</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="comp_header" colspan="2">Commercial Games</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Akumajou Dracula - Yami no Juin (SLPM_661.75)</td>
|
|
<td>
|
|
<ul>
|
|
<li>Deadlocks occuring during loading screens (rare).</li>
|
|
<li>3D broken at some places.</li>
|
|
<li>Use SMODE2 flipping mode.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Atelier Iris - Eternal Mana (SLPM_660.81)</td>
|
|
<td>
|
|
<ul>
|
|
<li>Sluggish 3D scenes.</li>
|
|
<li>Use SMODE2 flipping mode.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Castlevania - Lament of Innoncence (SLUS_207.33)</td>
|
|
<td>
|
|
<ul>
|
|
<li>Initial menu only.</li>
|
|
<li>Use SMODE2 flipping mode.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Final Fantasy X (SLUS_203.12)</td>
|
|
<td>
|
|
<ul>
|
|
<li>3D scenes are very slow and glitchy.</li>
|
|
<li>Use SMODE2 flipping mode.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Guilty Gear XX Accent Core Plus (SLPM_669.65)</td>
|
|
<td>
|
|
<ul>
|
|
<li>Saved games doesn't work.</li>
|
|
<li>Use VBLANK flipping mode.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Half-Life (SLES_505.04)</td>
|
|
<td>
|
|
<ul>
|
|
<li>Saved games doesn't work.</li>
|
|
<li>Very sluggish and broken 3D scenes.</li>
|
|
<li>Use SMODE2 flipping mode.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Mega Man X Collection (SLUS_213.70)</td>
|
|
<td>
|
|
<ul>
|
|
<li>Initial menu only.</li>
|
|
<li>Use SMODE2 flipping mode.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Ys I & II: Eternal Story (SPLS_252.06)</td>
|
|
<td>
|
|
<ul>
|
|
<li>No particles when hitting enemies;</li>
|
|
<li>Flickering in some scenes.</li>
|
|
<li>Saved games doesn't work.</li>
|
|
<li>Use SMODE2 flipping mode.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="comp_header" colspan="2">Homebrewn</td>
|
|
</tr>
|
|
<tr>
|
|
<td>1987 (1987.elf)</td>
|
|
<td>
|
|
<ul>
|
|
<li>Slow.</li>
|
|
<li>Use VBLANK flipping mode.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>By The Way (bytheway.elf)</td>
|
|
<td>
|
|
<ul>
|
|
<li>Slow.</li>
|
|
<li>Video output is cut in half.</li>
|
|
<li>Use VBLANK flipping mode.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Cube Mastah (cubemastah.elf)</td>
|
|
<td>Broken.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>FiRE (FiRE.elf)</td>
|
|
<td>Working.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Lobotomia (LOBOTOM.ELF)</td>
|
|
<td>Broken.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Plasma Tunnel (plasma_tunnel.elf)</td>
|
|
<td>Working.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>PS2 Invaders v1.6 (space.elf)</td>
|
|
<td>Broken.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Quake (quake.elf)</td>
|
|
<td>Working with the version that doesn't use the USB module.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Slave of the VU (slave_of_the_vu.elf)</td>
|
|
<td>Broken.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>PS2 Doom</td>
|
|
<td>Use FBDISP2 flipping mode.</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<hr />
|
|
|
|
<div>
|
|
|
|
<h2 id="contact">Contact Information</h2>
|
|
|
|
<p>
|
|
e-mail: <a href="mailto:jean-philip.desjardins@polymtl.ca">jean-philip.desjardins@polymtl.ca</a>
|
|
<br />
|
|
WWW: <a href="http://purei.org">http://purei.org</a>
|
|
<br />
|
|
Forums: <a href="http://forum.purei.org">http://forum.purei.org</a>
|
|
</p>
|
|
|
|
</div>
|
|
|
|
<hr />
|
|
|
|
<div>
|
|
<h2 id="greetings">Special Thanks/Greetings</h2>
|
|
|
|
<p>
|
|
<a href="http://ps2dev.org">ps2dev</a> (great source for technical info/demos/source code), <a href="http://boost.org">boost</a>, <a href="http://zlib.net">zlib</a>, <a href="http://bzip.org/">bzip2</a>, Valnyan, Charles Verdon, Eric Bernard,
|
|
Brian Guthrie, thrended.
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</body>
|
|
|
|
</html>
|