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

User Tag List

Показано с 1 по 6 из 6

Тема: Philips SAA1099 - вопросы про MIDI и другие

  1. #1
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,438
    Благодарностей: 765
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Philips SAA1099 - вопросы про MIDI и другие

    Здрям,

    не знаю в каком разделе спросить, так как вообще-то вопрос не касается ZX, но в то же время касается микросхемы, используемой в одной из звуковых карт для ZX.

    Суть такова: сабжи (SAA1099) ставились в ISA-8 звуковые карты Creative Music System в кол-ве двух штук. И я недавно "на коленке" собрал реплику такой звуковушки:



    Проблема в том, что эту звуковую карту поддерживает сравнительно малое количество игр, хотя возможности у карты на мой взгляд приличные для музыки. Вот пара-тройка записанных треков с этой карты:



    Шумит конечно адски, ибо сзади клубок из МГТФ-а, земли аналоговая и цифровая не разделены и прочие допуски. Но это как-бы макет, пока можно забить.

    И вот значит есть такая некая библиотека, называется Miles Sound System Version 2 (или AIL 2), которую юзали очень многие производители игр того времени. Список игр, использующих эту библиотеку под спойлером, ибо внушает:

    Список игр использующиз драйвера Miles Sound System

    Audio Interface Library and MIDPAK - ADV drivers

    1830: Railroads & Robber Barons (packed)
    A Line in the Sand
    A-Train demo
    Air Bucks
    Airlift Rescue
    Amazon: Guardians of Eden (packed)
    Bard's Lore
    Bard's Tale Construction Set
    Battle Chess 4000
    Battle Isle II
    Battles In Time
    Black Knight
    Blackthorne (packed)
    Blood Bowl (packed)
    Body Slam All-Star Wrestling
    Buck Rogers: Matrix Cubed
    Burnt Rubber
    Buzz Aldrin's Race Into Space
    Caesar
    Capitalism
    Captain Bible in the Dome of Darkness
    Carrier Strike
    Carriers at War II
    Castles II (video)
    Clash of Steel
    Cohort II: Fighting for Rome
    Command Adventures: Starship
    Complete Carriers at War
    Contraption Zack (packed)
    Creepers (packed)
    Cyberbykes (packed)
    Dark Half
    Dark Legions (both ADV and DLL drivers present)
    Dark Queen of Krynn
    Dark Sun: Shattered Lands (packed)
    Dark Sun II
    D-Day
    Delta-V
    Detroit
    Dino Park Tycoon
    Discworld
    Dune II (video) (packed)
    Dungeon Hack
    Eagle Eye Mysteries
    Eagle Eye Mysteries in London
    Edward Grabowski's the Blue and the Gray
    Empire Deluxe (packed)
    Eye of the Beholder III (packed)
    Fantasy Empires (both ADV and DLL drivers present)
    Fatty Bear's Birthday Surprise (packed)
    FIFA Soccer
    Forgotten Realms: Unlimited Adventures
    Kasparov's Gambit
    Gary Grigsby's Pacific War
    Gary Grigsby's War in Russia
    GateWorld Volume One: The Seed Ship
    Global Domination
    Great Naval Battles: North Atlantic
    Guts 'n' Garters in DNA Danger
    H.U.R.L. (aka Slob Zone 3D, Blob 3D)
    Home Alone II
    Homey D. Clown
    IndyCar Racing (both ADV and DLL drivers present)
    Inherit the Earth
    Innocent Until Caught II: Presumed Guilty
    Jammit
    Jane's Simulations: US Navy Fighters '97 (aka Gold) (packed)
    Jonny Quest: Curse of the Mayan Warriors
    Jutland
    Kronolog: The Nazi Paradox
    Lands of Lore (packed)
    Legend of Kyrandia (packed)
    Legend of Kyrandia: Hand of Fate (packed)
    Lemmings II: The Tribes
    Living Ball (packed)
    Lode Runner: The Legend Returns
    Lord of the Rings Vol. II: The Two Towers
    Lords of the Realm
    Lost Vikings (packed)
    Mario Is Missing
    Mario Is Missing Deluxe
    Master Of Magic (packed)
    Master Of Orion (packed)
    Master Won Liu's Escape From Doctor Chang's Dungeon
    Mechwarrior II demo
    Microcosm
    Monopoly Deluxe
    Multimedia Kaleidosonics (not actually a game)
    Orbots
    Origamo (packed)
    National Lampoon's Chess Maniac 5 Billion and 1
    NCAA: Road to the Final Four II
    Pocahontas
    Prophecy of the Shadow
    Pickle Wars
    Putt Putt Joins the Parade (packed)
    Quarterpole
    Rags to Riches
    Rallo Gump
    Realms of Arkania (video)
    Realms of Arkania II (video)
    Return to Zork
    Road Hog! (packed)
    Rules of Engagement II
    Russelheim
    Seal Team
    Sideline demo
    Sim Farm
    Simon the Sorcerer II (video)
    SpaceKids
    Spelljammer: Pirates of the Realmspace
    SSN-21 Seawolf
    Star Trek: 25th Anniversary
    Star Trek: Judgment Rites
    Stronghold (packed)
    Terminator II: Judgment Day - Chess Wars
    The 7th Guest
    The Ancient Art of War in the Skies
    The Beverly Hillbillies
    The Elder Scrolls: Arena (video)
    The Grandest Fleet
    The Machines
    The Orion Conspiracy
    The Perfect General II
    The Pure Wargame
    The Red Crystal
    The Road to Baghdad
    The Terminator 2029
    The Terminator 2029 Deluxe CD Edition
    The Terminator: Rampage
    Thunderstrike
    Tom Landry Strategy Football
    Tony La Russa Baseball II
    Trump Castle III
    Ultima IV: Quest of the Avatar (VGA remake)
    Ultima V: Warriors of Destiny (with Exodus Project patch)
    Ultima VII: Black Gate
    Ultima VII: Serpent Isle
    Ultima Underworld
    Ultima Underworld II
    Ultimate Soccer Manager (aka Der Meister)
    Warlords II
    Warlords II Deluxe
    Warriors (aka Savage Warriors)
    Wayne Gretzky Hockey III
    Wayne's World
    When Two Worlds War
    Wing Commander Academy
    Wing Commander: Privateer
    Wolf
    Wolfsbane (packed)
    World War II
    Zorro

    Audio Interface Library 32-bit DPMI - DLL drivers:

    Al-Qadim: The Genie's Curse
    Alien Legacy
    Dark Legions (both ADV and DLL drivers present)
    Fantasy Empires (both ADV and DLL drivers present)
    IndyCar Racing (both ADV and DLL drivers present)
    Iron Cross
    Isle of the Dead
    Little Big Adventure
    Menzoberranzan (video)
    Mortal Coil (both DLL and MDI drivers present)
    Panzer General
    Ravenloft: Strahd's Possession (video)
    Ravenloft: Stone Prophet
    Renegade: Battle for Jacob's Star
    Shadowcaster
    Sim City 2000
    SVGA Air Warrior
    Syndicate (packed)
    Syndicate Plus (packed)
    System Shock (floppy version)
    The Settlers
    Wargame Construction Set III: Age of Rifles demo (both DLL and MDI drivers present)
    Wings of Glory

    Miles Sound System - MDI drivers

    3 Skulls Of The Toltecs
    3D Hero (music drivers seem to be unused)
    Absolute Zero
    Advanced Civilization
    Alain Prost Grand Prix
    Albion
    Azrael's Tear
    Battle Sport
    Breach III
    Bubble Bobble featuring Rainbow Islands
    Cadillacs and Dinosaurs
    Caesar II
    Callahan's Crosstime Saloon
    Death Gate
    Dinotopia
    EF2000
    Empire II
    Extreme Assault
    Fade To Black
    Firo & Klawd
    Flame Dragon II: Legend of Golden Castle
    Flying Corps
    Front Lines
    Gene Wars
    Heaven's Dawn
    Heroes of Might and Magic II
    Heroes of Might and Magic II: Price of Loyalty (video)
    Hi Octane
    High Seas Trader
    I Have No Mouth And I Must Scream
    Ironman X-O Manowar In Heavy Metal (music drivers seem to be unused)
    Jagged Alliance (video)
    Jagged Alliance: Deadly Games
    Jungledyret Hugo
    Loadstar
    Lords of Midnight III: The Citadel
    Lost Files of Sherlock Holmes II
    Magic Carpet II
    Master Of Orion II
    Mega Man X
    Mechwarrior II
    Mission Critical
    Mortal Coil (both DLL and MDI drivers present)
    Nemesis: The Wizardry Adventure
    Nerves of Steel
    Primal Rage
    Privateer II: The Darkening
    Privateer II: The Darkening Deluxe Edition
    Prost Grand Prix
    Sea Legends
    Sensible World of Soccer
    Sentient
    Shannara
    Sideline
    Skazki na Bereste (Tales on Birch Bark)
    Space Jam (music drivers seem to be unused)
    Spellcross
    Star Control III
    Super Street Fighter II
    Syndicate Wars
    System Shock (CD version)
    Terra Nova
    The 11th Hour
    The Gene Machine
    The Settlers II
    Time Commando
    Theme Hospital
    Trash It
    War, Inc.
    Wargame Construction Set III: Age of Rifles demo (both DLL and MDI drivers present)
    Warcraft (video)
    Warcraft II
    Warcraft II: Beyond the Dark Portal
    Wayne Gretzky and the NHLPA All-Stars
    Wing Nuts
    Wreckin Crew
    WWF In Your House (music drivers seem to be unused)
    WWF Wrestlemania: The Arcade Game
    Z
    Zone Raiders
    Zoop
    [свернуть]


    И есть сорцы этой библиотеки. Все эти игры используют ghfrnbxtcrb обычные MIDI-файлы, а соответственно в драйвере реализован MIDI-синтезатор для различных звуковух (Adlib, Sound Blaster, и тд). Поскольку есть, как я уже говорил, сорцы - можно сделать свой собственный драйвер для CMS (этой звуковухи на двух SAA1099). Там есть пример драйвера для Tandy - это трехголосый PSG. Взяв его за основу, я написал процедуры для вывода на CMS. Вот, например, варкрафт II на этой карте:



    Но! Вывожу и обрабатываю я только ноты с заданной частотой, то есть у SAA1099 не используется ни генератор шума, ни ADSR.

    Вопрос: можно ли в MIDI-синтезаторе как-то использовать специальные фичи этих чипов (SAA1099), типа генератора шума и ADSR. Может там барабаны как-то генератором шума проигрывать? Я не очень секу просто. Возможно, кто-то писал MIDI-синтезатор для SAA1099, очень было бы здорово подсмотреть исходнички. Буду рад любым советам.
    Работают:
    1) ПЭВМ Поиск-1 512Kb RAM, FDD controller + TEAC 5"25 800Kb, HDD MFM controller + ST-225, Joystick controller + Joystick
    2) XT Super Turbo V, Siemens 8088/NEC V20, 640Kb RAM, MFM Robotron K5504.20, FDD 5,25" MC-5311/MITSUMI D509V3, COM, LPT
    3) ПЭВМ "ДУЭТ" проц: КР1858ВМ1; память 48K РУ5 (клон Spectrum 48K)
    Пока не работают:
    1) ПЭВМ Поиск-1 128Kb RAM (не работает большая часть кнопок на клавиатуре).

  2. Эти 2 пользователя(ей) поблагодарили Tronix за это полезное сообщение:
    creator (10.07.2015), perestoronin (19.07.2015)

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

  4. #2
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,031
    Благодарностей: 1426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По опыту ковыряния MIDI-файлов, вариантов использования этой мелкосхемы через одноименный интерфейс может быть два:
    1) специальные команды, содержащие данные, напрямую записываемые в регистры
    2) набор семплов, выводимых прошивкой в ответ на обычные команды вида "нота-громкость"

    Какой там вариант используется?

  5. #3
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,438
    Благодарностей: 765
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну исходники библиотеки на ассемблере, достаточно много кода, и на глубокое погружение у меня не хватило сил и времени. С наскоку - взял уже готовый драйвер для Tandy - это примерно как спикер в, частота и длительность, 3 канала. Написал свои процедуры вывода для CMS - задается канал, частота, октава, громкость. Через регистры SAA1099.
    Сам синтезатор далее обрабатывает фактически только ctrl change, pitch, note off:
    Код:
                    cmp ax,0b0h             
                    je __ctrl_change
                    cmp ax,0e0h
                    je __pitch
                    cmp ax,080h
                    je __note_off
    В управляющих меняется громкость, остальное не используется. В питче задается частота. В ноте офф - выключается канал. Вот вкратце и все. Таким образом я сейчас просто проигрываю ноты из МИДИ с заданной частотой,громкостью и все.

    Для Adlib'а там конечно все намного круче. Там и банк инструментов подгружается и по нему уже играется.... Там очень мощно наворочено, я не разобрался.

    Не знаю как лучше объяснить, потому что сам не понимаю большую часть. Поэтому и ищу какой-то проект, типа поделки на Ардуино, который MIDI бы с компа на SAA1099 играл классно (с сорцами). Вот, например чувак подключал: http://little-scale.blogspot.co.uk/2...-saa-1099.html А вот демо-запись с его устройства: http://chipmusic.org/little-scale/mu...heart-saa-1099 И шумы и всякие эффекты. Вот как он так?
    Работают:
    1) ПЭВМ Поиск-1 512Kb RAM, FDD controller + TEAC 5"25 800Kb, HDD MFM controller + ST-225, Joystick controller + Joystick
    2) XT Super Turbo V, Siemens 8088/NEC V20, 640Kb RAM, MFM Robotron K5504.20, FDD 5,25" MC-5311/MITSUMI D509V3, COM, LPT
    3) ПЭВМ "ДУЭТ" проц: КР1858ВМ1; память 48K РУ5 (клон Spectrum 48K)
    Пока не работают:
    1) ПЭВМ Поиск-1 128Kb RAM (не работает большая часть кнопок на клавиатуре).

  6. #4
    Guru Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    7,805
    Благодарностей: 2833
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    Ну исходники библиотеки на ассемблере, достаточно много кода, и на глубокое погружение у меня не хватило сил и времени.
    А где можно познакомится с этими исходниками библиотеки?
    Сайт поддержки моих изделий - http://micklab.ru/
    Форум поддержки - http://forum.tslabs.info/viewforum.php?f=51

  7. #5
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,438
    Благодарностей: 765
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    А где можно познакомится с этими исходниками библиотеки?
    На домашней странице Джона Майлза: http://www.thegleam.com/ke5fx/ (внизу там AIL Version 2)
    Работают:
    1) ПЭВМ Поиск-1 512Kb RAM, FDD controller + TEAC 5"25 800Kb, HDD MFM controller + ST-225, Joystick controller + Joystick
    2) XT Super Turbo V, Siemens 8088/NEC V20, 640Kb RAM, MFM Robotron K5504.20, FDD 5,25" MC-5311/MITSUMI D509V3, COM, LPT
    3) ПЭВМ "ДУЭТ" проц: КР1858ВМ1; память 48K РУ5 (клон Spectrum 48K)
    Пока не работают:
    1) ПЭВМ Поиск-1 128Kb RAM (не работает большая часть кнопок на клавиатуре).

  8. Эти 2 пользователя(ей) поблагодарили Tronix за это полезное сообщение:
    Mick (12.07.2015), perestoronin (19.07.2015)

  9. #6
    Moderator
    Регистрация
    25.11.2007
    Адрес
    Симферополь
    Сообщений
    1,970
    Благодарностей: 386
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Фактически - MIDI это тупо список нот и иногда эффектов. То есть то что мы видим в любом трекере.
    Для проигрывания миди - нужно сделать аналог трекера и стандартную базу инструментов( напоминающую значением список MIDI инструментов) чтобы при смене инструмента например на барабан - ваше устройство выставляло огибающую пукающую похоже на ударник. в контроллере нужно создать полный аналог трэкера - а контроллер получает ноты и команды на вход трекера и результат обработки выкидывает в SAA.

    А в драйверах ADLIB и прочих - то же самое получается не по последовательному порту а по 330 порту в параллельном виде.
    Amiga 1200+Blizzard 1260 72 Mb+Mtek 68030,Compozit 128, Leningrad 2,
    Atari STE 1040,ZX Spectrum +2,Pentagon 48, Speccy2007 - 2 , ATAS 256k.
    ZX Evo 4Mb- в строю.
    Speccy2010 v1
    Специалист (пока готовлюсь к восстановлению).
    Это все мое!
    Родное!
    Все люблю на свете я! Это родина моя!

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

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

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

Похожие темы

  1. ВременнЫе диаграммы и другие вопросы по Z80
    от Bolt в разделе Для начинающих
    Ответов: 33
    Последнее: 09.04.2014, 13:53
  2. Ответов: 69
    Последнее: 24.08.2012, 00:59
  3. Ответов: 6
    Последнее: 24.07.2012, 21:08
  4. Ответов: 16
    Последнее: 22.04.2012, 17:03

Ваши права

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