Самое сложное для меня в демо
Добавлено: 01 сен 2016, 23:10
Как оказалось для меня было достаточно сложно написать даже не сами эффекты (они могут быть и совсем простыми, че уж там), а именно сделать удобную систему по их компоновке и очередности переключения в зависимости от музыки. Повозившись несколько вечеров пришел к некоему начальному варианту своего демокернеля. Не идеально, но как точка отсчета пойдет. Итак что мне надо было
1 переключатель банков и экранов. Да да как не странно делать это просто из кода опасно ибо музыка на прерываниях в банке, иногда без этого никуда но в общем случае только через кернель.
2 обработчик прерываний, да он тоже в кернеле, из него вызывается плеер и эффекты висящие на прерывании, а также таймер
3 загрузка с диска: банк, адрес, число секторов. Тут все ясно, читаю сектора подряд, в 99% этого достаточно.
4 копирование из банка в банк. Кросс банк распаковщик я не делал поэтому нужно.
5 собственно депакер. Я пользовался великолепным mhmt, вроде сейчас буржуи придумали что то помоднее, посмотрю как нить
6 таймер, очень важная часть. У меня было 4 отдельных таймера, в 0 всегда фреймы от начала проигрывания музыки, остальные по обстоятельствам, пригодился пока только 0 и 1. Тут еще надо многое обдумать. У меня было только сохранить таймер, и ждать энный таймер +пауза. Для моей поделки этого было достаточно.
7 Различные запускалки эффектов, повесить на прерывание,просто вызвать, сменить обработчик прерываний (тут осторожно таймер сам себя тикать не будет)
8 Небольшая обвязка для работы с музыкой
9 Ну и вспомогательные поке в переменные эффектов
Все компилилось батником в несколько стадий.
Сначала кернель, из него экспорт нужных меток, которые потом инклюдились в эффекты.
Сами эффекты, из них экспортом собирались важные метки, которые потом использовались в конечной сборке.
Эффекты паковались
Сборка основного цикла и формирование образа, тут использовались все экспорты из эффектов и собственно делалась вся синхронизация когда и музыки.
В принципе получилось достаточно удобно, сборка одним батником, независимые части, отлаживать можно отдельно. Сам кернель занимал 512 байт, а основная управлялка сидела в отдельной банке. Как делают другие я не знаю, поискал по ничего путевого не нашел, либо как обычно плохо искал, либо правда это секреты для узкого круга и все приходит с опытом. Собственно любые предложения велком.
1 переключатель банков и экранов. Да да как не странно делать это просто из кода опасно ибо музыка на прерываниях в банке, иногда без этого никуда но в общем случае только через кернель.
2 обработчик прерываний, да он тоже в кернеле, из него вызывается плеер и эффекты висящие на прерывании, а также таймер
3 загрузка с диска: банк, адрес, число секторов. Тут все ясно, читаю сектора подряд, в 99% этого достаточно.
4 копирование из банка в банк. Кросс банк распаковщик я не делал поэтому нужно.
5 собственно депакер. Я пользовался великолепным mhmt, вроде сейчас буржуи придумали что то помоднее, посмотрю как нить
6 таймер, очень важная часть. У меня было 4 отдельных таймера, в 0 всегда фреймы от начала проигрывания музыки, остальные по обстоятельствам, пригодился пока только 0 и 1. Тут еще надо многое обдумать. У меня было только сохранить таймер, и ждать энный таймер +пауза. Для моей поделки этого было достаточно.
7 Различные запускалки эффектов, повесить на прерывание,просто вызвать, сменить обработчик прерываний (тут осторожно таймер сам себя тикать не будет)
8 Небольшая обвязка для работы с музыкой
9 Ну и вспомогательные поке в переменные эффектов
Все компилилось батником в несколько стадий.
Сначала кернель, из него экспорт нужных меток, которые потом инклюдились в эффекты.
Сами эффекты, из них экспортом собирались важные метки, которые потом использовались в конечной сборке.
Эффекты паковались
Сборка основного цикла и формирование образа, тут использовались все экспорты из эффектов и собственно делалась вся синхронизация когда и музыки.
В принципе получилось достаточно удобно, сборка одним батником, независимые части, отлаживать можно отдельно. Сам кернель занимал 512 байт, а основная управлялка сидела в отдельной банке. Как делают другие я не знаю, поискал по ничего путевого не нашел, либо как обычно плохо искал, либо правда это секреты для узкого круга и все приходит с опытом. Собственно любые предложения велком.