PDA

Просмотр полной версии : Гигаскрин на Апогее



vinxru
24.08.2012, 20:08
Полностью аппаратный гигаскрин. Это поочерёдное отображение пары картинок с частотой 25 или 30 Гц. (Я использую развертку 60 Гц). Цвета смешиваются и получается больше оттенков. 8 + 8 цветов дают примерно 32 оттенка.

В эмуляторе b2m демка работает сильно мерцая. Иногда мерцает меньше, иногда больше. В полноэкранном режиме мерцает меньше всего, но там иногда сбивается палитра.

В этой демке используется 4 видеостраницы. Я загрузил в них две картинки (т.е. 4) и переключаю их периодически. Пары картинок переключает сам комп.

Делал демку всего 4 часа, включая портирование музыки и поиск картинки. Музыка местами лажает и графика всего 64x64 пикселя, но зато 169 цветов :) (3 уровня яркости, итого 22 цвета, 22x22 = 484 цвета, из которых 169 уникальных) . Можно было бы сильно уменьшить программу, но архивировать картинки лень.

В музыке попробовал эффект биения (два тона отличающиеся на несколько герц), забавно получилось, Atari 2600 напоминает.

http://s017.radikal.ru/i408/1208/da/25f5dbc3066c.png

http://s019.radikal.ru/i633/1208/6e/ed21366eb61a.png

Во вложении используемая палитра.

http://s44.radikal.ru/i106/1208/ee/8b06b2c8441f.png


http://rghost.ru/gigascreen.rar (http://rghost.ru/39995015)

ПОСЛУШАТЬ МЕЛОДИЮ (http://rghost.ru/40004894)
(Внизу страницы есть плеер)

BYTEMAN
24.08.2012, 20:18
только что запустил на b2m - мерцает ровно 25Гц, когда начинает сильно моргать - просто перетаскиваем немного окошко, и всё нормализуется! Блин, жалко апогея нету, так бы на реале глянул :)

vinxru
24.08.2012, 20:23
Я новую версию загрузил. Ускорил темп музыки слегка.

SKcorp.
24.08.2012, 20:29
В РК86 нет ни цвета, ни страниц.

BYTEMAN
24.08.2012, 20:30
В РК86 нет ни цвета, ни страниц.
цвет есть, в Радио доработки описывались.

vinxru
24.08.2012, 20:38
В РК86 нет ни цвета, ни страниц.

Ок, исправил на Апогей. Только выше Байтмен написал про доработку. Но помимо цвета, придется еще знакогенератор Апогеевский подключать, что бы запустить это. И 580ВИ53 для звука :)

SKcorp.
24.08.2012, 21:03
цвет есть, в Радио доработки описывались.

А, ну да. В Спектруме же есть 4096Кб ОЗУ, SD-карта и т.п...

Короче не пойдет сия прога даже на доработанном РК.

vinxru
24.08.2012, 22:09
А, ну да. В Спектруме же есть 4096Кб ОЗУ, SD-карта и т.п...

Короче не пойдет сия прога даже на доработанном РК.

Если РК86 - это ZX Spectrum 48, то Апогей БК01Ц - это ZX Spectrum 128. Чуть больше памяти, чуть лучше звук, чуть круче видео.

---------- Post added at 20:49 ---------- Previous post was at 20:27 ----------


Короче не пойдет сия прога даже на доработанном РК.

Хочешь адаптирую эту прогу под РК86 с цветной доработкой? В эмуляторе b2m есть такая конфигурация.

Музыки само собой не будет.

---------- Post added at 21:09 ---------- Previous post was at 20:49 ----------


только что запустил на b2m - мерцает ровно 25Гц,

Я только что вспомнил, что я использовал видеорежим 60 Гц.

psb
24.08.2012, 23:18
Если РК86 - это ZX Spectrum 48, то Апогей БК01Ц - это ZX Spectrum 128.
нет, апогей тогда будет пентевой или каким-нить атм-турбо (споры о котором на причастность его к спектруму до сих пор не утихли).

