#74867 - HyperHacker - Wed Mar 08, 2006 9:26 am
Wondering if the DS might have some features GBA didn't have (or did that I don't know about):
-A graphic mode which offers 4 (or more) scalable backgrounds plus sprites. (Rotation isn't important.) Or even a graphic mode with >4 text layers.
-The ability to 'mask' part of a background. That is, as if you had another background layer overtop of it with several solid black pixels on it, covering the image below, but without actually using a background layer for the mask (still able to use all 4 layers). (See fig 1.)
-Individual tile priority. Example: BG1 is above BG0, but certain tiles of BG0 can appear above BG1 despite this.
-Ability to have both 2D cores work on one screen (and just turn the other off). That is, render whatever image using core B, and use the rendered image as a bitmap in core A. Prefferably at close to 60fps.
-Ability to select a priority for sprites (needn't be on an individual basis, though that'd be nice). That is, sprites can be above some BG layers and below others.
Also, when using tiled modes with 16 colours, you have 16 palettes and can choose which palette each tile uses... Is colour 0 of every palette transparent, or only the first?
fig 1: ASCII example of masking:
Code: |
############
############
###O ###
###|- ###
### \ ###
### ###
############
############ |
The # is a solid black border, the empty part is where the background would show through. (Notice the stickman's left side is covered.) I don't need a lot of fancy patterns, just a border like that. Important thing is that this border is not one of the 4 BG layers. Doesn't matter if it lacks priority; it can cover all 4.)
Thanks. :-)
Subject changed by MOD
#74877 - FluBBa - Wed Mar 08, 2006 1:26 pm
I don't know exactly what features are available on the DS but these are at least available on the GBA:
Masking is probably easiest done with windows for your example. You just enable windows in BGCNTL and then set upper-left/lower right points and which BGs/OBJ that should be enabled inside it outside it.
Sprites have priority to where they should appear in relation to the BGs.
The transparent pixels are in the tiles not in the palette.
_________________
I probably suck, my not is a programmer.
#74884 - nmain - Wed Mar 08, 2006 2:10 pm
-A graphic mode which offers 4 (or more) scalable backgrounds plus sprites. (Rotation isn't important.) Or even a graphic mode with >4 text layers.
No; the most you can get is 4 layers, and at most two of them can be affine. See GBATEK.
-The ability to 'mask' part of a background. That is, as if you had another background layer overtop of it with several solid black pixels on it, covering the image below, but without actually using a background layer for the mask (still able to use all 4 layers). (See fig 1.)
You could do this with windowing.
-Individual tile priority. Example: BG1 is above BG0, but certain tiles of BG0 can appear above BG1 despite this.
No, get a SNES.
-Ability to have both 2D cores work on one screen (and just turn the other off). That is, render whatever image using core B, and use the rendered image as a bitmap in core A. Prefferably at close to 60fps.
I think you can accomplish this with the video capture system.
-Ability to select a priority for sprites (needn't be on an individual basis, though that'd be nice). That is, sprites can be above some BG layers and below others.
GBA can do this even, every sprite has a priority value that determines how it behaves in relation to the BGs.
Also, when using tiled modes with 16 colours, you have 16 palettes and can choose which palette each tile uses... Is colour 0 of every palette transparent, or only the first?
Color 0 of every palette.
#74902 - poslundc - Wed Mar 08, 2006 6:09 pm
In addition to what nmain already said, notable differences between GBA and DS when it comes to 2D:
- DS allows you to use all four planes at once, even if you are using affine backgrounds. But there are still only four of them.
- DS has extended affine modes where one of the BG planes can take on several properties that make them more flexible, such as extended palettes or addressing.
- DS VRAM configurations allow for more background VRAM.
Other than those, the two are very near identical.
With regards to using the capture hardware, it's my understanding that you can only capture 3D with it. This does potentially mean that you could do as much 2D (as billboarded textures) as you can fit into the 3D hardware's limitations. (The captured 3D will still consume a BG plane, and I'm not sure how optimal a VRAM configuration you could come up with.)
Dan.
#74924 - tepples - Wed Mar 08, 2006 10:09 pm
Which system are you trying to emulate?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#74950 - HyperHacker - Thu Mar 09, 2006 1:47 am
Heh, you guessed? :-p Thought I'd try my hand at a GBC emulator. Figure it's more fun/educational to write my own than just port Goomba. (Not all of these features are something I'd use in an emulator, but I figured I'd ask anyway.)
#74959 - tepples - Thu Mar 09, 2006 2:57 am
If you're up to it, I'd suggest trying to make a full software rendering engine on the ARM9, even if just as a proof of concept.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#74980 - HyperHacker - Thu Mar 09, 2006 4:40 am
You mean rendering GBC graphics? That's the first step.
#75051 - tepples - Thu Mar 09, 2006 8:59 pm
Yes, but "full software" meaning that the CPU handles each pixel instead of delegating to the native 2D hardware the way PocketNES and Goomba Color do.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#75079 - HyperHacker - Fri Mar 10, 2006 12:09 am
I thought about that, but I can't see any advantage. I already have a simple, buggy PC version doing that, and some full-software rendering of other things (read: everything I've made on DS so far just uses one bitmapped layer), so it's not like I'd learn much from it.
#75179 - tepples - Fri Mar 10, 2006 8:43 pm
Full software rendering into a Nintendo DS extended rotation background would make it much easier to do hardware scaling by a factor of 4/3 (which you would need for GBC to DS full screen height), as you could just α-Lerp it one way and PocketNES style flicker-scale it the other way.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#75318 - HyperHacker - Sun Mar 12, 2006 4:22 am
Interesting, but is scaling necessary? The GBC is a mere 160x144, so it fits on the screen nicely. A SuperGB border, or just a bitmap for non-SGB games, would probably fill up the rest nicely (and I don't think people will care much if it gets clipped a bit).
#75319 - tepples - Sun Mar 12, 2006 4:34 am
HyperHacker wrote: |
Interesting, but is scaling necessary? |
PSP fanboys would probably say it is. GBC emulators for PSP render into a 160x144 pixel texture and then upscale to 320x272 using the PSP's 3D hardware (which supports bilinear filtering). Plus you will eventually need software rendering to do mid-scanline raster effects such as the Demotronic effect, or even to get all 8 layers lined up with mid-tile-row raster effects.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#75321 - HyperHacker - Sun Mar 12, 2006 4:52 am
I've never seen this Demotronic effect... could you describe it? GBC can't really do much with VRAM mid-scanline.
#75322 - tepples - Sun Mar 12, 2006 5:14 am
The GBC demo titled Demotronic draws the 3D projection of the interior of a vertical cylinder by using mid-scanline writes to the vertical scrolling registers.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#75323 - HyperHacker - Sun Mar 12, 2006 5:18 am
Well shoot. I didn't know you could even do that. ^_^;
Though I still think using the 2D backgrounds and sprites provided by hardware would be faster... guess I'll just have to try both.
#76045 - crossraleigh - Fri Mar 17, 2006 10:55 pm
Is there any emulator that Demotronic will run on?
#76047 - tepples - Fri Mar 17, 2006 10:57 pm
KiGB is thought to run Demotronic perfectly. It makes VBA look like Nesticle.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.