nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 17:06



Reply to topic  [ 119 posts ]  Go to page 1, 2, 3, 4, 5 ... 8  Next
Sprinter Video System (SVS) 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Господа, я тут в течение последних трех лет периодически работаю над проектом под названием SVS (Sprinter Video System) - видеоформат и видеопроигрыватель непосредственно использующий акселератор для ускоренной отрисовки. Многое уже сделано (сконверчено несколько видеороликов), но я нарвался на непонимание реального Спринтера - эмуль эмулит все как надо, а вот железо рисует на экране всякий мусор - как будто часть акселераторных процедур понято мной (и соответственно реализовано в эмуляторе) неправильно - либо еще что. Нужен реальный опыт юзанья акселератора в графике! А именно есть ли грабли и где?

P.S. В апреле 2012 добавил сюда описание формата SVS:

Code:
Первые 16 байт файла - заголовок:
4 байта - сигнатура "SVS1"
2 байта - размер по горизонтали (сейчас всегда 320)
2 байта - размер по вертикали (сейчас всегда 256)
4 байта - nf=0 (непомню что такое)
1 байт - fps (частота кадров в секунду)
1 байт - attr=0 (пока атрибутов нет)
2 байта - freq=0 (частота звука - если нету звука, то 0)
Далее идёт поток байтов - команды с атрибутами и без (ниже N означает кол-во, причём при N=0 кол-во берётся равным 256):
#00 N С - вывод N одинаковых точек от текущего места вниз (цвет точек задаётся индексом C в палитре) с увеличением текущей координаты Y на N
#01 C - вывести одну точку цветом C (индекс в палитре) в текущее место и увеличить координату Y на единицу
#02 C - вывести две одинаковых точки с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 2
#03 C - вывести три одинаковых точки с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 3
#04 C - вывести четыре одинаковых точки с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 4
#05 C - вывести пять одинаковых точки с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 5
#06 C - вывести шесть одинаковых точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 6
#07 C - вывести семь одинаковых точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 7
#08 C - вывести восемь одинаковых точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 8
#09 C - вывести одинаковых девять точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 9
#0A C - вывести десять одинаковых точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 10
#0B C - вывести одинаковых одиннадцать точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 11
#0C C - вывести двендалцать одинаковых точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 12
#0D C - вывести тринадцать одинаковых точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 13
#0E C - вывести четырнадцать одинаковых точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 14
#0F C - вывести пятнадцать одинаковых точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 15
#10 N ... - вывод N точек от текущего места вниз (точки задаются индексами в палитре) с увеличением текущей координаты Y на N
#11 C1 - вывести одну точку цветом C1 (индекс в палитре) в текущее место и увеличить координату Y на единицу
#12 C1 C2 - вывести две точки начиная с текущего места вниз с увеличением текущей координаты Y на 2
#13 C1 C2 C3 - вывести три точки начиная с текущего места вниз с увеличением текущей координаты Y на 3
#14 C1 C2 C3 С4 - вывести четыре точки начиная с текущего места вниз с увеличением текущей координаты Y на 4
#15 C1 C2 C3 С4 С5 - вывести пять точки начиная с текущего места вниз с увеличением текущей координаты Y на 5
#16 C1 C2 C3 С4 С5 С6  - вывести шесть точек начиная с текущего места вниз с увеличением текущей координаты Y на 6
#17 C1 C2 C3 С4 С5 С6 С7 - вывести семь точек начиная с текущего места вниз с увеличением текущей координаты Y на 7
#18 C1 C2 C3 С4 С5 С6 С7 С8 - вывести восемь точек начиная с текущего места вниз с увеличением текущей координаты Y на 8
#19 C1 C2 C3 С4 С5 С6 С7 С8 С9 - вывести девять точек начиная с текущего места вниз с увеличением текущей координаты Y на 9
#1A C1 C2 C3 С4 С5 С6 С7 C8 C9 C10 - вывести десять точек начиная с текущего места вниз с увеличением текущей координаты Y на 10
#1B C1 C2 C3 С4 С5 С6 С7 C8 C9 C10 C11 - вывести одиннадцать точек начиная с текущего места вниз с увеличением текущей координаты Y на 11
#1C C1 C2 C3 С4 С5 С6 С7 C8 C9 C10 С11 С12 - вывести двендалцать точек начиная с текущего места вниз с увеличением текущей координаты Y на 12
#1D C1 C2 C3 С4 С5 С6 С7 C8 C9 C10 С11 С12 С13 - вывести тринадцать точек начиная с текущего места вниз с увеличением текущей координаты Y на 13
#1E C1 C2 C3 С4 С5 С6 С7 C8 C9 C10 С11 С12 С13 С14 - вывести четырнадцать точек начиная с текущего места вниз с увеличением текущей координаты Y на 14
#1F C1 C2 C3 С4 С5 С6 С7 C8 C9 C10 С11 С12 С13 С14 С15 - вывести пятнадцать точек начиная с текущего места вниз с увеличением текущей координаты Y на 15
#20 - пока не используется
#21 - копирование предыдущего столбца
#22...#2F - пока не используются, но в будущем можно задействовать как команды копирования других предыдущих столбцов
#30...#3F - пока не используется, но в будущем можно задействовать как команды копирования из столбцов справа (оставшихся от предыдущего кадра)
#40...#5F - пока не используется
#60 N - переместить текущую координату X вправо на N столбцов, сбросив при этом текущую координату Y (при этом в пропущенных столбцах будет "просвечивать" предыдущий кадр)
#61 - переместить текущую координату X вправо на 1 столбец, сбросив при этом текущую координату Y
#62 - переместить текущую координату X вправо на 2 столбцa, сбросив при этом текущую координату Y
#63 - переместить текущую координату X вправо на 3 столбца, сбросив при этом текущую координату Y
#64 - переместить текущую координату X вправо на 4 столбца, сбросив при этом текущую координату Y
#65 - переместить текущую координату X вправо на 5 столбцов, сбросив при этом текущую координату Y
#66 - переместить текущую координату X вправо на 6 столбцов, сбросив при этом текущую координату Y
#67 - переместить текущую координату X вправо на 7 столбцов, сбросив при этом текущую координату Y
#68 - переместить текущую координату X вправо на 8 столбцов, сбросив при этом текущую координату Y
#69 - переместить текущую координату X вправо на 9 столбцов, сбросив при этом текущую координату Y
#6A - переместить текущую координату X вправо на 10 столбцов, сбросив при этом текущую координату Y
#6B - переместить текущую координату X вправо на 11 столбцов, сбросив при этом текущую координату Y
#6C - переместить текущую координату X вправо на 12 столбцов, сбросив при этом текущую координату Y
#6D - переместить текущую координату X вправо на 13 столбцов, сбросив при этом текущую координату Y
#6E - переместить текущую координату X вправо на 14 столбцов, сбросив при этом текущую координату Y
#6F - переместить текущую координату X вправо на 15 столбцов, сбросив при этом текущую координату Y
#70 N - переместить текущую координату Y вниз на N пикселов, оставив неизменной текущую координату X (при этом в пропущенных пикселах будет "просвечивать" предыдущий кадр)
#71- переместить текущую координату Y вниз на 1 пиксел, оставив неизменной текущую координату X
#72- переместить текущую координату Y вниз на 2 пиксела, оставив неизменной текущую координату X
#73- переместить текущую координату Y вниз на 3 пиксела, оставив неизменной текущую координату X
#74- переместить текущую координату Y вниз на 4 пиксела, оставив неизменной текущую координату X
#75- переместить текущую координату Y вниз на 5 пикселов, оставив неизменной текущую координату X
#76- переместить текущую координату Y вниз на 6 пикселов, оставив неизменной текущую координату X
#77- переместить текущую координату Y вниз на 7 пикселов, оставив неизменной текущую координату X
#78- переместить текущую координату Y вниз на 8 пикселов, оставив неизменной текущую координату X
#79- переместить текущую координату Y вниз на 9 пикселов, оставив неизменной текущую координату X
#7A- переместить текущую координату Y вниз на 10 пикселов, оставив неизменной текущую координату X
#7B- переместить текущую координату Y вниз на 11 пикселов, оставив неизменной текущую координату X
#7C- переместить текущую координату Y вниз на 12 пикселов, оставив неизменной текущую координату X
#7D- переместить текущую координату Y вниз на 13 пикселов, оставив неизменной текущую координату X
#7E- переместить текущую координату Y вниз на 14 пикселов, оставив неизменной текущую координату X
#7F- переместить текущую координату Y вниз на 15 пикселов, оставив неизменной текущую координату X
#80 N C B1 G1 R1 B2 G2 R2 ... -  сохранить палитру из N цветовых составляющих B/G/R, начиная с индекса C
#81 C B G R - сохранить один цвет в палитре
#82 C B1 G1 R1 B2 G2 R2 - сохранить 2 цвета в палитре, начиная с индекса C
#83 C B1 G1 R1 B2 G2 R2 B3 G3 R3 - сохранить 3 цвета в палитре, начиная с индекса C
#84 C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 - сохранить 4 цвета в палитре, начиная с индекса C
#85 C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 - сохранить 5 цветов в палитре, начиная с индекса C
#86 C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 - сохранить 6 цветов в палитре, начиная с индекса C
#87 C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 - сохранить 7 цветов в палитре, начиная с индекса C
#88 C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 B8 G8 R8 - сохранить 8 цветов в палитре, начиная с индекса C
#89 C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 B8 G8 R8 B9 G9 R9 - сохранить 9 цветов в палитре, начиная с индекса C
#8A C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 B8 G8 R8 B9 G9 R9 B10 G10 R10 - сохранить 10 цветов в палитре, начиная с индекса C
#8B C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 B8 G8 R8 B9 G9 R9 B10 G10 R10 B11 G11 R11 - сохранить 11 цветов в палитре, начиная с индекса C
#8C C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 B8 G8 R8 B9 G9 R9 B10 G10 R10 B11 G11 R11 B12 G12 R12 - сохранить 12 цветов в палитре, начиная с индекса C
#8D C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 B8 G8 R8 B9 G9 R9 B10 G10 R10 B11 G11 R11 B12 G12 R12 B13 G13 R13 - сохранить 13 цветов в палитре, начиная с индекса C
#8E C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 B8 G8 R8 B9 G9 R9 B10 G10 R10 B11 G11 R11 B12 G12 R12 B13 G13 R13 B14 G14 R14 - сохранить 14 цветов в палитре, начиная с индекса C
#8F C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 B8 G8 R8 B9 G9 R9 B10 G10 R10 B11 G11 R11 B12 G12 R12 B13 G13 R13 B14 G14 R14 B15 G15 R15 - сохранить 15 цветов в палитре, начиная с индекса C
#90...#ED - пока не используются
#EE - метка конца фильма (подразумевалась как команда зацикливания)
#F0 B0 B1 B2 - метка начала нового кадра с 3-байтным номером, сохранённым в little-endian (Fn=B0+B1*256+B2*65536), эта команда сбрасывает текущие координаты X и Y в начало (левый-верхний угол)
#F1...#FE - пока не используется
#FF - метка окончания данных в текущем сегменте (используется как команда на загрузку очередной порции данных в 16K)

_________________
:dj: https://mastodon.social/@Shaos


26 Jun 2005 20:06
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Post 
Вот исходники старого видео-плеера (под спойлером):

 SVS_VIEW.ASM
Code:
   ORG   #8100-512

   DB   "EXE"   ;EXE ID
   DB   #00   ;EXE VERSION
   DW   #0200   ;CODE OFFSET LOW
   DW   #0000   ;CODE OFFSET HIGH
   DW   #0000   ;END-BEG ;PRIMARY LOADER
   DW   #0000   ;
   DW   #0000   ;RESERVED
   DW   #0000   ;
   DW   #8100   ;LOAD ADDRESS
   DW   #8100   ;START ADDRESS
   DW   #C000   ;STACK ADDRESS
   DS   490

ABUF   equ   4000h
SBUF   equ   4000h

start:   push   ix   ; save address of arguments

   ld   c,#51
   rst   10h
   ld   c,a
   push   bc
   pop   hl
   ld   (oldmode),hl

   ld   a,81h
   ld   c,#50
   ld   b,0
   rst   10h

   pop   hl      ; address of arguments
   ld   a,(hl)   ; arguments length
   push   af

bmp1:   inc   hl
   ld   a,(hl)
   cp   #20
   jp   z,bmp1
   ld   de,name_
   pop   af
   call   acopy
   call   loadsvs

   ld   c,#30
   rst   10h

exit:   ld   hl,(oldmode)
   push   hl
   pop   bc
   ld   a,c
   ld   c,#50
   rst   10h
   ld   c,#41
   rst   10h
   ret

oldmode dw   0
oldwin_   db   0
handle_   db   0
mem   db   0
xcoord   dw   0

name_   ds   16
pal_   ds   1024

loadsvs:
   ld   hl,name_
   ld   c,11h
   ld   a,1
   rst   10h
   jr   c,any_error_3
   ld   (handle_),a
   
   ld   c,15h
   ld   a,(handle_)
   ld   b,0
   ld   hl,0
   ld   ix,10h
   rst   10h
   jr      c,any_error_2

   ld   b,1
   ld   c,3Dh
   rst   10h
   jr   c,any_error_2
   ld   (mem),a
   ld   b,0
   ld   c,39h
   rst   10h
   jr   c,any_error_2

   in   a,(0E2h)
   ld   (oldwin_),a
   ld   a,50h
   out   (0E2h),a
loopr:
   ld   c,13h
   ld   a,(handle_)
   ld   de,SBUF
   ld   hl,ABUF
   rst   10h
   jr      c,any_error_1
   ld   hl,ABUF
loopp:
   ld   a,(hl)
   inc   hl
   call   SVS
   ld   a,h
   or   a
   jr   nz,loopp

any_error_1:

   ld   a,(oldwin_)
   out   (0E2h),a

any_error_2:

   ld   c,12h
   ld   a,(handle_)
   rst   10h
   jr   c,any_error_3

any_error_3:

        ld   a,#FF
   out   (89h),a

   ret

; a - number
; hl - source
; de - destination

acopy:
   ld   (acopyn+1),a
   di   
   ld   d,d
acopyn:   ld   a,0
   ld   b,b
   ld   l,l
   ld   a,(hl)
   ld   (de),a
   ld   b,b
   ei
        ret

; a - number
; save hl

svs_fill:
   ld   c,(hl)
   inc   hl
   push   hl
   ld   (svs_fi1+1),a
   ld   hl,(xcoord)
   di   
   ld   d,d
svs_fi1   ld   a,0
   ld   b,b
   ld   a,c
   ld   e,e
   ld   (hl),a
   ld   b,b
   ei
   pop   hl
   ret

; a - number
; save hl

svs_copy:
   push   hl
   ld   d,0
   ld   e,a
   or   a
   jr   nz,svs_copy1
   inc   d
svs_copy1:
   add   hl,de
   pop   de
   push   hl
   ld   (svs_co1+1),a
   ld   hl,(xcoord)
   ex   de,hl
   di   
   ld   d,d
svs_co1   ld   a,0
   ld   b,b
   ld   l,l
   ld   a,(hl)
   ld   b,b
   ld   a,a
   ld   (de),a
   ld   b,b
   ei
   pop   hl
   ret

; save hl

svs_vcopym1:
   push   hl
   ld   hl,(xcoord)
   ld   d,h
   ld   e,l
   dec   hl
   di   
   ld   d,d
   ld   a,0
   ld   b,b
   ld   a,a
   ld   a,(hl)
   ld   (de),a
   ld   b,b
   ei
   pop   hl
   ret

; a - number
; save hl

svs_xadd:
   push   hl
   ld   hl,(xcoord)
   ld   d,0
   ld   e,a
   or   a
   jr   nz,svs_xadd1
   inc   d
svs_xadd1:
   add   hl,de
   ld   (xcoord),hl
   pop   hl
   xor   a
   out   (89h),a
   ret

; a - number
; save hl

svs_yadd:
   ld   c,a
   in   a,(89h)
   add     a,c
   out   (89h),a
   ret

; a - number
; save hl

svs_pal:
   ld   b,a
   ld   c,(hl)
   inc   hl
   ld   de,pal_
svs_pal1:
   push   af
   ld   a,(hl)
   ex   de,hl
   ld   (hl),a
   ex   de,hl
   inc   hl
   inc   de
   ld   a,(hl)
   ex   de,hl
   ld   (hl),a
   ex   de,hl
   inc   hl
   inc   de
   ld   a,(hl)
   ex   de,hl
   ld   (hl),a
   inc   hl
   inc   de
   ld   (hl),0
   ex   de,hl
   inc   de
   pop   af
   dec   a
   jp   nz,svs_pal1
   push   hl
   ld   d,b
   ld   e,c
   ld   bc,#FFA4
   ld   hl,pal_
   rst   #08
   pop   hl
   ret

svs_err:
   ex   de,hl
   ld   hl,svs_err1
   inc   hl
   ld   (hl),e
   inc   hl
   ld   (hl),d
svs_err1:
   ld   bc,0
   ld   h,0
   ret

; a - command

SVS:    ex   de,hl
   ld   c,a
        ld   b,0
        ld   hl,SVSBASE
        add   hl,bc
        add   hl,bc
        add   hl,bc
        jp   (hl)

SVSBASE:
        jp SVS_00
        jp SVS_01
        jp SVS_02
        jp SVS_03
        jp SVS_04
        jp SVS_05
        jp SVS_06
        jp SVS_07
        jp SVS_08
        jp SVS_09
        jp SVS_0A
        jp SVS_0B
        jp SVS_0C
        jp SVS_0D
        jp SVS_0E
        jp SVS_0F
        jp SVS_10
        jp SVS_11
        jp SVS_12
        jp SVS_13
        jp SVS_14
        jp SVS_15
        jp SVS_16
        jp SVS_17
        jp SVS_18
        jp SVS_19
        jp SVS_1A
        jp SVS_1B
        jp SVS_1C
        jp SVS_1D
        jp SVS_1E
        jp SVS_1F
        jp SVS_20
        jp SVS_21
        jp SVS_22
        jp SVS_23
        jp SVS_24
        jp SVS_25
        jp SVS_26
        jp SVS_27
        jp SVS_28
        jp SVS_29
        jp SVS_2A
        jp SVS_2B
        jp SVS_2C
        jp SVS_2D
        jp SVS_2E
        jp SVS_2F
        jp SVS_30
        jp SVS_31
        jp SVS_32
        jp SVS_33
        jp SVS_34
        jp SVS_35
        jp SVS_36
        jp SVS_37
        jp SVS_38
        jp SVS_39
        jp SVS_3A
        jp SVS_3B
        jp SVS_3C
        jp SVS_3D
        jp SVS_3E
        jp SVS_3F
        jp SVS_40
        jp SVS_41
        jp SVS_42
        jp SVS_43
        jp SVS_44
        jp SVS_45
        jp SVS_46
        jp SVS_47
        jp SVS_48
        jp SVS_49
        jp SVS_4A
        jp SVS_4B
        jp SVS_4C
        jp SVS_4D
        jp SVS_4E
        jp SVS_4F
        jp SVS_50
        jp SVS_51
        jp SVS_52
        jp SVS_53
        jp SVS_54
        jp SVS_55
        jp SVS_56
        jp SVS_57
        jp SVS_58
        jp SVS_59
        jp SVS_5A
        jp SVS_5B
        jp SVS_5C
        jp SVS_5D
        jp SVS_5E
        jp SVS_5F
        jp SVS_60
        jp SVS_61
        jp SVS_62
        jp SVS_63
        jp SVS_64
        jp SVS_65
        jp SVS_66
        jp SVS_67
        jp SVS_68
        jp SVS_69
        jp SVS_6A
        jp SVS_6B
        jp SVS_6C
        jp SVS_6D
        jp SVS_6E
        jp SVS_6F
        jp SVS_70
        jp SVS_71
        jp SVS_72
        jp SVS_73
        jp SVS_74
        jp SVS_75
        jp SVS_76
        jp SVS_77
        jp SVS_78
        jp SVS_79
        jp SVS_7A
        jp SVS_7B
        jp SVS_7C
        jp SVS_7D
        jp SVS_7E
        jp SVS_7F
        jp SVS_80
        jp SVS_81
        jp SVS_82
        jp SVS_83
        jp SVS_84
        jp SVS_85
        jp SVS_86
        jp SVS_87
        jp SVS_88
        jp SVS_89
        jp SVS_8A
        jp SVS_8B
        jp SVS_8C
        jp SVS_8D
        jp SVS_8E
        jp SVS_8F
        jp SVS_90
        jp SVS_91
        jp SVS_92
        jp SVS_93
        jp SVS_94
        jp SVS_95
        jp SVS_96
        jp SVS_97
        jp SVS_98
        jp SVS_99
        jp SVS_9A
        jp SVS_9B
        jp SVS_9C
        jp SVS_9D
        jp SVS_9E
        jp SVS_9F
        jp SVS_A0
        jp SVS_A1
        jp SVS_A2
        jp SVS_A3
        jp SVS_A4
        jp SVS_A5
        jp SVS_A6
        jp SVS_A7
        jp SVS_A8
        jp SVS_A9
        jp SVS_AA
        jp SVS_AB
        jp SVS_AC
        jp SVS_AD
        jp SVS_AE
        jp SVS_AF
        jp SVS_B0
        jp SVS_B1
        jp SVS_B2
        jp SVS_B3
        jp SVS_B4
        jp SVS_B5
        jp SVS_B6
        jp SVS_B7
        jp SVS_B8
        jp SVS_B9
        jp SVS_BA
        jp SVS_BB
        jp SVS_BC
        jp SVS_BD
        jp SVS_BE
        jp SVS_BF
        jp SVS_C0
        jp SVS_C1
        jp SVS_C2
        jp SVS_C3
        jp SVS_C4
        jp SVS_C5
        jp SVS_C6
        jp SVS_C7
        jp SVS_C8
        jp SVS_C9
        jp SVS_CA
        jp SVS_CB
        jp SVS_CC
        jp SVS_CD
        jp SVS_CE
        jp SVS_CF
        jp SVS_D0
        jp SVS_D1
        jp SVS_D2
        jp SVS_D3
        jp SVS_D4
        jp SVS_D5
        jp SVS_D6
        jp SVS_D7
        jp SVS_D8
        jp SVS_D9
        jp SVS_DA
        jp SVS_DB
        jp SVS_DC
        jp SVS_DD
        jp SVS_DE
        jp SVS_DF
        jp SVS_E0
        jp SVS_E1
        jp SVS_E2
        jp SVS_E3
        jp SVS_E4
        jp SVS_E5
        jp SVS_E6
        jp SVS_E7
        jp SVS_E8
        jp SVS_E9
        jp SVS_EA
        jp SVS_EB
        jp SVS_EC
        jp SVS_ED
        jp SVS_EE
        jp SVS_EF
        jp SVS_F0
        jp SVS_F1
        jp SVS_F2
        jp SVS_F3
        jp SVS_F4
        jp SVS_F5
        jp SVS_F6
        jp SVS_F7
        jp SVS_F8
        jp SVS_F9
        jp SVS_FA
        jp SVS_FB
        jp SVS_FC
        jp SVS_FD
        jp SVS_FE
        jp SVS_FF

SVS_00: ex   de,hl
   ld   a,(hl)
   inc   hl
   jp   svs_fill

SVS_01: ex   de,hl
   ld   a,1
   jp   svs_fill

SVS_02: ex   de,hl
   ld   a,2
   jp   svs_fill

SVS_03: ex   de,hl
   ld   a,3
   jp   svs_fill

SVS_04: ex   de,hl
   ld   a,4
   jp   svs_fill

SVS_05: ex   de,hl
   ld   a,5
   jp   svs_fill

SVS_06: ex   de,hl
   ld   a,6
   jp   svs_fill

SVS_07: ex   de,hl
   ld   a,7
   jp   svs_fill

SVS_08: ex   de,hl
   ld   a,8
   jp   svs_fill

SVS_09: ex   de,hl
   ld   a,9
   jp   svs_fill

SVS_0A: ex   de,hl
   ld   a,10
   jp   svs_fill

SVS_0B: ex   de,hl
   ld   a,11
   jp   svs_fill

SVS_0C: ex   de,hl
   ld   a,12
   jp   svs_fill

SVS_0D: ex   de,hl
   ld   a,13
   jp   svs_fill

SVS_0E: ex   de,hl
   ld   a,14
   jp   svs_fill

SVS_0F: ex   de,hl
   ld   a,15
   jp   svs_fill

SVS_10: ex   de,hl
   ld   a,(hl)
   inc   hl
   jp   svs_copy

SVS_11: ex   de,hl
   ld   a,1
   jp   svs_copy

SVS_12: ex   de,hl
   ld   a,2
   jp   svs_copy

SVS_13: ex   de,hl
   ld   a,3
   jp   svs_copy

SVS_14: ex   de,hl
   ld   a,4
   jp   svs_copy

SVS_15: ex   de,hl
   ld   a,5
   jp   svs_copy

SVS_16: ex   de,hl
   ld   a,6
   jp   svs_copy

SVS_17: ex   de,hl
   ld   a,7
   jp   svs_copy

SVS_18: ex   de,hl
   ld   a,8
   jp   svs_copy

SVS_19: ex   de,hl
   ld   a,9
   jp   svs_copy

SVS_1A: ex   de,hl
   ld   a,10
   jp   svs_copy

SVS_1B: ex   de,hl
   ld   a,11
   jp   svs_copy

SVS_1C: ex   de,hl
   ld   a,12
   jp   svs_copy

SVS_1D: ex   de,hl
   ld   a,13
   jp   svs_copy

SVS_1E: ex   de,hl
   ld   a,14
   jp   svs_copy

SVS_1F: ex   de,hl
   ld   a,15
   jp   svs_copy

SVS_20: ex   de,hl
   ld   a,#20
   jp   svs_err

SVS_21: ex   de,hl
        jp   svs_vcopym1

SVS_22: ex   de,hl
   ld   a,#22
   jp   svs_err

SVS_23: ex   de,hl
   ld   a,#23
   jp   svs_err

SVS_24: ex   de,hl
   ld   a,#24
   jp   svs_err

SVS_25: ex   de,hl
   ld   a,#25
   jp   svs_err

SVS_26: ex   de,hl
   ld   a,#26
   jp   svs_err

SVS_27: ex   de,hl
   ld   a,#27
   jp   svs_err

SVS_28: ex   de,hl
   ld   a,#28
   jp   svs_err

SVS_29: ex   de,hl
   ld   a,#29
   jp   svs_err

SVS_2A: ex   de,hl
   ld   a,#2A
   jp   svs_err

SVS_2B: ex   de,hl
   ld   a,#2B
   jp   svs_err

SVS_2C: ex   de,hl
   ld   a,#2C
   jp   svs_err

SVS_2D: ex   de,hl
   ld   a,#2D
   jp   svs_err

SVS_2E: ex   de,hl
   ld   a,#2E
   jp   svs_err

SVS_2F: ex   de,hl
   ld   a,#2F
   jp   svs_err

SVS_30: ex   de,hl
   ld   a,#30
   jp   svs_err

SVS_31: ex   de,hl
   ld   a,#31
   jp   svs_err

SVS_32: ex   de,hl
   ld   a,#32
   jp   svs_err

SVS_33: ex   de,hl
   ld   a,#33
   jp   svs_err

SVS_34: ex   de,hl
   ld   a,#34
   jp   svs_err

SVS_35: ex   de,hl
   ld   a,#35
   jp   svs_err

SVS_36: ex   de,hl
   ld   a,#36
   jp   svs_err

SVS_37: ex   de,hl
   ld   a,#37
   jp   svs_err

SVS_38: ex   de,hl
   ld   a,#38
   jp   svs_err

SVS_39: ex   de,hl
   ld   a,#39
   jp   svs_err

SVS_3A: ex   de,hl
   ld   a,#3A
   jp   svs_err

SVS_3B: ex   de,hl
   ld   a,#3B
   jp   svs_err

SVS_3C: ex   de,hl
   ld   a,#3C
   jp   svs_err

SVS_3D: ex   de,hl
   ld   a,#3D
   jp   svs_err

SVS_3E: ex   de,hl
   ld   a,#3E
   jp   svs_err

SVS_3F: ex   de,hl
   ld   a,#3F
   jp   svs_err

SVS_40: ex   de,hl
   ld   a,#40
   jp   svs_err

SVS_41: ex   de,hl
   ld   a,#41
   jp   svs_err

SVS_42: ex   de,hl
   ld   a,#42
   jp   svs_err

SVS_43: ex   de,hl
   ld   a,#43
   jp   svs_err

SVS_44: ex   de,hl
   ld   a,#44
   jp   svs_err

SVS_45: ex   de,hl
   ld   a,#45
   jp   svs_err

SVS_46: ex   de,hl
   ld   a,#46
   jp   svs_err

SVS_47: ex   de,hl
   ld   a,#47
   jp   svs_err

SVS_48: ex   de,hl
   ld   a,#48
   jp   svs_err

SVS_49: ex   de,hl
   ld   a,#49
   jp   svs_err

SVS_4A: ex   de,hl
   ld   a,#4A
   jp   svs_err

SVS_4B: ex   de,hl
   ld   a,#4B
   jp   svs_err

SVS_4C: ex   de,hl
   ld   a,#4C
   jp   svs_err

SVS_4D: ex   de,hl
   ld   a,#4D
   jp   svs_err

SVS_4E: ex   de,hl
   ld   a,#4E
   jp   svs_err

SVS_4F: ex   de,hl
   ld   a,#4F
   jp   svs_err

SVS_50: ex   de,hl
   ld   a,#50
   jp   svs_err

SVS_51: ex   de,hl
   ld   a,#51
   jp   svs_err

SVS_52: ex   de,hl
   ld   a,#52
   jp   svs_err

SVS_53: ex   de,hl
   ld   a,#53
   jp   svs_err

SVS_54: ex   de,hl
   ld   a,#54
   jp   svs_err

SVS_55: ex   de,hl
   ld   a,#55
   jp   svs_err

SVS_56: ex   de,hl
   ld   a,#56
   jp   svs_err

SVS_57: ex   de,hl
   ld   a,#57
   jp   svs_err

SVS_58: ex   de,hl
   ld   a,#58
   jp   svs_err

SVS_59: ex   de,hl
   ld   a,#59
   jp   svs_err

SVS_5A: ex   de,hl
   ld   a,#5A
   jp   svs_err

SVS_5B: ex   de,hl
   ld   a,#5B
   jp   svs_err

SVS_5C: ex   de,hl
   ld   a,#5C
   jp   svs_err

SVS_5D: ex   de,hl
   ld   a,#5D
   jp   svs_err

SVS_5E: ex   de,hl
   ld   a,#5E
   jp   svs_err

SVS_5F: ex   de,hl
   ld   a,#5F
   jp   svs_err

SVS_60: ex   de,hl
   ld   a,(hl)
   inc   hl
   jp   svs_xadd

SVS_61: ex   de,hl
   ld   a,1
   jp   svs_xadd

SVS_62: ex   de,hl
   ld   a,2
   jp   svs_xadd

SVS_63: ex   de,hl
   ld   a,3
   jp   svs_xadd

SVS_64: ex   de,hl
   ld   a,4
   jp   svs_xadd

SVS_65: ex   de,hl
   ld   a,5
   jp   svs_xadd

SVS_66: ex   de,hl
   ld   a,6
   jp   svs_xadd

SVS_67: ex   de,hl
   ld   a,7
   jp   svs_xadd

SVS_68: ex   de,hl
   ld   a,8
   jp   svs_xadd

SVS_69: ex   de,hl
   ld   a,9
   jp   svs_xadd

SVS_6A: ex   de,hl
   ld   a,10
   jp   svs_xadd

SVS_6B: ex   de,hl
   ld   a,11
   jp   svs_xadd

SVS_6C: ex   de,hl
   ld   a,12
   jp   svs_xadd

SVS_6D: ex   de,hl
   ld   a,13
   jp   svs_xadd

SVS_6E: ex   de,hl
   ld   a,14
   jp   svs_xadd

SVS_6F: ex   de,hl
   ld   a,15
   jp   svs_xadd

SVS_70: ex   de,hl
   ld   a,(hl)
   inc   hl
   jp   svs_yadd

SVS_71: ex   de,hl
   ld   a,1
   jp   svs_yadd

SVS_72: ex   de,hl
   ld   a,2
   jp   svs_yadd

SVS_73: ex   de,hl
   ld   a,3
   jp   svs_yadd

SVS_74: ex   de,hl
   ld   a,4
   jp   svs_yadd

SVS_75: ex   de,hl
   ld   a,5
   jp   svs_yadd

SVS_76: ex   de,hl
   ld   a,6
   jp   svs_yadd

SVS_77: ex   de,hl
   ld   a,7
   jp   svs_yadd

SVS_78: ex   de,hl
   ld   a,8
   jp   svs_yadd

SVS_79: ex   de,hl
   ld   a,9
   jp   svs_yadd

SVS_7A: ex   de,hl
   ld   a,10
   jp   svs_yadd

SVS_7B: ex   de,hl
   ld   a,11
   jp   svs_yadd

SVS_7C: ex   de,hl
   ld   a,12
   jp   svs_yadd

SVS_7D: ex   de,hl
   ld   a,13
   jp   svs_yadd

SVS_7E: ex   de,hl
   ld   a,14
   jp   svs_yadd

SVS_7F: ex   de,hl
   ld   a,15
   jp   svs_yadd

SVS_80: ex   de,hl
   ld   a,(hl)
   inc   hl
   jp   svs_pal

SVS_81: ex   de,hl
   ld   a,1
   jp   svs_pal

SVS_82: ex   de,hl
   ld   a,2
   jp   svs_pal

SVS_83: ex   de,hl
   ld   a,3
   jp   svs_pal

SVS_84: ex   de,hl
   ld   a,4
   jp   svs_pal

SVS_85: ex   de,hl
   ld   a,5
   jp   svs_pal

SVS_86: ex   de,hl
   ld   a,6
   jp   svs_pal

SVS_87: ex   de,hl
   ld   a,7
   jp   svs_pal

SVS_88: ex   de,hl
   ld   a,8
   jp   svs_pal

