Author Topic: [SRC] monoPong - 1k  (Read 16628 times)

0 Members and 1 Guest are viewing this topic.

Offline benny!

  • Senior Member
  • DBF Aficionado
  • ********
  • Posts: 4384
  • Karma: 228
  • in this place forever!
    • View Profile
    • bennyschuetz.com - mycroBlog
[SRC] monoPong - 1k
« on: January 27, 2008 »
Hey,

for everyone who is interested in it - here is the
messy source to monoPong - 1k.

Most of my knowledge is from Chris - so actually
he owns all credits ;-)

As you can see - packed with Crinkler - there are
still some bytes left. So I would be very interested
to see your enhancements of this code.

Code: [Select]
//
// monoPong1k
//
// code: benny!weltenkonstrukteur.de
//
// This code is built upon auld's great
// 1k-coding sources/tips. thanks a lot!
// VS2005 modifications
// by benny!weltenkonstrukteur.de
//

#include <windows.h>
#include <GL/gl.h>

#define NULLNULL 0.0000000000f
#define NULLNULLONETRHEE 0.0130000000f
#define NULLNINE 0.8984375000f
#define NULLTWO 0.2001953125f
#define NULLNULLFIVE 0.0500488281f
#define NULLEIGHTSIX 0.8593750000f
#define NULLNULLEIGHT 0.0800781250f
#define NULLFIVE 0.5000000000f

static PIXELFORMATDESCRIPTOR pfd;

static GLfloat batY = NULLNULL;
static GLfloat ballX = NULLNULL;
static GLfloat ballY = NULLNULL;
static GLfloat veloX = NULLNULLONETRHEE;
static GLfloat veloY = NULLNULLONETRHEE;

//
// some math functions
//

static float floatAbs(float f)
{   
(int&)f &= ~0x80000000;
return f;
}
 

 
//
// drawing stuff
//
static void drawBat(void) {
glBegin(GL_QUADS);
glVertex2f(NULLNULL, NULLNULL);
glVertex2f(NULLNULLFIVE, NULLNULL);
glVertex2f(NULLNULLFIVE, NULLTWO);
glVertex2f(NULLNULL, NULLTWO);
glEnd();
}

static void render( void ) {
glClear( GL_COLOR_BUFFER_BIT );

glLoadIdentity();
glTranslatef( NULLNINE, -NULLNULLEIGHT + batY, NULLFIVE );
drawBat();

glLoadIdentity();
glTranslatef( -NULLNINE, -NULLNULLEIGHT - batY, NULLNULL );
drawBat();

glLoadIdentity();
glTranslatef( ballX, ballY, NULLNULL );
glBegin(GL_QUADS);
glVertex2f(NULLNULL, NULLNULL);
glVertex2f(NULLNULLFIVE, NULLNULL);
glVertex2f(NULLNULLFIVE, NULLNULLFIVE);
glVertex2f(NULLNULL, NULLNULLFIVE);
glEnd();
}

void WINAPI WinMainCRTStartup()
{
// auld code
    // minimal windows setup code for opengl 
pfd.cColorBits = pfd.cDepthBits = 32;
pfd.dwFlags    = PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;


// "HDC hDC" changed 19. April 2007 by benny!weltenkonstrukteur.de
    HDC hDC = GetDC( CreateWindow("edit", 0, WS_POPUP|WS_VISIBLE|WS_MAXIMIZE, 0, 0, 0, 0, 0, 0, 0, 0) );


SetPixelFormat ( hDC, ChoosePixelFormat ( hDC, &pfd) , &pfd );
      wglMakeCurrent ( hDC, wglCreateContext(hDC) );

//ShowCursor(FALSE);

int quit = 0;

    DWORD start = GetTickCount();
DWORD cur = 0;

    do
    {

cur = GetTickCount();
if ( (cur - start ) < 10 ) continue;

start = cur;

ballX+=veloX;
ballY+=veloY;
// check
if ( ballY > NULLNINE ) veloY = -NULLNULLONETRHEE;
if ( ballY < -NULLNINE) veloY = NULLNULLONETRHEE;

float check  = floatAbs(batY - ballY);
float check2= floatAbs(-batY - ballY);
if ( ballX > NULLEIGHTSIX && check < NULLTWO ){
veloX = -(0.005f + (check/5));
} else if ( ballX > NULLEIGHTSIX && check > NULLTWO ) {
quit = 1;
}
if ( ballX < -NULLEIGHTSIX && check2 < NULLTWO ){
veloX = 0.005f + (check2/5);
} if ( ballX < -NULLEIGHTSIX && check2 > NULLTWO ) {
quit = 1;
}

if ( GetAsyncKeyState(VK_RIGHT) && batY < NULLNINE ) {
batY += NULLNULLFIVE;
} else if ( GetAsyncKeyState(VK_LEFT) && batY > -NULLNINE) {
batY -= NULLNULLFIVE;
}

  render();
SwapBuffers(hDC);
    } while ( quit == 0 );
   ExitProcess(0);
}
« Last Edit: January 27, 2008 by benny! »
[ mycroBLOG - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]

