More homebrew on Nintendo DS ?

PypeBros · 34940

Offline Lobo

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 3119
    • Spitoufs
Reply #30 on: March 08, 2018, 09:41:22 pm
Yep, the current rise of the NES homebrew (and apparently SMS homebrew) communities make me hope that I'm not developing for me alone, and that some day, people who grew with the Nintendo DS will enter a part of their lifetime where they'll want to code for it themselves. We had a super-strong community. It was so amazing that I just had to post a news on one French board to see it translated in 5 or 6 different languages and relayed over the world without having to raise the smallest finger.

I'm convinced there are some people still interested, but we no longer have any place to meet, imho. Partly because there wasn't one place to meet in the first time: we were so many that we could simply keep in touch with our local peers without worrying about building a worldwide community.

Someone (I think one of you) mentioned two other person still doing homebrew for DS (or GBA?) over the last week. Maybe on twitter. But our new communication channels have a flaw when it comes to memory. Impossible to force the websites to show it once more...

I did pick up some NES homebrew in recent years, not as much output as say C64/ZX or possibly others but it keeps going, methinks the interest is rising up somewhat as it goes.

You're right about meeting place, it is strange really..back on DS there was a choice, I know Dev.fr is where I could find Kukulcan, Alekmaul, Mollusk, smealum etc..I could see them on PlayerAdvance too as links were there, GBAdev and DSscene for English oriented news but there were other 'general' sorta 'fire and forget' places with forums/comments at least and it did work methinks.

Somehow..these new social places were supposed to be a better solution in terms of bringing people together but after using Twitter for years and consequently avoiding FB for years and looking at the state of forums at some places, I am bloody convinced that IRC chat channel is damn far more clear and superior and effective way to put people/information together than all this shit if you pardon me French.

Social media outlets (as you noticed) treat conversation pieces as 'news' which is bullshit and as news tends to be replaced instantly with newly new news to keep you glued to the platform, the relevant information from just yesterday - disappears - before you even get to bloody see it! Instead you are force fed some stupid meme from people who should know better than that, and loosing any sense of connection with 'what you want to see or find'. I mean, I had to remove a bunch of people on twitter cause they kept spamming some silly social - gamers connect - platforms nonsense that I don't care about a bit because its all about shifting your warez to other people who shift their warez and no one gives a shite, and at the same time I would see Sokurah's tweet, for which I infinitely care much more, in like 3 days after or sometimes lost for good??

So..yeah, its a bit of a problem, because eventually people who are interested in stuff we all do might never see it. Like, the other day this guy mentions that he never knew there was Warhawk on DS, I mean its not too late to discover of course, but yea, it points to that problem of disseminating information proper and I'm afraid there is no gaming outlet out there which is doing it right anymore (in my opinion, everyone else can disagree) as the focus is either concentrated on one platform only or just bloody the good old fashion popularity contest as usual, which is really *meh* and unfunny in 2018. :P

Also..dammit, dunno if its just me, but passion from yesterday in so many people have been replaced with downright cynicism, dunno why and naming no names but wtf mario. :) :)




Offline sverx

  • RBP Member
  • IBM PC
  • *****
    • Posts: 516
  • "Ow!!! What's that ?!?!"
    • My NDS folder
Reply #31 on: March 09, 2018, 08:52:01 am
I think gbadev.org's forum is still the place where DS/GBA homebrewers meet - it's just that we (they?) are very few remaining. I'm still checking it on an almost daily basis, DWedit and guauu do appear often, ant512 is still releasing stuff. Beside those (and you) - I guess I didn't forget anyone else  :'(

As for SMS/NES/ZX/etc homebrew, I guess you've read Epyx 'call to arms'... right?  :D
« Last Edit: March 09, 2018, 08:52:49 am by sverx »



Offline Sokurah

  • RBP Member
  • Cray-1 Super Computer
  • *****
    • Posts: 724
    • Tardis Remakes
Reply #32 on: March 09, 2018, 10:43:51 am
...I had to remove a bunch of people on twitter cause they kept spamming some silly social - gamers connect - platforms nonsense that I don't care about a bit because its all about shifting your warez to other people who shift their warez and no one gives a shite, and at the same time I would see Sokurah's tweet, for which I infinitely care much more, in like 3 days after or sometimes lost for good??
Aww, thanks  :-*
I don't read much Twitter anymore. A year ago I would check up on my entire feed since the previous day, in the morning when I got to work, but I've stopped doing that and now only scroll through a couple of screens a couple of times a day, so I'm guessing I miss a lot. But there's SO much noise that I just can't be arsed to spend the time anymore. A have two columns for tweets by Lobo and other artist I've worked with (Redballoon) and that'll have to do  ;D



Offline Lobo

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 3119
    • Spitoufs
Reply #33 on: March 09, 2018, 04:46:42 pm
Aww, thanks  :-*
I don't read much Twitter anymore. A year ago I would check up on my entire feed since the previous day, in the morning when I got to work, but I've stopped doing that and now only scroll through a couple of screens a couple of times a day, so I'm guessing I miss a lot. But there's SO much noise that I just can't be arsed to spend the time anymore. A have two columns for tweets by Lobo and other artist I've worked with (Redballoon) and that'll have to do  ;D


You know it's your twerking skills mate, can't have a day start without it. :P
But ye, white noise thingie, nowadays its so damn thick that Leatherface gave up after breaking his chainsaw while trying to cut through it and he can't be wrong methinks. The sorry ass deal is that sort of communication was supposed to be *better* and more productive and informative but fell flat on arse like this >  :) :)


As for SMS/NES/ZX/etc homebrew, I guess you've read Epyx 'call to arms'... right?  :D

What 'call to arms' is that, never heard of such a thingie?  ???



Offline Sokurah

  • RBP Member
  • Cray-1 Super Computer
  • *****
    • Posts: 724
    • Tardis Remakes
Reply #34 on: March 09, 2018, 05:54:51 pm
What 'call to arms' is that, never heard of such a thingie?  ???

Doh! Yeah, I forgot to ask about that too.
So, sverx, spill them beans  :)



Offline sverx

  • RBP Member
  • IBM PC
  • *****
    • Posts: 516
  • "Ow!!! What's that ?!?!"
    • My NDS folder
Reply #35 on: March 09, 2018, 07:12:32 pm



Offline PypeBros

  • Jupiter Ace
  • *
    • Posts: 28
    • My Homebrew blog
Reply #36 on: March 09, 2018, 09:17:22 pm
Amazing!



Offline Lobo

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 3119
    • Spitoufs
Reply #37 on: March 09, 2018, 09:47:32 pm
http://www.smspower.org/forums/16961-LookingForProgrammersToWorkOnExcitingNewProjects  ... and similar threads on other forums...

Well..that is pretty darn cool. Hope this really works out for people who join in and re-do some of these oldies titles (didn't know that Barbarian is Epyx tho, maybe forgot) on different systems and perhaps release some carts as well.  8)



Offline flash

  • Administrator
  • Blue Gene Super Computer
  • **********
    • Posts: 13180
Reply #38 on: March 10, 2018, 04:49:26 pm
Just putting this out there...

Looking for code for fast directional fire. ie. from x1,y1, heading to x2,y2 and beyond. Tried several ways of doing it in z80, but the problem is accuracy and maintaining a constant speed at any direction. I want to avoid Bressenhams as the overhead is too much, and angle calculation is overkill also. Using 8.8 fixed point, you can get an object to travel directly to another by using the x1-y1 x2-y2 offsets and using the sign. But, the downside is the the offsets are not normalised. So, the closer x2,y2 is to x1,y1 then the slower the step.

Anyway, if anyone spots anything anywhere - I would certainly be interested.

Coding for the love of it!


Offline PypeBros

  • Jupiter Ace
  • *
    • Posts: 28
    • My Homebrew blog
Reply #39 on: March 10, 2018, 07:20:18 pm
I don't know how much the Z80 loves divisions, but if you scale it to one block horizontally, the corresponding vertical offset could be used to lookup by how much the values need to be scaled to have unit norm, right ?



Offline flash

  • Administrator
  • Blue Gene Super Computer
  • **********
    • Posts: 13180
Reply #40 on: March 10, 2018, 07:57:18 pm
I did try that

I took the greater of x or y step, made it 1 (for the speed) and then kept the difference between the original number and 1. I then used that to scale the lower number by the same fraction. Almost worked, but precision was lost.

Coding for the love of it!


Offline flash

  • Administrator
  • Blue Gene Super Computer
  • **********
    • Posts: 13180
Reply #41 on: March 10, 2018, 08:02:23 pm
Though, with all the z80 code that's been made, I was hoping there would be an efficient and fast routine already written. Really rather not reinvent the wheel.

ps. Soooooooooo easy on ARM :)

Coding for the love of it!


Offline PypeBros

  • Jupiter Ace
  • *
    • Posts: 28
    • My Homebrew blog
Reply #42 on: March 10, 2018, 08:20:27 pm
is the distance covered per frame important ? if not. I'd suggest to advance one pixel at a time, either horizontally or vertically depending of whether you're above or below the line between x1,y1 and x2,y2. That way, you're sure you keep precision.
(ps. Maybe this should be all moved into another post, though. It has definitely no more relationship to homebrews on DS :P)



Offline headkaze

  • Administrator
  • Blue Gene Super Computer
  • **********
    • Posts: 7838
Reply #43 on: March 10, 2018, 09:17:58 pm
Though, with all the z80 code that's been made, I was hoping there would be an efficient and fast routine already written. Really rather not reinvent the wheel.

Since you're probably already using lookup tables for sine/cosine. I would just use good ol' trig.

First you need to get the angle between two vectors.
Code: [Select]
public double GetAngle(Vector2 a, Vector2 b)
{
    double angle = Math.Atan2(b.Y, b.X) - Math.Atan2(a.Y, a.X);
    return angle;
}

Z80 implementation of Atan2 routine example here

Once you have your angle (which is in radians) you can move towards it.

Code: [Select]
x += speed * Math.Cos(angle);
y += speed * Math.Sin(angle);

Z80 implementation http://www.cpcwiki.eu/index.php/Programming:Sin/Cos_calculation.

Of course there is always a compromise between speed and accuracy. It might be too slow for your needs. Anyway it's worth a try at least.



Offline PypeBros

  • Jupiter Ace
  • *
    • Posts: 28
    • My Homebrew blog
Reply #44 on: March 11, 2018, 08:57:53 am
You could also define a travel distance after which Angle gets re-evaluated. That way, you'll avoid the fact that lack of precision on sin(a) and cos(a) accumulates over time.



Offline sverx

  • RBP Member
  • IBM PC
  • *****
    • Posts: 516
  • "Ow!!! What's that ?!?!"
    • My NDS folder
Reply #45 on: March 13, 2018, 03:54:15 pm
I did try that
I took the greater of x or y step, made it 1 (for the speed) and then kept the difference between the original number and 1. I then used that to scale the lower number by the same fraction. Almost worked, but precision was lost.

You should take x*x + y*y and that would be the square of the distance, and scale to 1 that (by performing a square root of that and a division, if it's feasible - you might want to LUT that...)




Offline PypeBros

  • Jupiter Ace
  • *
    • Posts: 28
    • My Homebrew blog
Reply #46 on: March 16, 2018, 04:17:27 pm
I'm still checking it on an almost daily basis, DWedit and guauu do appear often, ant512 is still releasing stuff. Beside those (and you) - I guess I didn't forget anyone else  :'(
Glad you mentioned them. I haven't got any contact with DWedit or guauu, but now ant512 has sprites of mine in his "Amazing Mazes" game ;-). And there will be some music too. Hope to see that released soon ...

(did I mentioned I love mazes ?)



Offline PypeBros

  • Jupiter Ace
  • *
    • Posts: 28
    • My Homebrew blog
Reply #47 on: March 31, 2018, 10:30:41 am
I was toying with the idea of generating SNES/MD code for my animations ... But it looks like I'm over-estimating the powers of those 16-bit machine. At least half the powers of a GBA, I'd say. If there ever is Bilou on SNES or MegaDrive, that won't be in 2018, I'm afraid ...



Offline sverx

  • RBP Member
  • IBM PC
  • *****
    • Posts: 516
  • "Ow!!! What's that ?!?!"
    • My NDS folder
Reply #48 on: April 03, 2018, 11:03:16 am
I don't know exactly what you need to do, but the MD is quite powerful. I wouldn't say 50% the GBA, though - that's lower IMHO.
Please explain what you need to do, we can discuss the thing together :)



Offline spacefractal

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 4138
Reply #49 on: April 04, 2018, 09:15:29 am
You should checkout the OverDrive and OverDrive 2 demos that came to MegaDrive:
https://www.youtube.com/watch?v=OGDtViPngi8

https://www.youtube.com/watch?v=gWVmPtr9O0g

Howover the last one used undocumented features, which does not work on all Mega Drives, but only on some as im have read. So its would newer works as a game (the music alone is also 3.5mb out of 8mb total).

But.... Its cool anyway.

The Musician for the RetroBytes Portal Projects.


Offline PypeBros

  • Jupiter Ace
  • *
    • Posts: 28
    • My Homebrew blog
Reply #50 on: April 04, 2018, 09:21:18 pm
Please explain what you need to do, we can discuss the thing together :)
Well, I thought the major barrier would be the CPU speed. I'm running bytecode-based expressions evaluation on the NDS (at 66MHz) and it works correctly, and I expected the need to convert that into native code expressions (thus compiling the former into e.g. 68000 machine code).

But I'm realizing that even the art itself might be over the specs. I loaded 64K of tiles for the playground, almost another 64K for the parallax background and yet another 64K for the sprites. I would have to re-think the art so that it works in 4bpp, first, but even that might not be enough to fit everything into a 16-bit console's video memory, at least not on SNES. I couldn't work with such "static tilesets" on 16-bit. I'd need a strong algorithm to move data between ROM and VRAM, and tracking what will be referenced next and what isn't. And maybe even delaying the transition to an attack move of a monster if the DMA pipeline is already full for this frame. Significant work, thus.



Offline sverx

  • RBP Member
  • IBM PC
  • *****
    • Posts: 516
  • "Ow!!! What's that ?!?!"
    • My NDS folder
Reply #51 on: April 05, 2018, 10:04:03 am
On a MegaDrive, you've got 64KB total, but part of it is reserved to tilemaps and SAT (OAM).
https://twitter.com/i_am_sverx/status/970600835561508864

edit: oh, sure you've seen that already.  :-[

« Last Edit: April 05, 2018, 10:04:50 am by sverx »



Offline PypeBros

  • Jupiter Ace
  • *
    • Posts: 28
    • My Homebrew blog
Reply #52 on: April 06, 2018, 05:43:43 am
On a MegaDrive, you've got 64KB total, but part of it is reserved to tilemaps and SAT (OAM).
https://twitter.com/i_am_sverx/status/970600835561508864

edit: oh, sure you've seen that already.  :-[


indeed ;) but I overlooked the numbers :-/



Offline sverx

  • RBP Member
  • IBM PC
  • *****
    • Posts: 516
  • "Ow!!! What's that ?!?!"
    • My NDS folder
Reply #53 on: April 06, 2018, 09:28:29 am
Of course you need a total overhaul, but 64KB VRAM are enough to build quite complex backgrounds. Also, tiles are 16 colors (*) but you've got 4 palettes.
(*) 15+1 common, actually...



Offline PypeBros

  • Jupiter Ace
  • *
    • Posts: 28
    • My Homebrew blog
Reply #54 on: April 06, 2018, 03:02:57 pm
like 4 palettes for sprites + 4 other palettes for BG ?



Offline sverx

  • RBP Member
  • IBM PC
  • *****
    • Posts: 516
  • "Ow!!! What's that ?!?!"
    • My NDS folder
Reply #55 on: April 06, 2018, 03:10:54 pm
like 4 palettes for sprites + 4 other palettes for BG ?

mmm... no.
4 palettes total. Each of them can be used for BG tiles and/or for sprites (but some colors do have special effects...)



Offline PypeBros

  • Jupiter Ace
  • *
    • Posts: 28
    • My Homebrew blog
Reply #56 on: April 06, 2018, 04:26:32 pm
ouch. I'm not sure I have the desired level to convert the pixels of my SchoolZone to such limited rules yet. Not that it makes GameScript-to-68000 machine code less interesting, but it would require a different art set, for sure.



Offline Lobo

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 3119
    • Spitoufs
Reply #57 on: April 06, 2018, 09:43:56 pm
If patience you have, from scratch is the only way to go. :P
You both have seen that 'Tanglewood' which is for SMD/Genesis? That looks quite funky, granted I do notice a lot of repeating tiles and just a few unique ones but clever use of less tiles with some 'trial error arse pain' and planning in advance can do the 'closest thing' to your original idea. The only question is 'how close' are you aiming, sometimes downscaling things creates a completely different thing than what you planned to do and you might not want to compromise.
We've all played some downscaled ports from one platform to another and sometimes the difference is so huge in limitations that it almost feels like there was no point in doing this at all.

I think if one was to jump to some new platform with very specific limits, perhaps the best way would be actually to design a new game around these limitations to learn the tricks of hardware to avoid disappointment, not to mention many hours spent for work that might be better fitting on different platform altogether, Buddha be Blessed. :P


mmm... no.
4 palettes total. Each of them can be used for BG tiles and/or for sprites (but some colors do have special effects...)

Frankly, this is not bad at all, I've seen and worked on worse limits. :P :P



Offline spacefractal

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 4138
Reply #58 on: April 07, 2018, 09:29:46 am
yes, even Spectrum Next have some limits as well. That named game seens quite cool and yes (newer hear that before), well used of tiles and design well around limits to safe so much as possible. Howover the Titan Overdrive demo im named previous also show what the machine also can, even its will far too big to use it in a game.... but its a demo anyway and its on purpose in any demo.

All earlier machine have some sort of limits of course.

The Musician for the RetroBytes Portal Projects.


Offline PypeBros

  • Jupiter Ace
  • *
    • Posts: 28
    • My Homebrew blog
Reply #59 on: April 07, 2018, 10:30:18 am
Oh, I do not doubt I could do something nice and fun within 16-bit limitation. It's just that I couldn't do it as carefree-ly as I do on the DS. Just Bilou's hand would need 4 palettes (2 shades for Bilou, 2 shades for pendats) and same for Bilou's feet. That means I'm left with some 9 'free' colors per palette for everything else. Obviously, I'll have to plan the use of those colors so that I can have Bilou, inkjets, spongebops, structures and books all decently rendered. The game idea revolves around picking an object and carrying it around to create interesting situations. Like you can use a spons as an umbrella against inkjet's droplets. I cannot just swap in/out palettes of "monsters" in such a situation.

So, Yeah it can be done, Yeah, it is still very tempting, but it won't make a game available in short time and it won't make the animation system appealing immediately. I'm better to keep working on the NDS and focus on completing things in "hi-bit", imvho.

Oh, maybe I could swap between white (front, pendat) and lightblue (front, Bilou) to create the in-between used for pendat's rear hand. You see what I mean with "less carefree-ly". I'd like to keep the ability to decide that I need that book to be purple instead of red for whatever gameplay reason (e.g. because the book would collapse) until I'm more confident on my level designer skills.
« Last Edit: April 07, 2018, 11:10:19 am by PypeBros »