C
C#•6mo ago
AdamouchGoBrr

porting FNA and C# into Nintendo 3DS

Hello I am trying to compile c# on 3ds (I already know the difficulty so no need to tell it to me) So l made a dummy project and compiled it using coreRT but it seems to not be able to compile bare metal arm (arm-none-eabi) I was also considering using nanoFramework but I don't know it and it's limitations for now If someone can help me Thanks
25 Replies
reflectronic
reflectronic•6mo ago
you will not get Native AOT working on 3DS, the 3DS is Armv6 only, Native AOT is Armv7 only
AdamouchGoBrr
AdamouchGoBrrOP•6mo ago
Hi I was talking of CoreRT, do they have the same limitations ? Also have you an idea of what can I do ? Thanks 🙏
reflectronic
reflectronic•6mo ago
you should not be using CoreRT, it is just an older and worse version of Native AOT but, yes, it has the same limitations
AdamouchGoBrr
AdamouchGoBrrOP•6mo ago
So what can I do now ?
reflectronic
reflectronic•6mo ago
i do not think there are very many good options left
AdamouchGoBrr
AdamouchGoBrrOP•6mo ago
I don’t think it’s impossible
reflectronic
reflectronic•6mo ago
it should not be difficult to build mono for armv6 like, the version of mono for .NET 8/.NET 9 https://github.com/dotnet/runtime
AdamouchGoBrr
AdamouchGoBrrOP•6mo ago
Oh like unity does I think For 3ds
reflectronic
reflectronic•6mo ago
yes, but, you will actually have full access to .NET 9 and the latest performance improvements in mono unlike unity they added support for building linux-armv6 version of mono some time ago. it should not be difficult to adapt to your platform i think
AdamouchGoBrr
AdamouchGoBrrOP•6mo ago
Adapt to bare metal ? I just have to compile with the arm toolchain ?
reflectronic
reflectronic•6mo ago
presumably you have some toolchain and libraries i suppose i shouldn't have said "not difficult" but it is definitely doable you will just have to work through the errors one at a time
AdamouchGoBrr
AdamouchGoBrrOP•6mo ago
Oh why ? Compilation error ?
reflectronic
reflectronic•6mo ago
i mean, idk, it is a port, it is hard enough to port these things just from one desktop platform to another in some places the code will probably use linux-specific functions, or just functions that your does not provide, and you will have to figure out alternatives
AdamouchGoBrr
AdamouchGoBrrOP•6mo ago
I see And for FNA
reflectronic
reflectronic•6mo ago
i don't think you will get very far with FNA the 3DS GPU is not fully programmable in the way that the FNA API expects
AdamouchGoBrr
AdamouchGoBrrOP•6mo ago
I think fna uses sdl right ? Oh you means gpu features
reflectronic
reflectronic•6mo ago
FNA uses APIs such as OpenGL and D3D directly for example, the 3DS does not have pixel shaders, that is something that is largely taken "for granted" in FNA i think you could get something working but it wouldn't be pretty, you would have to strip out a bunch of stuff i saw someone in the server was working on a fork for OpenGL ES 2.0 support, this gets you most of the way there, though you are still ripping out pixel shaders and some other things
AdamouchGoBrr
AdamouchGoBrrOP•6mo ago
Max support for 3ds gpu is gl es 1.1
reflectronic
reflectronic•6mo ago
i am also not sure if it is known how to use the OpenGL API on 3DS
AdamouchGoBrr
AdamouchGoBrrOP•6mo ago
There is a port of OpenGL api based on libctru I think you answered to all my question thanks you so much for your time !
The Fog from Human Resources
You could try to use C or C++ Ik it might not be suitable but for many this seems like the best option specially speaking of games for like the 3ds, ds or even wii etc
AdamouchGoBrr
AdamouchGoBrrOP•6mo ago
Hello, I know that it’s more suitable but I love low level thing etc and for me it’s like a challenge, btw I already made a 3ds game engine in cpp Thank you for your answer !
The Fog from Human Resources
:SCfeet: gimme engine name.
AdamouchGoBrr
AdamouchGoBrrOP•6mo ago
Wait it’s on my GitHub
AdamouchGoBrr
AdamouchGoBrrOP•6mo ago
GitHub
GitHub - ADAMOUMOU/CitroFlex: An abstraction library that I am work...
An abstraction library that I am workng on for the C2D graphical library of the Nintendo 3ds - ADAMOUMOU/CitroFlex
Want results from more Discord servers?
Add your server