Просмотр полной версии : Скроллер окошка текста фреймовый
Shadow Maker
14.01.2009, 07:00
В общем надо скроллер фреймовый как у megaball -> http://trd.speccy.cz/demo_ver/MBALL_D.ZIP
Печаталку даже 8x8 можно. У меня какой-то затуп с этой фигней, я могу написать, но пишу почему-то очень долго всякие такие фишки, связанные с экраном...
Shadow Maker
14.01.2009, 07:36
Я совет просил? Не просил. Я сорцы просил. Не флудь...
тогда тебе проще скачать сорец шторма, там фрэймовый скрол как раз 8*8 если не ошибаюсь!
http://opensourcezx.untergrund.net/c_soft-assembler-storm.html
чем сидеть ждать от моря погоды...
8x6 там - плюс не фулскрин и тока познакоместно...
Shadow Maker
14.01.2009, 10:11
тогда тебе проще скачать сорец шторма, там фрэймовый скрол как раз 8*8 если не ошибаюсь!
http://opensourcezx.untergrund.net/c_soft-assembler-storm.html
чем сидеть ждать от моря погоды...
Там познакоместно, а мне надо плавный и для настраиваемого окошка, а не на ширину экрана.
вот лови - простенький скроллер...
Shadow Maker
14.01.2009, 21:25
cj, а мона с конкретным случаем? Чтобы хотя бы запустить и посмотреть на то как оно ездит мона было.
гы - там же есть скомпилированный уже снапшот, в котором все видно... там же не просто процедура, а готовый пример (кривоватый конечно немного, просто в лом было обвязку писать - так на скорую руку накидал, убыстрение/торможение скролла ппц кривое вышло =) )
Shadow Maker
14.01.2009, 22:12
А ты проверял? :) Если откомпилировать все сбрасывается. То ли таблички, то ли еще какой-то лабуды нет...
нет - я не проверял - снапшот просто нашел непонятно откуда-то =)
видимо проблема с разными версиями сиджасма - я пользуюсь последней stable - ибо лучшее враг хорошего.
вот тока что скомпилил - сиджасм тоже в комплекте - потом стеру (чтобы не засорять место на форуме).
не представляю какие ошибки там могут быть... я aprisobal'а в том году пару месяцев мучал - пока все ошибки не пропали (кроме глюка с 48 снапшотом) - а потом уже не менял компилятор...
или как вариант - я же написал что обвязка кривая - может банки щелкаются некорректно - а твоему эмулятору это не нравится... там годето в #7ffd вроде 0 кидается в одном месте.
Shadow Maker
14.01.2009, 22:52
Реально баг в последней версии... Почему-то после ассемблирования в снапшоте врублена 7 страничка... Жесть.
Спасибо, пойду наворачивать чего-нить :)
Добавлено через 3 минуты
или как вариант - я же написал что обвязка кривая - может банки щелкаются некорректно - а твоему эмулятору это не нравится... там годето в #7ffd вроде 0 кидается в одном месте.
Эмулятор у нас с тобой один и тот же :)
Shadow Maker
15.01.2009, 12:11
cj, а у тебя там ошибки в расчетах никакой нету? А то что-то при изменении ширины по x больше 24 скроллер вниз сползает.
вот щас скомпилировал под разные ширины - как меньше, так и больше - окно стоит на месте - высота тоже не плавает. или ты о том, что спрайт текста больше становится и выкидка? дык там размер спрайта рассчитывается [size_x * font_hgt * кол-во строк текста], размер кода выкидки тоже от ширины зависит - то есть чем больше ширина, тем больше спрайт. для большого окна и большого текста данный скролл не подойдет, надо делать как в megaball - переставление стека и работу с банками (либо допечатывание в реалтайме).
Shadow Maker
15.01.2009, 12:58
Ну да, я об этом... Блин, слушай, надо чего-то придумать, а то считай текста на 2 страницы, а места уже нет в памяти. Спрайт тупо мега-здоровый получается и места нету нифига.
ну полноценный скролл пишется не за час как этот =)
в мегабалле - спрайт генерится в банки - занимает 14 почти экранов по практически 2/3 экрана - порядка 60К (4 банки)
код практически такой же как и в моем сорце, только рисуется все на #4000, и в каждой строке выкидки добавляется вначале 5 нулей.
перед выкидкой устанавливается нужная банка и нужный адрес дял стека, в BC заносится #7FFFD, в A - следующей банки.
рассчитывается когда происходит переполнение и там выставляется код LD SP,xxxx: OUT (C),A.
после вывода экрана этот код затирается
воть
в принципе это не сложно сделать - особенно если не мучаться с изменением размеров, а сразу писать под нужное окно.
ну и совет - в таких скроллах через раскранченный спрайт - обычно шрифт делают по высоте меньше 8, чтобы больше текста влазило, ибо при ширине текста в 32 знакоместа в память влезет порядка 300 строк всего (384 при использовании всех банок 0,1,3,4,6,7)
Shadow Maker
15.01.2009, 13:22
А если каждую новую строчку собирать на лету и двигать спрайте вверх-вниз? Не успеет?
Кстати хорошо пошутил, ввел font_hgt и нигде не использовал :) А я сижу втыкаю чож он мне высоту-то не меняет... :)
полноценный скролл с допечатыванием гораздо сложнее по коду - успеет конечно, но я писать это не буду =) вон в Born Dead фуллскрин (практически) со цветом скроллируется.
насчет высоты... ну она учитывается в рассчетах размера спрайта (ручками) и теоретически должна быть в генерилке спрайта.
// тут тупо считается высота фонта равной 8
я же сразу сказал что обвязку надо переписывать под себя =)
Shadow Maker
15.01.2009, 13:47
полноценный скролл с допечатыванием гораздо сложнее по коду - успеет конечно, но я писать это не буду =) вон в Born Dead фуллскрин (практически) со цветом скроллируется.
Ну и черт с ним тогда, просто мне надо всё всунуть в 48k, а это сложнее...
насчет высоты... ну она учитывается в рассчетах размера спрайта (ручками) и теоретически должна быть в генерилке спрайта.
// тут тупо считается высота фонта равной 8
я же сразу сказал что обвязку надо переписывать под себя =)
Ну да, я и говорю типа пошутил хорошо. Кстати там не тока тут, там еще надо в генерилке спрайта это тоже учесть. :) В общем ишо раз спасибо. Как-то более понятно стало, как это вообще пишут. Места правда жрет как я не знаю чего...
под 48К - зы
если текста много - тогда надо писать всетаки чтото более реальное- ибо если даже отказаться от IM2 - код выкидки расположить гденить в #d000, то места все равно под спрайт мало останется - при шрифте 8х6 всего 149 строк. а надо еще музыку (надо ли) и код кудато запихивать.
Shadow Maker
15.01.2009, 14:34
Ну вот я домой приду вечером и посмотрю, хватает или нет.
Shadow Maker, никак, ИНТРО пишет!.. :) Молодец :)
Shadow Maker
15.01.2009, 19:07
Нет, не угадал... Именно скроллер текста, а не интро.
Не мешайте человеку! может так интра и родится ;-)
Shadow Maker
15.01.2009, 19:47
Не родится. Если все такие любопытные, вот зачем мне это надо:
http://zx.pk.ru/showthread.php?t=5624
посмотрел свое интро к Кащеевой цепи - там текста 7 экранов получается - памяти не хватало - дык я сделал раскранченный код не для всего окна - а только для одной строки в 8 пикселов высотой. код вида - pop de:ld (hl),e:inc l:ld (hl),d... сейчас до меня доходит, что проще было использовать обычный ldi - то же самое по тактам выходит =)
то есть проще всего написать будет так:
ld sp,таблица адресов начальных строк экрана
ld hl,начало спрайта-текста (вычисляемое)
ld a,высота окна в пикселах
loop
pop de// получили адес на экране
.(ширина в знакоместах) ldi
dec a:jp nz,loop
так ты потеряешь немного в скорости - но зато выиграешь кучу памяти для спрайта.
посмотрел свое интро к Кащеевой цепи - там текста 7 экранов получается - памяти не хватало - дык я сделал раскранченный код не для всего окна - а только для одной строки в 8 пикселов высотой. код вида - pop de:ld (hl),e:inc l:ld (hl),d... сейчас до меня доходит, что проще было использовать обычный ldi - то же самое по тактам выходит =)
то есть проще всего написать будет так:
ld sp,таблица адресов начальных строк экрана
ld hl,начало спрайта-текста (вычисляемое)
ld a,высота окна в пикселах
loop
pop de// получили адес на экране
.(ширина в знакоместах) ldi
dec a:jp nz,loop
так ты потеряешь немного в скорости - но зато выиграешь кучу памяти для спрайта.Точно. Вот буквально вчера нашёл в дебрях исходники своей игрухи KoolEggz, решил ее под формат исходников sjasm'а портировать. Потом родилась идея переделать ее из 128к онли в обычную 48к игру. Стал смотреть что можно заоптимизить - оказалось, что огромные декранченые процедуры нафиг не нужны, можно обычными ldi с pop de как в твоём примере ограничиться - всё влезло даже в фирмоспековское прерывание, правда пришлось поизвращаться с вектором прерываний, так как он в оригинале в #5b был установлен, что черевато в фирменых машинках. Кстати, вопрос не много не в тему - а есть смысл делать 257 байтовую таблицу прерываний, если проект чисто для буржуев? (в трд версии и так эта таблица есть - это что бы в дискриминации не обвиняли :) )
Shadow Maker
16.01.2009, 22:22
Вот как раз для них и имеет смысл, потому что хрен его знает чего у них на шине данных напихано какой периферии и куда там прыгнет...
Добавлено через 12 минут
так ты потеряешь немного в скорости - но зато выиграешь кучу памяти для спрайта.
Моё окошко уже не лезет в инт при таком раскладе :(
Не родится. Если все такие любопытные, вот зачем мне это надо:
http://zx.pk.ru/showthread.php?t=5624
Я ж говорил, ИНТРО!.. :) :) :) Даёшь релиз Rescate Atlantida! Только ОБЯЗАТЕЛЬНО 48/128к!
рассчеты показывают, что можно вывести окно 32х120 вполне, чтобы еще место на музыку осталось - в том же мегабалле 126 высота. я бы на твоем месте если неохота с кодом вохиться, все же бы окошко чуток уменьшил...
Моё окошко уже не лезет в инт при таком раскладе
Чего-то настальгия пробила ... Захотелось забацать скролл !!! Прикрепляю файл с исходниками ... Файл "scroll.az8" и есть сам скролл. Там есть процедура "INIT", которая за вас всё декранчит. Позволяет установить окошко в любое знакоместо по X(0..31) и Y(0..191) и размером XS(3..32) YS(1..192). Сейчас скомпилен "scroll.trd", в котором лежит файл "1.С". Запускаем эмулятор и пишем в TR-DOS'е - RUN "1" CODE. Наслаждаемся окном размером 32х160 вместе с музыкой и идеальной работой без глюков, и свободно в инте ещё около 7000 тактов. Нажимаем пробел и смотрим сколько оно занимает в прерывании. Что бы откомпилировать запускаем "scroll.bat". Перед процедурой INIT описаны входные параметры ...
Если будет нужно, то можно сделать так, что бы было 32х176 и не дескрировало ... Я делал на скорую руку, поэтому не фиксил дискретизацию. Так же предупреждаю, размер по Х желателен чётный, можно, конечно и не чёт, но будете проигрывать в скорости !!! Ну и не стоит вылазить за пределы экрана !!!
Да, эффект требует под себя 16384 байт памяти, не считая, конечно же, текста и шрифта !!!
И ещё ... Компилится оно в моём ASAM'е ... Но без проблем можно перенести в любой Speccy асм. У меня поддерживаются команды JZ, что автоматом выбирает JR или JP ... Я старался не использовать такие приколы, так что если вдруг забыл в силу привычки, то пробегитесь по тексту и замените на JR !
Наслаждайтесь ...
Shadow Maker
17.01.2009, 12:06
Оно тока на пентагоне в инт лезет... У меня окошко 27 (28) символов по ширине и 17 по высоте. Робус, мона под это заточить чтобы в инт скорпиона полезло и клавиши вверх-вниз прикрутить с ускорением?
pop de// 10
.27 ldi // 27*16 = 432
dec a // 4
jp nz,loop // 10
итого на линию = 456 тактов
на 17 знакомест получаем 17*8*456 = 62016 тактов
так как все команды четные - на медленных тачках должно работать также (кажется), остается место на музыку...
Shadow Maker
17.01.2009, 13:56
Да, с 27 лезет. А чего терь с лучом делать, который посередине экрана хреначит? Или кто это там колбасит.
ну... надо ловить луч - что тут еще делать то...
типа так
halt
call scrollout2
call music
call control
// все рассчеты
call scrollout1
jr loop
scrollout1 - вывод верхней части окна - столько строк сколько влазит в фрейм
(так как используется стек - чтобы не испортить таблицу адресов - надо успеть восстановить стек до прихода прерывания)
scrollout2 - вывод оставшейся части экрана - по времени луч должен начать рисовать экран
на глаз вроде достаточно вывести 3-4 знакоместа во второй процедуре, и все остальное в первой.
то есть в начале фрейма у нас уже выведена основная часть спрайта, и мы быстро выводим остаток. луч начинает отрисовывать это на экран, и мы по быстрому начинаем строить новый экран...
процедуры ессно хватит одной - надо просто менять переменные на входе.
Оно тока на пентагоне в инт лезет... У меня окошко 27 (28) символов по ширине и 17 по высоте. Робус, мона под это заточить чтобы в инт скорпиона полезло и клавиши вверх-вниз прикрутить с ускорением?
Ему всё равно ... Теперь уже ... =) Текущий вариант скроллирует 32х156 ... По-моему твои параметры покрывает с головой !!! Конечно же это под фирменный Speccy ... Там заремлена конфигурация под пентагон, где получается 32х168 !!! Под свой размер найди "CALL INIT" и перед ней задаются параметры в регистрах. Установи в нужные тебе координаты и нужные размеры !!! Текущий вариант уже сам подстраивается и не дискрирует. Проге то ли запускать под 128 или 48, теневой экран она не юзает ... Вообщем универсальная !!!
Shadow Maker
17.01.2009, 23:57
Поменял на свои параметры, вылез луч посередине... Выходит не подстраивается сам... Может расскажешь детальнее, что именно подкручивать? И мне кнопочки вверх-вниз, там для этого что именно подкрутить? Я как бы понимаю, что это в LoopPrint где-то, но лучше чтобы ты сказал точнее.
Добавлено через 36 минут
ну... надо ловить луч - что тут еще делать то...
типа так
процедуры ессно хватит одной - надо просто менять переменные на входе.
Ну вот я типа так сделал и вот не помогло, в другом месте колбасит. Инты я так понял надо на рет заменить? И еще теперь музыка на ударниках в инт не лезет... Покажи как надо, а?
Поменял на свои параметры, вылез луч посередине... Может расскажешь детальнее, что именно подкручивать? И мне кнопочки вверх-вниз, там для этого что именно подкрутить? Я как бы понимаю, что это в LoopPrint где-то, но лучше чтобы ты сказал точнее.
Поменял под твои параметры ... Работает ...
Выходит не подстраивается сам...
В коде есть такой кусок:
LD D,0
LD E,C
LD HL,0
INI8 ADD HL,DE
DJNZ INI8
LD A,H
CP 12
LD HL,EFFECTER1
JR C,INI9
LD HL,EFFECTER2
INI9
LD (INT1+1),HL
LD A,205
LD (INT1),A
Так вот CP 12 определяет "массу" скролла ... Там стояло 15, этим нужно подстраивать ... CP Х сравнивает со старшим байтом размера скроллирования. Если размер более Х*256 то нужно разбивать вывод скролла на две части, если нет, то высвечивается монотонным блоком !
Данная конфигурация подстроена под твои параметры ...
Тебе нкужно графику выводить ? Спрайты там или ещё что-то ? Просто у тебя шла речь только о тексте ...
Shadow Maker
18.01.2009, 10:33
Нет, графику не нужно, начало печати надо с #40c1. И хотя окошко 17x27, печать шрифта надо бы не 8 в высоту а 7. Вот у cj в исходнике это легко меняется, а как у тебя сделать крутилки вверх/вниз и 7 пикселов я догадываюсь, но как-то не очень работает то, что я догадываюсь.
Кстати что-то его все равно подплющивает от луча на скорпионе.
Кстати что-то его все равно подплющивает от луча на скорпионе.
Странно ... Я вот прямо сейчас смотрю как оно текёть ... Всё идеально ... Нажми пробел, что бы посмотреть где луч на бордюре делит две части скролла !
7 пикселов я догадываюсь
В самом EFFECTE ... Там есть место где меняется WAIT(метка) ... Как досчитает до 7, прибавить один лишний шаг и станет 7 ... К 15:00 сделаю ... На работу сейчас надо ...
Добавлено через 1 минуту
Кстати ... Какие у тебя координат окошка ?
Shadow Maker
18.01.2009, 10:57
Ну я ж адрес в экране сказал. Вот с этого места 27 вправо и 17 вниз. Попозже пересчитаю в обычные.
Луч висит где-то на уровне 6 строчки текста. И вот где-то там и чуть пониже иногда сбивается и проявляется дрожание...
ну в моем сорце довольно просто все - думать было лень - поделил окно тупо пополам... на ударниках действительно притормаживает даже на пентагоне =( тут выход один - компилировать не в вортексе (как я от лени), а в обычном пт3, где плеер быстрее... либо если скорости не хватит на скорпе - все таки уменьшать экран по высоте...
scroll сейчас сделан через LDI - адреса кода, музыки и таблицы можно снести максимально кверху (книзу) для увеличения области спрайта.
Shadow Maker
18.01.2009, 22:19
Так, ага, ну походу я остановлюсь на варианте с выкидкой по стеку, ибо оно у меня в память лезет, вот вопрос только в том сколько будет занимать музыка... Ну или если Робус все же допилит мне его вариант, а то пока я тут пробовал его перезаточить под другие размеры - что-то он мне шрифт не шрифт осыпал в размере, а буквы покромсал жестоко с переносами на следующую строчку...
Луч висит где-то на уровне 6 строчки текста. И вот где-то там и чуть пониже иногда сбивается и проявляется дрожание...
1. Проверенно на фирменном ...
2. Проверенно на SCORPION в эмуляторе ...
Лаж нет ... Как ты и хотел 7 пикселов высота ... В тексте есть команда CP 7 которая и определяет высоту, ноль не ставить !!!
как у тебя сделать крутилки вверх/вниз
Ещё и назад ??? Сделаем ... Тогда появляется вопрос ... А что делать если дошли до конца текста ??? СТОП ??? А если вверх ??? То в начале текста стоп ???
Shadow Maker
18.01.2009, 22:42
Ага. Ну ты вон подгрузи снапшот cj, вот надо прямо вот так же, чтобы оно ускорялось/замедлялось когда жмешь кнопки сильнее/медленнее.
Блин, на эмуле явно дёргается твой скролл от луча... Завтра вот скорпион почищу, на нем проверю для верности.
Тож чтоли пыль стереть :)
Shadow Maker
19.01.2009, 12:30
:) Давай. А то скоро у всех мозги склеются в серую недумающую массу :)
итак фонт 32*8
скролл попиксельный
ускоряемый, максимальная скорость - 8
высота окна - 12-16 знакомест 1\2 - 2\3 экрана
ширина 26 - 28 - 32 короче кратно 2 (можно и меньше)
короче вечером порисую :)
Shadow Maker
19.01.2009, 14:27
Юр, там вон параметры какие надо мне чуть повыше находятся. 16 знакомест мало.
Юр, там вон параметры какие надо мне чуть повыше находятся. 16 знакомест мало.
ну с учетом уменьшения ширины можно и 17 :)
но ширина должна быть четной 26 или 28 хватит?
Shadow Maker
19.01.2009, 21:31
28 тогда.
Почти закончил... на работе посмотреть не могу :(
45000 тактов на вывод ~8000 на отрисовку новой строки
еще сколько то на обвязку
при создании используются наработки Sage group :)
Shadow Maker
23.01.2009, 10:47
:) Хорошо. Я уж думал ты забил :)
Robus, сорри, на реале все отлично. Но надо тогда и в эмуляторах чтобы работало нормально чтоли... Если разберешься, почему он дрожит в Spectaculator и Unreal - буду благодарен.
просто у меня нет наработок в области текстосмотрения
Shadow Maker
23.01.2009, 12:03
просто у меня нет наработок в области текстосмотрения
Ды вот и у меня нет. Вот учусь тут :)
. Но надо тогда и в эмуляторах чтобы работало нормально чтоли... Если разберешься, почему он дрожит в Spectaculator и Unreal - буду благодарен.
Ужен разобрался !!! Точнее говря я не разбирался, я просто знаю почему. Причина - ПиЦи !!! Твой монитор работает єдак герц 60 а нужно 50, вот оно и глючит, темболее в Unreal'е ... Это старая тема, не хочется ворошить прошлое !!! Но с динамическим скроллером всё будет красиво.
Я доделаю полную версию и выложу ... Собственно я уже сделал, осталось долизать глюки с кешированием. На работе сложно делать, каждые 10-20 минут приходится отвлекаться я нужне по-работе ... За выходные постараюсь доделать ...
Работа - зло, мешает свободному полёту мысли ... А из этого вывод, деньги - зло, ибо работаем ради денег. Хотя и не всегда, но тогда нищенская зарплата !!!
Добавлено через 8 минут
Но с динамическим скроллером всё будет красиво.
Тут я оговорился ... Кравсиво будет только тогда, когда будет настоящие 50 кадров в секунду, а тут будет приемлемо или сносно или удовлетворительно !!! Хотя для меня УЖАСНО !!!
Люблю качество ...
Shadow Maker
23.01.2009, 23:24
Тут я оговорился ... Кравсиво будет только тогда, когда будет настоящие 50 кадров в секунду, а тут будет приемлемо или сносно или удовлетворительно !!! Хотя для меня УЖАСНО !!!
Люблю качество ...
Кто ж его не любит... Но к сожалению в современных реалиях на собственно реале скроллер посмотрит дай бог 15% зрителей, остальные будут пользоваться эмулятором. Так что сам понимаешь, приходится подстраивать.
Кто ж его не любит... Но к сожалению в современных реалиях на собственно реале скроллер посмотрит дай бог 15% зрителей, остальные будут пользоваться эмулятором. Так что сам понимаешь, приходится подстраивать.ага, во многих комодоровских демах перед запуском даже выбор есть, на эмуле или реале запускаешь :)
Shadow Maker
24.01.2009, 03:17
Ну, у комодора там это как правило из-за мерцающих режимов, а тут немного другое.
Shadow Maker, у тебя аська есть?
Короче вот демонстрационный так сказать снапшотик
ща исходник почищу закоментирую и тогда выложу тоже
молоток! круто!
тока насчет технологий SAGE ты зря написал - у них конструкций типа ld hl,0: push hl: ld hl,0: push hl (и так подряд на всю строку (14 раз) ) не было никогда. так же как и ld hl,#3e3e: push hl: ld hl,#7e3e: push hl - это же все сходу оптимизируется... если уж делать код плавающего размера, то такие вещи просто нужно делать.
но все равно - твой скроллер самый крутой в данной теме - еще бы исходник с произвольно настраиваемым окном и размером шрифта...
Технологии Sage не в распушении графики
а в работе с текстом
;)
не догнал =( судя по всему текст в born dead лежит непакованный - в чем подвох то? а если сделать твой скролл на фуллскрин - 32х24 - будет тормозить?
под скорпионовский инт максимальный размер с музыкой 18*30
если без музыки - можно вывести 24*26
все упирается в ширину окна
Добавлено через 3 минуты
не догнал =( судя по всему текст в born dead лежит непакованный - в чем подвох то? а если сделать твой скролл на фуллскрин - 32х24 - будет тормозить?
а по поводу Sageй
вроде исходники BornDead свободные были
рекомендую посмотреть ЧТО Именно Монстр делал с текстом ;)
сорцы поищу - спасибо за наводку - просто привык смотреть на все в дебаггере - а там текст лежит просто - вся фишка скролла именно в хитром выводе - за счет чего и успевает во фрейм и не только на пентагоне (у мну на профи практически не тормозило). лана - stop flame - буду искать и читать...
Итак вот оно
я использую связку
UltraEdit + SjAsm
так что не обессудьте исходничек под эту систему
Текст взял у Роба
Музыку у psndcj за что им большое спасибо ;)
Ды вот и у меня нет. Вот учусь тут
Собственно я так же доделал свою версию ... Она идеально работает на фирменном и НЕфирменном Speccy ...
В архиве:
"SCROLL.AZ8" - "HEIGH_SCROLL" параметр массы скрола !!! Если размер более чем это число, то скролл делится на две части во избежание дискреции !!!
"LOD-FNT.AZ8" - "SCR_H_MAX" параметр высоты символа в фонте.
"SCROLL.BAT" - компиляция проекта.
"AKESIN/SIN.BIN" - синусная таблица скорости скролла.
Размеры 28х136 в координатах 1х48. Маскимальная скорость скролла 7 пикселей. Проект сам уложит всё вместе с текстом и создаст SCROLL.TRD, в который запишет "1.С". Текст он расположит до вектора прерівания. Текущий вектор прерывания 128. Все параметры гибкие. При компиляции в итоге из фонта вынутся только та графика, которая используется в тексте, и оптимизируется. Сам текст так же оптимизируется под максимальную скорость. Количество строк в скролле не должно быть меньше чем количество умещаемых строк в окне. Фонт легко меняется, если надо выложу BMP, которій автоматом будет конвертироваться непосредственно в проект. Не удивляйтесь, что количество проходов аж 14, это компилятор сам просчитывает куда поместить текст скролла до вектора. Кранчь, всё-таки ...
Запуск по прежнему RUN "1" CODE
------------------
jerri Мы как-то параллельно делали. Не со зла ... Просто хотел закончить начатое.
jerri Мы как-то параллельно делали. Не со зла ... Просто хотел закончить начатое.
Больше вариантов - красивых и разных ;)
Shadow Maker
28.01.2009, 10:28
Да, это точно. Спасибо всем :)
А теперь предположим, что текст надо как бы сделать не 8 в ширину, а настраиваемую ширину тоже. По идее оно должно несложно меняться?
А теперь предположим, что текст надо как бы сделать не 8 в ширину, а настраиваемую ширину тоже. По идее оно должно несложно меняться?
ААА-а-а-а !!! Ты маньяк !!! Так же нельзя !!! Ведь Coding под Speccy это экстримальный кодинг. Поэтому нужно желать сразу всю задачу. Конечно, можно сделать и настраиваиваемую ширину, но скорость резко упадёт ... То есть максимальная скорость скролла по Y будет меньше чем 7 !!!
Сразу скажу, что с ходу можно сделать ширину 4 !!! Чуть труднее будет 6 !!! Но 5 или 7 сразу сожрёт время на печать строки раза в три !!!
Поэтому подумай, какие параметры ты хочешь ?
ну можно сделать листалку для 64 символов в строке
нада всеголишь + 1 еще фонт (2048) и чуть чуть поменять процедуру печать (Borndead)
и еще одну для 42 - эту хз как делать в 48к -фонт шире 8 получается
и еще одну для 51 - это еще веселее там символ 5 пикселов
а еще одну для пропорционального шрифта
но для этого всего не жди 50 фпс :)
Shadow Maker
28.01.2009, 13:59
:) Понятно. Короче если не кратно двум - тока декранчить в спрайт, иначе не будет 50 fps...
Добавлено через 49 секунд
Поэтому подумай, какие параметры ты хочешь ?
Да так-то мне и 8 достаточно. Но да, 6-пиксельные шрифты было бы неплохо...
во фрейм по BD технологии можно сделать только 32 и 64 символа в строке
42 символа в 48кб сделать нереально
остальные - да только декранчить в спрайт или скролл делать 25 фпс
60000 тактов должно хватить для отрисовки строки
так что если тебе хватит 25 фпс можно сделать
пропорциональную печать ;)
42 символа в 48кб сделать нереально
Ну ... Скожу честно - реально ... Всё зависит от условий !!! Если ты захочешь двикать по символьно, то, конечно, не успеет ... Но скролл по 1 пикселю - точно успеет !!! Да же на 2 успеет !!!
Ну ... Скожу честно - реально ... Всё зависит от условий !!! Если ты захочешь двикать по символьно, то, конечно, не успеет ... Но скролл по 1 пикселю - точно успеет !!! Да же на 2 успеет !!!
ну в том то и фикус пикус что для ЗАДАННЫХ условий (50 фпс 48к и ускоряемый просмоторщик текста) задача невыполнима
но для 25 фпс вполне так ничо
т.е 1 фрейм обновляем
во 2ой отрисовываем
причем хватит даже на пропорциональную печать если через таблицу
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot