Win3x.Org

Windows & DOS Community

JadeNES

Post Reply   Page 1 of 1  [ 5 posts ]
Author Message
Matthias
Post subject: JadeNES
Posted: 20 Oct 2022 02:41
Membre d'honneur
User avatar
Offline
 
Posts: 1632
Joined: 26 Mar 2008 23:05
Retro PC: Fujitsu Siemens Liteline
 
Bonjour,

Projet Émulateur JadeNES

Après 15 années d'études personnelles ou scolaires dans le monde de la programmation, et après l'échec cuisant de 3xNES posté sur ce forum, que j'avais commencé en 2014, j'ai décidé de commencer un nouveau projet nommé JadeNES. :) Il s'agit d'un émulateur rédigé en Visual Basic .NET 2022, créé en Mars de cette année.

Bien plus convaincant que son prédécesseur, celui-ci implémente actuellement 90% du CPU de la NES, lequel tourne impeccablement. :mrblue:

En revanche, tout n'est pas encore implémenté, et je suis en train de coder actuellement le PPU de la NES, et le rendu dans la fenêtre (grâce aux librairies GDI intégrées à l'environnement de Visual Basic).

[ img ]

Ensuite, il ne me restera plus qu'à implémenter le processeur sonore (si je trouve une librairie adéquate), le I/O (manettes), et les MMC.

:arrow: Aucun fichier binaire n'est téléchargeable, ni le code source d'ailleurs, mais cela ne saurait tarder.

Jusqu'ici, j'ai créé tout un tas de projets Visual Basic ou C++ ayant essayé d'émuler la NES. Par exemple, je peux citer des noms comme SystemNES, 3xNES, EmptyNES, ShaïNESS, entre autres, mais je pense que celui-ci va être le premier essai vraiment concluant. Je vais peut-être le porter sur une autre plateforme, comme une ancienne version de VB pour pouvoir l'exécuter sur des anciennes versions de Windows, ou encore utiliser DirectX comme moteur graphique et sonore (avec XNA). Mais je m'emballe car cela viendra plus tard, je le fais uniquement sur VB dans un but expérimental.

Merci d'avance pour votre intérêt.

_________________

♦ Cliquez ici, vous aurez l'heure céans.
♦ Mon blog officiel.


Top
Profile Quote
Big Monstro
Post subject: Re: JadeNES
Posted: 20 Oct 2022 20:37
Administrateur
User avatar
Offline
 
Posts: 4181
Joined: 27 Jun 2003 15:15
Retro PC: 80486 DX2/66, MS-DOS & Windows
 
Matthias wrote: *  20 Oct 2022 02:41
Il s'agit d'un émulateur rédigé en Visual Basic .NET 2022 (...) Bien plus convaincant que son prédécesseur, celui-ci implémente actuellement 90% du CPU de la NES, lequel tourne impeccablement.
Emulation effective à 90% ? Vivement qu'on puisse essayer cet émulateur :D
Et vivement aussi le portage pour MS-DOS, Windows 3.1x, Windows 9x ou Windows NT 3.51 / 4.0. Ecrit en Visual Basic ? Nous avons justement ce qu'il faut : viewtopic.php?t=154


Top
Profile Quote
Matthias
Post subject: Re: JadeNES
Posted: 20 Oct 2022 22:57
Membre d'honneur
User avatar
Offline
 
Posts: 1632
Joined: 26 Mar 2008 23:05
Retro PC: Fujitsu Siemens Liteline
 
Ah ouais j'avais pensé à porter sur des vieilles configurations :mrblue:

Mais je pensais plutôt à Windows XP. Des émulateurs comme BasicNES ou Mercury Project v0.02 existent déjà, et émulent bien la NES.

Après, pourquoi ne pas porter BasicNES vers une version 16 bits de Visual Basic... J'ignore si quelqu'un l'a déjà fait.

_________________

♦ Cliquez ici, vous aurez l'heure céans.
♦ Mon blog officiel.


Top
Profile Quote
Matthias
Post subject: Re: JadeNES
Posted: 24 Oct 2022 21:05
Membre d'honneur
User avatar
Offline
 
Posts: 1632
Joined: 26 Mar 2008 23:05
Retro PC: Fujitsu Siemens Liteline
 
Je rencontre quelques soucis avec la création de cet émulateur.

En effet, il y a quelques routines entre le CPU et le PPU qui déconnent un paquet. Lors de l'ouverture d'une ROM, les banques de données sont correctement chargées (l'émulateur ne prend en charge que le mapper #0 pour l'instant), que ce soit le(s) programme(s) de la NES (PRG-ROM), ou les Pattern Tables (CHR-ROM).

Cependant, après le lancement de l'émulation, au moment de modifier les registres PPU (aux adresses $2000 - $2007), il semblerait que l'écriture dans la mémoire du PPU (VRAM) ne soit pas effectuée, les Name Tables (0, 1, 2, 3) restant totalement vides, inchangées. La palette n'est pas modifiée non plus (palettes des décors et des sprites).

J'ai partiellement implémenté le rendu du PPU (uniquement les décors), mais cela n'affiche qu'un écran gris avec un FPS misérable (environ 15), et même l'écriture de la Sprite RAM n'aboutit à rien, les 256 octets alloués aux propriétés des sprites à l'écran semblent tous rester aux valeurs 0xFF ou 0x00.

Je me demande si je ne devrais pas continuer à implémenter le rendu (je me base sur le code de Mercury Project pour le rendu, afin de convertir les valeurs contenues dans la VRAM en pixels affichés dans la fenêtre du logiciel), j'ai compris le principe, mais je préfère me baser sur un code source existant, plutôt que de réinventer la roue. Pour voir s'il fonctionne, je vais essayer de modifier les valeurs de la VRAM à la volée (avec des valeurs générées au hasard) pour voir ce que cela donne (bouillie de tiles à l'écran à prévoir).

Il doit y avoir quelques lacunes dans le Core de mon émulateur NES, ou des routines du VBlank. Si quelqu'un suffisamment calé en Visual Basic ou en émulation de processeurs des années 80 pouvait venir m'aider, je lui serais reconnaissant. En attendant, je vais voir comment les autres émulateurs font (quels opcodes sont appelés lorsqu'une Name Table est modifiée, par exemple).

Matthias

_________________

♦ Cliquez ici, vous aurez l'heure céans.
♦ Mon blog officiel.


Top
Profile Quote
Matthias
Post subject: Re: JadeNES
Posted: 25 Jan 2023 23:19
Membre d'honneur
User avatar
Offline
 
Posts: 1632
Joined: 26 Mar 2008 23:05
Retro PC: Fujitsu Siemens Liteline
 
Bon, voilà, j'ai beaucoup avancé le schmilblick, mais bon. :mrblue:

[ img ]

Il reste encore des bugs à corriger. J'en suis à la 0.7a.

_________________

♦ Cliquez ici, vous aurez l'heure céans.
♦ Mon blog officiel.


Top
Profile
Display: Sort by: Direction:
Post Reply   Page 1 of 1  [ 5 posts ]
Return to “Projets en cours”
Jump to: