Neutrino

rickgaiser rickgaiser
Dépôt créer le : 23/06/2023
Release du : 10/03/2026 v1.8.0
Forks: 11 Watcher: 0 224
Choisir une liste...
FR

neutrino

Émulateur de périphérique PS2 petit, rapide et modulaire

Conception

Un neutrino est une particule avec une masse presque nulle, et c'est ce que l'objectif principal de cet émulateur d'appareil est. Avoir près de 0 masse lors de l'émulation des dispositifs pour maximiser la compatibilité.

Neutrino n'a pas non plus d'interface utilisateur, mais il est destiné à être intégré comme moteur d'un frontend (interface utilisateur). Cela rend le neutrino beaucoup plus facile à entretenir, et permet de faire beaucoup plus d'applications en utilisant le neutrino comme moteur.

Avec neutrino tous les modules sont... modulaires. Ils sont dans un dossier séparé appelémodules. Cela permet à l'utilisateur d'ajouter des modules nouveaux et améliorés. Ce que les modules sont chargés est entièrement configurable en utilisant les fichiers de configuration de TOMLconfigdossier.

Environnement

Un environnement dans neutrino décrit ce que les modules IOP sont chargés et définit les caractéristiques de l'environnement. En neutrino il y a 3 environnements:

  • Environnement de démarrage (BE): environnement neutrino est chargé à partir (par uLE / ps2link / ...), contenant neutrino, fichiers de configuration et pilotes
  • Load Environment (LE): le chargeur.elf de neutrino reboots dans le LE, contenant des images de disque virtuel
  • Environnement d'émulation (EE): reboots ee core.elf de neutrino dans l'EE, dispositifs d'émulation

Pilote de sauvegarde (BSD)

Un pilote de sauvegarde fournit un emplacement de stockage pour stocker des images de disque virtuel. Par exemple des DVD, des HDD ou des MC. Les dispositifs de stockage de sauvegarde suivants sont pris en charge: Modèle PS2 de l'appareil Il y a eu une augmentation du nombre d'heures de travail. ÉBAUCHE + 70kxAutresxBloc du périphériqueusbÉchec USBxAutresxBloc du périphériqueusbSlimxAutresxBloc du périphériquemx4sioMMCE-SlimxAutresxSystème de fichiersmmceFAT + 70kxAutresxBloc du périphériquemx4sioFAT + 70kxAutresxSystème de fichiersmmceiLink / IEEE1394xAutresxBloc du périphériqueilinkTOUSxAutresxBloc du périphériqueudpbdUDFFS ANDxAutresxSystème de fichiersudpfsATA (DHD interne)xAutresxBloc du périphériqueata

Renseignements complémentaires:

  • Modèle PS2: Les anciens modèles FAT PS2 et le premier modèle PS2 mince (70k) ont le processeur PS1 MIPS R3000 original. Plus tard, les modèles PS2 minces ont un nouveau processeur avec 'DECKARD' émulant le MIPS R3000. C'est pourquoi il y a une différence de vitesse entre ces deux groupes de modèles PS2.

  • Vitesse: USB, MX4SIO et MMCE ont été testés avec neutrino v1.5.0. Les autres vitesses sont basées sur des essais plus anciens et devraient servir d'indication. Pour une bonne émulation du lecteur DVD ps2 une vitesse d'au moins 2,2 Mo/s est nécessaire. Plus la vitesse est lente, plus la vidéo risque de bégayer. En raison des bugs de jeu, certains jeux ne fonctionneront même pas si l'appareil est trop lent.

  • Appareil comp.: combien d'appareils fonctionneront avec neutrino. Par exemple, la plupart des clés USB fonctionnent, mais certaines (principalement les clés USB3.0) ne fonctionnent pas. Avec mx4sio, de nombreuses cartes SD ne sont pas compatibles, etc... Ne tenez pas ces valeurs pour des faits, elles sont basées sur mes observations personnelles et devraient vous donner une indication sur les appareils qui correspondraient à votre besoin.

  • Type: Comment le périphérique s'expose à la PS2 : comme système de fichiers avec des fichiers qui peuvent être ouverts/fermés lus et écrits. Ou comme un dispositif de blocage avec des secteurs de 512octets.

  • BSD: Nom du BSD à utiliser avec la ligne de commande neutrino, comme :-bsd=ilink

Dispositifs de blocage

Pour les périphériques de bloc, PS2 utilisera ses propres pilotes de système de fichiers et de partition.

Les schémas de partitionnement suivants sont pris en charge:

  • MBR (Master Boot Record)
  • GPT (Tableau de répartition GUID)

Les systèmes de fichiers suivants sont pris en charge :

  • FAT32, accessible commemass:<file>.iso
  • exFat, accessible commemass:<file>.iso
  • HDLoader, accessible commehdl:<file>,hdl:<file>.iso,hdl:<part>ouhdl:<part>.iso

Notez que le magasin d'appui HDLoader est actuellement en lecture libre, et limité à seulement émuler le DVD.

Fragmentation du dispositif de blocage

Pendant la charge neutrino demandera tous les «fragments» où des images de disque virtuel sont situés. Après le redémarrage dans l'environnement d'émulation il n'y a plus de système de fichiers disponible, au lieu de neutrino accédera aux secteurs du périphérique de bloc directement en utilisant une table de fragment. Amaximum de 64 fragmentsest pris en charge pour le total combiné des images de disque virtuel dont vous avez besoin. Si par exemple vous avez 1 DVD virtuel et 1 MC virtuel (c'est déjà 2 fragments), alors ils ne peuvent pas avoir plus de 64 fragments combinés. Si votre lecteur (FAT32/exFat) est plus fragmenté, vous aurez besoin de défragmenter votre lecteur (les détails ne sont pas couverts ici).

Notez que cette limitation ne s'applique qu'au type "block device", et non au type "file system", même si elle peut être la carte uSD. MX4SIO par exemple est utilisé comme un dispositif de blocage avec la limitation de 64 fragments. Mais lors de l'insertion de la même carte uSD formatée exFat dans un appareil MMCE, cette limitation n'existe pas, le CPU sur le périphérique MMCE gérera complètement le système de fichiers exFat.

Emulation CD/DVD

Les pilotes d'émulation CD/DVD suivants sont pris en charge:

  • Non: utiliser les CD / DVD d'origine dans le lecteur optique
  • ESR: en utilisant des DVD patchés ESR dans le lecteur optique
  • Fichier : utilisant un fichier iso de la boutique de sauvegarde

Emulation de DDH ATA

Les pilotes d'émulation HDD suivants sont pris en charge:

  • Non: utilisation du disque dur ATA dans la PS2
  • Fichier : utilisant un fichier d'image HDD virtuel depuis le magasin de sauvegarde

Instructions d'utilisation

Neutrino est une application en ligne de commande. Pour tirer le meilleur parti de neutrino, vous devrez l'exécuter depuis la ligne de commande, par exemple en utilisantps2linketps2client.

Vous pouvez également utiliser une interface graphique plus conviviale à partir d'un des projets tiers (voir ci-dessous), mais avec un jeu de fonctionnalités limité.

Instructions d'utilisation de la ligne de commande :

Usage: neutrino.elf options

Options:
  -bsd=<driver>     Backing store drivers (optional, auto-detected from path prefix), supported are:
                    - no     (uses cdvd)
                    - ata    (block device)
                    - usb    (block device)
                    - mx4sio (block device)
                    - udpbd  (block device)
                    - udpfs  (file system)
                    - ilink  (block device)
                    - mmce   (file system)

  -bsdfs=<driver>   Backing store fileystem drivers used for block device, supported are:
                    - exfat (default)
                    - hdl   (HD Loader)
                    - bd    (Block Device)
                    NOTE: Used only for block devices (see -bsd)

  -dvd=<mode>       DVD emulation mode, supported are:
                    - no (default)
                    - esr
                    - <file>

  -ata0=<mode>      ATA HDD 0 emulation mode, supported are:
                    - no (default)
                    - <file>
                    NOTE: only both emulated, or both real.
                          mixing not possible
  -ata0id=<mode>    ATA 0 HDD ID emulation mode, supported are:
                    - no (default)
                    - <file>
                    NOTE: only supported if ata0 is present
  -ata1=<mode>      See -ata0=<mode>

  -mc0=<mode>       MC0 emulation mode, supported are:
                    - no (default)
                    - <file>
  -mc1=<mode>       See -mc0=<mode>

  -elf=<file>       ELF file to boot, supported are:
                    - auto (elf file from cd/dvd) (default)
                    - <file>

  -gc=<compat>      Game compatibility modes, supported are:
                    - 0: IOP: Fast reads (sceCdRead)
                    - 1: dummy
                    - 2: IOP: Sync reads (sceCdRead)
                    - 3: EE : Unhook syscalls
                    - 5: IOP: Emulate DVD-DL
                    - 7: IOP: Fix game buffer overrun
                    Multiple options possible, for example -gc=23

  -gsm=v:c          GS video mode

                    Parameter v = Force video mode to:
                    -         : don't force (default)  (480i/576i)
                    - fp1     : force 240p/288p - auto PAL/NTSC
                    - fp2     : force 480p/576p - auto PAL/NTSC
                    - 1080ix1 : force 1080i width x1, height x1 (very small!)
                    - 1080ix2 : force 1080i width x2, height x2
                    - 1080ix3 : force 1080i width x3, height x3

                    Parameter c = Compatibility mode:
                    -      : no compatibility mode (default)
                    - 1    : field flipping type 1 (GSM/OPL)
                    - 2    : field flipping type 2
                    - 3    : field flipping type 3

                    Examples:
                    -gsm=fp2      - recommended mode
                    -gsm=fp2:1    - recommended mode, with compatibility 1
                    -gsm=1080ix2

  -cwd=<path>       Change working directory

  -cfg=<file>       Load extra user/game specific config file (without .toml extension)

  -dbc              Enable debug colors
  -logo             Enable logo (adds rom0:PS2LOGO to arguments)
  -qb               Quick-Boot directly into load environment

  --b               Break, all following parameters are passed to the ELF

Usage examples:
  neutrino.elf -dvd=usb:path/to/filename.iso
  neutrino.elf -dvd=mx4sio:path/to/filename.iso
  neutrino.elf -dvd=mmce:path/to/filename.iso
  neutrino.elf -dvd=ilink:path/to/filename.iso
  neutrino.elf -dvd=udpbd:path/to/filename.iso
  neutrino.elf -dvd=udpfs:path/to/filename.iso
  neutrino.elf -dvd=ata:path/to/filename.iso
  neutrino.elf -bsd=ata -bsdfs=hdl -dvd=hdl:filename.iso
  neutrino.elf -bsd=udpbd -bsdfs=bd -dvd=bdfs:udp0p0

Serveur PC UDPFS / UDPBD

Lespc/udpfs_server.pyscript sert des fichiers et/ou des périphériques de blocage à la PS2 sur UDP (Ethernet).

Exigences

  • Python 3(pas de colis supplémentaires requis pour l'utilisation de base)
  • lz4— facultatif, requis uniquement pour.zso(LZ4-comprimé ISO) support:
    pip install lz4
    
  • libchdr0— nécessaires pour.chd(CHD comprimé ISO) support:
    apt install libchdr0
    
    Construire à partir de la source: https://github.com/rtissera/libchdr

Lespc/compressed_iso/répertoire est un module local livré avec le serveur; aucune installation n'est nécessaire.

Utilisation

# Share a USB drive (or any block device) with many games — typical UDPBD use case
python pc/udpfs_server.py -b /dev/sdX          # Linux
python pc/udpfs_server.py -b \\.\PhysicalDriveX  # Windows

# Share a single disk image (UDPBD mode)
python pc/udpfs_server.py -b game.iso

# Share a directory as a filesystem (UDPFS mode)
python pc/udpfs_server.py -d /path/to/ps2games

# Share both a block device and a directory
python pc/udpfs_server.py -b /dev/sdX -d /path/to/ps2games

# With transparent decompression (.zso/.cso/.chd files appear as .iso)
python pc/udpfs_server.py -d /games --enable-compression

# Read-only mode
python pc/udpfs_server.py -b /dev/sdX --read-only

Support de compression

Lorsque--enable-compressionest passé, le serveur décompresse de manière transparente les images ISO compressées:

Format Extension Compression Extra dépendance - Non. - Non. ZSO.zsoLZ4pip install lz4CSO.csoAucun CHD.chdzlib/lzma/huff/flacapt install libchdr0

Chargeurs tiers

Les projets tiers suivants utilisent neutrino:

Auteur - Oui. XEB+ neutrino Launcher Pluginsynchronisation NHDDL* pcm720 RETROLauncherBoon Tobias OSD-XMBHiro Tex PSBBN+BBNLCosmicScale + pcm720

Ajouter votre projet ici ? Envoyez-moi un rapport.

Contributeurs GitHub

fjtrujy
fjtrujy
4 contributions
rickgaiser
rickgaiser
393 contributions
AKuHAK
AKuHAK
9 contributions
pcm720
pcm720
7 contributions
israpps
israpps
3 contributions
MegaBitmap
MegaBitmap
2 contributions
PhoenixVX
PhoenixVX
1 contributions
qnox32
qnox32
1 contributions