Homebrew SNES9x for Old 3DS

  • Thread starter Thread starter bubble2k16
  • Start date Start date
  • Views Views 883,747
  • Replies Replies 2,507
  • Likes Likes 147
Could implementing slow motion be a possibility? For us new3DS users, it would be nice to have the ability to do that with the ZR and/or ZL buttons.
 
How does one place multi-part cheats? I can see the CHT list but I clearly have not closed each individual cheat properly.
Why do CHX's freeze up the system even the Gradius one you provide.
I use Luma3ds 6.6 snes9x 1.10
 
Last edited by chaoticdaos,
Has anybody managed to get super Mario kart working properly with this? I have the issues where it doesn't collecte any items.
 
Mario Kart should work fine. Are you sure you have a good dump?

DSP-1 is properly emulated as far as I know so there shouldn't be any problems with it.
 
Last edited by Taffy,
  • Like
Reactions: DonJav
How does one place multi-part cheats? I can see the CHT list but I clearly have not closed each individual cheat properly.
Why do CHX's freeze up the system even the Gradius one you provide.
I use Luma3ds 6.6 snes9x 1.10

Try another dump. Mine works just fine.
 
  • Like
Reactions: DonJav
Mario Kart should work fine. Are you sure you have a good dump?

DSP-1 is properly emulated as far as I know so there shouldn't be any problems with it.

You were right, I changed the rom and it's working as it should. Thanks mate.
 
Idk why but for some reason the icon file doesn't load on my 3ds

LIKE it will have this

14913000948421045638155.jpg
 
Happens to me too.

I have a CFW and use the CIA build so I don't have to worry about that though.
 
Couldn't compile, here's the log:
Code:
$ make
3dsmain.cpp
arm-none-eabi-g++ -MMD -MP -MF /c/3dsstuff/snes9x_3ds/build/3dsmain.d -g -w -O3 -mword-relocations -finline-limit=20000 -fomit-frame-pointer -ffunction-sections -march=armv6k -mtune=mpcore -mfloat-abi=hard -mtp=soft -I/c/3dsstuff/snes9x_3ds/include -I/C/devkitPro/libctru/include -I/c/3dsstuff/snes9x_3ds/build -I/c/3dsstuff/snes9x_3ds/source -I/c/3dsstuff/snes9x_3ds/source/unzip  -DARM11 -D_3DS -DLIBCTRU_1_0_0 -fno-rtti -fno-exceptions -std=gnu++11 -c /c/3dsstuff/snes9x_3ds/source/3dsmain.cpp -o 3dsmain.o
In file included from c:/devkitPro/libctru/include/sys/select.h:3:0,
                 from c:\devkitpro\devkitarm\arm-none-eabi\include\sys\types.h:68,
                 from c:\devkitpro\devkitarm\arm-none-eabi\include\stdio.h:61,
                 from c:\devkitpro\devkitarm\arm-none-eabi\include\c++\6.3.0\cstdio:42,
                 from c:/3dsstuff/snes9x_3ds/source/3dsmain.cpp:2:
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:104:34: error: 'u_int' has not been declared
 bintime_mul(struct bintime *_bt, u_int _x)
                                  ^~~~~
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:145:17: error: 'sbintime_getsec' declared as an 'inline' variable
 sbintime_getsec(sbintime_t _sbt)
                 ^~~~~~~~~~
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:145:17: error: 'sbintime_t' was not declared in this scope
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:151:17: error: 'sbintime_t' does not name a type
 static __inline sbintime_t
                 ^~~~~~~~~~
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:159:9: error: 'sbttobt' declared as an 'inline' variable
 sbttobt(sbintime_t _sbt)
         ^~~~~~~~~~
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:159:9: error: 'sbintime_t' was not declared in this scope
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:160:1: error: expected ',' or ';' before '{' token
 {
 ^
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:218:9: error: 'sbttots' declared as an 'inline' variable
 sbttots(sbintime_t _sbt)
         ^~~~~~~~~~
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:218:9: error: 'sbintime_t' was not declared in this scope
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:219:1: error: expected ',' or ';' before '{' token
 {
 ^
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:227:17: error: 'sbintime_t' does not name a type
 static __inline sbintime_t
                 ^~~~~~~~~~
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:236:9: error: 'sbttotv' declared as an 'inline' variable
 sbttotv(sbintime_t _sbt)
         ^~~~~~~~~~
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:236:9: error: 'sbintime_t' was not declared in this scope
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:237:1: error: expected ',' or ';' before '{' token
 {
 ^
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:245:17: error: 'sbintime_t' does not name a type
 static __inline sbintime_t
                 ^~~~~~~~~~
In file included from c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:268:0,
                 from c:/devkitPro/libctru/include/sys/select.h:3,
                 from c:\devkitpro\devkitarm\arm-none-eabi\include\sys\types.h:68,
                 from c:\devkitpro\devkitarm\arm-none-eabi\include\stdio.h:61,
                 from c:\devkitpro\devkitarm\arm-none-eabi\include\c++\6.3.0\cstdio:42,
                 from c:/3dsstuff/snes9x_3ds/source/3dsmain.cpp:2:
c:\devkitpro\devkitarm\arm-none-eabi\include\time.h:56:1: error: 'clock_t' does not name a type
 clock_t    _EXFUN(clock,    (void));
 ^~~~~~~
In file included from c:\devkitpro\devkitarm\arm-none-eabi\include\sys\types.h:68:0,
                 from c:\devkitpro\devkitarm\arm-none-eabi\include\stdio.h:61,
                 from c:\devkitpro\devkitarm\arm-none-eabi\include\c++\6.3.0\cstdio:42,
                 from c:/3dsstuff/snes9x_3ds/source/3dsmain.cpp:2:
c:/devkitPro/libctru/include/sys/select.h:9:23: error: 'fd_set' has not been declared
  int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
                       ^~~~~~
c:/devkitPro/libctru/include/sys/select.h:9:40: error: 'fd_set' has not been declared
  int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
                                        ^~~~~~
c:/devkitPro/libctru/include/sys/select.h:9:58: error: 'fd_set' has not been declared
  int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
                                                          ^~~~~~
In file included from c:/3dsstuff/snes9x_3ds/source/3dsmain.cpp:5:0:
c:\devkitpro\devkitarm\arm-none-eabi\include\c++\6.3.0\ctime:64:11: error: '::clock' has not been declared
   using ::clock;
           ^~~~~
In file included from c:/3dsstuff/snes9x_3ds/source/3dsmain.cpp:32:0:
c:/3dsstuff/snes9x_3ds/source/3dsfiles.h:36:13: error: 'string' is not a member of 'std'
 std::vector<std::string> file3dsGetFiles(char *extensions, int maxFiles);
             ^~~
c:/3dsstuff/snes9x_3ds/source/3dsfiles.h:36:13: error: 'string' is not a member of 'std'
c:/3dsstuff/snes9x_3ds/source/3dsfiles.h:36:24: error: template argument 1 is invalid
 std::vector<std::string> file3dsGetFiles(char *extensions, int maxFiles);
                        ^
c:/3dsstuff/snes9x_3ds/source/3dsfiles.h:36:24: error: template argument 2 is invalid
c:/3dsstuff/snes9x_3ds/source/3dsmain.cpp: In function 'void fileGetAllFiles()':
c:/3dsstuff/snes9x_3ds/source/3dsmain.cpp:595:53: error: conversion from 'int' to non-scalar type 'std::vector<std::__cxx11::basic_string<char> >' requested
     std::vector<std::string> files = file3dsGetFiles("smc,sfc,fig", 1000);
                                      ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
make[1]: *** [3dsmain.o] Error 1
make: *** [build] Error 2
 
Couldn't compile, here's the log:
Code:
$ make
3dsmain.cpp
arm-none-eabi-g++ -MMD -MP -MF /c/3dsstuff/snes9x_3ds/build/3dsmain.d -g -w -O3 -mword-relocations -finline-limit=20000 -fomit-frame-pointer -ffunction-sections -march=armv6k -mtune=mpcore -mfloat-abi=hard -mtp=soft -I/c/3dsstuff/snes9x_3ds/include -I/C/devkitPro/libctru/include -I/c/3dsstuff/snes9x_3ds/build -I/c/3dsstuff/snes9x_3ds/source -I/c/3dsstuff/snes9x_3ds/source/unzip  -DARM11 -D_3DS -DLIBCTRU_1_0_0 -fno-rtti -fno-exceptions -std=gnu++11 -c /c/3dsstuff/snes9x_3ds/source/3dsmain.cpp -o 3dsmain.o
In file included from c:/devkitPro/libctru/include/sys/select.h:3:0,
                 from c:\devkitpro\devkitarm\arm-none-eabi\include\sys\types.h:68,
                 from c:\devkitpro\devkitarm\arm-none-eabi\include\stdio.h:61,
                 from c:\devkitpro\devkitarm\arm-none-eabi\include\c++\6.3.0\cstdio:42,
                 from c:/3dsstuff/snes9x_3ds/source/3dsmain.cpp:2:
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:104:34: error: 'u_int' has not been declared
 bintime_mul(struct bintime *_bt, u_int _x)
                                  ^~~~~
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:145:17: error: 'sbintime_getsec' declared as an 'inline' variable
 sbintime_getsec(sbintime_t _sbt)
                 ^~~~~~~~~~
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:145:17: error: 'sbintime_t' was not declared in this scope
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:151:17: error: 'sbintime_t' does not name a type
 static __inline sbintime_t
                 ^~~~~~~~~~
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:159:9: error: 'sbttobt' declared as an 'inline' variable
 sbttobt(sbintime_t _sbt)
         ^~~~~~~~~~
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:159:9: error: 'sbintime_t' was not declared in this scope
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:160:1: error: expected ',' or ';' before '{' token
 {
 ^
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:218:9: error: 'sbttots' declared as an 'inline' variable
 sbttots(sbintime_t _sbt)
         ^~~~~~~~~~
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:218:9: error: 'sbintime_t' was not declared in this scope
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:219:1: error: expected ',' or ';' before '{' token
 {
 ^
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:227:17: error: 'sbintime_t' does not name a type
 static __inline sbintime_t
                 ^~~~~~~~~~
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:236:9: error: 'sbttotv' declared as an 'inline' variable
 sbttotv(sbintime_t _sbt)
         ^~~~~~~~~~
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:236:9: error: 'sbintime_t' was not declared in this scope
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:237:1: error: expected ',' or ';' before '{' token
 {
 ^
c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:245:17: error: 'sbintime_t' does not name a type
 static __inline sbintime_t
                 ^~~~~~~~~~
In file included from c:\devkitpro\devkitarm\arm-none-eabi\include\sys\time.h:268:0,
                 from c:/devkitPro/libctru/include/sys/select.h:3,
                 from c:\devkitpro\devkitarm\arm-none-eabi\include\sys\types.h:68,
                 from c:\devkitpro\devkitarm\arm-none-eabi\include\stdio.h:61,
                 from c:\devkitpro\devkitarm\arm-none-eabi\include\c++\6.3.0\cstdio:42,
                 from c:/3dsstuff/snes9x_3ds/source/3dsmain.cpp:2:
c:\devkitpro\devkitarm\arm-none-eabi\include\time.h:56:1: error: 'clock_t' does not name a type
 clock_t    _EXFUN(clock,    (void));
 ^~~~~~~
In file included from c:\devkitpro\devkitarm\arm-none-eabi\include\sys\types.h:68:0,
                 from c:\devkitpro\devkitarm\arm-none-eabi\include\stdio.h:61,
                 from c:\devkitpro\devkitarm\arm-none-eabi\include\c++\6.3.0\cstdio:42,
                 from c:/3dsstuff/snes9x_3ds/source/3dsmain.cpp:2:
c:/devkitPro/libctru/include/sys/select.h:9:23: error: 'fd_set' has not been declared
  int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
                       ^~~~~~
c:/devkitPro/libctru/include/sys/select.h:9:40: error: 'fd_set' has not been declared
  int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
                                        ^~~~~~
c:/devkitPro/libctru/include/sys/select.h:9:58: error: 'fd_set' has not been declared
  int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
                                                          ^~~~~~
In file included from c:/3dsstuff/snes9x_3ds/source/3dsmain.cpp:5:0:
c:\devkitpro\devkitarm\arm-none-eabi\include\c++\6.3.0\ctime:64:11: error: '::clock' has not been declared
   using ::clock;
           ^~~~~
In file included from c:/3dsstuff/snes9x_3ds/source/3dsmain.cpp:32:0:
c:/3dsstuff/snes9x_3ds/source/3dsfiles.h:36:13: error: 'string' is not a member of 'std'
 std::vector<std::string> file3dsGetFiles(char *extensions, int maxFiles);
             ^~~
c:/3dsstuff/snes9x_3ds/source/3dsfiles.h:36:13: error: 'string' is not a member of 'std'
c:/3dsstuff/snes9x_3ds/source/3dsfiles.h:36:24: error: template argument 1 is invalid
 std::vector<std::string> file3dsGetFiles(char *extensions, int maxFiles);
                        ^
c:/3dsstuff/snes9x_3ds/source/3dsfiles.h:36:24: error: template argument 2 is invalid
c:/3dsstuff/snes9x_3ds/source/3dsmain.cpp: In function 'void fileGetAllFiles()':
c:/3dsstuff/snes9x_3ds/source/3dsmain.cpp:595:53: error: conversion from 'int' to non-scalar type 'std::vector<std::__cxx11::basic_string<char> >' requested
     std::vector<std::string> files = file3dsGetFiles("smc,sfc,fig", 1000);
                                      ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
make[1]: *** [3dsmain.o] Error 1
make: *** [build] Error 2
Try using devkitPro r45 with libnds 1.0.0.
 
how to create chx file with two lines code? in readme file, the example only for one lines code.

Sent from my Mi-4c using Tapatalk
 
how to create chx file with two lines code? in readme file, the example only for one lines code.

Sent from my Mi-4c using Tapatalk

You should write 2 lines with a slightly different description.

For example:

Y,ABCD-EF01,Infinite Lives A
Y,ABCD-EF02,Infinite Lives B

When in-game, you will have to manually enable or disable both together.

--------------------- MERGED ---------------------------

Idk why but for some reason the icon file doesn't load on my 3ds

LIKE it will have this

You can try to see if this works:
 

Attachments

  • Like
Reactions: NuikopeaDemon
You should write 2 lines with a slightly different description.

For example:

Y,ABCD-EF01,Infinite Lives A
Y,ABCD-EF02,Infinite Lives B

When in-game, you will have to manually enable or disable both together.

--------------------- MERGED ---------------------------



You can try to see if this works:
thanks, i will try it [emoji1]
 
Hmm, couldn't compile on the latest installation through devkitPro without changing a few things. @bubble2k16 , have you thought about updating to the latest stuff, and possibly using something like citro3D instead of the deprecated GPU functions?

Not really :) I tried moving over to libctru 1.2.0 earlier with another fellow contributor's help, but somehow there was a bug in libctru 1.2.0 that caused the New 3DS to run the emulator at Old 3DS's speeds. Not sure if this was fixed in libctru 1.2.1, but I haven't got too much time to test that.
 
Not really :) I tried moving over to libctru 1.2.0 earlier with another fellow contributor's help, but somehow there was a bug in libctru 1.2.0 that caused the New 3DS to run the emulator at Old 3DS's speeds. Not sure if this was fixed in libctru 1.2.1, but I haven't got too much time to test that.
Well, I can say that after compiling with 1.2.1 (with a few changes to fix errors), it seems to run at new3DS speeds on my new3DS. Nothing too extravagant. Just adding a line for including <string> in one section, then commenting out sections related to the LIBCTRU_1_0_0 define. I didn't need to dive into ctrulib to fix the speeds.

Edit:

I was trying the 3dsx version through HBL, and it turned out to be running at o3DS speeds. The cia version, however, ran at n3DS speeds. There is an issue though. When pushing the power button after the emulator is loaded, it attempts to show the "Software closed" screen, but it crashes with an error, and restarts the system.
 
Last edited by DiscostewSM,
Well, I can say that after compiling with 1.2.1 (with a few changes to fix errors), it seems to run at new3DS speeds on my new3DS. Nothing too extravagant. Just adding a line for including <string> in one section, then commenting out sections related to the LIBCTRU_1_0_0 define. I didn't need to dive into ctrulib to fix the speeds.

Edit:

I was trying the 3dsx version through HBL, and it turned out to be running at o3DS speeds. The cia version, however, ran at n3DS speeds. There is an issue though. When pushing the power button after the emulator is loaded, it attempts to show the "Software closed" screen, but it crashes with an error, and restarts the system.

Yup I had that problem. So until that's fixed, I'll stick to libctru v1.0.0. :) I wonder if the Retroarch team figured out a solution.
 

Site & Scene News

Popular threads in this forum