Tutorial How to make 3DS Games with Unity

  • Thread starter Thread starter Keksfresser
  • Start date Start date
  • Views Views 224,392
  • Replies Replies 513
  • Likes Likes 30

Should I add some Demo Projects?


  • Total voters
    54
  • Poll closed .
Man, thanks a lot for the help. I know making games for 3ds is too hard because the optimization, the code or the export, but is a challenge that I will take, helping myself from the 3ds community. :D
 
  • Like
Reactions: Th3Travler
one question ¿are there variables for the 3ds touch screen? i couldn´t found anything about the touch input in the manual
Well I couldn't find anything either lol

But I do know that there is a touch button in the Socket example package that works with the 3DS when you build it. ( maybe you can reverse engineer from that? )
 
  • Like
Reactions: HyingPlantilina
Well there are a lot of thighs that have to be setup correctly in order to get a 3ds project to export.

Lets start with this, do you have in your build settings Nintendo 3DS selected?
View attachment 448251
View attachment 448254

Are you using any of the sample 3ds packages?
mainly the 3DS Banner package?
View attachment 448255
When 5.6.5 released there is a bug related to the 3DS Banner package. it has a simple fix but definitely not obvious. The sample Banner package imports I think png files into all the Banner sub folders.

You must delete or convert every png or jpg or any other image format to .CTEX in order for the banner to export. CTEX is Nintendo's proprietary image format.

While you can delete the image files from all the folders except in one in COMMON.
- DO NOT DELETE THE FOLDERS! ONLY THE IMAGE FILES!
the texture file in COMMON\Textures
MUST BE CONVERTED TO CTEX AND CAN NOT BE DELETED!!!! DO NOT CHANGE THE NAME!
the exporter is very picky and will crash!

you CAN modify the image but make sure to save it in the proper folder and name it correctly!

COMMON
|______Textures -> COMMON1.ctex

View attachment 448260

You have to use the Photoshop NintendoWare for CTR tool set
to do the conversion. The software can be found on the web.

I don't know about modern photoshop but I have it working with CS 5.5
I know CS6 and cc14-16 works too. When properly installed you can save files in the
CTEX format.
View attachment 448266

My advice is stick to ETC1 and ETC1_A4 they are the best bang for the buck compression wise, thou you can use RGB compressions for better alpha and color, file sizes will be bigger tho. This advice is really more for 3D banners. for 2D Banners stick to RGB.
View attachment 448267

It is funny that you have to do this only for Banner files because you can use regular image formats for the rest of the project only the banner will error out if its not .CTEX. While Unity will convert all project images to Nintendo proprietary formats for the 3DS, the Banner is exported by a separate tool chain that does not do image conversions. it is very picky and going off script will make the exporter
insta-crash.

make sure that your images are multiple of 2 and smaller than 512. Id recommend simply converting the supplied sample image which is 256x128 and turning it into a simple 2d banner. 3D banners are a total other nightmare it for sure can be done but I'm not going to explain that here.

This may not be the fix either but this is something else that I know cause none descript errors and this one tends to bite people when they 1st start off. this is why I decided to explain it.

If this isn't it take a screen shot of your Build Settings, Player settings, Project and Hierarchy Ill see if I can help you. You can also upload your project and I can take a look.
Thanks for the tips!

Unfortunately none of that was the issue. I already have the banner and build platform figured out. I have been able to build my game before. I've already reinstalled the CTR, the Development Environments, unity itself... Kinda sucks, i was in the middle of a project
 
  • Like
Reactions: HyingPlantilina
Thanks for the tips!

Unfortunately none of that was the issue. I already have the banner and build platform figured out. I have been able to build my game before. I've already reinstalled the CTR, the Development Environments, unity itself... Kinda sucks, i was in the middle of a project

Sucks man that's always a pain. This is where source control is very helpful since it lets you roll back changes. I believe GitHub has that feature but it is a pain to install and use compared to Perforce. anyways none of this helps with the current problem on hand.

So if you make a band new project, can you export it?

if yes... then try this - bit of a brute force method but may yield results.
In my production experience of Christmas pasts this trick helped me loads of time.

Copy your project to a new temp project. Then start deleting each folder of your project and try exporting till you get an export to build. Once you find the folder then start deleting files 3 at a time ect ect. The goal here is to find the files that are causing all the trouble help you isolate it. Once you got that you can delete that temp project knowing what to fix on the main project.

its a bit of a general tip I know but a direction is better than nothing. wish I knew more about programing be more helpful to you :)

You could also try to copy the error into chagpt and see what it think might be the error. Its been helpful for me for debugging.
 
Last edited by Th3Travler,
  • Like
Reactions: HyingPlantilina
Sucks man that's always a pain. This is where source control is very helpful since it lets you roll back changes. I believe GitHub has that feature but it is a pain to install and use compared to Perforce. anyways none of this helps with the current problem on hand.

So if you make a band new project, can you export it?

if yes... then try this - bit of a brute force method but may yield results.
In my production experience of Christmas pasts this trick helped me loads of time.

Copy your project to a new temp project. Then start deleting each folder of your project and try exporting till you get an export to build. Once you find the folder then start deleting files 3 at a time ect ect. The goal here is to find the files that are causing all the trouble help you isolate it. Once you got that you can delete that temp project knowing what to fix on the main project.

