Giter VIP home page Giter VIP logo

shadps4's Introduction

shadPS4

shadPS4 is an early PS4 emulator for Windows and Linux written in C++

To discuss shadPS4 development or suggest ideas, join the Discord server

Check us on twitter

Status

Early progress, a small amount of PS4 SDK demos and homebrew games working.

Why?

The project started as a fun project. Due to limited free time, it will probably take a while before shadPS4 is able to run anything decent, but we're trying to make small, regular commits.

Build

Windows

Check building instructions in Windows build

Linux

Check building instructions in Linux build

Build status

Platform Build status
Windows SDL build Windows-sdl
Linux SDL build Linux-sdl

Main team

Logo is done by Xphalnos

Contribution

We currently accept any contribution, just open a PR and we will check it :)

Sister Projects

  • Panda3DS: An multiplatform 3DS emulator from our co-author wheremyfoodat
  • hydra: An multisystem, multiplatform emulator (chip-8,GB,NES,N64) from Paris

shadps4's People

Contributors

esdrastarsis avatar georgemoralis avatar mizmalik avatar offtkp avatar psucien avatar qurious-pixel avatar raphaelthegreat avatar raziel1000 avatar skmp avatar wheremyfoodat avatar xphalnos 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

shadps4's Issues

Doesn't play anything

This emulator says it's 10% done but doesn't play anything. Please fix I need to play bloodborne.

Error when starting NHL 22

When i want to start NHL 22 the program shows the error:
[Debug] thread_management.cpp:scePthreadMutexattrSettype:257: Unreachable code!
Invalid type: 0

finish elf viewer

  • We probably should be able to export to file
  • flags for segments headers
  • extended self header info
  • etc

MSVC doens't support SYS_V_ABI

so calling conversions are wrong and the callling functions are also wrong .

Solution is to go to CLANG

γαμω την microsoft γαμω

Initial plan for cpu soft-virtualization

Overview

The idea is to soft-virtualize, by reserving a few registers for the host system, and leaving everything else as is with static register allocation. RIP-relocations also need to be done.

  • Decode x86 instructions (core, rex, mmx/sse, and vex encodings)
  • Use a register as context and some scratch registers
  • Can use similar branch lookup structures as hex-emu does
  • RIP-relative accesses will have to be relocated
  • fs and gs segments need to be virtualized

Implementing using zydis

  • r14 as temp
  • r15 as context
  • free more temp regs as needed
  • RIP REL as double deref with rip moves

Kind of patches

  • RIP_REL
  • +r
  • MOD_r
  • MOD_m
  • SIB_b
  • SIB_i

x2 for rex versions

  • vex encodings

Notes

Windows TLS doesn't give direct access to TLS slots in the same way linux TLS does, so we'll definitely need a context register.

Original writeup #### Vasika - Elafria eikoniki mixani pou doulevei se leitourgia xristi gia x86/64 arxitetoniki ipodoxis - Vasismeno stous metapinakes apo to hex - Gennitiki arxitekoniki me metaprogramatismo - Eikonefsi ton kataxoriton me statiki antistixisi gia tous perisoterous, mono oti spanizei se dinamiki katanomi - Eikonefsi diefthiseon ektelesis meson paromion domon antistixisis me to hex

Epipleon

  • Eikonefsi entolon SSE4a pou isos spanizoun

Ektimiseis

  • ~ 5-15K grammes gia ton pirina + metapinakes
  • me xrisi mono metafraseon gramikis ektelesis, ~ 10% fira sta almata rois
  • me kapia epipleon poliplokotita kai xrisi diagramaton rois elenxou/ektelesis, < 2% fira?, alla isos kai travlisma kata tin eikonopiisi tis filoksenoumenis arxitektonikis

Xronika

  • ~ 1w gia PoC
  • ~ + 2w gia aploki, gramiki ektelesi
  • ~ + 4w gia DRE me polapla simia eisodou

Pithano sxedio ergasion

  • Aploiki ilopiisi me ton fortoti ksotikon tou hex + metapinakes + ola apla
  • Anaparagontopiisi meta gia artiotita kai aisthitiki kodika
  • Sindesi me ton fortoti ksotikon gia to PS4

Sxolia

pong,tetris homebrew hack?

currently i was force to put a sceGnmFlushGarlic at the end of sceVideoOutSubmitFlip in order to force cpu->gpu sync. This is problaby not the correct behaviour but it is a workaround in order to get niko's homebrew to work.

Need to find a proper way to do this

Load elf to memory

  • Allocate memory for elf
  • Load program headers
  • Parse dynamic data
  • to be filled

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.