Two impossible effects in Mother?

A place for your artistic side. Discuss techniques and tools for pixel art on the NES, GBC, or similar platforms.

Moderator: Moderators

User avatar
sonder
Posts: 116
Joined: Wed Jun 26, 2013 12:35 pm
Location: Baltimore
Contact:

Re: Two impossible effects in Mother?

Post by sonder »

tepples wrote:If you want to be able to do mosaic everywhere (as on certain SNES games) without the bus masking, then it'd take a quadrupling of CHR ROM size or specialized hardware to queue up CHR RAM rewrites and execute them during dead times in the scanline.
the second idea sounds ... involved. at that stage you might as well move to the SNES :P

what's bus masking though?
sonder
User avatar
rainwarrior
Posts: 8732
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: Two impossible effects in Mother?

Post by rainwarrior »

"Bus masking" was my suggestion that you could get a vertical mosaic by applying a logical AND mask to the CHR-ROM address bus.

For instance, if you AND with %11111111111110 this means every second byte will be redirected to the previous byte. On CHR data this means every second line is a duplicate of the line above it. Mask another bit %11111111111100 and now you're duplicating 4 bytes at a time, etc.

For horizontal you would dupicate data lines instead. Duplicate every second bit in the fetched byte, every fourth bit, etc.. These aren't addressed, though, so instead of "bus masking" it'd be some kind of "multiplexing" operation, I suppose.

Edit: Actually, I guess if you didn't use the internal nametables and used your own on the cartridge, you could apply more masking for the nametable fetches to continue the mosaic beyond the 8x8 tile level?
Last edited by rainwarrior on Wed Oct 30, 2013 10:00 pm, edited 1 time in total.
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Two impossible effects in Mother?

Post by lidnariq »

sonder wrote:what's bus masking though?
What rainwarrior said. Specifically, one could pixelate the Y axis by having an AND or OR gate and three latched bits; something like CHRROM A[0..2] = AND(PPU A[0..2],LATCH0..2).
The X axis would be a much messier transformation; I don't see a way to do it short of a full multiplexer.
User avatar
Bregalad
Posts: 8056
Joined: Fri Nov 12, 2004 2:49 pm
Location: Divonne-les-bains, France

Re: Two impossible effects in Mother?

Post by Bregalad »

Yes, building a mapper that would allow mosaic of sizes 2, 4 and 8 both horizontally and vertically would actually be quite simple !
It's a shame this wasn't added to MMC5 for instance.

This can still easily be done in software (if CHR-RAM), though this will eat up CPU time and VRAM bandwith, or in hardware with CHR-ROM by wasting banks (Mega Man 5 does this). Not as cool as a mapper doing it !

Mosaic of other sizes would be hell of a nightmare to realize, even on a mapper.
Shiru
Posts: 1161
Joined: Sat Jan 23, 2010 11:41 pm

Re: Two impossible effects in Mother?

Post by Shiru »

Considering that modern SRAMs are normally 32K or larger, while a game with CHR RAM not often needs that much at once, extra CHR RAM banks could be used for the mozaic effect.
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Two impossible effects in Mother?

Post by tepples »

If you are animating any CHR RAM tiles, be they background or sprite, that quickly becomes impractical. Writing everything to CHR RAM four times just so that you can turn on mosaic when needed will cut CHR RAM update speed by a factor of four. That's what I meant by the update queue.
Shiru
Posts: 1161
Joined: Sat Jan 23, 2010 11:41 pm

Re: Two impossible effects in Mother?

Post by Shiru »

Not every game needs per-frame CHR RAM updates. One or four time CHR RAM update at start of a level won't make much difference for the player.
Post Reply