там от меня не сильно и много
Quote:
Вопрос, можно, пойдя на некоторые потери, не существенные для игры (например убрать ударники и уменьшить кол-во октав) его сократить в размере?
таблицы занимают 512 байт
если предварительно сконвертить мелодию
то можно сократить таблицы до 106 байт (2 штуки по 53байт лежащие друг за другом по адрессам кратным 100h байт )
можно попытаться сделать одной таблицай
полный диапазон вхама в биполе 53 ноты(4 с половиной октавы(хотя можно было и больше))
можно будет лучше упаковать музыку
так как старшие 2 бита почти всегда будут ровняться 0
основной пожиратель памяти указывается в
WPDUPTEMPO = 147 (обязательное значение для нормального играния музыки)
147*16 = 2352 байт
снижение этого числа повлияет на качество звучания, темп, синхронизацию с ударными(нужно будет пересчитывать много цифр)
для музыки во время игры второе значения не имеет
а так как время звучания не сильно продолжительное то можно немного с экономить и на качестве (нужно проверять экспериментально(сильно низкое число должно привести к понижению тона, дополнительному свисту))
например можно запускать установщик с разными параметрами перед игрой и перед нормальным проигрыванием мелодии скажем в меню
ударные легко выпиливаються да и не думаю что они жрут много места
можно отказаться от плеера вообще(для музыки не использующей преимущества патернов, не дергающюю темп)
хранить мелодию в виде потока нот
и просто читать её конвертить по 100байтной табличке и запускать пищалку
3Ы
можно было бы улучшить пищалку выпилив AND 01h у делая аут прямо в C2h
Code:
ADD HL,BC ;10 I 11 Z
LD A,H ;5 4
RLCA ;4 4
;AND 01h ;7 7
OUT (C2h),a ;OUT (C3h),a ;10 11
EX DE,HL ;4 4
ADD HL,SP ;10 11
LD A,H ;5 4
RLCA ;4 4
;AND 01h ;7 7
OUT (C2h),a ;OUT (C3h),a ;10 11
EX DE,HL ;4 4
но переживет ли львов усердное щелканье видеопамятью
и не замедлит ли это еще больше работу