не... не $40. а $88.
$40 это %01000000 - то есть первый тик 4 байтный еще что-то содержит, а вот второй уже нет.
$88 - %10001000 - то есть оба "тика" содержат информацию.
и все равно это не должно было сработать
ибо сжатие. то есть я полагаю что следующее значение зависит от предыдущего. но однако помогло. весь сэмпл, что я забил в пожатом виде $88 в итоге оказался $80 - тишиной как и требовалось.
ага. оно и несработало
как я и думал $88 означает что нет изменений по отношению к предыдущему байту, а вовсе не тишину.
в сжатом вбил 88 88 88 11
в расжатом вышло 80 80 80 80 80 80 80 79 72 72 .......... и так 72 будет долбить до конца сэмпла. но все равно начало момента, когда все байты начинают иметь одно и то-же значение - это маркер, что сэмпл закончился
то есть уже можно его вычленить. то есть с размером сэмпла, менее чем оригинальный 7 или скок там килобайт - утрясли
Добавлено позже:тьфу... опять двадцать пять... обычные сэмплы имеют флаг скажем $45 - 4 что обычный 8 битный и 5 номер частоты из таблицы. 5 это значит 10.4k. в этих Оозах и Комиксах встречаются $25 и $64. черт знает что это точно, но вроде как стандартный GEMS их играет. я их не трогал. шипение и пердение было на сэмплах с флагом $C6 - видимо C означало как раз использование этого ADPCM. и 6 что частота 8.7k. начал перезаписывать комиксные в ром Ооза по плану, что выложил выше и тут мне попадается значение $E6. вот жеж твою заногу... и что эта E означает? по накатанном методу вписал в Ооз, но там то был $C6 и вроде проигрывает. это не шипение, а какой-то крик "кийя!". запишу так, но меня терзают смутные сомнения что это не правильно
Добавлено позже:самое вкусное оставил на десерт - сэмплы, размером больше, чем самый большой в Ooze - 052 - в который я и пишу комиксные.
пункт первый плана - раздуплить каким образом сэмплы в банке сэмплов располагаются. то есть в файле samples.bin, по идее, в самом начале должна быть таблица, с указанием количества всего сэмплов и их адресов, а потом уже само содержимое сэмплов друг за другом пойдет. попробую найти. в статье шелла, к сожалению, не расписано о сэмплах. но у меня есть значения комбайна, а именно флаг частоты и размер. значит мне нужно искать эти два значения где-то в начале файла банка.
Добавлено позже:ну так оно и оказалось - в начале файла весь заголовок, что шелл так любезно вывесил в файл sfx при распаковке комбайном
первый байт - флаг частоты
потом 3 (а может 2... это не точно
) - адрес, с которого начинается сэмпл, то есть $180 от начала файла.
потом 2 байта некий SKIP - черт знает что делает.
потом 2 байта - размер самого сэмпла.
потом еще 2 раза по 2 байта - тоже черт знает что значит некие LOOP и END.
потом пошло тоже самое, но для второго сэмпла и тд и тп.
и начиная с $180 пошел файл сэмпла.
пункт второй плана: надеюсь общий размер банка сэмплов нигде в другом месте рома не упоминается. то есть я хочу заменить содержимое последнего сэмпла самым большим из комикс зон, тем самым банк сэмплов увеличится. так-же нужно будет внести эти размеры в заголовок последнего сэмпла в начале файла. так-же надо удостоверится что последние данные в файле рома - это именно что данные последнего сэмпла, а то вдруг там какая-то графика в конце? тогда добавляя еще данные я испорчу ром, сдвинув эту самую графику. пошел применять эту теорию на практике