Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - DrMefistO

Страницы: Назад 1 ... 14 15 16 17 [18] 19 20 21 22 ... 44 Далее
511
Инструменты / RNC ProPack (source code)
« : 01 Апрель 2018, 21:22:33 »
Обновил исходник: были исправлены некоторые баги в -m2 режиме.
Выяснилось, что в Earthworm Jim используется нестандартный размер словаря, поэтому, для нормальной работы игры с вашими архивами необходимо использовать ключ -d=0x4000 (т.к. по-умолчанию используется -d=0x8000).

512
DrMefistO,  да, я с тобой согласен в плане того, что в эти регистры только пишется инфа, а если что то нужно с них получить, то существуют специальные механизмы для этого - как ты говорил чтение из VRAM памяти. Просто при отладке всякие ситуации могут случиться и как бы хочется контролировать что по факту туда записывается и вообще что там есть. Вот для чего эта штука была бы полезна  :)  .Нууу я так считаю)
К примеру, запись в VDP_DATA регистр: записанное будет либо в VRAM, либо в CRAM, либо в VSRAM.
Запись в VDP_CTRL отслеживать полезно только при пошаговой отладке, но функционал по отслеживанию работы с VDP уже есть в меню Tool->VDP RAM. А там две вкладки с необходимой фигнёй.

Какие ещё реальные примеры необходимой инфы есть? Просто я хочу понять, что реально нужно, чтобы добавлять.

513
shadwolf21, спасибо за интерес к отладчику)

Если нужно, могу добавить чтение данных регистров. Просто по сути, это регистры-статуса, либо же, результат чтения будет зависеть от ранее записанной в командный порт команды.
Например, записав в VDP_CTRL команду чтения VRAM, то в VDP_DATA будет находиться текущий word читаемых из VRAM данных.

С регистрами версии и статуса VDP проще, если их только на чтение опрашивать.

Насчёт чтения регистров джойстиков - не могу понять, что даст знание последних записанных туда данных.

В общем, с какой целью тебе нужно знать значения по данным адресам?

514
чото ты куда-то слился... давай доделывай :) хочу поглядеть на распакованные данные.
http://datacrystal.romhacking.net/wiki/THUNDER_FORCE2:Tutorials
Блин, супер! За ссылку спасибо)

Пока нет времени особо, чтобы заниматься реверсом звукового движка.

515
Для сеги по прежнему 6.8 юзайте)

516
Пока нет. Генс нету 64-битного, а остальные эмули долго в плагин совать

517
SeregaZ, даже у Стефа напротив критичных мест есть указание тактов инструкций.

518
а про частоту сэмплов
в моём случае частота считалась суммированием тактов, необходимых на выполнение каждой инструкции в коде заливки сэмпла. А затем частоту процессора нужно поделить на эту сумму.

519
10 если условие ложно (перехода не было), иначе 17
Спасибо. Итоговая частота 5100Hz.

520
SeregaZ, может я неправильно себе представляю 4 бита, но по идее, там старшие 4 бита должны быть равны 0 (ну или младшие), а они у тебя вполне 8-битные.
На 4300 вполне слышно переговоры по рации.

521
Если что, то на питоне вот (воспроизводилка voice сэмпла):
import pyaudio
import sys

if __name__ == '__main__':
    if (len(sys.argv)) < 2:
        print 'Please, specify voice sample file!'
        sys.exit(-1)

    p = pyaudio.PyAudio()

    stream = p.open(format=pyaudio.paUInt8,
                    channels=1,
                    rate=5100,
                    output=True)

    with open(sys.argv[1], 'rb') as f:
        voice = f.read()

        stream.start_stream()
        stream.write(voice)

        stream.stop_stream()

        stream.close()
        p.terminate()

522
MetalliC, в общем, частота дискретизации ~5050Гц в игре.
Единственное, не понял, какое значение циклов прибавлять в случае (опкод: C4), если условие не выполняется:
call    nz, sub_237

523
SeregaZ, нашёл, но формат не разбирал. Скоро займусь.

524
MetalliC, на уровне драйвера я уже понял как DAC воспроизводится) мне же нужна ось - смотри выше.
SeregaZ, тогда это то, что я хотел) Попробую, спасибо.

Добавлено позже:
Попробую, спасибо.
Супер! Работает! Я юзал waveOut API, но суть та же! Крутяк)

Только сейчас подсчитаю точное число тактов задержки в драйвере, и, будет прям огонь!)

525
MetalliC, ну, это уже другое - это когда я до инструментов доберусь.

А сейчас: я имею DAC 8-bit, который хочу сконвертировать в формат, который бы мог воспроизвести, например, через waveOut( ) API.

Добавлено позже:
SeregaZ, т.е. я могу просто взять и DAC-сэмпл в sndPlaySound() закинуть? А конвертировать не нужно?

526
именно так, но для общего ознакомления сойдет
Придётся. Не хочется таскать целую библиотеку, не понимая как она вообще работает. Это не мой подход:).

527
PlayDACSample
Вот мне собственно и нужно понимать, как играется сэмпл на стороне оси. Про регистры связанные с DAC я понимаю.

528
SeregaZ, эмм....
Я выбираю сэмпл DAC, жму Play, и оно воспроизводит мне нормально.

При чём тут регистр $2A, $2B? В них я знаю что пишется, когда пишется, и зачем. Вот мне нужно самостоятельно эти сэмплы (я уже проикладывал voice sample 0) воспроизводить, из моего кода.

529
SeregaZ, это я видел)
Но вот как происходит воспроизведение этого "спама" в твоей программе?

530
SeregaZ, ты не понял. Пока что мне интересно, как DAC воспроизводится без инструментов. GYMка же воспроизводит.

531
Надо посмотреть исходники какого-нибудь GYM2MIDI и понять, как работает воспроизведение.

532
все-таки я думаю 6300 многовато
3575611 / (13 * 43 + 8) = 6306 Hz

Добавлено позже:
Да, чёт по частоте многовато.

Добавлено позже:
А, блин, я же пренебрёг другими инструкциями)

Добавлено позже:
в игре есть тестер звуков в опциях?
Тестер есть - на титульном экране A+Start

Добавлено позже:
Частота приблизительно как на 4900.

533
верно, первые 43 раза (пока B != 1) DJNZ выполняется 13 тактов, последний раз 8
А, блин, а я думал, это какое-то нецелое число тактов такое..))

534
Между отправками каждого байта выполняется 44 раза вот это
Уточню, может я ошибаюсь всё таки: в регистр b перед циклом загружено число 0x2B.
Т.е. всего 44 раза, верно?

535
Вот, пример сэмпла. Шлётся сразу в DAC, по байту.
Между отправками каждого байта выполняется 44 раза вот это:
djnz    $Я посмотрел одна такая операция занимает 13/8 циклов. Т.е. 13/8 * 44 циклов - задержка.

536
SeregaZ, сэмплы я все нашёл давно) и адреса их знаю.

537
SeregaZ, сколько инфы... А драйвер это не очень пока помогает разбирать. :)

Добрался до voice-сэмплов (DAC 8-bit). Как их вообще конвертировать, юзать?

538
Пытаюсь вкурить это всё, но понять не могу. Например, почти никакой связи с просходящим здесь https://github.com/Stephane-D/SGDK/blob/master/src/z80_drv1.s80 (в плане номеров регистров, хотя бы) я не вижу.
Инфа в статьях убогая, или я тупой?

Вот, например:
ld      a, 0C0h
ld      h, 0B6h
call    set_a1_reg_val  ; h = reg, a = val

Где о регистре $B6 написано что-либо, и почему оно в драйвере у Stef'а указано как Panning? Где же инструменты, мать их?

539
A1/D1 аналогично.
Я так понял, что A1/D1 - это та самая Part2 - на дополнительные каналы?

540
Мне интересно, и не понятно, как с этими A0, D0, A1, D1 пинами Ямахи работать, чтобы в итоге работать с вот этими регистрами - http://md.squee.co/YM2612 ?

Страницы: Назад 1 ... 14 15 16 17 [18] 19 20 21 22 ... 44 Далее