CodeWalrus

Development => PC, Mac & Vintage Computers => Topic started by: gameblabla on October 22, 2016, 04:36:02 PM

Title: SF2D (3DS homebrew) Wrapper library
Post by: gameblabla on October 22, 2016, 04:36:02 PM
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.

(https://gameblabla.nl/img/memory3ds_pc.png)

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 (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.
Title: Re: SF2D (3DS homebrew) Wrapper library
Post by: Yuki on October 22, 2016, 06:12:38 PM
Oooh, looks interesting, gotta try that out.
Title: Re: SF2D (3DS homebrew) Wrapper library
Post by: Dream of Omnimaga on October 23, 2016, 05:07:12 AM
That is a nice idea. Good job gameblabla :3=
Title: Re: SF2D (3DS homebrew) Wrapper library
Post by: gameblabla on October 23, 2016, 08:14:16 AM
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.
Title: Re: SF2D (3DS homebrew) Wrapper library
Post by: gameblabla on October 27, 2016, 01:52:08 AM
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 :
(https://gameblabla.nl/img/minicraft3ds_wrapper.png)

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.
Title: Re: SF2D (3DS homebrew) Wrapper library
Post by: Dream of Omnimaga on October 27, 2016, 07:01:43 PM
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)