Это копия, сохраненная 21 сентября 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Портативная консоль GEDEVAN-2015
Характеристики:
ЦП: 16-битный TOV.MAYOR CPU, 115 инструкций, производительность неограниченна.
ОЗУ: 8КБ унифицированной памяти, как сейчас модно.
Экран: 32х32 монохромный IPS/AMOLED/TFT (в зависимости от модели телефона).
На данный момент эмулятор уже каким-то магическим образом работает, но тестировать на баги придется еще долго. Написана альфа-версия компилятора на javascript, программирование осуществляется на ассемблере. Ни директив, нихуя еще нет, но простенькие программы компилить уже можно.
В планах приделать к устройству аппаратную поддержку сети. На это и надо сделать упор, самописные сетевые игоры на тетрисе. Заебись по-моему.
И ты настолько ебанутый, что мне захотелось сделать эту консоль физически. 8КБ это вроде то, что ATMEGA может потянуть. atmega128, например.
Оп, выражаю своё охуение твоему тетрису.
В общем нахуй жирные пиксели и 8кб говно, как насчет взять какой-нибудь нормальный ЦП на arm, приделать туда ши-фи, и батарею какую-нибудь? И выложить на кикстартер, лол.
Да, но других идей нет. Впрочем тут в гд почти все только хуйней и страдают.
>>160178
Краудфайндить пойдем, лол.
Короче я решил делать простой ассемблер, для этого выпилил регистры общего назначения. Минусов пока больше чем плюсов, тяжелые инструкции по 5 байт в среднем и прочая хуйня, 8кб памяти маловато будет скорее всего.
>>160183
Ты не понимаешь сути, смысл в том чтоб сделать свое кривое говно типа эльбруса и гордиться им. Экран я сразу захотел увеличить. Можно сделать разные модели устройства, yoba-edition какие-нибудь.
>>160184
Компилятор dummy под консоль пилить сам ты jabberx
Экран увеличивать не надо, пикселов хватает. А вот сами пикселы мог бы перерисовать на простые квадраты, нахрена эта рамка.
8к памяти это кстати дофига, принц персии может и в килобайт с небольшим влезть, даже если на бейсике писать. А тут асм.
ЕБАТЬ МЕНЯ В СРАКУ.
ЭТО ЖЕ ЛУЧШЕЕ В МИРЕ ГОВНО ДЛЯ ОБУЧЕНИЯ МАЛОЛЕТНИХ ПРОГРАММИСТОВ!
СКОРО ВЕСЬ МИР БУДЕТ КОМПИЛИРОВАТЬ ЯДРО НА 16-БИТНЫХ ЦПУ!
Рамка как в старых тетрисах, ностальжи жи. Но ты всё равно прав, можно и убрать эту поеботину.
>8к памяти это кстати дофига
Для Гедевана не оч, наспех написанный генератор картинки в оп-посте для каждого нарисованного пикселя байт_mov, 2_байта_адрес_ячейки_видеопамяти, байт_значение выдал код почти на килобайт. С другой стороны не показатель, для начала надо хотя бы змейку написать.
Тред создавал будучи в конец заебанным всей этой хуйней, за день написал всю железную часть эмуля и компилятор. Чтоб было понятнее, сабж - "типа эмулятор" под андроид на планшете правильного размера создается полное ощущение реальности девайса, лол, но эмуляция очень подробная, хоть и игрушечный, но почти настоящий процессор. Просто интересно с этим возиться, идей для других игор нет, а в гуглплее перебанили уже 3 мои успешные (успех уровня гд) игры. Вот блять с горя и взялся за орижинал контент.
Так как возможности устройства соответствуют возможностям телефона - можно будет легко внедрить любые фичи, хоть вайфай с nfc. Свои игоры можно будет выкладывать на местном маркете, или репозитории. Если помечтать - можно сделать картриджи, например нижняя часть консоли это сьемный картридж, на них девелоперы будут рисовать обложки, картриджи можно будет коллекционировать... Хотя как раскручивать эту бредовую тему мне вообще не ясно, проще было бы эмуль в браузере сделать just for fun уже dosbox на js портировали, пиздануться.
>>160194
Если работал во флеше со Stage3d и писал стейджевские шойдеры на agal - разберешься и тут.
Звук прикрутить не проблема
>наспех написанный генератор картинки в оп-посте для каждого нарисованного пикселя байт_mov, 2_байта_адрес_ячейки_видеопамяти, байт_значение выдал код почти на килобайт.
Ууу, бро, ну это так себе код. В лоб пиксели ставить по одному. Если ты ещё и анимацию так будешь делать, тебе и 28 килобайт не хватит. Гугли Принц1221, например.
Как-раз таки эта железка никому не нужна. А у ОПа ЧУВСТВА не вставая с дивана.
> экраном из одного большого пикселя
из одного пикселя не надо. но сделай так, что экран отрисовывается на основе битовой маски. тогда надо всего 16 байт видеопамяти.
>Нахуя покупать железную консоль за деньги когда её можно скачать бесплатно без смс?
Не понял, что ты имеешь в виду. Где скачать, что скачать? Эмулятор не интересен, как ты сам уже, наверное, заметил. Но для геймбуино фанаты и эмулятор сделали уже.
а еще лучше сделай аппаратные спрайты и рендер без буффера
http://www.forbes.com/sites/erikkain/2014/03/07/hit-kickstarter-video-game-console-ouya-is-basically-dead/
Это игра в которой надо делать игры и играть в них. Что непонятно?
Чет мне кажется планочку то задрал, правда надо было начинать с 64 байт памяти и одного пикселя. Но раз уж взялся хуле делать.
Ты когда игры начнёшь делать?
У нас на первом курсе надо было симулировать асм, так что после этого твой проект мне сложным не кажется. Сделай открытым репозиторий или просто поделись кодом krahmitt@gmail
>Чет мне кажется планочку то задрал
не надо делать эмулятор несуществующего процессора. сделай все просто. ты же игру делаешь, а не говно какое-то.
Я тебя удивлю, но как раз таки эмулятор команд для несуществующего процессора он и делает. Игр в /gd ни разу не делали, а это может взлететь. Если все красиво сделает, можно даже запилить конкурс кириллоподелий на нем. Разумеется, юнити или гамак в качестве движка.
Можно гордиться хотя бы им. Еще макросы как в фасме приделать и будет вообще йоба. Теперь можно пилить змейку.
Пофиксил.
Если не сделает он — сделаю я за него. Если не сделаю я — сделает другой кирилл. Имя нам - gd, попаболи нашей океан. Мы не кармаки и не кодзимы, мы кириллы. Мы не перегораем, мы отправляемся в ирл на перегруппировку.
>Можно гордиться хотя бы им.
может гордится что написал транслятор букв в цифры. да ты просто кармак.
ты неправильно делаешь это все. никому не интересно писать что-то в редакторе. понимаешь?
ты игру делаешь или хуитой занимаешься? если последним, то иди в /pr/
>может гордится что написал транслятор букв в цифры.
Но ты то нихуя не написал.
>ты неправильно делаешь это все.
Есть дельные советы или просто поныть зашел?
>ты игру делаешь?
По внешнему виду видно что это игровая консоль а не майнер.
>По внешнему виду видно что это игровая консоль а не майнер.
пока что это какой-то эмулятор выдуманного ОП-ом тетриса. с таким-же успехом можно скачать ассемблер для C64 или NES и делать игры на нем. охуенная игра.
>Часто такое бывает, через два дня свежая идея протухает и хочется уже чего-то нового
К успеху идёшь. Не пробовал движок писать? Так, чтобы с нуля и до финиша хотя бы играбельной демки?
Нет конечно, зачем тратить время на всякую хрень типа движков когда можно делать игры.
Ты ебанутый?
Если ответишь утвердительно, то еще вопрос:
Нахуя асм, когда есть высокоуровневые языки?
Нахуя высокоуровневые языки, если есть асм?
> Нахуя асм, когда есть высокоуровневые языки?
С асмом можно ебаться, а на высокоуровневом языке придется игру делать.
Вскрылось следующее, стек нинужен, не используется вообще, выпилить. Половина команд не нужна. На экране 5 дюймов уже неудобно жать на кнопки - это уже значит что концепцию надо менять, пусть экран будет с тачскрином и без "физических" кнопок, например. Компиль хороший вышел, но нужно или пилить транслятор из языка более высокого уровня, или кладбище. Идея больше годится для веба, скомпилил и играй, тут тебе и клавиатура и все остальное. Но это сто раз было, есть онлайн дрочильни всяких 6502 и даже х86 процессоров, хуйня. Без какой то фичи это тлен. Тем не менее результатом доволен, размял мозг, тоже хорошо.
Ну и памяти - 128кб. Меньше - это ни музла ни анимации и/или постоянные подзагрузки. Не Ъ.
Далее будет критика и идеи, как это говно можно развить. С твоим настроением (из последних постов) далеко не уедешь, но ты подумай, какую охуенность можно было бы запилить. Да, каждый дрочит как может и как ему удобно, но было бы круто запилить следующее.
Во-первых, разрядность экрана. Что если ее расширить не в пространстве, а в глубину? Во-первых, вспомни древние телефоны с 4 градациями серого, а во-вторых, для большего пердолинга, можно сделать что-то вроде ШИМа, пусть автор быдлокода сам пердолится. От тебя только корректные тайминги и эффект латентности жидких кристаллов. Программировать такой экран - верх пердолинга.
Далее, хотелось бы больше возможностей в плане ГРОФЕНИУМА, а именно разные регистры, которыми можно было бы подергать подсветку или переключить область видеопамяти - это даст возможность как для блиттинга, так и для разных эффектов вроде скроллинга/подергивания экрана. Ну или скажем, поддерживать неймтейблы и тайловый грофен. Можно прихуярить "аппаратный векторный растеризатор", когда одним опкодом можно нарисовать линию или кружочек, а то и целый полигон. Тут в соседнем треде я кидал ссылку на няшный алгоритм пиксельарта, где используется техника сортировки уже растеризированных блоков, это будет ПУШКА. И если рисуем полигоны, то они залиты тайлами, анимация из тайлов набигает... Можно менять указатель на банк тайлов и все в кадре перерисуется. Можно каждому пикселю в тайле задать последовательность включений-выключений, какой-то свой язык для этого запилить, позволит смотреть кинцо даже. И все это на 32х32@1 bit!
Звук и сеть само собой, но я бы предложил сделать модульную архитектуру и "апгрейдить девайс" разными сторонними устройствами. К примеру, текстовым экраном из 7-сегментных индикаторов. Можно даже собственный ROM в такой экранчик, туда залить шрифты и тоже пердолить регистры, делая всякие эффекты, от бегущей строки до рассыпающихся элементов. ОП, знаешь ли ты сколько радости в ебле байтиков и регистров? Боже, я оргазмирую пока пишу это!
Есть еще куча идей и о "операционной системе" такой приставки, точнее о лоадере и подобии файловой системы. С другой стороны, если у нас концепция картриджей, то возможно это будет не очень красиво, но с другой стороны, если будет некий персистент-сторадж (скажем, 4кб на все устройство и все-все-все игры), то это тоже будет мегавин. Опять же, картриджи иногда несли в себе дополнительные чипы, иногда очень навороченные, что хоть и удорожало изготовление оного, но и делало возможным ранее невозможное. Что мешает сделать на корпусе "картриджа" еще один маленький экранчик, или скажем, кнопку? А может быть принтер, выдающий задания и GPS для проверки оных? В общем, можно очень долго придумывать всякое и разное.
Вообще, я изначально хотел написать что все девайсы должны иметь свой ROM и CPU, то и не один, потом хотел написать про маппинг каждого устройства в свою область памяти, системы расширений, вендоров оборудования и его инициализации, подмены стандартных опкодов и так далее, но пока писал пост выше - все забыл про это. Можно фантазировать очень долго. А уж если взяться за экономическую часть и ПОКУПАТЬ новое железо, то тут просто пушка будет. Еще хотел написать про компиляторы и отладчики, но блять, я не остановлюсь. ААА, пост, отпусти меня!
>>160601
Съебни отсюда нахуй, тупое и никчемное быдло, не пиши в этот тред ничего, сраный гуманитаришко.
Далее будет критика и идеи, как это говно можно развить. С твоим настроением (из последних постов) далеко не уедешь, но ты подумай, какую охуенность можно было бы запилить. Да, каждый дрочит как может и как ему удобно, но было бы круто запилить следующее.
Во-первых, разрядность экрана. Что если ее расширить не в пространстве, а в глубину? Во-первых, вспомни древние телефоны с 4 градациями серого, а во-вторых, для большего пердолинга, можно сделать что-то вроде ШИМа, пусть автор быдлокода сам пердолится. От тебя только корректные тайминги и эффект латентности жидких кристаллов. Программировать такой экран - верх пердолинга.
Далее, хотелось бы больше возможностей в плане ГРОФЕНИУМА, а именно разные регистры, которыми можно было бы подергать подсветку или переключить область видеопамяти - это даст возможность как для блиттинга, так и для разных эффектов вроде скроллинга/подергивания экрана. Ну или скажем, поддерживать неймтейблы и тайловый грофен. Можно прихуярить "аппаратный векторный растеризатор", когда одним опкодом можно нарисовать линию или кружочек, а то и целый полигон. Тут в соседнем треде я кидал ссылку на няшный алгоритм пиксельарта, где используется техника сортировки уже растеризированных блоков, это будет ПУШКА. И если рисуем полигоны, то они залиты тайлами, анимация из тайлов набигает... Можно менять указатель на банк тайлов и все в кадре перерисуется. Можно каждому пикселю в тайле задать последовательность включений-выключений, какой-то свой язык для этого запилить, позволит смотреть кинцо даже. И все это на 32х32@1 bit!
Звук и сеть само собой, но я бы предложил сделать модульную архитектуру и "апгрейдить девайс" разными сторонними устройствами. К примеру, текстовым экраном из 7-сегментных индикаторов. Можно даже собственный ROM в такой экранчик, туда залить шрифты и тоже пердолить регистры, делая всякие эффекты, от бегущей строки до рассыпающихся элементов. ОП, знаешь ли ты сколько радости в ебле байтиков и регистров? Боже, я оргазмирую пока пишу это!
Есть еще куча идей и о "операционной системе" такой приставки, точнее о лоадере и подобии файловой системы. С другой стороны, если у нас концепция картриджей, то возможно это будет не очень красиво, но с другой стороны, если будет некий персистент-сторадж (скажем, 4кб на все устройство и все-все-все игры), то это тоже будет мегавин. Опять же, картриджи иногда несли в себе дополнительные чипы, иногда очень навороченные, что хоть и удорожало изготовление оного, но и делало возможным ранее невозможное. Что мешает сделать на корпусе "картриджа" еще один маленький экранчик, или скажем, кнопку? А может быть принтер, выдающий задания и GPS для проверки оных? В общем, можно очень долго придумывать всякое и разное.
Вообще, я изначально хотел написать что все девайсы должны иметь свой ROM и CPU, то и не один, потом хотел написать про маппинг каждого устройства в свою область памяти, системы расширений, вендоров оборудования и его инициализации, подмены стандартных опкодов и так далее, но пока писал пост выше - все забыл про это. Можно фантазировать очень долго. А уж если взяться за экономическую часть и ПОКУПАТЬ новое железо, то тут просто пушка будет. Еще хотел написать про компиляторы и отладчики, но блять, я не остановлюсь. ААА, пост, отпусти меня!
>>160601
Съебни отсюда нахуй, тупое и никчемное быдло, не пиши в этот тред ничего, сраный гуманитаришко.
> можно сделать картриджи
> например нижняя часть консоли это сьемный картридж
>на них девелоперы будут рисовать обложки
Сделай ROM-ы в виде .png-файлов, посередине картинка, а по краям данные пикселами кодируй. Будет годнота. И коллекционировать можно и в /gd/ постить просто.
Эх ты, я то думал ты тетрисс блэкджеком и распутными дамами делать собираешься. А тут просто эмулятор. Алсо, пили гитхаб, будем вместе делать.
Можно, почему нет? Правда QR-коды как-то для быдла больше (да, опопсели уже), потому можно поискать другие методы кодирования, более интересные или запилить самому свою версию с блекджеком и шлюхами. А в пристаку встроить "сканер" таких "штрихкодов" и непосредственное исполнение. Можно даже использовать подобие стриминга, когда код исполняется сразу, по мере сканирования. Тогда можно даже видео делать! Впрочем, это уже начинается эзотерика, оригинальное предложение лучше. Или это был сарказм?
QR-коды избыточны для картинок, распространяемых через борды, а если делать с прицелом на сканирование телефоном, то QR-коды наоборот недостаточны. Код максимальной длины - это 2 c чем-то килобайта - далеко не у всех прочитается.
>Или это был сарказм?
Нет. на самом деле мне кажется, что ОП страдает хуйней. Но посмотрим, может и что-то интересное выйдет
>на самом деле мне кажется, что ОП страдает хуйней
Это очевидно, но страдать хуйней можно очень по-разному.
>>160638
А что ты хочешь? Для начала надо представлять что такое асм и как вообще работают процессоры, потом взять любой желаемый процессор и его опкоды, попробовать написать "исполнитель команд", как бы выполняя опкоды / мнемоники вместо процессора.
Я просто оставлю это здесь: http://wiki.osdev.org/Main_Page
>Съебни отсюда нахуй, тупое и никчемное быдло, не пиши в этот тред ничего, сраный гуманитаришко.
Хуй соси, тупорылое школоло. Съебал, и свою говнопасту (которую никто не читал, конечно, лал) забрал.
Он без оверфловов, потому что я не помню, как они работают, а смотреть лень было.
Добавляем:
аккумулятор
функцию add, выполняющую действие сложение со всякими проверками и прочим
???
Profit!
На васме есть статья про перенос и переполнение. Добавить-то несложно. Из крестов, кстати, нормального языка не получилось, уже не помню почему, но я даже с тем что есть порядочно поебался.
Дело не в переносе и переполнении, а в том, что таких опкодов допиздища. Сомневаюсь, что есть статья по каждому опкоду. Да и не нужно это особо. Нужна точная эмуляция. Даже досбокс не все корректно эмулирует, там косяки в куче устройств, начиная с CPU, заканчивая саундбластером. Впрочем, я ковырял не так уж и много эмуляторов, может и есть норм. Но тут у ОПа свой ассемблер, потому разводить пиздеж про хуе86 неприлично, предлагаю свернуться с этой темой.
А с хуяли ты хочешь x86? Сам придумал тз для опа, и теперь он его, сволота эдакая, не выполняет. Он пилит свой эмулятор придуманного процессора и асм для него. Для поддержки и удовлетворенич своего эго опубликовал новость здесь. А тут ты ругаешь его за то, что тебе не все это не нравится.
Да, появление практической пользы мало, но пусть аутирует. А я посмотрю и если что, сделаю лучше.
Ночная, до сих пор на главной
http://en.wikipedia.org/wiki/CHIP-8
http://habrahabr.ru/post/100907/
http://habrahabr.ru/post/146496/
По переполнениям статья потому, что вроде бы там какая-то путаница была с ними, а там пояснение. Описаний опкодов есть десятки, если не сотни. От интеловского/амдшного оффициальноготм мануала, до файликов времён первопня и ранее. Писать их тоже не особо интересно (если именно писать эмулятор, а не извращаться), потому что они все довольно простые в реализации (кроме новых sse, которые тебе и хэши посчитают и кофе сварят и жопу подотрут).
>Даже досбокс не все корректно эмулирует
Потому что это не эмулятор процессора. Там ещё дос и устройства, с которыми всё сложнее.
Я против гитхаба так как единоличник, и вот вам пикрилейтед пара примеров говнокода чтоб у вас пропало желание в нем копаться.
За IDE плюсик, а вот комментариев бы побольше, слишком уж много неочевидных конструкций.
Единоличник это плохо. В таком случае, оставим опа в одиночестве.
>Java, которая в виртуальной машине, которая на ассемблере, исполняет ассемблер.
А слабо на ассемблере написать интерпретатор, даунито?
>в /gd/ выпустят собственную консоль
В /gd/ выпустят соственный эмулятор консоли. Я, конечно, ничего не имею против проекта и мне интересно, что в итоге получится, но зачем пилить низкоуровневые велосипеды, когда 40 лет назад всё это уже было сделано, причем специально для игр. Тем более под все критерии ОПа CHIP-8 подходит. Да и игры на него уже завезли.
А драйвера под оборудование ОПа тоже завезли? Или игори эти нативно юзают любое железо?
ОП просто пишет эмулятор выдуманного компа. За ним нет никакого реального железа.
Что касается CHIP8, напиши эмулятор для платформы и запускай что хочешь. Это же касается и любой другой платформы.
Зачем его писать, когда их и так полно написано? Разве что фасад переделать под себя.
Ну а зачем свои велосипеды пилить? Потому что интересно и хочется.
Да. Этот особый процессор называется "Дисковая Операционная Система и различная периферия со своим говном".
А до этого он разве не на ней был?
11К операций/кадр 60фпс на говнопланшете, тормоза от записи видео
Надо было или на той или на другой джаве пилить все компоненты, без четкого плана я распылил все силы на два эмулятора с двумя компиляторами на разных платформах. Надо было флаппи берд пилить, хотел же блядь.
А сейчас ты еще на сишке перепишешь.
Но ты предпочтешь с байтами ебаться.
Я не ОП, но скажу тебе, что принципиально бы ничего не изменилось. Главное отличие в том, что все компиляторы и средства для кросс-разработки бы тебе достались на халяву. А там глядишь и пачки либ можно портировать, если их уже не портировали, к примеру, под ведро. Ну и нахер такое надо, если в итоге будет ведро? Нахер оно надо, если все привычно? Здесь же есть уникальный шанс попердолиться в собственное железо, родить полностью все спецификации самому, быть 100% творцом. Вот пример, где все полностью свое, даже процессор: http://www.youtube.com/watch?v=h42neZVvoMY
И если уж делать на всем готовом (привет, страна невыученных уроков), то можно взять что-то более олдскульное вроде Z80, где тоже есть куча разных языков
Хочешь эту игру на гедевана портировать?
Когда уже спецификация будет?
heroku
Мимонеоп
Могу нахуярить экран на сишечке с NDK и биндингами к пиздону. Точнее, мог бы. Сборка пиздона для ведра у меня слишком болезненна и вываливает такие ошибки, которые даже разрабы пиздона наверное не видели. Потому бери сишечку и NDK и пили сам. Я лично при всей ненависти к пиздону и "толстым" фреймверкам, преклоняюсь перед создателями киви, так как собрать такое говно - уже подвиг.
> Сборка пиздона для ведра у меня слишком болезненна
Т.е. просто в qpython'е запустить не получится?
>>161513
Просто я тоже как то патался собрать приложение из тутора (pong) в .apk, но у меня ничего не получилось и знакомство с киви для меня на этом закончилось. Дело было в прошлом году, и я бы предпочел не иметь дела с этой атмтой, но ненависть к яве, любовь к питону и тяга к ведру делают своё дело.
Алсо, биндинги пилить в данном случае - это извращенство, проще будет просто переписать, там кода всего строк на 700, я его за ночь весь сделал.
Честно говоря, в сортах говна не разбираюсь. Более того, что Ку-Пиздон слышу первый раз. На вид, оно все равно потребует (пере)сборки для подцепляния сишного модуля
>>161514
Ненависть к пиздону лично мне позволяет писать на жабе километры кода, а возможность юзать сишечку позволяет не ощущать себя при этом говноедом и говном, делая разные низкоуровневые няшности с байтоебством.
>>161517
Вообще, я бы сделал все байтоебство на сишечке, при желании можно будет портировать куда угодно, хоть на десктоп, хоть на гейфоны, вот просто куда угодно, да и сишечка заточена под байтоебство как нельзя лучше, все низкоуровневые операции будут просто летать, про проблемы с производительностью можно забыть. И тут у нас 2 варианта: или мы делаем шаред либу и подгружаем ее через механизм JNI, поебывая из жабы, или мы запускаем бинарник пиздона, а оттуда через костыли вызываем уже сишную часть. Конечно, возможны разные варианты. К примеру, можно загрузить WebView, куда засунуть сираный жабоскрипт (веб-обезьянам вроде ОПа должно понравиться), при этом просунуть биндинг от сишечки (или жабы, или любой другой части ведра) до эого самого JS, в результате ОП мог бы и не переписывать свой конпелятор, подергивая из JS кусочки на сишечке.
И да, может быть я и говнокодер, но вот что происходит в >>161313 я почти не понимаю, да и выглядит это очень страшно. Впрочем, компилятор - это не тайм-критикал задача, да и сложность там на первом месте.
>веб-обезьянам вроде ОПа должно понравиться
Да ты охуел. Я сейчас 64 КБ текста доков вручную сидел набирал. Скоро выложу свое говнецо, попробуйте только змейку не запилить , а не то я весь /gd движками завалю блядь.
https://play.google.com/store/apps/details?id=com.bluesoid.gdone
ДОКИ
https://gdone.herokuapp.com/
Пишите змейку, а я пошел делать игоры.
У меня в пека нет абсолютно нинужных команд типа STOP и OK; для появления lods/stos была хуевая, но причина; нескольких еще более нинужных регистров для пользовательского ввода, которые уместились бы в один, у меня тоже нет. И это я еще не видел, как инструкции кодируются.
Если бы ОП попробовал реализовать это говно в железе например, взяв какую-нибудь marsohod.org/index.php/prodmarsohod, если паять не умеет, то он быстро излечился бы от всей этой ерунды и, возможно, смог бы высрать что-нибудь более адекватное.
И ассемблер говно. И необходимость ставить что-то на планшетик.
mov a 7500
mov b 1
push start
pop ep
push a start
mov b 0
stob
mov b 1
mov a b1
cmp 63
je up
mov a b2
cmp 63
je right
mov a b3
cmp 63
je down
mov a b4
cmp 63
je left
pop a
jmp draw
pop a up
sub 32
jmp draw
pop a right
inc a
jmp draw
pop a down
add 32
jmp *draw
pop a left
dec a
stob draw
ok
mov a 7500
mov b 1
push start
pop ep
push a start
mov b 0
stob
mov b 1
mov a b1
cmp 63
je up
mov a b2
cmp 63
je right
mov a b3
cmp 63
je down
mov a b4
cmp 63
je left
pop a
jmp draw
pop a up
sub 32
jmp draw
pop a right
inc a
jmp draw
pop a down
add 32
jmp *draw
pop a left
dec a
stob draw
ok
> вот вам хардкор
ЯННП, где ты хардкор-то нашел? Или ты считаешь, что вот этот типа ассемблер - это хардкор? Ну охуеть вообще.
Блять, я надеюсь вы поймете где там нужно ставить звездочки.
Напиши змейку.
И, да, оп, хардкор хардкором, но почему 8 кб-то? Дай 64, сколько битность позволяет.
А то напишу компилятор, а он говна нагенерит, куда я его совать-то буду?
Пока писал, понял что в таком случае цепочка "код на С -> байт-код -> машинный код" не нужна и можно просто подрубать С и весь смысл в проекте теряется.
А что если просто сделать API для Java, которое дает доступ к экрану и кнопкам. Где пердолинг, скажете вы? А в том, что так можно сделать реальное устройство слабой мощности, накатить туда линукс (а можно и вообще дебиан), поставить туда Java, и вуаля, игры от анонов на реальном устройстве.
Пока писал это, понял что и в этом случае смысла нет, так как мы получаем ведро. Ведро как оно есть. С мелким экраном, но ведро. Но ведь и в этом случае у нас целое ведро пердолинга, а в конце — няшное устройство с молнией над экраном, в которое можно поиграться и показать друзьям.
Пока писал это, понял, что окромя ебли с паяльником игра в эмуляторе все то же.
В общем, пилим бессмысленный компилятор для бессмысленной несуществующей консоли.
>>161681
8кб дохуя, а так предлагаю юзать бейсик
Ты явно далёк от знания архитектуры x86 (и его биоса), где легаси на легаси и легаси погоняет. По сравнению с x86 виртуальное железо опа просто верх изящества.
> HLT
Проц просыпается по прерыванию.
> NOP
Проц не апдейтит регистры кнопок из теневых, не заставляет видеокарту мгновенно отрисовать видеопамять, не переходит неведомо куда. Почитай, что OK у ОПа делает. А NOP у него тоже есть.
- Исправлен баг подсветки строки текста с ошибкой.
- Загрузка/сохранение файлов, рабочая папка эмулятора - "asm sources".
- Исправлены коды кнопок, теперь:
\tмомент нажатия = 128,
\tкнопка удерживается = 64,
\tмомент когда кнопка отпущена = 32,
\tв остальных случаях 0.
- Уменьшен шрифт редактора.
ПИСЕЧКИ
https://play.google.com/store/apps/details?id=com.bluesoid.gdone
ДОКИ
https://gdone.herokuapp.com/
Прошлый релиз на странице гугломаркета выдавал, что несовместим ни с одним из моих устройств, теперь выдает, что может установиться на некоторые. Оп, признавайся, что поменял для этого? Неужели ты компилировал под эмулятор с пятым ведроидом?
Возьми apktool и декомпильни, версию девайсов смотри в AndroidManifest. Он еще мог обосраться с зависимостями или, к примеру, размером экрана.
Компилировать эмулятор под эмулятор для эмуляции эмулятора эмулятора - я конечно мудак, но не настолько. Всё дело в индусах, написавших гуглмаркет.
0.1.2 (30.03.2015):
- Окончательно исправлен баг подсветки строки текста с ошибкой.
- Исключена вероятность ошибки при сохранения файла с пустым названием.
- Директивы резервирования _I и _B заменены на _DB и _DI.
Помогайте с разработкой звуковой подсистемы. Со звуком уже можно демки писать. Ведро умеет генерировать звуки, так что вопросы именно по архитектуре консоли. Можно запилить спец команды - начать пищать в такой-то тональности, закончить пищать. Или буфер оформить? Засунул байты, они все пропищали по очереди. Или как? Требуются диванные инженеры.
Маркет писали конечно индусы, но "устанавливаемость" твоего говна зависит полностью от манифеста. Потому открой свой манифест и убери оттуда все говно.
Сделай нормальный ТУЛЧЕЙН, чтобы я мог писать код на пека, заливать в планшет по adb и через am стартовать твое говно. Куроч, хочу как в иклипси, зделой. Не самому же мне писать?
Звуковые буферы устроены везде крайне просто: массив байтиков, которые раз 20-200 в секунду отправляются в железо. Т.е. как и видеопамять, только массив одномерный и с повышенной "глубиной", разрешение скажем 44100 семпла в секунду. Вот только такая штука на ТВОЕЙ приставке - не пришей к пизде рукав. А вот запилить генератор шума, синусоид, пилы и пачки фильтров ко всему этому - вот будет пушка. Ну или PCM, ну тока однобитный и как дополнение. Можно вхуярить готовую библиотеку семплов. Можно попиздить устройство из файлов mod/s3m. Короче, смотри старые спеки на чипы, файловые форматы и / или на генераторы звука, к примеру, http://www.superflashbros.net/as3sfxr/
А ты сам осилишь подобные генераторы/фильтры? DSP - это тебе не хер собачий.
Я автор эмуляторов, игор и тредов, думаешь я не умею писать манифесты? Минсдк 16, идет на любом говне с 4.1 и выше.
>Сделай нормальный ТУЛЧЕЙН, чтобы я мог писать код на пека, заливать в планшет по adb и через am стартовать твое говно.
Пека не нужен. Не для того на жаве компилятор переписывал чтоб потом еще ТУЛЧЕЙН пилить.
>А вот запилить генератор
Сука а я про что? Да, в разделе 50% постов "ДАЙТЕ РУССКИХ УРОКОВ ЮНИТИ НА ЮТАБЕ", но в этом треде серьезный ОП, который пишет адреса памяти в десятичной системе, но кто тут без грехов?.
>>161818
>Сначала осиль эмуляцию без зависающего приложения
Нихуя не зависает, пидор ты криворукий. Когда ты наконец поверишь в меня? Я тебе уже 10 игор за полгода запилил, а ты всё сагаешь блядь.
>Минсдк 16, идет на любом говне с 4.1 и выше.
Ах ты кусок говна, тупой и никчемный быдлокодер, планшет за 200 баксов с 4.0.3 значит уже не достоин твоего говнокода? Я должен выбросить охуенную железку, которая стала мне уже другом, так как тупой быдлокодер не может понизить версию? Да я свои проекты вообще под SDK3 собираю по сей день, так как все написано на сишечке, а значит весомых причин задирать версию нет (более высокие API юзаются через рефлекшен и фактически нужны только для красивостей вроде акшонбара). Быстро блять выложил сорсы, уебища кусок.
>Не для того на жаве компилятор переписывал чтоб потом еще ТУЛЧЕЙН пилить.
Так выложи хотя бы тот конпелятор на JS, который у тебя был. Я уже не прошу заливку кода через КЛАУД, что было бы полезно. Потому что писать код на планшете, пусть и небольшой, уже извращение. Я написал небольшой калькулятор в AIDE когда света не было и хоть там было всего 10 строк на жабе (мат-выражение захардкожено), я уебал на это наверное полчаса и просто заебался. Потому, сука, ебал я "девелопмент на планшете", впаривай такое говно африканским детям.
>ДАЙТЕ РУССКИХ УРОКОВ ЮНИТИ НА ЮТАБЕ
ПАСТМАРИТИ, ВАКРУГ КАВНО, ВСЕ В ГАФНЕ, АДИН Я БАЙТЫ ИБАТЬ УМЕЮ, Я НЕЕБАЦА КРУТОЙ)))))))))))))
>планшет за 200 баксов с 4.0.3
Блядь, я даже не буду отвечать нищеебу с планшетом на айскримсендвиче, это каким же надо быть уебаном чтоб считать свое глючное говно достойным поддержки разработчиками приложений. "Охуенная железка" за 200 баксов по 34, на старте продаж, инфа сотка, вы только послушайте его. Депрекатедребенок, засунь сишечку в анус себе, на сишечке он пишет хеловорлды блядь, кармак хуев.
>Я уже не прошу заливку кода через КЛАУД
ХУЯУД, у меня две руки, а еще фапать надо иногда же.
>Потому что писать код на планшете, пусть и небольшой, уже извращение
Сука я уверен что открой твой ватсап там будут мегабайты хуйни ПРИВ ))00 КАКДИЛА ;-) которые ты пишешь своим друзяшкам каждый божий день, мудак лицемерный.
>Я написал небольшой калькулятор в AIDE когда света не было и хоть там было всего 10 строк на жабе (мат-выражение захардкожено), я уебал на это наверное полчаса и просто заебался.
Еще спиздани после этого что ты что-то сложнее хеловорлдов на сишечке пилил, пидор. В 2007 я бессонными ночами на MOBILE BASICе 3д движки софтверные писал, на экране 220х176 и не ныл блядь. Обоссал пидораса.
> Я тебе уже 10 игор за полгода запилил
Ты меня с кем-то путаешь. Но это не отменяет того, что эмулятор твой, и криворукий, следовательно, ты.
На одном стуле топовый планшет, купленный пару лет назад.
На другом стуле глючный ОП, запиливший говнокод.
Кто из них легаси и кого стоит выкинуть?
>это каким же надо быть уебаном чтоб считать свое глючное говно достойным поддержки разработчиками приложений
Мне показалось, или автор этих строк не сделал уроки на завтра? Или ОП после операции, так как плохому програмисту легаси мешало и его удалили?
>ХУЯУД, у меня две руки, а еще фапать надо иногда же.
Сериализуешь свой байт-код, посылаешь на сервер постом с известным токеном. На ведре посылаешь гет с этим токеном и получаешь индекс. Токен + ид = получение рома. Работы на 15 минут, включая поиск сниппетов кода.
>Сука я уверен что открой твой ватсап там будут мегабайты хуйни ПРИВ ))00 КАКДИЛА ;-) которые ты пишешь своим друзяшкам каждый божий день, мудак лицемерный.
Это я пишу на десктопе, на планшете я практически ничего не пишу. Потому что десктопная клава - как 2 моих 10" планшета, не говоря уже от отклике. На клаве я пишу в слепую, на планшете же я адрес в урле набираю через страдания. Если бы у меня были планшеты с резистивным экраном, то вообще было бы все плохо.
>В 2007 я бессонными ночами на MOBILE BASICе 3д движки софтверные писал, на экране 220х176 и не ныл блядь. Обоссал пидораса.
Какое страшное детство. Я вот таких людей всегда боялся, вроде и великие вещи делают, а кинешь им какую ссылку - окажется что до сих пор на win95 сидят, прочитать не могу, пьют воду из луж и ходят в обносках. И сразу как-то неудобно себя чувствуешь.
Мне кажется, у нас ОП порвался, нужен новый.
Не, не ОП.
Разобрал уже полтреда на цитаты.
А идея... а ход разработки... блять, это все прекрасно. Это прекрасно до слез.
>Адрес возврата из процедуры сохраняется в регистре PP
Оп, уебок, кто так делает, а?
Помести адрес возврата в стек как делают белые люди, а при возврате вытаскивай из стека. Что, если я хочу вызвать другую подпрограмму из подпрограммы? Мм, уеба?
Справедливости ради, тут ОП более-менее прав. Во многих RISC-ах делают LR (Link Register) и инструкцию BL (Branch and Link, аналог CALL в x86), которая помещает в LR адрес инструкции, следующей за BL. Если вызываемая процедура тоже хочет что-то вызвать, ей придется самой сохранить LR в стек или регистр. Возврат в таком случае реализуется в виде MOV PC, LR или POP PC (PC - Program Counter, т.е., IP у ОПа). Это позволяет не ебать стек (память) при вызове коротких процедур с минимумом аргументов, которые так любят современные программисты.
> Чем меньше регистров тем лучше.
И это говорит человек, сделавший 5 (ПЯТЬ!!!11) 16-битных регистров (80 бит!) под состояния кнопок, отдельный РЕГИСТР* под ZF ну ладно, есть некоторый смысл, но лучше бы ты SETcc сделал.
У тебя уже есть SS, сделай из него SP, по которому PUSH/POP будут обращаться к памяти, а остальное тебя не касается.
- Добавлена возможность сохранять и загружать файлы из облака.
- Всякая хуйня.
Уже жду потоков сырцов с названиями OP_XYN.txt и т.д. Все файлы в облаке общедоступные, можете скачать примерчик, пока один. Я бухать пошел, если не работает нихуя значит хакиры вишню залили.
В таком случае я смогу сделать реальное устройство, которое будет исполнять твое говно.
Какашка, правда, в том, что у этих МК оперативная память и память команд разделена. То есть код лежит на флешке (те же 64кб, скажем), а всякое оперативное говно размещается в SRAM (8кб, например).
В таком случае я смогу написать оболочку, которая будет следить за определенным участком SRAM и рендерить это в экран. Будет делать то же самое и с кнопками. Т.е., даже переделывать ничего не придется, я буду делать это все прерываниями. Нужно только сделать 3 вещи:
1. Сделать, наконец, IDE.
2. Перекатиться в разделенную память команд (статичную) и оперативную память.
3. Убрать хардкодный адрес видеопамяти и поместить его в какой-нибудь регистр.
Даже так: просто подвинься к RISC-архитектуре, и тогда я смогу написать норм компилятор.
Я не оп, но имею вопросы:
1. Из рама вообще ничего нельзя запускать? А если я хочу запилить анпакер кода, как в демосцене делают?
2. Может лучше биос изобрести для маппинга памяти устройств? А то я тут хотел свою приставочку сделать, послав ОПа нахуй, но подумал о том, что считывать джойстики/кнопки, играть звук, выводить на экран/принтер/мамку данные можно не только по разным адресам, но и в зависимости от имеющегося железа эти самые адреса и менять. Заткнулся на собственном биосе и менеджере устройств. Как работает шина PCI или USB немного представляю
3. У меня есть фетиш - спектрум. Если реализовать маппинг устройств, то тогда можно смаппить ROM в 0..16383, дальше с 16384 видеопамять (с зоной графики и аттрибутов), а дальше обычная RAM. Подгрузить микрокод процессора (трансляция команд, аля кикс) Z80 и у меня будет мой спектрум, можно будет запускать тысячи игорей!!! Такое возможно?
> Перекатиться в разделенную память команд (статичную) и оперативную память.
Гарвардская архитектура скучная. Для реальных устройств еще туда-сюда, но писать под нее нисколько не интересно. Сделай лучше эмулятор говна опа на МК, это вполне реализуемо.
>>162064
> Из рама вообще ничего нельзя запускать
Можно. Хоть из видеопамяти, если оп еще не сломал и это.
1. В говне ОПа, очевидно, можно. А в Гарвардской архитектуре - нет. Атмега (яркий пример МК) может программировать саму себя, меняя свой код, но это а) тяжко по времени б) флеш память не вечка (10к перезаписей, вроде).
2. Я вообще не знаю, как работает БИОС. Можно вообще, например, завести константу (читай дефай), а компилятор будет сам подставлять число в зависимости от от девайся.
3. Ну спектрум - это уже high-level. Тут тебе и 8 цветов, и экран 256×192.
>>162066
Ну и что, что скучная. Зато игры будут делать. А еще - можно будет подрубить натуральный С для ленивых.
Какая разница сколько цветов? Вообще 16, там еще был флаг "яркости", но это все зависит от экрана. Захотел - прицепил экран 32х32, захотел - прицепил 1920х1080 с векторной отрисовкой, захотел - 7-сегментные индикаторы, штук 10-20 в ряд. Или сего-несовский с паттернами, неймтеблами и аппаратным блендингом. Можно все сразу и одновременно.
Биос нужен, чтобы все это непотребство развести по своим адресам.
Принципиальных изменений не вижу.
А вот если такое можно было бы запилить в железе, то открывается путь к модным гиговским навескам. Опять же, вспомнить хотя бы модульный телефон.
> можно будет подрубить натуральный С для ленивых
А сейчас кто мешает? Бери LLVM, пиши бекенд. Или, если лениво, бери tcc, пиши бекенд, возни поменьше.
>>162068
>А вот если такое можно было бы запилить в железе, то открывается путь к модным гиговским навескам
Сейчас нет проблем запилить в железе что угодно. Но зачем?
>Сейчас нет проблем запилить в железе что угодно. Но зачем?
Игрушки бывают разные. За некоторые я плачу очень приличные деньги, а игорей под них не напишешь :(
Куда платить и сколько?
И что можно сделать с доильным аппаратом в домашних условиях? Вот прицепить его консолке ОПа как переферию и я буду счастлив.
Ты его не купил еще. А купишь - да куда угодно подцепить можно - релюшка, мк, воткнешь в USB, пробросишь в XP-шечку, напишешь драйвер и... ну, в общем, тян не нужны.
ОП, переделай архитектуру под Гарвардскую, убери хардкод и я начну разрабатывать твой анус реальный девайс. Ну и выпущу небольшую партию, штук 10, и разошлю анонам. В таком случае у анонов будет два пути:
Если ты сделаешь инструкции в точь как у avr:
АСМ -> эмулятор на ведре
ACM -> готовое устройство
C -> эмулятор на ведре
С -> готовое устройство
Если не сделаешь то:
твой АСМ -> эмулятор на ведре
твой АСМ -> транслятор в avr АСМ -> готовое устройство
C -> готовое устройство
Бля, пацаны, простите за спам, только додумался нагуглить: https://github.com/buserror/simavr
Полностью готовый симулятор atmega128. Бери да прикручивай экран/кнопки. И через JNI пробрасывай в ведро. Всё.
1. оригинальная идея
2. не пиздабол и сделал
За что мы ненавидим ОПа:
1. зажимает исходники
2. нету средств разработки
Были бы исходники, то тулчейн можно было бы выдрать из ведра и сделать хотя бы консольную тулзу. И сделать нормальные файловые форматы. И нормальный КЛАУД. Но этот обмудок зажимает даже JS-конпелятор, который у него есть.
Оп, как ты сам пишешь на своем говне, а?
Некоторые аноны подхватили общую идею - сделать консоль. Нашлась куча готовых ЦП, подходящих для имплементации этой идеи. Но суть то не в том, что бы в рамках собраний кружка юных радиолюбов припаять кнопки и экран к атмеге, это делали тысячу раз. Суть в том чтобы довести саму эту суть до маразма, не ебать байты в привычном понимании, а снять про это порно. Мне самому стоило наметить четкий еще до начала написания эмуля, ведь что в итоге получилось? Обычная организация с обычным подходом к разработке, опостылевшие регистры ABCD, стек ебаный, видеопамять. Хуйня, как пишут аноны это всё на первом курсе проходят. Так дело не пойдет, уровень /gd это другой уровень. Надо подойти к разработке с творчеством. Даже не браинфак вместо асма, а хуйня вроде языка программирования из цветных квадратиков, ебанутая структура всего. Иначе через месяц никто об этом треде не вспомнит.
АПРЕЛЬСКИЕ ТЕЗИСЫ:
- Симуляция не на уровне "inc a это a++, хули пальцы выгинаешь со своим эмулем тьюринг хуев". Надо собирать из логических элементов настоящий процессор с учетом всего чего можно. Байты из 5 бит. Симулятор биологического компьютера, его надо подкармливать мышами, иначе он эволюционирует до ИИ и разошлет смски всем контактам с обвинениями тебя в мужеложестве.
- Оригинальная система ввода/вывода. Экраном 32х32 никого не напугать. Пусть вместо симулятора экрана будет симулятор вылезающей перфоленты а для ввода нужно будет фотографировать нарисованные говном на стене predator-like спецсимволы.
- Ну и в конце пишем змейку и идем с этим безумием на кикстартер.
Утрирую, конечно, но вы поняли. Начал пилить эмуль для того чтоб было чем себя занять в период ногаемса. Эффект не оч. Больше хочется сесть воплощать в жизнь провальную идею и бросить ее через неделю чем допиливать эмуль, и то веселее время проведу.
Вобщем нужна СТРУЯ.
>>162075
>Ну и выпущу небольшую партию, штук 10
Есть готовые собранные девайсы у тебя? Показывай :3
>>162113
>зажимает исходники
Не на что там смотреть.
>нету средств разработки
Заебал.
>И сделать нормальные файловые форматы
txt - отличный файловый формат. Бинарники с хуй знает чем пока не нужны.
>И нормальный КЛАУД
Заебатый у меня клауд, пидор с филлипин пытался его ночью сломать, но ничего не вышло.
>JS-конпелятор
Забудь про него.
Некоторые аноны подхватили общую идею - сделать консоль. Нашлась куча готовых ЦП, подходящих для имплементации этой идеи. Но суть то не в том, что бы в рамках собраний кружка юных радиолюбов припаять кнопки и экран к атмеге, это делали тысячу раз. Суть в том чтобы довести саму эту суть до маразма, не ебать байты в привычном понимании, а снять про это порно. Мне самому стоило наметить четкий еще до начала написания эмуля, ведь что в итоге получилось? Обычная организация с обычным подходом к разработке, опостылевшие регистры ABCD, стек ебаный, видеопамять. Хуйня, как пишут аноны это всё на первом курсе проходят. Так дело не пойдет, уровень /gd это другой уровень. Надо подойти к разработке с творчеством. Даже не браинфак вместо асма, а хуйня вроде языка программирования из цветных квадратиков, ебанутая структура всего. Иначе через месяц никто об этом треде не вспомнит.
АПРЕЛЬСКИЕ ТЕЗИСЫ:
- Симуляция не на уровне "inc a это a++, хули пальцы выгинаешь со своим эмулем тьюринг хуев". Надо собирать из логических элементов настоящий процессор с учетом всего чего можно. Байты из 5 бит. Симулятор биологического компьютера, его надо подкармливать мышами, иначе он эволюционирует до ИИ и разошлет смски всем контактам с обвинениями тебя в мужеложестве.
- Оригинальная система ввода/вывода. Экраном 32х32 никого не напугать. Пусть вместо симулятора экрана будет симулятор вылезающей перфоленты а для ввода нужно будет фотографировать нарисованные говном на стене predator-like спецсимволы.
- Ну и в конце пишем змейку и идем с этим безумием на кикстартер.
Утрирую, конечно, но вы поняли. Начал пилить эмуль для того чтоб было чем себя занять в период ногаемса. Эффект не оч. Больше хочется сесть воплощать в жизнь провальную идею и бросить ее через неделю чем допиливать эмуль, и то веселее время проведу.
Вобщем нужна СТРУЯ.
>>162075
>Ну и выпущу небольшую партию, штук 10
Есть готовые собранные девайсы у тебя? Показывай :3
>>162113
>зажимает исходники
Не на что там смотреть.
>нету средств разработки
Заебал.
>И сделать нормальные файловые форматы
txt - отличный файловый формат. Бинарники с хуй знает чем пока не нужны.
>И нормальный КЛАУД
Заебатый у меня клауд, пидор с филлипин пытался его ночью сломать, но ничего не вышло.
>JS-конпелятор
Забудь про него.
В отличие от опа, моя идея пошла еще глубже - возможность подключать дополнительные устройства по виртуальной шине к основному (и эти устройства рендерились рядом с моей консолью): устройства ввода, вывода, сопроцессоры, дополнительную память и так далее.
То есть например, мы могли подсоединить к нашему тетрису дополнительный светодиод, или даже дополнительный монитор, или сделать дополнительные кнопки, которые консолью распознаются как соответствующие устройства и будут работать параллельно с ним, либо звуковое устройство, которое синтезировало бы звук по-своему.
И еще разница была в подходах: игра/программа могла содержать не только код и данные, но могла содержать и свои внутренние устройства, которые при загрузке игры выполняли бы свою работу и обменивались данными с основной консолью. Все как в настоящих приставках с картриджами.
Идея заглохла, когда я пошел работать, да и диплом тихим сапом ко мне подкрался. Так и осталось все примерно в таком же состоянии, как и у опа сейчас - ассемблер с десятком комманд, и тухлые примерчики. Как домой приду, может удастся найти сорсы (хотя врядли).
Я думаю, что большинству здесь это не интересно, ибо 90% людей gd натягивают ассеты на боксы, а на программирование им побоку, а это как раз матанистая дрянь для аутистов.
Прочитай тред, я тут уже предлагал подключать синтезаторы речи, принтеры и доильные аппараты.
Как в повдере короче, только аналоговое.
Спасибо за статистику.
>>162113
> нету средств разработки
Я себе еще позавчера ассемблер на JS написал. И >>160628 свою идею реализовал, запускать можно прямо в исходной картинке но только в десктопном браузере. Но пока ОП выкидывает одни инструкции и меняет поведение других, я не вижу смысла что-либо выкладывать.
Более того скажу, можно использовать простейшие алгоритмы стеганографии (например LSB), для внедрения незаметных данных в битмап.
В картинку 640x480 тогда можно будет уместить вплоть до 900КБ данных, в 1280x960 - 3000КБ (естественно с полной потерей информации на контейнере).
Контейнер заполнять полностью не требуется, и если там будет 200/900КБ заполненно, это будет практически незаметно для глаза наблюдателя.
При таких неогранниченных размераз контейнера можно будет издавать кардриджи-многоигровки прямо в png файлах. а игр то не было и не будет
the powder toy
Png лучший формат, рили, или ты про внутреннюю структуру?
LSB я реализовывал примерно так:
Разбиваем все писели по битам, упорядовачиваем индексацию этих бит так, чтобы вначале шли биты нулевого порядка красного, потом зеленого, потом синего байта в RGB, потом биты первого порядка для трех компонент цвета, второго и тд вплоть до седьмого. И данные в эти биты пишутся последовательно, относительно нового распорядка. Таким образом мы вставляем данные довольно плотно, размазываая их по всей картинке и при небольлшом количестве данных они не вызывают визуальных искажений, потому что пишутся в младшие биты байтов.
С точки зрения защиты от стего-атаки на контейнер этот метод никакущий, но он прост и эффективен в плане визуальных искажений, а другого ничего и не нужно.
Я даже реализовывал простую файловую систему внутри png-файла, когда загонялся стеганографией. Ну и тулзу для этого написал.
А я не заморачивался: хотел, чтобы играть можно было в картинке и картинки с кодом можно было на глаз отличить от других картинок (по разноцветным пикселам в блоке кода). Если бы уверенным в том, что Абу ничего не сломает, можно просто код в отдельном чанке PNG хранить,
Охуенчик, украл идею.
Разрабатывая тот или иной модуль, всегда нужно думать о расширении возможностей системы. Уверен, что все игрушки и программы будут <3к байт, которые ты оставил сейчас?
Это сильно ограничивает развитие.
Сначала оп даст нам спеки на асм, чтобы мы могли хоть что-то написать. Потом напишем си-подобный язык (интерпретатор в асм). Потом запилим поддежку кустомных устройств, и уже хуй че влезет в 3к.
Чnj делать будем? Каждый раз перепиливать форматы с нарушением обратной совместимости? Не легче ли сделать LSB декодировщик который будет проверять правильный ли формат по магическому слову внутри, а не по форме картинки. Тогда и к размерам и рисункам в картинке не будет предъявляться никаких ограничений.
Подумал что в третий раз точно забанят как злостного рецидивиста. Пиздить у нотча легко, приятно и прибыльно, но это путь в никуда.
>>162197
https://gdone.herokuapp.com/
Там все спеки, смотри в табличках циферку - это байт с кодом команды, длина в байтах есть. Память однородная. Чего тебе еще надо?
О привет тред не читал, сорсы ты естественно зажал?
Программа не находится в памяти после её загрузки туда? 0-8000 при загрузке программы эта память будет нулями забита, или там находятся команды кода программы?
В 8 КБ особо много данных не вместишь, соответственно никакого экшона и контента не засунуть.
> <3к байт
192 x 16 x 3 цветовых компоненты = 8К памяти, как в спецификации (да, видеопамять тоже инициализируется) + 1К для дальнейших расширений (из них 8 байт используется под сигнатуру и чексумму).
> Разрабатывая тот или иной модуль, всегда нужно думать о расширении возможностей системы
У меня от тебя фабрика фабрик. Это:
1) Формат под конкретную байтоеблю конкретного эмулятора с заранее известными ограничениями, заточенный под постинг в этот тред.
2) Я абсолютно уверен, что увеличивать размер памяти нахуй не нужно. Если хочется памяти, зачем насиловать вот это, где даже mov a нет - возьми KolibriOS, пиши на фасме, будь счастлив но ведь не будешь, правда? Другие архитектуры с 8К памяти формат поддерживает.
3) Приложение ОПа скачало пять человек. Возможно, двое-трое тут пилят свои несовместимые вм. Хорошо, если хотя бы один закончит.
4) Знаешь, чем заканчиваются наполеоновские планы? Ну ты-то точно знаешь. Пылящимися недописанными исходниками.
5) Пиши спеку, можно и твой формат поддерживать, если предложишь схему, с которой обработка 300-400 рандомных картинок (не обязательно с payloadом) за раз не будет заметно тормозить.
>>162214
> экшона
> контента
> экран 32x32
> Программа не находится в памяти после её загрузки туда?
Программа копируется в начало памяти, остальное нули. Указатели не wrapаются, т.е., при доступе по адресу 0x2000 и выше будет еггог.
Находится, сконпелированный код вместе с данными копируется в память с самого нулевого байта по длину кода. Остальное нули.
Кстати раз уж пришлось для клауда проплачивать серв:
http://151.248.125.234/
Двач онлайн снова в работе.
А как узнать где начинается свободная память куда можно писать? Заранее же не узнаешь сколько программа будет весить, если только ручками посчитать.
Никогда не писал на асме? Там в документации есть _di и _db. Напиши в конце программы:
_db 1 мояметка
И сможешь делать
mov a [мояметка]
или
mov a *мояметка если надо именно адрес.
Размер будет указан при компиляции. Данные можно резервировать и отмечать метками.
_db 64 variable
эквивалентно
byte variable = 64;
читаем байт mov a [variable]
shr a 8 (так как мов читает 2 байта).
_db 64 65 66 67 variables
есьм
byte variables[] = new byte(){64, 65,66, 67};
и эти четыре байта будут стоять в начале кода если строка _db стоит в начале. Если в конце то вконце, в середине в середине.
читаем первый байт так же как в первом примере. А еще я понял что второй и остальные хуй прочитаешь, так как смещение никак нельзя указать, так что змейку хуй напишешь.
Насколько я помню, в x86 асме можно было делать мув на адрес, который содержится в регистре
mov [eax] bx
> змейку хуй напишешь
Ну я-то написал как-то:
1) Есть дабл-дереференс.
2) Можно модифицировать адрес прямо в инструкции.
0.1.4 (01.04.2015):
- Новая команда PEEK (A = (memory[D] << 8 | memory[D+1])).
- Регистр D указывает смещение при указании адреса посредством [addr] или .addr.
Нахуя вы за этот эмуль ухватились? Никто бы в треде не отписывался и я бы забил со спокойной душой.
> Никто бы в треде не отписывался и я бы забил со спокойной душой.
Выкладывай исходники еврей-собственник и можешь забивать
Не останавливайся на достигнутом, добавь еще POKE, PRINT и GOSUB.
> Нахуя вы за этот эмуль ухватились?
Ну заебись, теперь ты еще и недоволен! Потому что, несмотря на худшую реализацию из всех, что я видел, идея хорошая. Иногда хочется отвлечься от %ЯЗЫКНЕЙМ% и сделать что-то крутое и бесполезное.
Случайно не знаешь книжку с роботами, которая учит BASIC'у? Называлась "что-то там для микроэвм". Формата А4, не толстая, раскрас серый в клеточку, было минимум 2 тома.
мимоначиналсбэйсика
Не застал, к сожалению. Тяжелое детство, денди с клавиатурой и готовыми спрайтами из Марио. Поэтому теперь я здесь.
>это байт с кодом команды
Ага, так это всё-таки опкоды. Обясни тогда, почему у тебя push и pop имеют одинаковые коды?
Мм, я тоже начинал с бейсика когда был сосницким, класс 7-8. Зеленая книжка с газетной бумагой от издательства Питер. Написана была охуенно, ведь я выучил бейсик не имея компа кодил в школе на уроках информатики, правда контра и старкрафт по сетке сильно отвлекали. А вторая книга была про ассемблер х86, причем что то типа практикума. Я до сих пор нихуя не понимаю что в ней написано.
ОП.
Потому что он криворукий, очевидно же. На самом деле:
69 POP A
70 POP B
71 POP C
72 POP D
73 POP T
74 POP B0
75 POP B1
76 POP B2
77 POP B3
78 POP B4
79 POP EP
80 POP IP
81 POP PP (выпилено)
83 POP CF
84 POP ZF
85 POP [[imm16]]
86 POP [imm16]
> ОП.
> ассемблер х86
> до сих пор нихуя не понимаю
Этот тред никогда не перестанет доставлять.
А я выпросил у директора списанный корвет и прогал на нем. Пока детишки играли в футбол, я хуярил а Бейсике. Но он оказался очень медленный, игру не напишешь. А ассемблера там не было, по этому приходилось писать DATA 14,88 и делать переход по захардкоженному адресу. А коды команд я узнал по книжке Бейсика к спектруму. В этой книжке был раздел на 10 страниц про ассемблер, почти все из которого - таблица с командами, как у ОПа. А к каждой инструкции по два-три слова описания.
Вот именно по ним я учил бейсик в десять лет. И именно они заставили меня полюбить асм. Где-то лежат ещё.
А там про ассемблер разве что-то было? Видимо меня в том возрасте, в котором я их читал, больше привлекали роботы, чем приложения в конце книги. А если я и видел там асм, то уже точно не помню.
Перечитывал я её несколько раз, кстати, до тех пор, пока у меня не появился комп.
Там было сказано, что бейсик медленный, и всё хорошее пишется на асме или в машинных кодах. По-моему, был даже один пример с "инлайновым машкодом", или это я с Техникой Молодёжи уже путаю.
> книжку интересную прочитали
> Нет бы, блять, самим заинтересоваться
Ты долбоеб? Как по твоему люди должны заинтересовываться? Из воздуха информацию о существующих возможностях получать что ли? Или нужно самому всё изобрести, а потом узнать, что такое уже есть? А? Это тебе не письку дергать - знание о компьютерах не сидит в генах и тяга к ним гормонами не регулируется.
>>162169
Пример картинки-рома. Это просто набросок, никаких реальных данных оно не содержит.
Придумывал несколько дней, если именно так и изобрели, то я мудак.
Суть - храним данные в низших битах RGB значений
Переставлять биты по планам (каналам цвета), как было предложено кем-то выше - слишком затратно,
потому я предлагаю рассматривать картинку как RGB и некоторое количество бит с каждого канала.
Для начала нам нужен "заголовок". Юзаем 1 бит во всех каналах, т.е. 3 бита на пиксель.
В первой строке (верхний-левый угол и далее) начинается сигнатура, пусть будет GDIMAGEROMSIGNATURE (19 символов = 152 бита = 50 с хуем пикселей). Это нам позволит определить работу. Дальше ставим версию формата файла, количество бит кодирования (я тут в примере использовал рандом, т.е. 8 бит на канал или 24 бита на пиксель), оффсет (по вертикали и горизонтали), размер данных по ширине и высоте. В принципе, можно несколько таких секций, тогда можно будет пиксели размещать в нескольких регионах.
Очень полезно вхуярить сюда CRC32 для куска данных
Т.е. получим примерно такое кодирование:
GDIMAGEROMSIGNATURE,1,8,28,33,70,37,8327465987
Дальше идем к конкретным пикселям и собираем данные из них.
Очень неплохо бы вхуярить публичный ключ RSA (сертификат), и подпись данных, но это лучше хранить в отдельном чанке PNG-файла, а не непосредственно картинке.
Нахуй ты такую сложную систему изобретаешь, когда можно использовать принцип rarjpeg?
Выше говорили, что неплохо бы видеть пиксели кода. Но QR-код слишком хардкорно, а тут красиво все. Ну вот и выше нечто такое без меня изобрели.
Ну, можно спрятать программу в jpeg отдельно, а на самой пикче нарисовать скрин из игры, описание, и все такое. Сохраняй - загружай.
Абу периодически раржпеги ломает разными способами.
А ведь неплохо. Сигнатура слишком длинная на мой вкус и вместо CRC я бы адлер32 заюзал (считать проще на JS). В остальном согласен в принципе.
>это лучше хранить в отдельном чанке PNG-файла
Он проебется после редактирования картинки паинте?
>>162291
>скин
>код
Говно же. Зачем такой огромный бесполезный скин, когда код малюсенький и пихается на саму картинку.
>играть в картинке
Нахуй не нужно. Нужен скин, ебашь его отдельно сразу для всего девайса, а картридж должен быть только картриджем, с красивым логотипом в середине, а код можно как раз вместо теперяшнего скина вокруг рамкой сделать, только не уебищной кашей из всех цветов, а одним (любым) цветом (тоном) для гармонии с центральной картинкой.
Еще один нюанс: хранить графику не в виде бинарных масок/raw bits, не изобретать свои собственные RLE и тому подобные техники сжатия и дизеринга, а хранить как непосредственно картинку за счет самого PNG. Редактируемость ресурсов в любом редакторе, точная айдентити игры и гораздо лучше цветного шума, загрузка прямо в нужные участки памяти по запросу (ВОУ-ВОУ, можно хоть кинцо гнать с нашего рома) и с преобразованием к нужному формату/битности
>>162305
Про Адлер32 согласен, а сигнатура - первое что мне пришло в голову, однако я бы заюзал 64-128 бит как минимум.
>>162409
Может и проебаться, может и сохраниться, зависит от паинта. Но суть подписи в том, что она ДОЛЖНА поменяться при редактировании, так как она создается при помощи закрытого ключа и подтверждает то, что код пришел из конкретного источника и никакой Вася Пупкин его после этого не редактировал. Идентификация происходит на основе сертификата и публичного ключа.
>>162413
Потому, что мы не дизайнеры и не можем нарисовать что-то пиздец как красивое. В идеале должна быть заебатая картинка от которой ты захочешь продать мамку, в уголке которой должно быть немного цветного шума.
В общем, идея такая:
1. Взять симулятор simavr (написан на C), который я описывал выше.
2. Настроить его на симуляцию atmega (моделей много, смотря сколько нужно ROM от 1кб до 12кб).
3. В цикл симуляции вставить слежение за определенным участком памяти (видеопамяти) в конце.
4. Скомпилить все это под NDK и через JNI подрубить это дело к ведру.
5. На libgdx написать игоря, который будет рисовать няшные пиксели по запросу из С-метода (который отдаст данные из видеопамяти).
6. ?????
7. Профит!
Как пилятся игори:
1. Пишется простой SDK, в котором подключается хуй да нихуя, вроде методов отрисовки пикселей, которые работают с "видеопамятью".
2. Делается сборка какой-нибудь IDE, которая искаробки может компилить код игры на С в машинный код.
3. Делается сборка другой IDE для любителей поебать регистры, которая искаробки будет компилить ассемблер в тот же машинный код.
4. Игорь на ведре умеет загружать этот машинный код прямо в эмулятор
5. ?????
6. Nogaems!
Если на этом пункте не обосрусь, то можно пойти дальше:
1. Делается реальное устройство, к которому подключены няшненькие кнопочки и дисплей.
2. Пишется бут-лоадер на чистом асме (та еще задачка), который размещается в конце, и который может программировать девайс из какого-нибудь источника (usb, например). Т.к. бутлоадер в конце, то ему похуй на адресацию игры, он после загрузки просто прыгает в 0.
3. В бутлоадере прописаны прерывания по таймеру, которые сами рендерят в дисплей участок видеопамяти, а также играют бип-бип-бип.
4. ??????
5. Пиксели можно ебать буквально
>
>Может и проебаться, может и сохраниться, зависит от паинта. Но суть подписи в том, что она ДОЛЖНА поменяться при редактировании, так как она создается при помощи закрытого ключа и подтверждает то, что код пришел из конкретного источника и никакой Вася Пупкин его после этого не редактировал. Идентификация происходит на основе сертификата и публичного ключа.
Суть подписи в том, что она должна индентифицировать данные. Изменишь данные - подпись невалидна по дефолту. Надо заново переподписывать. Поэтому писать в чанк не нужно.
Для этого бы хватило простого хеша. Но пересчитать хеш может любой, а сделать подпись с известным ключем - только автор, имея закрытый ключ. Потому подпись - это не только контроль целостность данных, но еще и удостоверение конкретного источника данных.
То, что изменяются данные и подпись невалидна до повторного подписываяни - очевидно, но тебе никто не запрещает запускать такое при желании. Или запрещает, тогда можно сделать ВЗЛОМАННЫЙ РОМ С ОТЛОМАННОЙ ПРОВЕРКОЙ. Хотя обычно такое делают там, где быдлокод подписывается за бабло.
Причем тут чанк - я не понял.
Код можете скачать из ОБЛАКА, код с комментариями.
Кнопки надо побольше сделать, знаю. Даже на планшете постоянно промахиваюсь мимо них.
1. приложение только мобильное? в глаза ебусь, не вижу ничего кроме ссылки на гуглплей
2. ну так будет ссылка на исходники?
3. почему js для байтоебства? Сам иногда пишу эмуляторы, и пишу иx только на C. не знаю почему, но очень доставляет именно на этом милейшем языке байтоёбить
1. Пока да.
2. Нет.
3. На js была первая версия компилятора. В настоящее время js даже на страничке с доками нет.
В основном идешки от JetBrains.
Оп замутил с тян и выпал из процесса разработки, эту сферу деятельности приходится от нее скрывать, лол. Ведь если она узнает что я за все время не выпустил ни одной успешной игры... Вдруг разболтает, будет людям стыдно в глаза смотреть. Я ее сам дропну через несколько дней, честно-честно.
матмех урфу
Я читал :3
Пометил тебя желтым.
Ц3РК0В?? ТNРЕ4А
А я вообще ничего вижу, даже в крайней версии.
Возможно код криво загружается из-за тормознутого интернета.
А ещё кнопки очень маленькие. На планшетах может и удобно, но у меня иногда не получается на кнопку нажать, как бы тупо это не звучало.
>если столкнуться со стеной
Так и задумано. Гаме овер.
>А ещё кнопки очень маленькие
Это бич многих мобильных игр. Короче вместо кнопок будет тач. Вообще консоль задумывалась не как симулятор консоли, а как программная среда под которую можно писать игоры на асме. Так что всякие условности лучше выпилить. Еще придумал что можно сделать с выводом текста. Стоять будет текстовый режим, байт в видеопамяти рисуется как ascii-символ, среди этих символов будет пиксель на всё знакоместо, 8х8. Можно будет пилить хеловорлды и рогалики, а также обычные пикселизированнные гаемсы. Займусь на днях как-нибудь, надо доделать уже гедевана и заняться нормальными игорами.
Магазин ассетов будет? Реквестирую ассет симулятора кота.
>Так и задумано. Гаме овер.
А, ну ладно. Я просто ещё совсем не могу разобраться в коде и думал, что после смерти должен вылезти сэдфрог.
Как судак, не обратил внимания, что stob работает с видео памятью. Хорошо, туман начинает рассеиваться.
Да.
Будем знать. Нашел по запросу "судак".
Пока ничего не делайте, я все поменял. Памяти 16КБ, экран 32х48, видеопамять 2 байта на пиксель будет, вместо кнопок уже тачскрин. Пару инструкций изменил.
ОП, помоги плез. Из меня погромист не очень, дальше as не выбирался. Решил посмотреть, могу ли я что-то сделать на гд1, и тут понеслась. Решил для начала попробовать в отображение графики, за основу взял рандом пикселс, заливаю экран попиксельно одним цветом. Хотел сделать так, чтобы цвет подбирался из массива вида
_di 32 64 32 255 col
Вопрос, как мне выбрать определённый участок этого массива?
Только не ругайся, что такой тупой
В регистр D можно засунуть смещение.
Разберем твой код, если мне надо взять значение 74 в твоем массиве pix то можно сделать так:
mov d 16
mov a [pix]
16 - потому что позицию надо еще на 2 умножить, так как смещение указывается в байтах, а _di резервирует по 2 байта на каждое значение.
Смотри чтоб перед обращением к меткам типа [pix] .pix в регистре D не было мусора иначе считает хуй знает что. Ты пока мозг особо не ломай, все равно скоро выйдет обновленная версия гедевана с тулчейном.
>>163513
Нормальный подход, баги выпиливаются, фичи запиливаются.
>mov d 16
>mov a [pix]
Не [pix], а [col], в моём коде первая строка, .col
pix - номер текущего пикселя, увеличивается каждый раз при повторении цикла. (Наверное, можно заменить t, но тогда вообще бог знает, что происходит)
col - массив с цветами, цвет мы достаём из него.
Получается примерно так:
mov a [pix] //смотрим, с каким пикселем работаем
mul 2 //умножаем это число на два
mov d a //присваеваем регистру D значение для вычленения пиксела
mov a [col]
В цикле есть строка inc [pix], строку inc [col] я убрал - она теперь не нужна. Вроде бы всё правильно, но цвет по-прежнему берётся первый из массива, без сдвига, который я задаю. Понять не могу, что я делаю не так.
Я бы не заморачивался, если бы был уверен, что с обновой разберусь легко, но для меня это что-то новое и хочется вникнуть как можно скорее.
У тебя в коде на картинке D всегда будет равен нулю. Предназначение операций после stob мне неизвестно.
Когда пиксели рисовались через один - это ты брал из col по порядку каждый байт, увеличивая смещение на 1. di это два байта, а рисовал ты каждый, смекаешь? 255 в двух байтах = 0x00ff, вот ты и рисовал сначала 0x00, затем 0xff, в результате получались дыры.
Кароч. С утреца лень копаться в твоем говнокоде, тем более ты сам можешь по порядку выполнить каждую операцию на листочке и посмотреть что меняется, а что нет. Запилил свой вариант с увеличивающимся адресом видеопамяти и массивом цветов - все работает. Переписывать не надо, переделал stob чтоб адрес брался из D а значение из A, экран весь черный, на это тоже не обращай внимания. Но суть может и уловишь.
>>163576
Это считается что у меня спиздили игру, учитывая что я сам ее изначально спиздил?
Вот она, слава.
С обновлением много чего изменится. Кнопок не будет. Жди обновы.
Для повышения производительности пришлось переходить на вывод графона через ОпенЖЛ, работает все быстро и заебато. Будет как в досе несколько видеорежимов.
cmp и jx останутся теми же? Не могу пока разобраться.
Можешь сделать небольшое окошко, куда бы можно было выводить какое-нибудь значение через trace, чтобы видеть, как оно меняется?
У меня свербит сделать и на пека, и на ведро, и на реальное устройство под сишечку и асм. Уже даже виртуальную машину написал (С исполняет С, спешите видеть). Даже есть небольшой тулчейн, который конпелирует сишечку вместе с стдлибой. С дебагом! gdb в виртуальной машине, еба.
Но т.к. реальное устройство таки ограничено ресурсами, то думаю вот как бы организовать видеопамять. Пускай будет 128x128 пикселей, 256 оттенков. Если посчитать в лоб, это 16 (!) кб, что реальному устройству не по силам. Импонирует схема спектрума: сам экрен монохромный, 128x128 / 8 = 2048, всего 2кб. А каждый "символ" (8x8) имеет отдельно цвет пикселей (8 цветов) и цвет фона (8 цветов). По три бита на каждый цвет, это 6 бит, а 2 будут где-то болтаться. Тут либо сделать моргающий как в спектруме, либо сделать 16 цветов (что лучше). Итого, 128x128 / 8 + 16x16 = 2304 байта.
Так что спеши, ОП, у тебя появился конкурент.
даже если всем похуй то пилю ради процесса
Гугл шакал, пожал мне пикчу.
Значение регистров теперь можно смотреть прямо во время работы программы. Можно брейкпоинты какие-нибудь вставить в виде дополнительных команд.
>cmp и jx
читай cmp значение как if(A ?? значение){...}, а знаки вопроса, т.е. условие задается именно соответствующим условием для прыжка, je - если равно, jne - если не равно и так далее, в доках написано.
Для примера:
if(A == 5){
A = 1;
}
A = 2; // metka
на ассемблере можно представить как
cmp 5 //сравнить с 5
jne metka // если не равно (для условия A != 5 пишем je "если равно", на пальцах - берем условие как бы написали на языке высокого уровня и меняем на противоположное, ищем соответствующий условный переход) то "перепрыгиваем скобочки"
//{
mov a 1
//}
mov a 2 metka
с else
if(A != 5){
A = 1;
}else{
A = 3
}
A = 2; // metka
cmp 5
je metka
mov a 1
jmp *endif
mov a 3 metka
mov a 2 endif
Если не сделать прыжок jmp jmp то же самое что goto в бейсике или C# то выполнятся и операции в блоке else.
>>163676
Изъебнись как-нибудь если не хочешь 16КБ. Вот у меня будут чисто текстовые режимы, пиксели рисуются символом квадрата. Хуевина 8х8 пикселей занимает один ascii-байт. Еще придумать оправдание возможности смены шрифтов и вообще заебись, мол качайте флапиберд, и спец-шрифт с графоном к игре прошить не забудьте.
Значение регистров теперь можно смотреть прямо во время работы программы. Можно брейкпоинты какие-нибудь вставить в виде дополнительных команд.
>cmp и jx
читай cmp значение как if(A ?? значение){...}, а знаки вопроса, т.е. условие задается именно соответствующим условием для прыжка, je - если равно, jne - если не равно и так далее, в доках написано.
Для примера:
if(A == 5){
A = 1;
}
A = 2; // metka
на ассемблере можно представить как
cmp 5 //сравнить с 5
jne metka // если не равно (для условия A != 5 пишем je "если равно", на пальцах - берем условие как бы написали на языке высокого уровня и меняем на противоположное, ищем соответствующий условный переход) то "перепрыгиваем скобочки"
//{
mov a 1
//}
mov a 2 metka
с else
if(A != 5){
A = 1;
}else{
A = 3
}
A = 2; // metka
cmp 5
je metka
mov a 1
jmp *endif
mov a 3 metka
mov a 2 endif
Если не сделать прыжок jmp jmp то же самое что goto в бейсике или C# то выполнятся и операции в блоке else.
>>163676
Изъебнись как-нибудь если не хочешь 16КБ. Вот у меня будут чисто текстовые режимы, пиксели рисуются символом квадрата. Хуевина 8х8 пикселей занимает один ascii-байт. Еще придумать оправдание возможности смены шрифтов и вообще заебись, мол качайте флапиберд, и спец-шрифт с графоном к игре прошить не забудьте.
ну во-первых, можно изъебнуться в такие стороны:
1. видеопамяти 4кб фиксировано, но разрешения разные. Т.е. можно и 128х128 на 1 бит, можно и 2 бита, а можно 10х10 в 40 бит.
2. попробуй концепцию паттернов+неймтейблов, до которой дошел оп и которая юзалась на несе/сеге
3. на спектруме реально было 16 цветов за счет бита яркости
4. как делал конпелятор сишечки и дебаггер?
5. как насчет аппаратного 3д или векторных операций, о которых я писал где-то в начале треда?
>эта скорость на вебм
Опчик, этот код должен выполниться мгновенно. Дай угадаю, ты исполняешь один такт меж рендерами? Получается же 60 тактов в секунду. Пихай все в отдельный тред.
Если сделать loop, то мгновенно будет, вроде как
>ты исполняешь один такт меж рендерами
Можно было не играть в угадайку, а хотя бы по диагонали прочитать тред. Сколько операций нужно столько и делаешь. На скрине 400К операций за кадр Х 60 фпс = ~24 млн. операций в секунду уровень 1970 года, лол, на нехусе 5. И это ебаная жаба, если плюсы прикрутить ШТОБ БЫСТРО РОБОТАЛО - будет еще лучше.
Правда моргает, падла. Очистка экрана, а потом отрисовка таки занимают время. Надо завести где-нибудь системную ячейку в памяти типа "ану-ка отрисуй экран", виртальная машина будет рендерить в текстуру, а после отрисовки этот байт будет сбиваться.
Сделай видеостраницы как в досе. Памяти жрет в 2 раза больше, зато можно делать двойную буферизацию.
Проблема вот в чем. Хочу в потенциале собрать устройство, мк + экран, причем конекретно видеопамять будет вообще на другой микросхеме (но мк может в аппаратное разширение ram). В суме, 12кб ram.
А как все будет на мк: есть бутлоадер, который расположен на флеше физически в конце, который будет загружать игоря в тот же флеш, но только в начало, а также заниматься рендером видеопамяти на экран.
А эмулятор просто рендерит определенный участок своей памяти все время.
Но вот беда: для мк операция эта не дешевая, увы, экран который я подобрал, использует 65к цветов, а это значит 16 бит на пиксель, 32к данных перегнать нужно. По одному проводу, фактически.
Но и напрямую рисовать в экран тоже не хочется, во первых может там тупо байтами переброска, а во вторых таки будет это моргание.
Так вот, нужно как-то сделать коллбек из игры в бутлоадер, чтобы он начал переброску видеопамяти в экран. А пока более универсального способа, чем флаг не придумал. Бутлоадер будет просто по прерыванию чекать флаг и ебать байты.
Можно разделить экран на полоски (и даже строчки), каждой строке выставлять флаг isDirty и только ее перерисовывать. Упрешься в fillrate на "сложных сценах". Флажок ставить внутри контроллера при обращении к определенному региону памяти.
А еще лучше получать указатели на эти полосочки через некий "биос" и рисовать на них сразу во всех цветах, куда и как надо. Можно не сразу в железо, а в некий буффер срать, а потом коммитить и быстро копировать в реальную видеопамять, будет такой бек-буффер на костылях и палках.
Только ребята, когда начинаются подобные изъебства - это уже нихуя не весело и не смешно. Как я понимаю, изначально приставка запиливалась ради лулзов, а привязывание реального железа - это нихуя не лулзы. ОП-хуй не только не дает исходников своего говнокода, но и ломает апи, другой делает совсем другую, непохожую систему. От баттхерта я готов запилить свою вместе с операционной системой, да времени и опыта нету.
Кстате, о процессорах. Помимо CHIP8 и 6502, можно использовать же виртуалки для таких известных вещей как брейнфак или даже возродить лисп-машины! Как совсем охуенное решение, можно попробовать написать java-on-java - тут тебе и виртуалка (можно даже с jit) и годами проверенный фреймверк.
>ОП-хуй не только не дает исходников своего говнокода, но и ломает апи
Но ведь только со сломанным айпи можно пилить хеловорлды! Еще запилил поддержку 16-ричной системы для циферок в редакторе и добавил несколько команд, а вы еще говорите что я хуй.
На реальное железо пока ничего переводить не собираюсь но если есть желающие профинансировать - милости прошу, хотя если подумать то мне думается консоль проще всего сделать на ПЛИС от Альтеры к примеру, написал себе процессор на верилоге и радуйся. Насколько знаю на этих чипах любители чего только не пилили, и спектрум, и nes и хуй знает что еще.
> 16-ричной системы для циферок
А потом ты захочешь еще константы или метки в dw указывать и закономерно соснешь. Или опять сломаешь существующий код.
Ничего такого я не захочу. Я захотел сделать режим с цветным фоном и цветными буковками, но оказалось что нет для этого нормальной функции блиттинга. Можно или цветную непрозрачную масштабированную картинку, или немасштабированную одноцветную прозрачную. Блядь, мне нужен этот режим.
Рендеринг через двиг, он не опенсурсный. Декомпилируется криво, не помогает также правка отдельного класса где запилены нужные функции. Сдл для ведра ковырять не буду, ну его нахуй. Я зашел в тупик, без режима с цветным фоном жизнь не мила.
Братишка, а ты сам сделал свой сервер? Или чото готовое юзал? Просто я вот сейчас свой отладчик пишу (или он меня?) и у меня тотальное непонимание когда тред надо тормозить, когда продлевать, когда еще чего. Прихожу я значит бряк сделать - всех в сон. Надо продолжить - всех бужу. Похоже, что даже тех, кто спал в мутексах.
Алсо, иклипс же по JDWP пытается дебажить, кокой gdb? Или я совсем мудак?
Вот с ЦП двачую, поделитесь у кого есть.
>>163822
Все просто. Есть такая библиотека под названием simavr. Симулятор avr-микроконтроллеров. Как он работает — выделаешь некую память под RAM, инициализируешь, и начинаешь "тактовать". Просто заводишь отдельный тред, в котором бесконечно вызываешь метод tick у этого симулятора.
А он имеет встроенную поддержку gdb. Если включить ее, он поднимает gdb-server по определенному порту, и если настроить eclipse правильно (ох и поебался же я), в том числе выбрать нужный gdb под архитектуру avr из тулчейна avr-gcc, то все заработает.
Правда бряки не ставятся и их можно ставить только консолью, типа "b main.c:12" или "continue", а еще если выполнить команду "contunue" то не получается остановить, по этому я хочу перекатиться на simulavr. http://www.nongnu.org/simulavr/download.html
Да и способ конпелации я выбрал уебищный: использовал jnigen либу от парней из libgdx. Позволяет конпелировать с/с++ код прямо в джаве (пикрилейтед). Но, увы, никакой отладки, билять, и все перекомпиливает с нуля, по этому каждая компиляция несколько минут.
Вот думаю завести отдельный проект в eclipse, который будет компилить симулятор из сишечки в статик либу для винды/ведра, а потом уже через jnigen ее подрубать.
Все никак не умел знатно поебаться с конпелятором, чтоб прям знать как линковка работает и все такое, а тут такой шанс. Алсо, в отличии от опа, как появится что-то вменяемое, выложу исходники.
Я мало что понял в тобой написанном.
А почему тебе не нравится сборка so-бинарника через обычный тулчейн? Добавив к нему -O0 -ggdb и подобное по вкусу. Ведь фактически JNI - это просто либа с определенным соглашением имен и вызовов. А жабо-часть - простая декларация. Есть даже утильки вроде javah для облегчения работы.
>Если включить ее, он поднимает gdb-server по определенному порту, и если настроить eclipse правильно (ох и поебался же я), в том числе выбрать нужный gdb под архитектуру avr из тулчейна avr-gcc, то все заработает
насколько я помню, протокол не указывает каких-то особенных возможностей архитектуры. Алсо, отразработчика отладчиков разработчику отладчиков: юзай сниффер и смотри как там эклипс/гдб работает.
>Правда бряки не ставятся и их можно ставить только консолью, типа "b main.c:12" или "continue"
Какая консолька, если коммуникация идет с сервером?
>Вот думаю завести отдельный проект в eclipse, который будет компилить симулятор из сишечки в статик либу для винды/ведра, а потом уже через jnigen ее подрубать.
Не знаю что там у тебя, а я запилил простенький make для таких целей. Потому сделать клин проекту, шобы бинарник обновился (я неебу где и как эклипс его кеширует).
Про линковку почитай Linkers and loaders, правда есть много других полезных вещей под этим названием. Для jni тебе нужно просто so-бинарник высрать.
Что? Почему не будет доков? Ты теряешь человека, который собирался сделать лучшую игру
Не, ты не понял. Я отлаживаю не либу, а процесс, который симулируется. То есть ты пишешь игоря в студии А, компилишь ее, а я пишу либу в студии Б, которая загружает твой машинный код и симулирует его, а-ля виртуальная машина. А gdb дебажит какраз внутренний машинный код.
Ребята, помогите определиться с палитрой. Имеем 16 цветов, вот налячкал на скорую руку. Где можно нагуглить "безопасную" таблицу на 16 цветов? Я-то могу нахерачить яркую расцветку, но ведь от этого жизнь моя лучше не станет))
Пикрилейтед, слева на право, снизу вверх, от 0 до 15.
Спасибо, но мне бы в RGB.
Если бы это была жабка, то я бы все понял. А так попытка понять это приводит к зависанию
>>163904
http://rghost.net/6pxd2J4pS - делал такое, не совсем что тебе надо, но посмотри
http://en.wikipedia.org/wiki/Color_Graphics_Adapter
>>163880
Доки писать скучно. Подумал можно книжку написать, в стиле Профессора Фортрана, потрешовее.
В новой версии появились баги, сегодня будет хотфикс.
Или игры и я, или твое говно и ты продолжаешь дрочить.
В клауде уже есть хеловорлд. Остальное после того как я все баги исправлю остался один критичный и нарисую новые няшные иконки. Сегодня есть время ебать байты кстати.
Вполне уместны в данном случае.
Случайно.
Он случайно очередное говно вместо ожидавшегося тулчейна.
ОП-хуй, ты уже нагуглил как заливать что-нибудь в аппликейшон на ведре? В т.ч., твой код в симулятор?
Даже эта хуйня на скрине >>164074 работает и заливает код на телефон через adb. Сейчас дизайн немного поменялся. Без adb пока не работает, но в будущем можно замутить хуйню с локальным сервером по вайфаю или через облако. Подправлю подсветку синтаксиса и залью тулчейн куда-нибудь, в этой сцинтилле черт хуй сломает.
Да нахуй никому не вперлась твоя подсветка синтаксиса, ты компилятор зделой, блять, и эмулятор для пека.
Пошел ты нахуй, может мне еще на всех яп компилятор написать для тебя? Воткни кабель в телефон, запусти ТУЛЧЕЙН
http://rghost.ru/8P8KDyBzx
и изредка посматривай в экранчик мобилы.
Тулчейн пока что не поддерживает русские письмена и костыльный пробел, в остальном охуенен.
А какие бывают?
1. Экран на 7-сегментных индикаторах, с возможностью апгрейда на 10-ти сегментные. Продвинутый видеочип.
2. Память на 16-битовых ячейках, которые представляют их себя шторки 4х4 дырочки
3. IO на основе перфокарт и специального принтера-вырезатора
4. Джойстик - 4 направления и 4 кнопки - 1 байт в памяти, причем половина бит не юзается
5. Сеть на основе UDP-подобного протокола, но я понял что это говно и надо изобрести что-то еще.
6. Клавиатуру вроде как не изобрел. Если подумать, то тут или serial-устройство с буфером памяти, или 1 байт из 16 бит, который читаем, 32к кнопок достаточно всем.
7. Музыка на основе дверного звонка и сирены, включение/выключение битов играют одну из мелодий.
Не сильно то спал, скорее просто фантазировал. Встал, а делать то и лень. Самая большая проблема - а какой процессор выбрать под это? Шобы с отладчиком, конпелятором и всем остальным? А то я же хелловорлд буду 2 года без этого писать.
ТАМ ВИРУСЫ!!! НЕ КАЧАЙТЕ!!
>Написана альфа-версия компилятора на javascript
>переписал с js на java
Скрыл уебищную макаку.
По теме: писать надо было на C или ASM, но никак на этой хуйне. Особенно с твоими 8кб памяти.
32х32 это очень мало((( 128х128 даже монохром збс.
А замутить все это на Raspberry Pi или им подобным, не? Проект сильно упроститься, хотя цена сильно вырастит... Но и мощность, там уже можно будет лепить какие угодно игори, с большим количеством контента.
На этом тетрисе можно будет играть в змейку от ОПа, потому что больше никто под него писать не будет.
>Столько времени на эту хуйню потратил, месяц без двух дней
>простой интерпретатор и переводчик символов в числа
>месяц без двух дней
Скрыл макаку
Ты бесишься потому что идея не твоя.
https://www.youtube.com/watch?v=wDOoAw_YajU
Просто мальчик пишет на чем умеет.
Для прототипирования всякая скриптота неплоха, я вот тоже сейчас свое байтоебство на сишечку переписывать буду.
>>164838
Гуманитарочмо, съебни отсюда нахуй блять. Я вообще не понимаю что такое говно как ты делает в этом треде. Ты - раковая опухоль на теле GD
>>164840
Пишу на жабке, юзаю JNI, что не так? Тот Анон все правильно написал.
Главное умение - расставлять скобочки, т.е. лыбиться ты освоил. Съебни отсюда, гуманитарий.
Схуяли это я лузер? Все работает, даже тулчейн есть. Результат лучше чем у 99% тредов гд. Теперь можно двигаться дальше.
Да ладно, отдохни еще. Торопиться уже некуда, ты лучше 99% кириллов на этой доске.
Сходил бы ты на википедию, да почитал бы значение слова "тулчейн".
https://github.com/desertkun/gd-console
Пока-что только симулятор под винду, но в скором будущем выкачу и под ведро. Принцип работы:
1. Ставишь консоль
2. Запускаешь .hex файлы двойным кликом
3. Делишься этим файлом аки экзешником
4. ??????
5. Профит
К сожалению, игр пока нет. Есть очень простая демка — все лежит в гите (https://github.com/desertkun/gd-console/raw/master/console/games/gd-template.hex можно двигать прыгающий квадратик кнопками A/D, ПКМ - сохранить как). Для написания нужно установить тулчейн https://github.com/desertkun/gd-console#%D0%9A%D0%B0%D0%BA-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C-%D1%81%D0%B2%D0%BE%D1%8E-%D0%B8%D0%B3%D1%80%D1%83 и скачать шаблон, есть даже запакованный в виде zip-файла для ленивых. Есть дебажный вывод, в планах добавить gdb.
После этого сконпелированные игоря запускаются прям в консоли. Ну а также можно заделиться этим вот файлов. Реквистирую анона с кодом для java по упаковке и распаковке произвольного файла в пикчу как тут >>162433
Буду очень благодарен, если какой анон напишет змейку или типа того.
Если кому-нибудь будет не похуй, то я подниму сервер, а-ки гуглплей только для таких игр, и тогда аноны смогут играть на компе/ведре даже ничего не скачивая, прям онлаен.
Да, но на Колоре, внезапно, тоже 15!
>>165391
>>165384
Да, 4 бита. Вот палитра http://en.wikipedia.org/wiki/Color_Graphics_Adapter
Также, есть готовая палитра для paint.net https://github.com/desertkun/gd-console/tree/master/tools/palette . Используя эту палитру, можно рисовать пикчи, которые если положить в папку https://github.com/desertkun/gd-console/tree/master/console/sdk/gd-template/images/source то можно сконвертировать в формат, который инклюдится прямо в бинарник, и потом используя функцию DRAW_IMAGE можно малявать эти картинки.
Вот подробности: http://www.pixeljoint.com/forum/forum_posts.asp?TID=12795
Есть ещё на 32 цвета:
http://www.pixeljoint.com/forum/forum_posts.asp?TID=16247
Я могу добавить возможность дефайнить свою палитру, но это минус 64 байта из оперативной памяти (4кб). Ну или могу просто поменять палитру на эту. Если она действительна годная.
Может кто-нибудь попробовать скомпилить пример, компилится ли искаробки? Может что-то забыл указать.
В темке как раз такое есть.
; DB16 Palette File for Paint.Net
; save this code into a file here:
; C:\Users\<username>\Documents\paint.net User Files\Palettes\db16.txt
ff140c1c
ff442434
ff30346d
ff4e4a4e
ff854c30
ff346524
ffd04648
ff757161
ff597dce
ffd27d2c
ff8595a1
ff6daa2c
ffd2aa99
ff6dc2ca
ffdad45e
ffdeeed6
В темке как раз такое есть.
; DB16 Palette File for Paint.Net
; save this code into a file here:
; C:\Users\<username>\Documents\paint.net User Files\Palettes\db16.txt
ff140c1c
ff442434
ff30346d
ff4e4a4e
ff854c30
ff346524
ffd04648
ff757161
ff597dce
ffd27d2c
ff8595a1
ff6daa2c
ffd2aa99
ff6dc2ca
ffdad45e
ffdeeed6
Мой Конклюктер -> Свойства -> Дополнительные параметры системы -> Переменные окружения -> нижнее окошко -> path -> тыкаем два раза и сохроняем в файлик
@
Сразу отвечал
Нахуя вам дрочь под какую-либо архитектуру? Пилите спецификацию виртуальной машины, которую можно будет реализовать под нужные контроллеры, а не дрочите под какое-то определённое железо. Вообще ебанулись чтоли?
Java/Си версия консоли
- полноценный яп в виде асма, похож на х86 ассемблер.
- лучшая эргономика, встроенный редактор с подсветкой синтаксиса, плюс удобный редактор для пека.
- облачный сервис (проебан).
- лучшее быстродействие и минимальный вес приложения.
Жаберикс соснул, >>167950 господин соснул, так как первой искусственно выращенной игрой для консолей уровня гд была змейка >>162459
Я молодец, а вы все плагиаторы и спиздили у меня идею.
на самом деле вы все няшки и двигаете прогресс борды в нужном направлении, всем по два чая.
Кроме саунда все что планировал - запилил, конечно осталась пара костылей типа спецсимвола пробела, но для /gd вышел приемлемый результат.
Хотя правда твоя, после консоли жуткий ногаемс, идей нет и ничего делать не хочется. Возможно геймдев у меня ВСЁ.
Это к лучшему.
Сколько ты готов за это платить в месяц?
Путем байтоебским следовать не каждаму дано. Юнити скачай да кубы дрочи. Это силой наполнит тебя. Упорно тренируйся и кубы твои в нужном направлении двигаться будут. Следуй на Гуглплей затем, покажи на что ты способен всем.
Это больше про темную сторону, ну да похуй, сейчас уже сложно различить что в геймдеве добро, а что зло
Что всё как у людей было. А то жены нет, игорей нет, работы нет(?).
Не. В связи с этим у меня затяжная депрессия и игоры не делаются, наоборот половину поудалял. И с деньгами тоже плохо, чувствую скоро анус в аренду сдавать буду.
Ну как зачем. Посмотреть, может почерпнуть что нибудь.
>Короче я решил делать простой ассемблер, для этого выпилил регистры общего назначения
Нахуй так жить? Сделай компилер из LLVM и пиши хоть на яве, хоть на фортране, хоть на пллахе, лол. А произвольно именуемые регистры не нужны. Сделай регистровый стек.
Даже если читать тред по диагонали то можно узнать что я запилил и регистры, и эмуль, и даже рабочую змейку на своем ассемблере. Еще там где-то есть несколько постов о том что я успешно положил болт на это дело.
ОП
Что тут происходит? В чем смысл? Что вы делаете, и что уже готово?
Алсо, я пилил полностью рабочий 8-битный процессор в квартусе, от схем до микрокода, я охуенен?
Все уже поняли, что ты лошара, можешь не пояснять. Лучше скажи, когда игры начнёшь создавать?
Так и было задумано.
Это копия, сохраненная 21 сентября 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.