SVS_89: ex   de,hl
   ld   a,9
   jp   svs_pal

SVS_8A: ex   de,hl
   ld   a,10
   jp   svs_pal

SVS_8B: ex   de,hl
   ld   a,11
   jp   svs_pal

SVS_8C: ex   de,hl
   ld   a,12
   jp   svs_pal

SVS_8D: ex   de,hl
   ld   a,13
   jp   svs_pal

SVS_8E: ex   de,hl
   ld   a,14
   jp   svs_pal

SVS_8F: ex   de,hl
   ld   a,15
   jp   svs_pal

SVS_90: ex   de,hl
   ld   a,#90
   jp   svs_err

SVS_91: ex   de,hl
   ld   a,#91
   jp   svs_err

SVS_92: ex   de,hl
   ld   a,#92
   jp   svs_err

SVS_93: ex   de,hl
   ld   a,#93
   jp   svs_err

SVS_94: ex   de,hl
   ld   a,#94
   jp   svs_err

SVS_95: ex   de,hl
   ld   a,#95
   jp   svs_err

SVS_96: ex   de,hl
   ld   a,#96
   jp   svs_err

SVS_97: ex   de,hl
   ld   a,#97
   jp   svs_err

SVS_98: ex   de,hl
   ld   a,#98
   jp   svs_err

SVS_99: ex   de,hl
   ld   a,#99
   jp   svs_err

SVS_9A: ex   de,hl
   ld   a,#9A
   jp   svs_err

SVS_9B: ex   de,hl
   ld   a,#9B
   jp   svs_err

SVS_9C: ex   de,hl
   ld   a,#9C
   jp   svs_err

SVS_9D: ex   de,hl
   ld   a,#9D
   jp   svs_err

SVS_9E: ex   de,hl
   ld   a,#9E
   jp   svs_err

SVS_9F: ex   de,hl
   ld   a,#9F
   jp   svs_err

SVS_A0: ex   de,hl
   ld   a,#A0
   jp   svs_err

SVS_A1: ex   de,hl
   ld   a,#A1
   jp   svs_err

SVS_A2: ex   de,hl
   ld   a,#A2
   jp   svs_err

SVS_A3: ex   de,hl
   ld   a,#A3
   jp   svs_err

SVS_A4: ex   de,hl
   ld   a,#A4
   jp   svs_err

SVS_A5: ex   de,hl
   ld   a,#A5
   jp   svs_err

SVS_A6: ex   de,hl
   ld   a,#A6
   jp   svs_err

SVS_A7: ex   de,hl
   ld   a,#A7
   jp   svs_err

SVS_A8: ex   de,hl
   ld   a,#A8
   jp   svs_err

SVS_A9: ex   de,hl
   ld   a,#A9
   jp   svs_err

SVS_AA: ex   de,hl
   ld   a,#AA
   jp   svs_err

SVS_AB: ex   de,hl
   ld   a,#AB
   jp   svs_err

SVS_AC: ex   de,hl
   ld   a,#AC
   jp   svs_err

SVS_AD: ex   de,hl
   ld   a,#AD
   jp   svs_err

SVS_AE: ex   de,hl
   ld   a,#AE
   jp   svs_err

SVS_AF: ex   de,hl
   ld   a,#AF
   jp   svs_err

SVS_B0: ex   de,hl
   ld   a,#B0
   jp   svs_err

SVS_B1: ex   de,hl
   ld   a,#B1
   jp   svs_err

SVS_B2: ex   de,hl
   ld   a,#B2
   jp   svs_err

SVS_B3: ex   de,hl
   ld   a,#B3
   jp   svs_err

SVS_B4: ex   de,hl
   ld   a,#B4
   jp   svs_err

SVS_B5: ex   de,hl
   ld   a,#B5
   jp   svs_err

SVS_B6: ex   de,hl
   ld   a,#B6
   jp   svs_err

SVS_B7: ex   de,hl
   ld   a,#B7
   jp   svs_err

SVS_B8: ex   de,hl
   ld   a,#B8
   jp   svs_err

SVS_B9: ex   de,hl
   ld   a,#B9
   jp   svs_err

SVS_BA: ex   de,hl
   ld   a,#BA
   jp   svs_err

SVS_BB: ex   de,hl
   ld   a,#BB
   jp   svs_err

SVS_BC: ex   de,hl
   ld   a,#BC
   jp   svs_err

SVS_BD: ex   de,hl
   ld   a,#BD
   jp   svs_err

SVS_BE: ex   de,hl
   ld   a,#BE
   jp   svs_err

SVS_BF: ex   de,hl
   ld   a,#BF
   jp   svs_err

SVS_C0: ex   de,hl
   ld   a,#C0
   jp   svs_err

SVS_C1: ex   de,hl
   ld   a,#C1
   jp   svs_err

SVS_C2: ex   de,hl
   ld   a,#C2
   jp   svs_err

SVS_C3: ex   de,hl
   ld   a,#C3
   jp   svs_err

SVS_C4: ex   de,hl
   ld   a,#C4
   jp   svs_err

SVS_C5: ex   de,hl
   ld   a,#C5
   jp   svs_err

SVS_C6: ex   de,hl
   ld   a,#C6
   jp   svs_err

SVS_C7: ex   de,hl
   ld   a,#C7
   jp   svs_err

SVS_C8: ex   de,hl
   ld   a,#C8
   jp   svs_err

SVS_C9: ex   de,hl
   ld   a,#C9
   jp   svs_err

SVS_CA: ex   de,hl
   ld   a,#CA
   jp   svs_err

SVS_CB: ex   de,hl
   ld   a,#CB
   jp   svs_err

SVS_CC: ex   de,hl
   ld   a,#CC
   jp   svs_err

SVS_CD: ex   de,hl
   ld   a,#CD
   jp   svs_err

SVS_CE: ex   de,hl
   ld   a,#CE
   jp   svs_err

SVS_CF: ex   de,hl
   ld   a,#CF
   jp   svs_err

SVS_D0: ex   de,hl
   ld   a,#D0
   jp   svs_err

SVS_D1: ex   de,hl
   ld   a,#D1
   jp   svs_err

SVS_D2: ex   de,hl
   ld   a,#D2
   jp   svs_err

SVS_D3: ex   de,hl
   ld   a,#D3
   jp   svs_err

SVS_D4: ex   de,hl
   ld   a,#D4
   jp   svs_err

SVS_D5: ex   de,hl
   ld   a,#D5
   jp   svs_err

SVS_D6: ex   de,hl
   ld   a,#D6
   jp   svs_err

SVS_D7: ex   de,hl
   ld   a,#D7
   jp   svs_err

SVS_D8: ex   de,hl
   ld   a,#D8
   jp   svs_err

SVS_D9: ex   de,hl
   ld   a,#D9
   jp   svs_err

SVS_DA: ex   de,hl
   ld   a,#DA
   jp   svs_err

SVS_DB: ex   de,hl
   ld   a,#DB
   jp   svs_err

SVS_DC: ex   de,hl
   ld   a,#DC
   jp   svs_err

SVS_DD: ex   de,hl
   ld   a,#DD
   jp   svs_err

SVS_DE: ex   de,hl
   ld   a,#DE
   jp   svs_err

SVS_DF: ex   de,hl
   ld   a,#DF
   jp   svs_err

SVS_E0: ex   de,hl
   ld   a,#E0
   jp   svs_err

SVS_E1: ex   de,hl
   ld   a,#E1
   jp   svs_err

SVS_E2: ex   de,hl
   ld   a,#E2
   jp   svs_err

SVS_E3: ex   de,hl
   ld   a,#E3
   jp   svs_err

SVS_E4: ex   de,hl
   ld   a,#E4
   jp   svs_err

SVS_E5: ex   de,hl
   ld   a,#E5
   jp   svs_err

SVS_E6: ex   de,hl
   ld   a,#E6
   jp   svs_err

SVS_E7: ex   de,hl
   ld   a,#E7
   jp   svs_err

SVS_E8: ex   de,hl
   ld   a,#E8
   jp   svs_err

SVS_E9: ex   de,hl
   ld   a,#E9
   jp   svs_err

SVS_EA: ex   de,hl
   ld   a,#EA
   jp   svs_err

SVS_EB: ex   de,hl
   ld   a,#EB
   jp   svs_err

SVS_EC: ex   de,hl
   ld   a,#EC
   jp   svs_err

SVS_ED: ex   de,hl
   ld   a,#ED
   jp   svs_err

SVS_EE: ld   h,0
        ret

SVS_EF: ex   de,hl
   ld   a,#EF
   jp   svs_err

SVS_F0: ex   de,hl
        inc   hl
   inc   hl
   inc   hl
   push   hl
   xor   a
   out   (89h),a
   ld   hl,xcoord
   ld   (hl),a
   inc   hl
   ld   (hl),0C0h
   pop   hl
        ret

SVS_F1: ex   de,hl
   ld   a,#F1
   jp   svs_err

SVS_F2: ex   de,hl
   ld   a,#F2
   jp   svs_err

SVS_F3: ex   de,hl
   ld   a,#F3
   jp   svs_err

SVS_F4: ex   de,hl
   ld   a,#F4
   jp   svs_err

SVS_F5: ex   de,hl
   ld   a,#F5
   jp   svs_err

SVS_F6: ex   de,hl
   ld   a,#F6
   jp   svs_err

SVS_F7: ex   de,hl
   ld   a,#F7
   jp   svs_err

SVS_F8: ex   de,hl
   ld   a,#F8
   jp   svs_err

SVS_F9: ex   de,hl
   ld   a,#F9
   jp   svs_err

SVS_FA: ex   de,hl
   ld   a,#FA
   jp   svs_err

SVS_FB: ex   de,hl
   ld   a,#FB
   jp   svs_err

SVS_FC: ex   de,hl
   ld   a,#FC
   jp   svs_err

SVS_FD: ex   de,hl
   ld   a,#FD
   jp   svs_err

SVS_FE: ex   de,hl
   ld   a,#FE
   jp   svs_err

SVS_FF:
   ld   c,13h
   ld   a,(handle_)
   ld   de,SBUF
   ld   hl,ABUF
   rst   10h
   ld   hl,ABUF
        ret

_________________
:dj: https://mastodon.social/@Shaos


26 Jun 2005 20:14
Profile WWW
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Shaos wrote:
Нужен реальный опыт юзанья акселератора в графике! А именно есть ли грабли и где?

Тебе удалось установить какие именно функции работают не так, как в эмуляторе ? Можно попробовать написать что-нибудь вроде теста и разобраться с акселератором окончательно.

_________________
Extreme Entertainment


26 Jun 2005 22:41
Profile
God
User avatar

Joined: 29 Dec 2003 01:00
Posts: 1101
Location: Москва
Reply with quote
Mac Buster wrote:
Shaos wrote:
Нужен реальный опыт юзанья акселератора в графике! А именно есть ли грабли и где?

Тебе удалось установить какие именно функции работают не так, как в эмуляторе ? Можно попробовать написать что-нибудь вроде теста и разобраться с акселератором окончательно.

Грабель много!
Конкретно у меня не работало:
1) операция XOR
2) если софт работающий с акселем лежит ниже #8000
...


30 Jun 2005 10:36
Profile ICQ WWW
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Reply with quote
Shaos wrote:
Господа, я тут в течение последних трех лет периодически работаю над проектом под названием SVS (Sprinter Video System) - видеоформат и видеопроигрыватель непосредственно использующий акселератор для ускоренной отрисовки. Многое уже сделано (сконверчено несколько видеороликов), но я нарвался на непонимание реального Спринтера - эмуль эмулит все как надо, а вот железо рисует на экране всякий мусор - как будто часть акселераторных процедур понято мной (и соответственно реализовано в эмуляторе) неправильно - либо еще что. Нужен реальный опыт юзанья акселератора в графике! А именно есть ли грабли и где?


Не опубликуешь сцылки на эти видеоролики ?, хочется глянуть на них в твоем видео-плеере (типа по-тестить).

_________________
Vasil Ivanov
vasil-i@yandex.ru


17 Sep 2006 04:43
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Vasil Ivanov wrote:
Не опубликуешь сцылки на эти видеоролики ?, хочется глянуть на них в твоем видео-плеере (типа по-тестить).


Ну вот один ролик - http://nedopc.org/nedopc/sprinter/upload/svs_intro3.zip (757K)

Типа скриншоты (так должно выглядеть):

Image Image

_________________
:dj: https://mastodon.social/@Shaos


Last edited by Shaos on 13 Apr 2012 22:31, edited 1 time in total.



17 Sep 2006 09:43
Profile WWW
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Не дурно. А какое сжатие?


17 Sep 2006 11:11
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Post 
HardWareMan wrote:
Не дурно. А какое сжатие?


Сжатие, по понятным причинам, фиговое - до всяких MPEG-ов далековато... Средний размер кадра получается от 10K до 40K где-то на разных видеороликах - соответственно сжатие от 8 до 2 раз, если считать размером несжатого кадра 83000 байтовый BMP, который сохраняет цветную картинку 320x256 с 1 байтом на пиксел и 256-цветной палитрой. Если же за оригинал брать картинку 24 бита на пиксел (полноценный RGB), то сжатие уже будет в три раза больше (24 раза максимум). Скорее всего так правильнее всего считать, т.к. на входе мой кодер получает последовательность 24-битных TGA-файлов произвольного размера из которых с помощью моего алгоритма получается последовательность палитровых картинок 320x256 с адаптивной динамической палитрой, которые затем сжимаются спринтеровско-акселераторными командами.

_________________
:dj: https://mastodon.social/@Shaos


17 Sep 2006 15:34
Profile WWW
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Я вот надыбал плеер на флехе. Он на чипе ATJ2085. Ядро чипа - Z80. Частота ~24MHz в пике (настраивается ступенчато программно). Так вот, этот плеер на дюймовом экране 128х128 пикселей может казать видео своего формата *.amv Ну, со звуком понятно - аппаратный кодек и DSP. Но в видеоролике звук моно и 22кГц, а вот видео - 10fps. Впринципе не плохо, т.к. 4х минутный ролик занимает всего 5Мбайта... Может же Z80.... Датащит на ATJ2085 можно взять тут. Еще бы с прошивкой разобраться и заюзать этот метод сжатия.


18 Sep 2006 11:14
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Post 
HardWareMan wrote:
Я вот надыбал плеер на флехе. Он на чипе ATJ2085. Ядро чипа - Z80. Частота ~24MHz в пике (настраивается ступенчато программно). Так вот, этот плеер на дюймовом экране 128х128 пикселей может казать видео своего формата *.amv Ну, со звуком понятно - аппаратный кодек и DSP. Но в видеоролике звук моно и 22кГц, а вот видео - 10fps. Впринципе не плохо, т.к. 4х минутный ролик занимает всего 5Мбайта... Может же Z80.... Датащит на ATJ2085 можно взять тут. Еще бы с прошивкой разобраться и заюзать этот метод сжатия.


Да у них не видео, а по большей части мультики двухцветные - их можно сильно сжать даже моим SVS-ом...

_________________
:dj: https://mastodon.social/@Shaos


18 Sep 2006 18:27
Profile WWW
God
User avatar

Joined: 29 Dec 2003 01:00
Posts: 1101
Location: Москва
Reply with quote
Post 
Shaos wrote:
Да у них не видео, а по большей части мультики двухцветные - их можно сильно сжать даже моим SVS-ом...

Мы на CC06 демонстрировали видео на АТМ Турбо 2+ с СДРОМ, 16 цветное (15 кадров примерно в секунду) со звуком - народ был в шоке.


18 Sep 2006 23:41
Profile ICQ WWW
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Shaos wrote:
HardWareMan wrote:
Я вот надыбал плеер на флехе. Он на чипе ATJ2085. Ядро чипа - Z80. Частота ~24MHz в пике (настраивается ступенчато программно). Так вот, этот плеер на дюймовом экране 128х128 пикселей может казать видео своего формата *.amv Ну, со звуком понятно - аппаратный кодек и DSP. Но в видеоролике звук моно и 22кГц, а вот видео - 10fps. Впринципе не плохо, т.к. 4х минутный ролик занимает всего 5Мбайта... Может же Z80.... Датащит на ATJ2085 можно взять тут. Еще бы с прошивкой разобраться и заюзать этот метод сжатия.


Да у них не видео, а по большей части мультики двухцветные - их можно сильно сжать даже моим SVS-ом...

Да нет, не двухцветные. У него OLED дисплей. Как на сотках. Полноцветный, тока не такой контрастный, как на компе. Вот виндовый плеер и сэмпл для заценки.
http://vis-image.narod.ru/AMW_Player.rar (1,1Мб)
Кстати, здесь я выбрал максимально качество кодирования, получилось ~16fps. А тот был 10. А еще можно 6 поставить. :) При максимальном 2,5 минуты получились в 6Мб.


Last edited by HardWareMan on 19 Sep 2006 04:53, edited 2 times in total.



19 Sep 2006 04:38
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Post 
CHRV wrote:
Shaos wrote:
Да у них не видео, а по большей части мультики двухцветные - их можно сильно сжать даже моим SVS-ом...

Мы на CC06 демонстрировали видео на АТМ Турбо 2+ с СДРОМ, 16 цветное (15 кадров примерно в секунду) со звуком - народ был в шоке.


16 цветов всё-таки маловато будет - даже для чисто чёрно-белого надо 64 минимум, а уж для цветного - 256-цветная палитра это с натяжкой приемлемый минимум (идеально 65536 цветов иметь на экране).

_________________
:dj: https://mastodon.social/@Shaos


19 Sep 2006 04:44
Profile WWW
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Reply with quote
Post 
Shaos wrote:
CHRV wrote:
Shaos wrote:
Да у них не видео, а по большей части мультики двухцветные - их можно сильно сжать даже моим SVS-ом...

Мы на CC06 демонстрировали видео на АТМ Турбо 2+ с СДРОМ, 16 цветное (15 кадров примерно в секунду) со звуком - народ был в шоке.


16 цветов всё-таки маловато будет - даже для чисто чёрно-белого надо 64 минимум, а уж для цветного - 256-цветная палитра это с натяжкой приемлемый минимум (идеально 65536 цветов иметь на экране).


Посидел за твоим видимо-плеером, пока не ясно, отчего не работает.
Как вспомогательное средство, могу бросить сорц плеера flc-файлов,
в свое время дизасмил его. Может аксель-процедуры, которые 100% работают на Спринтере, прикрутишь к себе в svs-плеер ?.

А формат твоего svs-видео (файлов) не секрет ?. Смотрю у тебя там
(в видео-файле) присутствуют какие-то служебные байты, по которым
происходит вызов соотв. процедур обработки.


P.S. А ни у кого не сохранилось маленького flc-файлика главного героя Тхундера, которого как-то бросал еще А.Горячев в качестве рекламмы игрульки ?.

_________________
Vasil Ivanov
vasil-i@yandex.ru


25 Sep 2006 04:59
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Post 
Vasil Ivanov wrote:
Shaos wrote:
CHRV wrote:
Shaos wrote:
Да у них не видео, а по большей части мультики двухцветные - их можно сильно сжать даже моим SVS-ом...

Мы на CC06 демонстрировали видео на АТМ Турбо 2+ с СДРОМ, 16 цветное (15 кадров примерно в секунду) со звуком - народ был в шоке.


16 цветов всё-таки маловато будет - даже для чисто чёрно-белого надо 64 минимум, а уж для цветного - 256-цветная палитра это с натяжкой приемлемый минимум (идеально 65536 цветов иметь на экране).


Посидел за твоим видимо-плеером, пока не ясно, отчего не работает.
Как вспомогательное средство, могу бросить сорц плеера flc-файлов,
в свое время дизасмил его. Может аксель-процедуры, которые 100% работают на Спринтере, прикрутишь к себе в svs-плеер ?.

А формат твоего svs-видео (файлов) не секрет ?. Смотрю у тебя там
(в видео-файле) присутствуют какие-то служебные байты, по которым
происходит вызов соотв. процедур обработки.

P.S. А ни у кого не сохранилось маленького flc-файлика главного героя Тхундера, которого как-то бросал еще А.Горячев в качестве рекламмы игрульки ?.


Я вроде юзал те процедуры что у меня уже работали - надо повнимательнее перечитать сырцы... Формат могу задокументировать - только надо в тетрадках покопаться ;)

P.S. Флики Тхундера: http://nedopc.org/nedopc/sprinter/download/tflc.zip (9K)

_________________
:dj: https://mastodon.social/@Shaos


25 Sep 2006 05:03
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 119 posts ]  Go to page 1, 2, 3, 4, 5 ... 8  Next

Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.