Jump to content
IGNORED

STNICCC2000 port for Lynx


42bs

Recommended Posts

3 hours ago, Heaven/TQA said:

Hmm, what are we discussing here?

Back to polygons: Lynx can 'by accident' draw triangles with just two sprites. Jaguar has _no_ way to do such and Sega Saturn can draw distorted quadrangles in hardware.

But Sega Saturn came out 5 years after Jaguar and contains two COTS CPUs.

Link to comment
Share on other sites

17 minutes ago, 42bs said:

Hmm, what are we discussing here?

Back to polygons: Lynx can 'by accident' draw triangles with just two sprites. Jaguar has _no_ way to do such and Sega Saturn can draw distorted quadrangles in hardware.

But Sega Saturn came out 5 years after Jaguar and contains two COTS CPUs.

More like 2 years ;-)

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, 42bs said:

Hmm, what are we discussing here?

Back to polygons: Lynx can 'by accident' draw triangles with just two sprites. Jaguar has _no_ way to do such and Sega Saturn can draw distorted quadrangles in hardware.

But Sega Saturn came out 5 years after Jaguar and contains two COTS CPUs.

No discussion I was just side tracked if my state that the Saturn is a core 2d console… 😂

 

btw. Would not tmapping on Lynx “polygons” not possible? Strange I never tried that in my 3d routines… if it’s sprites stretched?

 

is the Jaguar source on Github, too?

Link to comment
Share on other sites

34 minutes ago, Heaven/TQA said:

No discussion I was just side tracked if my state that the Saturn is a core 2d console… 😂

 

btw. Would not tmapping on Lynx “polygons” not possible? Strange I never tried that in my 3d routines… if it’s sprites stretched?

 

is the Jaguar source on Github, too?

The triangle on the Lynx is a single pixel which is stretched and tilted. So no chance for texture. 

 

And yes, the Jaguar sources are also on GH. Actually I place everything open unless I am not allowed to.

Link to comment
Share on other sites

1 hour ago, 42bs said:

The triangle on the Lynx is a single pixel which is stretched and tilted. So no chance for texture. 

 

And yes, the Jaguar sources are also on GH. Actually I place everything open unless I am not allowed to.

Yeah I know it’s single pixel stretch/tilted… but I remember it now. Slowly my Lynx knowledge comes back… but can you not stretch and tilt a sprite with texture? I experimented with faking gouraud. I did. later on VBXE with a gradient sprite…

 

my Gouraud shading in Elements was scanline based but would

need to look into the source if it was a spritelist with a 1x256 sprite scaled… or software rendering…

 

 

 

Edited by Heaven/TQA
  • Like 3
Link to comment
Share on other sites

On 3/27/2023 at 5:08 AM, 42bs said:

Wow, I completely missed it somehow. Ok, I can skip voxel flight for the Lynx 😞

btw. do you know how to avoid the LDA ORA STA chunky2 planar conversion on Lynx?

use a sprite as frame buffer with 160x102 res.... and then blit that sprite with 50% shrink in X on screen...so your x0x0x0x0 (or was it 0x0x0x0x anyway) becomes xxxxxx....

 

so your speed code becomes LDA STA LDA STA... and you don't need to store the texture etc 2x in 0x and x0 format...

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

On 3/26/2023 at 11:08 PM, Heaven/TQA said:

Yeah I know it’s single pixel stretch/tilted… but I remember it now. Slowly my Lynx knowledge comes back… but can you not stretch and tilt a sprite with texture? I experimented with faking gouraud. I did. later on VBXE with a gradient sprite…

 

my Gouraud shading in Elements was scanline based but would

need to look into the source if it was a spritelist with a 1x256 sprite scaled… or software rendering…

 

 

 

Incredible demo, if I had to pick one effect, the voxel landscape looks awesome!

  • Thanks 1
Link to comment
Share on other sites

48 minutes ago, Heaven/TQA said:

btw. do you know how to avoid the LDA ORA STA chunky2 planar conversion on Lynx?

use a sprite as frame buffer with 160x102 res.... and then blit that sprite with 50% shrink in X on screen...so your x0x0x0x0 (or was it 0x0x0x0x anyway) becomes xxxxxx....

 

so your speed code becomes LDA STA LDA STA... and you don't need to store the texture etc 2x in 0x and x0 format...

clever trick, I guess you mean 8bit chunky to 4bit chunky (Lynx screen format).

 

I wonder if would be possible to double pixels somehow, e.g.  ABCD --> AABBCCDD

 

 

and great demo

Edited by Cyprian
  • Thanks 1
Link to comment
Share on other sites

32 minutes ago, Cyprian said:

