Pull to refresh
43
0

Пользователь

Send message

Делают-делают карманные консоли, а я не вижу на рынке хорошего устройства даже для ретро игр. Хотя казалось бы, навыпускали кучу всего.

Много кто любит целочисленное масштабирование экрана aka integer scale в ретро играх и не любит мыло. В чем сложность сделать устройство с экраном 1920х1200 или 1600х1200? технологии есть и они не дорогие. Можно было бы играть в NES&SNES игры в соотношении (почти) 4:3. Или в DOSbox нормально 320х200 отмасштабировать до 3х4. На планшете великолепно смотрятся игры, а что ни ретродевайс, то какой-то обрубок.

Зато на большинстве ретродевайсов Sega Genesis ноомально работает и выглядит отлично. Девайсов с экранами 320х240 или 640х480 море. Вот только 6 кнопок им не завезли, кроме уж совсем китайских.

Такие вещи быстрее всего в youtube смртреть. Похоже, что не было паралакса, зато было дёрганое перемещение экрана по 8 пикселов.

На самом деле с паралаксом в дос играх не очень. Например, в The Lost Vikings он был вырезан вместе с частью графики, хотя на Sega Magadrive и SNES был. В Aladdin параллакс был, но на моём компъютере игра тормозила. И это более пощдние игры с VGA графикой.

На nes как раз есть аппаратный скроллинг фона. Для этого там видеопамяти на 2 экрана с тайлами. Но тайловый слой там всего один, в отличии от snes и нашей любимой сеги.

Примерно так и есть. На nes один слой фона и один слой спрайтов. Спрайты, правда, могут быть за фоном или перед ним, но это не так важно.

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

На самом деле, этот приём используется намного чаще, чем может показаться. В том же Super Mario Bros рисуется верхняя часть экрана с очками, временем и т.д., а потом процессор меняет регистр видеоадаптера и перемещает фон уровня. Вывод картинки невозможен без использования процессора.

И да, разбить экран вертикальной линией нельзя. Совсем. Тот же Road Fighter работал потому, что движение по вертикали делали по 8 пикселей за кадр. По сути, только обновляли номера тайлов. Плавного скроллинга там нет.

Спрайтами можно только маленьких объектов добавить в паралакс скроллинг. В заставке какого-то megaman было хорошо в заставке сделано. Что-то большое на спрайтах не сделать, т.к. железо рисует всего 8 спрайтов на горизонтальной линии.

Есть ещё и другие возможности добавить эффект параллакса. Например подменять некоторые тайлы на похожие, но смещённые. Обычно применялось для чего-то маленького, например, нарисовать что-то простое за окном. Можно ещё посмотреть на Prehistorik Man на Game Boy. Там явно видны границы применения технологии.

Проблема с поддержкой игр не в процессоре, он-то как раз скорее всего стандартный. Проблема в картриджах и в том, что они аппаратно разные.

Упрощённо, в картридже адресуется 32кб rom памяти и 8кб видео rom памяти, отсюда 40кб на игру. Для того, чтобы обойти это ограничение используются мапперы. Это такие дополнительные микросхемы внутри картриджа, которые переключают банки памяти, делая доступными разные участки памяти по одним и тем же адресам. Проблема в том, что мапперов много и они работают по-разному.

Интересно какая совместимость с играми. Там же в картриджах куча всего разного бывало, вплоть до оперативной памяти, которая сохраняла состояние при выключении питания за счет батарейки. На 97 год могли сделать большинство известных мапперов памяти, но сделали ли?

Судя по скриншоту, размеры .gam файлов в районе 60кб при стандортном размере игры без маппера 40 или 24 кб. Если там условно загрузчик и сама игра, то странно, что у файлов размеры отличаются. Поскольку другой информации нет, то есть вероятность, что никаких сложных игр не поддерживается.

Интересно как с адресацией памяти разрулили? Сделали какой-то маппер или всё-таки там не совсем 6502?

И видеоподсистема как устроена? Тайловый задник + спрайты как в nes или есть ещё нормальный графический режим? 256кб видеопамяти намекают, что должно быть что-то, чего нет в nes.

Я не сишник и может чего-то не понимаю, но разве cas_counter.load() не надо делать во внутреннем цикле?

std::atomic<uint64_t> cas_counter;

void cas_add(size_t iters) {
    while (iters--) {
        uint64_t v = cas_counter.load();
        while (!cas_counter.compare_exchange_weak(v, v + 1))
            ;
    }
}

Что-то типа такого:

std::atomic<uint64_t> cas_counter;

void cas_add(size_t iters) {
    while (iters--) {
        uint64_t v = cas_counter.load();
        while (!cas_counter.compare_exchange_weak(v, v + 1))
            v = cas_counter.load();
    }
}

Пара вопросов.

  1. Мне не очень понятно почему бакет фиксированной длинны лучше, чем Open Addressing на массиве большего размера? Условно, если у нас 2^b корзин по 8 элементов в каждом, то почему бы не выделить 8 * 2 ^ b корзин по одному элементу, а при коллизии использовать, например, quadratic probing (он вроде как дружелюбен к кешам при маленьком заполнении)? Это из-за возможности использования векторных инструкций?

  2. Если сделать не одну хеш-таблицу, а 26 и определять в какую из них идти по первой букве, то мы вроде бы сильно уменьшим проблему коллизиями. Эдакий одноуровневый trie. Есть подозрение, что по скорости не выиграем т.к. памяти скорее всего больше понадобится и, соответственно, больше cache miss. А если настроить размер хеш таблиц для каждой буквы отдельно? Или так не получится из-за жесткой привязки b = 17?

Я когда-то тоже со звуком игрался, делал синтезатор на волновых таблицах. Даже статью написал: https://habr.com/ru/post/466121/

GB -> GBP:

Общий размер удалось уменьшить на 30%, но при этом увеличился экран
гаджета. Также прошлое поколение питалось от четырех батарей типа AA, а
новая версия — уже от двух типа AAA. Время автономной работы снизилось с
30 часов до 10. Больше никаких кардинальных изменений компания не
вносила.

Так может сказать только тот, кто никогда эти 2 устройства не держал рядом. Кардинальное изменение был экран. Абсолютно вырвиглазный зелёный экран с медленной отрисовкой заменили на нормальный (относительно предыдущего) ЧБ экран. Этого не видно на эмуляторах, но на реальном железе разница колосальна.

GBP -> GBL:

Продавалась консоль только в Японии, но позже весь мир тоже получил подсветку дисплея в новых ревизиях Game Boy Pocket.

Правда здесь только в первой половине предложения.

GB? -> GBC:

Была и обратная совместимость со старыми картриджами, которые отображались в четырех цветах.

Там была возможность переключать палитры. В зависимости от палитры, могло отображаться до 8 цветов одновременно. Теоретически могли бы до 10 цветов показывать, но почти во всех палитрах на спрайтах черный и белый цвета совпадали с цветами на фоне.
И ни слова о том, что цветной экран был без подсветки. Совсем. Как и в первой модели GBA.

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

А в тех экземплярах, которые с нормальными кнопками клавиши по ощущениям тоже с "резиновым" ходом? На нормальной клавиатуре при нажатии на клавишу усилие сначала требуется больше, но по мере продавливания клавиши усилие уменьшается и клавиша проваливается аж до контакта и срабатывает. Сейчас моего псиона нет под рукой, но там вроде бы этот эффект отсутствовал почти полностью. Клавиши нажимались с одинаковым (или даже возрастающим усилием), доходили до контакта и надо было продавить ещё чуть-чуть.

В общем, не нравилась мне та клавиатура. Интересно узнать, что были и другие варианты. Может поищу себе другой экземпляр.

Купил в прошлом году несколько ретро-железок, среди которых почти новый Psion 5MX, в идеальном состоянии. Если без ноток ностальгии (в девяностые и нулевые я и не знал что такое Psion), то устройство неоднозначное по очень многим параметрам:

  • Клавиатура есть, клавиши большие, раскладка удобная для английской раскладки. Но сами клавиши жуть как плохо нажимаются, постоянно пропуски букв, пользоваться сложно, раздражает.

  • Механизм раскладывания необычный, отчасти даже прикольный. Но он создаёт ощущения переусложнённости и ненадёжности. Пластмасса по ощущениям тонкая, по наружи тонкий слой краски. Мне скорее не нравится, чем нравится.

  • Устройством комфортно пользоваться только на столе. На ходу или чисто стилусом - не удобно. Но это так у всех клавиатурников с большими клавишами. Возможно, Psion Revo чуть удобнее, но у меня его нет, точно сказать не могу.

  • В целом, я люблю ЧБ экраны. Потребляют мало, хорошо видны на солнце. Но это не про псион. Экран высокого разрешения, но контраст очень низкий. Я думаю это из-за дорожек между пикселями: они в любом случае светлые, а пиксели маленькие. Из-за этого даже “черный” экран в среднем не сильно чёрный, читать с такого экрана не удобно и подсветка не сильно помогает.

  • ОС и встроенный софт - без нареканий. Великолепно, я впечатлён. Многозадачность присутствует. Никаких подтормаживаний и подвисаний я не заметил, интерфейс отзывчивый. При переключении задач заметно как отрисовывается интерфейс, буквально за доли секунды по очереди отрисовываются элементы управления. Это даже забавно наблюдать, особенно если учесть производительность процессора.

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

