Войти
ФлеймФорумЖелезо

Блеск и нищета 8/16-битных консолей и ПК (33 стр)

Страницы: 132 33 34 3566 Следующая »
#480
7:48, 8 янв. 2019

KPG
> TI-86/92

Мда, посмотрел немного вики - знатные зверюги.
Серия TI-82 базирована на Z80, а вот TI-92 уже на m68k.
Встроенный язык программирования хоть и называется TI-BASIC, но к бейсику не имеет никакого отношения. Разница синтаксиса и ключевых слов столь значительна, что никаким бейсиком тут и не пахнет. for записывается, например, как for(переменная,начало,конец), а присвоения используют синтаксис A->B, что эквивалентно бейсиковскому LET B=A, причём стрелка тут записывается одним символом, как и многие другие вещи типа корней. Вместо REDIM arr(size), к примеру, пишется size->dim(arr), правда там с именами переменных еще напряги, особенно на младших моделях, где имена массивов должны начинаться на L от List.
Короче к бейсику отношения никакого.

Посмотрел так же во что серия вылилась в современности - а в современности она вылилась в серию TI-Nspire, которые выглядят как то так:

Изображение

и стоят как смартфон и содержат внутри ARM9 как смартфон.
Doom конечно же запускается:


#481
(Правка: 10:52) 10:49, 8 янв. 2019

=A=L=X=
В калькуляторах HP48/HP49/HP50 тоже ARM ограниченный частотой 70Mhz, но используется для симуляции процессора Saturn предыдущих поколений и язык там программирования RPN.
(швейцарцы делают на STM32L476 вариант  HP калькулятора DM-42  www.SwissMicros.com
на базе открытого симулятора Free42)

#482
11:13, 8 янв. 2019

Интересно, кто-нибудь уже додумался до 64-битного "калькулятора"? :)

#483
(Правка: 9 янв. 2019, 15:06) 11:44, 8 янв. 2019

=A=L=X=
Вряд ли 64 бита будут, один из потребительских показателей хорошего Калькулятора - время автономной работы при приемлемых массо-габаритных размерах.
Тот же  TI-Nspire выедает батарейку на раз и проигрывает "конкуренцию" TI-89/92
(У DM-42 малопотребляющий чёрно-белый экран в градациях серого высокого разрешения)

P.S. Хотя если применить контроллер архитектурно сделанный по варианту GA144 (GreenArrays) то возможно и получится. :)

Документация по разным процессорам/контроллерам в одном месте https://github.com/larsbrinkhoff/awesome-cpus

C compiller for M68K http://sun.hasenbraten.de/vbcc/
Ещё С компилятор для разных "old" процессоров http://sdcc.sourceforge.net/

#484
22:26, 8 янв. 2019

с хабра летняя статья.
Spectrum-48 против пачки сигарет, каша из топора или что может STM32F103C8T6+video(update)

STM32F103C8T6 + ILI9341 -> Spectrum48
Контроллер ускорен до 112 Мгц, Ресурс батарейки 50ч
https://github.com/sdima1357/specci48

#485
22:48, 8 янв. 2019

Красочная подборка

#486
16:24, 10 янв. 2019

Это, конечно, не про сами консоли и ПК, а про жанр игр, который на них эволюционировал... собственно, ради чего всё и затевалось.


#487
12:33, 11 янв. 2019

Статья от создателя игры Old Tower на ZX Spectrum - про хитрости которые он применял в ней для достижения мультиколора, а так же то же самое про новую игру тоже с мультиколором, но еще и вертикальным скроллингом - GULF: http://hype.retroscene.org/blog/dev/768.html
Сама сущность мультиколора там не объяснена, поэтому я поясню её вкратце тут, для тех кто не особо в курсе.
Цветовые атрибуты в ZX Spectrum покрывают экран сеткой 32x24 блока 8x8 пикселей и в каждом у пикселей может быть только два разных цвета - они и описываются байтом цветового атрибута.
В технике мультиколора программисты перехватывают единственное прерывание в ZX Spectrum - начало отрисовки экрана и отсчитывая фиксированное количество тактов процессора начинают подменять цветовые атрибуты вслед за лучом ЭЛТ синхронизируя этот процесс высчитывая всё так же такты дотошно (ибо иных способов синхронизации больше нет), чтобы на следующей строке цветовые атрибуты были уже другими. Таким образом вариативность цвета на экране возрастает до полосок 8x1 пикселей (опять таки по 2 цвета на такую полоску), но... не совсем, т.к. есть проблемы - они уже описаны в статье.

Я лично прифигел с методики рендера в "невидимый буфер" в игре GULF и того что этот невидимый буфер вообще из себя представляет. :D

