GithubHelp home page GithubHelp logo

archanox / ppsspp-riscv Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hrydgard/ppsspp

1.0 1.0 0.0 225.71 MB

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums on ppsspp.org.

Home Page: https://www.ppsspp.org

License: Other

CMake 0.41% C++ 64.33% C 33.72% Objective-C 0.04% Objective-C++ 0.24% Shell 0.16% Makefile 0.21% Assembly 0.05% Java 0.45% Inno Setup 0.01% Python 0.07% Batchfile 0.04% DIGITAL Command Language 0.07% GLSL 0.15% Perl 0.01% Dockerfile 0.01% Rust 0.03%

ppsspp-riscv's People

Contributors

anr2me avatar aquanull avatar bigpet avatar bollu avatar ced2911 avatar daniel-dressler avatar daniel229 avatar danyalzia avatar hrydgard avatar iota97 avatar kaienfr avatar kentuckycompass avatar kingcom avatar lioncash avatar lunamoo avatar makotech222 avatar mgaver avatar neobrain avatar oioitff avatar orphis avatar raven02 avatar shenweip avatar sum2012 avatar thedax avatar tmaul avatar unknownbrackets avatar vnctdj avatar xebra avatar xele02 avatar xsacha avatar

Stargazers

 avatar

ppsspp-riscv's Issues

Next steps

the next steps would be:

  • create an emitter (in Common), which is basically like an assembler
  • create a basic jit with ONLY branching (see *CompBranch.cpp)
  • handle anything needed for CPUDetect
  • check if anything needs changing in Reporting

that much is enough to have "jit" be usable, and making sure that much works is a good first step to make sure the emitter works etc. (and help determine if you need WX exclusive, etc.)

after that, you'd want to firm up the register cache (I suggest basing off ARM64, since you'll have enough regs to fix-allocate some), and make the branching use that

then implement the alu ops in jit (especially basic ones, add/sub, etc.), test, then implement basic load/store ops (lw/sw to start.)

that much should already give you a huge gain in performance with the jit, compared to before/interp, and probably already better than ir interpreter

I will say, it's a lot of work no one has completed yet, but the plan is sorta to migrate to using IR and a backend (i.e. risc-v) based on that. If you want to do something even more exciting, that'd be the way to go - but there's no (working) reference

anyway, after that you'd probably want to do FPU, some key VFPU ops (including ABI calling of sin/cos)

I will warn you: some people have gone to some of this trouble for PPC or MIPS, and then been disappointed because the device's GPU can't handle the heat

this will help CPU emulation, but I have no idea what GPUs RISC-V processors are typically paired with

Runtime error

10:24:221 Common/ExceptionHandlerSetup.cpp:338 E[SYSTEM]: Exception handler not implemented on this platform, can't install

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.