A Nintendo 3DS Emulator
Go to file
Emmanuel Gil Peyrot 6fb23da375 Service::CAM: Add a V4L2-based implementation.
It uses the raw Video For Linux 2 API to integrate any capture device
(a camera for example) into the 3DS cam:U subsystem, so that games can
now take an actual picture of the user, use the AR system, or do
basically anything they wants with the video stream.

Conversion to RGB isn’t supported yet, so in the very likely chance
your capture device doesn’t support outputting directly in RGB you will
get a garbled but recognizable image resulting from the casting of YUYV
data into RGB565.

Only the OUT1 camera (rear left) is currently supported, every other
one will still return an empty buffer.  A possible improvement would be
to extend support to more than one /dev/videoN device, and let the user
configure which physical device corresponds to which emulated camera.
Another would be to use a computer vision library to generate a shifted
image and give the illusion of perspective when using both read
cameras.

A possible improvement would be to check for the presence of the v4l2
header instead of matching on the OS name.  A dummy implementation is
built on every other OS.

This also adds the SetOutputFormat call.

None of this has been tested on hardware yet, nor reversed from the
cam:U service, everything is pure guess work based on the camera/video
example from 3ds-examples.
2016-07-13 01:59:02 +01:00
dist citra-qt: Add icon to Mac app 2015-10-14 15:02:36 +02:00
externals tests: Infrastructure for unit tests 2016-05-19 08:38:03 +01:00
hooks Only check src/ directory for whitespace errors in the pre-commit hook 2015-08-31 07:12:25 -03:00
src Service::CAM: Add a V4L2-based implementation. 2016-07-13 01:59:02 +01:00
.gitignore Update gitignore with OS-specific global filetypes. 2014-12-14 17:19:47 -05:00
.gitmodules tests: Infrastructure for unit tests 2016-05-19 08:38:03 +01:00
.travis-build.sh travis: Use GCC 6 on Ubuntu CI builds 2016-06-17 10:48:40 -04:00
.travis-deps.sh travis: Use GCC 6 on Ubuntu CI builds 2016-06-17 10:48:40 -04:00
.travis-upload.sh Add GPL license.txt and README.md to builds 2016-06-21 14:19:46 +02:00
.travis.yml travis: Use GCC 6 on Ubuntu CI builds 2016-06-17 10:48:40 -04:00
appveyor.yml Add GPL license.txt and README.md to builds 2016-06-21 14:19:46 +02:00
CMakeLists.txt CMakeLists: Drop support for Qt 4 2016-06-17 10:48:40 -04:00
CONTRIBUTING.md Update CONTRIBUTING.md 2016-01-15 23:21:00 -08:00
Doxyfile Remove every trailing whitespace from the project (but externals). 2015-05-29 21:59:29 +01:00
license.txt added license txt file 2014-04-08 19:03:00 -04:00
README.md Add GPL license.txt and README.md to builds 2016-06-21 14:19:46 +02:00

BEFORE FILING AN ISSUE, READ THE RELEVANT SECTION IN THE CONTRIBUTING FILE!!!

Citra Emulator

Travis CI Build Status AppVeyor CI Build Status

Citra is an experimental open-source Nintendo 3DS emulator/debugger written in C++. It is written with portability in mind, with builds actively maintained for Windows, Linux and OS X. Citra only emulates a subset of 3DS hardware, and therefore is generally only useful for running/debugging homebrew applications. At this time, Citra is even able to boot several commercial games! Most of these do not run to a playable state, but we are working every day to advance the project forward.

Citra is licensed under the GPLv2 (or any later version). Refer to the license.txt file included. Please read the FAQ before getting started with the project.

Check out our website!

For development discussion, please join us @ #citra on freenode.

Development

Most of the development happens on GitHub. It's also where our central repository is hosted.

If you want to contribute please take a look at the Contributor's Guide, TODO list and Developer Information. You should as well contact any of the developers in the forum in order to know about the current state of the emulator.

Building

Support

If you like, you can donate by PayPal - any donation received will go towards things like:

  • 3DS consoles for developers to explore the hardware
  • 3DS games for testing
  • Any equipment required for homebrew
  • Infrastructure setup
  • Eventually 3D displays to get proper 3D output working
  • ... etc ...

We also more than gladly accept used 3DS consoles, preferrably ones with firmware 4.5 or lower! If you would like to give yours away, don't hesitate to join our IRC channel #citra on Freenode and talk to neobrain or bunnei. Mind you, IRC is slow-paced, so it might be a while until people reply. If you're in a hurry you can just leave contact details in the channel or via private message and we'll get back to you.