Current Status (20070707)
ZPSX is one of the most exciting recent developments on the Zaurus.
It allows most games to be run at reduced resolution (stretch to full screen), and some at the full VGA rez.
See http://www.oesf.org/forums/index.php?showtopic=17052 for current activity.
UPDATE: The discussion thread is now Zpsx: High Performance Psx Emulator For The Zaurus.
Note that an overclocking utility is almost essential to run fast enough!
|Buster Bros Collection||OK||OK|
|Command & Conquer|
|DewPrism||OK, though I tested the jap version so didn't understand||Too slow|
|Dino Crisis 2||choppy sound, locks up||Too slow|
|Final Fantasy Tactics||OK||Slow|
|Oddworld: Abe's Exodus(2CDs)||Strange colours||Too slow|
|One Piece Mansion||OK||OK|
|Resident Evil 2(2CDs)||OK||Too slow|
|Silent Hill||graphical artifacts(*.img ?)||Too slow|
|Sonic Wings||OK, crashes if play as Japanese pilot||Slow|
|Sim City 2000|
|Street Fighter 3 Alpha||OK||Slightly slow|
|Wild Arms 2(2CDs)||OK but 1\10th of the top of the screen is copied at the bottom||Too slow|
|Wipeout XL||OK||Slightly slow|
How To Use
Download from http://www.friggingames.com/zpsx006.zip
Readme file therein says
ZPSX: A PSX emu for the Zaurus :P
Controls: START = ENTER KEY SELECT = SPACEBAR DIGITAL PAD = DIGITAL PAD ON YOUR Z :) TRIANGLE,X,SQUARE,O buttons = A,S,D,F keys (might be in the wrong order) L1,R1,L2,R2 = Z,X,C,V keys K/L = Lower/Raise Frameskip
BIOS: Use the scph1001.bin bios and put it in the same directory as zpsx. The BIOS is NOT needed if using HLE (High Level Emulation).
HLE: High Level Emulation can speed games up. To enable HLE hold down the H key when selecting a game.
NOTES: SDL 1.2.9 is highly recommended. You should *really* try running ZPSX from the console outside of X11 since you will get a fullscreen display as well as a large speed increase. Overclocking helps greatly, but overclock at your own risk. Also you will need the bz2 library installed. To install the bz2 library, copy the libbz2.so.1.0 file included with ZPSX to your /usr/lib/ directory.
UPDATED February 8th, 2006 Grab ZPSX v0.35 at: http://www.friggingames.com/zpsx035.zip New in version v0.35:
- LARGE UPDATE ***
- Speed increase due to figuring out how to still read and write to memory cards with faster timings of the psx's "root counters". Enough of a change in speeds of games that I released this as a new version. - Speed increase in games where stretch blit occured. Reason? Well for 640x480 games, I scaled down by 2 with better code. And for games with resolution only slightly larger than the Zaurus screen, I centered the screen and removed the edges. Also, for screens smaller than the Zaurus screensize, instead of stretching the screen, it leaves the resolution intact, not only making things look cleaner, but speeding that up as well. So see if it's ok enough to live with. If not, let me know. - Hopefully the timings didn't screw stuff up, if they did, let me know and I'll fix it. - The B button now selects a game. Chose to do this by request. :) - SELECT button now works! This means games like R-Types are playable! Yay! :) - All blitting code except certain instances where stretch blit is required, is done in assembly, thanks to AntiPasta. Thanks AntiPasta! :) - Too busy to note all the minor changes. ;P
UPDATED February 4th, 2006 New in version v0.30: - Dramatic overall speedup over last release (v0.34e). I'm finally able to reach better timings of interupts. FF7 gets 21 FPS without sound, and 17 FPS with sound (tested at the first save point) with 0 frameskip. Not too shabby! - Frameskip works now. How embarassing, I forgot to include it in the last release. Anyways, use Volume Down/Up to control frameskip. Going from frameskip 0 to frameskip 1 will make the biggest difference. Frameskip 2 will speed things up further, but may make things choppy as well. Frameskip 3 and higher will most likely be very choppy.
UPDATED February 3rd, 2006 Grab ZPSX v0.20 at: http://www.friggingames.com/zpsx020.zip New in this version: - Fixed the way games are loaded. This means compatibility is better. - HLE has been removed from this release. - Frameskip now adds a bit of performance gain when used. Note that it skips the rendering of frames now, so it may cause minor graphical glitches in the form of graphics not appearing on the screen at certain points in a few games. - Overall performance increase. - Fixed a memory card issue that prevented saved games from loading/saving, as well as memory cards not being able to be read. Many Squaresoft games should work better now.
UPDATED January 31st, 2006 Grab ZPSX v0.10 at: http:://www.friggingames.com/zpsx010.zip New in this version: - Fixed a bug that caused the screen to wrap around the screen vertically. Seen in Ridge Racer and Azure Dreams in v0.33b, now fixed. - Sped up the GPU a bit by only drawing frames that changed. - Changed the PSX timings a bit more to optimize for the Zaurus. You should be able to see speed improvements of some degree. - Loading times within games should be quicker. - Some minor fixes and touch ups. - Games now run at an average of 25 FPS with sound, at frameskip 0 on my Zaurus C1000 @ 624MHz
UPDATED January 26th, 2006 Grab ZPSX v0.06 at: http://www.friggingames.com/zpsx006.zip
New in this version: - Fixed a bug that caused ZPSX to crash when the game menu's current directory had more than about 15 items. The menu system now scrolls. - Fixed a very irritating bug that caused a bunch of games not to work. If you had a game hang at the loading screen with a previous release, try it again now. - Added recommendation for using SDL 1.2.9 since it runs a bit better and works with ZPSX when run from a console.
- Changed the "low-res" version of ZPSX to the filename zpsx_xscale since it will become the standard ZPSX. The hi-res ZPSX is only useful with a few 640x480 games, but even then, zpsx_xscale will scale it down to 320x240, so there's little use for the hi-res version now. - Fixed a bug that stopped input from being processed in the middle of games.
UPDATED January 25th, 2006 Grab ZPSX v0.05 at: http://www.friggingames.com/zpsx005.zip New in this version: - Compressed ISOs work now. - Button input now only goes to the player 1 controller instead of to all controllers. No more pressing start and getting a second player joining the game. :P
UPDATED January 25th, 2006 Grab ZPSX v0.04 at: http://www.friggingames.com/zpsx004.zip New in this release: - HLE now works. Remember though, HLE will just not work with some games yet. Try it out though, as it may give a speed boost. - The file menu now traverses directorys properly - Minor changes to code such as the removal of debug statements. - Also, the PSX bootscreen no longer is displayed on loading of a game.
UPDATED January 24th, 2006 Grab ZPSX v0.03 at: http://www.friggingames.com/zpsx003.zip
ZPSX ( still a working title :P ) has been updated to version 0.03. This release is a good one, at least for me. I finally fixed a long standing bug in my Linux ports of this emulator. Now that this bug is fixed MANY more games work, including many games that required 3D rendering. Tactics Ogre now works, as does Final Fantasy Tactics! All three types of ISOs are now supported, including .BIN/.Z/.ZNX/.BZ. Use PocketISO 2.0 to compress ISOs, but remember that compression of ISOs is good, but when you rip out stuff from the ISO you might encounter errors in emulators. Also of note is HLE now works properly. Hold down the H key when selecting a game to load, and HLE will be used. HLE will speed up some games, but cause errors in others. Try it out and see how it fairs! Oh yeah, the default frameskip is set to 3. You should lower/raise it as needed by pressing the K (lower) and L (raise) keys.
Besides some compiler options, that's all for now. Give this version a go and let me know how it runs! Feedback of any sort is greatly appreciated. Thanks!
UPDATED January 23rd, 2006: Grab ZarPSX v0.02 at: http://www.friggingames.com/zarpsx002.zip
ZarPSX (working title), has been updated to v0.02. This release is pretty much a cleanup of code and a change of the CDR plugin to try to find out what's causing strange glitches in games. Changes include: - CDR plugin changed to cdriso. This allows for .bz compression, but has temporarily taken away .znx compression. Due to including bz compression, you will *need* to have the "libbz2.so.1.0" shared object file put inside the "/usr/lib" directory on your Zaurus. If you need this file, it is included in this release. - Clean up of code. I've tried to take away most of the crap needed for previous ports of this emulator. What's left is pretty much barebones. - Downgraded from PCSX 1.6b to 1.5. I seemed to have left some code related to 1.6b in the last release by accident. Fixed.
This release is only useful to those who care to look at or use the source. Not much has changed for end users of this emulator...yet. At least once I track down a certain bug, compatibility should go way up.
FIRST RELEASE: Yay! ZarPSX has been released!
Grab ZarPSX v0.01 at: http://www.friggingames.com/zarpsx.zip
So, I named the emu ZarPSX. It's a working title. It's ZarPSX and not ZaurPSX since I have a tendancy to prefix things with a 3 letter name. Any suggestions for a final name?
Stuff that works in ZarPSX so far: - Quite a few games. I'm playing R-Types right now. :P - Saving/Loading from memory cards should work. - BIN/Z/ZNX ISO support. I use XDuplicator (CDRTAO open source project frontend) for ripping to raw BIN format, then compress to Z or ZNX with PocketISO 2.0. - Frameskipping works. Right now I only have it so the frameskip setting makes the actual blit skip, not the rendering. I can get a good speed up if I skip rendering of frames, but it causes graphical glitches as you could imagine. - GPU is now my own custom version of Dr Hell's GPU. I like it a lot, but it needs more tweaking. - 640x480 build for full screen 640x480 screen, as well as a 320x240 build for a huge speed increase (60 FPS in Final Fantasy 7 with frameskip of 1-2, though FF7 crashes pretty quickly into the game, more on that later). - All the default controls work. They're mapped as noted below. They'll change as the emulator progresses, I just had this button layout set before people started suggesting there own. :) - File menu for loading ISO's. It sucks, but it works! :) - HLE support works. Hold down the 'H' key when selecting an ISO to run the game using HLE. HLE should improve performance, and perhaps fix or cause glitches by the way it handles emulating the PSX BIOS. When HLE is used, no BIOS ROM is needed, and no PSX splash screen is seen.
Stuff that doesn't work in ZarPSX yet: - Final Fantasy 7 as well as some other games don't work when they should. As you can see in the code for ZarPSX, it's based off of PCSX. Yeah, PCSX. :/ ...Good thing is, PCSX works with a lot of games, including FF7, which is why I'm unsure as to the reason my small modifications to the core of PCSX made these games not work. I was thinking it might actually have to do with some of the "plugin" code I jammed into ZarPSX such as PlugCD.c. If someone feels like getting these games working with ZarPSX, please PM me. :) - MDEC timings are off. This is probably a quick fix, but I timed the MDEC interrupt wrong. MDEC is the "movie codec" the PSX uses. So if you get really jittery or slideshow-like movies, this is why. I'll fix it asap. - Games that span multiple ISOs won't work currently.
As I've explained to Urielka, ZarPSX's code is horrid imho. I think we can make this emulator much better as a community. So take a look at the code, clean it up, edit it, and submit it back to me, and I'll keep everything in order and keep the ZarPSX project humming along. Urielka is researching dynamic recompilers, and if a dynamic recompiler is made for ZarPSX, we will see a fairly good speed increase from it. Right now, 320x240 ZarPSX is pretty fast, full speed for most games with a single frameskip. But 640x480 ZarPSX needs about a 3 or 4 frameskip to reach the same speed, yet appears choppy. So let's get 640x480 full screen ZarPSX fullspeed! :)
Things to help out: - Get a compatibility list for ZarPSX up and running. This will help me out greatly, especially when the emu progresses. A wiki would be good for this most likely. - Fix bugs in ZarPSX and submit them to me. ;) - Get a CVS going? - Help me figure out how to use the framebuffer on the Zaurus Cxxxx line. - Get ZarPSX running on Zaurus' other than the Cxxxx line.
Keep in mind it's "normal" to wait a minute or so for the stupid PSX splash screen to finish. I'll speed this process up for the next release, in the meantime, wait for it or use HLE to skip the process.
How to use ZarPSX:
Controls: PSX -> Zaurus UP/DOWN/LEFT/RIGHT -> Digital Pad X/SQUARE/O/TRIANGLE -> A/S/D/F (might have these in the wrong order, i'll get the correct order in a bit) L1/R1/L2/R2 -> Z/X/C/V START -> ENTER SELECT -> SPACE
SELECT ISO -> ENTER/OK QUIT EMU -> BACKSPACE LOWER FRAMESKIP -> K RAISE FRAMESKIP -> L
Every once and awhile an issue comes along that a game reads from the wrong coord in the VRAM set for the PSX. I made a little fix for this by using the 'P' key to toggle this graphics fix. Don't use it unless you think it's needed (such as when the game seems frozen or is stuck on a blank screen).
BIOS: If you do not use HLE, you will *NEED* a PSX BIOS. The BIOS should be named scph1001.bin and be located where zarpsx is. Please DO NOT ask for this file. If you can't find the file, try using HLE by holding down the 'H' key when selecting an ISO. HLE should give a slight speed increase as well, but may cause glitches.
Saving games: Currently only saving through a memory card file is supported. That's why the two formatted memory card files (.mcr files) are included. Saving within the game to the memory card files should be the same as if it were being saved to an actual memory card on a PSX. So nothing to worry about here. Just keep the .mcr files in the same directory as zarpsx.
Required Librarys: You will need the SDL library as well as the Zlib library installed on your Zaurus.
Required Zaurus: This version will probably only work on the Cxxxx line of Zaurus' from the sounds of things. But maybe not, let me know! :)
Hope you enjoy ZarPSX! There's a long ways for it to go, but it's coming along. Once the compatibility goes up and things speed up enough to be able to use 640x480 over 320x240, things will be smooth. I really do think a fullspeed PSX emulator with sound is possible on the Zaurus Cxxxx. Let's get this project nice and polished.
P.S. Anyone interested in a port of OpenTTD (Transport Tycoon Deluxe) to the Zaurus? I've ported it to many other handhelds, and can probably get it up and running on the Zaurus fairly easily if it hasn't been done already.