Tutorial How to make 3DS Games with Unity

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

Should I add some Demo Projects?


  • Total voters
    54
  • Poll closed .
Hi, I would like to first say thank you for at least answering, I still didn't quite understand what you were talking about at this point (how much VRAM do you have free in VRAM A and VRAM B? You only have 3 MB for each screen) and by the way hahahaha I just now realized that for some reason I didn't translate the previous post, sorry).
So about the size of the sprites, together these 2 sprites weigh 135kb View attachment 490000View attachment 489998View attachment 489999
Post automatically merged:

So, urgent news, I managed to make the texture display, but now the problem is different, this slider doesn't move anymore (but I'll solve that myself (well, that's what I think)):gun::nds:
haha, that's all good :) lets see if we can save your 3DS from getting shot :lol:

- Ok so I see a few thighs...
I am assuming you are making a scrolling bar for the bottom of your screen correct?

You need to make the image a multiple of 4 or 2. I don't know if you know this or not so I'm going to assume you are new to game development and I want to introduce a fundamental rule about art assets in 3D and 2D UI spaces. In video games all textures that are used in 3D space ( with a material ) must be a multiple of 2. 32+32 = 64 64+64 = 128
that is 32, 64, 128, 256, 512, 1024 Pixels squared.

so like 128x128 pixels texture is good or you can do 128 x 256 pixel texture, any combination of numbers that can be divided by 2 will work.

In this scene - the background the floor and the character are 3D objects that would need to have textures with multiples of 2.

1741600545380.png


Now for UI textures are 2d elements, like your scroll bar. Now you don't have to divide by 2 though it is allowed but you can also divide by multiples of 4.
4, 8, 12, 16, 20, 24, 24 ...All I am doing is simply adding +4 pixels to increase the size
1741600486090.png

It can be a little confusing when you are new to game development. They Key thing is you want to make your textures for 3d objects be divisible by 2 and UI objects to be divisible by 4 so it is easy for the GPU to calculate. This is a rule in all video games. I'm explaining this because I want to save you from more headaches later :lol:. once you start doing art these rules Must be followed or they game will not export them properly. now lets talk about your problem.


The Steps
If you are confused that's ok I will tell you exactly what you need to do.
We need to shirk the size of your texture by removing extra invisible pixels , we need to make it a multiple of 4 or 2 Then we need to turn off the scrolling script and some other settings so we can do isolated testing. I understand you want to make a scroll bar but 1st we need to make sure the graphic works by itself before we add extra complexity, 1 step at a time :)

ok so here is some more info. The 3DS is ( Top ) 400x240 by 320x240 pixels.
1741601340529.png

There is no point making a UI image larger than the screen resolution because the screen cant display it all and it will eat up more memory which the 3DS has very little of. Your current Scroll image is 256 x 501. that is pretty big for the bottom or even the top screen. While the width is
256 which is a multiple of 2 the height is 501 which is not divisible by 4 or 2.

1741602513536.png


So based off the image you sent and the size I think you are going for...I say..
1. Crop and rescale the scroll image so it is 68 x 220 pixels. Get rid of the empty space. it takes up memory and serves no purpose.
1741604019063.png


based off your screen shot I say making the image 220x68 pixels. This will work fine for your needs. you should always try to avoid scaling down an image for the UI. If you bring the UI image in and you have to scale it down then it is too big.

1741602199724.png



2. disable some settings for testing.
disable Ray cast target, turn off clockwise, turn on Preserve aspect and Turn off the scrollbar script for now.

lets see if it exports and shows up in Citra. 1st we test the image. if it works then we move on to turning on the script. if that works keep working on your stuff..

If the image shows up but when you turn on the script the image disappears then there is a problem with the scroll code. The idea here is to simplify objects that have problems down to the most basic elements for testing and add complexity as you see thighs work. Patients is key don't try to rush the steps by doing a bunch at once because then you wont know where the problem is. is it the image? the placement? or the code? doing it in parts helps.


1741604448793.png

try the suggestion and see if it appears in Citra.
Post automatically merged:

Hi, I would like to first say thank you for at least answering, I still didn't quite understand what you were talking about at this point (how much VRAM do you have free in VRAM A and VRAM B? You only have 3 MB for each screen) and by the way hahahaha I just now realized that for some reason I didn't translate the previous post, sorry).
So about the size of the sprites, together these 2 sprites weigh 135kb View attachment 490000View attachment 489998View attachment 489999
Post automatically merged:

