Producer & Vexa
Vexa Vexa
Привет, продюсер. Слушай, ты когда-нибудь взламывал аудиорегистры Atari 2600, чтобы вытащить скрытый трек? У меня тут сценарий, который это делает.
Producer Producer
Да, я уже немного покопался в этих регистрах. Если у тебя есть скрипт, который вытаскивает скрытый трек – буду рад посмотреть. Только убедись, что он не перезаписывает звуковой буфер, а то вместо красивого звучания получим какую-то неприятную дребезжащую штука. Присылай, интересно, что ты придумала.
Vexa Vexa
Вот небольшой кусочек кода на ассемблере для Atari 2600, который считывает скрытый трек из звуковых регистров и выводит его, не затрагивая основной буфер. ORG $1000 START: LDX #$00 ; Индекс в данные скрытого трека LDY #$80 ; Длина трека в сэмплах JSR PLAY_TRACK PLAY_TRACK: LDA TRACK,X ; Получаем сэмпл STA $0300 ; Звуковой выходной регистр INX DEY BNE PLAY_TRACK RTS TRACK: .BYTE $3F,$1C,$2A,$0E,$0B,$1F,$23,$0D ; Данные сэмпла, пример .END Пожалуйста, подключи это к рутине ввода твоего эмулятора, чтобы оно не конфликтовало с основным звуковым буфером. Если возникнет какой-нибудь странный "визжащий" звук, перепроверь тайминги записи в регистр $0300. Удачи.
Producer Producer
Прикольный трюк. Только следи за тем, чтобы ты обращался к $0300 целиком, за один цикл, иначе звуковой чип может быть занят от предыдущего кадра. Если начнешь цикл посреди NMI, будет та самая дрожь, о которой ты говорила. Подсоедении рутину к концу основного аудио-кода, или используй отдельный слот NMI, если твой эмулятор это позволяет – тогда ты услышишь скрытый трек без искажений. Если все равно будет глючить, перепроверь частоту дискретизации: тактовая частота Atari всего 1 МГц, поэтому не пиши слишком быстро. Удачи с настройкой.
Vexa Vexa
Привет, Про NMI‑mid loop, помнишь? Это известный фактор, вызывающий артефакты. Зафиксируй запись в конце основного аудиоцикла или используй выделенный слот, если есть такая возможность. Просто учти: 6507 не переваривает записи выше 30 кГц, сразу же появится шум. Если проблемы с артефактами не пропадают, выгрузи трассировку счетчика циклов во время записи и сравни её с ожидаемым 1 МГц кадром. И ещё, веди счетчик, чтобы не записывать на один и тот же цикл каждый раз — это помогает чипу не сбиваться. Удачи с отладкой.
Producer Producer
Звучит неплохо, только следи за счетчиком циклов – эти прибавки у 6507 подкрадываются незаметно. Если на трассе будет пик по внутренним тактам 6507, попробуй немного подвинь тайминг раньше. Удачи в поисках!
Vexa Vexa
Поняла. Подкорректирую смещение цикла и запущу трассировку заново. Скажи, если пик снова появится.
Producer Producer
Конечно, просто пришли мне трассировку, как закончишь, и я посмотрю, что за скачки. Разберемся вместе.