clever trick, I guess you mean 8bit chunky to 4bit chunky (Lynx screen format).

 

I wonder if would be possible to double pixels somehow, e.g.  ABCD --> AABBCCDD

 

 

and great demo

Yes? By simply 2x scale factor? See my zooming credits over the landscape… it has a fixed point scaling by hardware.

 

and c2p I use as generic term for byte per 4bit, 2bit or 1 bit on a8/c64

Edited by Heaven/TQA
Link to comment
Share on other sites

1 hour ago, Heaven/TQA said:

btw. do you know how to avoid the LDA ORA STA chunky2 planar conversion on Lynx?

use a sprite as frame buffer with 160x102 res.... and then blit that sprite with 50% shrink in X on screen...so your x0x0x0x0 (or was it 0x0x0x0x anyway) becomes xxxxxx....

 

so your speed code becomes LDA STA LDA STA... and you don't need to store the texture etc 2x in 0x and x0 format...

Clever trick, but I do not yet see a uses case.

The other way should also work.

If you have two pictures with either all high or low nibble zero and want to OR these together.

 

Or you can use a similar thing to create light effect by ORing a mask and using an respective color map. I did this in SIMIS.

Edited by 42bs
Link to comment
Share on other sites

8 hours ago, 42bs said:

Clever trick, but I do not yet see a uses case.

The other way should also work.

If you have two pictures with either all high or low nibble zero and want to OR these together.

 

Or you can use a similar thing to create light effect by ORing a mask and using a respective color map. I did this in SIMIS.

Use cases are all so called 4x4 chunky effects… the water effect in elements the plasma twirls, the Voxel flight, the tunnel and the Voxel ball. Not to mention all other effects I have on c64 or Atari 800… 🙂

 

you save not just memory due to 50% less tables or textures needed (the one for preshifting data) but simpler code and faster, too. Plus you get the ability of ability all you can do with sprite hardware on top…

 

the Voxel alone saves a lot Memory in terms of Ray tables and shading is easier as you don’t need per pixel handling the 0f f0 fuckery.

Edited by Heaven/TQA
Link to comment
Share on other sites

On 3/22/2023 at 1:38 PM, karri said:

Yep. Here is the hand interleaved matrix multiplication. But I don't know if there is a flaw somewhere. At least while using it in Stardreamer I did have problems with very strange results after a while.

 

matrix.s.txt 37.06 kB · 4 downloads

zeropage.s.txt 1.83 kB · 2 downloads

 

int VertsPoint[] = {
    1,   2,   3
};

int VertsTriangle[] = {
     0,   0,  64,
  -128,   0, -64,
   128,   0, -64
};

int VertsXwing[] = {
     0,   0,  64,
  -128, 128, -64,
   128, 128, -64,
  -128,-128, -64,
   128,-128, -64
};

...
  
    MLoad(&ownship.vbasis_right_x);
    MMultiply(&(object->vbasis_right_x));
    VertexSource = VertsPoint;
    VertexCount = 1;
    VertexTarget = PointBuffer;
    MPerform();

 

3d.h.txt 502 B · 2 downloads

vbasis.s.txt 17.82 kB · 2 downloads

One interleaving is also

 

      MOVE {punkte_x,x},MATHE_E
;    WAITSUZY
      MOVE b1,MATHE_C
    WAITSUZY

 

Means, after the multiplication is kicked by writing MATH_E+1, you can already write the next multiplicand to MATHE_C.

Link to comment
Share on other sites

 

that one interleaves all maths instructions while calculating I write the next… that is the Numen Duke Nukem Portal engine ported to Lynx 2017…

 

 

 

in my 3d routines I also interleaved the maths when doing the matrix muls… Lynx is so underrated but for me best 8bit 6502 based console (ok… not knowing pc engine/turbo grafx)

Edited by Heaven/TQA
  • Like 3
Link to comment
Share on other sites

13 minutes ago, Heaven/TQA said:

 

that one interleaves all maths instructions while calculating I write the next… that is the Numen Duke Nukem Portal engine ported to Lynx 2017…

 

 

 

in my 3d routines I also interleaved the maths when doing the matrix muls… Lynx is so underrated but for me best 8bit 6502 based console (ok… not knowing pc engine/turbo grafx)

'Heilige Schei+-_&'  that is quick!

 

How quick is it on a real Lynx?

 

Edited by 42bs
Link to comment
Share on other sites

the A8 raycaster not sure if I modified it for lynx maths… on SNES I used the hardware mul.

 

btw sprites can be used for scaling the collum texture sliced instead of unrolled code… I bet a 80x or 160x sprite list is not a downer for the Lynx?

Edited by Heaven/TQA
  • Like 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...