TS-Labs wrote:Могу согласиться с тем сомнительным аргументом, что ГС можно юзать как сопроцессор
Как показала дема на ЦЦ, НГС уже вполне можно юзать, как нехилый сопроцессор. В отличие от олдгс.
TS-Labs wrote:на совместимость (на уровне интерфейса ГС) это не повлияет
Интерфейс ГС это не только загрузка модов и команды играть-неиграть, это ещё загрузка Z80 кода и его выполнение. Именно из-за этого была выбрана с самого начала аппаратная совместимость и Z80 в НГС.
TS-Labs wrote:и если писать для АВР
А если писать для АРМа? ;-)
TS-Labs wrote:Я не очень знаю возможности ФПГА
TS-Labs wrote:Прошивку для ФПГА я тоже собираюсь писать сам.
Ниосилил. Ты знаешь verilog/VHLD? Умеешь сделать на fpga хотя бы мигание светодиодиком?
TS-Labs wrote:- собственный доступ к памяти с целью чтения 44100 раз в секунду байта (или 2 байт - 16битные инструменты)
такое уже почти сделано, точнее сделаны механизмы DMA, к которым можно прикрутить выбиратор по конкретным адресам.
TS-Labs wrote:- увеличивать значение адреса на дробную величину (1 байт до запятой и 2 после) - обычный 24 битный сумматор (2 байта для "суб-адреса")
Это не проблема, но может не хватить фпга на хранение 32 таких счётчиков. Но возможны варианты, конечно, с извратами
TS-Labs wrote:- интерполяция (алгоритм прост как двери, но требуется апаратное умножение)
Можно формулу с указанием битности аргументов?
TS-Labs wrote:- прочитанную выборку умножать на коэф. громкости для левого, а потом для правого канала - требуется апаратное умножение, значения суммировать отдельно
Аналогично.
TS-Labs wrote:следить, чтоб они не перевалили за 16 бит
Ниосилил, как можно это уследить. Можно оценить статически, по кол-ву каналов. Но тогда зачем вообще следить?
Да, по поводу 16битных семплов. Они потребуют 24битного (или вообще 32битного) умножителя, это имхо чересчур. Особенно с учётом того, что аппаратных умножителей нет, и потому обычный умножитель или сожрёт дохера ресурсов, или будет работать несколько тактов (=сколько бит на вход, столько и тактов).