NX Framework for the Original Lowres coder


SP4CEBAR 2022-07-30 18:32 (Edited)

With my new graphics system, I can finally start porting my Tetris program from LowRes Coder. Now I realize that this is going to be quite a big task, so I want to make it easier...

...I'm going to start making a subprogram for every function in LowRes coder that is relevant to that project

SP4CEBAR 2022-07-30 20:03 (Edited)

I started by making a subprogram for DEF SPRITE called "DEF_SPRITE"
It has a color preset table called "COLORS"
And it has an optimized converter to convert the character data formats

Lowres Framework.nx | Open in app
2022-07-30 20:03

was8bit 2022-07-31 16:38

Many of my lowresOs programs rely on up to 4 layers which have 15 different color points, for a total of 60 different color points... and I use POINT(X,Y) to let the code distinguish what value each point is set to...

Sort of like CELL.C(X,Y) can read what character is at a certain place on the screen, but at a point level...

It is going to be touch emulating 4 layers where each holds 15 different colored points...

was8bit 2022-07-31 16:40

Timo's music player for Os will also be monumetous ...

SP4CEBAR 2022-07-31 19:20 (Edited)

lowresOS? Did you make an NX emulator for LowRes programs?

was8bit 2022-08-01 03:05

No... I have manually converted OS to NX for a few things, or just rewrote some from scratch...

On the flip side, doing NX style things is possible in OS with BLOCK commands, but you cannot read characters placed on a background in OS as all graphics are handled purely pixel by pixel only...

SP4CEBAR 2022-08-01 10:53

Oh okay, that must've been a lot of work

was8bit 2022-08-01 12:40

The farthest I got with tiling in OS was a 3D simcity style layout that was editable... it was never developed into a game though... the BLOCK command applied only the non-zero pixels, so by applying the farthest buildings/landscapes first, a 3D effect resulted as you layered the closer and closet items...

The biggest issue for storing images in OS data format was the immense amount text space required... look at my BIG MARIO here, the data you see was actually transferred from an OS, and the big blocks you see here were actually pixels on OS... a full game with animation etc. would dominate your code with cumbersome data statements...

Theoretically, in OS, one could store all your graphics on a hidden background layer, which would have to be manually and individually drawn from data statements onto this layer at game start... after that you would have to do keep manually copying these blocks of graphics where and when they were needed...

was8bit 2022-08-01 12:43

NX approach, then, is MUCH more convenient, as you can actually SEE the graphics as you design them (in OS you couldn't see your graphic as you were making the data statements... you had to flip flop between editing data statements, running the program to see the results, and then go back to data statements and hope your editing was correct)

was8bit 2022-08-01 12:44 (Edited)

Timo has done a WONDERFUL job creating a very wonderful NX version of LowRes

was8bit 2022-08-01 12:47

OS main strength was pixel drawing, like for the Mandelbrot program I have posted here.. where math formulas draw complicated and beautiful graphics... for that OS rules, as it takes lots of tricks to pull that off here in NX...

was8bit 2022-08-01 12:51

The one thing that are nearly the same in both OS and NX is SPRITES, with the exception that NX expands upon sprites tremendously... OS was only 8x8, where NX can be as big as 32x32 big...

but once made, SPRITES behave the same in either system... there are 64 sprites (0-63), they float above the game layers, and SPRITE HIT detects to the pixel level when one Sprite hits another sprite..

If one can fit all their moving parts into 64 sprites, they can use just sprites for their game, in either system :)

SP4CEBAR 2022-08-01 17:17 (Edited)

Yes true, sprites are so compatible that you could just use them without changing anything, well... as long as the forst characters are for the sprites, I added a FIRST_SPRITE variable to define where the sprite characters start

Log in to reply.