Challenge Trophies Won:

Offline taj

  • Bytes hurt
  • DBF Aficionado
  • ******
  • Posts: 4810
  • Karma: 189
  • Scene there, done that.
    • View Profile
Re: [SRC] monoPong - 1k
« Reply #1 on: January 27, 2008 »
Hmm Benny, try my blog for smaller code...thanks for creds in the code.
Challenge Trophies Won:

Offline benny!

  • Senior Member
  • DBF Aficionado
  • ********
  • Posts: 4384
  • Karma: 228
  • in this place forever!
    • View Profile
    • bennyschuetz.com - mycroBlog
Re: [SRC] monoPong - 1k
« Reply #2 on: January 27, 2008 »
Code updated with ExitProcess-function. Thx to rbraz!

Hmm Benny, try my blog for smaller code...
thanks for creds in the code.

Your blog bookmarked, mate! It is so cool to
read your sources/tricks!!!
[ mycroBLOG - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]

Challenge Trophies Won:

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: [SRC] monoPong - 1k
« Reply #3 on: January 27, 2008 »
K+  ;D
Shockwave ^ Codigos
Challenge Trophies Won:

Offline va!n

  • Pentium
  • *****
  • Posts: 1432
  • Karma: 109
    • View Profile
    • http://www.secretly.de
Re: [SRC] monoPong - 1k
« Reply #4 on: January 27, 2008 »
K++ !!  :goodpost:
btw, check our some possible size optimisations ideas/tricks http://dbfinteractive.com/index.php?topic=2859.msg39170#msg39170
- hp EliteBook 8540p, 4 GB RAM, Windows 8.1 x64
- Asus P5Q, Intel Q8200, 6 GB DDR2, Radeon 4870, Windows 8.1 x64
http://www.secretly.de
Challenge Trophies Won:

Offline benny!

  • Senior Member
  • DBF Aficionado
  • ********
  • Posts: 4384
  • Karma: 228
  • in this place forever!
    • View Profile
    • bennyschuetz.com - mycroBlog
Re: [SRC] monoPong - 1k
« Reply #5 on: January 28, 2008 »
hi benny!
Very nice 1k game! I would be proud if it would be my
production *grin*. K++ for the nice work and for the
source! As you may know i dont get work any C/CPP
code (even i want to learn CPP)... i just did a small
view to your source and possible following thing
could optimize your exe size!? (i cant test here, sorry)
... Hope i didnt made any mistake

Thanks a lot for so much input, va!n. I guess there
are many ways it could be optimized ...

Your original source:

Code: [Select]
Static void drawBat(void) {
glBegin(GL_QUADS);
glVertex2f(NULLNULL, NULLNULL);
glVertex2f(NULLNULLFIVE, NULLNULL);
glVertex2f(NULLNULLFIVE, NULLTWO);
glVertex2f(NULLNULL, NULLTWO);
glEnd();
}

Static void render( void ) {
glClear( GL_COLOR_BUFFER_BIT );

glLoadIdentity();
glTranslatef( NULLNINE, -NULLNULLEIGHT + batY, NULLFIVE );
drawBat();

glLoadIdentity();
glTranslatef( -NULLNINE, -NULLNULLEIGHT - batY, NULLNULL );
drawBat();

glLoadIdentity();
glTranslatef( ballX, ballY, NULLNULL );
glBegin(GL_QUADS);
glVertex2f(NULLNULL, NULLNULL);
glVertex2f(NULLNULLFIVE, NULLNULL);
glVertex2f(NULLNULLFIVE, NULLNULLFIVE);
glVertex2f(NULLNULL, NULLNULLFIVE);
glEnd();
}

Just try out to replace it with this (its possible to optimize
it a bit, to save some more bytes!):

Code: [Select]
Static void drawObject( fTransX:float, fTransY:float, fTransZ:float, fLeft:float, fBottom:float, fRight:float, fTop:float )   
{
glLoadIdentity();
glTranslatef_( fTransX, fTransY, fTransZ, );

glBegin(GL_QUADS);
glVertex2f( fLeft , fBottom );
glVertex2f( fRight, fBottom );
glVertex2f( fRight, fTop    );
glVertex2f( fLeft , fTop    );
glEnd();
}



Static void render( void ) {
glClear( GL_COLOR_BUFFER_BIT );

// glLoadIdentity();
//  glTranslatef( NULLNINE, -NULLNULLEIGHT + batY, NULLFIVE );
// drawBat();

// glLoadIdentity();
// glTranslatef( -NULLNINE, -NULLNULLEIGHT - batY, NULLNULL );
// drawBat();

// glLoadIdentity();
// glTranslatef( ballX, ballY, NULLNULL );
// glBegin(GL_QUADS);
// glVertex2f(NULLNULL, NULLNULL);
// glVertex2f(NULLNULLFIVE, NULLNULL);
// glVertex2f(NULLNULLFIVE, NULLNULLFIVE);
// glVertex2f(NULLNULL, NULLNULLFIVE);
// glEnd();

    drawObject(  NULLNINE, -NULLNULLEIGHT + batY , NULLNULL, NULLNULL, NULLNULLFIVE, NULLTWO      );
    drawObject( -NULLNINE, -NULLNULLEIGHT - batY , NULLNULL, NULLNULL, NULLNULLFIVE, NULLTWO      );
    drawObject(     ballX,                  ballY, NULLNULL, NULLNULL, NULLNULLFIVE, NULLNULLFIVE );

}

I give it a try this evening and check how the exe size will
change and report later.


But as i have seen you are using floats, which needs
some extra space in the exe...
...

Yeah. Float values seems to cost bytes. That's why
I tried to define most values with constants referring
to this trick.


... you could try to use GLUT API which could save
you some bytes by using inbuild 3d objects like:
...

I think glut dependencies costs too much bytes
here.

Anyway, thanks for your ideas. If you got the code setup up
maybe for yourself - I would love to see more changes !!!
[ mycroBLOG - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]

Challenge Trophies Won:

Offline va!n

  • Pentium
  • *****
  • Posts: 1432
  • Karma: 109
    • View Profile
    • http://www.secretly.de
Re: [SRC] monoPong - 1k
« Reply #6 on: January 28, 2008 »
@benny:
nothing to thanks for... very sad, i dont manage it to get C/CPP sources compiled here with VC200x Studio... argh... i would relly love to start working with it ;)

However, i tried to optimize my last codesnip a bit (if i didn't made any mistake there, i can't test) to produce hopefully a smaller executeable. just a try

Code: [Select]
Static void drawObject( fTransX:float, fTransY:float, fTransZ:float, fTop:float )  {
    glLoadIdentity();
    glTranslatef_( fTransX, fTransY, fTransZ, );
   
    glBegin(GL_QUADS);
        glVertex2f( NULLNULL    , NULLNULL );
        glVertex2f( NULLNULLFIVE, NULLNULL );
        glVertex2f( NULLNULLFIVE, fTop     );
        glVertex2f( NULLNULL    , fTop     );
    glEnd();
}
   
Static void render( void ) {
    glClear( GL_COLOR_BUFFER_BIT );
   
    drawObject(  NULLNINE, -NULLNULLEIGHT + batY , NULLFIVE, NULLTWO      );
    drawObject( -NULLNINE, -NULLNULLEIGHT - batY , NULLNULL, NULLTWO      );
    drawObject(     ballX,                  ballY, NULLNULL, NULLNULLFIVE );
}                                           

