Skip to content
/ hpsx64 Public

Mirror of the HPSx64 Repository on Sourceforge.net

Notifications You must be signed in to change notification settings

Zero3K/hpsx64

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Full Program Name: Highly-Experimental Playstation Simulator x64
Program Author: TheGangster
Platforms: Windows 64-bit


Contents:

hps1x64 - Playstation 1 simulator
---------------------------------

Current System Requirements:
64-bit x64 Processor

Status: In development - Pre-initial Source code and binary release - Development/Testing usage only
Current Version:
hps1x64 v0410 - spu/spu2 reverb bugfix, early experimental hardware renderer (compute shader)
Older Versions:
hps1x64 v0400 - fixed wrong pal/ntsc ps1 timer settings in ps2 mode, last bios used saved in settings and loaded automatically on open
hps1x64 v0390 - json settings, json menubar, Visual Studio compatibility, SPU2 fixes
hps1x64 v0380 - dma priority changes, spu2 KON/KOFF fixes, spu2 LOOP flag fixes, dma timing fix, cdvd early dual layer support
hps1x64 v0370 - spu2 interrupt fixes
hps1x64 v0360 - removed multi-threading from hps1
hps1x64 v0351 - reference dependency issue again after compiler switch - fixed thanks to Sharpnull (added to special thanks), spu2 SPUDIF fix, more logical adma
hps1x64 v0350 - dma interrupt fixes
hps1x64 v0340 - improved multi-threading, multi-player control pad fixes, R3000A reg read recompiler fix
hps1x64 v0330 - fixed SPU cmvol/vol l/r clamp bug, R3000A recompiler bug fixed (uninitialized variable), NAXH/NAXL fixes (spu2)
hps1x64 v0320 - R3000A recompiler optimizations, spu2 core 1 bug fixed, spu2 manual write fixed
hps1x64 v0310 - some recompiled instruction optimizations (SLT,SLTI,SLTU,SLTIU), SPU2 IRQ bug fixed, SPU2 VOL L/R inc/dec mode bug fixed
hps1x64 v0301 - bug report fixed - checked for and removed all dll dependencies
hps1x64 v0300 - spu improvements (ADSR, auto-dma)
hps1x64 v0290 - fixed dma lock/freeze problem, fixed a wraparound invalidation bug, preliminary direct input control pad api, multi-player fixes
hps1x64 v0280 - fixed LB/LH bug in recompiler
hps1x64 v0270 - fixed a problem with DMA PCR, corrected a timing issue in R3000A recompiler for scratchpad writes
hps1x64 v0260 - Window size options, R3000A optimizations (LWL/LWR/SWL/SWR)
hps1x64 v0252 - compatibility fixes
hps1x64 v0250 - GUI optimizations
hps1x64 v0244 - R3000A recompiler optimizations (load/store), fixed potential COP2 register issue in R3000A recompiler load/store
hps1x64 v0243 - initial R3000A recompiler optimizations (load/store)
hps1x64 v0241 - source code cleanup
hps1x64 v024 - pad remapping
hps1x64 v0232 - removed OpenCL references and non-standard windows dlls
hps1x64 v0231 - fixed GetOverlappedResultEx Windows 7 issue reported by Hector
hps1x64 v023 - fixed pad set mode command, faster graphics, multi-threading capability, async disk reads, program window fixes
hps1x64 v022 - GPU updates, CPU updates, improved CUE support, Scanline option, R3000A recompiler
hps1x64 v021 - Optimized event handling, fixed dma bug introduced by recoding ps1 dma
hps1x64 v020 - Recoded PS1 DMA
hps1x64 v019 - DMA priority fixes
hps1x64 v018 - polygon drawing fixes, bug fixes, improved speed
hps1x64 v017 - DMA modifications, improved System operation
v016 - SPU optimizations, timer interrupt bug fixed, MFC0 bug fixed
v015 - proper pixel format conversion, timer fixes, SPU fixes, Faster startup code. Improved accuracy.
v014 - less RAM usage, Fullscreen support (use "f" key), saved configurations, CD fixes. Improved speed. Improved compatibility.
v013 - pre-initial release 13 - MDEC fixes, GPU fixes, CD fixes. Improved compatibility.
v012 - pre-initial release 12 - CD fixes, DMA fixes, COP2 fixes. Improved compatibility.
v011 - pre-initial release 11 - improved XA, Timer overhaul, SIO/PAD fixes, CPU fixes. Improved compatibility.
v010 - pre-initial release 10 - SPU/LSA fixes, CD fixes (getparam, sector reads), COP2 delay slot fix, Auto Pause fixes, DMA2 fixes. Improved compatibility.
v009 - pre-initial release 9 - MDEC Overhaul. GUI fixes, CD fixes, SPU fixes. Improved compatibility.
v008 - pre-initial release 8 - Auto Pause implemented, GPU fixes, CD fixes, SPU fixes. Improved compatibility.
v007 - pre-initial release 7 - Disk change support, CDDA fixes, GPU fixes, COP2 fixes. Improved compatibility. Improved accuracy.
v006 - pre-initial release 6 - R3000A fixes. COP2 fixes. SPU fixes. CD fixes. improved compatibility.
v005 - pre-initial release 5 - improved speed, improved compatibility, improved accuracy
v004 - pre-initial release 4 - reverb support, dithering support, improved speed, improved compatibility
v003 - pre-initial release 3 - improved compatibility, bin/img/iso/cue/ccd/sub support, memory card support, joystick support, preliminary sound support.
v002 - pre-initial release 2 - improved compatibility, improved speed, improved accuracy. If something is not working, try enabling analog first thing.
v001 - pre-initial release - only use this version if you intend to test or evaluate progress
v000 - pre-initial evaluation only release


hps2x64 - Playstation 2 simulator
---------------------------------

Current System Requirements:
64-bit x64 Processor (4+ cores)
SSE 4.2 (for R5900 recompiler and VU)(but avx2/avx-512 needed in the future for performance)
Vulkan-capable GPU (1 core for now/testing, 8+ in future)
2GB RAM free

Status: In development - Not ready for release
Current Version:
hps2x64 v028 - R5900 PDIV* fixes, early experimental hardware renderer (compute shader)
Older Versions:
hps2x64 v027 - pal/ntsc timing fixes, pcrtc fixes, IPU fixes, last bios used saved in settings and loaded automatically on open
hps2x64 v026 - json settings, json menubar, Visual Studio compatibility, vu static analysis, VU fixes
hps2x64 v025 - fixed an issue with HWREG, compatibility improvements, ps2 dma start/continue fixes
hps2x64 v024 - vu recompiler state cache, gpu optimizations, better pcrtc, gpu code fixes, removed/disabled multi-threaded vu1 option, temporarily disabled R5900 DCache
hps2x64 v023 - gpu buffer in/out/copy fixes, gpu optimizations, early vu state cache
hps2x64 v022 - proper handling of disabled gpu packets
hps2x64 v021 - reference dependency issue again after compiler switch - fixed thanks to Sharpnull (added to special thanks)
hps2x64 v020 - early experimental multi-threaded vu1 option (disabled by default), R5900 DCache fixes
hps2x64 v019 - improved multi-threading, partial data cache implementation (except lock bit), partial btac simulation, R5900 reg read recompiler fix
hps2x64 v018 - IPU fixes, DMA fixes, vu0 watchdog timer implemented
hps2x64 v017 - fixed bugs in R5900 (PSUBSW,PSUBUW,PADDSW,PADDUW,SRAV), VU1 External Unit fixes, faster R5900 wait state for VU0, path 3 mask fixes
hps2x64 v016 - improved floating-point vector multiply accuracy, improved RNEXT accuracy, vif1 fifo cpu reads implemented
hps2x64 v0151 - bug report fixed - checked for and removed all dll dependencies
hps2x64 v015 - fixed GPU local copy bugs, fixed problems with MR32 and MTIR, crash fixes
hps2x64 v014 - fixed VU unpack lock/freeze problem, fixed gpu buffer copy bug, faster optimized gpu
hps2x64 v013 - invalidate crash fix, improved mfifo, RGET/RNEXT fixes, fixed LB/LH/LW bug in recompiler, fixed JALR bug in VU recompiler
hps2x64 v012 - GPU bug fixes, VU#0 macro/micro mode load/store recompile, R5900 optimizations (PADDSW/PADDUW/PSUBSW/PSUBUW), VU bug fixes (LQI/LDI/SQI/SDI)
hps2x64 v011 - Window size options, bug fixes, compatibility fixes, R5900 optimizations (LWL/LDL/SWL/SWR/SDL/SDR/QFSRV)
hps2x64 v0102 - compatibility fixes
hps2x64 v010 - GUI optimizations, multi-threading optimizations, early SPU2 backend multi-threading
hps2x64 v0094 - more R5900 load/store recompiler optimizations (LBU,LHU,LWU)
hps2x64 v0093 - R5900 recompiler optimizations (load/store), vectorized GPU backend
hps2x64 v0091 - R5900 recompiler fixes, FPU recompiler fixes, VU recompiler fixes, GPU fixes
hps2x64 v009 - R5900 FPU recompiler, R5900 unaligned load/store recompilation, VU macro recompiler, VU micro recompiler, pad remapping
hps1x64 v0082 - removed OpenCL references and non-standard windows dlls
hps2x64 v0081 - fixed GetOverlappedResultEx Windows 7 issue reported by Hector
hps2x64 v008 - R5900 2-way i-cache, R5900 recompiler fixes, gpu templates, multi-threading capability, async disk reads, program window fixes
hps2x64 v007 - R5900 recompiler
hps2x64 v006 - NVM write back
hps2x64 v005 - VU accuracy fixes, IOP sio fixes (Pad/Memcard), Optimized event handling, VU macro mode fixes, GPU fixes
hps2x64 v004 - IPU fixes, GPU fixes, CDVD fixes
hps2x64 v003 - IPU fixes, fog implemented, MFIFO fixes, GPU fixes
hps2x64 v002 - 2D/3D primitive drawing fixes, screen buffer fixes, improved compatibility
hps2x64 v001 - pre-initial release 1 - preliminary IPU, DMA fixes, R5900 fixes, VU fixes, preliminary mfifo and stall control
hps2x64 v000 - pre-initial release - SPU2 fixes, SIF fixes, timer interrupt bug fixed, QFSRV implemented, loads/runs some games
hps2x64 vXXX - very early pre-initial WIP evaluation only release. TEST/DEVELOPMENT USE ONLY.


*** HPS1x64 Instructions ***
----------------------------

To run bios dumped from a Playstation system:
Use File | Load | Bios to load a bios dump. Use File | Run to run a bios dump after loading it.
If there is a tick mark next to the File | Load | Bios option, then it means that the last bios you loaded is already successfully loaded in bios.

To run Playstation formatted game discs:
Can run bin/img/iso images with cue, ccd, and sub support.
To run a disc image, use File | Load | Bios to load a bios, then use File | Load | Insert/Remove Game Disk to load a game disk image (bin/img/iso/etc), then File | Run to run it.
Make sure that cue/ccd/sub files have the same name as the disk image and are in the same folder, or they will not load.

To change disks:
If a disk image is loaded, you will see a check mark next to the File | Load | Insert/Remove Game Disk option.
To remove the disk image, select the option again, and then you will see the check mark disappear. You can now load a new disk via the same option.

To load a save state:
First load the disk image, then load the save state, then use File | Run.

To switch between R3000A recompiler/interpreter:
You can choose to use the interpreter via CPU | CPU: R3000A | Interpreter: R3000A.
You can choose to use the recompiler via CPU | CPU: R3000A | Recompiler: R3000A.

To switch between software/hardware renderer:
You can choose to use the software renderer via GPU | Renderer | Software.
You can choose to use the hardware renderer via GPU | Renderer | Hardware.

