It is currently Wed Oct 18, 2017 6:56 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 95 posts ]  Go to page 1, 2, 3, 4, 5 ... 7  Next
Author Message
PostPosted: Fri Jan 07, 2011 1:28 am 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2962
Location: Tampere, Finland
Image

Some time ago I wrote a tool in C# to convert arbitrary images to be displayed in NES demos etc. I thought I'd share some of the images I've converted using it (most found from the interwebs). The tool isn't completely automatic, it requires preprocessing in Photoshop/some other image editor.

The above image was captured from Nestopia with NTSC filter turned on, although I had to manually blend the "interlace" frames together in Photoshop because GIF can't animate fast enough. It's pretty close anyways.

The images are "bitmapped", i.e. CHR bank is switched 3 times while rendering. Nametable is also switched every 8 scanlines for 16x8 attribute area. Sprites are overlayed on top for more detail, with varying results. Also (in some images) a different image is displayed every two frames for bigger (pseudo)resolution. Total amount of data per image is about 20KB, twice that for interlaced ones. Some of my personal favourites are "cry", "hui", "hui2", "kompovoittaja", "koopa", "luut", "testi" and "woo". "testi" is special, it has slower flicker rate to give it a 3D feel.

There are 35 images in the pack. Nestopia is preferred. Some images are NSFW. :oops:

Download: http://kkfos.aspekt.fi/downloads/bunch- ... l-1-v2.zip

EDIT: version 2 link updated


Last edited by thefox on Mon Jan 10, 2011 10:01 am, edited 2 times in total.

Top
 Profile  
 
 Post subject:
PostPosted: Fri Jan 07, 2011 2:23 am 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3192
Location: Mountain View, CA, USA
I should note that the ROMs when loaded in Nestopia with its Region option set to "Auto" (the default) do not appear to work correctly -- they appear to resort to NTSC. Forcing PAL in the emulator fixes it.

The problem is that the header on the ROMs is incorrect. Taken from angel2.nes, file offset 0:

Code:
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
-------------------------------------------------------------------
4E 45 53 1A 08 08 40 00 00 00 00 00 00 00 00 00    NES...@.........
-------------------------------------------------------------------
                           ^^

Byte 9, as shown above, is zero, which means NTSC. Set this to 0x01 (bit 0 = 1) to indicate PAL. Doing so fixes the problem. File format documentation is available.

Please fix this in all of your ROMs and remake the .zip file. Thanks!

EDIT: The Famitracker playback code apparently automatically detects an NTSC or PAL console; possibly you could use the same technique to ensure that the ROMs work on both regions?


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jan 07, 2011 2:50 am 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2962
Location: Tampere, Finland
koitsu wrote:
I should note that the ROMs when loaded in Nestopia with its Region option set to "Auto" (the default) do not appear to work correctly -- they appear to resort to NTSC. Forcing PAL in the emulator fixes it.

Thanks, I didn't know Nestopia checks (and honors) that flag. Not going to update the zip right now though. :)

Quote:
EDIT: The Famitracker playback code apparently automatically detects an NTSC or PAL console; possibly you could use the same technique to ensure that the ROMs work on both regions?

Yeah I'll probably do that when I get around to polishing the code. Pornotracker iNES player does the same.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jan 07, 2011 10:32 am 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7230
Location: Chexbres, VD, Switzerland
Well I see your passion for girls is still as intense. (and 60's supposedly herotic stuff isn't my thing but oh well everyone likes different things)

The quality of images is really breathtaking ! It remembers me a C64 utility that was called Project One (if I remember well....) that could convert any pic to be displed on the C64, and it was similar. I worked also wonder with hentai-ish pics, not so well with real pics.

Why are some pics flicering (well a good half of them actually) ? I prefer the still ones. Are they supposed to be interlaced ? If so it'll only work on modern displays (like mine) but then you have 1/2 chances of having lines reversed, how can you prevent that ?

Of if they aren't supposed to be interlaced, but are supposed to average the colors, then I beg you to give up this idea. Batman's intro looks horrible on all displays I tried it on (interlaced and not, emulated and not), I don't want this error to be repeated.

But yeah the quality is really awesome ! Hard to imagine you had to work with the limiations of the NES, which are complex to handle, as opposed to the limitatoins of the C64 which doesn't have this attribute table thing.

