Материал из Chipwiki
Перейти к: навигация, поиск
Sleizsa Trio — различия между версиями
(→‎Описание)
 
(не показано 5 промежуточных версий этого же участника)
Строка 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]]'а.
  
 
Возможности:
 
Возможности:
Строка 21: Строка 25:
 
===Подготовка===
 
===Подготовка===
 
Для использования 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
 
−
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.
 
  
 +
Вместо MAME можно использовать MESS, но скрипты компиляции нужно будет отреактировать.
  
 
===Как использовать===
 
===Как использовать===
 +
# Написать музыку, используя шаблон music.xm
 +
# Выполнить compile.bat / compile.sh
 +
# PROFIT!
  
−
Step 1: Make some music using the included music.xm template.
+
Прилагаемый шаблон music.xm даёт только прриблизительное предстваление, как будет звучать музыка на реальной консоли.
−
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
 
−
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
 
−
are A-0 - B-5.
 
−
 
 
−
On channel 3, noise can be played instead of tones. For this, use instrument 2.
 
−
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
 
−
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
 
−
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
 
−
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
+
Тоны должны вводиться в дорожках 1-3 с использованием инструмента 01. Допустимые ноты - от A-0 до B-5.
−
interrupts prior to calling Sleizsa Trio.
 
  
−
However, it is possible to update graphics within the sound loop
+
На канале 3 вместо тона можно воспроизводить шум. Для этого нужно использовать инструмент 2. Обращаю внимание, что фактический шум будет отличаться от того, что в шаблоне. Изменение шума происходит с нелинейным шагом. Для достижения лучшего результата используйте ноты A-5 и A#5.
−
(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).
 
  
 +
Имеется два прерывающих барабанных звука (инструменты 03 и 04), которые могут использоваться на канале 4. Только один барабан может звучать в один момент времени.
  
−
Music Data Layout
+
Темп можно менять с помощью команды Fxx (допускаются значения F01-F1F) или глобальной установкой. BPM менять нельзя. Нужно помнить, что после каждого паттерна скорость сбрасывается до глобального значения.
−
=================
 
  
−
The first section is contains the order in which patterns will be played. It
+
Точку цикла можно установить с помощью компанды Bxx.
−
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
+
Настройки ширины пульса глобально для каждого канала можно изменить, изменив строки 36-38 в  main.asm. Более высокие значения могут давать более сильный звук, но вместе с тем высока вероятность перегрузки/глюка вывода. Лучше придерживаться значений ниже $40.
−
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
+
Если вам не хватает объема двоичного файла, можно увеличить значение в строке 34 файла main.asm. Теоретически можно увеличить размер до 62 КБ, но MAME ломается при попытке использовать более 8 КБ.
−
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 КБ.