CodeWalrus

Development => Consoles => Topic started by: Hayleia on May 12, 2016, 08:25:32 am

Title: Unnamed 3DS homebrew
Post by: Hayleia on May 12, 2016, 08:25:32 am
First of all, I'm looking for names :P
I thought about stupid stuff like Inkr3Dible (Ink, 3D, bullshyt), BesprInkl3D (same kind of things but less stupid than incredible...) or just Ink3D (but it looks too much like "Ink 3D" and not enough like "Inked" in my opinion...), etc, but nothing smart. So share if you have ideas.

Anyway, some of you may have seen on IRC that I'm working on that kind of ink battle game on my 3DS.
Here's what the ink system looked like when it was working (no idea how to embed videos).
https://www.youtube.com/watch?v=HwLYL687aZ4

Now you noticed that it was only working on the ground, and that's because it was almost hardcoded to work on a cube based world (kind of like Minecraft) only for the top face of the cube. But I thought that a cube based world was boring so I had to start everything over and here's what I have right now.
https://www.youtube.com/watch?v=aRvxXg22FGs
Yay ! no walls and no ink anymore :P
Well ok, I just did that quickly but that's obviously only the beginning. Maybe I don't have walls but you notice that I have a ground model that is only the ground, it's no longer cubes ;)
So yeah, that was me testing my multi-model code (because from what I've understood of citro3d, you can only have one "VBO" (of sorts) but you can display parts of it only, so if you want several "VBOs" you have to put them all together and know where they are so that's why it took some time to have that working, I had to do VBO management stuff (not hard but annoying to do right)).

So todo, re-do the ink system to work with the non-cube-based system (annoying too...) then I'll have problems because I have no idea how to do a multiplayer game on a 3DS :P

Also, if you have a 3DS that can't run homebrew and are interested in homebrew, you can Google "Plailect Guide". It should first explain what you can do in every situation you could be in (basically what firmware version you're on, what games you own, etc). Basically, if you're on 10.6 or under, you can do everything. On 10.7, you can do stuff but it's more annoying. On 11.0 I actually have no idea. And then follows a guide explaining how to mod your 3DS to get permanent homebrew access (and more -.-).

Thoughts ? People interested in testing (when there is actually something to test -.-) ? Etc.
Title: Re: Unnamed 3DS homebrew
Post by: gnmmarechal on May 12, 2016, 08:42:52 am
I'm willing to test it :)
The 3DS homebrew scene is so small though :(
I miss the PSP days.
Title: Re: Unnamed 3DS homebrew
Post by: alexgt on May 12, 2016, 11:37:16 am
A possible name could be: Splat ;)
Title: Re: Unnamed 3DS homebrew
Post by: Duke "Tape" Eiyeron on May 12, 2016, 11:59:01 am
WOuld be interesting to gather common infos e get about Citra3D to make up for the lack of documentation. (Also maybe get in touch in a communication method faster than a forum)
Title: Re: Unnamed 3DS homebrew
Post by: Hayleia on May 12, 2016, 12:24:42 pm
Quote from: gnmmarechal on May 12, 2016, 08:42:52 am
I'm willing to test it :)
The 3DS homebrew scene is so small though :(
I miss the PSP days.
I wasn't "there" during the PSP days but yeah, I heard it was great.
And noted, I don't know when exactly there will be something worth testing but I'm glad I have people interested :)

Quote from: alexgt on May 12, 2016, 11:37:16 am
A possible name could be: Splat ;)
Yeah, I spent too much time trying to find play on words but it's true that something simple like that works too.

Quote from: Duke "Tape" Eiyeron on May 12, 2016, 11:59:01 am
WOuld be interesting to gather common infos e get about Citra3D to make up for the lack of documentation. (Also maybe get in touch in a communication method faster than a forum)
True. It was kind of annoying to almost reverse-engineer examples to understand how to do more stuff. Like, all their examples only deal with 1 model, not 2, so you have to read all lines and all functions and arguments to find the one change that will allow you to use two models, and of course there is no documentation and there is no useful comment in headers either...
Well, that's obviously easier than reverse-engineering the 3DS to write the lib but still, why spend that much time working on a lib no one can use due to lack of documentation ?
Title: Re: Unnamed 3DS homebrew
Post by: Duke "Tape" Eiyeron on May 12, 2016, 01:26:14 pm
Probalby because it's more or less developped among people whi use the IRC channel for 3ds dev so they probably expect people to talk to them about it?

