Jump to content
IGNORED

ST-NICCC 2000 "demake" from ST to Atari 8bit


Heaven/TQA

Recommended Posts

Compo: Atari 800 VBXE
Platform: Atari Ultimate stereo VBXE $d6xx
Fileformat: Atarimax 8mbit flashcart format!
(Please use Sound Mixer as Song is played back in MONO!)
Desire & Oxyron present a new compo at Silly Venture 2018
Idea: Axis & Heaven
Code of Atari 8bit VBXE Version: Heaven
Music: X-Ray pimped by Miker
Vector data by Atari ST Crew Oxygene
Hi Folks!
The idea came up to held an interesting scene compo when Axis reengineered
the data file format of the famous Atari ST demo "STNICCC 2000" by Oxygene
Aim is to port that demo on as many platforms as possible. The Atari
8bit version parses the original Atari ST data file (640kb) and renders the
polyon stream as fast as it can. The time counter shows the actual time
spent for complete rendering and stops when it restarts the flight.
More infos on the file format and the data file itself is available at
www.arsantica.com
Heaven, 1st November 2018
Compo: Atari 800 VBXE
Platform: Atari Ultimate stereo VBXE $d6xx
Fileformat: Atarimax 8mbit flashcart format!
(Please use Sound Mixer as Song is played back in MONO!)
Desire & Oxyron present a new compo at Silly Venture 2018
Idea: Axis & Heaven
Code of Atari 8bit VBXE Version: Heaven
Music: X-Ray pimped by Miker
Vector data by Atari ST Crew Oxygene
Hi Folks!
The idea came up to held an interesting scene compo when Axis reengineered
the data file format of the famous Atari ST demo "STNICCC 2000" by Oxygene
Aim is to port that demo on as many platforms as possible. The Atari
8bit version parses the original Atari ST data file (640kb) and renders the
polyon stream as fast as it can. The time counter shows the actual time
spent for complete rendering and stops when it restarts the flight.
More infos on the file format and the data file itself is available at
www.arsantica.com
Heaven, 1st November 2018
Atari ST:
Atari 800 with VBXE and 8mbit AtariMax flashcard:

 

desiron_st_niccc_cart_vbxe.zip

  • Like 21
Link to comment
Share on other sites

Nice. What was that other 3D space flight demo that was redone on an accelerated A8 CPU? It reminds me of that.

 

I'm curious though as to how the rendering is done - my guess is just lots of horizontal line blits?

 

It's work like this that says to me "Where's the Carrier Command conversion?"

Link to comment
Share on other sites

Nice. What was that other 3D space flight demo that was redone on an accelerated A8 CPU? It reminds me of that.

 

I'm curious though as to how the rendering is done - my guess is just lots of horizontal line blits?

 

It's work like this that says to me "Where's the Carrier Command conversion?"

Actually initial data was rendered in Maya with a custom

Exporter with additional converter by Leonard to provide a clipped polygon stream for the ST version in 64k chunks.

 

The data file is based on bytes and 256x200 screen resolution. Has 2 modes, so called index and non index mode.

 

In index mode it loads all frame vertices into xy arrays and then renders one frame using those cached polygons. In non-indexed frames it just dumbs those polygons on screen.

 

In meantime additional palette entries per frame can be set so at starts eg it loads 15 rgb palette entries of the ST and when needed colors are exchanged.

 

I took exactly that ST data into Atari8max flash card (81 banks) and parse that data and do the same like

The ST version. Decide on command bytes what to do.

 

Why it is faster? Can not tell too much details at it is a compo with other platforms but the VBXE is used to calculate the polygon line slopes and using my flat shader to draw a polygon stripe. Compared to my 3D engine its not Tris but here up to 15 vertices per polygons, and yes scanedge filler is done with vbxe, too. Dynamic blitlist from y1 to maxy per polygon :).

Link to comment
Share on other sites

First of all (and do keep that in mind while reading the rest of this post), great work Heaven and Axis!

 

Wow, I'd say it's faster than the ST!

Atari 800 with VBXE and 8mbit AtariMax flashcard

Its faster than ST on a 1,77 MHz 6502.

;)

 

A few facts about the STF version:

 

- It's playing a .mod soundtrack at 14.985kHz on the YM2149 (unless I fumbled up my calculations), this is VERY CPU intensive

- It's streaming polygon data from floppy while running the demo, also does not help on CPU usage!

 

Just as a test I disabled the .mod player while the demo was running - and only the player part mind you, not the mixer. The frame rate then skyrocketed :)

 