#488
(Правка: 20:37) 20:33, 11 янв. 2019

Кому лень читать гору текста по ссылке выше приведу выжимку из техники "сверхбыстрого теневого буфера" на спектруме, которая была использована в игре GULF.
Во первых - размер тайлов - 16x16 пикселей, а значит в два байта пиксельных полосок в ширину.
Во вторых - там должен быть вертикальный попиксельный скроллинг.
Размеры всего поля небольшие - 320 пикселей в высоту, в то время как на экран из них выводятся в окне только 128. В ширину же выводятся 12 тайлов игрового поля (24 знакоместа из 32 спектрума в ширину).

Кроме этого очень мощные проблемы накладывал вышеупомянутый мультколор, поэтому был применён приём, как я понимаю известный, "лдпуш".
Под рендер и он же бэкбуффер было выделено ~15 Кб памяти.
В них 320 раз были продублированы подряд массивы следующих инструкций:

// начало отрисовки линии
LD SP, конец_строки
// следующие две строки повторяются 12 раз:
LD DE, tileImmediateData16
PUSH DE
То есть указатель стека устанавливается на заранее вычисленное (с этим у спектрума, как многие тут знают, есть некоторые траблы) начало строки, а потом выполняется серия из LD DE, const : PUSH DE - данные прямо из кода переливаются в стек очень быстрым для Z80 способом, т.к. стек и указывает на линию на экране в этот момент.
Рендер в теневой буфер при этом происходит... В КОД! Вот в этот вот самый код, константы imm16, которые грузятся в регистр DE. И оно как раз получается в ширину 16 пикелей - 2 байта.
Изначально весь теневой буфер заполняется тайлами клеток поля, а потом каждый кадр происходит следующее - определяется какой именно фрагмент из 128 строк из 320 имеющихся будет выводится на экран и ему перерасчитываются и заполняются концы строк - правятся инструкции LD SP, конец_строки. Далее, чтобы код вышел в нужном месте ему так же втыкается инструкция перехода на HL (JP (HL)) (так как RET из-за испорченного SP недоступен адрес возврата помещён в HL) сразу после последней 128-ой строки, и потом после рендера оно возвращается назад как было.
Получается, что скроллится вверх-вниз оно небольшой перестановкой 128 слов в памяти.

Демонстрация геймплея, чтобы было понятнее как именно там скроллится и какая ширина у поля:

#489
(Правка: 23:21) 22:48, 11 янв. 2019

Где-то, в какой-то из тем, уже давал ссылку на Multi color движок, - https://www.worldofspectrum.org/forums/index.php?p=discussion/455… alled-nirvana

Кто-то умудрился на этом даже игрушку сделать (вот бы такой графоний в 1988 году)

#490
(Правка: 6:34) 6:33, 12 янв. 2019

0iStalker
> Multi color движок

Вот, кстати, да. Там немного более устаревшая информация в тексте, и говорится, что мультиколор 8x1 настолько проблематичен (как я понимаю тупо не пролазит в доступные такты инициализация перед каждым сканлайном), что не может покрывать все колонки знакомест, а типичные на время публикации реализации покрывали 18 колонок из 32 имеющихся, а рекордом считались 20 колонок. В статье же про Old Tower и GULF выше (сперва в комментариях, а потом и статья была исправлена) говорится, что некто Gasman в программе Ultraviolet (уж не знаю игра это или демо) добился рекордных 22 колонки мультиколора.
Но многое послабляется, если реализовывать не максимальный мультиколор, а промежуточный - 8x2 или 8x4, тут уже все рубежи давно взяты и можно полностью раскрасить весь экран.

#491
10:07, 12 янв. 2019

Какой-то мазохизм - обходить ограничения графики Спектрума. Не проще ли взять PC и на нём на VGA сделать что хочется?

#492
12:02, 12 янв. 2019

Panzerschrek[CN]
> Не проще ли взять PC и на нём на VGA сделать что хочется?
Ну ясно же, то что на VGA будет полным убожеством, на ZX будет смотрется хардкорной графикой

#493
(Правка: 13:37) 13:36, 12 янв. 2019

Panzerschrek[CN]
> Не проще ли взять PC и на нём на VGA сделать что хочется?

Да, проще.
Но то, что просто - просто неинтересно.
Как на VGA выводить софтварно спрайты 256-цветные я и сам знаю.

#494
13:41, 12 янв. 2019

Ну, кстати, VGA платы, тоже вещь с изюминками, например т.н. X режимы, в которых можно было получить аппаратный скроллинг или переключение видеостраниц. Для этого нужно было шаманить с регистрами, задающими видеорежимы

Страницы: 132 33 34 3566 Следующая »
ФлеймФорумЖелезо