интересные факты:1) пули в игре на двоих действительно рисуются по очереди каждый кадр.
но вот что никому не было известно, так это метод учёта их столкновения.
дело в том, что когда пуля рисуется, она записывается в стэк для пуль, и потом обьекты, желающие получать по щам, чекают координаты всех пуль из этого стэка.
но это также означает, что при игре на двоих, первый кадр в стэк попадают только пули первого игрока, а второй кадр - второго.
именно поэтому некоторе моменты в игре пули несталкиваются с обьектами при игре на двоих.
2)по очень непонятной причине в коде присутсвует бессмысленная запись одного слова из начала списка спрайтов в видео ОЗУ.
учитывая, что перед этим вся таблица спрайтов посредством DMA полностью отправляется в точку назначения в видео ОЗУ, данная операция совершенно бессмысленна.
и куда более бессмысленно сохранение состояния видео регистра 1 ($81) в d5, учитывая, что это состояние потом невозвращается.
глядя на ту кропотливость в написанном коде такое мизерное, но всё же странное упущение кажется совершенно не уместным.
![[SMD] Contra Super Hard Corps](https://www.emu-land.net/forum/index.php?PHPSESSID=id02ce88blhmrk3jqb5b3mu8cs&action=dlattach;topic=79007.0;attach=195966;image)
3)музыкой и звуками в игре занимается сопроцессор. для общения с игровым движком у звукого драйвера есть ячейка в один байт для приёма звуков и музыки к воспроизведению. но так как при активном геймплее есть шанс воспроизвести одновременно несколько звуков, имея только один байт ячейки звука, велик шанс пропустить некоторые из них. для этого разработчики прибегнули к стэку для звуков.
все идентификаторы звуков и музыки отправляются в этот стэк, а он уже в свою очередь опустошается на одно значение каждый кадр.
этого времени достаточно для сопроцессора, чтобы обработать каждый идентификатор звука из этого стэка.
таким образом ни один звук или музыка не проходит мимо сопроцессора.
а также велик шанс перенагрузки такого стэка при активном геймплее.
например в уровне 4, когда начинается уровень в джунглях , на вас нападают разъярённые аборигены с топорами. их там большое колличество и иногда можно заметить, как после стремительного убийства всех их, звуки их убийства продолжают еще какое-то время воспроизводиться.
4)PCM звуки имеют программное смешивание аж 3-х каналов. чтобы это проверить достаточно спамить в опциях воспроизведение голосового звука.
такой подход позволил сильно разграничить звуковую состовляющую аудио композиций.
5)ввиду большого колличества PCM каналов сильно пострадало их качество воспроизведения.
благодаря
Vld, вы можете послушать, как бы звучали PCM звуки в игре не будь в ней такой многоканальности.
в архиве несколько PCM звуков в чистом их виде вырезанные из ROM-а