Keys:
Use Peripherals | Configure Joystick... and then follow the instructions to configure a compatible dual analog game pad.
Note: If controller was inserted after program was started, then redetect pads (Peripherals->Re-Detect Joypad(s)).
Note: If the keys don't work for a title, then toggle analog/digital mode (Peripherals->Pad 1->Pad 1 Digital/Analog).

Troubleshooting:
If controls are not working properly, then try switching between digital/analog mode (for both pads if needed). Pads are set to analog by default for compatibility.
If a game does not load properly, try deleting/moving the memory card files.

Misc Credits/Disclaimer:
Currently only the MDEC backend is currently adapted from mame/mess/etc and is not currently entirely custom designed/coded by me.


*** HPS2x64 Instructions ***
----------------------------

To run bios dumped from a Playstation 2 system:
Use File | Load | Bios to load a bios dump. Use File | Run to run a bios dump after loading it.
If there is a tick mark next to the File | Load | Bios option, then it means that the last bios you loaded is already successfully loaded in bios.

To run Playstation 2 formatted game discs:
Can run bin/iso images.
To run a disc image, use File | Load | Bios to load a bios, then use File | Load | Insert/Remove PS2 Game Disk to load a PS2 game disk image (bin/img/iso), then File | Run to run it.
Make sure that cue files have the same name as the disk image and are in the same folder, or they will not load.
note: audio is delayed a few seconds by default. You can change the size of the audio buffer via Audio | Buffer Size.

To load a save state:
First load the disk image, then load the save state, then use File | Run.

To switch between R3000A recompiler/interpreter:
You can choose to use the interpreter via CPU | CPU: R3000A | Interpreter: R3000A.
You can choose to use the recompiler via CPU | CPU: R3000A | Recompiler: R3000A.

To switch between R5900 recompiler/interpreter:
You can choose to use the interpreter via CPU | CPU: R5900 | Interpreter: R5900.
You can choose to use the recompiler via CPU | CPU: R5900 | Recompiler: R5900.

To switch between software/hardware renderer:
You can choose to use the software renderer via GPU | Renderer | Software.
You can choose to use the hardware renderer via GPU | Renderer | Hardware.

Troubleshooting:
If a game disk loads improperly, ensure that it has been dumped properly from the original physical game disk. Pads are set to DualShock2 by default for compatibility.
This program is WIP and for testing only.

Misc Credits/Disclaimer:
Currently only the IPU backend is currently adapted from pcsx2 and is not currently entirely custom designed/coded by me.


Build/Debug instructions:

1. The Microsoft Visual Studio Solution file "hpsx64.sln" is included. Open the file in Visual Studio.
2. Make sure you are in the x64 Release configuration for normal play testing. Only use x64 Debug for debugging certain code issues.
3. You will also need the Vulkan SDK for Vulkan headers and for compiling any modified compute shaders (.comp files)

For hps1x64.exe (PS1 simulator) -
4. In the x64 Release configuration, after opening hpsx64.sln just right-click on hps1x64 and choose "Build" in Visual Studio.

For hps2x64.exe (PS2 simulator) -
4. In the x64 Release configuration, after opening hpsx64.sln just right-click on hps2x64 and choose "Build" in Visual Studio.

Note: A version of hps1x64.exe and hps2x64.exe should have been built for you already and should be in the same folder as this README file. For test/evaluate ONLY.


Special Thanks:
Martin Korth
Dr. Hell
psxAuthor
doomed
Anders Gavare
pcsx2 authors
unknownbrackets
Hector
Sharpnull
Bryan Kirk
anyone else I didn't list


About

Mirror of the HPSx64 Repository on Sourceforge.net

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published