Rom experiment with Zelda SNES to NES

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Rom experiment with Zelda SNES to NES
by on (#102337)
Hello everybody.

Sorry, my english is very bad. I am spanish.

Some time ago I was planning a small ROM that attempt to recreate the SNES Zelda on the NES.

The result was this: http://www.mediafire.com/?egog9jl8hfk5dxi

Here you have a screenshot:

Image

Image

Image

I just wanted to explain that I tried to gather two layers and the result was very good. I wish we could get an entire game has to make Zelda 3

Thanks
Re: Rom experiment with Zelda SNES to NES
by on (#102339)
I'll try to translate the idea of my message in the bottom of this. I took 2 classes of Spanish, heh. :)

Looks okay to me. Does the NES have those colors used in the Zelda sprite? Were you the one who made that ROM with Zelda 3 on the main screen and then went to a somewhat game-like screen with a movable Link?

¡Va bien a mí! ¿Lo hace tener los colores a los NES? ¿Hiciste realizar un ROM con "Zelda III" en la patalla de título y lo tuvo uno otro patalla con Link movimientado?

¡Mí español es no bueno, pero me gusta hacer una tentativa! ¡Tiene uno buena día! :)
Re: Rom experiment with Zelda SNES to NES
by on (#102341)
I have never tried it is to do that for lack of time, but I will try it.

Nunca he probado ha hacer eso por falta de tiempo, pero lo intentaré.

:-)
Re: Rom experiment with Zelda SNES to NES
by on (#102342)
It's easy to make great looking sprites using 2 layers, however the price to pay is that it will eat up a lot of the 8 sprites per line limitation. It also, obviously, requires 2 palettes to be always reserved for the hero, leaving only 2 of them to be potentially "customizable" for whatever else. Note that many games worked with 4 hardwired sprites palettes during the whole game (Castlevania, Battletoads, Battletoads & Double Dragon) and this worked well.
Re: Rom experiment with Zelda SNES to NES
by on (#102359)
Hard-wired palettes can be effective, but if not done carefully will be very obvious (like in the Zelda games). I had no idea that the Battle Toads games did this, so they must have executed very well :D
Re: Rom experiment with Zelda SNES to NES
by on (#102364)
Battletoads doesn't do that, exactly.

It has 3 palettes that are always used during gameplay, and one that changes from moment to moment depending on the enemies.

- Green for player 1.
- Orange for player 2.
- Yellow/white for all items and player faces.
- Changes, usually a monochromatic palette for the current enemy.

Some enemies will use one of the 3 fixed palettes (walkers use yellow, crows use orange, etc.) but most use the fourth palette (red pigs, grey pigs, blue flying zappers, etc.)

This is quite similar to the Mega Man games, which tend to have two fixed palettes (for the player and items), and two for enemies on the current screen.
Re: Rom experiment with Zelda SNES to NES
by on (#102374)
Hi Diskover! I liked your Zelda demo a lot. :)
Just a suggestion: Why don't you create a regular 3-color sprite and add flickering to it?
To be honest I have no idea if it's hard to implement this to a playable character (all my flickering tests are static screens made with thefox's NES image converter).

I've made a quick test showing how Link could look with this effect:
Image

It's far from perfect but it can be an alternative way to save precious palette slots.
P.S.: Thanks again for your nice comment on my blog! :)
Re: Rom experiment with Zelda SNES to NES
by on (#102375)
Flicker would be pretty much unacceptable IMO. The best way to save palettes is to move to the SNES/Genny. :P
Re: Rom experiment with Zelda SNES to NES
by on (#102379)
3gengames wrote:
Flicker would be pretty much unacceptable IMO. The best way to save palettes is to move to the SNES/Genny. :P


With all my respect but moving a project called "SNES Zelda to NES" to Mega Drive or Super NES sounds a little bit more unacceptable than flickering.
Re: Rom experiment with Zelda SNES to NES
by on (#102390)
One more alternative:
Megaman style! Overlaid sprites are limited to 8 pixels wide.
Attachment:
megaman_style_2.png
megaman_style_2.png [ 940 Bytes | Viewed 6435 times ]
Re: Rom experiment with Zelda SNES to NES
by on (#102395)
Macbee wrote:
Hi Diskover! I liked your Zelda demo a lot. :)
Just a suggestion: Why don't you create a regular 3-color sprite and add flickering to it?
To be honest I have no idea if it's hard to implement this to a playable character (all my flickering tests are static screens made with thefox's NES image converter).

I've made a quick test showing how Link could look with this effect:
Image

It's far from perfect but it can be an alternative way to save precious palette slots.


Also it is a very good idea.

Only do you change the palette or alternate sprites?

In a TV set is the blinking evident? Only I have proved it in emulator and it seems that it is fine.


También es muy buena idea.

¿Solo cambias la paleta o alternas sprites?

¿En un televisor se nota el parpadeo? Solo lo he probado en emulador y parece que va bien.


Macbee wrote:
P.S.: Thanks again for your nice comment on my blog! :)


De nada ;-)

Dwedit wrote:
One more alternative:
Megaman style! Overlaid sprites are limited to 8 pixels wide.

Image


Also I thought about it.

How are you ROM is experimental, I tried with the sprite of entire Link.

I have the first version of Link with 4 colors ... but it was very ugly.

Image

Image
Re: Rom experiment with Zelda SNES to NES
by on (#102397)
Diskover wrote:
Only do you change the palette or alternate sprites?

Actually, the palette remains the same, but the graphics change to alternate the dithering patterns.

Quote:
In a TV set is the blinking evident? Only I have proved it in emulator and it seems that it is fine.

On CRT monitors the flickering is much more evident. I'm of the opinion that this effect is good for demos and such, but its use in games is limited. Look at the ropes in the second stage of Battletoads (or even as the toads enter the first stage): different sections of the ropes are drawn each frame, but the final effect isn't a perfectly continuous line.

Dwedit wrote:
Megaman style! Overlaid sprites are limited to 8 pixels wide.

This is a good alternative., specially if at least one of the palettes can be used on other sprites as well.
Re: Rom experiment with Zelda SNES to NES
by on (#102414)
Note that many modern HDTVs cannot handle 240p well, and will turn anything that flickers into a mess of alternating scanlines. An effect like this would likely look very bad.
Re: Rom experiment with Zelda SNES to NES
by on (#102418)
BMF54123 wrote:
Note that many modern HDTVs cannot handle 240p well, and will turn anything that flickers into a mess of alternating scanlines. An effect like this would likely look very bad.

Yes this is very unfortunate. Then again, you could also exploit this for extra vertical resolution. :twisted: (Unfortunately the fact that it'd only work on certain HDTVs makes it pretty useless, although if done properly, it might look OK on CRTs etc as well.)
Re: Rom experiment with Zelda SNES to NES
by on (#102421)
Quote:
In a TV set is the blinking evident?

On an old CRT (cathode ray tube) monitor, yes it is very evident and will look horrible. Especially in PAL (50 Hz) regions. I have never tested a 60 Hz CRT, but it is probably a bit less worse, but still bad. Someone from america or japan could confirm this.

However on modern flat-screen TVs, what BMF54123 said will happen : The lines will alternate, looking like smaller pixels. It's a bit hard to explain unless you see it.
A good example for this is the airship's shadow in Final Fantasy games which flickers at 60 Hz. On my new screen, it looked like the shadow was solid, but with horizontal lines half-a-pixel height. Also they would slowly alternate between the upper and lower half of the pixel, making it look even worse. I have no logical explanation for why it is like this, it just happens to be like this.

My vote would be for dwedit's solution, it really looks almost as good as a true two-layer sprite, and is only one sprite more horizontally, for a total of 3 sprites, instead of being a total of 4 sprites, which makes a huge difference in reagard to the 8-sprite per line limitation.

Also, Diskover, I should congratulate you for handling sprites the correct way. Usually, newcomers tries to use the value inside the OAM as being used like variables for the sprite's position, which is terrible practice.
Re: Rom experiment with Zelda SNES to NES
by on (#102426)
Bregalad wrote:
A good example for this is the airship's shadow in Final Fantasy games which flickers at 60 Hz. On my new screen, it looked like the shadow was solid, but with horizontal lines half-a-pixel height. Also they would slowly alternate between the upper and lower half of the pixel, making it look even worse.

The TV probably samples at at 59.94 Hz, which is the standard NTSC field rate and slightly slower than the 60.10 Hz of the NES. Did it change about once every 6.3 seconds?
Re: Rom experiment with Zelda SNES to NES
by on (#102446)
As for the flickering: the idea only works well when the shades of color are similar. Considering here we're talking about mixing a pale color with black... yeah, that's going to be noticeable just about everywhere, unless your framerate is in like the thousands frames per second or something =P It's better to leave it for smooth gradients only.

Also there's the issue that even then the colors don't mix to exactly half each: bright colors are going to impose themselves way moreso than dark colors. This means that if you were to do flickering between black and white, the result wouldn't be 50% gray, but more like around 70% gray.

Finally: let's not forget the dot crawl shenanigans =P The effect is also severely affected by this.
Re: Rom experiment with Zelda SNES to NES
by on (#102453)
Sik wrote:
Also there's the issue that even then the colors don't mix to exactly half each: bright colors are going to impose themselves way moreso than dark colors. This means that if you were to do flickering between black and white, the result wouldn't be 50% gray, but more like around 70% gray.

This is because display gamma is not linear. Two flickered frames are added in a domain close to that of power, and at a given impedance, power is the square of voltage (or in practice, a slightly higher exponent due to legacy CRT phosphor response curves). So flickering 0% voltage (0% power) and 100% voltage (100% power) gives 50% power, which corresponds to about 71% voltage.

Quote:
Finally: let's not forget the dot crawl shenanigans =P The effect is also severely affected by this.

Yeah, when I tried flickering in one of my own ROMs to get more colors, I had to force the alternate dot crawl pattern.
Re: Rom experiment with Zelda SNES to NES
by on (#102457)
The alternate dot crawl pattern is indeed better for blending frames, as long as the objects being blended aren't moving.
Re: Rom experiment with Zelda SNES to NES
by on (#102465)
Dwedit wrote:
One more alternative:
Megaman style! Overlaid sprites are limited to 8 pixels wide.
Attachment:
megaman_style_2.png


I guess this is the best solution so far! :)
Re: Rom experiment with Zelda SNES to NES
by on (#102571)
The Rockman-style face overlay looks like the best compromise between appearance and sprite efficiency. A single face-tile shouldn't cause too many problems with other sprites on the same scanline.
Re: Rom experiment with Zelda SNES to NES
by on (#102609)
tepples wrote:
The TV probably samples at at 59.94 Hz, which is the standard NTSC field rate and slightly slower than the 60.10 Hz of the NES. Did it change about once every 6.3 seconds?

No.
Apparently if the entiere screen rests still, the half-dots rests still too. However if something else moves (like scrolling, horizontal or vertical), the shadow can be either entierely black, entierely invisible or any mix of those combinations. It's really hard to describes.