Сравнить могу с HP Jornada 720, хоть это и более позднее устройство на WinCE. Там по части механики многих проблем нет: клавиатура нормальная, корпус ощущается более надёжным. Я думаю, что псион можно было бы похожим сделать, получилось бы тоньше и легче, но не сделали.

На самом деле интереснеёшая идея. Для 8 и 16-битных приставок, по идее, должно вообще хорошо работать. В этих системах графика состоит из одного или нескольких слоёв background'а, которые состоят из карты тайлов (упрощённо, в каком месте экрана какой номер тайла) и самих тайлов (картинки 8х8 пикселов). Буквы (или иероглифы) обычно занимают ровно один тайл и в видеопамяти есть указатели, где эти буквы расположены.
Не потребуется даже распознавать картинки, максимум один раз каждой букве/иероглифу сделать соответствие.

Викинги крутая игра.
К сожалению, под ДОС она несколько порезана визуально, не умеет рисовать несколько слоёв с паралакс эффектом. Сравните с версией для сеги. Например, на первом уровне окна чёрные, а на сеге движутся звёзды. Но в то время это, конечно, мало кого волновало :)
Мне ещё Fury of the Furries в своё время очень зашла. Чем-то похожа на викингов.

Под ДОС была резидентная программа для взлома игр, кажется GameTools называлась. Она умела сохранять состояние компьютера в любой момент. Но, правда, не всегда могла его восстановить, так что пользоваться надо было аккуратно. В некоторых играх нормально работала, в некоторых играх не работала вообще.
Помню в своё время 2 версии. Более старая сохраняла только базовую память и видеопамять, получалось чуть больше 900кб места на диске. Новая версия сохраняла всю память, в моём случае это было 5мб + видео память. С жестким диском на 40мб было не разгуляться.

А мне очень понравилось на старых графических калькуляторах делать расчёты. Даже если графиками функций вообще не пользоваться. Помещается несколько последних вычислений на экране, очень удобно.


Мой любимый калькулятор на данный момент это Texas Instruments TI-89. Умеет делать точные рассчеты (например, sin(45°) + √(8) = 5*√(2)/2), решает простые уравнения. Есть версия Titanium, програмно чуть лучше (например, правильно разрывы функций на графиках отображает), но внешний вид мне намного меньше нравится, синие подписи плохо читаются.


Из минусов TI-89 — мелковат шрифт. Есть TI-83 Plus. Разрешение экрана меньше, но это идёт на пользу: цифры лучше видны. Для простых расчётов (где не нужна точная алгебра) был бы удобнее, но у него почему-то нет клавиши backspace. Есть del, но она удаляет символ справа, а не слева. Не понятно почему так сделали, не удобно ведь. В TI-84 Plus это не поправили.


В старых Casio (у меня CFX-9850GC Plus) та же проблема с del. Видимо, это подход часто применялся в то время.


TI-92 и Voyage 200 забавные машинки, но на любителя.
А вот современные калькуляторы с цветными экранами меня почему-то не цепляют.

Интересно, а это случайно не китайские терабайты? Как, например, ватты на лампочках.

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

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

Если бы вначале статьи было написано, что никакой полезной функции (кроме поиграться процессом установки) результат не предпологает, то я бы и не читал. Поскольку этого не было, то я предположил, что результат будет в конце, вот поставили линукс, теперь можно делать то и это. В конце этого тоже не было. Зато был обрыв статьи и обещание второй части. Без предупреждения.
Такая подача материала содает ощущение обмана, за это и минус.


Говорить


я не заставляю читать мои статьи

не корректно, вы дали затравку (заинтересовали к прочтению), а результат не выдали. И


зачем ставить сразу минус?

в данном случае тоже не совсем верное утверждение. Минус был поставлен не сразу, а после прочтения статьи. В результате ощущения того, что мое время украли.

Редко так делаю, но поставил статье минус.
Из статьи не понятно что хотел получить автор, почему именно это устройство подходит для его целей (каких?). Чем не подходит одна из кучи китайских ретроконсолей, у которых линукс прям из флешки грузится?
По факту получилось, что калькулятор поломан, линукса на нем нет, чего хотел добиться автор не ясно.
О том, что будет 2 части можно было написать вначале, я бы не тратил время на статью.

Information

Rating
Does not participate
Location
Украина
Registered
Activity