Saturday, November 07, 2009

Image to ZX Spec Tutorial

The video below shows the creation of a "Little Shop of Horrors" slideshow and it running in an emulator. The video explains all of Image to ZX Spec 1.0.5's settings but the principles are the same for 1.3.x too.

10 comments:

rogerjowett said...

hi
mb-02+ timex and 128 have two video ram pages cant we create an interlaced video resolution
multitech uses dma to enhance attribute squares to 8 pixels giving 12kb for screen same as sam mode 2 and timex
mode 4 sam is 16 colours from 128
mode 3 512x192 lie timex mode but 4 colours

how do we convert video to this format we now have atom lite massstorage on compact flash for sam (no dma unfortunately!)
i have some interlaced sam screens if you would care to take a look
rogerjowett@gmail.com

Benjamin said...

Hi Roger,

Unfortunately I'm not taking this project any further so won't be developing non standard screen modes however you're welcome to download the source code and add any modifications you want.

Image to ZX Spec will allow you to attach your own custom BASIC loader (as a tap file) to use instead of one of the Image to ZX Spec standard loaders if that helps?

All the best,

Benjamin

rogerjowett said...

debut here:

http://www.nchsoftware.com/capture/support.html

bmp2scr

http://members.inode.at/838331/index.html

retrox:

http://members.inode.at/838331/index.html

Benjamin said...

Hi Roger,

I should probably clarify my comment - I'm not enhancing my software, just adding in proxy support (see my latest blog posts). At a later date I may take this software more towards an art form and allow palettes to be swapped, attribute block size to be changed (the Spectrum "colour clash" size) and so forth.

I've seen retro-x and so on before - Image to ZX Spec doesn't really compete with them for additional features deliberately as it's more an image converter with features than an image editor (which IMHO can be better achieved in a real paint package).

All the best,

Benjamin

Anonymous said...

Hello,
glad you still Do devellope. question: an XVID avi is not readable, what is the expected AVI format ??

Benjamin said...

RAW and Cinepak AVI are supported - please read the readme.txt for full details.

Unknown said...

When I export my Animated gif as a gif for ZX Spectrum, it doesnt move!

Benjamin said...

The gif import does not support anim gifs and will use the first frame, thus it won't export it as an animated gif. Anim gif export only works for folders of images or video. As an aside video conversion can be slow using divx format since it's a pure software/Java based solution. If you can, convert your video to raw avi beforehand in another editor.

Unknown said...

I can't find any decent software to convert the video to raw avi!! any software suggestions?

Benjamin said...

The quickest way I can suggest is to use this: http://sourceforge.net/projects/camstudio/ to record the playing GIF - I'm assuming the AVI format it creates will be compatible.


I mention the following because I've recently been trying to profile the divx speed problem and found there was nothing I could do (and it might be useful for others to know).

Part of the problem with i2zxspec video conversion is that in order to keep it compatible with all operating systems and Java web start (browser capable) I can't include high performance operating system specific video decoders since these require installing separately. As a consequence the decoding stage is done on a single cpu core through an old, third party no longer supported, divx Java software decoder.
The conversion engine, the bit that I wrote to do the spectrum encoding is multi core and actually relatively fast, but in order to feed it data fast enough from the video decoder remember to use raw/un-encoded compression or (if I remember - MS Video- encoding might also be suitable), in the Camstudio settings.

On a 2.2Ghz Core i5 you can expect around 20-40 frames per second for raw (depending on options/resolution) or for divx 0-10 frames per second (it slows down the further it gets through the video as it has trouble seeking video frames - I suspect this is a bug with the divx JFFMPEG decoder).