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
you will not get Native AOT working on 3DS, the 3DS is Armv6 only, Native AOT is Armv7 only
Hi
I was talking of CoreRT, do they have the same limitations ?
Also have you an idea of what can I do ?
Thanks 🙏
you should not be using CoreRT, it is just an older and worse version of Native AOT
but, yes, it has the same limitations
So what can I do now ?
i do not think there are very many good options left
I don’t think it’s impossible
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
Oh like unity does I think
For 3ds
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
Adapt to bare metal ?
I just have to compile with the arm toolchain ?
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
Oh why ?
Compilation error ?
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
I see
And for FNA
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
I think fna uses sdl right ?
Oh you means gpu features
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
Max support for 3ds gpu is gl es 1.1
i am also not sure if it is known how to use the OpenGL API on 3DS
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 !
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
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 !
:SCfeet:
gimme engine name.
Wait it’s on my GitHub
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