ФлеймФорумПроЭкты

Новый эмулятор Nes.

#0
20:08, 1 мая 2025

  Выпустил предварительную, уже рабочую версию PZ_Nes 0.0.7. Ссылка. Только исходный код!
  Для запуска требуется последний ZenGL.
  Лиценизия: MIT + ZLib.

  Распакуйте ZenGL. Рядом расположите проект PZ_Nes. Скомпилируйте (FPC/Lazarus или Delphi).

  Если надо, то могу скомпилировать версии для Linux или Windows. Но будет работать только одна игра (всё только для теста, не сделал даже простого выбора игр).

  В папке есть несколько игр, которые запускаются. В главном модуле можно сменить игру и перекомпилировать. Многие из игр будут с глюком по графике (решается пока как всё исправить). Ну и без звука.
  Управление есть. Есть возможность отладки Nes-приложений (больше просмотра).

  Технология PPU собственная. Тестовая. Если у кого-то вдруг возникнет желание воткнуть подобное с свой эмулятор, то пока воздержитесь. Очень многие проблемы не решены. А со всеми остальными эмуляторами данная технология будет несовместима.

+ Несколько видео на рутубе
+ То же самое на ютубе
#1
20:40, 1 мая 2025

Пух. Какая красота :)

Технология PPU собственная. А со всеми остальными эмуляторами данная технология будет несовместима.

Очень хорошо.

Скомпилируйте.

Чем именно ? Какой язык программирования ?

С вами Серж и я устал от ZenGL.

Бывает. Все устают.

#2
21:09, 1 мая 2025

Вопрос. Эмулятор каждую инструкцию и каждый раз переводит код Денди в х86 асм код ?
Как итератор.

#3
22:24, 1 мая 2025

ronniko
> Чем именно ? Какой язык программирования ?
FPC/Lazarus или Delphi.

ronniko
> Эмулятор каждую инструкцию и каждый раз переводит код Денди в х86 асм код ?
обрабатывает каждую инструкцию, как инструкцию 6505.

  Если получится полноценно реализовать данный PPU, то думаю проблем с трансляцией кода не будет и можно будет сделать и транслятор, для исполнения на других архитектурах кода Nes/Dendy/Famicom.

#4
22:29, 1 мая 2025

А если вариант, перегнать весь код в х86 асм и потом запускать без эмуляции ?
Типа компилятор или что-то похожее на скриптовый язык.

#5
22:30, 1 мая 2025

nes, тебя опять отэмулировали. Долго будешь это терпеть?

#6
22:33, 1 мая 2025

aliskda
На самом деле я Дэндя.
Изображение

#7
22:40, 1 мая 2025

ronniko, PPU всё равно реализовывать надо будет. И помимо этого надо будет связать "работу процессора" с PPU.

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

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

#8
11:14, 10 мая 2025

Выпущена новая версия PZ_Nes. ;)
Извиняюсь, но пока только исходный код. Когда будет всё более-менее работать, буду делать релизы, чтоб можно было сразу потестировать.

Основные изменения:

- реализовано управление с клавиатуры.
- реализована поддержка джойстиков.
- множественные исправления PPU, а так же рефакторинг кода PPU и изменение реализации памяти PPU.
- исправления для CPU.
- более точные согласования PPU и CPU.
- изменение памяти Nes (теперь вся память распределяется по банкам).
- модернизация отладчика (в том числе, вывод видеопамяти теперь 32 байта, а не 16, для удобства просмотра видеопамяти).

В общем, кто желает, может попробовать, большая часть игр нулевого маппера должны идти (глюки так же могут быть, PPU ещё далеко не до конца реализован).

Успехов!

#9
14:46, 12 мая 2025

nes
> На самом деле я Дэндя.
Нет, nes, на самом деле ты - tes !

#10
0:13, 14 мая 2025

Плак, плак... Я надеялся на лучшее...

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

Тут походу и процессор надо делать лучше и с PPU разбираться. Один поток это всё не тянет.

  Правда, на Android это не совсем один поток... видео то на отдельном потоке работает. Может ещё из-за этого проблемы? Надо данные разделить, чтоб одно другого не ждало?

#11
16:39, 31 мая 2025

  Рассказал про технологию создания PPU. По сути реализация сложнее чем рассказ... Но донести информацию правильно всё равно сложно.
  Последние исходники пока не выложены. Там правки нужны для ZenGL, а я пока не хочу из-за мелочи менять версию, надо что-то ещё реализовать (я уже знаю что, но руки не доходят).

+ ютуб
+ рутуб
#12
22:18, 15 июня 2025

Выпущена новая версия -->PZ_Nes 0.10 <--

Теперь она содержит все комментарии в pz_ppu.pas и все комментарии в сопутствующем коде для PPU.

Изменения небольшие:

- улучшен код для PPU.
- ускорен код работы для PPU.
- исправлена работа части инструкций ЦП.
- добавлено обрезание фона и спрайтов в крайней левой позиции (если это надо в игре).

Основная работа производилась именно с PPU и производились тесты работы на Android. На Android код работал не очень хорошо, как выяснилось, проблема была с частым переключением текстур (видимо для мобильных систем это критично).

#13
20:23, 24 июня 2025

  Если вдруг кто заинтересован технологией создания PPU, то я ещё статью написал. Глядишь проще воспринять информацию будет.

ФлеймФорумПроЭкты

Тема в архиве.