So, urgent news, I managed to make the texture display, but now the problem is different, this slider doesn't move anymore (but I'll solve that myself (well, that's what I think)):gun::nds:
happy to hear you got it to display -
from the image I have seen there is no visual indicator that something scrolls.
I guess you are using invisible buttons?

Sadly I cant help much on code. I recommend you look at some Unity scroll bar tutorials on Youtube. Id recommended one but its not in Russian.

for anyone else following along Christina Creates Games is a very in depth tutorial series on UI - I highly recommend it:

https://www.youtube.com/@ChristinaCreatesGames

Keep at it! you got it!
 

Attachments

  • 1741600076405.png
    1741600076405.png
    78.6 KB · Views: 42
  • 1741600876203.png
    1741600876203.png
    101.2 KB · Views: 25
Last edited by Th3Travler,
look for nw4c download
Okay found the converter executable. Btw, there's no need to delete the .png inside the 3DSBanner, just having the .ctex makes it to compile.

In case someone wants to have everything inside unity instead of using photoshop, I made a simple script that converts the textures in folder or selected in editor to ctex and place the converted files next to the originals. If the textures are in png/jpg, it creates a temp tga file and reference it to the executable.

It works just fine on 2017.2.5 + latest sdk, but should work on unity 5 as well.


btw, can anyone point me in the right direction of why if I have 2 cameras (one redirected to upper LCD and the other one to the lower LCD ), and one cube in the scene:

1741948144263.png


Citra renders the top view like mixing both?

1741948263303.png


In addition, UnityEngine.N3DS.Keyboard seems to not be found but it compiles. When launching the game in citra, it seems to crash, any idea?
 

Attachments

Last edited by Manurocker95,
  • Like
Reactions: Th3Travler
Okay found the converter executable. Btw, there's no need to delete the .png inside the 3DSBanner, just having the .ctex makes it to compile.

In case someone wants to have everything inside unity instead of using photoshop, I made a simple script that converts the textures in folder or selected in editor to ctex and place the converted files next to the originals. If the textures are in png/jpg, it creates a temp tga file and reference it to the executable.

It works just fine on 2017.2.5 + latest sdk, but should work on unity 5 as well.


btw, can anyone point me in the right direction of why if I have 2 cameras (one redirected to upper LCD and the other one to the lower LCD ), and one cube in the scene:

View attachment 490941

Citra renders the top view like mixing both?

View attachment 490943

In addition, UnityEngine.N3DS.Keyboard seems to not be found but it compiles. When launching the game in citra, it seems to crash, any idea?
This is a great add! thank you! I know younger Devs sadly cant get a hold of Photoshop / rightfully don't want to learn it since Adobe has become what...well what they have become.

could the tool be modded to support TGA? It is a lossless format unlike Jpeg and PNG which will use compression algorithms. I would recommend dev's work compression-less as much as possible to preserve pixel detail. Especially on the small pixel screens of the 3DS.

Still this is an awesome add! and not having to remove the extra files is nice.

Now in regards to the camera is the top screen camera set to orthographic view by chance? I ask because while Unity will allow the setting the 3DS will not because it messes up the 3D effect. Have you done this test on Hardware as well to rule out Citra?
 
This is a great add! thank you! I know younger Devs sadly cant get a hold of Photoshop / rightfully don't want to learn it since Adobe has become what...well what they have become.

could the tool be modded to support TGA? It is a lossless format unlike Jpeg and PNG which will use compression algorithms. I would recommend dev's work compression-less as much as possible to preserve pixel detail. Especially on the small pixel screens of the 3DS.

Still this is an awesome add! and not having to remove the extra files is nice.

Now in regards to the camera is the top screen camera set to orthographic view by chance? I ask because while Unity will allow the setting the 3DS will not because it messes up the 3D effect. Have you done this test on Hardware as well to rule out Citra?
Both cameras are set to perspective. In addition, I found some really weird stuff that I dont understand:

- Setting only one camera to the top view or if theres nothing in the scene (2 cameras + 1 or 0 lights), the game crashes on retail and citra. Only when there is a model in the scene the game runs for some reason.
- I can’t get canvas to be properly displayed. Just adding a canvas + image, makes it to not be rendered at all even without depth applied. This does not happen on editor, just on build. It doesn’t matter if the image is big, the canvas being world rendered… i cant get UI to be displayed.
- Coroutines and tweening is not properly played. The behaviour is completely different on editor than build. They are way faster or not timed like they do even with vsync forced by unity settings.
- Having textures above 512x512 makes the game to crash when the scene loads, but adding low res sprites to sprite renderers, makes them to look weird (not properly rendered).
- All there examples seem to crash on retail hardware for me (I use latest luma): Gamepad, save data, microphone…

I don’t know if I should downgrade to Unity 5.6.6f2 or below, but 2017.2.5 seems to be unstable af after compiling. On editor everything seems alright but I can’t get regular things to work :/
 
Both cameras are set to perspective. In addition, I found some really weird stuff that I dont understand:

- Setting only one camera to the top view or if theres nothing in the scene (2 cameras + 1 or 0 lights), the game crashes on retail and citra. Only when there is a model in the scene the game runs for some reason.
- I can’t get canvas to be properly displayed. Just adding a canvas + image, makes it to not be rendered at all even without depth applied. This does not happen on editor, just on build. It doesn’t matter if the image is big, the canvas being world rendered… i cant get UI to be displayed.
- Coroutines and tweening is not properly played. The behaviour is completely different on editor than build. They are way faster or not timed like they do even with vsync forced by unity settings.
- Having textures above 512x512 makes the game to crash when the scene loads, but adding low res sprites to sprite renderers, makes them to look weird (not properly rendered).
- All there examples seem to crash on retail hardware for me (I use latest luma): Gamepad, save data, microphone…

I don’t know if I should downgrade to Unity 5.6.6f2 or below, but 2017.2.5 seems to be unstable af after compiling. On editor everything seems alright but I can’t get regular things to work :/
well I can tell you that 2017 was a disaster for the 3ds when they released it and it was never as stable as Unity 5 for 3ds. You may have one of the early 2017 builds that had all sorts of problems. Cant speak much for 2017 since I avoided it during my early research phase. Maybe someone eles has had better luck?

The project you have described should not give you all those problems. It sounds like very simple test scene. I have 2 - 1024's in my scene ( texture atlas ) and many 512's with no problems of any kind, well within the 3mb Vram budget working on real hardware.

I use 5.6.5 and it is pretty good, tho I had read that it has some Canvas UI bugs that were not an issue in 5.6.6. as a matter of fact 5.6.6 seems to have been the most stable version of unity to ever grace the 3DS. I have not been able to find 5.6.6 but from my own experience with 5.6.5 it has at least been pretty good and stable thus far tho I am no where near having a code structure implemented yet, that may change the story.
 
Last edited by Th3Travler,
well I can tell you that 2017 was a disaster when they released it and it was never as stable as Unity 5. You may have one of the early 2017 builds that had all sorts of problems. Cant speak much for 2017 since I avoided it during my early research phase. Maybe someone eles has had better luck?

The project you have described should not give you all those problems. It sounds like very simple test scene. I have 2 - 1024's in my scene ( texture atlas ) and many 512's with no problems of any kind, well within the 3mb Vram budget working on real hardware.

I use 5.6.5 and it is pretty good, tho I had read that it has some Canvas UI bugs that were not an issue in 5.6.6. as a matter of fact 5.6.6 seems to have been the most stable version of unity to ever grace the 3DS. I have not been able to find 5.6.6 but from my own experience with 5.6.5 it has at least been pretty good and stable thus far tho I am no where near having a code structure implemented yet, that may change the story.

I downgraded the project to 5.6.6f2 (It's been a while since last time I worked with Unity 5 xD) and it seems much more stable. No change was made excepting some tweaks in the code for compiling on Unity 5 and it runs just fine on Citra with UI almost properly rendering and tweening correctly displayed even with just one camera.

There are some visual glitches with some sprites in the UI and mesh rendering as well as getting stuck when compiling which is really annoying. In addition, textures do not support mirroring per axis (I made a simple shader to achieve this)... but at least the game doesn't crash.

Unity 2017 has way better workflow but the builds are way more unstable.

E.g: between citra and Unity 5.5.6f2 editor:

1742205344184.png
screenshot_0.jpg


The upper lcd UI bug does not happen on unity 5.6.5f1
 
Last edited by Manurocker95,
having to reset Unity after a successful compile is quite annoying agreed. It oddly does stabilizes after the 1st lockup and I am able to do iterative builds after that fine. I guess some value gets stored in ram that lets it recover.

Textmesh Pro:
I do have a shader I wrote for Textmesh that should fix the blurry mess if that is currently happing to you in 5.6.5 its here -> https://gbatemp.net/threads/question-cant-figure-out-why-my-hame-wont-compile.656443/post-10445945

based of the mention about not needing to delete png files from the banner folder structure I take it you probably already read that post lol, this is more for anyone who identifies with that text mesh bug and wants a solution since it is in a different post :lol:

Tiling:
I do Know 3DS hardware had quite a robust UV wrapping library I don't know how much of that could be tapped by Unity. I do know that you could reach some of it through customs shaders though honestly I honestly never messed with the UVs using the vertex portion of the shader which is where I believe those settings are applied? Still learning shaders so not sure.

That is an odd jump how you got what looks like a 2D sprite to become a 3D Phong shaded model of Pikachu lol.

over all I'm glad to see you are making progress even through it is thru the regression of editors :lol:
something I wish i had in 5.6.5 is Amiibo support. it's just a checkbox in 2017 in 5.6.5 you have to add it in manually. It can be done if you have the structure in place but 1 checkbox is so much nicer.
 
having to reset Unity after a successful compile is quite annoying agreed. It oddly does stabilizes after the 1st lockup and I am able to do iterative builds after that fine. I guess some value gets stored in ram that lets it recover.

Textmesh Pro:
I do have a shader I wrote for Textmesh that should fix the blurry mess if that is currently happing to you in 5.6.5 its here -> https://gbatemp.net/threads/question-cant-figure-out-why-my-hame-wont-compile.656443/post-10445945

based of the mention about not needing to delete png files from the banner folder structure I take it you probably already read that post lol, this is more for anyone who identifies with that text mesh bug and wants a solution since it is in a different post :lol:

Tiling:
I do Know 3DS hardware had quite a robust UV wrapping library I don't know how much of that could be tapped by Unity. I do know that you could reach some of it through customs shaders though honestly I honestly never messed with the UVs using the vertex portion of the shader which is where I believe those settings are applied? Still learning shaders so not sure.

That is an odd jump how you got what looks like a 2D sprite to become a 3D Phong shaded model of Pikachu lol.

over all I'm glad to see you are making progress even through it is thru the regression of editors :lol:
something I wish i had in 5.6.5 is Amiibo support. it's just a checkbox in 2017 in 5.6.5 you have to add it in manually. It can be done if you have the structure in place but 1 checkbox is so much nicer.
The worst part is the editor is way better on 2017 and there are features that I really miss on unity 5 (e.g: Texture wrap modes) but I guess it's a matter of get used to it (I haven't touched Unity 5 since my first dev job, lol).

I will definitely check the TMP shader! It's a pity to not be able to use it (as well as regular Text Mesh). Unity UI got deprecated for a serious reason. Thanks for that! :D

Regarding the tiling and shaders for the mons and stuff. GF did a really great job in 2013 with XY tbh. They use half textures and mirror them in U, which is pretty handy and you can easily achieve that in Unity 2017 by just texture wrapping per axis. Unity 5 doesn't have that option and the limited shaders support makes impossible to achieve that. In editor they work just fine when making legacy/diffuse like shaders but they end as a regular vertex lit shader fallback on build... so no mirroring by shader either... :(

I got the UI sprites rendering properly by compressing to max in override settings (on 5.6.6f2). This was not necessary for me on 5.6.5 nor 2017.2.5f1 which is kinda weird but... it works... I guess...

Oh, do you have an amiibo working example for unity 5? It would be dope to add it. Gonna remake (again) the lost game "PokéPark fishing rally DS" and it would be a cool feature.

started_to_port_ppfru_to_nintendo_3ds_by_hydregonart_djdzl2g-414w-2x.jpg


Btw, Does anyone have an Odin Inspector version that works on Unity 5? Ofc, Odin 3.x from the asset store does not support it and I really miss the custom editors.
 
Last edited by Manurocker95,
The worst part is the editor is way better on 2017 and there are features that I really miss on unity 5 (e.g: Texture wrap modes) but I guess it's a matter of get used to it (I haven't touched Unity 5 since my first dev job, lol).

