Gericom/GBARunner3

Unclear how to compile and get the .nds

Opened this issue · 14 comments

Instuctions on TwilightMenu++ page tell you to compile GBARunner3 and get the resulting .nds but there is no makefile and ZERO documentation on how to compile and what are the steps to do it

From the Discord server pinned messages:

How to compile GBARunner3:

  • Install the latest version of DevKitPRO from their official repo: https://github.com/devkitPro/installer/releases
  • Clone GBARunner3 repo with submodules in your workspace:
    git clone --recursive https://github.com/Gericom/GBARunner3.git
  • Run make inside the /code folder, you should get GBARunner3.nds inside /code/bootstrap.
    NOTE: Currently only Windows is able to compile, Linux/macOS users may get a fix in the future.

To run it, you need:

  • TwilightMenu++ 26.1.1 or higher already installed in your SD card/flashcard.
  • Move your previously compiled GBARunner3.nds inside /_nds/TWiLightMenu/emulators folder in your SD card.
  • Get (on your own) retail GBA bios, rename it as bios.bin and put it inside the /_gba folder in your SD card.
  • Get the configs folder from the repository you cloned, copy it inside of the /_gba folder, it should be /_gba/configs.
  • Write GBARUNNER3_TEST = 1 text line under the [SRLOADER] section in /_nds/TWiLightMenu/settings.ini
  • If you're using a flashcard, compatibility has been fixed, so will be able to run this as well.

You can check the current status on the compatibility list here (contributors are welcome):
https://docs.google.com/spreadsheets/d/1PTf9kW7L3MTIUU5WXvOnvSLTmgNG4K-CzDNe2U8Rd6Y/edit?usp=sharing

All was going well until the last part. The errors:

C:/devkitPro/devkitARM/arm-none-eabi/include/regex.h:99:45: error: expected primary-expression befor
e '__restrict'
99 | size_t, regmatch_t [__restrict], int);
| ^~~~~~~~~~
C:/devkitPro/devkitARM/arm-none-eabi/include/regex.h:99:45: error: expected ']' before '__restrict'
99 | size_t, regmatch_t [__restrict], int);
| ^~~~~~~~~~
| ]
C:/devkitPro/devkitARM/arm-none-eabi/include/regex.h:99:45: error: expected ')' before '__restrict'
99 | size_t, regmatch_t [__restrict], int);
| ^~~~~~~~~~
| )
C:/devkitPro/devkitARM/arm-none-eabi/include/regex.h:98:16: note: to match this '('
98 | int regexec(const regex_t __restrict, const char __restrict,
| ^
C:/devkitPro/devkitARM/arm-none-eabi/include/regex.h:99:55: error: expected initializer before ']' t
oken
99 | size_t, regmatch_t [__restrict], int);
| ^
C:/Users/jorda/GBARunner3/code/test/arm9/source/main.cpp: In function 'void testMain(int, char
)':
C:/Users/jorda/GBARunner3/code/test/arm9/source/main.cpp:43:18: warning: ignoring return value of 'i
nt RUN_ALL_TESTS()' declared with attribute 'warn_unused_result' [-Wunused-result]
43 | RUN_ALL_TESTS();
| ~~~~~~~~~~~~~^~
make[3]: *** [/opt/devkitpro/devkitARM/base_rules:34: main.o] Error 1
make[2]: *** [Makefile:129: build] Error 2
make[2]: Leaving directory '/home/jorda/GBARunner3/code/test/arm9'
make[1]: *** [Makefile:35: checkarm9] Error 2
make[1]: Leaving directory '/home/jorda/GBARunner3/code/test'
make: *** [Makefile:30: checktest] Error 2

I continued to move on despite the errors. I followed the directions and went to start a GBA ROM and it worked.

Matter of fact, games run a lot better than before. I like it but it would have been easier to release a .nds for those that don't have any experience with a command line.

hi! I'm getting this error: error: implicit declaration of function 'memset' [-Wimplicit-function-declaration]
684 | memset(dst, val, cnt);
| ^~~~~~
can anyone help?
or @speck1234 could you send your nds file?

hi! I'm getting this error: error: implicit declaration of function 'memset' [-Wimplicit-function-declaration] 684 | memset(dst, val, cnt); | ^~~~~~ can anyone help? or @speck1234 could you send your nds file?

Add "#include <string.h>" without quotes to the includes section in GBARunner3\code\core\arm9\source\Fat\ff.c

hi! I'm getting this error: error: implicit declaration of function 'memset' [-Wimplicit-function-declaration] 684 | memset(dst, val, cnt); | ^~~~~~ can anyone help? or @speck1234 could you send your nds file?

Is this only appearing as a warning? If so you can just ignore it for now and let the compiler to continue.

hi! I'm getting this error: error: implicit declaration of function 'memset' [-Wimplicit-function-declaration] 684 | memset(dst, val, cnt); | ^~~~~~ can anyone help? or @speck1234 could you send your nds file?

Is this only appearing as a warning? If so you can just ignore it for now and let the compiler to continue.

No, i couldn't skip it. It just had the option to close the terminal

hi! I'm getting this error: error: implicit declaration of function 'memset' [-Wimplicit-function-declaration] 684 | memset(dst, val, cnt); | ^~~~~~ can anyone help? or @speck1234 could you send your nds file?

Is this only appearing as a warning? If so you can just ignore it for now and let the compiler to continue.

No, i couldn't skip it. It just had the option to close the terminal

Did you install the latest DKP version? on what platform are you trying to build GBARunner3?

hi! I'm getting this error: error: implicit declaration of function 'memset' [-Wimplicit-function-declaration] 684 | memset(dst, val, cnt); | ^~~~~~ can anyone help? or @speck1234 could you send your nds file?

Is this only appearing as a warning? If so you can just ignore it for now and let the compiler to continue.

No, i couldn't skip it. It just had the option to close the terminal

Did you install the latest DKP version? on what platform are you trying to build GBARunner3?

Dpk? Windows 11.

hi! I'm getting this error: error: implicit declaration of function 'memset' [-Wimplicit-function-declaration] 684 | memset(dst, val, cnt); | ^~~~~~ can anyone help? or @speck1234 could you send your nds file?

Add "#include <string.h>" without quotes to the includes section in GBARunner3\code\core\arm9\source\Fat\ff.c

This was the fix for me for this same issue. Thanks!

hi! I'm getting this error: error: implicit declaration of function 'memset' [-Wimplicit-function-declaration] 684 | memset(dst, val, cnt); | ^~~~~~ can anyone help? or @speck1234 could you send your nds file?

Is this only appearing as a warning? If so you can just ignore it for now and let the compiler to continue.

No, i couldn't skip it. It just had the option to close the terminal

Did you install the latest DKP version? on what platform are you trying to build GBARunner3?

Dpk? Windows 11.

DevKitPro. Just tested on my side and I'm able to fully compile without any issues though.

hi! I'm getting this error: error: implicit declaration of function 'memset' [-Wimplicit-function-declaration] 684 | memset(dst, val, cnt); | ^~~~~~ can anyone help? or @speck1234 could you send your nds file?

Is this only appearing as a warning? If so you can just ignore it for now and let the compiler to continue.

No, i couldn't skip it. It just had the option to close the terminal

Did you install the latest DKP version? on what platform are you trying to build GBARunner3?

Dpk? Windows 11.

DevKitPro. Just tested on my side and I'm able to fully compile without any issues though.

Oh, ok i had that installed (i had given up yesterday)

DanP02 commented

Hi. When I try to compile the code with devKitPro, the compiler send to me this:

C:/Users/polan/GBARunner3/code/libs/libtwl/common/source/rtos/rtosIrq.c:43:5: error: implicit declaration of function 'setVectorBase' [-Wimplicit-function-declaration]
43 | setVectorBase(0);
| ^~~~~~~~~~~~~
make[3]: *** [/opt/devkitpro/devkitARM/base_rules:40: rtosIrq.o] Error 1
make[2]: *** [Makefile:109: build] Error 2
make[2]: Leaving directory '/c/Users/polan/GBARunner3/code/libs/libtwl/libtwl9'
make[1]: *** [Makefile:22: check9] Error 2
make[1]: Leaving directory '/c/Users/polan/GBARunner3/code/libs/libtwl'
make: *** [Makefile:24: checklibtwl] Error 2

Anyone can help me with it? Thanks

Hi. When I try to compile the code with devKitPro, the compiler send to me this:

C:/Users/polan/GBARunner3/code/libs/libtwl/common/source/rtos/rtosIrq.c:43:5: error: implicit declaration of function 'setVectorBase' [-Wimplicit-function-declaration] 43 | setVectorBase(0); | ^~~~~~~~~~~~~ make[3]: *** [/opt/devkitpro/devkitARM/base_rules:40: rtosIrq.o] Error 1 make[2]: *** [Makefile:109: build] Error 2 make[2]: Leaving directory '/c/Users/polan/GBARunner3/code/libs/libtwl/libtwl9' make[1]: *** [Makefile:22: check9] Error 2 make[1]: Leaving directory '/c/Users/polan/GBARunner3/code/libs/libtwl' make: *** [Makefile:24: checklibtwl] Error 2

Anyone can help me with it? Thanks

Are you using libnds 2.0? IF that's the case, then you won't be able to compile it for now, since the new DevKitPro update and the addition of the new Calico library is currently incompatible with this project. This will be fixed later by migrating GBARunner3 to completely use libtwl and Wonderful Toolchain, so for now you need to use a previous 2.0 DevKitPro package to compile it.