xx3dsfml Multi-platform N3DSXL Capture Software Audio Update

Lorenzooone
Posts: 74
Joined: Tue Mar 26, 2024 2:10 am
Contact:

Re: xx3dsfml Multi-platform N3DSXL Capture Software Audio Update

Post by Lorenzooone » Sat Apr 06, 2024 7:57 pm

Pixxelluxx wrote:
Sat Apr 06, 2024 3:02 pm
Lorenzooone wrote:
Sat Apr 06, 2024 2:49 pm
Pixxelluxx wrote:
Sat Apr 06, 2024 2:43 pm


After my previous reply I played around a bit, obs works with it, i can split the screen, but the scaling keys "- key: Decrements the scaling by 0.5x for the focused window. 1.0x is the minimum.
= key: Increments the scaling by 0.5x for the focused window. 4.5x is the maximum." do not work for me
Yeah, this is something which I've noticed as well, due to my Italian keyboard... :/
The temporary solution I personally did is changing the constants to other keys I can actually use. You can find them here: https://github.com/Lorenzooone/xx3dsfml ... l.cpp#L511
Though I'd like to work on a better long-term solution.
Changing the Keys worked, thank you.
I would suggest reading the Keys from the config file, that way one can change the Keys without recompiling
Yeah, that's the plan.
In the meantime, I've switched the way the input is processed.
It should work regardless of keyboard layout now. Just type the character as you normally would.

static_zero
Posts: 21
Joined: Mon Mar 27, 2023 10:29 pm

Re: xx3dsfml Multi-platform N3DSXL Capture Software Audio Update

Post by static_zero » Sun Apr 14, 2024 7:25 pm

Hi All!

First off, just wanted to apologize for my extended absence here. Even though I've been quite busy, the code had still been under development, just very intermittently. There's been a number of things that I've been unhappy about regarding it and so decided to effectively rewrite it recently. Now that that's done, I popped back in and was surprised to see just how much activity there's been here!

To anyone that's been having trouble with this, I just wanted to say sorry for not being around to assist. I also want to thank Lorezooone for all of the work you've put in in supporting this. Your commitment to this has been commendable to say the least.

Anyway, the update I put out just yesterday will likely be the last one. If I'm going to continue to work on supporting this capture board, it's probably going to be using lower level frameworks like OpenGL and OpenAL directly rather than using an interface like SFML. The whole thing has got me feeling like this was all just a big waste of time, and I kinda wish I wasn't so quick to pick one of these up and start developing for it in the first place to be honest. Oh well, it is what it is I guess.

At any rate, I see that Lorenzooone has spun up a new project to support this capture board using SFML just the same as this project has been. It'd probably make the most sense to just use that over this I'm guessing. It's really great that there's been enough interest to generate so much activity in supporting systems other than Windows for this. It really does end up benefiting everyone, so best of luck to you with the new project and thanks again to you and to everyone who has used and supported my work here. It really does mean a lot to me.

Chroma
Posts: 42
Joined: Mon Mar 21, 2022 6:05 pm

Re: xx3dsfml Multi-platform N3DSXL Capture Software Audio Update

Post by Chroma » Sat Apr 27, 2024 11:21 am

@static_zero: Definitely, absolutely, positively appreciate you kicking the framework up and giving us non-Windows users some hope for the future of using our capture devices. Before this, there was essentially no movement whatsoever on Mac options, and it seemed like it was just going to become dead. This current state was too hard for me to decipher, but it will absolutely improve with the handoff.

@Lorenzooone: That said, thank you for picking this up so it still has development! As mentioned, everyone contributing the skills I don't have to this is greatly appreciated. I bought this capture card well over a year or 2 ago, and it's been sitting here collecting dust. I was worried about inventory drying up so I purchased it, but I haven't been able to actually use it.

I'd still like to reiterate great interest in a pre-packaged app release for this down the line. I get it's not something the framework is built for right now, but as is, there's way too many command line techy stuff with plugins and permissions you have to go digging for yourself and finding out how to install properly. It doesn't have to be immediately, but it would be great if there could at least be a word here saying if this would someday get a GitHub releases page with a Mac executable pre-packed and usable for us general public folk, that'd give me (and I'm pretty sure others) something to look forward to.

Thanks again for all this.

thecapsfan
Posts: 1
Joined: Sat Dec 24, 2022 7:06 pm

Re: xx3dsfml Multi-platform N3DSXL Capture Software Audio Update

Post by thecapsfan » Thu Jun 20, 2024 11:20 pm

Lorenzooone wrote:
Tue Mar 26, 2024 2:43 am
Chroma wrote:
Tue Mar 12, 2024 9:40 am
I tried to start at the FTDI driver, I downloaded the ARM macOS version (I'm on an M2 Pro MBP), opened the DMG, and just found more .CPP and makefiles that I have no idea what to do with. I Googled Apple Developer Tools and just found a forum answering developer questions, nothing to download actually called Apple Developer Tools. I Googled how to install brew through terminal, but past that I have no idea where to go for SFML.

Is it possible once you gain access to said Mac, you're able to run this makefile stuff and package the actual app itself in releases? Then all I'd have to do is troubleshoot how to download the 2 dependencies, which I think I'd only have to do once and it's permanently done unless I switch computers.

Hopefully I can get all this running, I'm just used to CuteCapture which was just a single .app file, open and go. All this dependencies stuff and backend coding talk is completely foreign to me (and I assume most other people who may stumble across this).
harpentong wrote:
Fri Mar 22, 2024 5:48 pm
I also agree with the other user that a step by step guide would be preferred, I found this to be way too confusing and overwhelming. Your efforts are greatly appreciated, but this is too complex for the average user :( alternatively, something prebuilt would be even better, im trying to figure out how to get this working on my mac, haven't been successful in getting it to work on windows, I got everything working on my M1 Mac except for the driver... Im running windows 11 pro via parallels virtual machine
Hi to both, I have made a couple of tests, and, among other things, I've tried "mitigating" the issues you're having, by avoiding entirely having to install FTD3XX.
You will still need to install SFML.
For that, once you have installed brew, run this in a terminal:

Code: Select all

brew install sfml
And that should be it.

Download the code that will be compiled from here: https://github.com/Lorenzooone/xx3dsfml ... hanges.zip

If you have 7z installed on macOs (or you are on Linux), the next steps should be to run these two commands:

Code: Select all

make download_ftd3xx

Code: Select all

make
And that should be it!

If 7z is not installed, instead in the same folder that the files you previously downloaded are in, create a new folder named "ftd3xx" without quotation marks.

When it comes to FTD3XX, instead, download the one for your OS from this page: https://ftdichip.com/drivers/d3xx-drivers/
Out of all the files which you will get, extract all the files which end in ".h" ("Types.h"/"WinTypes.h" and "ftd3xx.h", in theory) and "libftd3xx-static.a" into the "ftd3xx" folder you previously made.

Finally, go back to the main folder, the one where there should be a file named "Makefile".
Open a terminal in that folder and run:

Code: Select all

make
Provided SFML is installed, this should allow you to create the application.

Here is how the main folder should look: Schermata del 2024-03-26 03-39-47.png
Here is how the ftd3xx folder should look: Schermata del 2024-03-26 03-39-53.png
Hey there - Mac user on an M2 chip here. I've run the latest version of your code, but I'm getting the following errors when trying to run the Makefile:
clang++ xx3dsfml.o -o xx3dsfml -std=c++17 -Wl,-rpath /usr/local/lib -Wl,-rpath /opt/homebrew/lib -framework Cocoa -framework OpenGL -framework IOKit ftd3xx/libftd3xx-static.a -lsfml-audio -lsfml-graphics -lsfml-system -lsfml-window -lpthread
clang: error: no such file or directory: '/opt/homebrew/lib'
I also see the warnings with the switch statement, but figured that those are just warnings and are best ignored :D good debugging practice amirite?

Anyway so after seeing this I took a look at the Makefile and saw the following:

Code: Select all

RPATH_ARGS := -Wl,-rpath /usr/local/lib -Wl,-rpath /opt/homebrew/lib
After some research I figured out my brew prefix was the first one, so I removed the latter and ended up with this:
clang++ -std=c++17 -I ftd3xx -c xx3dsfml.cpp -o xx3dsfml.o
xx3dsfml.cpp:466:11: warning: enumeration value 'JOINT' not handled in switch [-Wswitch]
switch (this->m_stype) {
^~~~~~~~~~~~~
xx3dsfml.cpp:466:11: note: add missing switch cases
switch (this->m_stype) {
^
xx3dsfml.cpp:580:13: warning: 95 enumeration values not handled in switch: 'Unknown', 'A', 'B'... [-Wswitch]
switch (event.key.code) {
^~~~~~~~~~~~~~
xx3dsfml.cpp:580:13: note: add missing switch cases
switch (event.key.code) {
^
xx3dsfml.cpp:492:12: warning: 21 enumeration values not handled in switch: 'Resized', 'LostFocus', 'GainedFocus'... [-Wswitch]
switch (event.type) {
^~~~~~~~~~
xx3dsfml.cpp:492:12: note: add missing switch cases
switch (event.type) {
^
xx3dsfml.cpp:698:11: warning: enumeration value 'END' not handled in switch [-Wswitch]
switch (this->m_info.crop_kind) {
^~~~~~~~~~~~~~~~~~~~~~
xx3dsfml.cpp:698:11: note: add missing switch cases
switch (this->m_info.crop_kind) {
^
4 warnings generated.
clang++ xx3dsfml.o -o xx3dsfml -std=c++17 -Wl,-rpath /usr/local/lib -framework Cocoa -framework OpenGL -framework IOKit ftd3xx/libftd3xx-static.a -lsfml-audio -lsfml-graphics -lsfml-system -lsfml-window -lpthread
ld: warning: ignoring file '/usr/local/Cellar/sfml/2.6.1/lib/libsfml-graphics.2.6.1.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/sfml/2.6.1/lib/libsfml-audio.2.6.1.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/sfml/2.6.1/lib/libsfml-system.2.6.1.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/sfml/2.6.1/lib/libsfml-window.2.6.1.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: Undefined symbols:
sf::WindowBase::setSize(sf::Vector2<unsigned int> const&), referenced from:
Screen::draw() in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
sf::WindowBase::pollEvent(sf::Event&), referenced from:
Screen::poll() in xx3dsfml.o
sf::SoundSource::setVolume(float), referenced from:
Audio::update_volume(int, bool) in xx3dsfml.o
sf::SoundStream::initialize(unsigned int, unsigned int), referenced from:
Audio::Audio() in xx3dsfml.o
sf::SoundStream::play(), referenced from:
playback() in xx3dsfml.o
vtable for Audio in xx3dsfml.o
sf::SoundStream::stop(), referenced from:
playback() in xx3dsfml.o
playback() in xx3dsfml.o
playback() in xx3dsfml.o
vtable for Audio in xx3dsfml.o
sf::SoundStream::pause(), referenced from:
vtable for Audio in xx3dsfml.o
sf::SoundStream::onLoop(), referenced from:
vtable for Audio in xx3dsfml.o
sf::SoundStream::SoundStream(), referenced from:
Audio::Audio() in xx3dsfml.o
sf::SoundStream::~SoundStream(), referenced from:
Audio::Audio() in xx3dsfml.o
Audio::~Audio() in xx3dsfml.o
sf::RenderStates::Default, referenced from:
Screen::draw() in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
sf::RenderTarget::draw(sf::Drawable const&, sf::RenderStates const&), referenced from:
Screen::draw() in xx3dsfml.o
Screen::draw() in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
sf::RenderTarget::clear(sf::Color const&), referenced from:
Screen::draw() in xx3dsfml.o
Screen::draw() in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
sf::RenderTarget::setView(sf::View const&), referenced from:
Screen::reset() in xx3dsfml.o
Screen::open() in xx3dsfml.o
Screen::rotate() in xx3dsfml.o
Screen::crop() in xx3dsfml.o
sf::RenderWindow::RenderWindow(), referenced from:
Screen::Screen(Screen::ScreenType) in xx3dsfml.o
sf::RenderWindow::~RenderWindow(), referenced from:
Screen::Screen(Screen::ScreenType) in xx3dsfml.o
Screen::~Screen() in xx3dsfml.o
sf::milliseconds(int), referenced from:
capture() in xx3dsfml.o
playback() in xx3dsfml.o
render(bool) in xx3dsfml.o
sf::RenderTexture::create(unsigned int, unsigned int, sf::ContextSettings const&), referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
sf::RenderTexture::display(), referenced from:
Screen::draw() in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
sf::RenderTexture::setSmooth(bool), referenced from:
Screen::reset() in xx3dsfml.o
Screen::poll() in xx3dsfml.o
sf::RenderTexture::RenderTexture(), referenced from:
Screen::Screen(Screen::ScreenType) in xx3dsfml.o
sf::RenderTexture::~RenderTexture(), referenced from:
Screen::Screen(Screen::ScreenType) in xx3dsfml.o
Screen::~Screen() in xx3dsfml.o
sf::Transformable::setPosition(float, float), referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
Screen::move() in xx3dsfml.o
sf::Transformable::setRotation(float), referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
sf::Transformable::move(float, float), referenced from:
Screen::move() in xx3dsfml.o
Screen::move() in xx3dsfml.o
Screen::move() in xx3dsfml.o
sf::Transformable::setOrigin(float, float), referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
sf::RectangleShape::setSize(sf::Vector2<float> const&), referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
Screen::build(int, int, bool) in xx3dsfml.o
sf::RectangleShape::RectangleShape(sf::Vector2<float> const&), referenced from:
Screen::Screen(Screen::ScreenType) in xx3dsfml.o
Screen::Screen(Screen::ScreenType) in xx3dsfml.o
sf::View::setRotation(float), referenced from:
Screen::reset() in xx3dsfml.o
Screen::rotate() in xx3dsfml.o
sf::View::reset(sf::Rect<float> const&), referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
sf::View::setSize(float, float), referenced from:
Screen::reset() in xx3dsfml.o
Screen::rotate() in xx3dsfml.o
Screen::crop() in xx3dsfml.o
sf::View::View(), referenced from:
Screen::Screen(Screen::ScreenType) in xx3dsfml.o
sf::Color::Color(unsigned char, unsigned char, unsigned char, unsigned char), referenced from:
Screen::draw() in xx3dsfml.o
Screen::draw() in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
sf::Shape::setTexture(sf::Texture const*, bool), referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
Screen::build(int, int, bool) in xx3dsfml.o
sf::Shape::setTextureRect(sf::Rect<int> const&), referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
sf::Shape::~Shape(), referenced from:
sf::RectangleShape::~RectangleShape() in xx3dsfml.o
sf::sleep(sf::Time), referenced from:
capture() in xx3dsfml.o
playback() in xx3dsfml.o
render(bool) in xx3dsfml.o
sf::String::String(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::locale const&), referenced from:
Screen::open() in xx3dsfml.o
sf::Window::setFramerateLimit(unsigned int), referenced from:
Screen::open() in xx3dsfml.o
Screen::open() in xx3dsfml.o
sf::Window::setVerticalSyncEnabled(bool), referenced from:
Screen::open() in xx3dsfml.o
sf::Window::close(), referenced from:
render(bool) in xx3dsfml.o
render(bool) in xx3dsfml.o
render(bool) in xx3dsfml.o
Screen::toggle() in xx3dsfml.o
sf::Window::create(sf::VideoMode, sf::String const&, unsigned int), referenced from:
Screen::open() in xx3dsfml.o
sf::Window::display(), referenced from:
Screen::draw() in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
sf::Texture::create(unsigned int, unsigned int), referenced from:
render(bool) in xx3dsfml.o
sf::Texture::update(unsigned char const*, unsigned int, unsigned int, unsigned int, unsigned int), referenced from:
render(bool) in xx3dsfml.o
render(bool) in xx3dsfml.o
sf::Texture::Texture(), referenced from:
___cxx_global_var_init in xx3dsfml.o
sf::Texture::~Texture(), referenced from:
___cxx_global_var_init in xx3dsfml.o
sf::VideoMode::VideoMode(unsigned int, unsigned int, unsigned int), referenced from:
Screen::open() in xx3dsfml.o
sf::WindowBase::isOpen() const, referenced from:
Screen::toggle() in xx3dsfml.o
sf::SoundStream::getStatus() const, referenced from:
playback() in xx3dsfml.o
vtable for Audio in xx3dsfml.o
sf::RenderTexture::getTexture() const, referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
sf::Transformable::getOrigin() const, referenced from:
Screen::move() in xx3dsfml.o
Screen::move() in xx3dsfml.o
typeinfo for sf::SoundStream, referenced from:
typeinfo for Audio in xx3dsfml.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)
It seems like sfml is meant for the intel chip macs and not the MX macs. I just used `brew install sfml` to install it; do you know if there's a compatible version for ARM macs somewhere?

I don't know much about sfml but these other errors all seem like they're coming from the library. I'm kinda hoping that once I can get that fixed it might actually generate the executable.

User avatar
LemBrosGame
Posts: 35
Joined: Wed Jul 20, 2022 8:29 pm
Contact:

Re: xx3dsfml Multi-platform N3DSXL Capture Software Audio Update

Post by LemBrosGame » Wed Aug 14, 2024 4:33 pm

Hi. I'm a Windows user, not a Mac user. But, I just want to try it.

So, I don't understand how to use xx3dsfml. Can you show me the instructions to make a clear?

Thank you.

sportzfrk
Posts: 7
Joined: Sat Nov 04, 2023 6:11 pm

Re: xx3dsfml Multi-platform N3DSXL Capture Software Audio Update

Post by sportzfrk » Thu Aug 15, 2024 1:36 pm

LemBrosGame wrote:
Wed Aug 14, 2024 4:33 pm
Hi. I'm a Windows user, not a Mac user. But, I just want to try it.

So, I don't understand how to use xx3dsfml. Can you show me the instructions to make a clear?

Thank you.
If you're on Windows, you should just use Loopy's official software found on the home page. Works great.

fangirl
Posts: 1
Joined: Tue Oct 08, 2024 9:13 am

Re: xx3dsfml Multi-platform N3DSXL Capture Software Audio Update

Post by fangirl » Tue Oct 08, 2024 9:19 am

Hello, I'm having some weird errors


An internal OpenAL call failed in SoundStream.cpp(339).
Expression:
alSourcePlay(m_source)
Error description:
AL_INVALID_OPERATION
The specified operation is not allowed in the currenAn internal OpenAL call failed in SoundSource.cpp(203).
Expression:
alGetSourcei(m_source, AL_SOURCE_STATE, &status)
Error description:
AL_INVALID_OPERATION
The specified operation is not allowed in the current state.


I get the screens on the program but it will crash almost immediately after spamming this or thing very close to it. Anyone else experiencing this problem?

Post Reply