Международная конференция разработчиков
и пользователей свободного программного обеспечения

Сказ о том, как я bartop arcade делал

Alexandr Sorokin, Minsk, Belarus

LVEE 2016

Experience share of building the bartop arcade cabinet from ground up, based on open source technologies.

Введение

Аркады были очень популярны в 70-80е годы. Для некоторых людей это существенная часть детства/юности. Аркадные игры поражают своей увлекательностью и простотой. Несмотря на то, что современные игры стали реалистичнее, красочнее, и “онлайновее”, играть в старые аркады по-прежнему интересно. Аркадный автомат становится центром притяжения в веселой компании или в рабочем офисе. Есть несколько вариантов добыть себе такой автомат:

Моя история. Начало

Я выбрал вариант самостоятельной сборки игрового автомата с нуля. Целью было набить руку в столярном деле, сборке электроники. И, можно отметить, что даже в таком небольшом проекте удалось добить поставленной цели, получив массу опыта.
Начать было нелегко, работа требовала пространства, времени и инструментов.
Минский хакерспейс позволил решить вышеперечисленные проблемы. Благодаря этому хакерспейсу я все-таки начал работу и успешно довел до конца.

Эмуляторы

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

Наиболее передовые эмуляторы – LibRetro и M.A.M.E (М.А.М.Е. – идеологический отщепенец). Наиболее известные фронтенды – emulation station, RetroArch, FB Alpha. Популярные дистрибутивы – RetroPie, Lakka.

Работа над аппаратом. выбор железа. список покупок

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

Работа над аппаратом. Первые шаги.

Моделирование корпуса проводилось в OpenScad – открытом пакете для моделирования путем написания программ на специальном скриптовом языке. Проектирование отталкивалось от идеи, что аппарат должен быть легко разборным, с возможностью заменять отдельные части.
Для начала был изготовлен прототип из картона:

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

Работа над аппаратом. Корпус

Для копруса может быть использован любой легко обрабатываемый материал. Я выбрал клееный деревянный щит для боковин и фанеру 10мм для остальных частей корпуса.
Удалось сделать разборными части с монитором и консоль с джойстиками, как и планировалось на этапе проектирования.
Тем не менее, был допущен ряд просчетов, которые сказались на внешнем виде аппарата.

Работа над аппаратом. Электроника

Внутри аппарата была необходимость использовать цепи с напряжением 5V и 12V. Изначальной задумкой было использовать интегрированный блок питания на два напряжения. Но в итоге пришлось остановиться на блоке 12V с дополнительным преобразователем DC-DC 12V-5V.

Основной проблемой в части электроники стала аналоговая часть, а именно шумы в колонках. Этому было несколько причин.
Проблемы были как с усилителями китайского производства, так и с эффектом ground loop. Последняя проблема решилась только добавлением дополнительного фильтра, хотя по сути ее можно было бы решить отдельными блоками питания AC-DC для разных цепей.

В качестве микроконтроллерной платформы для аппарата был использован Raspberry Pi. Это привнесло свою специфику, поскольку Pi чувствителен к помехам по питанию и подключениям в USB. Кроме того, в заводском варианте не предусмотрена кнопка RESET, и ее тоже пришлось делать.

Освещение верхней панели сделано при помощи двух LED-модулей. Благодаря матовой рассеивающей пленке освещение практически равномерно.

Работа над аппаратом. Программная часть

Благодаря готовому дистрибутиву RetroPie настройка ПО прошла практически безболезненно. Но конечно не обошлось без загвоздок.
Потребовалось настраивать канал вывода звука (типовая проблема Pi), а также распознавание джойстиков, которые по-умолчанию определялись как USB-мышь.

Дополнительного времени требует настройка M.A.M.E.: требуется скачивать BIOS-образы платформ, а также конвертировать образы игр.
На этом же этапе обнаружилось, что количество реализованных в аппарате кнопок для многих игр M.A.M.E. маловато.

Ссылки

1 Фронтэнд FB Alpha http://www.fbalpha.com

2 Эмулятор M.A.M.E. http://mamedev.org

3 Дистрибутив RetroPie https://retropie.org.uk

4 Дистрибутив Lakka http://www.lakka.tv

5 Фронтэнд RetroArch http://www.libretro.com/index.php/retroarch-2/

6 Эмулятор LibRetro http://www.libretro.com

7 САПР OpenScad http://openscad.net

8 Образы ROM https://duckduckgo.com/?q=arcade+roms

9 Описание проекта в персональном блоге http://alexsorokin.ru/retro-cabinet/

10 Опубликованные исходные коды https://github.com/Gromina/bartop_arcade

Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license

Назад