Difference between revisions of "Format:VID (SymbOS video files)"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(Web links: download link moved)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
This is a description of the VID format used for [[SymPlay]] in [[SymbOS]].
+
This is a description of the VID format used for [[SymPlay]] in [[SymbOS]]. This format is also supported in the [[PC-CPC]] emulator.
  
 
<pre>
 
<pre>
Line 19: Line 19:
 
movinflen  ds 3    ;total number of frames (24bit); the total number of seconds must not be above 65535
 
movinflen  ds 3    ;total number of frames (24bit); the total number of seconds must not be above 65535
 
                 ;*** frame specific
 
                 ;*** frame specific
movinfxln  dw 0    ;frame width  (only valid, if movinfdyn[bit0]==0)
+
movinfxln  dw 0    ;frame width  (only valid, if movinfflg[bit0]==0)
movinfyln  dw 0    ;frame height (only valid, if movinfdyn[bit0]==0)
+
movinfyln  dw 0    ;frame height (only valid, if movinfflg[bit0]==0)
movinfmod  db 0    ;screen mode  (only valid, if movinfdyn[bit1]==0) [1=4colours, 7=16colours]    *** MUST BE 1 ***
+
movinfmod  db 0    ;screen mode  (only valid, if movinfflg[bit1]==0) [1=4colours, 7=16colours]    *** MUST BE 1 or 7 ***
movinfcol  ds 2*16 ;colour table -> 16 x 12bit cpc plus colours (only valid, if movinfdyn[bit2]==0)*** IGNORED ***
+
movinfcol  ds 2*16 ;colour table -> 16 x 12bit cpc plus colours (only valid, if movinfflg[bit2]==0)*** IGNORED ***
 
movinfsiz  dw 0    ;size of each frame in bytes without header  (only valid, if movinfcrn==0);
 
movinfsiz  dw 0    ;size of each frame in bytes without header  (only valid, if movinfcrn==0);
 
                     ;total size with optional header MUST be divideable by 512!
 
                     ;total size with optional header MUST be divideable by 512!
Line 35: Line 35:
  
 
;### 128 byte frame header
 
;### 128 byte frame header
 +
;### only existing, if movinfflg>0 and movinfcrn>0; otherwise the bitmap data is starting directly
 
frminfbeg
 
frminfbeg
frminfxln  dw 0    ;frame width  (only valid, if movinfdyn[bit0]==1)
+
frminfxln  dw 0    ;frame width  (only valid, if movinfflg[bit0]==1)
frminfyln  dw 0    ;frame height (only valid, if movinfdyn[bit0]==1)
+
frminfyln  dw 0    ;frame height (only valid, if movinfflg[bit0]==1)
frminfmod  db 0    ;screen mode  (only valid, if movinfdyn[bit1]==1)
+
frminfmod  db 0    ;screen mode  (only valid, if movinfflg[bit1]==1)
frminfcol  ds 2*16 ;colour table -> 16 x 12bit cpc plus colours (only valid, if movinfdyn[bit2]==1)
+
frminfcol  ds 2*16 ;colour table -> 16 x 12bit cpc plus colours (only valid, if movinfflg[bit2]==1)
 
frminfsiz  dw 0    ;size of this frame in bytes without header  (only valid, if movinfcrn!=0)
 
frminfsiz  dw 0    ;size of this frame in bytes without header  (only valid, if movinfcrn!=0)
 
frminfact  ds 4    ;byte0=action -> 0=continue playing, 1=stop movie here (byte1=reason), 2=jump to frame [byte1-3]
 
frminfact  ds 4    ;byte0=action -> 0=continue playing, 1=stop movie here (byte1=reason), 2=jump to frame [byte1-3]
Line 58: Line 59:
 
==Web links==
 
==Web links==
  
* [http://www.symbos.de/download.htm#marke3 VID file downloads]
+
* [http://www.symbos.de/media.htm?3 VID file downloads]
  
 
[[Category:SymbOS]]
 
[[Category:SymbOS]]
 
[[Category:Programming]]
 
[[Category:Programming]]

Latest revision as of 06:02, 27 February 2024

This is a description of the VID format used for SymPlay in SymbOS. This format is also supported in the PC-CPC emulator.


;### 512 byte main header
movinfbeg
                ;*** general
movinfide   db "SymVid10"   ;identifier
movinfflg   db 0    ;flag field; if one flag is set, the regarding information is given in a 128byte header in each single frame,
                    ;if one flag is not set, the regarding information is given in this main header or nowhere;
                    ;if this byte is 0, all frames do not contain an additional header but only the screen data
                    ;0 (+1) -> size                                                                 *** NOT SUPPORTED ***
                    ;1 (+2) -> number of colours (mode 0/1/2)                                       *** NOT SUPPORTED ***
                    ;2 (+4) -> colour definition                                                    *** IGNORED ***
                    ;3 (+8) -> key controls
                    ;4(+16) -> subtitles
movinfcrn   db 0    ;crunch type (0=frames are not crunched)                                        *** MUST BE 0 ***
movinffps   db 0    ;frames per second (1-100)
movinflen   ds 3    ;total number of frames (24bit); the total number of seconds must not be above 65535
                ;*** frame specific
movinfxln   dw 0    ;frame width  (only valid, if movinfflg[bit0]==0)
movinfyln   dw 0    ;frame height (only valid, if movinfflg[bit0]==0)
movinfmod   db 0    ;screen mode  (only valid, if movinfflg[bit1]==0) [1=4colours, 7=16colours]     *** MUST BE 1 or 7 ***
movinfcol   ds 2*16 ;colour table -> 16 x 12bit cpc plus colours (only valid, if movinfflg[bit2]==0)*** IGNORED ***
movinfsiz   dw 0    ;size of each frame in bytes without header  (only valid, if movinfcrn==0);
                    ;total size with optional header MUST be divideable by 512!
                ;*** subtitles
movtitnum   db 0    ;number of presented languages (1-8; 0=no subtitles)
movtitdat   ds 8*16 ;8 x name (16 bytes, 0=terminator) of the language with ID 0-7
movtitnam   ds 32   ;movie name (terminated by 0)
movtitinf   ds 32   ;additional information (terminated by 0)
movinfenc   db 0    ;encoding type (0=CPC, 1=MSX)

movinfend   ds 512-movinfend+movinfbeg

;### 128 byte frame header
;### only existing, if movinfflg>0 and movinfcrn>0; otherwise the bitmap data is starting directly
frminfbeg
frminfxln   dw 0    ;frame width  (only valid, if movinfflg[bit0]==1)
frminfyln   dw 0    ;frame height (only valid, if movinfflg[bit0]==1)
frminfmod   db 0    ;screen mode  (only valid, if movinfflg[bit1]==1)
frminfcol   ds 2*16 ;colour table -> 16 x 12bit cpc plus colours (only valid, if movinfflg[bit2]==1)
frminfsiz   dw 0    ;size of this frame in bytes without header  (only valid, if movinfcrn!=0)
frminfact   ds 4    ;byte0=action -> 0=continue playing, 1=stop movie here (byte1=reason), 2=jump to frame [byte1-3]
frmkeynum   db 0    ;number of possible keys (0-8)
frmkeyfrm   ds 8*4  ;keycode (1byte) + destination frame (24bit)
frmtitact   db 0    ;0=don't change last subtitle, 1=delete last subtitle
frmtitdat   ds 128-frmtitdat+frminfbeg  ;subtitle data (maximum is about 50 bytes)
                    ;-> 1 byte=text length (0=data terminator), 1 byte=language id, x bytes=text

See also

Web links