pouët.net

Go to bottom
PolyRoll by Bitbandit [web]
[nfo]
screenshot added by LBi on 2025-09-14 14:18:08
platform :
type :
release date : september 2025
release party : t0ad 2025
compo : pc 256b
ranked : 4th
  • 11
  • 2
  • 0
popularity : 49%
 49%
  • 0.85
alltime top: #33471
added on the 2025-09-14 14:18:05 by LBi LBi

popularity helper

increase the popularity of this prod by spreading this URL:

or via: facebook twitter pinterest tumblr bluesky threads

comments

nice, i thought it will be in the top3.. just like Final Bytes... came to fourth
rulez added on the 2025-09-14 14:37:07 by TomCatAbaddon TomCatAbaddon
💎
rulez added on the 2025-09-14 15:11:41 by p01 p01
Superb
rulez added on the 2025-09-14 15:37:22 by bitl bitl
Loved it! Congrats.
rulez added on the 2025-09-14 15:51:43 by iONic iONic
I liked this. Should have ranked in top 3.
rulez added on the 2025-09-14 16:46:55 by rudi rudi
Nice
rulez added on the 2025-09-14 17:19:36 by Jin X Jin X
Nice, but VBL sync would be nicer (or is it the recording?)
added on the 2025-09-14 18:05:07 by 42Bastian 42Bastian
Quote:
Nice, but VBL sync would be nicer (or is it the recording?)


It's the recording. The processing is halted to the next vsync interrupt. There was no screen tearing at the compo, or I just didn't notice. Maybe I should re-record it. :)
added on the 2025-09-14 19:30:20 by LBi LBi
Quote:
The processing is halted to the next vsync interrupt.


The "HLT" instruction doesn’t work that way. In DOS there’s no interrupt that would be synchronized with the screen refresh. In your case, HLT just pauses until the timer interrupt (which isn’t tied to vertical retrace).

So yes, your intro really does have artifacts caused by the lack of proper waiting for the start of the vertical blank.

But damn, it’s 256 bytes! And with beautiful filled 3D vectors! Who cares about the retrace.

P.S. 42Bastian, DOS doesn’t have built-in triangle filling functions, or any ready-made graphics routines at all, in case you didn’t know.
added on the 2025-09-14 20:18:54 by bitl bitl
Great, always nice to see polygons in 256'ers!
rulez added on the 2025-09-14 21:01:42 by Kuemmel Kuemmel
Cool, polygons are rare in 256b, most 3d prefer raymarch, voxel splat or other methods as polygons always seemed to need many steps to me. But I was thinking recently, the weighted average if a point is inside triangle method would be way more compact and easier than the traditional softrendering methods, and that makes it possible. And maybe that's what these recent tinytros are using?
rulez added on the 2025-09-14 21:46:59 by Optimus Optimus
Quote:
The "HLT" instruction doesn’t work that way. In DOS there’s no interrupt that would be synchronized with the screen refresh. In your case, HLT just pauses until the timer interrupt (which isn’t tied to vertical retrace).


AFAIK, it's not DOS, it's the VGA vertical blank IRQ which wakes up the CPU from halt. Other interrupts may also cause the halt to terminate, like timers, keyboard, com port etc. In my early attempts I tended to use the 0x3DA VGA register to learn the status of the vertical retrace, but that wastes too much precious space. A simple HLT is shorter. It's a common concept in 256b intros.

In the past, there were VGA cards that had a jumper that could disable the VGA IRQ. I have the Programmer's guide to the EGA, VGA and Super VGA Cards. It's 1600 pages. On page 364 it states: "in the EGA, when the vertical interrupt is enabled and a vertical retrace period occurs, an interrupt level 2 on a PC or level 9 on an AT is generated on the host processor". The Vertical Retrace End Register (both on EGA and VGA) has a DVI flag (bit 5) which is the Disable Vertical Interrupts flag.

However, you claim that it's not the VGA IRQ that wakes up the CPU, but a PIT interrupt? I have to investigate it. :)

Quote:
So yes, your intro really does have artifacts caused by the lack of proper waiting for the start of the vertical blank.


I rewatched the intro on my Core i5 laptop and I can confirm there's no tearing. However, if I swiping on the touchpad the movement is accelerating. This must be an other (mouse) interrupt which wakes up the cpu.

The tearing is only visible when I watched the intro via the HDMI capture. I have to switch to external display in the BIOS to be able to capture under FreeDOS. This way the BIOS itself can be seen via HDMI and the LCD is off. I suspect there's no VGA IRQ when using the HDMI. I have to test interrupts under FreeDOS to better understand what's going on.

Quote:
But damn, it’s 256 bytes! And with beautiful filled 3D vectors! Who cares about the retrace.


Thanks for the compliment!
added on the 2025-09-14 22:39:29 by LBi LBi
nice morphing shapes, not a common concept in 256 bytes =)

speaking of that IRQ discussion, it seems you're using HLT for timing, and it indeed halts the CPU until interrupt. in regular DOS environment, it's only IRQ0 active (which is usually ticking at 18.2 Hz) - there is no VGA IRQ enabled by default, not to mention support across VGA chips is vastly different (there is a long vogons thread with VGA IRQ testings but it's 5am to search for it =). however if you press keys on the keyboard, or as you said, touch the touchpad, they generate their own IRQs which also wake CPU up, hence the movement speedup :)
rulez added on the 2025-09-14 23:03:39 by wbcbz7 wbcbz7
Quote:
speaking of that IRQ discussion, it seems you're using HLT for timing, and it indeed halts the CPU until interrupt. in regular DOS environment, it's only IRQ0 active (which is usually ticking at 18.2 Hz) - there is no VGA IRQ enabled by default, not to mention support across VGA chips is vastly different (there is a long vogons thread with VGA IRQ testings but it's 5am to search for it =). however if you press keys on the keyboard, or as you said, touch the touchpad, they generate their own IRQs which also wake CPU up, hence the movement speedup :)


Both you and bitl must be right. I made a small test to compare the proper waiting for blanking period and the HLT method. I changed the background color before and after waiting for vsync. Waiting for bit 3 in 0x3DA gives a good result, but a simple HLT makes the screen flicker.

However, the intro has no visual tears on the LCD. So it must be a good balance between the HLT timing and the processing time of the polygons.
added on the 2025-09-15 01:00:20 by LBi LBi
Filled vectors with flat/normal shading in 256b.. can't complain!
rulez added on the 2025-09-15 01:12:08 by phoenix phoenix
neat
rulez added on the 2025-09-15 04:21:56 by provod provod

submit changes

if this prod is a fake, some info is false or the download link is broken,

do not post about it in the comments, it will get lost.

instead, click here !

[previous edits]

add a comment

Go to top