Join us on Discord!
You can help CodeWalrus stay online by donating here.

SF2D (3DS homebrew) Wrapper library

Started by gameblabla, October 22, 2016, 04:36:02 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

gameblabla

So after i saw countless 3DS homebrew titles and wondering how i could play them without the use of a 3DS emulator,
this is the result of it.
Most 3DS homebrew games use sf2d so i decided to basically emulate the sf2d's functions and sent them to their SDL2 equivalent.
After 2 days of work, Memory3DS, a simple 3DS homebrew game, was working properly with my library.



To the original source code, i only had to fix a bug and comment out some unemulated functions to get it to work.
Everything else was 100% 3DS-specific and i got it to work with my library.
My library also provides support for touch-screen and input support as well as some other functions. (like osGetTime())

The main reason why i did this library was to be able to play some 3DS homebrew games on my PC but
you can also use it for development purposes and use it to make your own 3DS title without resorting to an emulator.(or the real deal)

github repo is here :
https://github.com/gameblabla/sf2d_wrapper

To compile the Memory3DS game, go to same/modified_port and type make -f Makefile.SDL2.
Make sure you have SDL2, SDL2_gfx, SDL2_mixer and SDL2_image though.
There's also support for the SDL 1.2 series but due to lack of support for blending, rotation and scaling,
it is less compliant than the SDL2 version.
  • Calculators owned: None (used to own an Nspire and TI-89)

Yuki

Oooh, looks interesting, gotta try that out.
  • Calculators owned: TI-83+ (dead?), Casio Prizm (also dead???)
  • Consoles, mobile devices and vintage computers owned: A lot
Read Zarmina!
YUKI-CHAAAANNNN
In the beginning there was walrii. In the end there will be walrii. All hail our supreme leader :walrii: --Snektron

if you wanna throw money at me and/or CodeWalrus monthly it's here

Dream of Omnimaga

That is a nice idea. Good job gameblabla :3=
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

gameblabla

Thank you, guys.

I have worked on this again and added more functions and stubs.
Now, Minicraft3DS (with some modifications) finally boots but with incorrect graphics...
There is still a lot to do.
  • Calculators owned: None (used to own an Nspire and TI-89)

gameblabla

#4
Bump.
I have fixed a number of things :
- Each screen is now a texture. This should fix some graphical issues when sprites are rendered off-screen.
- Added a workaround when hidTouchRead (the main functiion) is never called but hidScanInput is.
- Added more stubs.
- Fixed texture scaling.

The last one fixed the titlescreen in Minicraft3DS and now you can see the titlescreen :


Unfortunely; it has lots of graphical glitches (perhaps because i had to modify it) and the game crashes when you attempt to start the game...

I'm also looking for sf2d games : i seriously can't find any that's open source.
  • Calculators owned: None (used to own an Nspire and TI-89)

Dream of Omnimaga

Nice to see more progress. As for sf2d games I can't help you since I don't know much about it, but I would be shocked if no open-source sf2d games existed, unless the sf2d dev community mentality is centered around closed-source, like I saw in certain other communities (unlike the TI community, which is very pro-open-source)
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Powered by EzPortal