I will definitely check the TMP shader! It's a pity to not be able to use it (as well as regular Text Mesh). Unity UI got deprecated for a serious reason. Thanks for that! :D

Regarding the tiling and shaders for the mons and stuff. GF did a really great job in 2013 with XY tbh. They use half textures and mirror them in U, which is pretty handy and you can easily achieve that in Unity 2017 by just texture wrapping per axis. Unity 5 doesn't have that option and the limited shaders support makes impossible to achieve that. In editor they work just fine when making legacy/diffuse like shaders but they end as a regular vertex lit shader fallback on build... so no mirroring by shader either... :(

I got the UI sprites rendering properly by compressing to max in override settings (on 5.6.6f2). This was not necessary for me on 5.6.5 nor 2017.2.5f1 which is kinda weird but... it works... I guess...

Oh, do you have an amiibo working example for unity 5? It would be dope to add it. Gonna remake (again) the lost game "PokéPark fishing rally DS" and it would be a cool feature.

View attachment 491696

Btw, Does anyone have an Odin Inspector version that works on Unity 5? Ofc, Odin 3.x from the asset store does not support it and I really miss the custom editors.
History
I been around since the tail end of the ps2 which ironically has helps me a lot with the 3ds development. very similar model /shader/level authoring techniques.

Text Mesh Pro
for Text Mesh Pro make sure you scroll down to the bottom of the post where I explain how to apply it a material and set it up its nothing crazy complex but def not intuitive.

