Page 1 of 2

Mode 1 12x12 trick?

Posted: Fri Apr 15, 2016 2:44 pm
by Nicole
I noticed that in the Limitations article on the nesdev wiki, there's a casual mention of a "12x12 trick in mode 1", but I'm not sure what this could be referring to. Trying to search for information about it isn't yielding any results either.

I can only imagine it has something to do with the mode 1 priority bit, since as far as I know mode 1 isn't special in any other way. However, I can't see how this translates to 12x12 tiles.

Re: Mode 1 12x12 trick?

Posted: Fri Apr 15, 2016 2:52 pm
by tepples
12x12 refers to the display mode used in Puyo Pop and Luminesweeper for Game Boy Advance. It works in mode 1 on Super NES and modes 0 and 1 on GBA.
  • Set layers 1 and 2 to point at the same VRAM location.
  • Set horizontal scroll for layers 1 and 2 to 12 pixels apart.
  • Draw even columns of the playfield to layer 1 and odd columns to layer 2, and put everything over a 2bpp (SNES) or 4bpp (GBA) background in layer 3.
  • Use HDMA to change the vertical scroll every 12 lines to skip four lines.
Image
Shinin', shinin', shinin'...

Re: Mode 1 12x12 trick?

Posted: Fri Apr 15, 2016 3:06 pm
by Nicole
Ahh, for some reason I didn't think about the individual scrolling of each layer. That would explain it.

Re: Mode 1 12x12 trick?

Posted: Fri Apr 15, 2016 3:16 pm
by tepples
Zoop for Super NES uses a completely different trick to get 12-pixel-wide background tiles, using software compositing onto a big 8bpp bitmap in mode 3. This allows more detail in the backdrop than 2bpp, but there can't be quite as much movement because of the overhead of re-compositing and DMAing in tiles. I've occasionally seen updates lag in Zoop.

Re: Mode 1 12x12 trick?

Posted: Fri Apr 15, 2016 5:51 pm
by bazz
tepples wrote:Zoop for Super NES uses a completely different trick to get 12-pixel-wide background tiles, using software compositing onto a big 8bpp bitmap in mode 3. This allows more detail in the backdrop than 2bpp, but there can't be quite as much movement because of the overhead of re-compositing and DMAing in tiles. I've occasionally seen updates lag in Zoop.
HAha Zoop. I remember being a little boy and seeing those crazy commercials **that somehow got me to want to play**. I remember renting it from the local video store "Maximum Video" and ... meh.. lol.

Commercial 1
Commercial 2

I remember liking these commercials but I must say .. They are freaking weird looking back!!!

Re: Mode 1 12x12 trick?

Posted: Fri Apr 15, 2016 6:36 pm
by psycopathicteen
Has 12x12 tiles ever been used in a platforming game? The closest I can think of is Kirby's Super Star, that uses 24x24 metatiles.

Re: Mode 1 12x12 trick?

Posted: Fri Apr 15, 2016 6:49 pm
by Nicole
I'd be surprised if it had been, at least with the first method; you end up sacrificing a whole BG layer, and burn some extra VRAM space to pad the 12x12 tiles to 16x16. KSS on the other hand is just three by three 8x8 tiles.

It's fine for puzzle games, but the tradeoff's probably a bit iffy for more complex games.

Re: Mode 1 12x12 trick?

Posted: Fri Apr 15, 2016 6:50 pm
by tokumaru
Wasn't that Kirby's Dreamland 3? Or both?

Re: Mode 1 12x12 trick?

Posted: Fri Apr 15, 2016 6:55 pm
by Nicole
KDL3 is 16x16.

Re: Mode 1 12x12 trick?

Posted: Fri Apr 15, 2016 6:59 pm
by tokumaru
You're right! I'm remembering things all wrong!

Re: Mode 1 12x12 trick?

Posted: Fri Apr 15, 2016 8:41 pm
by psycopathicteen
It can do it with a single 4bpp bg layer if:

1) Each pair of side by side "tiles" share the same palette.
2) You designate 11*32=352 tile patterns for dynamic loading. Only 1/3 of the tiles overlap two different tiles.
3) You DMA 1kB, every time it scrolls 2 fake tiles, or 3 real ones.

Re: Mode 1 12x12 trick?

Posted: Fri Apr 15, 2016 10:15 pm
by Sik
psycopathicteen wrote:Has 12x12 tiles ever been used in a platforming game? The closest I can think of is Kirby's Super Star, that uses 24x24 metatiles.
The Sonic Advance games used 96×96 from what I heard (to account for the lower resolution compared to the MD games) but that still can be made out of 8×8 tiles, really.

Re: Mode 1 12x12 trick?

Posted: Sat Apr 16, 2016 8:08 am
by Drew Sebastino
I don't think really any game does this that's not a puzzle game, because of the aforementioned restraints. However, I'd really like to see a game use the same sort of concept vertically for smaller than 8x8 blocks, and you'd change the tilemap also using HDMA if the blocks are less than 4 pixels tall. I bet you could make a 3bpp looking BG3 if you have 8x2 blocks. (Ofcourse, you can change more than just the palette. 8x1 would be better of course, but you'd need 4 512 pixel tall tilemaps... I imagine that's also a lot of space in VRAM.)

Re: Mode 1 12x12 trick?

Posted: Sat Apr 16, 2016 12:03 pm
by tokumaru
I find it really odd that games like Kirby's Super Star and Sonic Advance, which rely a lot on scrolling, have works built from blocks whose dimensions are not powers of two, because rendering scrolling playfields and colliding with maps are much simpler tasks when you can mask and/or shift bits. Do these games use actual division to access their level maps?

Re: Mode 1 12x12 trick?

Posted: Sat Apr 16, 2016 12:18 pm
by Drew Sebastino
Well, both games have hardware that natively supports division... (Doesn't the SA-1 also have division registers?) It's always possible that they're still checking collisions in with 8x8 or 16x16 blocks in those blocks.