@database SOPE.guide @node "Main" "SOPE - Sony Playstation emulator" SOPE v000502, (000502) AmigaPPC version by Mathias "AmiDog" Roslund 2000 @{" Introduction " link "introduction"} - What is this? @{" Requirements " link "requirements"} - What does it require? @{" Features " link "features"} - What can it do? @{" Installation " link "installation"} - How to install? @{" Usage " link "usage"} - How do I use it? @{" Options " link "options"} - What does these do? @{" Disclaimer " link "disclaimer"} - Who's responsible? @{" History " link "history"} - What's new? @{" Contact " link "contact"} - How to contact me? Visit the homepage at http://www.amidog.com/emu/ @endnode @node "introduction" "SOPE - Introduction" This is a Sony Playstation emulator written by Sadruddin Rejeb and Scott Smith. This AmigaPPC port is not finished, there is currently no sound. Most endian releated bugs should be gone, atleast I've not been able to spot any differences in compatibility or graphical appearance between SOPE running on my big endian Amiga, or using my little endian (x86) Linux system. @endnode @node "requirements" "SOPE - Requirements" Hardware: * Amiga with a PowerPC board * CGFX v3 * 32 MB of RAM * OS 3.0 Software: * WarpUP v4 * Playstation BIOS file (renamed to just bios), scph1001 is recommended * Warp3D v3 for MiniGL support. @endnode @node "features" "SOPE - Features" This is an early Sony Playstation emulators and a lot of things are still missing like CD-ROM support. Most of the Sony Playstation hardware are more or less emulated though, so some demos works. SOPE features both a software and a hardware (OpenGL) renderer and has some experimental sound support. NOTE: The Amiga version doesn't support sound currently. @endnode @node "installation" "SOPE - Installation" Just copy it to any place on your HD. @endnode @node "usage" "SOPE - Usage" * The different versions of sope: sope_dyn_mgl.exe - Dynamic recompiler and MiniGL renderer. sope_dyn_soft.exe - Dymanic recompiler and Software renderer. sope_int_mgl.exe - Interpretive emulation and MiniGL renderer. sope_int_soft.exe - Interpretive emulation and Software renderer. * Starting SOPE: 1. Open a shell window 2. Increase the stack, 100k (stack 100000 ) should be enough 3. Type sope_your_choice.exe * Files: The files can be either PS-X EXE files or .PLL files (for many-files demos) PLL files are plain text files, each line performing an action: LOAD xxxxxx.exe # Loads an executable file DATA xxxxxx.dat 80080000 # Loads a data file at the specified adress SETPC 80080000 # Set the PC register to the specified value * Pad emulation: SPACE - Start ENTER - Select 1 - L1 2 - L2 9 - R1 0 - R2 X - Cross E - Circle S - Triangle D - Square Cursor keys - Directionnal buttons * Other keys: ESC - Quit emulator N - Disable/Enable Texturing B - Enable/Disable Bilinear Filtering U - Disable/Enable All Rendering (do NOT use with MiniGL) F - Disable/Enable Cosmetic stuff (Transparencies, Blending) NOTE: You can quit the emulator in window mode by just closing the window. @endnode @node "options" "SOPE - Options" -n Disable Texturing -b Enable Bilinear Filtering -v n To force VBlank interrupt period to n*1000 [default n=30]. n must be < 66 -p Force PAL (display to be equal to n*256 lines) -s Enable sound -u Disable All Rendering -g=XxY Specify window/screen dimensions (MiniGL renderer) Amiga specific: -highcolor Open a 16bit screen (default: window) -truecolor Open a 32bit screen (default: window) @endnode @node "disclaimer" "SOPE - Disclaimer" Remember! You use this piece of software at your own risk! I can never be held responsible for any sort of damage caused to your software or hardware by the use of this product! Bugreports and suggestions might be sent to one of my addresses. @endnode @node "contact" "SOPE - Contact" Bugreports, suggestions, comments or anything else you may want to contact me about can preferably be sent by e-mail to: sope@amidog.com You may however also contact me by normal mail: Mathias Roslund Sveav. 2b, nb S-702 14 Orebro Sweden @endnode @node "history" "SOPE - History" v000301 -000308 -After about 50-60 hours of tracing endian related bugs, the big endian support in SOPE is starting to shape up real nicely. -All AmigaOS code (except OpenGL/Sound) is implemented and works. v000310 -000309 -Now, this is strange, but with all timezones and stuff I can actually work on the 10th of Mars release when it's still the 9th of Mars. -More endian fixes, now the TRex demo acts like it should, not that I get any gfx, but it wont stop with an error atleast. -Changed the way some of the variables are handled, should be a bit faster. -000311 -After testing most demos I have and not finding any big problems (except for the Manta demo on the first playstation demo cd, which appears to end up in an infinitiv loop), I've decided to make a new release. v000418 -000319 -Started writing a dynarec for SOPE, currently only a few instructions are emulated but most of the compiler has been written. -000320-000323 -Added several instructions to the dynarec, improved the compiler a lot. -000324 -Implemented more instructions. -Removed a bug related to all branch instructions. -000325 -More instructions added, now GTE works (but slowly). -Fixed a bug with the SLT instructions which could get SOPE into an infinit loop. -Added the last instructions. The compatibility appears to be the same for the interpretive and dynaimc CPU core. The speed of the dynarec is sadly quite poor MAD1ST gives 10.5fps with interpreter and 20.9fps with dynarec (with the rendering disabled) on my 603e'200. There are a lot of places where optimization can be done however, so I hope to be able to improve things. -000327 -Optimized the SLT instructions. -The compiled code now only push/pop the required registers, MAD1ST now gives 22.8fps. -Some minor changes to the compiler. -Optimized all GTE calls from the dynarec. -000328 -Started working on a MiniGL version, but currently it just crashes. -Tried to compile a StormMESA version, but it don't work as supposed to currently. -000329 -Modified the interpretive core to work with the changes done for the dynarec one. -Optimized the interpretive core somewhat, about 5-10% faster now. -General code cleanup. -000404 -After a few days and many headaches, I've finally gotten the MiniGL version to work! Sadly there is no texture support in the OpenGL code from SOPE. -Of some reason, I have to compile MiniGL and SOPE with EGCS 2.95.1 to get MiniGL to work, and somehow this wrecks my dynarec a bit, the MAD1ST logo appears on the wrong place for example. I have NO idea about why currently. It's not possible to compile the GPU code with optimization either. -000405 -Upgraded to EGCS 2.95.2 which appears to be less buggy (I can now compile the GPU code with optimization). -Fixed the dynarec bug. With EGCS 2.95.2 the arguments passed to the memwrite functions weren't masked as when compiling with GCC 2.7.2.1 which gave the strange result. -Minor changes to the dynarec and some GTE commands. -000411 -Added a nice texture cache to the MiniGL renderer. There are some problems with the alignment which has to be fixed. -Made it possible for the renderer to disable ALL stdio, which is required unless one like to crash the Amiga while using MiniGL. -000413 -Fixed the alignment problems with textures. -Added a custom GPU cache system since MiniGL doesn't support GL lists, of some reason this wrecks the MAD1ST logo, but the other demos I've tried do work ok, and if I disable the texture cache (reducing the speed from 26fps to 1fps), it looks weird at first, but it fixed itself. I have to investigate this. -000414 -I don't seam to be able to fix the MAD1ST problem, I probably need to support the texture cache flush of the PSX for this to work correctly. -Just tried dynarec + MiniGL and got about 30fps in demos giving only 7-8fps using interpreter + software. A nice improvement :) -000418 -Fixed the MAD1ST texture problem by caching the textures when they should've been used, and not when actually being used (i.e. while executing the cached GPU commands). v000502 -000501 -Improved the output from the MiniGL version somewhat. Atleast the transparent areas of textures are transparent now. It's however impossible to get accurate output since no 3D hardware for the Amiga supports the required blendingmodes. -000502 -changed the source layout somewhat. The makefile has been changed to always build all four versions of SOPE. @endnode