Indeed, 3DS scene is small, but at least, it's not dead *glances at Nspire's*. Also, it's time for them to shine as now HB dev on this console should be quite easy with all the libs we're given (just have to figure on how stuff is working). Also, i have some things about DSP if you want to get your hands on this subject.
Title: Re: Unnamed 3DS homebrew
Post by: DJ Omnimaga on May 12, 2016, 07:11:33 pm
Wow I like the idea and the ink effects look cool too. Maybe you should throw glossy spheres instead of cubes to make it look more realistic? Also I can definitively see the influence from Splatoon. You could call it Ink3D, Splatya, or go with a paint ball-related name. Or maybe PocketSplat?

Also nice to see you again Hayleia and welcome here @gnmmarechal  :) . I remember the GBC scene was pretty big back then and various TI programmers also made GBC games. I never paid attention to the GBA scene, though. I remember the DS and PSP scenes were big but for some reasons the PSP scene lasted shorter it seems. I'm surprised that the 3DS scene is smaller. Maybe the console is harder to program or hack? The TI-Nspire was made harder and harder to hack over the years by TI and eventually people gave up so only a few Nspire developers remain.
Title: Re: Unnamed 3DS homebrew
Post by: gnmmarechal on May 12, 2016, 07:29:59 pm
Quote from: DJ Omnimaga on May 12, 2016, 07:11:33 pm
Wow I like the idea and the ink effects look cool too. Maybe you should throw glossy spheres instead of cubes to make it look more realistic? Also I can definitively see the influence from Splatoon. You could call it Ink3D, Splatya, or go with a paint ball-related name. Or maybe PocketSplat?

Also nice to see you again Hayleia and welcome here @gnmmarechal  :) . I remember the GBC scene was pretty big back then and various TI programmers also made GBC games. I never paid attention to the GBA scene, though. I remember the DS and PSP scenes were big but for some reasons the PSP scene lasted shorter it seems. I'm surprised that the 3DS scene is smaller. Maybe the console is harder to program or hack? The TI-Nspire was made harder and harder to hack over the years by TI and eventually people gave up so only a few Nspire developers remain.


Thanks!

Hum, the PSP HB scene wasn't short, was it? It's still alive, though a mere shadow of what it once was. Infinity hybrid firmware 6.31/6.61 is a proof of it not being dead.

And the DS scene wasn't *that* big, most people only used the flashcarts to pirate games.

About the 3DS, well, yes. First, to hack the console, on a lot of system versions, you need a specific version of a game (or browserhax/menuhax, which only works up to 10.5 afaik). Also, we don't have ARM9 kernel access on firmwares above 9.2, and no ARM9 access means limited Homebrew. Though there is a lot of good stuff, the PSP was so much better. I guess it was easy to hack, as you'd run a signed eboot directly from the Memory Stick, which was a regular card that the PC read as a regular storage device.... 3DS data is encrypted, and it needs CFW (which needs ARM9 kernel access) to bypass signature checks.
Though you *can* downgrade from 11.0 to 10.7 via a hardmod and from 9.3-10.7 to 9.2 via HBL using Memchunkhax2.1/svchax. That would allow the user to get ARM9 access and either setup and EmuNAND or downgrade to 2.1, get the OTP, install Arm9LoaderHax and update on regular system NAND.
It's significantly harder than the PSP scene.
Title: Re: Unnamed 3DS homebrew
Post by: Hayleia on May 12, 2016, 08:48:32 pm
Quote from: Duke "Tape" Eiyeron on May 12, 2016, 01:26:14 pm
Also, i have some things about DSP if you want to get your hands on this subject.
Right now, not really. I'd like to focus on gameplay first. But when things start working right I'd be glad to get help on that subject :)

Quote from: DJ Omnimaga on May 12, 2016, 07:11:33 pm
Wow I like the idea and the ink effects look cool too. Maybe you should throw glossy spheres instead of cubes to make it look more realistic?
Yeah, everything here is just a PoC. I'll keep cubes for a while because I'm too lazy to change them but of course at some point it would be better to give the game some visual identity :P

Quote from: DJ Omnimaga on May 12, 2016, 07:11:33 pm
Also I can definitively see the influence from Splatoon. You could call it Ink3D, Splatya, or go with a paint ball-related name. Or maybe PocketSplat?

Splatya doesn't sound bad but why "ya" ? I'm not saying it's bad, I'm just wondering if I'm missing a pun or if it's just because it sounds good :P

Quote from: DJ Omnimaga on May 12, 2016, 07:11:33 pmI'm surprised that the 3DS scene is smaller. Maybe the console is harder to program or hack?

It is harder to hack indeed (I mean, I bought a PSP 1000 some weeks ago and the hack was literally "copy paste files on the memory stick, execute those two ones in the right order" -.-) as @gnmmarechal said (even though the part about downgrading to 2.1 to get OTP and arm9loaderhax isn't compulsory), but I think it's also because people have smartphones now. So not only homebrewers have a platform to work with without hacks but also people are less interested in handheld consoles. See how the PSP had multimedia functions and how the 3DS doesn't care :P
Title: Re: Unnamed 3DS homebrew
Post by: Duke "Tape" Eiyeron on May 13, 2016, 07:33:00 am
Am I the only one to have seen first relation to Tag, the Power of Paint before Splatoon?
Oh, by the way, LodePNG (http://lodev.org/lodepng/) perfectly works on 3DS, if you need to load textures from PNG directly on your 3DS if you need it.
Title: Re: Unnamed 3DS homebrew
Post by: Hayleia on May 13, 2016, 02:15:02 pm
Quote from: Duke "Tape" Eiyeron on May 13, 2016, 07:33:00 am
Am I the only one to have seen first relation to Tag, the Power of Paint before Splatoon?

yes
I don't know, I never played that game so I can't make any relation to it.

Quote from: Duke "Tape" Eiyeron on May 13, 2016, 07:33:00 am
Oh, by the way, LodePNG (http://lodev.org/lodepng/) perfectly works on 3DS, if you need to load textures from PNG directly on your 3DS if you need it.

You can see me having problems with lodepng here (http://gbatemp.net/threads/homebrew-development.360646/page-241#post-6283748) :P
Title: Re: Unnamed 3DS homebrew
Post by: DJ Omnimaga on May 14, 2016, 02:49:56 am
Quote from: gnmmarechal on May 12, 2016, 07:29:59 pm
Quote from: DJ Omnimaga on May 12, 2016, 07:11:33 pm
Wow I like the idea and the ink effects look cool too. Maybe you should throw glossy spheres instead of cubes to make it look more realistic? Also I can definitively see the influence from Splatoon. You could call it Ink3D, Splatya, or go with a paint ball-related name. Or maybe PocketSplat?

Also nice to see you again Hayleia and welcome here @gnmmarechal  :) . I remember the GBC scene was pretty big back then and various TI programmers also made GBC games. I never paid attention to the GBA scene, though. I remember the DS and PSP scenes were big but for some reasons the PSP scene lasted shorter it seems. I'm surprised that the 3DS scene is smaller. Maybe the console is harder to program or hack? The TI-Nspire was made harder and harder to hack over the years by TI and eventually people gave up so only a few Nspire developers remain.


Thanks!

Hum, the PSP HB scene wasn't short, was it? It's still alive, though a mere shadow of what it once was. Infinity hybrid firmware 6.31/6.61 is a proof of it not being dead.

And the DS scene wasn't *that* big, most people only used the flashcarts to pirate games.

About the 3DS, well, yes. First, to hack the console, on a lot of system versions, you need a specific version of a game (or browserhax/menuhax, which only works up to 10.5 afaik). Also, we don't have ARM9 kernel access on firmwares above 9.2, and no ARM9 access means limited Homebrew. Though there is a lot of good stuff, the PSP was so much better. I guess it was easy to hack, as you'd run a signed eboot directly from the Memory Stick, which was a regular card that the PC read as a regular storage device.... 3DS data is encrypted, and it needs CFW (which needs ARM9 kernel access) to bypass signature checks.
Though you *can* downgrade from 11.0 to 10.7 via a hardmod and from 9.3-10.7 to 9.2 via HBL using Memchunkhax2.1/svchax. That would allow the user to get ARM9 access and either setup and EmuNAND or downgrade to 2.1, get the OTP, install Arm9LoaderHax and update on regular system NAND.
It's significantly harder than the PSP scene.
Interesting, I always had the impression that the PSP scene was mostly active from 2005 to 2008. Back in 2008, calculator programming almost died completely and one calc site, Revsoft, even went as far as branching out towards PSP development and they were not the only site to have members who got interested. But then I didn't hear much about PSP programming anymore, other than emulators being made to run PS1 games and such stuff. I guess maybe I didn't pay attention to it enough after 2008.
Quote from: Hayleia on May 12, 2016, 08:48:32 pm
Quote from: Duke "Tape" Eiyeron on May 12, 2016, 01:26:14 pm
Also, i have some things about DSP if you want to get your hands on this subject.
Right now, not really. I'd like to focus on gameplay first. But when things start working right I'd be glad to get help on that subject :)

Quote from: DJ Omnimaga on May 12, 2016, 07:11:33 pm
Wow I like the idea and the ink effects look cool too. Maybe you should throw glossy spheres instead of cubes to make it look more realistic?
Yeah, everything here is just a PoC. I'll keep cubes for a while because I'm too lazy to change them but of course at some point it would be better to give the game some visual identity :P

Quote from: DJ Omnimaga on May 12, 2016, 07:11:33 pm
Also I can definitively see the influence from Splatoon. You could call it Ink3D, Splatya, or go with a paint ball-related name. Or maybe PocketSplat?

Splatya doesn't sound bad but why "ya" ? I'm not saying it's bad, I'm just wondering if I'm missing a pun or if it's just because it sounds good :P

Quote from: DJ Omnimaga on May 12, 2016, 07:11:33 pmI'm surprised that the 3DS scene is smaller. Maybe the console is harder to program or hack?

It is harder to hack indeed (I mean, I bought a PSP 1000 some weeks ago and the hack was literally "copy paste files on the memory stick, execute those two ones in the right order" -.-) as @gnmmarechal said (even though the part about downgrading to 2.1 to get OTP and arm9loaderhax isn't compulsory), but I think it's also because people have smartphones now. So not only homebrewers have a platform to work with without hacks but also people are less interested in handheld consoles. See how the PSP had multimedia functions and how the 3DS doesn't care :P
As long as you don't shoot colored :walrii: that explodes into a pile of colored goo then it's fine :P

As for Splatya, it's basically Splatoon and Hayleia combined together. I didn't like Splateya and Splateia so I went with Splatya as idea :P.

And I see. I guess it isn't surprising that the Nspire scene got downsized after 2013 or so. When a platform is hard to hack or program, then fewer developers bother.
Title: Re: Unnamed 3DS homebrew
Post by: Duke "Tape" Eiyeron on May 15, 2016, 05:16:21 pm
Quote from: Duke "Tape" Eiyeron on May 13, 2016, 07:33:00 am
Oh, by the way, LodePNG (http://lodev.org/lodepng/) perfectly works on 3DS, if you need to load textures from PNG directly on your 3DS if you need it.

You can see me having problems with lodepng here (http://gbatemp.net/threads/homebrew-development.360646/page-241#post-6283748) :P
[/quote]

Funny, I have yet to face any issues with lodepng. I knew about the limited supported format set but not about such issues. Have you tried using them in a PC targeted program to see if it comes from it or somewhere else? (Also, you could send me such files so I could try them on WRPG and determine where they crash)
Title: Re: Unnamed 3DS homebrew
Post by: Hayleia on May 16, 2016, 08:41:01 am
Quote from: Duke "Tape" Eiyeron on May 15, 2016, 05:16:21 pm
Funny, I have yet to face any issues with lodepng. I knew about the limited supported format set but not about such issues. Have you tried using them in a PC targeted program to see if it comes from it or somewhere else? (Also, you could send me such files so I could try them on WRPG and determine where they crash)

I didn't try that. Since my textures already run through a script, I just modified the script to add a conversion to hex so I can just include that hex in my code :P
Good bye compression, but goodbye problems with libs too :P

If you want to try stuff, I guess you can try the pngs in the attached zip. But you don't have to waste your time if you don't want to, I'm fine using ridiculous hex, Xenoblade wastes 4GB so people won't complain about my game wasting 40MB instead of 1 :P
Title: Re: Unnamed 3DS homebrew
Post by: Duke "Tape" Eiyeron on May 16, 2016, 04:14:30 pm
Well, not everyone have 32GB microSD cards too :p Don't overdo it, okay? :p

i(m trying to figure what should I use to make correct perspective. I mean I have to figure the correct factor to avoid making my eyes cross from the whole thing. WIth 2D graphics, it's pretty hard on the eyes, actually.
Title: Re: Unnamed 3DS homebrew
Post by: DJ Omnimaga on May 20, 2016, 04:04:34 am
Wait, I might not get it, but how did you get your texture to look this smooth in the video when in that zip file they're so small and pixelated? I mean, I know on the Nintendo 64 textures are blurred to look smoother, but in your video there's no blur and they look HD and crisp. O.O
Title: Re: Unnamed 3DS homebrew
Post by: Hayleia on May 20, 2016, 10:15:32 am
Quote from: DJ Omnimaga on May 20, 2016, 04:04:34 am
Wait, I might not get it, but how did you get your texture to look this smooth in the video when in that zip file they're so small and pixelated? I mean, I know on the Nintendo 64 textures are blurred to look smoother, but in your video there's no blur and they look HD and crisp. O.O
Ah no, you're right thinking that's not possible :P

I actually have several sets of textures (since they're generated from a script, it doesn't take much more time to just add a resizing pass). The "16x16 ugly ones" that I use for testing since they compile faster, and the "128x128 smooth ones" that I used in the videos and that I'll use in releases (when release time comes).

I guess I zipped the ugly set :P
Title: Re: Unnamed 3DS homebrew
Post by: DJ Omnimaga on May 21, 2016, 06:42:45 pm
Ah I see. Do you plan to use the lower res textures for stuff drawn in the distance to increase rendering speed like some 3D games do?
Title: Re: Unnamed 3DS homebrew
Post by: Hayleia on May 22, 2016, 10:26:39 am
Quote from: DJ Omnimaga on May 21, 2016, 06:42:45 pm
Ah I see. Do you plan to use the lower res textures for stuff drawn in the distance to increase rendering speed like some 3D games do?
I'm not sure it increases rendering speed. From what I learned, it was primarily to reduce ugly artifacts and nonsense patterns that appeared when having a textured object in the distance. Maybe it increases rendering speed as a side effect but I'm not sure about it since it needs more calculations (since now, instead of having one texture and reading from it, you first have to add calculations to decide which texture you're going to read from then do the usual thing... and actually no, you still have more to do since trilinear mipmapping reads from two textures and weighs the two reads from what I recall, so you're doing more twice the amount of work you'd do with one texture only).
In any case, I'll see if I need it when (if ever) the time comes.
Title: Re: Unnamed 3DS homebrew
Post by: Duke "Tape" Eiyeron on May 22, 2016, 10:53:14 am
Well, it'll decrease performances because more data is pushed to the GPU. Also I don't remember if the gpu does mipmapping from its own.
Title: Re: Unnamed 3DS homebrew
Post by: DJ Omnimaga on May 22, 2016, 06:37:24 pm
Ah ok, I always thought it had something to do with lower end GPU's
Title: Re: Unnamed 3DS homebrew
Post by: ben_g on May 24, 2016, 03:13:19 am
That too. Especially in open-world games, distant objects are loaded with less details and everything has lower resolution textures. The lower detail of distance objects increases rendering performance, and the lower resolution textures take up less memory.

Decreasing the resolution of textures only decreases the memory requirements if no object close to the player needs a higher resolution version of the same texture though, since then you even need to keep 2 instances of the same texture in memory.
Title: Re: Unnamed 3DS homebrew
Post by: DJ Omnimaga on May 24, 2016, 04:48:08 am
Thanks for explaining :). That makes more sense now
Title: Re: Unnamed 3DS homebrew
Post by: Hayleia on May 28, 2016, 09:42:29 pm
No really, I can't get the paint to behave the right way. I can't even get it to behave the way it did in previous screenshots (even though it was already wrong). So maybe people here can help.

Before we start, obviously, you'll need some background.
So, there are two colors. Or more three. "Nothing", "Orange", "Purple".
Each tile has 5 components. Middle, Up, Down, Left, Right.

Obviously, when you shoot a color to a tile, its middle takes the color.
(https://tiplanet.org/forum/images/forum_uploads/6947_1464469779_574a0913d7be7.png) -> (https://tiplanet.org/forum/images/forum_uploads/6947_1464469826_574a09429ea13.png)
But then, when you shoot on two neighbour tiles, it would get ugly if they looked like this (https://tiplanet.org/forum/images/forum_uploads/6947_1464469826_574a09429ea13.png)(https://tiplanet.org/forum/images/forum_uploads/6947_1464469826_574a09429ea13.png)
What you want is to change add purple on the right side of the left tile, and add purple on the left side of the right tile : (https://tiplanet.org/forum/images/forum_uploads/6947_1464469998_574a09ee97d79.png)(https://tiplanet.org/forum/images/forum_uploads/6947_1464469998_574a09ee994b6.png)
Same stuff to do on up and down sides obviously.
But then you know, if you shoot orange on the left tile, its middle change but its side have no reason to (https://tiplanet.org/forum/images/forum_uploads/6947_1464470208_574a0ac039b8c.png)(https://tiplanet.org/forum/images/forum_uploads/6947_1464469998_574a09ee994b6.png)
This kind of stuff becomes annoying quite quickly.

Ok, so now, the order of textures.
Well first of all, the number of textures -.-
Each size can have 3 values, there are 4 sides, so we already have a 3⁴ here.
Now, the middle can have 3 values... yes, but when it's empty, we know that the whole tile is empty. So we don't multiply 3⁴ but 3 here, but only by 2 (for orange and purple) then we add 1 (for all empty).
This makes a total of 163 textures. Great. Now the order.
Say m is the color (from 0 to 2) of the middle, u is the one for the up side, etc. The texture for the tile is given by
• if empty: 0
• otherwise: (m-1)*3⁴ + u*3³ + d*3² + l*3¹ + r*3⁰ + 1

So now that you know everything, can someone help me write a function? :P
Basically, a tile has attributes which are
• u,d,l,r, pointer to obvious neighbour tiles
• color, which is the texture number, not just the middle color
• an ID, to check if a neighbour is the tile itself (so if it has no neighbour, in other words, and yeah, I could just have used NULL but w/e)
• other things not relevant here
So yeah, the question is, when you shoot on a tile with a color c (0 to 2), what is the new color (0 to 162)?

The function below works if there is only one color in the game:

void setPieceColor(piece* p, uint8_t color, uint8_t setNeighbours)
{
// get the old side colors on the tile (we will replace some of them but others will not change)
uint8_t o = p->color;
uint8_t om=0, ou=0, od=0, ol=0, or=0;
if (o) {
om = (int)((o-1)/pow(3,4))+1;
ou = (int)((o-1)/pow(3,3))%3;
od = (int)((o-1)/pow(3,2))%3;
ol = (int)((o-1)/pow(3,1))%3;
or = (int)((o-1)/pow(3,0))%3;
}

uint8_t u = p->u->color;
uint8_t d = p->d->color;
uint8_t l = p->l->color;
uint8_t r = p->r->color;
uint8_t um = (u-1)/pow(3,4)+1;
uint8_t dm = (d-1)/pow(3,4)+1;
uint8_t lm = (l-1)/pow(3,4)+1;
uint8_t rm = (r-1)/pow(3,4)+1;
if (p->u->id == p->id) u = color; else u = u ? um==color ? color : ou : 0;
if (p->d->id == p->id) d = color; else d = d ? dm==color ? color : od : 0;
if (p->l->id == p->id) l = color; else l = l ? lm==color ? color : ol : 0;
if (p->r->id == p->id) r = color; else r = r ? rm==color ? color : or : 0;
p->color = (color-1)*pow(3,4) + u*pow(3,3) + d*pow(3,2) + l*pow(3,1) + r*pow(3,0) +1;

if (setNeighbours) {
if (um == color) setPieceColor(p->u, um, 0);
if (dm == color) setPieceColor(p->d, dm, 0);
if (lm == color) setPieceColor(p->l, lm, 0);
if (rm == color) setPieceColor(p->r, rm, 0);
}
}

And I have no idea if there is useless stuff in it. I tried so much stuff that I don't remember how it started and why it looks like that now -.-

But now, when using two colors, it doesn't exactly do what I want. See this example where I painted a lot of orange then shot one drop of purple on one tile (you can guess which one).
(https://tiplanet.org/forum/images/forum_uploads/6947_1464471330_574a0f22255ac.png)

So, that function is wrong. Any idea of how to fix it ? And any idea why only one side has that little overflow and not the other ones ? I mean, if they all had a problem, I'd just have a problem. But here I have a particular problem and that bothers me even more -.-

(Also @DJ Omnimaga, here is a screenshot with ugly textures :P)
Title: Re: Unnamed 3DS homebrew
Post by: ben_g on May 29, 2016, 06:38:58 am
Does the 3DS support pixel shaders? If it does, then it's probably easier to create a single texture used to identify in which 'zone' a pixel is (middle, left side, top right corner, ...) and use a set of flags so that the pixel shader can colour each area accordingly. This will take up slightly more rendering time, but it will make it easier to program and free up a lot of (graphics) memory.
Title: Re: Unnamed 3DS homebrew
Post by: Hayleia on May 29, 2016, 10:16:46 am
Quote from: ben_g on May 29, 2016, 06:38:58 am
Does the 3DS support pixel shaders? If it does, then it's probably easier to create a single texture used to identify in which 'zone' a pixel is (middle, left side, top right corner, ...) and use a set of flags so that the pixel shader can colour each area accordingly. This will take up slightly more rendering time, but it will make it easier to program and free up a lot of (graphics) memory.
It does but it doesn't answer my question at all. Because even if I used 5 textures (up, right, down, left, middle) and mixed them in the shader only, I'd still have to know which ones I have to mix so the question about the value from 0 to 162 to be computed still applies.

edit Problem fixed. The problem came from another part of the code and this function actually works (at least from what I tested).
Title: Re: Unnamed 3DS homebrew
Post by: DJ Omnimaga on May 29, 2016, 07:38:53 pm
Glad you got it fixed. I was gonna ask if you had backups of your previous working code in case :P
Title: Re: Unnamed 3DS homebrew
Post by: Hayleia on May 30, 2016, 12:18:06 pm
Quote from: DJ Omnimaga on May 29, 2016, 07:38:53 pm
Glad you got it fixed. I was gonna ask if you had backups of your previous working code in case :P
Yes but it wouldn't have helped much. I changed the way the program works (no longer uses cubes but can use whatever) so if I used exactly the same function as before, it would have expected cubes and would not even have compiled, and if I used a modified version of it to work with whatever... well that's exactly the function in my previous post :P
Title: Re: Unnamed 3DS homebrew
Post by: DJ Omnimaga on May 30, 2016, 11:49:27 pm
What I meant is that sometimes, when we code, we do updates that breaks our previously-working code, then no matter how hard we try, we can't seem to fix it back, which sometimes requires restoring a previous backup (and losing progress)
Title: Re: Unnamed 3DS homebrew
Post by: Hayleia on May 31, 2016, 02:24:26 pm
Yeah, I got that. But what I basically said is that last time paint was working was before a major rewrite. And it never worked after the rewrite. So I'd restore a backup of a pre-rewrite state to rewrite again and have the same problems actually :P
Title: Re: Unnamed 3DS homebrew
Post by: DJ Omnimaga on May 31, 2016, 09:41:12 pm
I see now. Thanks for clarifying :).
Title: Re: Unnamed 3DS homebrew
Post by: Hayleia on November 07, 2016, 09:34:32 pm
You thought this was dead? Yeah it was :P
But I'm bored right now. So I used C++ instead of C-only (and now my code is some sort of hybrid that C coders and C++ coders would both agree to dislike :P) to get more stuff to work and other stuff to work better and now I have ink working on walls, among the visible changes.
And I say "wall" but it should work on anything that respects the right format actually. Like slopes or even pipes or whatever. Didn't try though, it was already annoying enough to test on walls :P
https://www.youtube.com/watch?v=8Fx6NrQtLr0
Title: Re: Unnamed 3DS homebrew
Post by: DJ Omnimaga on November 08, 2016, 12:54:28 am
This is awesome Hayleia. You should make a version that shoots spheres, which would bring it even closer to the real thing :)
Title: Re: Unnamed 3DS homebrew
Post by: gameblabla on November 08, 2016, 02:18:40 am
QuoteSo I used C++ instead of C-only

NOOOOOOO

I suppose you're using CitrGL right ?
What graphical library are you using for this game ?
Title: Re: Unnamed 3DS homebrew
Post by: Hayleia on November 08, 2016, 06:16:28 am
Quote from: DJ Omnimaga on November 08, 2016, 12:54:28 am
This is awesome Hayleia. You should make a version that shoots spheres, which would bring it even closer to the real thing :)
Yeah, obviously some things are placeholders for now. Same, when I'll switch to 3rd person view, the model will probably be a stupid cube :P

Quote from: gameblabla on November 08, 2016, 02:18:40 am
QuoteSo I used C++ instead of C-only

NOOOOOOO
Lol, that was my reaction exactly when I noticed everything that stopped working, then everything that started working again but slowly, which forced me to use C++ only "in loading times" then switch back to arrays after all data structures are filled.

Quote from: gameblabla on November 08, 2016, 02:18:40 am
I suppose you're using CitrGL right ?
What graphical library are you using for this game ?
Citro3D, not sure what CitrGL is.
Title: Re: Unnamed 3DS homebrew
Post by: p2 on November 08, 2016, 07:54:29 am
this sure looks awesome, I really love it!! :D
You did some really nice work there Hayleia  :thumbsup:


Quote from: Hayleia on November 08, 2016, 06:16:28 am
Quote from: DJ Omnimaga on November 08, 2016, 12:54:28 am
This is awesome Hayleia. You should make a version that shoots spheres, which would bring it even closer to the real thing :)
Yeah, obviously some things are placeholders for now. Same, when I'll switch to 3rd person view, the model will probably be a stupid cube :P

For the character, I recommend using some sort of little robot model instead of a human with a color gun.
Then there would be no walking animation needed + it's a much easier model. (can even do all animations by just using an animated skin)
You could go for a robot like this one, but maybe add a color gun or something ;)
http://i.walmart.com/i/p/00/07/69/30/59/0007693059816_500X500.jpg

Will this be only available for the 3DS or also for the basic Nintendo DS?  :ninja:
Title: Re: Unnamed 3DS homebrew
Post by: Hayleia on November 08, 2016, 09:25:25 am
Quote from: p2 on November 08, 2016, 07:54:29 am
For the character, I recommend using some sort of little robot model instead of a human with a color gun.
Then there would be no walking animation needed + it's a much easier model. (can even do all animations by just using an animated skin)
You could go for a robot like this one, but maybe add a color gun or something ;)
http://i.walmart.com/i/p/00/07/69/30/59/0007693059816_500X500.jpg
Yeah, after everything starts working with placeholders, I'll obviously need something better than a stupid cube.
I also thought about a Rayman-like character, with hands and feet but no arms nor legs, so it would have animations that would both be nice to see and easier to code than with legs and arms :P

Quote from: p2 on November 08, 2016, 07:54:29 am
Will this be only available for the 3DS or also for the basic Nintendo DS?  :ninja:
This will most probably not be available for the DS, mostly because I don't have one -.-
But don't get your hopes up too fast, it would be great if it was available on the 3DS already :P
Title: Re: Unnamed 3DS homebrew
Post by: DJ Omnimaga on November 08, 2016, 10:55:13 pm
In any case, try to add a little something that makes the game a bit different from Splatoon, so that Nintendo cannot hit you with a cease and desist letter like they did with all Mario/Metroid fan games :P