Важная информация

User Tag List

Страница 62 из 72 ПерваяПервая ... 585960616263646566 ... ПоследняяПоследняя
Показано с 611 по 620 из 711

Тема: Биперная музыка

  1. #611
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,805
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    148
    Спасибо Благодарностей получено 
    1,194
    Поблагодарили
    787 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    сохраняю из этого списка только бипер-мелодию и получаю AY в 30 кб. Как-то это не здорово.
    ????
    у меня длина (именно из игры) вообще 532 байта

  2. #612
    Guru Аватар для ZX_NOVOSIB
    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,547
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    259
    Поблагодарили
    179 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    goodboy, этот вариант сбрасывается от нажатия любой клавиши, а по окончании мелодии наглухо зависает (т.е. даже бесконечного воспроизведения нет)
    А 30-килобайтный "монстр" ведет себя почти идеально (там наверно, не мудрствуя лукаво, всю игру целиком впихнули)
    Вложения Вложения
    • Тип файла: zip Robin.zip (24.4 Кб, Просмотров: 60)
    Куплю корпус и материнку от Spectrum +2/+3

  3. #613
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,805
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    148
    Спасибо Благодарностей получено 
    1,194
    Поблагодарили
    787 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    этот вариант сбрасывается от нажатия любой клавиши, а по окончании мелодии зависает
    все претензии к Tiboh`у.
    (специально под его плейер я музон дорабатывать несобираюсь)

  4. #614
    Guru Аватар для ZX_NOVOSIB
    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,547
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    259
    Поблагодарили
    179 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    goodboy, претензии то претензиями, может ведь так получится, что лёгких путей нет, и что выбор только между двумя золами, причем какое из них наименьшее - это ещё вопрос. Т.е. либо каждую проблемную мелодию фиксить под плеер, либо плеер каждый раз фиксить под каждую конкретную мелодию. Т.е. один фиг каждый раз придется вручную что-то фиксить. И если плеер может фиксить только tiboh , то мелодии может фиксить не только лишь он, таким образом гипотетический кпд процесса выше, если фиксить мелодии... )

    Вот если бы плеер можно было бы раз и навсегда пофиксить, то это другое дело, один раз пофиксил плеер и больше не надо фиксить мелодии. Но реально ли это? Вот в чём вопрос!

    Пробовал "родной" плеер, тот, который работает с тапками, а написан на бейсике (!), что-то он короче нифига не лучше плеера tiboha, мягко говоря...

    - - - Добавлено - - -

    Конкретно с Робином можно забить, пусть будет 30 кб., пофиг, не смертельно, главно что она не виснет и не сбрасывается.
    Куплю корпус и материнку от Spectrum +2/+3

  5. #615
    Guru Аватар для ZX_NOVOSIB
    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,547
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    259
    Поблагодарили
    179 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    Exclamation

    В итоге получилось 199 годных мелодий.

    Но ещё нужно выдрать музыку как минимум из:
    - Rad Ramp Racer
    - Pariboro
    - 1943
    - Sooty & Sweep


    И неплохо бы ещё из:
    - Crapbert Buttslut
    - Vallation
    - Rainbow Islands
    - Helter Skelter

    - Pi-R Squared


    Все мелодии я разделил на 3 группы, предполагается, что каждой группе будет выделен отдельный TRD:

    1) мелодии, в которых нет зацикливания, т.е. в плеере они будут играть одна за другой, автоматически. Таких 48 штук пока. Я им длительности подкорректирую, чтобы гигантских пауз не было.
    2) мелодии, которые зациклены, переключать мелодии придется ручками (86 шт.)
    3) мелодии, которые глючны, переключать мелодии можно только посредством ресета (65 шт.)

    + ещё есть несколько мелодий (из числа 65 мелодий третьей группы), которые даже не играют, а сразу вешают/сбрасывают комп. Неплохо бы их починить, чтобы хоть в третью группы их засунуть можно было.

    И ещё, в третьей группе оказались 20 совсем уж легендарных мелодий
    Судите сами (в аттаче). Надо их пофиксить, чтобы переместить их во вторую или первую группу. Мелодии из таких легендарных игр просто не могут тусоваться в 3-ей группе с инвалидами, это зашквар какой-то получится

    Учитывая сложную обстановку на фронтах, всё вышеизложенное, в тред кастуются:
    @Titus
    @tiboh
    @Шынни
    @Kalantaj
    @DenisGrachev
    @все кто неравнодушен к музыке и спектруму

    Любая скромная лепта приветствуется!
    Вложения Вложения
    Последний раз редактировалось ZX_NOVOSIB; 27.01.2018 в 18:44.
    Куплю корпус и материнку от Spectrum +2/+3

  6. #616
    Banned
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,208
    Записей в дневнике
    40
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    46 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    чосразушынни?

    что и в каком виде собрать для тебя, о эстет?

  7. #616
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #617
    Guru Аватар для ZX_NOVOSIB
    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,547
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    259
    Поблагодарили
    179 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Шынни, выдрать бипер-мелодии надо из игр, в .ay

    https://www.worldofspectrum.org/proj...ds/AYMakeR.zip - это прога, которая .ay делает.

    Инструкция. Инглиш.

    AYMake Russian Version
    Utility for creating AY-files.
    Author Sergey Bulba
    Idea James McKay
    (c)2001 S.V. Bulba
    2 of September 2001

    Using.
    ------

    AYMake designed as Win32 console command line-based tool.
    For start working type in command line:

    AYMakeR [inifilename]

    Inifilename is name of text file with special instructions for AYMakeR utility.
    If inifilename was specified then AYMakeR generates AY-file with same name but
    with extension .ay. If inifile is bad then AYMakeR outputs to the screen error
    messages.

    INI-file structure.
    -------------------

    There are 17 keywords are defined in AYMakeR (you can use both small and
    capital chars, AYMakeR converts it to small in any way). All keywords
    has default value, so you can miss some keys in INI-file.

    1. Author
    This keyword is used to define songs author string. Due to limitations of
    AY-file specifications, Author string only one for whole AY-file. Default
    value is empty string.

    2. Misc
    This keyword is used to define string called "Miscellaneous". Also, due to
    limitations of AY-file specifications, Misc-string only one for whole AY-file.
    Default value is empty string.

    3. FileVersion
    This keyword is used to define release version of AY-file. If you are doing
    AY-file first time, you can to define FileVersion = 0. If you'll rebuild this
    file in future, you can change FileVersion to 1 and so on. Range for this key
    is from 0 to 255. Default value is 0.

    4. PlayerVersion
    This keyword defines required AY-files player version. If you do not know what
    player version you need, use 0. Range is from 0 to 255. Default value is 0.
    For more information, see AY-files specifications.

    5. Ripper
    Extra key for string with information about you (AY-files creator). If you want
    write some words in AY-file about yourself, use this key. But I recommend do not
    do it. Default value is empty string.

    6. FirstSong
    Song number from which playing starts. Song number 0 is 1st, 1 is 2nd and so on.
    Range is from 0 to 255. Default value is 0. FirstSong can not be greater then
    number of song in created AY-file.

    7. NewSong
    Special key to tell to AYMakeR that new song is defined from next line. No any
    values for this key.

    8. Name
    This keyword is used to define song name string. Name string can be defined for
    each song of AY-file. Default value is empty string.

    9. Stack
    Key for defining Z80 SP-register value for current song. Default value is 0.
    Available range is from 0 to 65535.

    10. INIT
    Key defines address of initialization routine in Z80 memory. Default value is 0,
    i.e. due to AY-file specification equal to first block loading address.
    Available range is from 0 to 65535.

    11. INTERRUPT
    Key defines address of interrupt-handling routine. Default value is 0. Available
    range is from 0 to 65535.

    12. SongLength
    Length of song in seconds or 1/50 of second (interrupts). Finally, value is
    converted to the 1/50 of second. So, available range is from 1 to 65535
    interrupts. No default value.

    13. FadeLength
    Length of fade at the end of song in seconds or interrupts. Available range is
    from 0 to 65535 interrupts. Default value is 0 (recommended).

    14. HiReg
    Value for high part of all Z80 common registers (see AY-file specification).
    Default value is 0.

    15. LoReg
    Value for low part of all Z80 common registers (see AY-file specification).
    Default value is 0.

    16. CodeName
    String with block file name. This block contents part of Z80 memory. Each song
    of AY-file can have one or more blocks. No default value.

    17. CodeAddress
    Address in Z80 memory of block defined by CodeName key. Available range is from
    1 to 65535. No default value.

    Some examples of key using:

    ----------------------------------[example begin]
    Author=TAO of ACF
    Misc=(c)Codemasters
    NewSong
    SongLength=8000
    CodeName=Block1.bin
    CodeAddress=32768
    CodeName=Block2.bin
    CodeAddress=#7F3E
    NewSong
    CodeName=Block3.bin
    CodeAddress=32768
    SongLength=1:30
    ----------------------------------[example end]

    Some rules for creating INI-files.
    1. Use any text editor
    2. Empty lines are ignored
    3. One line can contain only one keyword and its value
    4. Use chars of keywords in any case
    5. Tabulators and spaces around of keywords and its values are ignored
    6. NewSong defines current (new) song
    7. Current song related keywords could be used only after NewSong keyword
    8. Each CodeName keyword defines new block for current song
    9. CodeAddress can and must be specified only after CodeName
    10. Each block length is equal to corresponding file length
    11. If several identical keywords are met then last value is used
    12. Ripper keyword simply puts to AY-file corresponding string. You can see
    it only in text or hex viewer, for example
    13. Before creating AY-files, please, read AY-file specifications
    14. Numeric values can be decimal (ex.: 32768) and hex (ex.: #8000)
    15. Time values can be ordinary numbers for defining 1/50 of seconds (ex: 15000
    or #13E) or special time format: 1:50.2465, that means "1 minut and 50.2465
    seconds"

    Due to described rules, you can see next completely identical lines:

    ----------------------------------[example begin]
    SongLength=1:30
    SongLength = 1:30.000
    SongLength =4500
    SONGLENGTH = #1194
    Songlength = 0:90.000
    ----------------------------------[example end]

    AY-file specifications.
    -----------------------

    This is text from readme.txt of Micro Speccy (an AY-files player)

    - AY-file format (thanks to Patrik Rak for help).

    Originally this format was supporting on Amiga's DeliTracker (DeliAY plug-in).
    Therefore, all word data is in Motorola order (from hi to low). Also, all
    pointers are signed and relative (from current position in file to pointed
    data). So, AY-file is sequences of records. First record is header. Here you
    are:

    TAYFileHeader=packed record
    FileID, //'ZXAY'
    TypeID:longword; //'EMUL'
    FileVersion, //Version of song file (release version)
    PlayerVersion:byte; //Required player version. Micro Speccy
    //works as player of version 3.
    //Now available values:
    //0 Use zero, if you do not
    // know what player version
    // you need
    //All other player versions and short
    //description of these players next:
    //1 initial player version
    //2 first 256 bytes is
    // filled with 0xC9 (ret),
    // not just last init byte
    //3 PC rewrite, different
    // Z80 init routine, full
    // Z80 emulation, supports
    // 48k tunes.
    PSpecialPlayer, //It's for tunes which contained "custom
    //player" in m68k assembly. As Patrik Rak
    //is saying, exists only one AY-file of this
    //kind. So, can be simply ignored.
    PAuthor,PMisc:smallint; //Relative pointers to the
    //Author and Misc NTStrings
    NumOfSongs,FirstSong:byte; //Number of songs and first song values, both
    //are decreased by 1
    PSongsStructure:smallint; //Relative pointer to song structure
    end;

    Next is song structure (repeated NumOfSongs + 1 times):

    TSongStructure=packed record
    PSongName,PSongData:smallint;//Relative pointers to NTStr song
    //name and song data
    end;

    All described above is rightly for any AY-file. Following data only for
    TypeID = 'EMUL'. Next is song data:

    TSongData=packed record
    AChan,BChan,
    CChan,Noise:byte; //These are actually four bytes which specify
    //which Amiga channels will play which AY
    //channel (A,B,C and Noise, respectively). The
    //legal value is any permutation of 0,1,2,3.
    //The most common is 0,1,2,3. Not used in
    //Micro Speccy, of course
    SongLength:word; //Song duration in 1/50 of second. If ZERO then
    //length is unknown (infinitely). Not used in
    //Micro Speccy
    FadeLength:word; //Duration of volume fade after end of song in
    //1/50 of second. Not used in Micro Speccy
    HiReg,LoReg:byte; //HiReg and LoReg for all common registers:
    //AF,AF',HL,HL',DE,DE',BC,BC',IX and IY
    PPoints, //Relative pointer to points data
    PAddresses:smallint; //Relative pointer to blocks data
    end;

    Next is points data:

    TPoints = packed record
    Stack,Init,Inter:word; //Values for SP, INIT and INTERRUPT addresses
    end;

    Next is blocks data (words, offsets are signed):

    Address1 //Address of 1st block in Z80 memory
    Length1 //Length of 1st block
    Offset1 //Relative offset in AY-file to this block
    Address2 //and for 2nd block
    Length2
    Offset2
    ...
    AddressN //and for Nth (last) block
    LengthN
    OffsetN
    ENDWORD //ZERO word (end of blocks data)
    //so block can't have ZERO
    //address

    Notes from Patrik Rak:
    The word values should be always aligned at 2 byte offsets. Otherwise the
    DeliAY will crash (it's the limitation of the m68000).

    In case Address+Length > 65536, DeliAY decreases the size to make it
    == 65536.

    From me:
    In case CurrPositionInAYFile+Offset+Length > AYFileSize, MicroSpeccy
    and AYPlay decreases the size to make it == AYFileSize. I must to say,
    that if it is then this is broken AY-file. But there are many that ones
    in the world.

    - How player of version 3 must play one of songs of AY File

    a) Fill #0000-#00FF range with #C9 value
    b) Fill #0100-#3FFF range with #FF value
    c) Fill #4000-#FFFF range with #00 value
    d) Place to #0038 address #FB value
    e) if INIT equal to ZERO then place to first CALL instruction address of
    first AY file block instead of INIT (see next f) and g) steps)
    f) if INTERRUPT equal to ZERO then place at ZERO address next player:

    DI
    CALL INIT
    LOOP: IM 2
    EI
    HALT
    JR LOOP

    g) if INTERRUPT not equal to ZERO then place at ZERO address next player:

    DI
    CALL INIT
    LOOP: IM 1
    EI
    HALT
    CALL INTERRUPT
    JR LOOP

    h) Load all blocks for this song
    i) Load all common lower registers with LoReg value (including AF
    register)
    j) Load all common higher registers with HiReg value
    k) Load into I register 3 (this player version)
    l) load to SP stack value from points data of this song
    m) Load to PC ZERO value
    n) Disable Z80 interrupts and set IM0 mode
    o) Emulate resetting of AY chip
    p) Start Z80 emulation

    As you can see, blocks of AY files can to rewrite standard player routine
    with own one. So, if you can not adapt some of tunes to standard player,
    you can write own player and place it at INIT address or even at 0x0001
    address (block of AY-file can be loaded at any address except 0x0000).

    Links.
    ------

    - AYMakeR supporting site
    http://bulba.at.kz/
    - AYMakeR author
    Sergey Bulba, [email protected]
    - .AY files and AYmake V0.11 by James McKay (24/05/2000)
    http://www.void.jump.org/projectay
    - Amstrad CPC .AY files (1.3 Mb archive)
    http://cracktros.planet-d.net/cpc/emulcpc.zip
    - Project AY site developer
    bcass, [email protected]

    Source text.
    ------------

    AYMakeR comes together with its source text in Pascal. You can use it as free
    as you want.

    Understanding AY-files ideology.
    --------------------------------

    For understanding AY-files ideology, I am recommending to split several already
    existing AY-files. I had wrote special tool called "aysplitr". You can download
    it from http://bulba.at.kz/. There are also old "aysplit" for old James McKay's
    AYMake.
    [свернуть]

    Инструкция. Перевод.

    AYMake разработан как консольный консольный инструмент Win32.
    Для запуска рабочего типа в командной строке:

    AYMakeR [inifilename]

    Inifilename - это имя текстового файла со специальными инструкциями для утилиты AYMakeR.
    Если указано inifilename, AYMakeR генерирует AY-файл с тем же именем, но
    с расширением .ay. Если inifile плохо, тогда AYMakeR выводит на экран ошибку
    Сообщения.

    INI-файловая структура.
    -------------------

    В AYMakeR определено 17 ключевых слов (вы можете использовать как малые, так и
    капитальные символы, AYMakeR каким-либо образом преобразует его в малый). Все ключевые слова
    имеет значение по умолчанию, поэтому вы можете пропустить некоторые ключи в INI-файле.

    1. Автор
    Это ключевое слово используется для определения строки автора песен. Из-за ограничений
    Спецификации AY-файла, строка автора только одна для всего AY-файла. По умолчанию
    Значение - пустая строка.

    2. Разное
    Это ключевое слово используется для определения строки под названием «Разное». Кроме того, из-за
    ограничения спецификаций AY-файла, Misc-string только для всего AY-файла.
    Значение по умолчанию - пустая строка.

    3. FileVersion
    Это ключевое слово используется для определения версии AY-файла. Если вы делаете
    AY-файл в первый раз, вы можете определить FileVersion = 0. Если вы восстановите это
    файл в будущем, вы можете изменить FileVersion на 1 и так далее. Диапазон для этого ключа
    от 0 до 255. Значение по умолчанию равно 0.

    4. PlayerVersion
    Это ключевое слово определяет требуемую версию проигрывателя AY-файлов. Если вы не знаете, что
    вам нужна версия игрока, используйте 0. Диапазон от 0 до 255. Значение по умолчанию - 0.
    Для получения дополнительной информации см. Спецификации AY-файлов.

    5. Потрошитель
    Дополнительный ключ для строки с информацией о вас (создатель AY-файлов). Если ты хочешь
    напишите несколько слов в AY-файле о себе, используйте этот ключ. Но я не рекомендую
    сделай это. Значение по умолчанию - пустая строка.

    6. FirstSong
    Номер песни, с которого начинается воспроизведение. Номер песни 0 - 1, 1 - 2 и так далее.
    Диапазон от 0 до 255. Значение по умолчанию равно 0. FirstSong не может быть больше
    количество песен в созданном AY-файле.

    7. NewSong
    Специальный ключ, чтобы сообщить AYMakeR, что новая песня определена из следующей строки. Никакой
    значения для этого ключа.

    8. Имя
    Это ключевое слово используется для определения названия песни. Строку имени можно определить для
    каждая песня AY-файла. Значение по умолчанию - пустая строка.

    9. Стек
    Ключ для определения значения регистра Z80 SP для текущей песни. Значение по умолчанию - 0.
    Доступный диапазон от 0 до 65535.

    10. ИНИТ
    Ключ определяет адрес инициализации в памяти Z80. Значение по умолчанию - 0,
    то есть из-за спецификации AY-файла, равной первому адресу загрузки блока.
    Доступный диапазон от 0 до 65535.

    11. ПРЕРЫВАНИЕ
    Ключ определяет адрес процедуры обработки прерываний. Значение по умолчанию равно 0. Доступно
    диапазон от 0 до 65535.

    12. SongLength
    Длина песни в секундах или 1/50 секунды (прерывания). Наконец, значение
    преобразуется в 1/50 секунды. Таким образом, доступный диапазон составляет от 1 до 65535
    перебивает. Значение по умолчанию отсутствует.

    13. FadeLength
    Длина затухания в конце песни в секундах или прерывания. Доступный диапазон
    от 0 до 65535 прерываний. Значение по умолчанию - 0 (рекомендуется).

    14. HiReg
    Значение для высокой части всех регистров Z80 (см. Спецификацию AY-файла).
    Значение по умолчанию - 0.

    15. LoReg
    Значение для низкой части всех регистров Z80 (см. Спецификацию AY-файла).
    Значение по умолчанию - 0.

    16. CodeName
    Строка с именем файла блока. Этот блок содержит часть памяти Z80. Каждая песня
    AY-файла может иметь один или несколько блоков. Значение по умолчанию отсутствует.

    17. CodeAddress
    Адрес в памяти Z80 блока, определенного ключом CodeName. Доступный диапазон от
    1 до 65535. Значение по умолчанию отсутствует.

    Некоторые примеры использования ключа:

    ---------------------------------- [пример начинается]
    Автор = TAO ACF
    Разное = (с) Codemasters
    Новая песня
    SongLength = 8000
    CodeName = Block1.bin
    CodeAddress = 32768
    CodeName = Block2.bin
    CodeAddress = # 7F3E
    Новая песня
    CodeName = Block3.bin
    CodeAddress = 32768
    SongLength = 1: 30
    ---------------------------------- [примерный конец]

    Некоторые правила для создания INI-файлов.
    1. Используйте любой текстовый редактор
    2. Пустые строки игнорируются.
    3. Одна строка может содержать только одно ключевое слово и его значение
    4. Используйте символы ключевых слов в любом случае
    5. Таблицы и пробелы вокруг ключевых слов и его значений игнорируются.
    6. NewSong определяет текущую (новую) песню
    7. Текущие ключевые слова, связанные с песней, могут использоваться только после ключевого слова NewSong
    8. Каждое ключевое слово CodeName определяет новый блок текущей песни
    9. CodeAddress может и должен указываться только после CodeName
    10. Каждая длина блока равна соответствующей длине файла
    11. Если выполняется несколько идентичных ключевых слов, используется последнее значение
    12. Ключевое слово Ripper просто помещает в AY-файл соответствующую строку. Ты можешь видеть
    ****это только в текстовом или шестнадцатеричном просмотре, например
    13. Перед созданием AY-файлов, пожалуйста, прочитайте спецификации AY-файла
    14. Числовые значения могут быть десятичными (например: 32768) и шестнадцатеричными (например: # 8000)
    15. Значения времени могут быть обычными числами для определения 1/50 секунд (например: 15000
    ****или # 13E) или специальный формат времени: 1: 50,2465, что означает «1 минута и 50,2465
    ****секунд»

    Из-за описанных правил вы можете увидеть следующие полностью идентичные строки:

    ---------------------------------- [пример начинается]
    SongLength = 1: 30
    SongLength = 1: 30,000
    SongLength = 4500
    SONGLENGTH = # 1194
    *Songlength = 0: 90.000
    ---------------------------------- [примерный конец]

    Спецификации AY-файла.
    -----------------------

    Это текст из файла readme.txt Micro Speccy (проигрывателя AY-файлов)

    - Формат AY-файла (спасибо Патрику Раку за помощь).

    **Первоначально этот формат поддерживался на DeliTracker от Amiga (плагин DeliAY).
    **Поэтому все данные слова находятся в заказе Motorola (от hi до low). Кроме того, все
    **указатели подписаны и относительны (от текущей позиции в файле до
    **данные). Таким образом, AY-файл представляет собой последовательности записей. Первая запись - это заголовок. Вот ты
    **находятся:

    **TAYFileHeader = упакованная запись
    ***FILEID, // 'ZXAY'
    ***TypeID: длинное слово; // 'EMUL'
    ***FileVersion, // Версия файла песни (версия выпуска)
    ***PlayerVersion: байт; // Требуемая версия игрока. Micro Speccy
    // работает как игрок версии 3.
    // Теперь доступные значения:
    // 0 Используйте ноль, если вы не
    // знаю, какая версия игрока
    // тебе нужно
    // Все версии других игроков и короткие
    // описание следующих игроков:
    // 1 начальная версия игрока
    // 2 первых 256 байта
    // заполняется 0xC9 (ret),
    // не только последний байт init
    // 3 Перезапись ПК, разные
    // Z80 init, полная
    // Эмуляция Z80, поддержка
    // 48k мелодий.
    ***PSpecialPlayer, // Это для мелодий, которые содержат "custom
    // игрок "в сборке m68k. Как Патрик Рак
    // говорит, существует только один AY-файл этого
    //своего рода. Таким образом, можно просто игнорировать.
    ***PAuthor, PMisc: SMALLINT; // Относительные указатели на
    // Автор и Разное NTStrings
    ***NumOfSongs, FirstSong: байт; // Количество песен и значений первой песни, оба
    // уменьшены на 1
    ***PSongsStructure: SMALLINT; // Относительный указатель на структуру песни
    **конец;

    **Далее - структура песни (повторяется NumOfSongs + 1 раз):

    **TSongStructure = упакованная запись
    ***PSongName, PSongData: smallint; // Относительные указатели на песню NTStr
    // имя и данные песни
    ***конец;

    **Все, что описано выше, справедливо для любого AY-файла. Следующие данные только для
    **TypeID = 'EMUL'. Далее приведены данные о песнях:
    *
    **TSongData = упакованная запись
    ***Ахан, BChan,
    ***CChan, шум: байты; // Это фактически четыре байта, которые указывают
    // какие каналы Amiga будут играть, какие AY
    // канал (A, B, C и шум соответственно).
    // юридическое значение - любая перестановка 0,1,2,3.
    // Наиболее распространенным является 0,1,2,3. Не используется в
    // Micro Speccy, конечно
    ***SongLength: слово; // Продолжительность песни в 1/50 секунды. Если ZERO тогда
    // длина неизвестна (бесконечно). Не используется в
    // Micro Speccy
    ***FadeLength: слово; // Продолжительность тома исчезает после окончания песни в
    // 1/50 секунды. Не используется в Micro Speccy
    ***HiReg, LoReg: байт; // HiReg и LoReg для всех общих регистров:
    // AF, AF ', HL, HL', DE, DE ', BC, BC', IX и IY
    ***PPoints, // Относительный указатель на данные точек
    ***PAddresses: SMALLINT; // Относительный указатель на блоки данных
    **конец;

    **Далее приведены данные о точках:

    **TPoints = упакованная запись
    ***Стек, Init, Интер: слово; // Значения для адресов SP, INIT и INTERRUPT
    **конец;

    **Далее - данные блоков (слова, смещения подписаны):

    ******Address1 // Адрес 1-го блока в памяти Z80
    ******Длина1 // Длина 1-го блока
    ******Offset1 // Относительное смещение в AY-файле к этому блоку
    ******Address2 // и для второго блока
    ******Length2
    ******смещение2
    ******...
    ******AddressN // и для N-го (последнего) блока
    ******LengthN
    ******OffsetN
    ******ENDWORD // ZERO word (конец данных блоков)
    // поэтому у блока не может быть ZERO
    //адрес

    **Примечания от Патрика Рака:
    **Значения слов всегда должны быть выровнены с 2 байтовыми смещениями. В противном случае
    **DeliAY выйдет из строя (это ограничение m68000).

    **Если адрес + длина> 65536, DeliAY уменьшает размер, чтобы сделать это
    **== 65536.

    **От меня:
    **В случае CurrPositionInAYFile + Offset + Length> AYFileSize, MicroSpeccy
    **и AYPlay уменьшает размер, чтобы сделать его == AYFileSize. Должен сказать,
    **что если это тогда, это сломано AY-файл. Но есть много таких
    **в мире.

    - Как игрок версии 3 должен сыграть одну из песен AY-файла

    ****a) Заполнить # 0000- # 00FF диапазон с # C9 значением
    ****b) Заполнить диапазон # 0100- # 3FFF значением #FF
    ****c) Заполните # 4000- # FFFF диапазон с номером # 00
    ****d) Поместите на # 0038 адрес #FB значение
    ****e) если INIT, равный ZERO, затем помещается в первый адрес инструкции CALL
    *******первый блок файлов AY вместо INIT (см. следующий f) и g) шаги)
    ****f) если INTERRUPT, равный ZERO, затем поместите на адрес ZERO следующего игрока:

    DI
    CALL INIT
    LOOP: IM 2
    EI
    HALT
    JR LOOP

    ****g) если INTERRUPT не равен ZERO, тогда поместите на адрес ZERO следующего игрока:

    DI
    CALL INIT
    LOOP: IM 1
    EI
    HALT
    CALL INTERRUPT
    JR LOOP

    h) Загрузите все блоки для этой песни
    **** i) Загрузите все общие нижние регистры с помощью значения LoReg (включая AF
    ******* регистр)
    **** j) Загрузите все общие более высокие регистры с использованием значения HiReg
    **** k) Загрузите в регистр 3 (эта версия игрока)
    **** l) загрузить значение стека SP из точек данных этой песни
    **** м) Нагрузка на ПК Значение ZERO
    **** n) Отключить прерывания Z80 и установить режим IM0
    **** o) Эмулировать сброс AY-чипа
    **** p) Начало эмуляции Z80

    ** Как вы можете видеть, блоки файлов AY могут переписывать стандартную процедуру проигрывателя
    ** с собственным. Итак, если вы не можете адаптировать некоторые мелодии к стандартным игрокам,
    ** вы можете написать собственный плеер и поместить его на адрес INIT или даже в 0x0001
    ** адрес (блок AY-файла может быть загружен по любому адресу, кроме 0x0000).
    [свернуть]

    А те мелодии, которые в аттаче, они очень некорректно работают с плеером, видимо криво выдраны. Чинить их наверно нельзя. Вернее процесс починки наверно равен процессу выдирания бипер-мелодии с нуля из игры (?)
    goodboy и tiboh наверно могут подтвердить/опровергнуть/дополнить мои измышления... )
    Куплю корпус и материнку от Spectrum +2/+3

  9. #618
    Banned
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,208
    Записей в дневнике
    40
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    46 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    не знаю. гляну на первые из списка, но выглядит тз странно.

  10. #619
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,805
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    148
    Спасибо Благодарностей получено 
    1,194
    Поблагодарили
    787 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    по-хорошему надо создать txt список того что есть в наличии.
    я например смотрю на WoS, а там для SuperRobinHood вообще лежит музон из другой игры.
    для каких-то игр бипера там нет, но он есть у ZX_NOVOSIB`а
    ...........
    а вот пример одной и той-же мелодии на ay/beeper
    (длительность выставлена от балды).
    Последний раз редактировалось goodboy; 28.01.2018 в 13:48.

  11. #620
    Master Аватар для DenisGrachev
    Регистрация
    15.04.2011
    Адрес
    г. Новосибирск
    Сообщений
    741
    Спасибо Благодарностей отдано 
    39
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    44 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Зачем меня приплёл ZX_NOVOSIB Заниматься такой аналитической работой просто жалко времени.
    Единственное что могу подсказать что у Pariboro есть исходники и можно там music.bin сконвертить как-нибудь.

    И ещё вот такой архив нашёл у себя на винте, но у вас наверное всё есть из него

    beepor.zip

Страница 62 из 72 ПерваяПервая ... 585960616263646566 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Музыка
    от AER в разделе Разный софт
    Ответов: 0
    Последнее: 20.11.2009, 10:35
  2. Музыка MM<M
    от breeze в разделе Музыка
    Ответов: 3
    Последнее: 31.03.2006, 00:24

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •