My metatile engine

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems. See the NESdev wiki for more information.

Moderator: Moderators

Post Reply
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

My metatile engine

Post by tepples »

I've decided to use 32x16 pixel metatiles for my game. Do these background graphics look god-awful, or do they look OK for a start? And does this ROM (mapper: NROM-128) work on NES hardware?

ROM: http://pics.pineight.com/nes/meta32.zip - tested on recent fceu and nintendulator
(edit: fixed 404)

Screenshot (using GIMP filters to fake NTSC distortion):
Image
Roth
Posts: 401
Joined: Wed Aug 03, 2005 3:15 pm
Contact:

Post by Roth »

I think they look pretty good man. The filter you put on that image is a bit extreme :P I guess it will really depend on how your sprites will look as well. I'm guessing that you're asking if it's too blurry or something? If so, it's noticeable because it looks different from other games, but it doesn't look bad. If the background is what you're going to use as a building block, it's a great start.
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

Roth wrote:I think they look pretty good man. [...] If the background is what you're going to use as a building block, it's a great start.
Thanks.
The filter you put on that image is a bit extreme :P [...] I'm guessing that you're asking if it's too blurry or something?
That's the ghetto TV emulator. Here's how I did it in GIMP, and you could probably even automate it with a bit of Script-Fu:
  1. Take fce ultra tv image (256x224 assuming nominal NTSC NES overscan).
  2. Scale to 512x448 (nearest neighbor) to simulate NES dot clock rate.
  3. Pad to 558x448 to simulate full width of NTSC scanline.
  4. Filters > Distorts > Video, additive rotated, to simulate NTSC encoder.
  5. Convolve with [0 1 1 1 0] to simulate NTSC decoder.
  6. Scale to height=224 (linear) and back to height=448 (nearest neighbor) to simulate interframe blending.
  7. Scale to 640x448 (cubic) and crop to 588x448 to simulate aspect ratio.
Next goal: figuring out what I want sprites to do in my demo and then designing an appropriate data structure for the sprites. The 6502 does prefer structure-of-arrays over array-of-structures.
Zack S
Posts: 55
Joined: Mon Jan 02, 2006 12:45 am
Location: Orlando, FL

Post by Zack S »

I think it looks fine, better than half the licensed games out there. Keep up the good work.
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru »

Cooool! Platform engine! =D You all know I love those. Looks nice, man. I'd say it was a good call on the 32x16 metatiles, if you're using vertical mirroring. You'll be able so set the attributes much more easily, whether you're scrolling horizontally or vertically, as you'll only be working with attribute nibbles. You know, it's always either the top nibble or the lower nibble. Good call.
User avatar
Bregalad
Posts: 8056
Joined: Fri Nov 12, 2004 2:49 pm
Location: Divonne-les-bains, France

Post by Bregalad »

tokumaru wrote:I'd say it was a good call on the 32x16 metatiles, if you're using vertical mirroring. You'll be able so set the attributes much more easily, whether you're scrolling horizontally or vertically, as you'll only be working with attribute nibbles
That's pretty much how the game I'm on works, even if it uses 32x32 metatiles. It splits attributes in two rows, but not in two colunms. It is simpler, and still decent.
Useless, lumbering half-wits don't scare us.
Post Reply