its a bit of a general tip I know but a direction is better than nothing. wish I knew more about programing be more helpful to you :)

You could also try to copy the error into chagpt and see what it think might be the error. Its been helpful for me for debugging.
Yeah, i use github! problem is that this change that caused this issue was in the unity installation itself, when i changed computers. I tested this installation with another project and it had the same problem.

Thanks a lot for your time and assistance!
Post automatically merged:

Yeah, i use github! problem is that this change that caused this issue was in the unity installation itself, when i changed computers. I tested this installation with another project and it had the same problem.

Thanks a lot for your time and assistance!
OOOOOOOOHh boy.
Ok, your advice was really good.

I got some help from other people over at the Undertale port by CooingMaxito discord server. My first error, with the Armcc5 license, was fixed after i copied the license file from Armcc_License/5.x to ProgramFiles(x86)/ARMCC_Nintendo_5/sw/info/

But then it started giving me another error, where it wasnt able to find "nn/hid/CTR/hid_DeviceStatus.h" file during IL2CPP runtime.

This one:
Failed running C:\Program Files (x86)\ARMCC_Nintendo_5\bin\../bin64\armcc.exe -c -I "C:/Nintendo/UnityNew3DS_1_3_0/Editor/Data/PlaybackEngines/N3DS/Tools\il2cpp\bdwgc\include" -I "C:/Nintendo/UnityNew3DS_1_3_0/Editor/Data/PlaybackEngines/N3DS/Tools\il2cpp\libil2cpp\include" -I "Temp/StagingArea\il2cppOutput" -I "C:\Windows\system32\include" --gnu --cpu "MPCore" --split_sections --apcs=/interwork --littleend --arm --vfe --signed_chars --no_rtti --wchar --wchar16 --multibyte_chars --dollar --exceptions --remove_unneeded_entities --diag_style=ide --data_reorder --fpmode=fast -O2 "-Otime" --no_debug --no_debug_macros --diag_suppress=1,68,186,368,177,550 -D "NN_COMPILER_RVCT" -D "NN_COMPILER_RVCT_VERSION_MAJOR=4" -D "NN_COMPILER_RVCT_VERSION_MINOR=1" -D "NN_PROCESSOR_ARM" -D "NN_PROCESSOR_ARM11MPCORE" -D "NN_PROCESSOR_ARM_V6" -D "NN_PROCESSOR_ARM_VFP_V2" -D "NN_HARDWARE_CTR" -D "NN_PLATFORM_CTR" -D "NN_HARDWARE_CTR_TS" -D "NN_SYSTEM_PROCESS" -D "NN_DEBUGGER_KMC_PARTNER" -D "NN_COMPILER_OPTION_ARM" -D "NN_EFFORT_FAST" -D "__STDC_LIMIT_MACROS" Temp\StagingArea\il2cppOutput\DeviceEntryStub.cpp -o Temp\Il2CppCache\DeviceEntryStub.oC:/Nintendo/UnityNew3DS_1_3_0/Editor/Data/PlaybackEngines/N3DS/Includes/InputN3DSInterface.h(4,41) : error #5: cannot open source input file "nn/hid/CTR/hid_DeviceStatus.h": No such file or directoryarmcc : Temp\StagingArea\il2cppOutput\DeviceEntryStub.cpp: 0 warnings, 1 errorUnityEngine.Debug:LogError(Object)NativeCompiler:RunProgram(ProcessStartInfo) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/NativeCompiler.cs:57)NativeCompiler:Execute(String, String) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/NativeCompiler.cs:24)ArmccCompiler:Compile(String, String, Boolean) (at C:/buildslave/unity/build/PlatformDependent/N3DS/Editor/Managed/ArmccCompiler.cs:195)<CompileDynamicLibrary>c__AnonStorey0:<>m__1(String) (at C:/buildslave/unity/build/PlatformDependent/N3DS/Editor/Managed/ArmccCompiler.cs:101)<ParallelFor>c__AnonStorey1`1:<>m__0(Object) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/NativeCompiler.cs:86)

I pasted the error on chat gpt and, among a lot of generic answers, it told me to check if unity had access to the sdk folder.

I went on C:/Nintendo and gave full control permissions, on every folder there, to Everyone.

It worked.

I hope this helps someone if they were ever to have the same issue!
 
Last edited by PlayerLobs,
  • Like
Reactions: Th3Travler
i don´t know how i get this error but ._:
Code:
 --userlibpath="C:\Nintendo\SDK\UnityEnv\SDK\ctr_sdk\libraries\CTR-TS.Process.MPCore\release" --no_debug --no_bestdebug --tailreorder --inline --diag_suppress L6314W,L6329W,L6394W --datacompressor off --keep=nnMain --scatter="C:\Nintendo\SDK\UnityEnv\SDK\ctr_sdk\resources\specfiles\linker\CTR.Process.MPCore.ldscript" --strict --diag_style=ide --merge --cpu MPCore --vfemode=force --entry=__ctr_start --unmangled --startup=__ctr_start --largeregions --scanlib --pad=0xFF --remove --exceptions -o Player.axf Native\libAssembly.a "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\player.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\il2cpp.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\bdwgc.a" crt0.fast.o libgles2.fast.a libnn_ac.fast.a libnn_act.fast.a libnn_applet.fast.a libnn_boss.fast.a libnn_cec.fast.a libnn_cfg.fast.a libnn_crypto.fast.a libnn_cryptoRsa.fast.a libnn_cx.fast.a libnn_dbm.fast.a libnn_dev.fast.a libnn_dlp.fast.a libnn_dsp.fast.a libnn_err.fast.a libnn_erreula.fast.a libnn_fnd.fast.a libnn_font.fast.a libnn_friends.fast.a libnn_fs.fast.a libnn_fshio.fast.a libnn_gd.fast.a libnn_gr.fast.a libnn_gxlow.fast.a libnn_hid.fast.a libnn_hidlow.fast.a libnn_http.fast.a libnn_init.fast.a libnn_ir.fast.a libnn_jpegmp.fast.a libnn_math.fast.a libnn_mic.fast.a libnn_midi.fast.a libnn_ndm.fast.a libnn_news.fast.a libnn_ngc.fast.a libnn_nstd.fast.a libnn_nwm.fast.a libnn_os.fast.a libnn_phtsel.fast.a libnn_pl.fast.a libnn_ptm.fast.a libnn_rdt.fast.a libnn_snd.fast.a libnn_socket.fast.a libnn_srv.fast.a libnn_ssl.fast.a libnn_svc.fast.a libnn_svcDbg.fast.a libnn_swkbd.fast.a libnn_tpl.fast.a libnn_ubl.fast.a libnn_uds.fast.a libnn_ulcd.fast.a libnn_util.fast.a libnn_voicesel.fast.a libnn_webbrs.fast.a libnn_y2r.fast.a librtport.fast.a "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\camera_stubs.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_DspAdpcmAudioDecoder.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_FastAudioDecoder.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_FilterDeblocker.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_ImaadpcmAudioDecoder.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_MobiclipVideoDecoder.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_MoflexDemuxer.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libFMOD_Slim.a"
UnityEditor.HostView:OnGUI()
Post automatically merged:

What this error means:

--userlibpath="C:\Nintendo\SDK\UnityEnv\SDK\ctr_sdk\libraries\CTR-TS.Process.MPCore\release" --no_debug --no_bestdebug --tailreorder --inline --diag_suppress L6314W,L6329W,L6394W --datacompressor off --keep=nnMain --scatter="C:\Nintendo\SDK\UnityEnv\SDK\ctr_sdk\resources\specfiles\linker\CTR.Process.MPCore.ldscript" --strict --diag_style=ide --merge --cpu MPCore --vfemode=force --entry=__ctr_start --unmangled --startup=__ctr_start --largeregions --scanlib --pad=0xFF --remove --exceptions -o Player.axf Native\libAssembly.a "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\player.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\il2cpp.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\bdwgc.a" crt0.fast.o libgles2.fast.a libnn_ac.fast.a libnn_act.fast.a libnn_applet.fast.a libnn_boss.fast.a libnn_cec.fast.a libnn_cfg.fast.a libnn_crypto.fast.a libnn_cryptoRsa.fast.a libnn_cx.fast.a libnn_dbm.fast.a libnn_dev.fast.a libnn_dlp.fast.a libnn_dsp.fast.a libnn_err.fast.a libnn_erreula.fast.a libnn_fnd.fast.a libnn_font.fast.a libnn_friends.fast.a libnn_fs.fast.a libnn_fshio.fast.a libnn_gd.fast.a libnn_gr.fast.a libnn_gxlow.fast.a libnn_hid.fast.a libnn_hidlow.fast.a libnn_http.fast.a libnn_init.fast.a libnn_ir.fast.a libnn_jpegmp.fast.a libnn_math.fast.a libnn_mic.fast.a libnn_midi.fast.a libnn_ndm.fast.a libnn_news.fast.a libnn_ngc.fast.a libnn_nstd.fast.a libnn_nwm.fast.a libnn_os.fast.a libnn_phtsel.fast.a libnn_pl.fast.a libnn_ptm.fast.a libnn_rdt.fast.a libnn_snd.fast.a libnn_socket.fast.a libnn_srv.fast.a libnn_ssl.fast.a libnn_svc.fast.a libnn_svcDbg.fast.a libnn_swkbd.fast.a libnn_tpl.fast.a libnn_ubl.fast.a libnn_uds.fast.a libnn_ulcd.fast.a libnn_util.fast.a libnn_voicesel.fast.a libnn_webbrs.fast.a libnn_y2r.fast.a librtport.fast.a "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\camera_stubs.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_DspAdpcmAudioDecoder.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_FastAudioDecoder.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_FilterDeblocker.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_ImaadpcmAudioDecoder.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_MobiclipVideoDecoder.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_MoflexDemuxer.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libFMOD_Slim.a"
UnityEditor.HostView:OnGUI()
 
I just want to document this in case anyone finds this thread and has the same issue:

the last issue i was having was that the game was simply crashing on start with a message that said

Processor : ARM11 (core 0)
Exception type : data abort
fault status : Translation - section

To fix it, i simply deleted the library folder in my unity project while unity wasnt open.
Post automatically merged:

i don´t know how i get this error but ._:
Code:
 --userlibpath="C:\Nintendo\SDK\UnityEnv\SDK\ctr_sdk\libraries\CTR-TS.Process.MPCore\release" --no_debug --no_bestdebug --tailreorder --inline --diag_suppress L6314W,L6329W,L6394W --datacompressor off --keep=nnMain --scatter="C:\Nintendo\SDK\UnityEnv\SDK\ctr_sdk\resources\specfiles\linker\CTR.Process.MPCore.ldscript" --strict --diag_style=ide --merge --cpu MPCore --vfemode=force --entry=__ctr_start --unmangled --startup=__ctr_start --largeregions --scanlib --pad=0xFF --remove --exceptions -o Player.axf Native\libAssembly.a "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\player.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\il2cpp.a" "C:/Program ...
[/QUOTE]
1 - Check if you have the sdk environment variables set up, this is what they should look like:

[ATTACH type="full"]456984[/ATTACH]

just remember to adapt it to your file paths.

2 - Check if your license to ARMCC5 Nintendo is set up properly:
Copy the license file from [ARMCC_License/5.x] and paste it on [C:\Program Files (x86)\ARMCC_Nintendo_5\sw\info]
the file is called "nintendo-anyhost.lic"

3 - Make sure Unity has the rights to read the SDK folder. Go to [C:/Nintendo] (the path to your sdk folder, if your sdk isnt here, i highly recommend putting it here.) and change user permissions to grant total permissions for Everyone.

Let me know if you need help with anything i said here, you can also look it up online.
 

Attachments

  • 1725902713818.png
    1725902713818.png
    5.2 KB · Views: 43
Last edited by PlayerLobs,
  • Like
Reactions: Th3Travler
I just want to document this in case anyone finds this thread and has the same issue:

the last issue i was having was that the game was simply crashing on start with a message that said

Processor : ARM11 (core 0)
Exception type : data abort
fault status : Translation - section

To fix it, i simply deleted the library folder in my unity project while unity wasnt open.
Post automatically merged:
very cool find - ill add that to my memory banks
glad the advice helped :)
Post automatically merged:

i don´t know how i get this error but ._:
Code:
 --userlibpath="C:\Nintendo\SDK\UnityEnv\SDK\ctr_sdk\libraries\CTR-TS.Process.MPCore\release" --no_debug --no_bestdebug --tailreorder --inline --diag_suppress L6314W,L6329W,L6394W --datacompressor off --keep=nnMain --scatter="C:\Nintendo\SDK\UnityEnv\SDK\ctr_sdk\resources\specfiles\linker\CTR.Process.MPCore.ldscript" --strict --diag_style=ide --merge --cpu MPCore --vfemode=force --entry=__ctr_start --unmangled --startup=__ctr_start --largeregions --scanlib --pad=0xFF --remove --exceptions -o Player.axf Native\libAssembly.a "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\player.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\il2cpp.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\bdwgc.a" crt0.fast.o libgles2.fast.a libnn_ac.fast.a libnn_act.fast.a libnn_applet.fast.a libnn_boss.fast.a libnn_cec.fast.a libnn_cfg.fast.a libnn_crypto.fast.a libnn_cryptoRsa.fast.a libnn_cx.fast.a libnn_dbm.fast.a libnn_dev.fast.a libnn_dlp.fast.a libnn_dsp.fast.a libnn_err.fast.a libnn_erreula.fast.a libnn_fnd.fast.a libnn_font.fast.a libnn_friends.fast.a libnn_fs.fast.a libnn_fshio.fast.a libnn_gd.fast.a libnn_gr.fast.a libnn_gxlow.fast.a libnn_hid.fast.a libnn_hidlow.fast.a libnn_http.fast.a libnn_init.fast.a libnn_ir.fast.a libnn_jpegmp.fast.a libnn_math.fast.a libnn_mic.fast.a libnn_midi.fast.a libnn_ndm.fast.a libnn_news.fast.a libnn_ngc.fast.a libnn_nstd.fast.a libnn_nwm.fast.a libnn_os.fast.a libnn_phtsel.fast.a libnn_pl.fast.a libnn_ptm.fast.a libnn_rdt.fast.a libnn_snd.fast.a libnn_socket.fast.a libnn_srv.fast.a libnn_ssl.fast.a libnn_svc.fast.a libnn_svcDbg.fast.a libnn_swkbd.fast.a libnn_tpl.fast.a libnn_ubl.fast.a libnn_uds.fast.a libnn_ulcd.fast.a libnn_util.fast.a libnn_voicesel.fast.a libnn_webbrs.fast.a libnn_y2r.fast.a librtport.fast.a "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\camera_stubs.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_DspAdpcmAudioDecoder.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_FastAudioDecoder.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_FilterDeblocker.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_ImaadpcmAudioDecoder.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_MobiclipVideoDecoder.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_MoflexDemuxer.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libFMOD_Slim.a"
UnityEditor.HostView:OnGUI()
Post automatically merged:

What this error means:

--userlibpath="C:\Nintendo\SDK\UnityEnv\SDK\ctr_sdk\libraries\CTR-TS.Process.MPCore\release" --no_debug --no_bestdebug --tailreorder --inline --diag_suppress L6314W,L6329W,L6394W --datacompressor off --keep=nnMain --scatter="C:\Nintendo\SDK\UnityEnv\SDK\ctr_sdk\resources\specfiles\linker\CTR.Process.MPCore.ldscript" --strict --diag_style=ide --merge --cpu MPCore --vfemode=force --entry=__ctr_start --unmangled --startup=__ctr_start --largeregions --scanlib --pad=0xFF --remove --exceptions -o Player.axf Native\libAssembly.a "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\player.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\il2cpp.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\bdwgc.a" crt0.fast.o libgles2.fast.a libnn_ac.fast.a libnn_act.fast.a libnn_applet.fast.a libnn_boss.fast.a libnn_cec.fast.a libnn_cfg.fast.a libnn_crypto.fast.a libnn_cryptoRsa.fast.a libnn_cx.fast.a libnn_dbm.fast.a libnn_dev.fast.a libnn_dlp.fast.a libnn_dsp.fast.a libnn_err.fast.a libnn_erreula.fast.a libnn_fnd.fast.a libnn_font.fast.a libnn_friends.fast.a libnn_fs.fast.a libnn_fshio.fast.a libnn_gd.fast.a libnn_gr.fast.a libnn_gxlow.fast.a libnn_hid.fast.a libnn_hidlow.fast.a libnn_http.fast.a libnn_init.fast.a libnn_ir.fast.a libnn_jpegmp.fast.a libnn_math.fast.a libnn_mic.fast.a libnn_midi.fast.a libnn_ndm.fast.a libnn_news.fast.a libnn_ngc.fast.a libnn_nstd.fast.a libnn_nwm.fast.a libnn_os.fast.a libnn_phtsel.fast.a libnn_pl.fast.a libnn_ptm.fast.a libnn_rdt.fast.a libnn_snd.fast.a libnn_socket.fast.a libnn_srv.fast.a libnn_ssl.fast.a libnn_svc.fast.a libnn_svcDbg.fast.a libnn_swkbd.fast.a libnn_tpl.fast.a libnn_ubl.fast.a libnn_uds.fast.a libnn_ulcd.fast.a libnn_util.fast.a libnn_voicesel.fast.a libnn_webbrs.fast.a libnn_y2r.fast.a librtport.fast.a "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\camera_stubs.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_DspAdpcmAudioDecoder.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_FastAudioDecoder.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_FilterDeblocker.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_ImaadpcmAudioDecoder.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_MobiclipVideoDecoder.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libmw_mo_MoflexDemuxer.fast.a" "C:/Program Files/Unity/Editor/Data/PlaybackEngines/N3DS\Libs\libFMOD_Slim.a"
UnityEditor.HostView:OnGUI()
Does this error happen when you export? save? load unity?
are you using banners?
do you have spaces in your project name?
 
Last edited by Th3Travler,
very cool find - ill add that to my memory banks
glad the advice helped :)
Post automatically merged:


Does this error happen when you export? save? load unity?
are you using banners?
do you have spaces in your project name?
Are those memory banks, by any chance, a public troubleshooting guide? I feel like we really should make something like that to help people out
 
  • Like
Reactions: CooingMaxito
Are those memory banks, by any chance, a public troubleshooting guide? I feel like we really should make something like that to help people out
Well this 16 page forum post is what I unofficially use as my public troubleshooting guide. :lol:
You are right that this information is both very difficult to search and find. A lot of painful digging. Honestly though nothing is better and faster than simply asking people live questions. I have done a lot of hunting and this seems to be the place where at least a few other people are trying to do something with Unity 3ds.

I think there isn't a public troubleshooting guide because the Unity 3DS community is so tiny. Off the top of my head I think there are 2 reasons for that...
1. There are legal risks using Unity and Nintendo proprietary software once you try to make a profit off it even though at this point it is abandoned software.
2. It is Insanely hard to develop for the 3DS using Unity. Unity is a resource hog and you have to rein it in. You cant just watch a bunch of unity tutorials use it's stock easy to use feature sets and expect the 3DS to accommodate such memory intensive tasks. Also some Unity features generate memory leaks. It is a beginners minefield. I think most people abandon it once they discover that you have to make custom very optimized usually very manual feature sets. It is time consuming and requires experience to tackle. That doesn't mean I don't think people shouldn't try but best to know what they are signing up for.

I have looked at the downloads from Internet archive for Unity 3DS and its around 400-600, that's global. Its a bit of a blessing from a legal witch hunt standpoint, for now anyways... but from that 400-600 Most of the people are experimenting I say its less than 100 people really would like to make something with the software and my guess is most are young and while the youth know about modern memory intensive techniques to build games, most tutorials online cover ps3 / xbox 360 era development and up. but the 3DS is basically a portable PS2 with more Poly budget. Them's some hardcore waters.

I don't have 3DS dev experience ( minus the past 2 years I have been putzing around with it) Mostly what I know comes from just digging and reading. That and my PS-Vita and the PS2 Dev experience which has helped me navigate the constrained hardware. Sadly my experience mainly comes from the art side. Still I like helping the Unity 3DS dev community, though my time is sadly very limited. That is why I post on here. quick glance and only a few people with questions. Far as I know there isn't a discord server for Unity 3DS development. Probably cause no one wants Nintendo writing down IP addresses :lol:

Video would probably be the way to show a series of Best practices when it comes to the software. There is a guy named Jorel... He has a youtube channel called Sungrand Studios. He actually is..was a 3DS developer and he used Unity to make 3- 4 games in 2022. He has a ton of really good development tips and gotchas. The videos are not geared towards Unity 3DS development per-sae but He does go over a lot of hurdles and problems he encounters with some of the unity versions. 5.6.5 is a good version but it has some leaks, I wish I had a "unlocked" 5.6.6 though, from what I read that was the most stable, least memory leaky unity version to ever come out on the 3DS. 2017's came after 5.6.6 and from what I read 2017 was a disaster for the 3DS. Anyways Jorel's videos are long format live dev diaries so you gonna have to be patient but he has lot of gold tips if you take the time to extract them.

I did reach out to him, he is super nice but ultra busy and he is under NDA so what he could share was limited. Here is one of the videos below, Goto the Livestream Hangout playlist.

- pretty smart guy defiantly an old school dev, in it for the heart and experience more than the profit.

https://www.youtube.com/live/zlM_BzEDJ_I?si=_SwimbczTBY02vb-
 
Last edited by Th3Travler,
  • Like
Reactions: CooingMaxito
Has anybody gotten it working on a o2DS? I broke both my o3DS XL and N3DS XL while repairing each, and my o2DS is the only one I have left to continue developing a game I was working on.
 
Has anybody gotten it working on a o2DS? I broke both my o3DS XL and N3DS XL while repairing each, and my o2DS is the only one I have left to continue developing a game I was working on.
Well I haven't tried but the rumor is it can work BUUTTTttt.. It will have to be a very simple game. 2d side scroller most likely since a 3d game is very taxing. maybe limited 3d is possible depends what you want to do.

The older 3DS/2DS has about 1/2 the processing power and system run time memory. Unity eats roughly 34mb at run time and that's before a drop of game code or art is calculated and from what I hear that will be 1/2 of the system memory on the older systems so you going to have to squeeze hard to get the game to run.

I forget how much memory the older 3ds/2ds have but you can setup a script that can tell you what system and video memory is available on your current hardware. the script commands are located in the unity3ds documentation api section.

Its not impossible - id recommended making the game strictly 2D mode so its less process intensive. No need for the 3Ds to process the screen twice for the 3d effect; that will give you some extra fps which your going to need to get it working. I mean try out 3D effect mode1st if you need more performance force the game to be 2d mode only.

Depending on how far along project wise you are on your new3ds game It may be warranted to replace your n3ds rather than try to fit your game on a o3ds. it may be more time consuming converting rather than starting from scratch. Consider hunting for a existing copy of Citra and continuing your n3ds development there till you can get a replacement. It is essential that you test on hardware but while you wait at least you can be productive.


In short...from my perspective...

New project?

sure try to fit it into a o3ds.

Time invested project?
try using citra or equivalent emulator before scaling down to o3ds try getting replacement n3ds/n2ds

Absolutely no choice?
Scale it down but understand you will 1/2 the cpu/gpu budget you have and it will be very time consuming. Unity3ds was not intended for the o3ds. you may run into unforeseen walls. I don't know of any commercial projects that used unity on o3ds hardware.

if you choose the scale down make sure you setup unity player settings for ctr rather than n3ds. I'm sure there will be memory adjustments you will have to do as well but I don't sadly know much about that

in any case I wish you success :grog:
 
Last edited by Th3Travler,
Well I haven't tried but the rumor is it can work BUUTTTttt.. It will have to be a very simple game. 2d side scroller most likely since a 3d game is very taxing. maybe limited 3d is possible depends what you want to do.

The older 3DS/2DS has about 1/2 the processing power and system run time memory. Unity eats roughly 34mb at run time and that's before a drop of game code or art is calculated and from what I hear that will be 1/2 of the system memory on the older systems so you going to have to squeeze hard to get the game to run.

I forget how much memory the older 3ds/2ds have but you can setup a script that can tell you what system and video memory is available on your current hardware. the script commands are located in the unity3ds documentation api section.

Its not impossible - id recommended making the game strictly 2D mode so its less process intensive. No need for the 3Ds to process the screen twice for the 3d effect; that will give you some extra fps which your going to need to get it working. I mean try out 3D effect mode1st if you need more performance force the game to be 2d mode only.

Depending on how far along project wise you are on your new3ds game It may be warranted to replace your n3ds rather than try to fit your game on a o3ds. it may be more time consuming converting rather than starting from scratch. Consider hunting for a existing copy of Citra and continuing your n3ds development there till you can get a replacement. It is essential that you test on hardware but while you wait at least you can be productive.


In short...from my perspective...

New project?

sure try to fit it into a o3ds.

Time invested project?
try using citra or equivalent emulator before scaling down to o3ds try getting replacement n3ds/n2ds

Absolutely no choice?
Scale it down but understand you will 1/2 the cpu/gpu budget you have and it will be very time consuming. Unity3ds was not intended for the o3ds. you may run into unforeseen walls. I don't know of any commercial projects that used unity on o3ds hardware.

if you choose the scale down make sure you setup unity player settings for ctr rather than n3ds. I'm sure there will be memory adjustments you will have to do as well but I don't sadly know much about that

in any case I wish you success :grog:
I've been trying to get an empty project to boot with these settings but it just gets stuck on the 3DS splash screen and doesn't go further than that. I do remember that it worked just fine on my o3DS so I'm not sure what's going on.
settings.png
 
Well this 16 page forum post is what I unofficially use as my public troubleshooting guide. :lol:
You are right that this information is both very difficult to search and find. A lot of painful digging. Honestly though nothing is better and faster than simply asking people live questions. I have done a lot of hunting and this seems to be the place where at least a few other people are trying to do something with Unity 3ds.

I think there isn't a public troubleshooting guide because the Unity 3DS community is so tiny. Off the top of my head I think there are 2 reasons for that...
1. There are legal risks using Unity and Nintendo proprietary software once you try to make a profit off it even though at this point it is abandoned software.
2. It is Insanely hard to develop for the 3DS using Unity. Unity is a resource hog and you have to rein it in. You cant just watch a bunch of unity tutorials use it's stock easy to use feature sets and expect the 3DS to accommodate such memory intensive tasks. Also some Unity features generate memory leaks. It is a beginners minefield. I think most people abandon it once they discover that you have to make custom very optimized usually very manual feature sets. It is time consuming and requires experience to tackle. That doesn't mean I don't think people shouldn't try but best to know what they are signing up for.

I have looked at the downloads from Internet archive for Unity 3DS and its around 400-600, that's global. Its a bit of a blessing from a legal witch hunt standpoint, for now anyways... but from that 400-600 Most of the people are experimenting I say its less than 100 people really would like to make something with the software and my guess is most are young and while the youth know about modern memory intensive techniques to build games, most tutorials online cover ps3 / xbox 360 era development and up. but the 3DS is basically a portable PS2 with more Poly budget. Them's some hardcore waters.

I don't have 3DS dev experience ( minus the past 2 years I have been putzing around with it) Mostly what I know comes from just digging and reading. That and my PS-Vita and the PS2 Dev experience which has helped me navigate the constrained hardware. Sadly my experience mainly comes from the art side. Still I like helping the Unity 3DS dev community, though my time is sadly very limited. That is why I post on here. quick glance and only a few people with questions. Far as I know there isn't a discord server for Unity 3DS development. Probably cause no one wants Nintendo writing down IP addresses :lol:

Video would probably be the way to show a series of Best practices when it comes to the software. There is a guy named Jorel... He has a youtube channel called Sungrand Studios. He actually is..was a 3DS developer and he used Unity to make 3- 4 games in 2022. He has a ton of really good development tips and gotchas. The videos are not geared towards Unity 3DS development per-sae but He does go over a lot of hurdles and problems he encounters with some of the unity versions. 5.6.5 is a good version but it has some leaks, I wish I had a "unlocked" 5.6.6 though, from what I read that was the most stable, least memory leaky unity version to ever come out on the 3DS. 2017's came after 5.6.6 and from what I read 2017 was a disaster for the 3DS. Anyways Jorel's videos are long format live dev diaries so you gonna have to be patient but he has lot of gold tips if you take the time to extract them.

I did reach out to him, he is super nice but ultra busy and he is under NDA so what he could share was limited. Here is one of the videos below, Goto the Livestream Hangout playlist.

- pretty smart guy defiantly an old school dev, in it for the heart and experience more than the profit.

https://www.youtube.com/live/zlM_BzEDJ_I?si=_SwimbczTBY02vb-
This is a pretty interesting thread! Haven't seen it up until now while I was looking around, I also use Unity 3ds and I've got to say, even with it's constraints it's super cool that they even got this to build and boot on 3ds
 
  • Like
Reactions: Th3Travler
I've been trying to get an empty project to boot with these settings but it just gets stuck on the 3DS splash screen and doesn't go further than that. I do remember that it worked just fine on my o3DS so I'm not sure what's going on.View attachment 466272


Make sure this is selected in Publishing Settings and see if it runs stable.
1729544880931.png


I see you 1/2ed all the memory settings - No idea if that will help or not :unsure:
messing with the memory can cause the system to hang because Unity doesn't have enough memory to start.
I do get the logic of halfling the settings because of the hardware differences. you may need more of a 25% memory
reduction as opposed to 50% This hardware may not need a multiples of 2 reduction though for me just thinking about it sounds like a hardware cardinal sin.

1. try setting the game to publish on the 3DS instead of New3DS and see if it runs with your settings.

2. When you say empty project make sure there is at least a sprite with a simple graphic setup in front of the cameras so there is something to render. Unity may not like a 100% nothing in there. I mean maybe it does? just throwing options your way :lol:

Id try to match what a certain video I'm sure we all have watched that helped us get to a working Unity 3DS copy ;)

3. if it still doesn't try reverting back to original memory settings and trying again.
here is a shot of my memory settings. I know you just need to double each value but for any playing along that don't understand the value change that has happened.

1729545858097.png


3. Still no go try a 25% memory reduction reduction see if that works...
Post automatically merged:

Yes, and port Skyrim to 3DS for us please.
Haha, That is some C language request, beyond :ph34r: level.

This is the closest I have seen to open world with Unity.
Silver falls Ruby River for the 3DS


Monster Hunter 4
Xenoblade Chronicles 3D
Dragons quest 7

those games I think would be the closest open world proprietary engine examples for the 3DS.
Big teams. I don't think Its not impossible but you have to know C code and a very high level of Art / rigging optimization to get the level of performance needed to run something as big and as cool as Skyrim :)
Post automatically merged:

This is a pretty interesting thread! Haven't seen it up until now while I was looking around, I also use Unity 3ds and I've got to say, even with it's constraints it's super cool that they even got this to build and boot on 3ds
haha yeah I'm Glad to see others wading though the Unity 3DS challenge. I though i was the only crazy one :lol:
I do agree they did a hell of a job shoehorning it in.
 
Last edited by Th3Travler,
Hello guys, thank you so much for helping, I am working on a game for the 3DS but I have a problem with the transparency,
like a have a black image and I want to make it like 50% clear, it just only goes for 0% or 100% transparency ( Alpha )
any fix for this? is this from the shaders? Thanks =D
 
Hello guys, thank you so much for helping, I am working on a game for the 3DS but I have a problem with the transparency,
like a have a black image and I want to make it like 50% clear, it just only goes for 0% or 100% transparency ( Alpha )
any fix for this? is this from the shaders? Thanks =D
Sounds like you have a 1bit alpha active. You need a 32bit alpha. its a simple fix :)

Setup the proper material
Make sure you have the correct shader applied - Legacy - Transparent - Diffuse should work with the 3DS
If it doesn't Ill send you the shader code for a working transparent 32bit 3DS compatible Shader.

1730413804600.png



Is the Texture properly setup?
If that does not make the texture transparent then lets verify your texture has alpha and is properly setup in the inspector

1. Make sure your texture has a alpha channel - you can do this by opening the texture and checking it's Channels.
1730413980221.png


1730414264387.png

2. Make sure your texture when you save it to Unity is the right format.
PNG or TGA. I prefer TGA since I'm old and its losses. also make sure to save it as 32Bit!

1730414166092.png

1730414322902.png



UNITY Inspector setup
1. In unity make sure in the inspector when you have the texture selected that input Texture Alpha is selected:
1730414481940.png


2. lastly compression you have a few choices with the 3DS. you will get banding with compression so its up to you how much compression you want to apply. Just remember you have 3MB of video memory per screen. Only you can decide what is and isn't important transparency wise.

RGBA 32bit has the least compression so the least amount of banding but largest file size for gpu budget.
RGBA 16bit more banding smaller file size
Alpha 8 bit used for Black and white images 255 grey scale
ETC 8 bit( my usual recommended choice ) best bang for the buck )
1730414929802.png


What is Banding?
for any that don't know banding is what happened when a texture gets compressed.
It is a stepped vs smooth transition between colors. Compression remove colors from the color
pallet to shrink the memory foot print size.

Bare in mind that some monitors do this too mainly older or cheap monitors will band colors
this is a display rather than compression issue and can not be adjusted.
1730415409906.png


Well that's a quick and dirty overview hope this helps :grog:
 

Attachments

  • 1730415138965.png
    1730415138965.png
    157 KB · Views: 46
Sounds like you have a 1bit alpha active. You need a 32bit alpha. its a simple fix :)

Setup the proper material
Make sure you have the correct shader applied - Legacy - Transparent - Diffuse should work with the 3DS
If it doesn't Ill send you the shader code for a working transparent 32bit 3DS compatible Shader.

View attachment 468548


Is the Texture properly setup?
If that does not make the texture transparent then lets verify your texture has alpha and is properly setup in the inspector

1. Make sure your texture has a alpha channel - you can do this by opening the texture and checking it's Channels.
View attachment 468549

View attachment 468552
2. Make sure your texture when you save it to Unity is the right format.
PNG or TGA. I prefer TGA since I'm old and its losses. also make sure to save it as 32Bit!

View attachment 468550
View attachment 468553


UNITY Inspector setup
1. In unity make sure in the inspector when you have the texture selected that input Texture Alpha is selected:
View attachment 468554

2. lastly compression you have a few choices with the 3DS. you will get banding with compression so its up to you how much compression you want to apply. Just remember you have 3MB of video memory per screen. Only you can decide what is and isn't important transparency wise.

RGBA 32bit has the least compression so the least amount of banding but largest file size for gpu budget.
RGBA 16bit more banding smaller file size
Alpha 8 bit used for Black and white images 255 grey scale
ETC 8 bit( my usual recommended choice ) best bang for the buck )
View attachment 468556

What is Banding?
for any that don't know banding is what happened when a texture gets compressed.
It is a stepped vs smooth transition between colors. Compression remove colors from the color
pallet to shrink the memory foot print size.

Bare in mind that some monitors do this too mainly older or cheap monitors will band colors
this is a display rather than compression issue and can not be adjusted.
View attachment 468561

Well that's a quick and dirty overview hope this helps :grog:
Thanks a lot for the overview it has a lot of information =D
but when make the Texture Type to " Default " it can't imported to the scene
I am not sure if I am doing it right, did you use Photoshop?
also can you send me the same image.tga to try it? or the shader code

HUGE THANKS
Post automatically merged:

also Video player if there any wat to make it works
 

Site & Scene News

Popular threads in this forum