Entii-for-workcubes

Wack0 Wack0
Dépôt créer le : 26/02/2025
Release du : 23/02/2026 v20250329
Forks: 20 Watcher: 0 727
Choisir une liste...
FR

Visit our Discord server

Windows NT pour GameCube/Wii

Les systèmes suivants sont pris en charge:

  • Jeu de Nintendo
  • Nintendo Wii
    • Wii Mini nécessite une carte SD hardmod (pour le moment)
  • L'Union européennevWii seulement pour le moment)

Les systèmes suivants sont supportés théoriquement, mais non testés en raison de la rareté de ce matériel:

  • Comité d'évaluation des voies navigables
  • Cartes Cortado

Les systèmes suivants ne seront jamais pris en charge:

  • le matériel de développement dauphin précoce avec seulement 4 Mo de RAM utilisable

Conducteurs présents

  • Contrôleur d'interruption Flipper (en HAL)
  • Flipper Video Interface console tampon (YUV XFB) pour le firmware ARC et HAL
  • Flipper GPU RGB framebuffer sous NT (écrire à EFB sous configuration texte, écrire à texture sous GDI; copier à XFB sur vblank interruption)
  • Interface série Flipper (ports de contrôleur Gamecube), prenant en charge les périphériques suivants:
    • GameCube ASCII clavier controller, plus des variantes anglaises/européennes inédites (découvertes en inversant Phantasy Star Online); ce dernier sont complètement non testés, le premier n'a pas été testé sur le matériel réel
    • Contrôleur GameCube, avec les mappings suivants:
      • Sous le firmware ARC: gauche les cartes analogiques et d-pad vers le haut / vers le bas, A boutons cartes à entrer, B boutons cartes à échapper, X boutons cartes à la lettre 'S'
      • Sous NT text setup: gauche analogique stick et d-pad cartes à haut / vers le bas, c-stick cartes à page haut / vers le bas, A boutons cartes à entrer, B boutons cartes à échapper, X boutons cartes à F8, Y boutons cartes à la lettre 'C', Z boutons cartes à la lettre 'L'
      • Sous NT GDI: gauche analogique bâton déplace la souris, Un bouton cartes à gauche bouton de la souris, B boutons cartes à droite bouton de la souris, L+R ensemble cartes à ctrl+alt+del, c-stick permet de choisir un code de numérisation de clavier (1-9, 0, a-z), le bouton X confirme le code de numérisation sélectionné. Les nombres sont d'abord dans la liste de sorte que les boîtes de texte numériques (comme entrer la clé CD) fonctionne toujours.
    • N64 Randnet clavier, complètement non testé ainsi peut avoir des problèmes
    • N64 souris (sous NT seulement), complètement non testé ainsi peut avoir des problèmes
    • N64 contrôleur (complètement non testé ainsi peut avoir des problèmes), avec les cartes suivantes:
      • Sous le firmware de l'ARC: gauche analogique bâton et d-pad cartes vers le haut / vers le bas, A bouton cartes à entrer, B bouton cartes à échapper, Z bouton cartes à la lettre 'S'
      • Sous NT text setup: gauche analogique stick et d-pad cartes vers le haut / vers le bas, c-stick cartes vers la page vers le haut / page vers le bas, A boutons cartes à entrer, B boutons cartes à échapper, Z boutons cartes à F8, L déclencher cartes à la lettre 'C', R déclencher cartes à la lettre 'L'
      • Sous NT GDI: gauche analogique bâton déplace souris, Un bouton cartes à gauche souris bouton, B boutons cartes à droite souris bouton, L+R ensemble cartes à ctrl+alt+del, c-down et c-up permet de choisir un clavier scancode (1-9, 0, a-z), bouton de démarrage confirme le scancode sélectionné. Les nombres sont d'abord dans la liste de sorte que les boîtes de texte numériques (comme entrer la clé CD) fonctionne toujours.
  • Interface externe Flipper (bus SPI), prenant en charge les appareils suivants:
    • RTC
    • Gecko USB (pour débogueur du noyau seulement)
    • SD Gecko ou compatible
    • IDE-EXI ou compatible (n'a pas été testé sur du matériel réel)
  • CIP IOP de Vegas
  • Contrôleur SDMC de Vegas (via IOS)
  • Contrôleurs Vegas USB (OHCI/EHCI) (via IOS), supportant les appareils suivants:
    • Clavier USB
    • Souris USB
    • Stockage de masse USB (il y a actuellement des problèmes, certains périphériques peuvent ne pas fonctionner)
    • Hotplugging périphériques USB n'est pas pris en charge. Pour utiliser un périphérique USB, il doit être branché avant de lancer le firmware ARC.

Compatibilité du logiciel

NT 3.51 RTM et plus. NT 3.51 bêtas (construire 944 et ci-dessous) aura besoin de correctifs du noyau pour fonctionner en raison de bogues de détection du processeur. NT 3.5 ne sera jamais compatible, car il ne prend en charge que PowerPC 601. (Les caractéristiques supplémentaires de suspension/hibernation dans NT 3.51 PMZ pourraient être rendues compatibles en théorie, mais dans la pratique, il faudrait que tous les conducteurs supplémentaires soient à nouveau mis en œuvre.)

Installation

Préliminaire

  • Grab binaires de la page de sortie, extraire sur carte SD (ou appareil EXI-IDE)
  • Copier une norme NT 3.51 ou 4.0 ISO poursd:\nt\disk00.iso
  • Créez une image disque brute de la taille que vous voulez àsd:\nt\disk00.img- J'utiliseqemu-img create disk00.img 2G, modifier la taille selon le cas. Rappelez-vous que la taille maximale du fichier sur une partition FAT32 est de 4 Go.
  • Sur une GameCube, chargerarcldr_dol.dolde Swiss; sur Wii/vWii, chargearcldrde la chaîne Homebrew.

Disque de partitionnement

  • Lorsque vous arrivez au menu firmware ARC, allez àRun firmware setup, alorsRepartition disk or disk image for NT installation.
  • Sélectionnez l'image disque que vous avez créée plus tôt.
  • Confirmer l'opération de partition avec Y (sur clavier), bouton X (sur contrôleur GameCube) ou bouton Z (sur contrôleur N64)
  • Une fois terminé, le partitionneur demandera àPress any key to restart. Cela devrait soit redémarrer votre système ou retourner à chargeur où vous pouvez chargerarcldrencore.

Installation NT

  • ChoisirRun NT setup from cd00. .
    • Vous recevrez le messageSetup could not determine the type of computer you have.
    • ChoisirOther(option sélectionnée par défaut), appuyez simplement surEnter(ou un bouton) quand demandé pour le disque de support matériel.
    • Choisissez le HAL dans la liste, il n'y a actuellement qu'une seule option :Nintendo GameCube, Wii and Wii U (vWii).
  • Ensuite vous recevrez le messageSetup could not determine the type of one or more mass storage drivers installed in your system. Au moins deux conducteurs doivent être chargés à ce stade. .
    • Pour charger un pilote, appuyez surS(bouton X sur le contrôleur GameCube, bouton Z sur le contrôleur N64) pour choisir un pilote, choisissezOtherdans la liste, appuyezEnter(Un bouton) sur demande pour le disque support matériel, et choisissez le pilote. .
      • Nintendo Wii SD Slot (via IOS) [Disk Images]est nécessaire lors de l'utilisation de la fente de carte SD avant sur une Wii ou Wii U
      • Nintendo Wii USB (via IOS)est nécessaire lors de l'utilisation d'un périphérique USB (clavier, souris ou stockage de masse) sur une Wii ou Wii U
      • Nintendo GameCube Controller Portsest nécessaire lors de l'utilisation de dispositifs branchés dans les ports de contrôleur GameCube sur un GameCube ou Wii
      • SD Gecko or IDE-EXI and Compatible [Disk Images]est nécessaire lors de l'utilisation de dispositifs SD Gecko (ou compatible) ou IDE-EXI (ou compatible) dans les slots de cartes mémoire GameCube sur une GameCube ou Wii, ou les ports série présents sous une GameCube
    • Pour simplifier cela: sur une GameCube vous aurez besoin seulement des deux derniers; sur une Wii U vWii vous aurez besoin seulement des deux premiers, et sur une Wii vous aurez besoin des deux premiers et peut-être les deux derniers selon si vous utilisez / voulez utiliser les ports de contrôleur GameCube / fentes de carte mémoire ou non.
  • Vous recevrez le messageSetup could not determine the type of video adapter installed in the system. ChoisirOtherdans la liste, appuyezEntersur demande pour le disque de support matériel, et choisissez l'option correcte en fonction de l'OS que vous installez. .
    • Cette liste comporte deux options;ArtX Flipper, ATI Vegas, AMD Bollywood (NT 4)est pour NT 4,ArtX Flipper, ATI Vegas, AMD Bollywood (NT 3.x)est pour NT 3.51.
  • NT va démarrer et la configuration du texte va démarrer. Passez par la configuration du texte.
  • SousSetup has determined that your computer contains the following hardware and software components, changementKeyboarddeUnknownàXT, AT or Enhanced Keyboard (83-104 keys)etPointing DevicedeUnknownàNo Mouse or Other Pointing Device.
  • Choisissez leC:lecteur de la liste de partition. Si vous avez choisi de créer une partition NT de taille 2 Go ou moins, elle doit être formatée.
  • Si vous avez choisi de créer une partition NT de plus de 2 Go dans la taille, les erreurs seront trouvées par le processus d'examen de disque qui nécessitera un redémarrage. Vous devrez redémarrer dans le firmware de l'ARC depuis Swiss ou Homebrew Channel et suivre les étapes "Installer NT" pour revenir à ce point. .
    • Lors de la deuxième tentative, l'examen sur disque réussira, alors il suffit de choisir leC:partition à nouveau dans le sélecteur de partition de configuration de texte NT.
  • Passez par le reste du texte NT et la configuration graphique comme normale.

Problèmes connus

  • Le système peut parfois s'accrocher au redémarrage.
  • Il y a des problèmes avec certains périphériques de stockage de masse USB.
  • Le pilote GDI utilise un code lent non optimisé pour copier le tampon GDI bitmap vers le tampon de texture GPU.
  • Le firmware ARC et les pilotes NT supportent exFAT pour les images de disque sur un périphérique carte SD/EXI-IDE, mais le chargeur ne supporte pas actuellement exFAT pour charger le firmware ARC proprement dit.
  • Le chargeur ne prend actuellement pas en charge le chargement du firmware ARC à partir d'un périphérique de stockage de masse USB.
  • Soyez conscient que le bus EXI est plus lent que les autres interfaces de disque, donc utiliser SD Gecko/EXI-IDE provoque des ralentissements. Ceci est le plus remarquable lors de l'installation de NT sur GameCube où c'est la seule option disponible.

Construction de micrologiciels ARC

Vous avez besoin de devkitPPC. En outrelibgcc.apourpowerpcledoivent être présents dansarcfw/gccle. Si vous avez besoin de trouver un, il devrait être présent sur n'importe quel miroir Void Linux, le nom de fichier actuel à rechercher à partir de 2024-07-12 estcross-powerpcle-linux-gnu-0.34_1.x86_64.xbps- décompresser parzstdcat cross-powerpcle-linux-gnu-0.34_1.x86_64.xbps -o cross-powerpcle-linux-gnu-0.34_1.x86_64.tar, puis retirer le fichier de la boule de goudron:usr/lib/gcc/powerpcle-linux-gnu/10.2/libgcc.a.

  • AssurerDEVKITPPCvariable d'environnement est défini à votre répertoire devkitPPC, habituellement/opt/devkitpro/devkitPPC
  • Construisez le chargeur de firmware ARC :cd arcldr ; make -f Makefile.wii ; make -f Makefile.gc ; cd ..
  • Construisez la petite libc endienne :cd arcfw/baselibc ; make ; cd ../..
  • Construisez le firmware ARC lui-même :cd arcfw; make ; cd ..

Bâtiment HAL/conducteurs

Vous avez besoinpeppc. En outre, le powerpc libs de laNT4 DDK(ddk/lib/ppc/free/*.lib) doit être présent danslib. Le reste de la chaîne d'outils (VC6 PPC CE compilateur croisé utilisé pour le préprocesseur C pour asm, comme défini multi-ligne sont manipulés incorrectement par gcc cpp; assembleur PASM.EXE avec une seule branche patchée pour sauter les "instructions dump"; compilateur de ressources et linker de MSVC 4.2, et ses dépendances;SPLITSYM.EXEde NT 3.51 DDK à diviser les symboles de débogage COFF des exécutables) est présent dansmsvc-ppcrépertoire.

Pour construire le pilote GDI NT 3.5xfpgx35dllvous avez aussi besoin du powerpcwinsrv.libd'après NT 3.51 DDK.

Les en-têtes sont inclus et viennent de différents endroits avec de légères modifications pour travailler avec cette chaîne d'outils, ou pour des raisons de compatibilité en arrière:

  • nt4/sdkNT2 NT2 NT2 RT RT RT RT RT RT RT RT RT RT RT RT RT RT RT RT RT RT RT RT RT RT RT RT
  • nt4/ddk- NT4 DDK (y compris tous les en-têtessrc/*/incrépertoires)
  • nt4/crt- VC++ 4.0 (en-têtes CRT)
  • nt4/hal- en raison de l'absence d'une décharge publique, ce dossier comprend les en-têtes qui ont des preuves suggérant qu'ils ont été inclus dans le halkit NT4 (moinsnthal.hqui est dans le dossier source hal, et a été modifié pour permettre la compatibilité en arrière). Certains ont été modifiés pour permettre leur inclusion par les conducteurs aprèsntddk.h(pour que les conducteurs puissent appelerHalDisplayStringà des fins de débogage ou d'utilisationLOADER_PARAMETER_BLOCKpour déterminer s'ils fonctionnent dans la configuration du texte ou non).

Les makefiles utilisés sont dérivés de devkitPro.

AssurerPEPPCla variable d'environnement est définie à lapeppc-build/toolchain/binrépertoire.

Vous devez d'abord construire le hal (cd halartx; make; cd ..) avant que vous puissiez construire les autres pilotes, comme le HAL implémente les pilotes IOP IPC et EXI exportés (en raison du HAL lui-même les utilisant).

Remerciements

  • libc utilisé estbaselibc
  • Chargeur ELF, arcfw makefile (et certaines fonctions d'invalidation du cache) adapté à partirThe Homebrew Channel
  • Autres makefiles adaptés à partirdevkitPro
  • Quelques trucs de powerpc bas niveau, et ARC framebuffer console implémentation et police, adapté delibogc
  • Pilote EXI-IDE dans chargeur ARC adapté deSwiss
  • Pilote IOS IPC dans le firmware ARC adapté deThe Homebrew Channel's reload stub
  • ISO9660 la mise en œuvre FS dans le firmware ARC estlib9660avec quelques modifications.
  • Implémentation FAT FS dans le firmware ARC estPetit FatFsavec quelques modifications; en outreFatFsest utilisé pour lire les images de disque sous-jacentes sur les partitions FAT16/FAT32/exFAT (dans ARC et à l'intérieur iossdmc.sys et fpexiblk.sys)
  • Pilote GDI dérivé de l'exemple NT4 DDKframebuf.
  • Divers conducteurs adaptés à partir de ceux en libogc.

Contributeurs GitHub

Wack0
Wack0
61 contributions
NTx86
NTx86
3 contributions
stonedDiscord
stonedDiscord
1 contributions