Giter Site home page Giter Site logo

psycross's Introduction

Psy-Cross (Psy-X)

Compatibility framework for building and running Psy-Q SDK - based Playstation games across other platforms

Implementation details

  • High-level Playstation API reimplementation which translates it's calls into modern/compatible APIs
  • Psy-Q - compatible headers
  • Implements Geometry Transformation Engine (GTE) in software and adapts it's macros and calls
  • Optimized Precise GTE Vertex Cache with modern 3D hardware perspective transform and Z-buffer support (PGXP-Z)
  • LibSPU with ADPCM decoding on OpenAL (SPU-AL)
  • LibGPU with Playstation-style polygon and image handling
  • LibCD with ISO 9660 BIN/CUE image support by Playstation CD API
  • Already proven to be 95% compatible with the Psy-Q Playstation SDK - Psy-X game look almost identical to the Playstation game
  • You can bring your game to Web with Emscripten support

Folder structure

  • src/gpu: PSX GPU linked lists and polygon handling routines
  • src/gte: PSX GTE and PGXP-Z implementation
  • src/render: OpenGL renderer and PSX VRAM emulation
  • src/pad: Controller handling
  • src/psx: Implementations of PsyQ - compatible libraries (libgte, libgpu, libspu, libcd ...)
  • include/psx: Headers of PsyQ - compatible libraries (libgte, libgpu, libspu, libcd ...)
  • include/PsyX: PsyCross interfaces (window management, configuration, renderer, PGXP-Z)

Dependencies

  • OpenAL-soft (1.21.x or newer)
  • SDL2 (2.0.16 or newer)

TODO

  • CMake dependency/build scripts
  • Add some missing LibGTE functions
  • MDEC implementation in LibPress
  • CD Audio/XA decoding and playback
  • SPU Attack-Decay-Sustain-Release (ADSR) support, maybe through own mixer?

Credits

  • SoapyMan - more GTE functions, SPU-AL, PGXP-Z
  • Gh0stBlade - original source/base (link)

psycross's People

Contributors

rickomax avatar soapyman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

psycross's Issues

Building DLL for x64 Windows

Hello!

I'm using this project for a game I'm porting currently, and it's working great. However, I'm stuck trying to to produce a DLL under Windows built for x64. I'm running into a naming conflict:

kernel32.lib(KERNEL32.dll) : error LNK2005: `EnterCriticalSection` already defined in LIBAPI.obj

Seems like even though this is unimplemented, this project is also using EnterCriticalSection from the Windows API.
It's not a big deal - I can just rename the function in my fork, but I was wondering if there was a better way to handle it.

string.h conflict

I'm attempting a port to PSVita

I ran into an issue where the header from this project overwrite the one from GCC(vitasdk)

I think it should be removed if it's not needed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.