Coder Social home page Coder Social logo

cpp3ds's Introduction

cpp3ds

Build Status Codecov branch Docker pulls AUR package

Basic C++ gaming framework and library for Nintendo 3DS.

cpp3ds is essentially a barebones port of SFML with a parallel native 3ds emulator built on top of it. The goal is to completely abstract the developer from the hardware SDK and provide a nice object-oriented C++ framework for clean and easy coding. And the emulator is designed to provide a means of surface-level realtime debugging (with GDB or whatever you prefer).

Won't be stable and usable until v1.0

Installation

Coming soon.

Documentation

Will be released with v1.0 stable

Requirements

  • DevkitARM
  • ctrulib
  • citro3d

For emulator:

For unit tests:

Credit and Thanks

cpp3ds's People

Contributors

cruel avatar ss23 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

cpp3ds's Issues

Possibility of licencing issues with AAC?

With regards to the issue that I have opened here, and to your commit 4eee3e3. Just to summarise what I've said in the former link, applications that ship with AAC decoding or encoding must have a licence. Did you not know or is their a loophole?

Of course, distributing the source code is fine, but binaries not so. So whilst this repository is fine since no binaries are provided, it is my understanding that applications that are linked to this library will require a licence to be distributed in binary form.

If this isn't the case then please let me know because this is the only reason I haven't added AAC to ctrmus.

Thanks in advance. ๐Ÿ˜ƒ

mbedtls missing / build failing

Hi,
seems like mbedtls is missing from current master branch.

Also i've stumbled upon multiple problems when trying to setup cpp3ds in my environment, if you want, i will create separate issues for these:

  • Latest release version makerom fails on current devkitARM (malloc(): memory corruption) - fixed by rebuilding latest makerom manually
  • Latest release version fails with /home/travis/build/cpp3ds/cpp3ds/src/emu3ds/Emulator/Emulator.cpp:123: undefined reference to "sf::Image::saveToFile(std::string const&) const"
  • On second-to-last commit template project (after fixing game.console invocation) fails to build because of missing -D_GLIBCXX_USE_CXX11_ABI=0 flag, citro3d lib for 3ds build, and Qt5Gui Qt5Widgets libs for emu build (after some more tweaks i might not remember right now - built binary does not boot on 3ds, and emu build segfaults anyway :3)

So, yeah. I sadly didn't succeed to build anything, but it feels like a pretty useful piece of toolkit... :)

(setup: latest devkitarm, ctrulib master, citro3d master, ubuntu 15.10, system gcc 5.2.1, system sfml 2.3.2)

Missing vorbis/vorbisfile.h?

I think this file is missing from the master branch. Here's the error output i'm getting:

mkdir build
cd build
cmake -DBUILD_EMULATOR=OFF ..
-- The C compiler identification is GNU 4.9.3 -- The CXX compiler identification is GNU 4.9.3 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found CTRULIB: /home/hle/.bin/devkitPro/libctru/lib/libctru.a -- setting CTRULIB to /home/hle/.bin/devkitPro/libctru/include/.. -- 3dsxtool: /home/hle/.bin/3dsxtool - found -- smdhtool: /home/hle/.bin/devkitPro/devkitARM/bin/smdhtool - found -- bannertool: /home/hle/.bin/bannertool - found -- makerom: /home/hle/.bin/makerom - found -- strip: /home/hle/.bin/devkitPro/devkitARM/bin/arm-none-eabi-strip - found -- 3dslink: /home/hle/.bin/devkitPro/devkitARM/bin/3dslink - found -- Looking for Picasso... -- Picasso: /home/hle/.bin/devkitPro/devkitARM/bin/picasso - found -- Looking for nihstro... -- nihstro: /home/hle/.bin/nihstro-assemble - found -- Performing Test COMPILER_SUPPORTS_CXX11 -- Performing Test COMPILER_SUPPORTS_CXX11 - Success -- Performing Test COMPILER_SUPPORTS_CXX0X -- Performing Test COMPILER_SUPPORTS_CXX0X - Success -- Found JPEG: /home/hle/.bin/devkitPro/portlibs/armv6k/lib/libjpeg.a -- Configuring done -- Generating done -- Build files have been written to: /home/hle/src/cpp3ds/build
...
[ 31%] Building CXX object src/cpp3ds/Audio/CMakeFiles/cpp3ds-audio.dir/SoundFileFactory.cpp.o In file included from /home/hle/src/cpp3ds/src/cpp3ds/Audio/SoundFileFactory.cpp:34:0: /home/hle/src/cpp3ds/include/cpp3ds/Audio/SoundFileReaderOgg.hpp:32:31: fatal error: vorbis/vorbisfile.h: No such file or directory compilation terminated. src/cpp3ds/Audio/CMakeFiles/cpp3ds-audio.dir/build.make:230: recipe for target 'src/cpp3ds/Audio/CMakeFiles/cpp3ds-audio.dir/SoundFileFactory.cpp.o' failed make[2]: *** [src/cpp3ds/Audio/CMakeFiles/cpp3ds-audio.dir/SoundFileFactory.cpp.o] Error 1 CMakeFiles/Makefile2:220: recipe for target 'src/cpp3ds/Audio/CMakeFiles/cpp3ds-audio.dir/all' failed make[1]: *** [src/cpp3ds/Audio/CMakeFiles/cpp3ds-audio.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2

fatal error: No such file or directory

fatal error: mbedtls/net.h: No such file or directory
fatal error: vorbis/vorbisfile.h: No such file or directory
fatal error: citro3d.h: No such file or directory

I'm getting these errors despite having all of them installed into /usr/include.... Not sure where it's looking for them, but I've poked around the cmake files a bit and left confused. This is where they should be right?

cmake fails

There seem to be problems with the lines of CMakeLists.txt:

07: include(cpp3ds)
50: compile_core_shaders(SHADER_OUTPUT ${PROJECT_SOURCE_DIR}/res/core_resource/ ${SHADER_FILES})

I get the following errors:

CMake Error at CMakeLists.txt:7 (include):
  include could not find load file:

    cpp3ds


CMake Error at CMakeLists.txt:50 (compile_core_shaders):
  Unknown CMake command "compile_core_shaders".

I have attached the log just in case.

CMakeOutput.txt

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.