Перейти к содержимому

Как запустить игру на калькуляторе

  • автор:

Запускаем DOOM на калькуляторе HP Prime G2

Установить DOOM на какое либо устройство, это как водрузить знамя победителя на павшей крепости. Мне задали вопрос “ну что, doom запустил?” не менее 35 раз, когда узнали что я вожусь с данным калькулятором. Решил не разочаровывать публику и добиться запуска DOOM. Попутно, это стало неплохим тестом работоспособности оборудования, а также выявления неприятных багов. В общем, поехали!

Новости по проекту

Тем, кому интересно как же я запустил DOOM, могут пропустить эту главу и перейти сразу к следующей. Тут просто представлен текущий статус проекта.

Как вы помните в прошлых частях (часть 1 и часть 2), я занимался тем что ставил Linux на калькулятор, пересобирал u-boot, kernel, rootfs. С тех пор достаточно плотно занимался калькулятором и даже основательно разобрался с тем, что же было сделано в u-boot, kernel и device tree. Надо понимать, что это моё хобби, в свободное от основной работы и семьи время, поэтому не всё идёт быстро, и порой несколько алогично, просто потому что сегодня есть настроение делать так, а не иначе.

Главная новость состоялась, благодаря пользователю Alx2000y, который пригласил меня в чатик в телеге, где на аналогичном процессоре народ пилит свою прошивку для Xiaomi Gateway. Даже есть статья на хабре по теме. Народ уже сильно продвинулся в данной теме, невероятно расширив функционал устройства. И мне очень сильно помогли победить проблему nand. Как вы помните, в самом начале я свой образ nand затёр по глупости. В результате, у меня получилось достаточно большое количество «виртуальных» битых секторов, самое неприятное что битые сектора находились в самом начале и не давали записать туда u-boot. Ниже привожу список битых секторов, большинство из них виртуальные.

=> nand bad Device 0 bad blocks: 00000000 00020000 00040000 00060000 012c0000 04e20000 05280000 094c0000 17b20000 1ff80000 1ffa0000 1ffc0000 1ffe0000 => 

Ленар, из вышеупомянутого чатика, очень сильно мне помог, проблема решилась буквально двумя командами в u-boot:

nand erase.chip … nand scrub.chip … Really scrub this NAND flash? y

После чего, проверяем количество битых секторов, и, о чудо, их стало значительно меньше!

=> nand bad Device 0 bad blocks: 1ff80000 1ffa0000 1ffc0000 1ffe0000

В результате, я теперь могу загрузить u-boot в нулевой сектор и произвести загрузку. На данный момент, калькулятор может быть загружен просто подав питание и будет полностью загружен linux, с работающим дисплеем и возможностью запуска программ по UART. Там даже корректно работает DOOM. «Но, есть нюанс» (С). Видимо драйвер клавиатуры как-то пересекается с драйвером ubifs, и в результате, если нажать любую клавишу на клавиатуре, то происходит мгновенное зависание калькулятора. Мне разок даже прилетел kernel panic, но я не сообразил его сохранить, чтобы хотя бы найти место этого пересечения. Так что на данный момент, всё однозначно работает в initramfs. Видео с демонстрацией работы загрузки nand, запуска DOOM и зависания постил в своём телеграмм канале.

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

В последней части я жаловался, что u-boot имеет разное поведение, при работе на nand и из ОЗУ. Я потратил два дня, ковыряния в исходных кодах u-boot, чтобы понять в чём же дело. А всё оказалось банально (даже стыдно). Утилита uuu, при запуске u-boot из памяти, передаёт туда свои переменные окружения. А точнее вызывает mfgtool_args и в результате строка переменной окружения загрузки выглядит таким образом:

bootargs=rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.file=/fat g_mass_storage.ro=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber= mtdparts=gpmi-nand:4m(boot),8m(kernel),1m(dtb),1m(misc),-(rootfs) clk_ignore_unused

Разумеется, если загрузиться с nand, то с такими параметрами ubifs в четвёртом разделе виден не будет. Поэтому после загрузки u-boot в ОЗУ, я принудительно задаю ему следующие переменные окружения:

setenv bootargs console=ttymxc0,115200 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs mtdparts=gpmi-nand:4m(boot),8m(kernel),1m(dtb),1m(misc),-(rootfs)

И всё отлично работает.