BYTEMAN
24.08.2012, 23:29
Я только что вспомнил, что я использовал видеорежим 60 Гц.
хзхз, у моника развёртка вообще 75. Но мерцание точь в точь как на спектруме в гигаскрине - без рывков, мельтешений - мограет изредка. Т.е. секунд 5 норм, моргает - сдвинул, опять норм, опять моргает... Можешь мне поверить, картинка реально такая, какая должна быть, только послесвечения люминофора нет)

---------- Post added at 22:29 ---------- Previous post was at 22:27 ----------

вруврувру!!! частота экрана сейчас 60Гц! Это ж ноутбучный скрин, попетал, у меня на домашнем 200Гц стоит, а тут как раз в 60-ку укладывается, но иногда подглюкивиет

vinxru
25.08.2012, 00:30
нет, апогей тогда будет пентевой или каким-нить атм-турбо (споры о котором на причастность его к спектруму до сих пор не утихли).

АТМ ТУрбо и Пентева очень далеко ушли от оригинального Спектрума. А любой РК86 можно переделать в Апогей, потратив всего несколько микросхем.

Увеличиваем ОЗУ, ПЗУ и ПЗУ ЗНАКОГЕНЕРАТОРА в два раза. И ставим на звук ВИ53 (как в Микроше, Партнере, Векторе 06Ц, Кристе 2, Корвете...). Впаиваем 2 простейших микросхемы, что бы появился цвет. Цвет умеет любая микросхема ВГ75, но ради простоты в РК86 цвет не добавили. Ну и меняем адреса устройств (дешифратор), потому что у РК86 все устрйоства идут после 32 Кб, а у нас там ОЗУ,

AIS
25.08.2012, 01:23
vinxru, ты же ещё и оправдываешся...
Если господам интересна эта тема, могли бы и "спасибо" поставить автору. Всё таки такого ещё никто не делал.
А если тема не интересна, то нечего срать в комментах.
Гениальная способность любую тему свести к бессмысленным рассуждениям "что является истинным спектрумом, а что не является".

Shadow Maker
25.08.2012, 01:27
Ну в принципе да, пусть будет гигаскрин на Апогее, дело не в названии темы. Суть в том, что очень интересная тема :) А на реале это кто-нибудь смотрел? Там может поменьше мерцает?

b2m
25.08.2012, 10:49
В эмуляторе b2m демка работает сильно мерцая.
Ещё-бы. Я ж не знал, что кто-то будет так издеваться над эмулятором :)
А в других эмуляторах это работает?

Кстати, а как ты склеил оба кадра в одну картинку, получив при этом достаточно реальные цвета?

vinxru
25.08.2012, 13:19
А в других эмуляторах это работает?

Вообще не работает. Круче твоего эмулятора ничего нет.

svofski
25.08.2012, 13:26
b2m, может быть, если не получается сделать апдейт экрана с такой большой частотой, можно сделать что-то типа цифрового люминофора? кадр = mix(предыдущий кадр * k, текущий кадр). С шейдерами это вообще будет бесплатно.

vinxru
25.08.2012, 13:34
Кстати, а как ты склеил оба кадра в одну картинку, получив при этом достаточно реальные цвета?

Картинку я нашел в интернете и нарисовал в пеинте.

Потом я написал программу, которая мне рассчитала результирующие цвета всех возможных комбинаций 8 цветов и 3 символов в каждой видеостранице.

struct Cmp {
int color, attrib1, char1, attrib2, char2;
};

Cmp cmp[] = {
{ 0x000000, 0x0, 0x0, 0x0, 0x0 },
{ 0x000033, 0x0, 0x0, 0x89, 0x7A },
{ 0x000066, 0x0, 0x0, 0x89, 0x7F },
{ 0x000099, 0x0, 0x0, 0x89, 0x3F },
{ 0x0000BB, 0x89, 0x7A, 0x89, 0x3F },
{ 0x0000DD, 0x89, 0x7F, 0x89, 0x3F },
{ 0x0000FF, 0x89, 0x3F, 0x89, 0x3F },
{ 0x003300, 0x0, 0x0, 0x85, 0x7A },
{ 0x003333, 0x0, 0x0, 0x81, 0x7A },
{ 0x003366, 0x85, 0x7A, 0x89, 0x7F },
{ 0x003399, 0x85, 0x7A, 0x89, 0x3F },
{ 0x0033BB, 0x89, 0x3F, 0x81, 0x7A },
...

Потом я написал программу, которая сконвертировала BMP файл в два экрана для Апогея по этой таблице.

В самом Апогее я настроил размер видеопамяти в два раза больше, чем требуется ВГ75. То есть ВГ75 уже закончит формирование экрана, а ВТ57 выдаст только половину данных. И в следующем кадре ВГ75 будет обрабатывать вторую половину данных, то есть выводить её на экран. А потом опять первую, а потом вторую.

Мелодию я взял прямиком из AXELF.MOD. В MOD фалах содержатся данные идеально подходящие для ВИ53. Не ноты, не частоты, а периоды. И в первой версии демки я просто подключил часть MOD-файла к программе. Получилось 20 Кб.

Во второй версии я выкинул информацию об инструментах, эффектах, 4-ый канал. И применил простейшее сжатие. Периоды (16 бит) я вынес в таблицу, а в мелодию записал 5 битный номер. Старшие 3 бита обозначали длительность ноты. Там образом удалось сжать мелодию до 2 Кб.

b2m
25.08.2012, 13:42
Картинку я нашел в интернете и нарисовал в пеинте.
Спасибо, конечно, за развёрнутый рассказ о демке, но я имел ввиду картинки эмулятора из первого поста :) Подозреваю, тоже написал программу, усредняющую цвета из двух BMP.

vinxru
25.08.2012, 13:49
Спасибо, конечно, за развёрнутый рассказ о демке, но я имел ввиду картинки эмулятора из первого поста Подозреваю, тоже написал программу, усредняющую цвета из двух BMP.

Print Screen и CTRL+V в Corel Photo Paint. А там прозрачность верхнего слоя на 50% :)

---------- Post added at 12:49 ---------- Previous post was at 12:43 ----------

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

Сейчас для получения темно красного цвета экран мерцает черным и красным.

{ 0x000099, 0x0, 0x0, 0x89, 0x3F },

А можно было бы сделать на обоих экранах красную сеточку. Мерцания не было бы вообще.

{ 0x000099, 0x89, 0x7F, 0x89, 0x7F },

b2m
25.08.2012, 13:58
Между прочим, в эмуляторе строчная частота жёстко зашита 15625Гц. Сейчас прикинул кадровую по твоим параметрам, получается 59,1856Гц. Из-за несинхронности эмулятора и видеокарты получается эта фигня: то сильно моргает, то нет (как должно быть).

vinxru
25.08.2012, 13:59
В полноэкранном режиме работает хорошо.

b2m
25.08.2012, 14:18
Если сделать на одну строку меньше, то в полноэкранном режиме вообще всё нормально, в оконном всё равно проскальзывает моргание. Правда, при этом всё вниз едет :)

---------- Post added at 15:06 ---------- Previous post was at 15:05 ----------


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

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

А как на реале получить графику 50Гц? Тут же количество строк и так по максимуму.

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


Сейчас прикинул кадровую по твоим параметрам, получается 59,1856Гц.
А нет, обсчитался я, всё правильно 15625/(3+1)/(63+1+0+1)=60,09615Гц

zebest
25.08.2012, 14:19
в эмууляторе картинка ч\б :(((
Пробовал все 3 версии Апогея.
ЧЯНТД ?

b2m
25.08.2012, 14:24
Пробуй Apogee color, должно быть цветным.

Я понял, ты через File/Open открываешь файл. Тогда подправь в EMU.ext имя конфига для расширения .rka, там по-умолчанию "Apogee"
Либо после запуска Apogee color введи команду I, и в открывшемся диалоге выбирай файл.

tnt23
25.08.2012, 14:37
На YouTube выложите кто-нибудь плиз!

SKcorp.
25.08.2012, 14:46
ни так, ни так не получилось :(
в конфиге вот так:

rka : loader {
config="Apogee"
}

что-на-что менять?
если директиву I ввожу, то жи фигня, диалог открытия файлов два раза открывается, ну и потом 4 строчки дампа :)
а ну да, это может загрузился код, а запустить какой буквой? уже забыл, только "М" помнюю))

Apogee на Apogee color

Запуск G или адресG

---------- Post added at 13:46 ---------- Previous post was at 13:45 ----------

PS: 4 строчки - это адрес, длина (или конечный адрес, уже не помню), контрольная сумма и еще какая-то фигня (тоже не помню).

b2m
25.08.2012, 14:49
или адресG
Не слушай его :)
Запуск: Gадрес
Но демка с нуля, так что адрес можно не указывать.

---------- Post added at 15:49 ---------- Previous post was at 15:47 ----------


PS: 4 строчки - это адрес, длина (или конечный адрес, уже не помню), контрольная сумма и еще какая-то фигня (тоже не помню).
Адрес, конечный адрес, считанная контрольная сумма, действительная контрольная сумма (если не совпала).

Поленился vinxru дописать в файл контрольную сумму, поэтому диалог открывается второй раз (хочет догрузить её).

vinxru
25.08.2012, 16:27
Запуск вообще G4. :)

---------- Post added at 16:27 ---------- Previous post was at 16:02 ----------

Залил версию с исправленной контрольной суммой. Сейчас попробую записать дему на ROM-диск и запустить.

b2m
25.08.2012, 16:54
vinxru, а почему сентябрь? :)

vinxru
25.08.2012, 17:01
х.з.

Не получилось запустить на реале.

1) Через магнитофонный вход программа грузится с ошибками. Причем ошибок 10%.
2) Программатор отказался стирать флешку 49F002.
3) Провод телевизор-компьютер сломался и не показывает красного цвета.

SKcorp.
25.08.2012, 17:08
Ага, так нормально. Предупреждать надо (с):v2_dizzy_indy:

Ну по логике же ясно, я этого не знал и эмулятор ни разу не юзал.

---------- Post added at 16:07 ---------- Previous post was at 16:05 ----------


Не слушай его :)
Запуск: Gадрес


Да, точно. Пойду откопаю свой Спектр-001...

---------- Post added at 16:08 ---------- Previous post was at 16:07 ----------


х.з.

Не получилось запустить на реале.

1) Через магнитофонный вход программа грузится с ошибками. Причем ошибок 10%.
2) Программатор отказался стираль флешку 49F002.
3) Провод телевизор-компьютер сломался и не показывает красного цвета.

Я ж говорил, что не заработает на реале ;-)

vinxru
25.08.2012, 17:24
Надо прикрутить SDCARD к Апогею.

SKcorp.
25.08.2012, 17:32
Надо прикрутить SDCARD к Апогею.

http://elm-chan.org/works/sd8p/report.html

vinxru
26.08.2012, 02:21
Загрузил мелодию в MP3

ПОСЛУШАТЬ МЕЛОДИЮ (http://rghost.ru/40004894)

---------- Post added at 02:21 ---------- Previous post was at 02:19 ----------


http://elm-chan.org/works/sd8p/report.html

Спасибо. Но мысль была немного круче. Что бы эмулировать ПЗУ.

ivagor
26.08.2012, 10:52
vinxru, чем пользуетесь для редактирования музыки?

vinxru
26.08.2012, 10:54
MAD Plug Tracker

ivagor
26.08.2012, 10:59
А в каком формате сохраняете?

vinxru
26.08.2012, 11:14
Для этой демки в MOD, но оно и до этого было в MOD формате.

В первом варианте я просто подключил MOD файл к

pattern: incbin "Axelf.mod", 0x3B8, 128
music: incbin "Axelf.mod", 0x43C, 22528

Во втором я сжал мелодию

ivagor
26.08.2012, 11:28
Возможно Вам будут интересны как мне кажется близкие по духу мелодии Сергея Новикова (http://www.sensi.org/~svo/scalar/author/98/) в векторовских игрушках: Eraser (http://www.sensi.org/~svo/scalar/ware/246/), Cronex (http://www.sensi.org/~svo/scalar/ware/258/), Cyber Mutant (http://www.sensi.org/~svo/scalar/ware/261/)

ivagor
26.08.2012, 13:39
Извините за оффтоп, но вот еще пример насилия над ВИ53 - альфа версия эмулятора AY на ВИ53 (http://www.sensi.org/~svo/scalar/ware/788/).

Vladimir_S
27.08.2012, 07:23
Не получилось запустить на реале.
А я запустил.Немного дрожжит изображение, но красиво и с музычкой!