Материал из Chipwiki
Перейти к: навигация, поиск
Sleizsa Trio — различия между версиями
(Новая страница: «{{Программа |Положение карточки = |Скриншот = |Разработчик = irrlichtproject |Платформа = Fairchild Chan…»)
 
 
(не показано 6 промежуточных версий 2 участников)
Строка 1: Строка 1:
{{Программа
+
{{Программа/Музыка
|Положение карточки =
+
| Скриншот =  
|Скриншот =  
+
| Разработчик = irrlichtproject
|Разработчик = irrlichtproject
+
| Поддерживаемая платформа = [[Fairchild Channel F]]
|Платформа = [[Fairchild Channel F]]
+
| Нативный софт = 0
|Доступна на =  
+
| Windows = 1
|Статус =  
+
| Mac = 0
|Ссылка = https://github.com/utz82/SleizsaTrio
+
| Linux = 1
 +
| Android = 0
 +
| iOS = 0
 +
| Статус =  
 +
| Сайт = https://github.com/utz82/SleizsaTrio
 
}}
 
}}
 
==Описание==
 
==Описание==
Трёх-канальный шаблон для консоли Fairchild Channel F, использующий алгоритм Zilogat0r'а для бипера [[ZX Spectrum]]'а.
+
Трёхканальный шаблон для консоли Fairchild Channel F, использующий алгоритм Zilogat0r'а для бипера [[ZX Spectrum]]'а.
  
 
Возможности:
 
Возможности:
Строка 18: Строка 22:
 
* 6-битное разрешение темпа
 
* 6-битное разрешение темпа
  
 +
==Использование==
 +
===Подготовка===
 
Для использования Sleizsa Trio требуются:
 
Для использования Sleizsa Trio требуются:
- [http://dasm-dillon.sourceforge.net dasm macro assembler]
+
* [http://dasm-dillon.sourceforge.net dasm macro assembler]
- XM tracker
+
* XM tracker
- MAME
+
* MAME
  
Настройка:
+
Установить Milkytracker, dasm и MAME.
  
Install Milkytracker, dasm, and MAME, if you haven't already done so.
+
Чтобы не искать эти утилиты, можно прописать их в compile.bat/compile.sh. Пользователи Windows могут скопировать файлы dasm и MAME в папку SleizsaTrio
(If you do not wish to add these utilities to your search path, you can
 
specify the paths in compile.bat/compile.sh instead. Windows users can also
 
copy the relevent dasm and MAME files to /SleizsaTrio).
 
  
Get the Channel F ROM files and put them in SleizsaTrio/roms/channelf. These
+
Нужно найти дампы BIOS'а Channel F и поместить их по пути SleizsaTrio/roms/channelf. Найти дампы можно, например, в оригинальном пакете [[Sleizsa]].
files are not distributed with Sleizsa Trio, but you can get them in various
 
places, such as the original Sleizsa package for example.
 
  
Note that you can use the now defunct MESS instead of MAME, however you will
+
Вместо MAME можно использовать MESS, но скрипты компиляции нужно будет отреактировать.
need to edit the compile scripts accordingly if you do. As far as I know there
 
are no drawbacks to this, as Channel F emulation code in MAME has not had any
 
major changes since the MESS days.
 
  
 +
===Как использовать===
 +
# Написать музыку, используя шаблон music.xm
 +
# Выполнить compile.bat / compile.sh
 +
# PROFIT!
  
Как использовать:
+
Прилагаемый шаблон music.xm даёт только прриблизительное предстваление, как будет звучать музыка на реальной консоли.
  
Step 1: Make some music using the included music.xm template.
+
Тоны должны вводиться в дорожках 1-3 с использованием инструмента 01. Допустимые ноты - от A-0 до B-5.
Step 2: Execute compile.bat (Win) resp. compile.sh (*nix).
 
Step 3: Profit!
 
  
You can use the included music.xm template to compose your tunes. It gives
+
На канале 3 вместо тона можно воспроизводить шум. Для этого нужно использовать инструмент 2. Обращаю внимание, что фактический шум будет отличаться от того, что в шаблоне. Изменение шума происходит с нелинейным шагом. Для достижения лучшего результата используйте ноты A-5 и A#5.
only a rough approximation of how the music will sound on the actual console,
 
though.
 
  
Tones must be entered into tracks 1-3, using instrument 01. Valid notes
+
Имеется два прерывающих барабанных звука (инструменты 03 и 04), которые могут использоваться на канале 4. Только один барабан может звучать в один момент времени.
are A-0 - B-5.
 
  
On channel 3, noise can be played instead of tones. For this, use instrument 2.
+
Темп можно менять с помощью команды Fxx (допускаются значения F01-F1F) или глобальной установкой. BPM менять нельзя. Нужно помнить, что после каждого паттерна скорость сбрасывается до глобального значения.
Note that the actual noise is very different from the XM template. It does
 
change with pitch, but not in a linear manner. For best results, use notes A-5
 
or A#5.
 
  
There are two interrupting drum sounds (instrument 03 and 04), they can only
+
Точку цикла можно установить с помощью компанды Bxx.
be used in channel 4. Only one drum sound can be active at a given time.
 
  
You can change the tempo with the Fxx command, or globally with the tempo
+
Все остальные эффекты, а также изменения инструментов и настройки громкости будут проигнорированы.
setting. You cannot change the BPM. So, only values F01..F1F are allowed.
 
Beware that after each pattern, the speed will be reset to the global value.
 
  
You can set a loop point with command Bxx. If no loop point is specified, the
+
Настройки ширины пульса глобально для каждого канала можно изменить, изменив строки 36-38 в  main.asm. Более высокие значения могут давать более сильный звук, но вместе с тем высока вероятность перегрузки/глюка вывода. Лучше придерживаться значений ниже $40.
player will loop back to the start once it has finished the playing the song.
 
  
Other than Fxx/Bxx, all effects will be ignored. Changes made to the instruments
+
Если вам не хватает объема двоичного файла, можно увеличить значение в строке 34 файла main.asm. Теоретически можно увеличить размер до 62 КБ, но MAME ломается при попытке использовать более 8 КБ.
as well as volume settings are also ignored.
 
 
 
You can change the duty cycle (pulse width) settings globally for each channel
 
by editing lines 36-38 of main.asm. Higher values may give more beefy sound, but
 
have a higher chance of overloading/glitching the output. As a rule of thumb,
 
stick to values lower than $40.
 
 
 
If you are running out of space in the binary, try increasing the value in
 
line 34 of main.asm. In theory, up to 62 KB are possible, but MAME will break
 
when trying to use more than 8 KB.
 
 
 
I tried my best to correct the drum speed shift. If you do however find it to be
 
insufficient, you can try to experiment with the values in line 95 resp. 145
 
of main.asm.
 
 
 
 
 
Note to Programmers
 
===================
 
 
 
You are free to use Sleizsa Trio in your programs, as long as you credit me.
 
Beware that Sleizsa Trio is not guaranteed to work on all Channel F versions.
 
 
 
The routine normally resides at $800, but can be relocated to any other address.
 
The musicData section can reside anywhere in memory. Sleizsa Trio takes all the
 
CPU time, so you can't do much else while music is playing. You could, however,
 
update graphics between notes (calling gfx code in the .readPtn section), at the
 
cost of introducing additional noise during note transitions.
 
 
 
Scratchpad registers r0-r16 including the K register are used, so you'll have
 
to work around that.
 
 
 
In case you are using external interrupts in your homebrew, you must disable
 
interrupts prior to calling Sleizsa Trio.
 
 
 
However, it is possible to update graphics within the sound loop
 
(thereby lowering pitch and decreasing overall sound quality) as long as your
 
gfx code always takes a fixed number of cycles and restores scratchpad contents
 
on return (except Q which may be trashed).
 
 
 
 
 
Music Data Layout
 
=================
 
 
 
The first section is contains the order in which patterns will be played. It
 
consists of word-length pointers to the patterns and is terminated with an $ff
 
byte.
 
 
 
The following sections are the actual patterns, containing the music data.
 
Patterns can be of arbitrary length, and must be terminated with a $00 byte.
 
 
 
Each row in the pattern data consists of 4 bytes. The first byte contains
 
information about the speed of the row. A higher value corresponds to a lower
 
speed. The speed value must be >0 and <$40. Setting bit 6 of the first byte
 
will trigger the kick drum, setting bit 7 will trigger the noise drum. Only one
 
drum can be triggered on any given row. The noise drum takes precedence over the
 
kick drum.
 
 
 
Bytes 2-4 of a row are pointers to note values for channel 1-3, respectively. A
 
value of 0 signifies silence, available notes are 2-$7e. Note values must be
 
even, except on channel 3, where uneven notes trigger the noise mode.
 

Текущая версия на 13:09, 18 июля 2020

icon back.png К списку программ
Поддерживаемая ОС: icon Windows.png icon Linux.png
Поддерживаемая платформа: Fairchild Channel F
Разработчик: irrlichtproject
Сайт: https://github.com/utz82/SleizsaTrio

Описание

Трёхканальный шаблон для консоли Fairchild Channel F, использующий алгоритм Zilogat0r'а для бипера ZX Spectrum'а.

Возможности:

  • 3 канала, 16-разрядные делители частоты
  • большие возможности по настройке тонов
  • режим шума для канала 3
  • 2 барабанных прерывания
  • 6-битное разрешение темпа

Использование

Подготовка

Для использования Sleizsa Trio требуются:

Установить Milkytracker, dasm и MAME.

Чтобы не искать эти утилиты, можно прописать их в compile.bat/compile.sh. Пользователи Windows могут скопировать файлы dasm и MAME в папку SleizsaTrio

Нужно найти дампы BIOS'а Channel F и поместить их по пути SleizsaTrio/roms/channelf. Найти дампы можно, например, в оригинальном пакете Sleizsa.

Вместо MAME можно использовать MESS, но скрипты компиляции нужно будет отреактировать.

Как использовать

  1. Написать музыку, используя шаблон music.xm
  2. Выполнить compile.bat / compile.sh
  3. PROFIT!

Прилагаемый шаблон music.xm даёт только прриблизительное предстваление, как будет звучать музыка на реальной консоли.

Тоны должны вводиться в дорожках 1-3 с использованием инструмента 01. Допустимые ноты - от A-0 до B-5.

На канале 3 вместо тона можно воспроизводить шум. Для этого нужно использовать инструмент 2. Обращаю внимание, что фактический шум будет отличаться от того, что в шаблоне. Изменение шума происходит с нелинейным шагом. Для достижения лучшего результата используйте ноты A-5 и A#5.

Имеется два прерывающих барабанных звука (инструменты 03 и 04), которые могут использоваться на канале 4. Только один барабан может звучать в один момент времени.

Темп можно менять с помощью команды Fxx (допускаются значения F01-F1F) или глобальной установкой. BPM менять нельзя. Нужно помнить, что после каждого паттерна скорость сбрасывается до глобального значения.

Точку цикла можно установить с помощью компанды Bxx.

Все остальные эффекты, а также изменения инструментов и настройки громкости будут проигнорированы.

Настройки ширины пульса глобально для каждого канала можно изменить, изменив строки 36-38 в main.asm. Более высокие значения могут давать более сильный звук, но вместе с тем высока вероятность перегрузки/глюка вывода. Лучше придерживаться значений ниже $40.

Если вам не хватает объема двоичного файла, можно увеличить значение в строке 34 файла main.asm. Теоретически можно увеличить размер до 62 КБ, но MAME ломается при попытке использовать более 8 КБ.