Поясню, зачем это нужно: если прошить загрузчик в нулевой сектор, пропадает возможность работы через mfgtool (утилита uuu). А на данном этапе, состоящем из разработки и отладки — это основной инструмент. Поэтому проще оставить возможность работы утилиты uuu, и загружать каждый раз u-boot вручную.

Запуск DOOM

Переходим к самой интересной части — к запуску DOOM на калькуляторе. Как вы понимаете, я не зря вначале расписал обо всех проблемах. Можно запустить DOOM при загрузке на NAND-флеш, там можно поставить карты всех видов, все возможные версии DOOM и вообще всего что душа пожелает. Но при запуске в ОЗУ, мы ограничены размером образа rootfs примерно в 15 МБ (практика показала, что 16 ещё прокатывает). В связи с этим, пришлось подбирать версию DOOM и делать правильную сборку, а также научиться с ней работать.

Оказалось, что всё хорошее давно придумано за нас, и DOOM можно собрать прямо в buildroot не вставая с дивана. Это я узнал, когда гуглил все возможные варианты DOOM для встраиваемых систем и пытался их собрать. Как оказалось, достаточно запустить:

make menuconfig

И выбрать DOOM. Это делается в » Target packages —> Games —> «

В нашем распоряжении две версии DOOM: chocolate-doom и prboom. После нескольких экспериментов, я понял что chocolate-doom ну никак не хочет влезать в initramfs. Разве, если вообще убрать wad-файлы. Пытался найти обрезанные wad-файлы, которые бы влезали вместе с шоколадным думом. Но она с ними на отрез отказалась работать. В результате, я попробовал шоколадную версию установить на nand (вместе с prboom), и пробовал там. Подбирал параметры и т.д. Результатом экспериментом стала следующий способ запуска:

export SDL_NOMOUSE=1 chocolate-doom -geometry 320x240 -bpp 24 -nomouse

Итог меня сильно разочаровал: эта версия doom некорректно (или может, наоборот, корректно) растягивает экран, оставляя широкие полосы по краям экрана, что мне очень не понравилось.

Шоколадная версия DOOM. Видна чёрная полоса снизу.

При запуске, мне шоколадный дум говорит о том, что делает изменение размера окна:

I_InitGraphics: 320x240 mode not supported on this machine. I_InitGraphics: Auto-adjusted to 320x200x32bpp.

Поэтому, я остановился на prboom. Сделал образ вместе с шароварными WAD-файлами и самим prboom, всё лишнее убрал. Но, всё равно очень долго не мог заставить его работать. Читал всевозможные мануалы, искал как сконфигурировать, чтобы всё корректно работало. Изображение выводит, на кнопки реагирует, но экран коряво растягивает и выводит кривые цвета. Пока на каком-то форуме не нашёл идеальные параметры запуска.

В общем, для нашего калькулятора запуск prboom такой: отключаем мышку, и далее запускаем prboom со следующими параметрами:

export SDL_NOMOUSE=1 /usr/games/prboom -width 320 -height 240 -nosound -vidmode 32bit

Ключевой параметр здесь: «-vidmode 32bit» .

Долго искал подходящие параметры, и только с этим всё завелось. Для удобства всё записал в скрипт d.sh. Наконец всё работает, можно даже играть!

Специально для вас, я подготовил обновлённую сборку flash_utility с DOOM, который вы можете запустить на своём калькуляторе даже без перепрошивки, и показать друзьям, мол вот, DOOM у меня в калькуляторе работает. Достаточно разобрать калькулятор, замкнуть контакты, описанные в первой части и запустить

sudo uuu doom.uu

В конце всех действий, вы получите калькулятор, с linux и DOOM. Чтобы запустить DOOM, надо будет залогиниться и на калькуляторе выполнить:

Резюмируя

DOOM работает! Можно ли в него играть? Ну локально, загружая с компьютера — можно. Это выглядит круто и красиво, но на деле, не совсем то что хочется получить. В действительности будет круто, когда ты едешь в метро, взять и достать из широких штанин калькулятор, включить его (на данный момент режим энергосбережения не работает), и запустить DOOM. Вот это реально круто, играть в метро на калькуляторе в DOOM, Duke Nukem 3D, Quake I, II, III и т.д. Но факт остаётся фактом — DOOM на этой железке запущен. Но ещё очень много работы.

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

P.S. Зачем я этим занимаюсь?

Очень часто спрашивают меня «нафига»? Умом понимаю, что на данный вопрос отвечать глупо, но тем не менее отвечу.

Зачем художник рисует картину или автор пишет книгу? Будем честны, 90% книг, картин да и других произведений могут вообще не увидеть свет, а из тех кто увидят, доли процента станут известными и обретут широкий круг читателей. Проще говоря, большинство творцов делают «бесполезный» труд. Более того, множество произведений даже никогда не находят своего читателя, но что же им этого не делать? Что движет этими людьми? Всё достаточно банально. Ими движет простое чувство:

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

Файлы для скачивания

Игры для калькулятора

можно в тангенс поиграть. Вводишь целое число, жмешь тангенс пока не упрешься в число меньше 1, повторить. Цель подобрать число которое даст максимальный результат.

  • 1 frag / 2 deaths
  • Участник

#4
14:59, 3 апр 2023

Можно поиграть в плюс 1
Жмешь 1 потом плбс а потом засекаешь время и тыкаешь равно пока не станет 1000.

#5
15:01, 3 апр 2023

Можно в DOOM поиграть

Запустить видео по клику - Как делать игры

#6
16:06, 3 апр 2023

0iStalker
Просили же не шутеры.

  • Panzerschrek[CN]
  • Постоялец

#7
16:11, 3 апр 2023

1 frag / 2 deaths
> Жмешь 1 потом плбс а потом засекаешь время и тыкаешь равно пока не станет 1000.
Мы так в школе играли — кто быстрее всего наберёт тысячу, нажимая +1 на калькуляторе. Я побеждал, придумав вызывать своего рода судорогу в мышцах руки, из-за чего кнопку удавалось по нескольку раз за секунду нажимать.

  • 1 frag / 2 deaths
  • Участник

#8
16:27, 3 апр 2023

Panzerschrek[CN]
Ага, мы тоде забеги устраивали, на 100, на 1000. Еще придумали марафон до миллиона. Но я не осилил. Одноклассник осилил. Но он на всех уроках сидел и калькулятор тыкал. Слышно даже было это тыканье даже когда училка прерывалась.

#9
18:18, 3 апр 2023

Не стоит тыкать в калькуляторы.

#10
18:45, 3 апр 2023

1 frag / 2 deaths
это он потом спидранил куки кликер?

#11
19:14, 4 апр 2023

Нужно подойти к первой попавшейся девушке и предложить ей поспидранить кликер.

  • 1 frag / 2 deaths
  • Участник

#12
19:57, 4 апр 2023

Ещё я такую игру играл: на 8-разрядном калькуляторе вбиваем случайное число из 8 цифр методом случайного тыканья пальцев.
Дальше делаем такие операции: прибавляем или вычитаем 1, делим на 2,3,5,7,11. Требуется дойти до 1. При этом надо как можно меньше раз делать прибавление или вычитание 1. У меня вроде всегда получалось уложиться в 4 единички

#13
20:15, 4 апр 2023

Freakazoitt
> Что можно интересного поиграть на калькуляторе? Только не шутеры
What can be interesting to play on the calculator?

Как запустить игру на калькуляторе

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

1

В избранное
В избранном
Поделиться
Этот предмет добавлен в избранное.

��StrayX��
В сети
23 мар. 2020 в 1:09

1,214 уникальных посетителей
15 добавили в избранное

Оглавление руководства

Суть проблемы

Решение проблемы

Комментарии
Суть проблемы

У меня есть старенький ноутбук от Lenovo.На нем 6 Гб оперативы,SSD, стоит Windows 10 и отлично работает.Но есть одно «НО»-на нем два видеочипа-Intel и Nvidia GeForce 410M.Всё бы ничего, но любая попытка поставить дрова от Nvidia, приводит к зависанию системы после перезагрузки намертво.Спасает тока отключение чипа в БИОС и удаление дров.Короче,нервы,танцы с бубном, а результат один-обломись с нормальными дровами на 10ку на своём допотопном компуктере. Видимо,проблема в том,что 10ка клала на старое железо (поправьте меня,если я ошибаюсь,я не спец в этих делах).
И чего я ждал,когда решил запустить Doom 64 на этом ноуте? Верно! Что он пойдёт,игра-то древняя!
А в итоге-но ОпенГл,но гейм. Игра не включается.А поиграть хошца (тем более на работе=))

Итак, вы это читаете и у вас примерно такая проблема: игра не запускается, т.к. не находит API OpenGl или Vulkan,но я так понимаю,у вас нет ни того, ни другого. А поиск в Гугле :»Скачац Опенгл» выдаёт результаты типа: «Обнови дрова, дебил». Но не готовьтесь выкинуть свой калькулятор в окно, попробуйте сделать следующее.

Решение проблемы

Оказывается, игру можно попробовать запустить на Dx 11! Здорово, правда?

1. Для начала, ищем папку с сейвами и файл конфигов игры по следующему адресу:
%USERPROFILE%\Saved Games\Nightdive Studios\DOOM 64\kexengine.cfg

2. Что, нет никакого kexengine.cfg ? Неприятненько. Вот и я так же подумал.

3. Создаём txt файл, обзываем его kexengine.cfg (формат меняем с txt на cfg, легким колдунством 1-го лвл), открываем его блокнотом и прописываем в пустом файле
seta r_rhirenderfamily «d3d11»
Сейвим.

4.Забываем пункт 3. Это не поможет. Игра запустится и скорее всего, как и у меня, заставит вечно наблюдать за кнопкой Start и смотреть демку геймплея. Игра при первом старте сгенерит основные конфигурации в созданный вами файл, но забудет создать код поддержки клавомыши, создав только конфиги геймпада.
Поэтому, нам поможет ультимативный пункт 5!

5. Идём по ссылке [community.pcgamingwiki.com] и качаем файл конфиги. Переносим его в папку из пункта 1.

Если вы всё сделали правильно, то игра должна запуститься. А уж как она будет идти, это другой вопрос.) В принципе, у меня пошла, играть можно. Если есть вопросы-обращайтесь в комментах.

Игра Wolfenstein3D на калькуляторе Casio FX-9860 GII ⁠ ⁠

После приобретения графического калькулятора Casio FX-9860 GII решил установить на него игру Wolfenstein3D. Нашел на YouTube видео-инструкцию по установке игры на этот калькулятор https://www.youtube.com/watch?v=YNrHN23X7Zs

В описании видео есть ссылка на скачивание игры. Это файл с расширением .g1a. Всё сделал, как в этом видео, но игра не заработала. После запуска появлялась начальная заставка игры и калькулятор зависал. Чтобы вернуть его к жизни, надо делать его перезагрузку, нажав на кнопку «restart» на обратной стороне устройства. После долгих писков решения этой проблемы на форумах в интернете, решение было найдено.

Нашел такую информацию на английском языке на одном из форумов: «You might see two versions of an addin an SH3 or SH4 addin, if the maker created it for both versions. To find out if your CPU is SH3 or SH4:

-Go to home menu

-There should be some text similar to this «Version OS 02.02.0201»

If your OS Version ends with a 1 e.g «OS 02.02.0201» then your CPU is SH4

If your OS Version ends with a 0 e.g «OS 02.02.0200″ then your CPU is SH3»

Оказывается в этой модели калькулятора могут быть установлены разные типы микропроцессоров SH3 или SH4. Чтобы узнать версию микропроцессора нужно нажать кнопку «Menu», далее выбрать иконку «System» и нажать кнопку F4. Если вы увидите в конце строки «OS 02.02.0201» — единицу, то у Вас установлен микропроцессор SH4, если вы увидите в конце строки «OS 02.02.0200» — ноль, то у Вас установлен микропроцессор SH3. Оказалось, что в моем калькуляторе установлен микропроцессор SH3. Решил, что, по всей вероятности, версия игры, которая скачивается по ссылке видео-инструкции для микропроцессора SH4, а мне нужно найти версию для микропроцессора SH3.

После долгих поисков файла, нашёл нужную версию по этой ссылке:

Данная версия игры успешно заработала на моём калькуляторе. Результат Вы можете посмотреть на видео в начале поста.

Если у Вас есть желание поиграть в оригинальную версию знаменитой игры Wolfenstein3D, то здесь это можно сделать здесь http://3d.wolfenstein.com/game_EU.php Управление: клавиша X — огонь, клавиша пробел — открывать двери.

Игра Wolfenstein3D на калькуляторе Casio FX-9860 GII Wolfenstein, Калькулятор, Casio, Casio fx-9860 GII, Игры, Видео, Длиннопост

— ИГРА GravityDuck НА КАЛЬКУЛЯТОРЕ Casio FX-9860 GII —

В качестве дополнения к этому посту публикую видео игры GravityDuck на этом калькуляторе.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *