/reicast-emulator

Reicast is a multiplatform Sega Dreamcast emulator

Primary LanguageCGNU General Public License v2.0GPL-2.0

reicast

reicast is a multi-platform Sega Dreamcast emulator.

This is a developer-oriented resource, if you just want bins head over to http://reicast.com/

For development discussion, join #reicast in freenode or stop by the reicast Discord server

Caution

The source is a mess, and dragons might eat your cat when you clone this project. We're working on cleaning things up, but don't hold your breath. Why don't you lend a hand?

Rebranding/(hard)forks

If you are interested into further porting/adapting/whatever, please don't fork off. I hate that. Really.

Let's try to keep everything under a single project :)

Submitting Issues

Please take a moment to search the open issues for one similar to yours and add your info to it.
If you cannot find a similar issue, click the 'New Issue' button and make sure to fill out the form.

Please Note:
Duplicate issues may be closed with a link to the existing issue.
Bugs that do not include a form may be closed until it is filled out.

Contributing

For small/one-off fixes a PR from a github fork is alright. For longer term collaboration we prefer to use namespaced branches in the form of <username>/<whatever> in the main repo.

Before you work on something major, make sure to check the issue tracker to coordinate with other contributors, and open an issue to get feedback before doing big changes/PRs. It is always polite to check the history of the code you're working on and collaborate with the people that have worked on it. You can introduce yourself in Meet the team.

Everything goes to master via PRs. Test builds are run automatically for both internal and external PRs, and generally should pass unless there's a really good reason for breakage. You might want to check our CLA, which is required to have your changes merged.

If you are looking for somewhere to start, look for issues marked good first issue or help wanted

Supporting the project / donations

Well, glad you liked the project so far! We want to switch to a "donation-driven-development" model so that we are not forced to pay out of out pockets for the project costs, and so that contributors can have a source of income to cover food and housing costs.

We accept monetary donations via bountysource at https://salt.bountysource.com/teams/reicast or IBAN transfers to CH65 0070 0110 0052 6460 1, Stefanos Kornilios Mitsis Poiitidis, 8005 Zürich. Please note that IBAN donations will appear as Anonymous for now.

You can also directly add bounties to tickets that are of interest to you at https://www.bountysource.com/teams/reicast, though supporting the project via a small monthly donation is preffered. Every $5 helps.

We will use the donations to cover administrative and hosting costs (~$100/mo), buy hardware and to sponsor development & testing.

If you want to do hardware or other non-monetary donations, please contact donations@reicast.com.

Please help us to make this project self-sustainable. Thank you for your support!

Notable Donors

  • Twinaphex / RetroArch Team - introduced us to bountysource, has sponsored the development of a few tickets
  • anothername99 - First bounty not posted by RA
  • Raco Centrente - First donation from a 3rd party
  • (And, of course, all the people that have worked pro-bono over the past 20 years. That is priceless. Thank you!)

Building for Android

Tools required:

  • Latest Android SDK
  • NDK r8b or newer
  • Android 5.0.1 (API 21) & Android 2.3.1 (API 9)
  • Ant

From project root directory:

export ANDROID_NDK=/ # Type the full path to your NDK here

cd shell/android/

android update project -p . --target "android-21"

ant debug

Building for iOS / MacOS

Requirements:

Latest Xcode

  • iOSOpenDev if developing without an official Apple certificate
iOS Mac
An iOS device A Mac
iOS 5.x ~ 7.x macOS 10.13.3 (17D102)

From project root directory:

iOS Mac
cd shell/ios/ cd shell/apple/emulator-osx

xcodebuild -configuration Release

Or open the .xcodeproj in Xcode and hit "Build".

Building for Linux

Requirements:

  • build-essential
  • libasound2
  • libegl1-mesa-dev
  • libgles2-mesa-dev
  • libasound2-dev
  • mesa-common-dev
  • libgl1-mesa-dev

From project root directory:

cd shell/linux

make

Translations

New and updated translations are always appreciated! All we ask is that you not use “regional” phrases that may not be generally understood.

Translations can be submitted as a pull request

Development/Beta versions

Platform Status Downloads
Android Android Build Status Reicast CI Builds
iOS iOS Build Status TODO
Windows Windows Build status Reicast CI Builds
Linux Linux wercker status TODO
OSX OSX TODO TODO

Additional builds (iOS & android) can be found at angelxwind's buildbot and Random Stuff "Daily/Nightly/Testing" PPA (for Ubuntu).

Other Testing

Devices tested by the reicast team:

  • Apple iPhone 4 GSM Rev0 (N90AP)
  • Apple iPhone 4 CDMA (N92AP)
  • Apple iPod touch 4 (N81AP)
  • Apple iPod touch 3G (N18AP)
  • Apple iPhone 3GS (N88AP)
  • Apple iPhone 5s
  • Apple iPad 3
  • Sony Xperia X10a (es209ra)
  • Amazon Kindle Fire HD 7 (tate-pvt-08)
  • Nvidia Shield portable
  • Nvidia Shield tablet
  • Samsung Galaxy Note 4
  • LG Nexus 5
  • LG Nexus 5X
  • Asus Nexus 7 (2013)

Team

You can check the currently active committers on the pretty graphs page

Our IRC channel is #reicast @ chat.freenode.net.

The original reicast team consisted of drk||Raziel (mostly just writing code), PsyMan (debugging/testing and everything else) and a little bit of gb_away

Special thanks

In previous iterations a lot of people have worked on this, notably David Miller (aka, ZeZu), the nullDC team, friends from #pcsx2 and all over the world :)

Bitdeli Badge