Эмуляция > Эмуляторы консолей 1-4 поколений

Делаю кроссплатформенный эмулятор Atari 2600

<< < (2/2)

Skay:

--- Цитата: EgorInventor от 04 Ноябрь 2022, 21:55:22 ---P. S. А ещё я забыл делать комиты, поэтому изменения в 700 строк висят все в одном комите.
--- Конец цитаты ---
только так и учатся пользоваться гитом)) просто читать про то как надо - мало.

--- Цитата: EgorInventor от 04 Ноябрь 2022, 22:56:03 ---И не ожидал, что эта тема окажется так интересна.
--- Конец цитаты ---
Там много еще интересного) JIT, сначала однородный, потом с промежуточным представлением и т.д. Оптимизации наборов инструкций под целевую платформу)

erobson:
Skay, Если я ничего не путаю, то jit нужен только для оптимизации языков с байт-кодом, каковым родной СИ не является. А по поводу гита - да, наболевшая тема. Я с ним давно, но постоянно про него забываю.

Skay:
EgorInventor, в эмуляции это тоже применимо.
Очень грубо говоря и косноязычно: Ты независимо от потока в котором исполняешь, читаешь инструкции, перемалываешь их (в т.ч. с оптимизациями) и выстраиваешь очередь с инструкциями понятными для твоей платформы. И вот эту очередь команд, уже выполняешь.

erobson:
Таак, читал статьи по эмуляции, но про использование JIT не слышал. Спасибо за наводку, посмотрю, нужна ли реализация

Skay:
EgorInventor, jit это если только в следующую итерацию, для начала надо это заставить работать.

https://bheisler.github.io/post/experiments-in-nes-jit-compilation/

erobson:
Я вернулся. Последние комиты - таблица переходов, исправление багов, палитру по прежнему не переделал, да и не особо надо пока.

erobson:
Наконец придумал способ реализовать tia, и скоро приступлю! Идея заключается в том, чтобы при записи по соответствующим адресам в некий стек складывать указатели на обработчики того или иного события, затем в цикле тиа обрабатывать это самое событие. Если при портировании будет замечена потеря в производительности, можно будет сделать систему приоритетов.

erobson:
Начал работать с ассемблером Mips, чтобы сразу начать переносить на нужную платформу. Пока ничего нового по функционалу нет, кроме исправления багов с счётчиком кадров.

erobson:
Offtop: Решил использовать Psn00bSDK, т. к. он поразительно удобный и быстрый.
P.S. А ещё все эмуляторы, кроме no$psx - бяка.

erobson:
Делаю собственную графическую библиотеку специально под windows, так как слишком много лишнего winapi-кода просачивается в логику эмулятора. От использования SDL окончательно отказался, он слишком медленный.
Пишу в свободное время, а его катастрофически не хватает :cry:

s1nka:

--- Цитата: erobson от 23 Апрель 2023, 14:28:58 ---От использования SDL окончательно отказался, он слишком медленный
--- Конец цитаты ---
Почему он медленный?


--- Цитата: erobson от 23 Апрель 2023, 14:28:58 ---собственную графическую библиотеку специально под windows
--- Конец цитаты ---
На чем? Зачем изобретать велосипед?

erobson:

--- Цитата: s1nka link=thttps://www.emu-land.net/forum/index.php?action=post;topic=87388.30;last_msg=1561356#opic=87388.msg1561356#msg1561356 date=1682354547 ---На чем? Зачем изобретать велосипед?

--- Конец цитаты ---
C + gdi. Хочу сделать минимальный функционал, просто создание в памяти картинки-фреймбуфера и вывода её на экран. Просто чтобы инкапсулировать это от эмулятора. SDL работает медленно, если рисовать напрямую, а разбираться с ним более глубоко мне лень, на winapi быстрее сделаю.

Vlad666:
Так что с эмулятором? Доделали или нет?

Навигация

[0] Главная страница сообщений

[*] Предыдущая страница

Перейти к полной версии