Giter Site home page Giter Site logo

brentdc-nz / pcsx-reloadedx Goto Github PK

View Code? Open in Web Editor NEW
15.0 5.0 4.0 820 KB

A Xbox port of PCSX-Reloaded with hardware rendered graphics. Stable repo i.e. only thoroughly tested optimizations are merged(testing still in progress).

C 85.58% C++ 14.42%

pcsx-reloadedx's Introduction

PCSX-ReloadedX - Beta v1.0

This is a port of PCSX-Reloaded to Xbox using hardware rendered graphics.

Main remaining tasks:

  • Explore speed optimizations further.
  • Get built in cheats working.
  • Get save states working.
  • Make a intermediate menu while running a rom.

Knowen bugs:

  • Fix rumble, it currently works but has a bug that causes it to say on sometimes.

Compiled build available here:

https://www.emuxtras.net/forum/viewtopic.php?f=189&t=6561

pcsx-reloadedx's People

Contributors

freakdave avatar puxleymartin avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

pcsx-reloadedx's Issues

Lightrec

I'd suggest experimenting with my dynarec: https://github.com/pcercuei/lightrec

It's likely to be much faster than the dynarec you have in pcsx-reloadedX, from what I can see from the code, especially if you can use the MMU. It's been used on the GameCube for instance, and some 3D games like Spyro 2 average ~40fps with software rendering.

I'd do it myself but I have zero experience with Xbox development, and I'm running Linux exclusively.

You guys would get a faster dynarec, and I would get good testing on a x86 32-bit platform - which is interesting as it has a very limited number of registers to play with.

Xbox supports immediate mode rendering

https://github.com/marty28/PCSX-ReloadedX/blob/08d568c3e1be175bd52fbc736f94553ca0b41f4b/xbox/fakeglx/fakeglx09.c#L980-L988

This is not true for Xbox Direct3D. The Xbox GPU (NV2A) supports immediate mode rendering.
Microsoft added hardware extensions which should be available as:

  • D3DDevice::Begin
  • D3DDevice::SetVertexData4f and friends
  • D3DDevice::End

The mapping is the one that you'd expect from the nvidia OpenGL implementation; vertex attribute 0 submits the vertex (equivalent to glVertex4f).

The data would be inlined into the pushbuffers. You can avoid the call overhead, by constructing a custom pushbuffer from scratch to get zero-copy for extra performance. You can then use D3DDevice::RunPushBuffer or something to submit it.
Wether this is faster: I don't know. It certainly depends on what kind of data you submit.

Also check @xqemu code or nxdk source-code for more information. @XboxDev community in general will have knowledge about this (although we might not always know what's best for performance yet).

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.