Recent

Author Topic: PZ_Nes emulator  (Read 1382 times)

Seenkao

  • Hero Member
  • *****
  • Posts: 711
    • New ZenGL.
PZ_Nes emulator
« on: May 01, 2025, 10:21:55 pm »
Привет!

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

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

Делал всё сам, но понятно дело что и подсматривал в другие эмуляторы и пользовался документацией.  :)

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

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

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

Успехов! :D

---------------------------------------------------------------
Google translate:
Hello!

I released a preliminary, already working version of -->PZ_Nes 0.0.7.<-- (Pascal ZenGL Nes) Source code only!
The latest -->ZenGL<-- is required to run. Licensing: MIT + ZLib.

Unpack ZenGL. Place the PZ_Nes project next to it. Compile (FPC/Lazarus or Delphi).

I did everything myself, but it’s clear that I also looked at other emulators and used documentation. :)

There are several games in the folder that run. In the main module, you can change the game and recompile. Many of the games will have a glitch in the graphics (we are still deciding how to fix everything). Well, and without sound.
There is control. It is possible to debug Nes applications (more viewing than debugging).

The PPU technology is our own development. Testing. If someone suddenly has a desire to stick something like this into their emulator, then refrain for now. Many problems are not solved. And this technology will be incompatible with all other emulators.

If I don't abandon the emulator, I'll eventually try to release it on all supported ZenGL platforms.

Good luck! :D


Video youtube (Rus):
https://youtu.be/clU4Viw--mQ
https://youtu.be/k4-0WTgrJ_c
https://youtu.be/uup4g3sKWEU
https://youtu.be/iTq5d-fv1tE

Video Rutube (Rus, the same ones):
https://rutube.ru/video/b71b439d424ee828e621a67a4477c3e4/
https://rutube.ru/video/453e6f9c7e99fad6fa8d81f85e734300/
https://rutube.ru/video/b44b3cd010ff1a2a588d23982f8b53b1/
https://rutube.ru/video/5f45624739c10e162986a1a002c70698/
« Last Edit: May 01, 2025, 10:24:34 pm by Seenkao »
Rus: Стремлюсь к созданию минимальных и достаточно быстрых приложений.

Eng: I strive to create applications that are minimal and reasonably fast.
Working on ZenGL

Zoran

  • Hero Member
  • *****
  • Posts: 1949
    • http://wiki.lazarus.freepascal.org/User:Zoran
Re: PZ_Nes emulator
« Reply #1 on: May 01, 2025, 10:39:35 pm »
This is nice to see! I wish you success in achieving the emulation accuracy!
Swan, ZX Spectrum emulator https://github.com/zoran-vucenovic/swan

Seenkao

  • Hero Member
  • *****
  • Posts: 711
    • New ZenGL.
Re: PZ_Nes emulator
« Reply #2 on: May 01, 2025, 10:45:42 pm »
Благодарю!
Я, кстати, уже смотрел ваш эмулятор. И немного потестировал. :)
Надо будет вспомнить и мне ZX-Spectrum.
Rus: Стремлюсь к созданию минимальных и достаточно быстрых приложений.

Eng: I strive to create applications that are minimal and reasonably fast.
Working on ZenGL

Seenkao

  • Hero Member
  • *****
  • Posts: 711
    • New ZenGL.
Re: PZ_Nes emulator
« Reply #3 on: May 10, 2025, 10:12:26 am »
Выпущена новая версия PZ_Nes. ;)
Извиняюсь, но пока только исходный код. Когда будет всё более-менее работать, буду делать релизы, чтоб можно было сразу потестировать.

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

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

Успехов!
--------------------------------------------------

Google translate:
A new version of PZ_Nes has been released. ;)
Sorry, but so far only the source code. When everything is more or less working, I will make releases so that we can test it right away.

Major changes:
Quote
- keyboard control has been implemented.
- joystick support has been implemented.
- multiple PPU fixes, as well as PPU code refactoring and PPU memory implementation changes.
- CPU fixes.
- more precise PPU and CPU alignment.
- Nes memory changes (all memory is now distributed across banks).
- debugger upgrade (including video memory output is now 32 bytes instead of 16, for easier viewing of video memory).

In general, anyone who wants to can try it, most games with a zero mapper should run (there may also be glitches, PPU is still far from fully implemented).

Good luck!
Rus: Стремлюсь к созданию минимальных и достаточно быстрых приложений.

Eng: I strive to create applications that are minimal and reasonably fast.
Working on ZenGL

Ñuño_Martínez

  • Hero Member
  • *****
  • Posts: 1209
    • Burdjia
Re: PZ_Nes emulator
« Reply #4 on: May 15, 2025, 02:29:40 pm »
I wasn't a NES user but it's cool to see this kind of projects.

Keep up the good work!
Are you interested in game programming? Join the Pascal Game Development community!
Also visit the Game Development Portal

Seenkao

  • Hero Member
  • *****
  • Posts: 711
    • New ZenGL.
Re: PZ_Nes emulator
« Reply #5 on: June 03, 2025, 01:42:31 pm »
Keep up the good work!
;)

Если кому-то интересно, то я пробежался по тому, как работает технология эмуляции PPU. Видео ниже, но только на русском языке. Как я и писал ранее, технология PPU это моя собственная разработка, она не подойдёт ни к одному из эмуляторов. Для внедрения её в другие эмуляторы, их придётся переделывать. Извиняюсь, код выложу позже, хотя основа уже есть в выложенном коде.


Google translate:
If anyone is interested, I ran through how the PPU emulation technology works. The video is below, but only in Russian. As I wrote earlier, the PPU technology is my own development, it will not work with any of the emulators. To implement it into other emulators, they will have to be redesigned. Sorry, I will post the code later, although the basis is already in the posted code.

https://youtu.be/2RCBzWLWSkM
Rus: Стремлюсь к созданию минимальных и достаточно быстрых приложений.

Eng: I strive to create applications that are minimal and reasonably fast.
Working on ZenGL

Seenkao

  • Hero Member
  • *****
  • Posts: 711
    • New ZenGL.
Re: PZ_Nes emulator
« Reply #6 on: June 15, 2025, 09:15:28 pm »
Выпущена новая версия -->PZ_Nes 0.10 <--

Теперь она содержит все комментарии в pz_ppu.pas и все комментарии в сопутствующем коде для PPU. Но пока только на русском.  :(
Изменения небольшие:
Quote
- улучшен код для PPU.
- ускорен код работы для PPU.
- исправлена работа части инструкций ЦП.
- добавлено обрезание фона и спрайтов в крайней левой позиции (если это надо в игре).
Основная работа производилась именно с PPU и производились тесты работы на Android. На Android код работал не очень хорошо, как выяснилось, проблема была с частым переключением текстур (видимо для мобильных систем это критично).

Так же произвёл разбор разработки PPU. Извиняюсь, видео только на русском. На следующей неделе выйдет статья на habr.com, опять же на русском, но думаю текстовый вариант будет проще прочитать, если кого-то заинтересует.

--------------------------------------
Google translate:
A new version of -->PZ_Nes 0.10 <--

Now it contains all comments in pz_ppu.pas and all comments in the accompanying code for PPU. But for now only in Russian. :(
Small changes:
Quote
- improved code for PPU.
- accelerated code for PPU.
- fixed operation of some CPU instructions.
- added background and sprite cropping in the leftmost position (if needed in the game).
The main work was done with PPU and tests were performed on Android. On Android the code did not work very well, as it turned out, the problem was with frequent texture switching (apparently this is critical for mobile systems).

I also analyzed the development of PPU. Sorry, the video is only in Russian. Next week there will be an article on habr.com, again in Russian, but I think the text version will be easier to read if anyone is interested.

https://youtu.be/2RCBzWLWSkM

Good luck!!! ;)
Rus: Стремлюсь к созданию минимальных и достаточно быстрых приложений.

Eng: I strive to create applications that are minimal and reasonably fast.
Working on ZenGL

 

TinyPortal © 2005-2018