pouët.net

Teen Dreams by noice [web]
screenshot added by Sdw on 2011-03-06 18:35:02
platform :
type :
release date : march 2011
  • rulez 17
  • is ok 3
  • sucks 0
popularity : 0%
 0%
  • rulez 0.85
alltime top: #5823
added on the 2011-03-06 18:35:02 by Sdw Sdw

popularity helper

increase the popularity of this prod by spreading this URL:

or via: facebook twitter pinterest tumblr

comments

Nice, especially the "Big Fun" cover in the second part.
rulez added on the 2011-03-06 21:38:15 by Gmitts Gmitts
I enjoyed this. I don't mind if it's oldschool as long as the screens and motion look good. And they show.
rulez added on the 2011-03-06 23:09:47 by Optimus Optimus
Little short, but what's shown is the usual noice quality. Thumb up.
rulez added on the 2011-03-07 08:40:45 by shock__ shock__
We share the same dreams ;-)
rulez added on the 2011-03-07 10:17:07 by JAC! JAC!
Cool!
rulez added on the 2011-03-07 10:41:42 by Emod Emod
Kind of cute
rulez added on the 2011-03-07 10:45:07 by britelite britelite
very nice! the old times, again! yes!
rulez added on the 2011-03-07 20:31:04 by mad mad
world record!
rulez added on the 2011-03-07 20:43:16 by Alpha C Alpha C
nice!
rulez added on the 2011-03-07 21:14:36 by malmix malmix
breaking a world record!
rulez added on the 2011-03-10 21:18:08 by rudi rudi
Video please. :)
added on the 2011-03-12 16:56:27 by AntDude AntDude
:D
rulez added on the 2011-03-15 16:41:41 by ɧ4ɾɗվ./Lemon. ɧ4ɾɗվ./Lemon.
cool one!
rulez added on the 2011-03-15 18:20:15 by ferris ferris
I like it but it's way overrated...
added on the 2011-03-20 16:52:35 by cryer cryer
a very nice "oldschool-press-space-demo", indeed
rulez added on the 2011-03-24 20:31:34 by decca decca
Sdw: In your comments for Batman Forever, you said:
Quote:
@Optimus: I don't know what you mean by symmetric, but there is no mirroring or other tricks. I draw 1123 dots in Teen Dreams, and erase 1123 dots each frame.
You're correct that it runs in only a 128x128 pixel area though.
Sorry, I don't know much about 8bits machines but do you actually erase the 1123 dots individually ? If so I guess it is not possible to clear 8px spans or 8x8px blocks at once in this graphic mode. :\ ouch! Tricky tricky.
rulez added on the 2011-03-25 14:07:48 by p01 p01
@p01: Actually the clearing of a dot is done by clearing a 8x1 block (1 byte, so a single STA instruction). But I still have to do that for each individual dot.
Plotting a dot is more expensive, since you have to LDA/ORA/STA it in a byte as another dot might already be in another bit.
added on the 2011-03-25 14:48:16 by Sdw Sdw
Ouch! You have to compute the position of each individual dot to clear it :-\

I was wondering 'coz on Atari ST you can display so many dots that it is faster to clear the screen ( well one bitplane ) as a whole rather than clearing the dots one by one.
added on the 2011-03-25 18:58:19 by p01 p01
Quite cool, nice oldschool vibes.
rulez added on the 2011-03-29 03:37:47 by zoolum zoolum
I can imagine having so many dots in a relatively confined space also helps :) Allows for really simple (read: fast) clearing code...
added on the 2011-03-29 07:30:25 by ferris ferris
..probably really simplifies the x/y->screen mem address conversion aswell :) Thinking out loud..
added on the 2011-03-29 07:34:26 by ferris ferris
Indeed a 128 x 128 area is quite small and gives at most: 128 / 8 * 128 = 2048 bytes to clear in a brute force clearing code.

Again I don't know 6502 assembler but it seems that in this case, a brute force clearing would be faster than clearing the dots one by one ( which means "computing" their position ).
added on the 2011-03-29 09:11:44 by p01 p01
Quote:
Indeed a 128 x 128 area is quite small and gives at most: 128 / 8 * 128 = 2048 bytes to clear in a brute force clearing code.


That's what I thought at first too.
A series of STA $address 4 cycles. 2048 * 4 = 8192 cycles.

8192 / 1123 = 7.29. This would be similar to spend around 7 cycles per dot erase. I think a fast routine would be something like a series of STA $address, X per dot which is 5 cycles. I am not entirely sure, I was thinking of this kind of dot rendering (stationary on X, oscillating on Y).
added on the 2011-03-29 10:43:18 by Optimus Optimus
Big mistake.
Should not be STA $address,X but most probably STA (zero page),Y where in the zero page some_C64_Y_address(SIN(t)) is stored and Y moves you on x coord. You may only have to scroll these addresses inside the zero page after each frame but that's just 254 bytes. There gotta be other ways with this, gotta try to test before thinking in theory. But in any case it's less than 7 cycles.

I have noticed the pattern that made me original think the dots were symmetric. They are not but you see a similarity in four quadrants, maybe because the sine is small to fit in zero page if this is how I think it's done here.
added on the 2011-03-29 10:53:48 by Optimus Optimus
Actually the code looks like this:

Plotting (x increases each frame):
ldy sinetab,x
lda screenpos_with_precalced_sinepos1,y
ora #constant
sta screenpos_with_precalced_sinepos1,y
lda screenpos_with_precalced_sinepos2,y
ora #constant
sta screenpos_with_precalced_sinepos2,y
.. repeat for a number of points that share same Y-sine (y-sine-period is much smaller than 1123, so it can be reused for quite a few dots)
ldy sinetab+1,x
lda ..
etc.

Clear:
lda #$00
ldy sinetab,x
sta screenpos_with_precalced_sinepos1,y
sta screenpos_with_precalced_sinepos2,y
...
ldy sinetab+1,x

So to plot it takes 4+2+4 = 12 cycles per dot + some additional fraction for loading new sine values.

So to plot it takes 4 cycles per dot + some additional fraction for loading new sine values.

So unless I plot like well over 1500 dots, it's still cheaper to clear the dots instead of clearing the whole 2048 byte area.
added on the 2011-03-29 16:16:35 by Sdw Sdw
interesting :) thanks for sharing!
added on the 2011-03-29 21:31:29 by ferris ferris
Götta!
rulez added on the 2011-03-29 21:45:16 by Frost Frost
Woops, noticed a typo in the explanation. It should read:

So to plot it takes 4+2+4 = 12 cycles per dot + some additional fraction for loading new sine values.

And to clear it takes 4 cycles per dot + some additional fraction for loading new sine values.
added on the 2011-03-29 22:17:59 by Sdw Sdw
Rulez!
rulez added on the 2014-01-04 01:00:12 by Buckethead Buckethead

submit changes

if this prod is a fake, some info is false or the download link is broken,

do not post about it in the comments, it will get lost.

instead, click here !

[previous edits]

add a comment