So IMHO the comparison was a bit apples vs oranges. Other than that, again: great work!

  • Like 3
Link to comment
Share on other sites

VBXE to calculate line slope ?

 

On a stock core that sounds sort of amazing to me. I looked into possible calculating options for VBXE, I think I even started a thread about it nearly 10 years ago.

With only 8 bit maths and no carry my finding was that the options are somewhat limited.

Though of course with multiple blit passes and a bit of thinking outside the box, stuff that's thought impossible might be done.

  • Like 1
Link to comment
Share on other sites

ok... Little bit more insight into slope calc...

 

More precise would be blitter filling the poly edges start values. The cpu makes the m=dx*1/dy = stepy value

 

Now I take a 64k count table so to say and copy that into the edge buffer. Basicly its an 8.8 table (0*256, 1*256, ...)

 

After polygon edges were filled in blitter calculates the span length by right edge minus left edge which is basicly

 

Span length = left edge + (right edge eor ff+1)

 

The 12bit limit of stepy is a limitation though and needs to be treated though.

 

So actually blitter does the 12bit add with help of that 8.8 table which holds basicly the accu ;)

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

That came to mind minutes after I posted... yeah, lookup tables I think was discussed before, I even thought of using a huge one just to take care of the missing carry thing.

 

Re real vs Altirra - I believe in the docs there's mention of timing accuracy. I think for VBXE blit operations, isn't it rounded to the scanline? So you'll end up with some discrepancies there. It's probably only ever going to be noticed in time critical stuff, or programs such as this where rendering is to be expected to exceed what can be done in a frame.

Link to comment
Share on other sites

Taking a different approach to skin the cat... substituting the VBXE for an UNO-Cart, leaving the 800 XL a stock machine.

This is a work-in-progress, e.g. plenty of scope for optimisation and should have a tune added, but does demonstrate that recent talk of folks falling out of favour with their UNO's is premature ;)

 

Here the original ST data file is being streamed from the SD-Card which doesn't really have a performance hit.

 

 

Remember too folks - work by the likes of Heaven also uncover emulation bugs (VBXE) that were shared with Avery and fixed and hence benefits the community :)

  • Like 10
Link to comment
Share on other sites

Hello Karolj

 

Mathy what is honestly standard? Mine is d6xx? And compo machine, too? Will prepare a NTSC and d7xx one.

 

Not a lot, but most PBI devices use $d6xx (and $d1xx), even those that don't really follow the standard, like MIO and BlackBox.

 

Sincerely

 

Mathy

Link to comment
Share on other sites

Its faster than ST on a 1,77 MHz 6502.

Really great job Heaven!

 

A few facts about the STF version:

 

- It's playing a .mod soundtrack at 14.985kHz on the YM2149 (unless I fumbled up my calculations), this is VERY CPU intensive

- It's streaming polygon data from floppy while running the demo, also does not help on CPU usage!

 

Just as a test I disabled the .mod player while the demo was running - and only the player part mind you, not the mixer. The frame rate then skyrocketed :)

 

So IMHO the comparison was a bit apples vs oranges. Other than that, again: great work!

Also worth to mention demo benefits from VBXE chunky mode (vs ST's bitplanes) and blitter (vs CPU in ST)

 

 

As I have no VBXE yet, would be cool to have demo working on stock graphics XL/XE, + working with Rapidus :)

Edited by Cyprian_K
Link to comment
Share on other sites

  • 2 months later...

As part of the preparation of the SillyPack 2k18 ( which usually gets totally out of my control once I try and start fixing other people's demos :-) , I have collaborated with Heaven to create a final version for the VBXE.

 

The original version of the demo was a cartridge-only release with VBXE fixed at $d600.

I have reworked that version to include automatic detection of the VBXE board and base address ($d600 or $d700).

For those who do not have cartridges, but 1MB or larger PORTB based memory expansions, I have not also created a DOS compatible XEX version.

Additional fixes included:

- OPTION disables the cartridge int he ROM/CAR version

- No crash anymore when pressing keys while the demo is running,

 

Before I put this officially out in the wild, I'd be very happy to receive feedback from testers who can test the currently build on their machines.

Here's the temporary download which contains all 4 versions (ROM/CAR/XEX/ATR) and a readme.

 

https://www.wudsn.com/tmp/heaven/st-niccc.zip

 

- Peter/JAC!

 

post-17404-0-32485600-1546986849.png

  • Like 2
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...