PDA

Просмотр полной версии : 6912 с палитрой



alone
14.02.2014, 10:18
Как известно, на ATM Turbo, Pentagon 2.2 (с доработкой DDp), Pentagon 2.666 и ZX Evolution есть палитра, которая работает и в режиме 6912.

По просьбе Trefi я написал программу palchanger (http://alonecoder.nedopc.com/zx/palchanger.rar). Эта программа позволяет настроить палитру перед запуском редактора BGE.

В комплекте программы лежит пример экрана 6912 с палитрой:

http://alonecoder.nedopc.com/zx/pics/lisasshot000000.png

Эта конверсия сделана в con18pal (http://alonecoder.nedopc.com/zx/con18pal.rar) (см. хелп).

denpopov
14.02.2014, 10:28
Это к объявленному контесту (http://speccy-live.untergrund.net/2014/02/zx-spectrum-evolution-graphic-compo-2014/)?

alone
14.02.2014, 10:38
Нет, на контесте будет графика 320x200. А palchanger и con18pal - скорее для разработчиков игр (вместо каких-нибудь ULA+ или FlashColor).

Hacker VBI
14.02.2014, 11:16
прикольно. ULA16 получается

denpopov
14.02.2014, 11:18
ULA16 получается
вот только с эмуляторами одна засада - я не нашел ни одного рабочего.

Hacker VBI
14.02.2014, 11:39
в данном случае стандартного эмуля Evo хватит

denpopov
14.02.2014, 11:41
в данном случае стандартного эмуля Evo хватит
а где можно скачать?

Hacker VBI
14.02.2014, 12:18
denpopov, я такой (http://zx-evo-fpga.googlecode.com/hg/pentevo/unreal/Unreal/bin/unreal.7z) пользую, он самый полный
не забудь переключится в нужную модель

drbars
14.02.2014, 13:56
Пока только понял, что R меняет цвет в квадратике. Дальше атрибут как складывается paper/ink? Стандартно? Просто каждому из 3 бит соответствует новый цвет?

alone
14.02.2014, 15:18
Там есть инструкция. R,G,B компоненты каждого из 16 спектрумовских цветов задаются независимо (проблема с 8-м цветом во многих версиях Unreal Speccy, в моей версии исправлено).

---------- Post added at 15:18 ---------- Previous post was at 15:15 ----------

http://alonecoder.nedopc.com/zx/US0371FIX.rar

drbars
14.02.2014, 20:20
В эмуляторе Unreal 0.38.1 - баг исправлен или нет?

drbars
15.02.2014, 13:18
Тут ещё выяснилось, что в 0.38.1 мало того баг не исправлен, так ещё и второй экран порта #7FFD в режиме ATM2 не работет :(

jerri
15.02.2014, 14:39
drbars, вот что бывает когда каждый считает своим долгом фиксить баги в опенсорсном проекте не удостаивая остальных участников информированием о багах и прочем.

alone
15.02.2014, 16:18
Ну, об этом баге сообщено в официальной ветке deathsoft'а. Скоро, наверно, пофиксит.

drbars
15.02.2014, 16:53
alone, расскажи какой бит отвечает на вкл/выкл turbo режима.

И можно ли с открытыми портами работать с trdos через 3d2f, или порты надо закрывать, потом вызывать процеруды диска?

alone
15.02.2014, 17:09
Турбо-режим включается битом D3 порта #xx77 (открытые порты - #bd77).

При работе с TR-DOS надо обязательно закрывать порты. Это делается через
ld a,%10101011 ;6912,turbo
ld bc,#ff77
out (c),a

---------- Post added at 17:09 ---------- Previous post was at 17:06 ----------

Также для работы с TR-DOS надо восстановить в #0000 страничку 48 бейсика, переключабельную в страничку TR-DOS, это делается так:
ld a,#83 ;в досе это значение работает как #82
ld bc,#3ff7
out (c),a

drbars
15.02.2014, 22:35
Добавил редактор палитры в свой Dizzy Editor.
Вполне возможно будет поддержана опциональная палитра для заданной локации/уровня/итд..

krotan
16.02.2014, 00:30
Не подскажите, где можно посмотреть информацию об этом графическом режиме, да и о других тоже? Только не общую, типа разрешение экрана и сколько цветов - это везде есть, а подробную, где как и что расположено, как программируется, как переключается... Для программирования, в общем...

alone
16.02.2014, 14:21
Почитать можно в этой книжке: http://atmturbo.nedopc.com/inf/books/nedopc/atm_hard.zip
Но на практике достаточно знать, как включать (см. ниже) и как выключать (см. выше).

Как включать:

LD A,%10101011 ;режим 6912, turbo
;LD A,%10101000 ;режим 320x200, turbo
;LD A,%10101010 ;режим 640x200, turbo
CALL OUTSHADON
...
OUTSHADON
LD BC,#BD77 ;вкл.теневые порты и палитру
LD HL,#2A53
PUSH HL
JP #3D2F

Как заполнять палитру:

HALT ;т.к. надо заполнять палитру во время бордера
LD HL,pal+15
LD B,15
ATMPAL0 LD A,B
BIT 3,B
RES 3,A
OUT (#FE),A
JR Z,$+4
OUT (#F6),A
LD A,(HL)
DEC HL
OUT (#FF),A
DEC B
JP P,ATMPAL0

Пример палитры (стандартная спектрумовская):
zxpal
db #ff,#fe,#fd,#fc,#ef,#ee,#ed,#ec ;неяркие
db #ff,#de,#bd,#9c,#6f,#4e,#2d,#0c ;яркие

Цвет в палитре кодируется так:
D7 – g (Low Green) (inverted)
D6 – r (Low Red) (inverted)
D5 – b (Low Blue) (inverted)
D4 – G (Green) (inverted)
D3 – 1
D2 – 1
D1 – R (Red) (inverted)
D0 – B (Blue) (inverted)

krotan
16.02.2014, 17:10
Спасибо, всё понятно. Сравнил с ULAplus. Там для представления палитры используетя на один бит больше (бит мерцания). Здесь палитра 16 байт, там 64. Значит ли это, что ULAplus является более совершенным палитровым стандартом экрана, чем данный режим?

jerri
16.02.2014, 17:43
krotan, в УлаПлюс 256 цветов
здесь 64

alone
16.02.2014, 20:01
Значит ли это, что ULAplus является более совершенным палитровым стандартом экрана, чем данный режим?
В ULAplus проблемы с совместимостью.

scl^mc
16.02.2014, 20:03
В ULAplus проблемы с совместимостью.
какие именно?

Alex Rider
16.02.2014, 20:40
какие именно?
ЕМНИП, она использует порт #b3 вместе с GS.

alone
16.02.2014, 20:41
И всего одна железка его поддерживает, причём несерийная, емнип.

Rindex
16.02.2014, 20:46
И всего одна железка его поддерживает, причём несерийная, емнип.

И всего ничего игр + игровой редактор, что даёт порыв для изготовления ещё большего количества игр. ;)

http://www.worldofspectrum.org/infoseek.cgi?regexp=^ULAplus+Support$&phrase&loadpics=3

jerri
16.02.2014, 22:37
Программирование палитр выполняется через порты #BF3B (управление, только запись) и #FF3B (данные, запись и чтение).

ммм это вроде как 16 битный порт. как АУ

Alex Rider
17.02.2014, 16:48
Программирование палитр выполняется через порты #BF3B (управление, только запись) и #FF3B (данные, запись и чтение).
Тогда наврал про совместимость с GS. Другая, значит, железка нерусская несовместима.

drbars
18.02.2014, 14:01
Почитать можно в этой книжке:
Как заполнять палитру:

HALT ;т.к. надо заполнять палитру во время бордера
LD HL,pal+15
LD B,15

Обязательно во время бордюра?

psb
18.02.2014, 14:03
Обязательно во время бордюра?
заменяется тот цвет, который в данное время рисуется на экране, вроде бы. т.е. можно наверное и не бордюр, но не юзабельно.

alone
03.03.2014, 11:08
Обновил palchanger (http://alonecoder.nedopc.com/zx/palchanger.rar). Теперь кнопкой "0" можно обнулить цвет, чтобы быстро его набирать через R,G,B. Палитра теперь грузится из бейсика, так что можно иметь на диске несколько палитр.

Для примера в тот же архив добавлена ещё раскрашенная версия игры Astro Marine Corps 1:

http://alonecoder.nedopc.com/zx/pics/amc1col.png

alone
30.03.2014, 15:30
В настоящий момент глюк с 8-м цветом исправлен во всех основных версиях Unreal Speccy - от меня, от LVD, от deathsoft'а.

denpopov
30.03.2014, 16:42
по виду больше напоминает эксперименты с Юлей+(ula+)

psb
30.03.2014, 17:01
во всех основных версиях Unreal Speccy - от меня, от LVD, от deathsoft'а
основная из них - одна.

baxter
30.03.2014, 22:18
основная из них - одна.
Ну почему же. Я до сих пор пользуюсь 0.37.1

psb
31.03.2014, 03:02
Ну почему же. Я до сих пор пользуюсь 0.37.1
то, что кто-то использует что-то старое, не говорит о том, что есть основное:) основной эмуль - от deathsoft'а, остальные - подделки. надо объяснять - почему?

и вообще, что-то враньем слегонца попахивает: вот тут http://dlcorp.nedopc.com/viewforum.php?f=27 последние обновления за начало января.
лвд эмулятор сделал (судя по логам ирц) только 2 часа назад, а нам полдня назад сказали, что все готово...

drbars
31.03.2014, 06:48
то, что кто-то использует что-то старое, не говорит о том, что есть основное:) основной эмуль - от deathsoft'а
Надо заметить, что палитра ATM2 на 0.38.1 эмулируется неправильно.

denpopov
31.03.2014, 06:48
сновной эмуль - от deathsoft'а, остальные - подделки. надо объяснять - почему?
Да, не помешало бы.

psb
31.03.2014, 06:56
Надо заметить, что палитра ATM2 на 0.38.1 эмулируется неправильно.
надо писать в поддержку, полагаю, автор не телепат.


Да, не помешало бы.
потому что там исправляется больше всего глюков. потому что версия алоне кодера для алоне кодера онлы. потому что версия лвд практически для лвд онлы (не исключаю, что ее использует кто-то еще в недопц). а версию детсофта используют все остальные и у нее есть форум поддержки.

denpopov
31.03.2014, 08:03
а версию детсофта используют все остальные и у нее есть форум поддержки.
Я не знаю, кто использует, просто мне понадобился эмулятор для отладки бордерных эффектов, Гоблин сказал, что нужен унрил от тслабса. и все чудненько, только на Пентагон неудобно переключаться.

jerri
31.03.2014, 10:13
denpopov, TS lab овский унрил еще до нормального вида не допилен.
А так да он серьезно перепахан и пофиксен

psb
31.03.2014, 13:18
я прекрасно бордер отлаживал на анриле от deathsoft.

denpopov
31.03.2014, 13:31
denpopov, TS lab овский унрил еще до нормального вида не допилен.
Для нормальной работы меня спектакулятор устраивает. Жаль только, что в новой версии другой дебаггер не появился.