MaxCoderz

for your 1 bit pleasure!

All times are UTC




Post new topic Reply to topic  [ 29 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Mon 13 Feb, 2006 11:49 am 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
Download

I haven't been able to fully test the 83 version, and don't know how LCD-driver friendly the 83+ version is for people with SEs.

It's been a little side project to keep me going and as a testbed for Brass and Latenite. :)


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon 13 Feb, 2006 12:00 pm 
Offline
Calc King
User avatar

Joined: Sun 23 Jan, 2005 12:37 am
Posts: 1727
Location: Netherlands
:o

You... I... This... How... WTFBBQ?! :P

_________________
http://clap.timendus.com/ - The Calculator Link Alternative Protocol
http://api.timendus.com/ - Make your life easier, leave the coding to the API
http://vera.timendus.com/ - The calc lover's OS


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon 13 Feb, 2006 12:14 pm 
Offline
MCF Legend

Joined: Mon 20 Dec, 2004 8:45 am
Posts: 1601
Location: Budapest, Absurdistan
PR at best! :D

_________________
The Independent Z80 Assembly Guide
Acelgoyobis
PindurTI


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon 13 Feb, 2006 1:01 pm 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 4094
Location: I cant seem to get out of this cryogenic chamber!
This is truely awesome. Like is said on IRC, its 'FRIGGING' awesome! :D.

Great stuff ben, the lens effect was my favourite.

_________________
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."
Image
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon 13 Feb, 2006 1:45 pm 
Offline
Calc Wizard
User avatar

Joined: Tue 05 Jul, 2005 11:28 pm
Posts: 549
ZOMG ROFLMONGERS!
Nicely done once again, Ben. :)

_________________
Image Image Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon 13 Feb, 2006 2:13 pm 
Offline
Calc King
User avatar

Joined: Mon 20 Dec, 2004 6:47 pm
Posts: 2286
Location: Quebec (Canada)
HOLY $#!T!!!! Now if only this was implemented into games, even SNES games wont have those effects :shock: awesome work ben!

_________________
ImageImage
Bandcamp|FB|Youtube|Twitter


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon 13 Feb, 2006 2:57 pm 
Offline
Calc King
User avatar

Joined: Sat 18 Dec, 2004 6:46 am
Posts: 2932
I've only seen the screen shots, and just seeing them this looks amazing! I can't wait to get home to try it out.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon 13 Feb, 2006 3:34 pm 
Offline
Calc King
User avatar

Joined: Sun 26 Dec, 2004 5:27 am
Posts: 2457
Location: SXIOPO = Infinite lives for both players
the lens is also my favorite. Great job!!

_________________
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon 13 Feb, 2006 4:53 pm 
Offline
Calc Wizard

Joined: Sun 19 Dec, 2004 9:02 pm
Posts: 585
Location: Sweden
Fun to see some innovative stuff, lead people on the right track Ben :)


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon 13 Feb, 2006 5:09 pm 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
Thanks everyone :)

Nothing here is really ground-breaking, but I've always enjoyed this sort of programming more. If anyone dares to read the source, it shouldn't be too difficult to follow. Lots of basic trig and Bresenham goes on in there, plus some cheating with precomputed tables (which might explain the massive binary size...)

As for "hidden" keys;
Tunnel: cursor keys control movement
Flipping card: up/down control movement, left+right takes a screenshot, inverts it and uses that as the card's "texture".
Cylinder: up+down (held) inverts the text.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon 13 Feb, 2006 5:39 pm 
Offline
Extreme Poster
User avatar

Joined: Mon 23 Jan, 2006 10:09 pm
Posts: 455
Location: In front of a Computer, coding
Quote:
Nothing here is really ground-breaking, but I've always enjoyed this sort of programming more. If anyone dares to read the source, it shouldn't be too difficult to follow. Lots of basic trig and Bresenham goes on in there, plus some cheating with precomputed tables (which might explain the massive binary size...)


