scene.org File Archive

File download

<root>­/­demos­/­artists­/­amidog­/­psx/amidog-tajmiing.zip

File size:
461 838 bytes (451.01K)
File date:
2023-08-27 05:45:02
Download count:
all-time: 6

Preview

  • tajmiing.bin 1.68M
  • tajmiing.cue 71B
  • tajmiing.exe 1.12M
  • tajmiing.txt 2.31K

file_id.diz

This is Tajmiing - "oldskool effects - the oldskool way" - in 2016.

All effects in this PSX/PS1/PSOne demo are created by modifying the display
registers. No polygons are rendered.

This demo should work on both PAL and NTSC units and has been tested on:

SCPH-7002 (PS1, PAL)
SCPH-102 (PSOne, PAL)
SCPH-7501 (PS1, NTSC)

Credits:

Code : AmiDog
Logos: http://cooltext.com/
Music: Jogeir Liljedahl

Notes about some of the effects:

* Rotating star
This is the reason I decided to create this little demo. Back in 2014 I noticed
that the display disable control command didn't actually disable anything, it
just told the GPU to output black pixels. And more importantly, it can be used
in the middle of a rasterline. It was only a matter of figuring out a way to
sync the GPU writes with the GPU clock to allow stable enabling/disabling.

* Upscroller with stretched pixels
And this is the reason why this little demo hasn't been released until now. I
was writing some tests last year to figure out when certain display settings
could be changed and noticed I got something that looked like a stretched
pixel. Turns out it actually was a stretched pixel.
  The GPU decides when it's time to output a new pixel by using a 4-bit
counter. One can tell the GPU to output a new pixel when the counter reaches
the value 4, 5, 7, 8 or 10. Which results in horizontal resolutions from 256
to 640 pixels.
  If one set the GPU to output a pixel when the counter reaches 10, waits until
it has reached 5 or more, and then set the GPU to output a pixel when the
counter reaches 4, the counter will continue counting past 10. It wraps around
from 15 to 0 and then outputs a new pixel when the counter equals 4. This
results in a pixel which is twice as wide as normal (16 + 4 = 20). As long as
one keeps changing the value so that there is no match, the GPU will keep
outputing the same pixel, allowing it to be stretched to any width.

* Bouncing ball
The ball is created by modifying the horizontal display start/end each
rasterline to create a somewhat elliptical display, which is why the contents
of the video RAM doesn't look anything like a ball.

Contact:

Write to me at: maro [at] amidog [dot] se
Get latest version from: http://psx.amidog.se

History:

1.1 (2016-03-03): Fixed timing to work on NTSC units as well as PAL units.
1.0 (2016-02-14): First release.