pouët.net

This is World of Warcraft by Lanex [web]

This is World of WarCraft
-------------------------

demo for ZX Spectrum and MB03+ or eLeMeNt ZX, divSD, SAA,
TurboCPU and HiRes graphics mode "HRXC" (resolution of 512x192
pixels, with ZX attributes in 8x4 pixels)

Video data is compressed to 44 percent into a 27.4 MB file,
which is sequentially played from the SD card. The size of an
average image after compression is 6841 bytes, the data is
unpacked into a HRXC screen occupying 12288 + 3072 bytes
(pixels and attributes).

The compression used is a standard LnxSpectrum emulator´s
assembler routine (the same comppress routine is implemented
in the LnxCommander). Video screens 5 and 7 allow a screen
switching with a framebuffer (when one frame is finished,
videoRAMs are switched and then another frame is prepared).

The demo also works on 48k models. If set to mode 128,
the MB03+ interface can generate a second video frame
regardless of which machine it is connected to. The demo
therefore switches the MB03+ interface always to 128 mode.

On the eLeMeNt ZX with a 28 MHz CPU, an average image data flow
is 175 KB/s and reaches 24 FPS. On +2A with a 3.5 MHz processor
it makes about 36 KB/s and about 5 FPS. The video stream
efficiency is not yet optimal in this version, the amount of
data may be further reduced.

The video player does not use system timings or accelerated
memory pages of different speccy models, the author does not
support such differences in his programs or in the LnxSpectrum
emulator.

HRXC works with an index palette of 16 colors. Each color in
the palette is specified by three bytes. The color palette is
changed as needed. Some slow scenes have one common palette so
that an image does not flicker. On the other hand, fast scenes
have a dynamic palette, separate for each frame.

Graphics data does not include an audio track. The musical
background is provided by the SAA1099 soundchip. The tune was
composed in the LnxTracker. Music data is linked to a player
routine in the LnxAssembler:
https://wiki.ilnx.cz/doku.php/lnxtracker:export

The audio-video synchronization is based on the program's
precise clock, which determines when and which image to
display. If the stream is behind, the frame in the data is
skipped and a state of the synchronization is checked. In the
current version of the player, DMA transfer of the esxDOS must
be switched off (in the SYS/CONFIG/ESXDOS.CFG) for an
error-free synchronization.


Original video: https://www.youtube.com/watch?v=S5Hzh43k330