....... How can you even speak of trig as basic??? (OK, so what if I'm advanced 2 years already in math, whats your point?)

Just the screenshots look awesone here. I'll go take a real look in a minute. Someday, I hope to understand how these demos are even made...

_________________
I'm not mad, just a little crazy.

DarkNova - a little side project I run.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon 13 Feb, 2006 5:47 pm 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
thegamefreak0134 wrote:
....... How can you even speak of trig as basic??? (OK, so what if I'm advanced 2 years already in math, whats your point?)


Basic, as in nothing more complex than:
Code:
x = centre_x + circle_radius * sin(angle)
y = centre_y + circle_radius * cos(angle)


Though, in this demo, that's only used once - for other wiggly text stuff, I just use a straight sine table. :)


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon 13 Feb, 2006 6:01 pm 
Offline
Calc King
User avatar

Joined: Sun 23 Jan, 2005 12:37 am
Posts: 1727
Location: Netherlands
Yeah, it's huge, but very cool none the less :)
The lens is my favourite too. How exactely does that work..?

(I know, I could take a look in the source, but I'm a lazy slacker ;))

_________________
http://clap.timendus.com/ - The Calculator Link Alternative Protocol
http://api.timendus.com/ - Make your life easier, leave the coding to the API
http://vera.timendus.com/ - The calc lover's OS


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon 13 Feb, 2006 6:19 pm 
Offline
Calc King
User avatar

Joined: Sun 26 Dec, 2004 5:27 am
Posts: 2457
Location: SXIOPO = Infinite lives for both players
Quote:
; Leave the LCD driver in a happy state!
You're so considerate of the lcd. Most people wouldn't think twice about leaving it happy, most people just order her around. :P

Now would I be correct in assuming that the lens effect is a BIG table, or is there some serious math coding. It's weird, I chose not to look at screenies, and try it out on actual hardware, and all that ran my mind was trying figure how you were doing things. :)

Excellent job yet again.

_________________
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon 13 Feb, 2006 6:20 pm 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
Timendus wrote:
Yeah, it's huge, but very cool none the less :)
The lens is my favourite too. How exactely does that work..?
Very simply, and can easily be altered to change the effect. Each pixel of the area the lens is over is put through a transformation table. Like the tunnel, this is precomputed. The lens is 32x32 pixels, so the transformation table is 32x32 elements. Each element has an X and a Y, so the most basic transformation table would be:
Code:
.for y, 0, 31
    .for x, 0, 31
        .db x, y
    .loop
.loop
This is a "neutral" table, as each pixel coordinate gets transformed back into the same coordinate.
Code:
.for y, 0, 31
    .for x, 0, 31
        .db x/2, y/2
    .loop
.loop
This one would "zoom" the area under the lens by two - for example, the point (16,16) of the lens would map to position ( 8,8 ) of the old area under the lens.
Code:
.for y, 0, 31
    .for x, 0, 31
        .db 31-x, y
    .loop
.loop
This would flip the image in the y-axis under the lens.

A sort of pseudo-code would be:
Code:
transform[32][32] ; transformation table

lens_x = 10 ; \_ position of lens
lens_y = 10 ; /


old_area[32][32]; old area under the lens

; Copy the area under the lens to a temporary buffer
for x = 0 to 31
    for y = 0 to 31
        old_area[x][y] = get_pixel(lens_x+x, lens_y+y)
    next y
next x

; Redraw the lens, applying the transformation:
for x = 0 to 31
    for y = 0 to 31
        set_pixel(lens_x+x, lens_y+y) = old_area[transform[x][y].x][transform[x][y].y]
    next y
next x


To get the correct lens transformation table, I cheated - making a 32x32 bitmap where each pixel was a different colour, blowing it up to 3200x3200, running two "spherize" transformations in Photoshop, then dropping back to 32x32. I could then work out where each of my individually-coloured pixels had gone to, and built the table out of that.

EDIT: Reading this back, the explanation sucks. Er...


Last edited by benryves on Mon 13 Feb, 2006 6:29 pm, edited 1 time in total.

Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 29 posts ]  Go to page 1, 2  Next

All times are UTC


Who is online

Users browsing this forum: Baidu [Spider] and 1 guest


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:  
cron
Powered by phpBB ® Forum Software © phpBB Group | DVGFX2 by: Matt