nesdev.parodius.com Forum Index nesdev.parodius.com
NES Development and Strangulation Records message boards
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Camp demo 1: Tall Pixel

 
Post new topic   Reply to topic    nesdev.parodius.com Forum Index -> NESdev
View previous topic :: View next topic  
Author Message
tepples



Joined: 19 Sep 2004
Posts: 5824
Location: NE Indiana, USA (NTSC)

PostPosted: Wed Dec 09, 2009 8:42 pm    Post subject: Camp demo 1: Tall Pixel Reply with quote

In the process of developing the project codenamed Camp, I have come up with several proof-of-concept demos. This one is called Tall Pixel. It demonstrates a way to stretch still images vertically by a factor of 3/2, using mixed $2006/$2005 writes and timed code, so that the CHR data for your cut scenes takes 33% less space. Tested on FCEU Karmic and on an NTSC NES + PowerPak.

Tall Pixel (NTSC version)
Download NROM binary and CC65+Python source
Back to top
View user's profile Send private message Visit poster's website AIM Address
tokumaru



Joined: 12 Feb 2005
Posts: 3423
Location: Rio de Janeiro - Brazil

PostPosted: Wed Dec 09, 2009 9:28 pm    Post subject: Reply with quote

Interesting. It probably looks really good on hardware (with my monitor's refresh rate the frame blending isn't perfect).

I don't know if many people are having enough CHR space problems to justify a complex solution like this. Complex because it doesn't look as good with refresh rates other than 60 Hz, and uses timed code specific to NTSC consoles. If it was possible to make it work in PAL or NTSC automatically it would be great.

It is an interesting concept though, and the test screen looks very good. The frame blending created a very pleasing anti-aliasing effect (I know the font itself is anti-aliased, I'm not talking about this).

What's up with the top half of the "l" in "Pixel"? Why's it pink? I know it's a sprite, but why did you make it that color?
Back to top
View user's profile Send private message
tepples



Joined: 19 Sep 2004
Posts: 5824
Location: NE Indiana, USA (NTSC)

PostPosted: Wed Dec 09, 2009 9:50 pm    Post subject: Reply with quote

tokumaru wrote:
I don't know if many people are having enough CHR space problems to justify a complex solution like this.

I am. Camp (deluxe version) has an opening cut scene, but the CHR RAM on its SNROM board has only 6.5 KiB of CHR RAM left after subtracting 96 tiles for text glyphs. I can possibly get it down to 4 or 5 KiB in the ROM using something like the Codemasters codec, but I still need to decompress it for display.

Quote:
Complex because it doesn't look as good with refresh rates other than 60 Hz

As I wrote in the README, I don't have a 50 Hz NES to test with.

Quote:
and uses timed code specific to NTSC consoles. If it was possible to make it work in PAL or NTSC automatically it would be great.

That would be a matter of detecting the PAL NES at boot time and switch to the loops designed for 341/3.2 cycle operation. I can remember Dwedit saying Codemasters games do that, but they fail on Dendy which has the same CPU:PPU ratio as NTSC but more scanlines per frame. So to be compatible with all three variants in one program, we'd need to check for the frame period being close to 312*341/3.2, that is, 33200 to 33300 CPU cycles. This way both 262*341/3 (NTSC) and 312*341/3 (Dendy) are detected as 341/3 systems.

Quote:
What's up with the top half of the "l" in "Pixel"? Why's it pink?


In a real game, the pink part would be drawn either with the behind bit turned on or in a color matching the backdrop.
Back to top
View user's profile Send private message Visit poster's website AIM Address
tokumaru



Joined: 12 Feb 2005
Posts: 3423
Location: Rio de Janeiro - Brazil

PostPosted: Wed Dec 09, 2009 10:39 pm    Post subject: Reply with quote

tepples wrote:
I can possibly get it down to 4 or 5 KiB in the ROM using something like the Codemasters codec, but I still need to decompress it for display.

You know, I tried to implement the variant of it we talked about (more compact color definitions, avoiding some redundant bits, etc). Both encoder (C) and decoder (6502) work fine, but I wasn't able to make the encoder find the optimal block lengths. I used a set of tiles from Bee52 and the result of my encoder was always larger than what their encoder managed to do. I you want to help me out with the encoder we might be able to come up with a good tile compression everyone can use. This is a subject for another thread though, I don't wanna ruin this one.

Quote:
As I wrote in the README, I don't have a 50 Hz NES to test with.

I meant emulators running on computers whose monitors refresh at frequencies other than 60 Hz. In these cases the effect doesn't look so good, and many people use 75 or 85 Hz as their refresh rate, and many people play NES games on their computers. I'm just saying, as I do believe that if we have to favor the console or emulators we should definitely pick the console. We should avoid having to make that choice, but if there's no other way...

Quote:
That would be a matter of detecting the PAL NES at boot time and switch to the loops designed for 341/3.2 cycle operation. I can remember Dwedit saying Codemasters games do that, but they fail on Dendy

Isn't supporting the Dendy like worrying about how the plethora of Famiclones will handle your software? I'm not sure if the Dendy is so noteworthy for us to care specially about it or if it should be considered just another Famiclone which is inaccurate and we don't care about. Do many rusians still have their Dendy's? Wouldn't retro gamers be interested in getting real NES consoles now?

Quote:

U R FUNEH!

Quote:
In a real game, the pink part would be drawn either with the behind bit turned on or in a color matching the backdrop.

Yeah, I was asking why it isn't so in the demo. I'll assume you were using a flashy color for debug purposes and ended up not changing that before releasing this demo and I'll not ask about it again, OK?
Back to top
View user's profile Send private message
Memblers
Site Admin


Joined: 20 Sep 2004
Posts: 2097
Location: Indianapolis

PostPosted: Thu Dec 10, 2009 2:00 pm    Post subject: Reply with quote

It's a neat idea. I've tried something similar, by repeating each line X times. Even stretching it a lot looks pretty good with fonts, but a 1/3rd scaling like this would be interesting to see with some detailed graphics.
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger
tepples



Joined: 19 Sep 2004
Posts: 5824
Location: NE Indiana, USA (NTSC)

PostPosted: Thu Dec 10, 2009 4:50 pm    Post subject: Reply with quote


should look like
Back to top
View user's profile Send private message Visit poster's website AIM Address
Bregalad



Joined: 12 Nov 2004
Posts: 4040
Location: Jongny, VD, Switzerland

PostPosted: Fri Dec 11, 2009 3:15 am    Post subject: Reply with quote

Cool idea, looks great with my notebook's LCD screen, but will probably look crappy flickering on a real TV like Batman's intro.
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
tokumaru



Joined: 12 Feb 2005
Posts: 3423
Location: Rio de Janeiro - Brazil

PostPosted: Fri Dec 11, 2009 7:51 am    Post subject: Reply with quote

Bregalad wrote:
will probably look crappy flickering on a real TV like Batman's intro.

I haven't checked, but this effect is much more subtle than the title screen in Batman. I expect it to look good, even if you can notice it's flickering a bit.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    nesdev.parodius.com Forum Index -> NESdev All times are GMT - 7 Hours
Page 1 of 1

 
Jump to:  
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 vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group