Материал из Chipwiki
Перейти к: навигация, поиск
WonderSwan/Программирование — различия между версиями
Строка 2: Строка 2:
 
{{Основная статья|WonderSwan Color|Текст=WonderSwan Color}}
 
{{Основная статья|WonderSwan Color|Текст=WonderSwan Color}}
 
==Описание==
 
==Описание==
Раздел является переводом [http://cygne.emuunlim.com/files/wstech21.txt документации от Judge и Dox]. Возможны ошибки.
+
Раздел является переводом [http://cygne.emuunlim.com/files/wstech21.txt документации] от Judge и Dox и [http://daifukkat.su/docs/wsman/ WSMan rev.7]. Возможны ошибки.
  
 
<spoiler text="Процессор">
 
<spoiler text="Процессор">
Строка 62: Строка 62:
 
* Расположение плиток фиксированное: два банка на адресах $4000 и $8000
 
* Расположение плиток фиксированное: два банка на адресах $4000 и $8000
  
WonderSwan (не Color) может отображать 16 оттенков серого (можно выбрать только 8).
+
В WonderSwan изображение из оттенков серого. Цвета собраны в пул из 8 оттенков, которые задаются 4 битами (00h - самый яркий, 0Fh - самый темный). 16 палитр включают в себя по 4 цвета из пула.
  
В WonderSwan Color используется 16 палитр по 8 цветов. Все 16 палитр используются BG и FG. Последние 8 палитр используются спрайтами.
+
В WonderSwan Color регистры монохромного WonderSwan игнорируются, используется 16 палитр по 8 цветов. Все 16 палитр используются BG и FG. Последние 8 палитр используются спрайтами.  
  
 
8 цветов палитры определяются портами 1C (определяет цвета 0-3) и 1E (определяет цвета 4-7).
 
8 цветов палитры определяются портами 1C (определяет цвета 0-3) и 1E (определяет цвета 4-7).
Строка 86: Строка 86:
 
Цветовые палитры хранятся в оперативной памяти (сегмент 0) по адресу $FE00
 
Цветовые палитры хранятся в оперативной памяти (сегмент 0) по адресу $FE00
  
Скроллинг: каждый слой можно прокручитвать по горизонтали или вертикали при помощи портов от $10 до $13.
+
Скроллинг: каждый слой можно прокручивать по горизонтали или вертикали при помощи портов от $10 до $13.
  
 
Прозрачность:
 
Прозрачность:
* WonderSwan - если бит 3 в номере палитры задан, то цвет 0 палитры является прозрачным.
+
* WonderSwan - палитры 0-3 и 8-11 непрозрачны. В палитрах 4-7 и 12-15 цвет 0 прозрачный.
 
* WonderSwan Color - цвет 0 каждой палитры прозрачен
 
* WonderSwan Color - цвет 0 каждой палитры прозрачен
  
 
Окна: есть две прямоугольный области для отключения/включения слоя FG (окно BG) или спрайтов (окно Sprite).
 
Окна: есть две прямоугольный области для отключения/включения слоя FG (окно BG) или спрайтов (окно Sprite).
 +
</spoiler>
 +
<spoiler text="Спрайты">
 +
{{textcolor|Пока ничего нет|gray}}
 
</spoiler>
 
</spoiler>
 
<spoiler text="Звук">
 
<spoiler text="Звук">
Строка 106: Строка 109:
 
** байт со значением -128 -127
 
** байт со значением -128 -127
 
* канал 4 - шум - 7 выбираемых шумов (вероятно, порт ввода/вывода $8E)
 
* канал 4 - шум - 7 выбираемых шумов (вероятно, порт ввода/вывода $8E)
 +
 +
В WonderSwan Color имеется дополнительный PCM-канал, но только для наушников.
  
 
Для детальной информации нужно посмотреть информацию о портах $80-$91 в секции "Порты ввода/вывода"
 
Для детальной информации нужно посмотреть информацию о портах $80-$91 в секции "Порты ввода/вывода"
 
</spoiler>
 
</spoiler>
<spoiler text="Заголовок ROM">
+
<spoiler text="ROM-файлы">
 
Заголовок занимает последние 10 байт в каждом ROM-файле
 
Заголовок занимает последние 10 байт в каждом ROM-файле
 
* 0 - идентификатор разработчика
 
* 0 - идентификатор разработчика
Строка 139: Строка 144:
 
* 7 - 1 - RTC (часы)
 
* 7 - 1 - RTC (часы)
 
* 8,9 контрольная сумма = сумма всех байтов ROM, кроме двух последних (где хранится контрольная сумма)
 
* 8,9 контрольная сумма = сумма всех байтов ROM, кроме двух последних (где хранится контрольная сумма)
 +
 +
Выпущенные типы картриджей:
 +
* BMC2001
 +
** до 128 Мбит ROM
 +
** до 128 Мбит SRAM
 +
** до 16 Кбит EEPROM
 +
* BMC2003
 +
** до 512 Мбит ROM
 +
** до 128 Мбит SRAM
 +
** до 4 выходных линий общего назначения
 +
** RTC
 
</spoiler>
 
</spoiler>
 
<spoiler text="Прерывания">
 
<spoiler text="Прерывания">

Версия 14:33, 10 апреля 2019

Описание

Раздел является переводом документации от Judge и Dox и WSMan rev.7. Возможны ошибки.

Процессор

Память

Графика

Спрайты

Звук

ROM-файлы

Прерывания

Управление

Internal EEPROM Communication

Порты ввода/вывода

Ассемблеры

  • nasm

Инструменты

  • bmp2swan - конвертер 16-цветного BMP-файла в тайлы, палитру и карту. Поддерживается отражение по вертикали и горизонтали.
  • SwanLayer Merger - инструмент для объединения данных, нужен в случае, когда на изображение требуется больше 16 цветов: нужно разделить изображения на несколько 16-цветных BMP, сконвертировать при помощи bmp2swan, затем в SwanLayer Merger объединить данные и создать общие карту, набор плиток и палитры.

Эмуляторы

Хоумбрю