Mirrored
I'm not familiar with the material mirroring you describe..In my experience we simply authored the model's uvs to be mirrored which saved space and improved texel density but what you describe seems more procedural..would authoring models with mirrored UV's not achieve this very effect?

Amiibos:
I sadly I do not...I have only read that it is possible.. Supposedly you can setup the folder and file structure then run the cmd tool chains to build the files needed and as along as the folders and files are in the proper place and the code invokes it Unity will build it into the game...I do want to tackle this at some point but I'm light years from there. Now I heard there was a Unity 3DS tutorial series made by unity that use to exist which might explain some of this but I have had no luck finding it. 2017 might have a sample tutorial?
I do know in player settings there is a check box for it but how to set it up and the structure what that check box does...no idea :unsure:

Do you have 5.6.6? or was that a typo and you meant 5.6.5? if so I very much would love to know where I can get a copy of it.

btw Very cool Project! just be careful Nintendo is very protective of its IP's
 
Last edited by Th3Travler,
History
I been around since the tail end of the ps2 which ironically has helps me a lot with the 3ds development. very similar model /shader/level authoring techniques.

Text Mesh Pro
for Text Mesh Pro make sure you scroll down to the bottom of the post where I explain how to apply it a material and set it up its nothing crazy complex but def not intuitive.

Mirrored
I'm not familiar with the material mirroring you describe..In my experience we simply authored the model's uvs to be mirrored which saved space and improved texel density but what you describe seems more procedural..would authoring models with mirrored UV's not achieve this very effect?

Amiibos:
I sadly I do not...I have only read that it is possible.. Supposedly you can setup the folder and file structure then run the cmd tool chains to build the files needed and as along as the folders and files are in the proper place and the code invokes it Unity will build it into the game...I do want to tackle this at some point but I'm light years from there. Now I heard there was a Unity 3DS tutorial series made by unity that use to exist which might explain some of this but I have had no luck finding it. 2017 might have a sample tutorial?
I do know in player settings there is a check box for it but how to set it up and the structure what that check box does...no idea :unsure:

Do you have 5.6.6? or was that a typo and you meant 5.6.5? if so I very much would love to know where I can get a copy of it.

btw Very cool Project! just be careful Nintendo is very protective of its IP's

Mirroring:

I want to use the USUM models without modifying the UVs for every model but yeah, I might have to do that in this case.

Amiibo:

Duh, that seems a struggle. As far as I see the samples are pretty the same as Unity 5 ones:

1742291752643.png
1742291800652.png


The option you mention for Amiibo link is the same between 2017 and 5.6.6f2, but dunno what it does tbh:

1742291910685.png


I will battle with it a little bit in case I find something and report back.

Regarding the unity version, I have the three versions, 2017.2.5f1, 5.6.6f2 and 5.6.5f1.

btw, one more thing you might know. The UI works perfectly fine excepting submit and cancel (set in old InputManager as joystick button 0 and joystick button 1). I don't see any example for that, should I handle the inputs by hand and send them to the event system or is there any config I'm missing here? It should be automatic...
 
Mirroring:

I want to use the USUM models without modifying the UVs for every model but yeah, I might have to do that in this case.

Amiibo:

Duh, that seems a struggle. As far as I see the samples are pretty the same as Unity 5 ones:

View attachment 491713View attachment 491714

The option you mention for Amiibo link is the same between 2017 and 5.6.6f2, but dunno what it does tbh:

View attachment 491716

I will battle with it a little bit in case I find something and report back.

Regarding the unity version, I have the three versions, 2017.2.5f1, 5.6.6f2 and 5.6.5f1.

btw, one more thing you might know. The UI works perfectly fine excepting submit and cancel (set in old InputManager as joystick button 0 and joystick button 1). I don't see any example for that, should I handle the inputs by hand and send them to the event system or is there any config I'm missing here? It should be automatic...
submit and cancel buttons... Ill be honest I don't I am not very far along in coding only have basic camera movement and have been working on shaders - no game logic so no buttons yet lol. I would ask CooingMaxito he seems to be further in development and may be able to answer that :)
 
I’m now facing what is probably a memory related issue. I’m currently displaying a model + info on button selection. Resources.Load takes a few seconds for 10K+ poly models so I tried to pool them in case they were previously Instantiated. This way, only making them active, is WAY faster. However, after 6-7 models are pooled, the game crashes. Does anyone have any recommendation regarding this? Does anyone know if asset bundles are available on N3DS?
 
I’m now facing what is probably a memory related issue. I’m currently displaying a model + info on button selection. Resources.Load takes a few seconds for 10K+ poly models so I tried to pool them in case they were previously Instantiated. This way, only making them active, is WAY faster. However, after 6-7 models are pooled, the game crashes. Does anyone have any recommendation regarding this? Does anyone know if asset bundles are available on N3DS?

Regarding this, asset bundles seem to not be supported and destroying instead of pooling keeps the memory available. However, I'm facing an automatic crash after the 3ds loading screen. Does anyone know how to properly get it working? My first scene is just a manager initialization scene which should be simple enough to not overflow the old 3ds' ram.
 
Last edited by Manurocker95,
Very happy to see this nearly decade-old thread is still active, it's been extremely helpful.

I want to put an image on a spriterenderer and have it show up on my actual 3ds, ideally with sprite animations working as well (though I am fairly sure it is not the Animator that is the issue here). That is my very simple goal. I have tried many different combinations of shaders, but so far, the only way I can get my image to appear is if I put it on a quad mesh, which would make animation much more complicated.

I have tried various shaders with just a static image on the sprite renderer, various shaders with the mesh, and various shaders with a sprite renderer with an animator attached. I've been trying different shaders from Th3Travler's list.

If anyone has a working example of something appearing with a sprite renderer on a real 3ds, that would be extremely helpful.

Edit: I followed Th3Travler's instructions on the ideal way to format a texture. I converted my png to tga and made it exactly 32x32 px. Alas, still no luck. I can't even get the image to show up in the emulator, and from what I've noticed the emulator tends to have slightly better luck with graphics than my 3ds.
 

Attachments

  • 1745034699289.png
    1745034699289.png
    95.8 KB · Views: 39
  • 1745034763003.png
    1745034763003.png
    110.5 KB · Views: 36
  • 1745034816424.png
    1745034816424.png
    40.2 KB · Views: 42
  • 1745034852897.png
    1745034852897.png
    33.7 KB · Views: 41
  • 1745035584654.png
    1745035584654.png
    258.7 KB · Views: 45
Last edited by moonshadow264,
HeyMoon Shadow264 :)

Welcome to the "IDK why it wont export on the 3DS forum" :lol:

For flipbook animations you need to use a shader that will convert to GL ES 1.1. you are currently using a Legacy -> Transparent -> Diffuse..(which I thought converted but I guess not...well try this shader instead.


*Update*
So I tested a Legacy Transparent Diffuse Shader with a sprite texture and it worked just fine for me - for sure it supports unity color picker and 32 Bit Alpha.

What type of surface do you have that material applied too? A plane? a Sprite? custom geo? What version of Unity are you using?

Some ideas:
Try scaling your texture to 64X64 I believe the 3DS can handle 32x32 but maybe unity doesn't like it. Try using a different texture for testing - without alpha and with. If that doesn't work You can also try this shader see if that makes a difference.

Shader "N3DS/Unlit/Diffuse + Alpha 32 Bit"
{
Properties
{
_Color("Main Color", Color) = (1,1,1,1)
_MainTex("Diffuse (RGB) Alpha (A)", 2D) = "white" {}
//_Cutoff("Alpha cutoff", Range(0,1)) = 0.5
}
SubShader
{

Tags { "Queue"="Transparent" }
Pass
{
//Alphatest Greater[_Cutoff] //1 Bit
Blend SrcAlpha OneMinusSrcAlpha //32 bit Alpha

SetTexture[_MainTex]
{
constantColor[_Color]
//Combine constant * texture DOUBLE, texture * constant
combine texture * constant, texture
}
}
}
}


Now For my sprite pixel size advice - it really kind of depends on the game and conditions. looks like you are going for a 2D sprite game. You are allowed multiples of 4 ..that is if you are not going 3D Perspective Camera ( you can still use the Stereoscopic 3D effect ) Also to make animated sprite sheets you usually want to have as many of the frames on the same sprite sheet to create a Sprite Atlas. this brings the costs of draw calls down. There are a lot of really good tutorials and software that can help you get animated sprite sheets going for unity. most of that stuff hasn't changed in an age,

lastly glad to see you are testing on real hardware it is extremely important to test on real hardware. I know its a pain..wish someone could write a plugin so we could push builds to the 3DS like a real dev kit. One can Dream :creep:

this should solve your problem - good luck! :)
 
Last edited by Th3Travler,
Regarding this, asset bundles seem to not be supported and destroying instead of pooling keeps the memory available. However, I'm facing an automatic crash after the 3ds loading screen. Does anyone know how to properly get it working? My first scene is just a manager initialization scene which should be simple enough to not overflow the old 3ds' ram.
That was an issue for me, initially..
I don't really remember how I managed to fix it honestly, but I do remember it wasn't that complicated

Hope you can figure it out soon, I could try looking into it but I don't think I'll be able to get much info about it
 
I don't really know how to use unity but do modern versions export to 3ds? or do you guys use old builds?
 
Very happy to see this nearly decade-old thread is still active, it's been extremely helpful.

I want to put an image on a spriterenderer and have it show up on my actual 3ds, ideally with sprite animations working as well (though I am fairly sure it is not the Animator that is the issue here). That is my very simple goal. I have tried many different combinations of shaders, but so far, the only way I can get my image to appear is if I put it on a quad mesh, which would make animation much more complicated.

I have tried various shaders with just a static image on the sprite renderer, various shaders with the mesh, and various shaders with a sprite renderer with an animator attached. I've been trying different shaders from Th3Travler's list.

If anyone has a working example of something appearing with a sprite renderer on a real 3ds, that would be extremely helpful.

Edit: I followed Th3Travler's instructions on the ideal way to format a texture. I converted my png to tga and made it exactly 32x32 px. Alas, still no luck. I can't even get the image to show up in the emulator, and from what I've noticed the emulator tends to have slightly better luck with graphics than my 3ds.
I took a look at the images you sent, for using the Sprite Renderer on 3ds, the built in Sprites-Default material should work no problem, I've been using it since the start and the sprites are rendered correctly.
Whenever you get the chance, try it, and let us know if it works or not
Post automatically merged:

I don't really know how to use unity but do modern versions export to 3ds? or do you guys use old builds?
As far as I know any of the modern versions do not export to 3ds, and it would also probably be either really unstable or straight up not work unfortunately

The *newest* Unity version you could get to export to 3ds is 2017, but it's super unstable and unreliable. I personally wouldn't use it

The recommended version is Unity 5.6.6 or 5.6.5, they're the most reliable for making 3ds games, though for modern standards they're pretty outdated lmao
 

Site & Scene News

Popular threads in this forum