[Staff] Microhertz - TI-83/TI-83+ Scene Demo

Here you can find side projects of the staff and great projects which we think should get extra support. (Note that featured products are not products of MaxCoderz)

Moderator: MaxCoderz Staff

User avatar
benryves
Maxcoderz Staff
Posts: 3078
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

[Staff] Microhertz - TI-83/TI-83+ Scene Demo

Post by benryves »

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. :)
User avatar
Timendus
Calc King
Posts: 1729
Joined: Sun 23 Jan, 2005 12:37 am
Location: Netherlands
Contact:

Post by Timendus »

: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
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

PR at best! :D
User avatar
tr1p1ea
Maxcoderz Staff
Posts: 4127
Joined: Thu 16 Dec, 2004 10:06 pm
Location: I cant seem to get out of this cryogenic chamber!
Contact:

Post by tr1p1ea »

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
User avatar
KermMartian
Calc Wizard
Posts: 549
Joined: Tue 05 Jul, 2005 11:28 pm
Contact:

Post by KermMartian »

ZOMG ROFLMONGERS!
Nicely done once again, Ben. :)
Image Image Image
User avatar
DJ_O
Calc King
Posts: 2305
Joined: Mon 20 Dec, 2004 6:47 pm
Location: Quebec (Canada)
Contact:

Post by DJ_O »

HOLY $#!T!!!! Now if only this was implemented into games, even SNES games wont have those effects :shock: awesome work ben!
User avatar
kalan_vod
Calc King
Posts: 2932
Joined: Sat 18 Dec, 2004 6:46 am
Contact:

Post by kalan_vod »

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.
User avatar
Jim e
Calc King
Posts: 2457
Joined: Sun 26 Dec, 2004 5:27 am
Location: SXIOPO = Infinite lives for both players
Contact:

Post by Jim e »

the lens is also my favorite. Great job!!
Image
coelurus
Calc Wizard
Posts: 585
Joined: Sun 19 Dec, 2004 9:02 pm
Location: Sweden
Contact:

Post by coelurus »

Fun to see some innovative stuff, lead people on the right track Ben :)
User avatar
benryves
Maxcoderz Staff
Posts: 3078
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

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.
User avatar
thegamefreak0134
Extreme Poster
Posts: 455
Joined: Mon 23 Jan, 2006 10:09 pm
Location: In front of a Computer, coding
Contact:

Post by thegamefreak0134 »

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.
User avatar
benryves
Maxcoderz Staff
Posts: 3078
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

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: Select all

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. :)
User avatar
Timendus
Calc King
Posts: 1729
Joined: Sun 23 Jan, 2005 12:37 am
Location: Netherlands
Contact:

Post by Timendus »

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
User avatar
Jim e
Calc King
Posts: 2457
Joined: Sun 26 Dec, 2004 5:27 am
Location: SXIOPO = Infinite lives for both players
Contact:

Post by Jim e »

; 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
User avatar
benryves
Maxcoderz Staff
Posts: 3078
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

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: Select all

.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: Select all

.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: Select all

.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: Select all

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.
Post Reply