best regards
"Mr.Vain / Secretly!"

[Edited]
Fixed a small mistake i did. sorry.
« Last Edit: January 28, 2008 by va!n »
- hp EliteBook 8540p, 4 GB RAM, Windows 8.1 x64
- Asus P5Q, Intel Q8200, 6 GB DDR2, Radeon 4870, Windows 8.1 x64
http://www.secretly.de
Challenge Trophies Won:

Offline benny!

  • Senior Member
  • DBF Aficionado
  • ********
  • Posts: 4384
  • Karma: 228
  • in this place forever!
    • View Profile
    • bennyschuetz.com - mycroBlog
Re: [SRC] monoPong - 1k
« Reply #7 on: January 28, 2008 »
@mr.va!n:

thanks mate. I will check it out this evening. guess
the last glEnd() command in the render function
should be thrown out ;) .

Would be cool to have enough bytes left to implement
some scoring system!
[ mycroBLOG - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]

Challenge Trophies Won:

Offline Jim

  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 5301
  • Karma: 402
    • View Profile
Re: [SRC] monoPong - 1k
« Reply #8 on: January 28, 2008 »
All you have to remember is one glEnd for every glBegin, and they can't be nested, glBegin followed by glBegin without a glEnd in the middle is an error.  I like to call glGetError() every time I call SwapBuffers(), that helps me catch all kinds of stuff-ups.
eg. something like
Code: [Select]
#include <assert.h>
void flip(void)
{
SwapBuffers(hdc);
assert(glGetError()==GL_NO_ERROR);
}
Jim
Challenge Trophies Won:

Offline va!n

  • Pentium
  • *****
  • Posts: 1432
  • Karma: 109
    • View Profile
    • http://www.secretly.de
Re: [SRC] monoPong - 1k
« Reply #9 on: January 28, 2008 »
@Jim:
ah yes i think you are right... i dont remember this glend rulez... its to long ago when i have used OpenGL ^^

@benny:
so here should be a working version (as i have understand jim hopefully correctly)  ^^ btw, you have post

Code: [Select]
Static void drawObject( fTransX:float, fTransY:float, fTransZ:float, fTop:float )  {
    glLoadIdentity();
    glTranslatef_( fTransX, fTransY, fTransZ, );
   
    glBegin(GL_QUADS);
        glVertex2f( NULLNULL    , NULLNULL );
        glVertex2f( NULLNULLFIVE, NULLNULL );
        glVertex2f( NULLNULLFIVE, fTop     );
        glVertex2f( NULLNULL    , fTop     );
}
   
Static void render( void ) {
    glClear( GL_COLOR_BUFFER_BIT );
   
    drawObject(  NULLNINE, -NULLNULLEIGHT + batY , NULLFIVE, NULLTWO      );
    drawObject( -NULLNINE, -NULLNULLEIGHT - batY , NULLNULL, NULLTWO      );
    drawObject(     ballX,                  ballY, NULLNULL, NULLNULLFIVE );

    glEnd();
}             
« Last Edit: January 28, 2008 by va!n »
- hp EliteBook 8540p, 4 GB RAM, Windows 8.1 x64
- Asus P5Q, Intel Q8200, 6 GB DDR2, Radeon 4870, Windows 8.1 x64
http://www.secretly.de
Challenge Trophies Won:

Offline benny!

  • Senior Member
  • DBF Aficionado
  • ********
  • Posts: 4384
  • Karma: 228
  • in this place forever!
    • View Profile
    • bennyschuetz.com - mycroBlog
Re: [SRC] monoPong - 1k
« Reply #10 on: January 28, 2008 »
Hmm .. three times glBegin() and just one glEnd() ?

That sounds not very clean - but if it works and saves bytes  ::)
[ mycroBLOG - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]

Challenge Trophies Won:

Offline va!n

  • Pentium
  • *****
  • Posts: 1432
  • Karma: 109
    • View Profile
    • http://www.secretly.de
Re: [SRC] monoPong - 1k
« Reply #11 on: January 28, 2008 »
@benny:
i am not sure if its correct. atm i am a bit suprised too and cant remember how i did it in the past. (you have to test what version works). if both versions should work, i would like that you use the safe (clean) version instead starting dirty things.
- hp EliteBook 8540p, 4 GB RAM, Windows 8.1 x64
- Asus P5Q, Intel Q8200, 6 GB DDR2, Radeon 4870, Windows 8.1 x64
http://www.secretly.de
Challenge Trophies Won:

Offline benny!

  • Senior Member
  • DBF Aficionado
  • ********
  • Posts: 4384
  • Karma: 228
  • in this place forever!
    • View Profile
    • bennyschuetz.com - mycroBlog
Re: [SRC] monoPong - 1k
« Reply #12 on: January 28, 2008 »
@va!n:

Back home I tested your suggestions.

First of all, the three-times glBegin() and one-time glEnd()
version does not work. Would have been a wonder to
me if it did.

Using correct glBegin/glEnd pairs it works - but the final exe
is 6 bytes bigger now (1020bytes). But hey - it was
worth trying it - sometimes it is nice to see in which way
the crinkler crunches the code best !

Or in other words : Just because the uncompressed size of
code is smaller doesn't automatically mean that the crunched
code is smaller.
[ mycroBLOG - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]

Challenge Trophies Won:

Offline va!n

  • Pentium
  • *****
  • Posts: 1432
  • Karma: 109
    • View Profile
    • http://www.secretly.de
Re: [SRC] monoPong - 1k
« Reply #13 on: January 28, 2008 »
okay n thanks for reply...  have you tested what happens, if you dont use die DrawObject procedure and insert the code directly? as i told, i will try something too with integers and send you soon... in this minute i am extrem busy, sorry
- hp EliteBook 8540p, 4 GB RAM, Windows 8.1 x64
- Asus P5Q, Intel Q8200, 6 GB DDR2, Radeon 4870, Windows 8.1 x64
http://www.secretly.de
Challenge Trophies Won:

Offline benny!

  • Senior Member
  • DBF Aficionado
  • ********
  • Posts: 4384
  • Karma: 228
  • in this place forever!
    • View Profile
    • bennyschuetz.com - mycroBlog
Re: [SRC] monoPong - 1k
« Reply #14 on: January 28, 2008 »
Np.

I already did certain code rearranging / encapsulation
while programming. But unfortunately I wasnt able to
squeeze more out of it so far :-(
[ mycroBLOG - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]

Challenge Trophies Won:

Offline ninogenio

  • Pentium
  • *****
  • Posts: 1668
  • Karma: 133
    • View Profile
Re: [SRC] monoPong - 1k
« Reply #15 on: January 28, 2008 »
cool little progy benny!

im sure you could get some results using glu primitivs as i think vain suggested, you should'nt need any initilization for them other than linking the lib.

i dont know if they will work out to be any smaller for you but taj uses them in 1k trinity which ive also ported to freebasic and they seem to be rather small to use.
Challenge Trophies Won:

Offline taj

  • Bytes hurt
  • DBF Aficionado
  • ******
  • Posts: 4810
  • Karma: 189
  • Scene there, done that.
    • View Profile
Re: [SRC] monoPong - 1k
« Reply #16 on: January 29, 2008 »
Benny,

I hacked around your code a little. I have to say the game logic is well cool. So is the idea of controlling both bats. Anyway, I got it down to 928 bytes by hook and crook. Note the /QIfist flag to avoid writing your own fabs. Got rid of translates. Got rid of quit variable and test in loop. Re-arranged some tests to reduce the ifs. Used glRect instead of quads. Used a static pfd instead of two lines of code (yes that thing is smaller!).

I think there is still mileage in the game logic to go, but my brain hurts :-)

Code: [Select]
// New crinkler optimised OpenGL 1k framework.
// /CRINKLER /COMPMODE:SLOW /HASHSIZE:200 /HASHTRIES:50 /ORDERTRIES:6000
//  must use /QIfist in Project->Properties->c/C++->command line for "abs" function
// this version is 928 bytes with crinkler 1.0a (haven't tried 1.1 yet).

#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>

#define NULLNULL 0.0000000000f
#define NULLNULLONETRHEE 0.0130000000f
#define NULLNINE 0.8984375000f
#define NULLTWO 0.2001953125f
#define NULLNULLFIVE 0.0500488281f
#define NULLEIGHTSIX 0.8593750000f
#define NULLNULLEIGHT 0.0800781250f
#define NULLFIVE 0.5000000000f

static GLfloat batY, ballX, ballY;

static PIXELFORMATDESCRIPTOR pfd={
0, // Size Of This Pixel Format Descriptor... BAD coding, nothing new, saves 6 bytes
1, PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0
};

static void drawRect(float x, float y, float s) {
glLoadIdentity();
glRectf(x, y, x+NULLNULLFIVE, y+s);
}

void WINAPI WinMainCRTStartup()
{
DWORD cur;
GLfloat veloX, veloY, check, check2;

   veloX=veloY=NULLNULLONETRHEE;
     
   HDC hDC = GetDC( CreateWindow("edit", 0, WS_POPUP|WS_VISIBLE|WS_MAXIMIZE, 0, 0, 0, 0, 0, 0, 0, 0) );
   SetPixelFormat ( hDC, ChoosePixelFormat ( hDC, &pfd) , &pfd );
   wglMakeCurrent ( hDC, wglCreateContext(hDC) );
   ShowCursor(FALSE);
   
    DWORD start = GetTickCount();
   

    for (;;)
    {
cur = GetTickCount();
if ( (cur - start ) < 10 ) continue;

start = cur;

ballX+=veloX;
ballY+=veloY;

if ( ballY > NULLNINE || ballY < -NULLNINE ) veloY = -veloY;

check  = abs(batY - ballY);
check2= abs(-batY - ballY);

if ( ballX > NULLEIGHTSIX) if (check<NULLTWO) veloX = -(0.005f + (check/5)); else break;
if ( ballX < -NULLEIGHTSIX) if (check2<NULLTWO) veloX = 0.005f + (check2/5); else break;

if ( GetAsyncKeyState(VK_RIGHT) && batY < NULLNINE ) batY += NULLNULLFIVE;
if ( GetAsyncKeyState(VK_LEFT) && batY > -NULLNINE) batY -= NULLNULLFIVE;

glClear( GL_COLOR_BUFFER_BIT );
    drawRect( NULLNINE, -NULLNULLEIGHT + batY, NULLTWO );
    drawRect( -NULLNINE, -NULLNULLEIGHT - batY, NULLTWO );
    drawRect( ballX, ballY, NULLNULLFIVE );

SwapBuffers(hDC);
    }
ExitProcess(0);
}

Taj.
Challenge Trophies Won:

Offline benny!

  • Senior Member
  • DBF Aficionado
  • ********
  • Posts: 4384
  • Karma: 228
  • in this place forever!
    • View Profile
    • bennyschuetz.com - mycroBlog
Re: [SRC] monoPong - 1k
« Reply #17 on: January 29, 2008 »
You are unbelieveable taj !!! That's sooooo cool. Thanks a lot.
Great forum, great taj, great day - now I am browsing your code
with open mouth  :clap:
[ mycroBLOG - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]

Challenge Trophies Won:

Offline benny!

  • Senior Member
  • DBF Aficionado
  • ********
  • Posts: 4384
  • Karma: 228
  • in this place forever!
    • View Profile
    • bennyschuetz.com - mycroBlog
Re: [SRC] monoPong - 1k
« Reply #18 on: January 29, 2008 »
...
// this version is 928 bytes with crinkler 1.0a (haven't tried 1.1 yet).
...

The exe crunched with Crinkler1.1 is 4 bytes bigger (-932bytes).
[ mycroBLOG - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]

Challenge Trophies Won:

Offline benny!

  • Senior Member
  • DBF Aficionado
  • ********
  • Posts: 4384
  • Karma: 228
  • in this place forever!
    • View Profile
    • bennyschuetz.com - mycroBlog
Re: [SRC] monoPong - 1k
« Reply #19 on: January 29, 2008 »
For everone interested - I attached taj's
version with 928bytes.

@taj:
Again. Thx a lot. Very interesting and helpful to see your
changes and optimazations!!!
[ mycroBLOG - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]

Challenge Trophies Won: