Решил посмотреть, как будут выглядеть портреты девушек в разрешении 128х128 точек на монохромном дисплее:)
Для преобразования использовал алгоритм дизеринга, правда тут нужно для каждой картинки подбирать свои настройки.
Потом в видео покажу, как они выглядят в реальном дисплее:)
Кстати, сами девушки нарисованы нейросетью Stable Diffusion. Это можно легко понять по количеству пальцев на одной картинке😁 Но в маленьком разрешении это не важно.
Можно будет попробовать сделать микро фоторамку для таких картиночек, только с цветным дисплеем.
Для преобразования использовал алгоритм дизеринга, правда тут нужно для каждой картинки подбирать свои настройки.
Потом в видео покажу, как они выглядят в реальном дисплее:)
Кстати, сами девушки нарисованы нейросетью Stable Diffusion. Это можно легко понять по количеству пальцев на одной картинке😁 Но в маленьком разрешении это не важно.
Можно будет попробовать сделать микро фоторамку для таких картиночек, только с цветным дисплеем.
👍12🔥3❤1
Как я уже говорил раньше, наиболее близкая к моей игровая консоль это Arduboy, потому что у неё тоже монохромный экран. Только у меня будет другой экран и больше производительность контроллера, а также запуск игр с карты, а не из памяти программ.
И там много интересных игр с открытыми кодами. Вот я и решил изучить библиотеки, созданные разработчиками Ардубоя, чтобы портировать игры для своей консоли. Мне надо разобраться, как там выводится графика, и создать аналогичные функции для своей консоли.
Оказалось, что все картинки там адаптированы для OLED экрана с вертикальным расположением байт. А у меня экран с горизонтальным расположением. Поэтому выходит не очень эффективный вывод графики из игр Ардубой. Так что придётся писать конвертер картинок и менять все массивы в коде.
А ещё у них там часть кода написана на ассемблере ради ускорения вывода графики. Плюс сразу несколько режимов вывода спрайтов: обычный или с маской, просто картинка или spritesheet. И для всего этого надо делать эквиваленты функций.
Вот я и пытаюсь сейчас разобраться, как лучше это сделать, чтобы уже были хоть какие-то игры для моей приставки. Самому с нуля писать их чё-то не хочется пока😁 Заодно подумаю, какую библиотеку сделать мне для своей консольки.
А ещё для картинок в Ардубой есть готовые конвертеры:
https://www.bloggingadeadhorse.com/TeamARGImgConverter/
https://zenndev1337.github.io/Rust-for-Arduboy/image-converter.html
https://www.crait.net/tochars/index.php
И там много интересных игр с открытыми кодами. Вот я и решил изучить библиотеки, созданные разработчиками Ардубоя, чтобы портировать игры для своей консоли. Мне надо разобраться, как там выводится графика, и создать аналогичные функции для своей консоли.
Оказалось, что все картинки там адаптированы для OLED экрана с вертикальным расположением байт. А у меня экран с горизонтальным расположением. Поэтому выходит не очень эффективный вывод графики из игр Ардубой. Так что придётся писать конвертер картинок и менять все массивы в коде.
А ещё у них там часть кода написана на ассемблере ради ускорения вывода графики. Плюс сразу несколько режимов вывода спрайтов: обычный или с маской, просто картинка или spritesheet. И для всего этого надо делать эквиваленты функций.
Вот я и пытаюсь сейчас разобраться, как лучше это сделать, чтобы уже были хоть какие-то игры для моей приставки. Самому с нуля писать их чё-то не хочется пока😁 Заодно подумаю, какую библиотеку сделать мне для своей консольки.
А ещё для картинок в Ардубой есть готовые конвертеры:
https://www.bloggingadeadhorse.com/TeamARGImgConverter/
https://zenndev1337.github.io/Rust-for-Arduboy/image-converter.html
https://www.crait.net/tochars/index.php
👍8🔥5
Audio
Похоже на мой голос?:)
Да, я всё ещё придумываю, как упростить создание дополнительного контента (основной контент я буду продолжать озвучивать сам).
Знаю, что это всё неправильно, но и тратить кучу времени и сил за копейки - тоже неправильно:) Поэтому пока видео на бусти буду озвучивать так. Смотреть эти видео вообще не обязательно. Просто надо сделать какой-то контент, чтобы было на что подписываться за деньги. А то я там вообще ничего не публикую😁
Кому интересно: голос я сгенерил в сервисе Zvukogram (там недорого и есть оплата с карт из РФ), а оттенки своего голоса я добавил бесплатной нейросетью RVC WebUI, исходники которой лежат на гитхабе:)
Да, я всё ещё придумываю, как упростить создание дополнительного контента (основной контент я буду продолжать озвучивать сам).
Знаю, что это всё неправильно, но и тратить кучу времени и сил за копейки - тоже неправильно:) Поэтому пока видео на бусти буду озвучивать так. Смотреть эти видео вообще не обязательно. Просто надо сделать какой-то контент, чтобы было на что подписываться за деньги. А то я там вообще ничего не публикую😁
Кому интересно: голос я сгенерил в сервисе Zvukogram (там недорого и есть оплата с карт из РФ), а оттенки своего голоса я добавил бесплатной нейросетью RVC WebUI, исходники которой лежат на гитхабе:)
👍13🔥8🤔2😁1
This media is not supported in your browser
VIEW IN TELEGRAM
На видео работает симулятор под винду для симулятора RiscV😁
Я всё-таки решил делать свою игру на симуляторе архитектуры RiscV. То есть, все программы надо будет компилировать под этот процессор с некоторыми фишками. А на консоли будет стоять симулятор, в который прога будет загружаться из SD карты.
Таким образом, я сделаю независимость от архитектуры реального устройства: можно будет запускать одни и те же программы на STM32, ESP32, компьютере или смартфоне. В теории, даже на AVR можно будет запустить, если адаптировать туда симулятор, - но будет очень медленно😁
Почему RiscV? Потому что это очень простая архитектура, для которой не нужно лицензий и уже есть компилятор GCC. Я буду делать 32-битную версию, которая поддерживает 4 гигабайта адресного пространства (программы могут быть большими). Я уже более и менее разобрался с базовыми инструкциями, которые и тестируются на видео. Правда нужно будет ещё провести много тестов, чтобы убедиться, что я правильно реализовал работу всех инструкций процессора:)
А потом - добавлю API функции для работы с графикой, кнопками, файлами и для ускорения вычислений. Тогда уже можно переносить всё в реальное устройство и писать рабочие программы. Работы дофига! Но я рад, что понемногу получается реализовать задуманное:)
Я всё-таки решил делать свою игру на симуляторе архитектуры RiscV. То есть, все программы надо будет компилировать под этот процессор с некоторыми фишками. А на консоли будет стоять симулятор, в который прога будет загружаться из SD карты.
Таким образом, я сделаю независимость от архитектуры реального устройства: можно будет запускать одни и те же программы на STM32, ESP32, компьютере или смартфоне. В теории, даже на AVR можно будет запустить, если адаптировать туда симулятор, - но будет очень медленно😁
Почему RiscV? Потому что это очень простая архитектура, для которой не нужно лицензий и уже есть компилятор GCC. Я буду делать 32-битную версию, которая поддерживает 4 гигабайта адресного пространства (программы могут быть большими). Я уже более и менее разобрался с базовыми инструкциями, которые и тестируются на видео. Правда нужно будет ещё провести много тестов, чтобы убедиться, что я правильно реализовал работу всех инструкций процессора:)
А потом - добавлю API функции для работы с графикой, кнопками, файлами и для ускорения вычислений. Тогда уже можно переносить всё в реальное устройство и писать рабочие программы. Работы дофига! Но я рад, что понемногу получается реализовать задуманное:)
👍15🔥9🤔1
Я задался вопросом: если я сделаю устройство на микроконтроллере STM32 и включу в нём биты защиты памяти программ, то насколько просто будет хакнуть этот микроконтроллер и считать мою прошивку для изготовления полного клона устройства?
Если кратко, то ответ такой:старые и дешёвые STM32 с одним битом защиты хакнуть относительно просто, а более новые и дорогие гораздо сложнее.
Если не учитывать очень сложный вариант вскрытия микроконтроллера и прямых манипуляций в его кристалле, то для многих устройств (не только STM32) есть метод, называемый Glitch-атака. В напряжение питания микроконтроллера добавляют очень короткий импульс, из-за которого внутренняя программа неправильно выполняет одну или несколько инструкций процессора.
Например, в STM32 есть встроенный заводской загрузчик программ, который также позволяет считывать её. Но перед считыванием программы, загрузчик проверяет, установлен ли бит защиты памяти. И вот как раз в момент считывания бита можно создать помеху, из-за которой функция считывания выдаст неверное значение. Таким образом, при удачных обстоятельствах можно заставить загрузчик выдать всю прошивку вместе с сохранёнными пользовательскими данными.
Разумеется, угадать нужный момент для создания помех не так то просто. Для этого делают специальные устройства и разрабатывают алгоритмы, автоматически меняющие параметры атаки. Но всё уже сделано и можно найти в интернете:) И ломают не только STM32, но и ESP32, Atmega и так далее.
Видимо, именно таким образом создаются китайские клоны:) По прошивке они будут совершенно идентичны оригиналу, если китайцы не захотят заменить контроллер на другой:)
Всё это описано в статье на Хабр, выпущенной ещё 5 лет назад. Картинка оттуда. Думаю, сейчас всё ещё проще, поэтому мои поделки быстро скопируют, если они будут успешными:) И как уйти от этого пока не ясно.
Если кратко, то ответ такой:
Если не учитывать очень сложный вариант вскрытия микроконтроллера и прямых манипуляций в его кристалле, то для многих устройств (не только STM32) есть метод, называемый Glitch-атака. В напряжение питания микроконтроллера добавляют очень короткий импульс, из-за которого внутренняя программа неправильно выполняет одну или несколько инструкций процессора.
Например, в STM32 есть встроенный заводской загрузчик программ, который также позволяет считывать её. Но перед считыванием программы, загрузчик проверяет, установлен ли бит защиты памяти. И вот как раз в момент считывания бита можно создать помеху, из-за которой функция считывания выдаст неверное значение. Таким образом, при удачных обстоятельствах можно заставить загрузчик выдать всю прошивку вместе с сохранёнными пользовательскими данными.
Разумеется, угадать нужный момент для создания помех не так то просто. Для этого делают специальные устройства и разрабатывают алгоритмы, автоматически меняющие параметры атаки. Но всё уже сделано и можно найти в интернете:) И ломают не только STM32, но и ESP32, Atmega и так далее.
Видимо, именно таким образом создаются китайские клоны:) По прошивке они будут совершенно идентичны оригиналу, если китайцы не захотят заменить контроллер на другой:)
Всё это описано в статье на Хабр, выпущенной ещё 5 лет назад. Картинка оттуда. Думаю, сейчас всё ещё проще, поэтому мои поделки быстро скопируют, если они будут успешными:) И как уйти от этого пока не ясно.
👍14🤔4😱3
This media is not supported in your browser
VIEW IN TELEGRAM
Этот рандомайзер я придумал, потому что хочется для начала сделать какой-то очень простой, но необычный девайс для производства и продажи. Но я и тут стал заморачиваться над разными идеями!
Во-первых, это просто генератор случайных цифр с выбором разных диапазонов в пределах от 0 до 9 или даже до шестнадцатеричной F. В последнем случае можно будет генерировать случайные байты данных, запуская генератор дважды в режиме от 0 до F. Но также будет режим 0...1 для генерации случайных бинарных чисел или ответов на вопросы "0 = нет, 1 = да" типа "магического шара".
Во-вторых, тут можно добавить функцию часов, про которые я рассказывал в одном шортсе. Обычный переключатель может менять режим с часов на рандомайзер.
В-третьих, можно ещё добавить белый светодиод и будет мини фонарик. Для него ещё один переключатель или кнопку.
В-четвёртых, можно добавить функцию USB COM-порта и через команды сделать виртуальный генератор произвольных чисел уже для компьютера. А также для управления дисплеем, чтобы своей программкой на питоне можно было выводить свои символы для прикола. То есть, будет ещё USB устройство.
Нужно это всё чисто для игр. Хотя, наверное, в эзотерике и нумерологии такая штука может быть интересна для чего-то ещё, но я не хочу заявлять это устройство как какое-то средство для развития интуиции или ясновидения😁 Но если кому-то это пригодится в этом направлении, то я буду рад😁
Я пытался найти подобные игрушки в продаже, но электронные рандомайзеры есть только в виде платы со светодиодами типа электронный кубик. А также много обычных механических кубиков с точками и цифрами для настольных игр. И ещё есть USB генераторы для криптографии, но я делаю генератор не для криптографии:)
Меня удивило, что в комментах под видео с этим рандомайзером появилось больше десятка желающих такой брелок. Понятно, что они ещё не знают цену, а она тут явно не будет 150 р, как некоторые уже предложили😁 Но всё равно мне уже хочется попробовать собрать хотя бы 10 штук и продать их кому-нибудь:)
Правда я озадачился с пары комментов по типу "не показывай это полиции". Что может быть незаконным в таком брелоке? Рандомайзеры же есть в смартфонах и даже в некоторых школьных калькуляторах:)
Во-первых, это просто генератор случайных цифр с выбором разных диапазонов в пределах от 0 до 9 или даже до шестнадцатеричной F. В последнем случае можно будет генерировать случайные байты данных, запуская генератор дважды в режиме от 0 до F. Но также будет режим 0...1 для генерации случайных бинарных чисел или ответов на вопросы "0 = нет, 1 = да" типа "магического шара".
Во-вторых, тут можно добавить функцию часов, про которые я рассказывал в одном шортсе. Обычный переключатель может менять режим с часов на рандомайзер.
В-третьих, можно ещё добавить белый светодиод и будет мини фонарик. Для него ещё один переключатель или кнопку.
В-четвёртых, можно добавить функцию USB COM-порта и через команды сделать виртуальный генератор произвольных чисел уже для компьютера. А также для управления дисплеем, чтобы своей программкой на питоне можно было выводить свои символы для прикола. То есть, будет ещё USB устройство.
Нужно это всё чисто для игр. Хотя, наверное, в эзотерике и нумерологии такая штука может быть интересна для чего-то ещё, но я не хочу заявлять это устройство как какое-то средство для развития интуиции или ясновидения😁 Но если кому-то это пригодится в этом направлении, то я буду рад😁
Я пытался найти подобные игрушки в продаже, но электронные рандомайзеры есть только в виде платы со светодиодами типа электронный кубик. А также много обычных механических кубиков с точками и цифрами для настольных игр. И ещё есть USB генераторы для криптографии, но я делаю генератор не для криптографии:)
Меня удивило, что в комментах под видео с этим рандомайзером появилось больше десятка желающих такой брелок. Понятно, что они ещё не знают цену, а она тут явно не будет 150 р, как некоторые уже предложили😁 Но всё равно мне уже хочется попробовать собрать хотя бы 10 штук и продать их кому-нибудь:)
Правда я озадачился с пары комментов по типу "не показывай это полиции". Что может быть незаконным в таком брелоке? Рандомайзеры же есть в смартфонах и даже в некоторых школьных калькуляторах:)
👍14🔥5❤1