Giter VIP home page Giter VIP logo

project-slippi / dolphin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dolphin-emu/dolphin

15.0 15.0 8.0 459.67 MB

Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.

Home Page: https://dolphin-emu.org/

License: Other

CMake 1.17% GLSL 0.39% C 3.55% C++ 87.60% Makefile 0.04% Shell 0.21% Python 0.27% Objective-C 0.03% Objective-C++ 0.97% NSIS 0.05% JavaScript 0.02% Smarty 0.01% Perl 0.02% Assembly 0.04% Java 0.83% Roff 0.02% Ruby 0.01% AppleScript 0.01% Kotlin 4.78%

dolphin's Introduction

Project Slippi

Mission

The focus of this project is around the sport of Super Smash Bros Melee. There are a variety of actors involved in the sport, these include the competitor, streamer, caster, fan, spectator, and more. We are trying to create features for these people to enhance their experience when doing anything Melee related.

The primary means of doing this introduced by this project is by creating a data-rich replay infrastructure. Replay files have the potential to expand the competitive Melee experience in many ways including:

  1. Generating complex stats far beyond what is currently possible with video analysis tools
  2. Archiving a much larger percentage of tournament matches (all setups can be recording setups)
  3. Enabling new methods of streaming
  4. Enhancing streams and commentary discussion with detailed information about the games

More Information

Support Development: https://www.patreon.com/fizzi36

Release Blog Post: https://medium.com/project-slippi/project-public-release-4080c81d7205

Release Demo Video: https://www.youtube.com/watch?v=1OYS5JSZepQ

Discord Server: https://discord.gg/XpHZex6

.slp Parsing Libraries

Javascript [Official]

slp-parser-js: https://github.com/project-slippi/slp-parser-js

Python [Community]

py-slippi: https://github.com/hohav/py-slippi

Rust [Community]

peppi: https://github.com/hohav/peppi

How to Contribute

If you're interested in making Melee better than it already is, you should consider contributing!

Follow these steps to contribute:

  1. Fork the repository you're interested in contributing to (see Project Structure section below for the breakdown of the project)
  2. Checkout your fork
  3. Make changes
  4. Commit and push your changes
  5. Submit a pull request into the upstream project
  6. I will review the pull request and decide if it's worth merging. Please note that there's no guarantee what you work on will get merged into the main branch. That said, you can increase your chances by talking about it in the discord!

Project Structure

The project is composed of many different parts and projects that work together. This section will detail what those parts are, where they are, and how they can be contributed to.

ASM Gecko Codes (Assembly)

There are two main distributed codes: Slippi Recording and Slippi Playback.

The recording code will write data out of the game through Port B of the console. In order to do anything with this data, something must receive it. In the current case, the system receiving it is Dolphin, this will be addressed later.

The playback code requests and reads data from Port B of the console. It will request data it needs in order to play back a replay. Once again something must respond to these requests with the correct data and Dolphin currently serves that purpose.

The codes can be found at https://github.com/project-slippi/slippi-ssbm-asm. They can be compiled using the gecko tool in this project: https://github.com/JLaferri/gecko. See project readme for more info.

Faster Melee (C++)

All the code to make Dolphin support the assembly codes were built on top of Faster Melee. This code can be found at https://github.com/project-slippi/Ishiiruka/tree/slippi. Make sure to use the slippi branch. For info about how to build Dolphin, look here: https://github.com/dolphin-emu/dolphin/wiki.

To find the Slippi-specific stuff in the codebase, search for "Slippi".

Replay File

Dolphin currently serves the purpose of receiving data from the game and writing a replay file. To understand the structure and format of the replay file, please read the spec here: https://github.com/project-slippi/slippi-wiki/blob/master/SPEC.md

Slippi Launcher (TypeScript/React/Material-UI)

The desktop application is maintained in the repo found here: https://github.com/project-slippi/slippi-launcher.

This application is the one stop shop for Slippi users. Acts as a Netplay Launcher, Dolphin Auto Updater, Replay Viewer and Analyzer, and more.

.slp Tools Library (Javascript)

Replay files are read and stats are computed by a separate library that can be found here: https://github.com/project-slippi/slippi-js. This was split out from the desktop app in order to allow people to read replays and display stats in their own applications.

Nintendont (C)

We have also created a custom build of Nintendont which emulates a Slippi hardware device in a similar way to Dolphin. It is still currently a WIP but it can be found here: https://github.com/project-slippi/Nintendont/tree/slippi

dolphin's People

Contributors

admiralcurtiss avatar comex avatar crossvr avatar degasus avatar delroth avatar glennricster avatar helios747 avatar hrydgard avatar iwubcode avatar jmc47 avatar john-peterson avatar jordan-woyak avatar josjuice avatar leoetlino avatar ligfx avatar lioncash avatar magumagu avatar nakee avatar neobrain avatar parlane avatar phire avatar pokechu22 avatar shuffle2 avatar skidau avatar sonicadvance1 avatar sorenjorvang avatar spycrab avatar stenzek avatar t895 avatar tilka avatar

Stargazers

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

Watchers

 avatar  avatar

dolphin's Issues

"No target "OUTPUT_NAME"" when building on MacOS

When attempting to build on MacOS 14.4 on apple silicon, I get the following error while running cmake:

-- Configuring done (32.1s)
CMake Error at Source/Core/DolphinQt/CMakeLists.txt:681 (add_custom_command):
  Error evaluating generator expression:

    $<TARGET_BUNDLE_DIR:OUTPUT_NAME>

  No target "OUTPUT_NAME"


CMake Error at Source/Core/DolphinQt/CMakeLists.txt:681 (add_custom_command):
  Error evaluating generator expression:

    $<TARGET_BUNDLE_DIR:OUTPUT_NAME>

  No target "OUTPUT_NAME"


CMake Error at Source/Core/DolphinQt/CMakeLists.txt:681 (add_custom_command):
  Error evaluating generator expression:

    $<TARGET_BUNDLE_DIR:OUTPUT_NAME>

  No target "OUTPUT_NAME"


-- Generating done (1.4s)
CMake Generate step failed.  Build files cannot be regenerated correctly.

It looks like you attempted to replace dolphin-emu with OUTPUT_NAME, but it's not defined at that point in the script.

Memory leak that causes crashes after prolong play

Expected Behavior

When the game is running system memory usage should stay at a reasonable level

Current Behavior

The emulator will consistency get up to 10+ gigabytes after running for 10 to 20 minutes

Steps to Reproduce

  1. https://youtu.be/ObTEK9WboPU Video of the memory leak in action. There is a crash at 1:55
  2. By the end of the 14 minute video the emulator is taking up 4.3 gigabytes of system memory
  3. It could get MUCH higher (up to 11 gigabytes)

Environment

Windows 10
Ryzen 7 7700X
GTX 1060 6GB
32GB of DDR5-6000 Ram
Direct3D 11
4x Native

Fix playback

Currently playback is completely non functional and will require some investigation

Fix teams

we can currently get into a match, but it seems to crash right after that when connecting to Ishii players

Connecting to other mainline instances gives incorrect teams
image

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.