_________________
Life is complex: it has both real and imaginary components.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jan 07, 2011 11:04 am 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2962
Location: Tampere, Finland
Bregalad wrote:
Well I see your passion for girls is still as intense.

Haha.. what can I say. :twisted:

Quote:
(and 60's supposedly herotic stuff isn't my thing but oh well everyone likes different things)

60's where? :)

Quote:
The quality of images is really breathtaking ! It remembers me a C64 utility that was called Project One (if I remember well....) that could convert any pic to be displed on the C64, and it was similar. I worked also wonder with hentai-ish pics, not so well with real pics.

Thanks! I also think the result are decent. I've also used Project One (trivia: it's called that because it's made in Visual Basic and the default project name is Project1 :) ).

Quote:
Why are some pics flicering (well a good half of them actually) ? I prefer the still ones. Are they supposed to be interlaced ? If so it'll only work on modern displays (like mine) but then you have 1/2 chances of having lines reversed, how can you prevent that ?

Of if they aren't supposed to be interlaced, but are supposed to average the colors, then I beg you to give up this idea. Batman's intro looks horrible on all displays I tried it on (interlaced and not, emulated and not), I don't want this error to be repeated.

Yeah it's supposed to average the colors, there's no way to combat that 50%/50% problem to display a real 256x480 interlaced image and even then, like you said, it would only work on modern displays.

I was aiming for "average the colors" with flickering (I have source images which are 512x240 or 256x480)... so it basically simulates resampling 512x240 or 256x480 image to 256x240. That's what I mean with "pseudo resolution". Personally I like the effect, but I guess it's not for everybody.

I think Batman is little bit different though, in most of these images the flicker effect is quite subtle (large pixel areas usually stay static) whereas in Batman it flickers between two completely different screens. I'm not fan of that intro either.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jan 07, 2011 12:34 pm 
Offline
User avatar

Joined: Thu Jan 03, 2008 1:48 pm
Posts: 540
thefox: :D

Some of my personal favorites are kameli, kompovoittaja, luut, testi (of course), tubak, and woo. Very beautiful stuff.

Now this is all very beautiful, and I'm pretty sure you might have considered this idea, but as a challenge do you think you would be able to pull off a water ripple effect with the dithering? Maybe you can find an image of someone looking at their reflection in a puddle or something.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jan 07, 2011 2:20 pm 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7230
Location: Chexbres, VD, Switzerland
Well, I think one should never make something blinking if it's not supposed to flicker.

For example, if your hero is invincible after getting hit, make him flicker. If you want to add a cool effect to animated fire, make it flicker. But, by all means, if you want something to be transparent or some way to average color, DO NOT MAKE THEM FLICKER.
This is the global consensus, no matter if it's still screens or wathever. I mentionned Batman's intro, but there is also the water area in Castlevania 3, which are the same problem.
Konami throught "well we'll make Trevor's leg's flickering so that the color will average, and they'll look like they're in water". NO THEY DON'T they look like crappy filtering legs (emulator / old display) or like horizontal vermicelli (modern display with interlacing).

Also I tested them on my new monitor, and apparently it switches the even/odd interlacing every half second or so for some reason, so it looks horrible, it flickers at about 1 Hz, which is even worse.

The pics that doesn use flickering, such as Angel 2, Joku, Teen and Teen2 looks really amazing.

The individual frames in most flickering images looks really good by themselves, but you have to pause emulation to really admire the pic.

When the flickering is very slight, such as in "retarded", it might actually look decent. The worst is as seen in "cry", there is a lot of flickering full areas which looks just horrible.

Quote:
60's where?

Well some of those pics are just 60's old-fashioned (or it might be 70's, to me it's the same).

_________________
Life is complex: it has both real and imaginary components.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jan 07, 2011 2:34 pm 
Offline
Formerly 65024U

Joined: Sat Mar 27, 2010 12:57 pm
Posts: 2257
Agreed, flicker is SO annoying. (I paused it on FCEUXD. Couldn't take it.) but other then thats, it's awesome! The NESS one was terrific! :D Awesome tool and cool stuff. :D


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jan 07, 2011 2:39 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10056
Location: Rio de Janeiro - Brazil
Unfortunately, flickering doesn't work as well as we'd like. The result is too distracting and hard to look at, killing all the beauty of the images.

Still, most of these images look nice, even though flickering at 50Hz is even worse than flickering at 60Hz. The tricks with the vertical stripes are very nice, and more suited to actual games IMO.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jan 07, 2011 5:40 pm 
Offline
User avatar

Joined: Fri Nov 19, 2004 7:35 pm
Posts: 3943
If you're running it on an emulator on a laptop display, the flicker looks good from LCD blur. If you're running it on a NES connected to a HDTV, there is real interlacing, hopefully not inverted.

_________________
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jan 08, 2011 12:14 am 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2962
Location: Tampere, Finland
Thanks for all the comments.

B00daW wrote:
Now this is all very beautiful, and I'm pretty sure you might have considered this idea, but as a challenge do you think you would be able to pull off a water ripple effect with the dithering? Maybe you can find an image of someone looking at their reflection in a puddle or something.

Other than converting each animation frame separately (at 20KB a pop) can't really be done. Would still make a funny tech demo so I might give it a go if I find a good animation. ~10 or so frames should make a pretty good repetitive animation. :)

tokumaru wrote:
Unfortunately, flickering doesn't work as well as we'd like. The result is too distracting and hard to look at, killing all the beauty of the images.

Still, most of these images look nice, even though flickering at 50Hz is even worse than flickering at 60Hz. The tricks with the vertical stripes are very nice, and more suited to actual games IMO.

Yeah, some images work better than others, much of it is up to randomness (and tweaking the parameters). The two flicker/interlace frames are converted separately without knowledge of each other so sometimes large areas might receive completely different colors, so it doesn't always look that great.

Oh well, I was expecting that the flicker would split opinions. :)


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jan 08, 2011 9:57 am 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7230
Location: Chexbres, VD, Switzerland
Quote:
If you're running it on an emulator on a laptop display, the flicker looks good from LCD blur.

You probably have a quite old laptom then. Mine is a Lenovo Think Pad T400 bought in 2009, and it doesn't have any blur at all.

_________________
Life is complex: it has both real and imaginary components.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jan 08, 2011 10:02 am 
Offline
User avatar

Joined: Fri Nov 19, 2004 7:35 pm
Posts: 3943
I only get limited LCD blur when the picture is two frames perfectly alternating at 60FPS. When you flicker Red and Blue on the screen, it looks like solid purple.

_________________
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jan 08, 2011 10:48 am 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7230
Location: Chexbres, VD, Switzerland
Well, I tested Rad Racer, to see what it would look like. When you turn "3D glasses mode", outside of the road the blank area flickers between solid red and solid green, so that's a good test :

- PAL : It looks like very flickering, the colors definitely don't blend
- NTSC : The colors blends pretty much OK, but you can see some interference going slowly downwards. Likely due to the difference between NES's almost 60Hz refresh and my 60Hz refresh.

My laptop screen only supports 60Hz refresh, so I can't change that. On my old CRT I could put it at 72 Hz, but I can't any longer.

EDIT : Oh in fact it supports 60Hz and 50 Hz. So I put it in 50Hz mode, and MAN THE FLICKERING IMAGES LOOKS RIDICULOUSLY BETTER. The colors blend together perfectly, you can still see that downwards interference.
Cry still looks bad (visible flickering on some colors + blocky), but the others looks amazing, with more colors.

So yeah this flickering method works only if the host's screen refresh rate is the same as the emulated NES.

To bad I'm afraid on real HW this won't work as well.

_________________
Life is complex: it has both real and imaginary components.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 09, 2011 9:41 pm 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2962
Location: Tampere, Finland
I updated the code to be both PAL/NTSC compatible with automatic detection, here's an example: http://thefox.aspekt.fi/nes/hui-ntsc.nes. I'll see about updating the rest of the images later. I don't have an NTSC console so I couldn't test this on real NES, so there might be attribute glitches. If somebody can test it for me I'd be grateful, altho it might be hard to spot the glitches on that specific image.

Bregalad wrote:
To bad I'm afraid on real HW this won't work as well.

Why is that? I don't think it should look too bad on a CRT. It does look like shit on my HDTV but that is to be expected when it treats the signal as 480i. Need to get me that upscaler...


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 95 posts ]  Go to page 1, 2, 3, 4, 5 ... 7  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group