Nintendo Wii handleiding

Overzicht

Dit document biedt richtlijnen voor het gebruik van het Wii-optische schijfstation om games te ontwerpen die gebruiksvriendelijk zijn met betrekking tot de toegang tot de game disc. Dit document verschilt van het document "Revolution Optical Disc Drive Library (DVD.pdf)", in die zin dat het niet alleen bedoeld is voor de programmeurs, maar ook voor de ontwerpers (die de schermindeling voor foutmeldingen ontwerpen) en dergelijke, en voor de bugtesters. Raadpleeg dit gedeelte in de Revolution Optical Disc Drive Library (DVD) voor meer specifieke programmeerinformatie.

Over de game discs

Structuur van de game disc

De structuur van elke game disc kan grofweg worden onderverdeeld in twee componenten:

  • Het programmadeel (het .dol-bestand)
  • Het gebruikersbestandsdeel

Het dol-bestand is het eigenlijke gameprogramma, geconverteerd van het elf-bestand wanneer ndrun wordt uitgevoerd. Omdat de indeling van het elf-bestand dat door het programma is gebouwd enigszins zal verschillen, afhankelijk van de linker, wordt het elf-bestand geconverteerd naar een dol-bestand met aangepaste indeling voor opslag op de game disc. Het dol-bestand wordt geladen en uitgevoerd door de IPL.
Het gebruikersbestandsdeel is het component dat wordt behandeld als bestanden door het programmadeel van de game disc. Het maakt niet uit hoe deze bestanden worden gebruikt (voor data, voor verplaatsbare modules, enz.).

Game disc-ID

Elke game disc heeft een regio voor het opslaan van zijn unieke ID. Deze unieke ID bestaat uit de volgende vier elementen:

  • Gamecode
    Elke game heeft zijn eigen specifieke code. De code wordt ingesteld door de NOA Lot Check Department.
  • Bedrijfscode
    Elke uitgever heeft zijn eigen specifieke code. Deze code wordt verkregen via de NOA Lot Check Department voor de Amerikaanse markt en de NOE Lot Check Department voor de Europese markt.
  • Game disc-nummer
    Elke game disc voor elke game krijgt een game disc-nummer toegewezen. De eerste game disc van een game krijgt nummer "0" en de daaropvolgende game discs krijgen nummer 1, 2, 3...
  • Gameversie
    Aan elke versie van de game wordt een gameversie toegewezen. Het maakt niet uit of de game is uitgebracht of niet.
    De Optical Disc Driver gebruikt de game disc-ID om te bepalen of de game disc een correcte game disc is.

Richtlijnen voor foutafhandeling

Foutafhandelingsbeleid met apparaatstuurprogramma voor optische schijfstations

Het foutafhandelingsbeleid van ons apparaatstuurprogramma voor optische schijfstations is "polling". Er is geen ingewikkelde routine voor foutafhandeling nodig. Het enige wat de gameontwikkelaar hoeft te doen, is het "fouttype" te pollen en de juiste melding op het scherm weer te geven.

Fouttypen die ontwikkelaars moeten oplossen

Er zijn vier "fouttypen" die ontwikkelaars moeten oplossen.

  • Fout bij openen schijfklep (Wii heeft geen schijfklep)
  • Geen schijf-fout
  • Verkeerde schijf-fout
  • Opnieuw proberen-fout
  • Fatale fout

Hieronder volgt een beschrijving van elk fouttype.

Opmerking: Deze fouten worden gegenereerd wanneer de uitgegeven opdracht om een bepaalde reden niet normaal wordt verwerkt. Ze treden niet op tenzij een opdracht wordt uitgegeven. Wanneer er bijvoorbeeld geen opdracht is uitgegeven, treedt er geen Geen schijf-fout op, zelfs niet als er een schijf wordt uitgeworpen. Bovendien hoeft de ontwikkelaar de gamespeler niet op de hoogte te stellen van deze statuswijzigingen wanneer deze geen fouten genereren. Met andere woorden, zelfs als de gamespeler de schijf tijdens het spelen uitwerpt, hoeft u dit bericht pas weer te geven als de Game Disc wordt gebruikt.

Fout bij openen schijfklep (Wii heeft geen schijfklep)
Wanneer de gamespeler de schijfklep van het optische schijfstation opent, treedt deze fout op. Geef de volgende melding weer waarin de gebruiker wordt geïnstrueerd de schijfklep te sluiten:
"De schijfklep is open. Als je het spel wilt voortzetten, sluit dan de schijfklep."

Geen schijf-fout
Deze fout treedt op wanneer het optische schijfstation geen Wii Disc kan vinden. Geef het volgende bericht weer en instrueer de gebruiker om de juiste schijf te plaatsen:
"Plaats de <Game Title> Game Disc."
Deze fout kan ook in de volgende situaties voorkomen:

  • De Wii Disc is ondersteboven geplaatst.
  • Er is een schijf geplaatst die geen Wii Disc is, bijvoorbeeld een CD van 12 cm.
  • Er is een extreem vuile Wii Disc geplaatst.

Als de game meerdere Game Discs heeft, geef dan een bericht weer zoals:
"Plaats <Game Title> Game Disc 1" om duidelijk aan te geven welke Game Disc moet worden geplaatst.

Verkeerde schijf-fout
Deze fout treedt op wanneer de verkeerde Game Disc in het station is geplaatst. Geef het volgende bericht weer en instrueer de gebruiker om de juiste Game Disc te plaatsen:
"Plaats de <Game Title> Game Disc."
Wees expliciet bij het specificeren van welke Game Disc moet worden geplaatst, wanneer er meerdere schijven in een set zitten. Bijvoorbeeld:
"Plaats <Game Title> Game Disc 1."

Opnieuw proberen-fout
Deze fout treedt op wanneer er stof, vingerafdrukken, enz. op de Game Disc zitten en er geen toegang toe kan worden verkregen. Geef het volgende bericht weer waarin de gebruiker wordt geïnstrueerd de handleiding te lezen. (In de handleiding staat dat de gebruiker het oppervlak van de Game Disc moet afvegen met een zachte doek en de game vervolgens opnieuw moet starten.)
"De Game Disc kon niet worden gelezen. Raadpleeg de Wii-gebruikershandleiding voor meer informatie."
Als er een schijf wordt geplaatst nadat er een schijf is uitgeworpen, voert het apparaatstuurprogramma automatisch een nieuwe poging uit.

Fatale fout
Deze fout treedt op wanneer er een probleem wordt gedetecteerd waardoor het voor het optische schijfstation onmogelijk is om te herstellen. Geef het volgende bericht weer waarin de gebruiker wordt geïnstrueerd de gebruikershandleiding te lezen.
"Er is een fout opgetreden. Druk eerst op de uitwerpknop en werp de schijf uit. Schakel vervolgens de Wii-console uit en raadpleeg de Wii-gebruikershandleiding voor verdere instructies."
Er kan een probleem zijn met het optische schijfstation of de Game Disc, dus u moet de game stoppen na het weergeven van een foutmelding.
Opmerking: Wanneer er een fatale fout is, raden we aan om RESET uit te schakelen tijdens de presentatie van de foutmelding. (Geef prioriteit aan de weergave van de fatale foutmelding).

Foutmeldingen wijzigen

De foutmeldingen in hoofdstuk "Fouttypen die ontwikkelaars moeten oplossen" zijn slechts voorbeelden van deze meldingen. U kunt deze meldingen herzien, zolang de betekenis nauwkeurig aan de gebruiker wordt overgebracht.
Meldingen zoals Opnieuw proberen-fout en Fatale fout verwijzen echter naar de Wii-gebruikershandleiding voor procedures om de bijbehorende fouten af te handelen. Maak geen grote wijzigingen in deze meldingen om verwarring bij de gebruiker te voorkomen.

Het fouttype ophalen

In dit gedeelte wordt uitgelegd hoe een toepassing het fouttype van de optische schijf kan ophalen.
Het fouttype geeft de status van het apparaatstuurprogramma weer. De status van het apparaatstuurprogramma kan worden verkregen door de functie DVDGetDriveStatus aan te roepen.
Opmerking: Zoals vermeld in hoofdstuk "Fouttypen die ontwikkelaars moeten oplossen", treden fouten alleen op wanneer opdrachten niet correct kunnen worden verwerkt. Er treden dus geen fouten op als er geen opdrachten zijn uitgevoerd. Zelfs als de schijf wordt uitgeworpen, retourneert de functie DVDGetDriveStatus niet DVD_STATE_NO_DISK (hieronder beschreven) als er geen opdracht wordt uitgevoerd. De functies DVDGetFileInfoStatus en DVDGetCommandBlockStatus gedragen zich op dezelfde manier.
De volgende lijst geeft de statussen aan die de functie retourneert wanneer er een fout is opgetreden.

  • DVD_STATE_COVER_OPEN (Wii heeft geen schijfklep)
  • DVD_STATE_NO_DISK
  • DVD_STATE_WRONG_DISK
  • DVD_STATE_RETRY
  • DVD_STATE_FATAL_ERROR

Er zijn andere statussen die kunnen worden geretourneerd door de functie DVDGetDriveStatus(). Deze worden hier niet vermeld omdat ze geen fouten aangeven en dit document zich richt op foutafhandeling. Raadpleeg de Revolution SDK Function Reference Manual voor meer informatie over andere statussen.
Opmerking: Voor een game met meerdere Game Discs wordt DVD_STATE_MOTOR_STOPPED geretourneerd wanneer Game Discs worden verwisseld. Zie hoofdstuk "Games met meerdere Game Discs" voor meer informatie.
Hieronder staat pseudocode voor het afhandelen van fouten. Zie de DVD-voorbeeld-demo "errorhandling" in de Revolution SDK voor een operationele demo.

Code 1 - Pseudocode voor foutafhandeling

Om een geschikte foutmelding weer te geven wanneer er een probleem optreedt, roept deze routine elke frame de functie DVDGetDriveStatus aan en polt de status.
De API's die toegang hebben tot het optische schijfstation retourneren alleen wanneer de verwerking is voltooid of als er een fatale fout optreedt. "Retourneren" betekent hier dat callback wordt aangeroepen (callback wordt gespecificeerd met een asynchrone functie), of API beëindigt de verwerking en retourneert een waarde (met een synchrone functie).
U kunt ook de functie DVDGetFileInfoStatus of DVDGetCommandBlockStatus gebruiken om de foutstatus op te halen. Deze retourneren de statussen van de aangewezen bestandsinformatie en het opdrachtblok. De functie DVDGetDriveStatus retourneert de status van het momenteel actieve verzoek.

Statusdiagram

Het volgende diagram laat zien hoe de status (fouttype) verandert.

Figuur 1 - Statuswijzigingen
Statuswijzigingen

Hieronder volgt een uitleg van figuur 1:

  • Van {Geen schijf, Verkeerde schijf, Opnieuw proberen} naar Bezig
    Deze statuswijziging treedt op wanneer de schijf wordt geplaatst. Merk op dat de status niet verandert wanneer de schijf wordt uitgeworpen.
  • Hoge-snelheidswijziging van de status als gevolg van onderbreking (Wii heeft er geen)
    Als de schijfklep bijvoorbeeld gesloten is, vindt de onderbreking plaats en wordt deze intern verwerkt. Het apparaatstuurprogramma verandert statussen, dus polling is niet vereist, waardoor de verwerking minimaal is.
  • Kalibratietijd wanneer de schijf is geplaatst
    Houd er rekening mee dat wanneer de schijf is geplaatst, de kalibratieverwerking van het optische schijfstation tijd kost. Als u zich bijvoorbeeld in de WRONG_DISK-status bevindt, kost het tijd om schijven te wisselen en controleert een stuurprogramma vervolgens de schijf-ID.

Foutafhandeling tijdens audiostreaming (Niet vereist voor Wii)

Gebruik dezelfde procedure die wordt beschreven in hoofdstuk "Het fouttype ophalen". Merk op dat er met deze procedure momenten zijn waarop een fout niet kan worden gedetecteerd. Als er geen fout kan worden gedetecteerd, is het niet nodig om een andere methode te gebruiken om er een te zoeken.

Foutafhandeling tijdens voorbereiding voor audiostreaming (Niet vereist voor Wii)
Voorafgaand aan de start van audiostreaming moeten voorbereidingen worden getroffen door de DVDPrepareStreamfunctie uit te voeren. Als er een fout optreedt tijdens dit voorbereidingsproces, kan de fout worden gedetecteerd met behulp van de procedure die wordt beschreven in hoofdstuk. Dat wil zeggen, door de DVDGetDriveStatus functie aan te roepen.
Wanneer er op dit moment een fout wordt gedetecteerd, is het essentieel om de gamespeler op de hoogte te stellen.

Foutafhandeling na het starten van audiostreaming (Niet vereist voor Wii)
De DVDGetDriveStatusfunctie kan geen fouten detecteren die optreden na het starten van audiostreaming. Maar het is niet nodig om een andere methode te gebruiken om fouten te detecteren en het is niet nodig om de gamespeler op de hoogte te stellen als er een wordt gedetecteerd.

Audiostreaming opnieuw starten nadat deze is gestopt vanwege een fout (Niet vereist voor Wii)
Als er een fout optreedt tijdens audiostreaming, wordt de audiostroom gestopt en wordt deze niet automatisch opnieuw gestart, zelfs niet als de oorzaak van de fout is verholpen. De ontwikkelaar is vrij om te beslissen of in dergelijke gevallen de DVDPrepareStreamfunctie opnieuw moet worden uitgevoerd en de audiostroom opnieuw moet worden gestart.
Denk aan de situatie waarin de schijfklep wordt geopend terwijl er een audiostroom wordt uitgevoerd. Wanneer dat gebeurt, wordt de audiostroom gestopt. Het is aan de ontwikkelaar om te beslissen of de audiostroom opnieuw moet worden gestart wanneer de schijfklep wordt gesloten.

Fouten emuleren

Ontwikkelaars moeten controleren of de juiste routines voor foutafhandeling (bijv. het weergeven van de juiste foutmeldingen op de tv) worden uitgevoerd in hun programma. Alle verschillende soorten fouten (Verkeerde schijf, Opnieuw proberen en Fatale fout) kunnen worden geëmuleerd met behulp van NDEV. Zie de NDEV-handleiding voor meer informatie.

DDH
Alle fouten kunnen worden geëmuleerd met behulp van AMCDDK versie 3.0.2 patch #2 of later. Lees de AMCDDK-handleiding voor meer informatie.

NPDP-GDEV
Alle fouten kunnen worden geëmuleerd met behulp van versie 1.01 of later. Lees de NPDP-GDEV-handleiding voor meer informatie.
Als u de NPDP-GDEV gaat gebruiken met een geplaatste NPDP-cartridge, lees dan het onderstaande gedeelte over NPDP.

NPDP
Alle fouten kunnen worden geëmuleerd met behulp van firmware versie 1.0.003 of later. Raadpleeg met name de onderstaande tabel voor Opnieuw proberen-fout en Fatale fout:

Tabel 1 - Foutemulatiemethode voor elk ontwikkelinstrument

Opnieuw proberen-fout Fatale fout (Opmerking 1) Verkeerde schijf-fout Geen schijf-fout
NDEVNPDP-
GDEV
OdemSry
(RETRY-knop)
OdemSry
(FATAL-knop)
OdemSry
(Klep open)
OdemSry
(Selecteer DLF-bestand)
OdemSry
(Klep sluiten)
OdemSry (Uitwerpen) OdemSry (Laden)

OdemSry
(Klep open)
OdemSry
(Geen schijf)
OdemSry
(Klep sluiten)

OdemSry (Uitwerpen) OdemSry (Laden)

NPDP
met
NPDP-GBOX
Foutknop
(Opmerking 1)
Omhoog-knop + Foutknop
(NPDP-firmware v 1.0.003 en later (Opmerking 1))
(Opmerking 3)
Openen/Sluiten-knop
Omhoog-knop/Omlaag-knop
Openen/Sluiten-knop
Openen/Sluiten-knop
Omhoog-knop/Omlaag-
knop
(Selecteer Geen schijf)
Openen/Sluiten-knop
NPDP
met
NPDP-console
Foutknop
(Opmerking 1)
Schijf wijzigen
Knop + Foutknop
(NPDP-firmware v 1.0.003 en later (Opmerking 1))
(Opmerking 3)
Openen/Sluiten-knop
Schijf wijzigen-knop
Openen/Sluiten-knop
Openen/Sluiten-knop
Schijf wijzigen
Knop
(Selecteer Geen schijf)
Openen/Sluiten-knop
RVT-R-lezer
NR-lezer
Geen Geen Schijf verwisselen (Opmerking 2) Schijf verwijderen
DDH >dirtydisk >breakdrive >loadrun myapp.elf
>opencover
>changedisk myapp.elf
editor "-dn=1" >closecover
>loadrun myapp.elf
>opencover
>removedisk
>closecover

Opmerking 1: De fout verschijnt wanneer u de knop ingedrukt houdt tot de volgende schijftoegang.
Opmerking 2: Gebruik verschillende schijf-ID's voor de schijf na het verwisselen en de schijf voor het verwisselen.
Opmerking 3: Af en toe wordt er een Opnieuw proberen-fout gegenereerd als de knoppen niet in deze volgorde worden ingedrukt:
Houd de Omhoog-knop of de Schijf wijzigen-knop ingedrukt en druk vervolgens op de Foutknop.

Games met meerdere spelschijven (ter referentie)

Neem van tevoren contact op met de NOA Licensing Department als u games met meerdere spelschijven overweegt.
Momenteel zijn dergelijke besprekingen alleen voor games met twee schijven, waarbij beide schijven tegelijkertijd worden verkocht. Gelieve aparte gesprekken te voeren met de Nintendo Licensing Department voor games met drie of meer spelschijven, of voor de marketing van afzonderlijke spelschijven.
Als er meer dan één spelschijf nodig is voor een enkele game, dan moeten de spelschijven op een geschikte plaats in de game worden verwisseld. De uitwisseling wordt gedaan door de spelschijf-ID voor de volgende spelschijf op te geven (zie hoofdstuk "Spelschijf-ID").
De rest van dit hoofdstuk legt de verschillende soorten uitwisselingspatronen voor games met meerdere schijven uit en hoe spelschijven moeten worden opgegeven. Het geeft een brede beschrijving van de procedure voor het uitwisselen van spelschijven, en geeft een voorbeeld van een bericht dat wordt weergegeven om de speler te instrueren om spelschijven te wisselen.

Uitwisselingspatronen voor het spelschijfproces

Bij games met meerdere schijven kan het spelschijf-uitwisselingsproces grofweg in twee patronen worden ingedeeld, afhankelijk van of het dol-programmaonderdeel (hoofdstuk "Spelschijfstructuur") van de nieuw geplaatste spelschijf wordt geladen en uitgevoerd nadat spelschijven zijn uitgewisseld. Beschouw bijvoorbeeld het geval waarin spelschijf 1 wordt verwijderd en vervangen door spelschijf 2.

  • A Bij het laden/uitvoeren van een Game Disc 2 dol-bestand
    Nadat de overgang van spelschijf 1 naar spelschijf 2 is voltooid, voert u het herstartproces uit. Het herstarten start het dol-programma op spelschijf 2.
  • B Wanneer een Game Disc 2 dol-bestand niet wordt geladen/uitgevoerd
    Nadat de overgang van spelschijf 1 naar spelschijf 2 is voltooid, is het mogelijk om toegang te krijgen tot de Game Disc 2-gebruikersbestanden (hoofdstuk "Spelschijfstructuur"). Er is niets speciaals dat na de overgang hoeft te worden gedaan.
    In dit geval kan het systeem op twee manieren worden ingedeeld: om spelschijf 2 zelf te laten opstarten of niet.
    • B1 Bij het toestaan van individueel opstarten door spelschijf 2
      Het is denkbaar dat de programma's op spelschijf 1 en spelschijf 2 hetzelfde zouden kunnen zijn, en alleen de gebruikersbestandsecties anders zouden zijn. Er kan een prompt zijn om terug te keren naar spelschijf 1, afhankelijk van de voortgang van de game in de Memory Card.
    • B2 Bij het niet toestaan van individueel opstarten door spelschijf 2
      Het is denkbaar dat spelschijf 2 alleen gegevensbestanden zou kunnen bevatten. Geef in dit geval een bericht weer zoals "This is a data only Game Disc. Please insert <Game Title> Game Disc 1." (Dit is een spelschijf met alleen gegevens. Plaats <Game Title> spelschijf 1.) en geef de gebruiker passende instructies in de individuele opstartmodus.

We raden B2 hierboven niet echt aan. Dat komt omdat er de hele tijd spelschijven kunnen worden gewisseld wanneer een game wordt uitgevoerd. Tenzij er een bepaalde reden is om een spelschijf te hebben die alleen gegevens bevat, vinden we het prettiger voor de gebruiker om hetzelfde dol-bestand op de tweede spelschijf te hebben als op de eerste spelschijf, en het mogelijk te maken om zelf op te starten op de tweede spelschijf.
Als A en B1 worden vergeleken, vereist B1 geen laden van het dol-programmaonderdeel op spelschijf 2 en zal de overgang naar de tweede spelschijf iets sneller zijn. Als het dol-programmaonderdeel van de eerste en tweede spelschijf hetzelfde kan worden gemaakt, is het waarschijnlijk beter om B1 te kiezen.
Merk op dat we in beide gevallen aanraden om het mogelijk te maken om gegevens op te slaan voordat u van spelschijf wisselt, om de volgende redenen.

  • Gegevensverlies kan worden vermeden als er een leesfout van de spelschijf optreedt na de overgang.
  • Het zal het debuggen gemakkelijker maken door de gegevens op de Memory Card op te slaan voordat de spelschijven worden uitgewisseld. Wanneer u een bug hebt tijdens of na de spelschijfuitwisseling, kunt u de bug gemakkelijk reproduceren met behulp van de opgeslagen gegevens. Als u de gegevens niet opslaat voordat u de spelschijf uitwisselt, moet u het spel opnieuw vanaf spelschijf 1 starten om de bug te reproduceren.

Waarschuwing
Bestandsstructuren die vóór de uitwisseling waren geopend, bevatten oude gegevens, dus gebruik dergelijke gegevens niet na de uitwisseling. Zelfs als spelschijf 1 en spelschijf 2 bestanden met dezelfde naam hebben, zorg er dan voor dat u ze opnieuw opent. Om veilig te zijn, raden we aan om alle open bestanden te sluiten voordat u wisselt.

Spelschijven specificeren ten tijde van de uitwisseling

De spelschijf-ID (zie hoofdstuk "Spelschijf-ID") wordt gebruikt voor het specificeren van spelschijven ten tijde van een uitwisseling. Raadpleeg voor meer informatie de functie DVDChangeDisk* in de Revolution SDK Function Reference Manual.
Met de functie DVDChangeDisk* kunnen jokers worden opgegeven voor spelschijf-ID-componenten. Dus als 0xff is opgegeven voor de gameversie, dan wordt, ongeacht welke versie van de game tijdens de uitwisseling is geplaatst, behandeld als een correcte spelschijf en wordt de uitwisseling goedgekeurd, zolang de andere drie spelschijf-ID-componenten (d.w.z. de gamecode, bedrijfscode en schijfnummer) correct zijn.
In de volgende sectie geven we enkele waarschuwingen met betrekking tot jokers.

Gebruiksbeperkingen voor jokers (niet-gameversies)
Jokers kunnen alleen worden gebruikt op gameversies (niet op gamecodes, bedrijfscodes of spelschijfnummers). De reden is dat wanneer jokers worden gebruikt, de combinaties van de bewerkingscontrole enorm worden en veel problemen veroorzaken.
Als u niettemin overweegt om jokers te gebruiken voor de elementen anders dan de gameversie, moet u dit van tevoren met Nintendo bespreken.

Gebruiksbeperkingen voor jokers (gameversies)
Bij het gebruik van jokers voor gameversies zijn er voor- en nadelen aan het gebruik en niet-gebruik ervan (wanneer expliciete instructies worden gegeven). Hieronder volgen enkele voorbeelden. Bekijk ze en selecteer er een voor gebruik.

  1. Wanneer de gameversie expliciet is gespecificeerd
    • Voordelen
      De overeenkomstige spelschijfversies hebben een één-op-één overeenkomst, dus het is voldoende om te debuggen in die specifieke combinatie.
    • Nadelen
      Wanneer er toekomstige versie-wijzigingen zijn, is het noodzakelijk om de versie op beide spelschijven te upgraden. Met andere woorden, als spelschijf 1 spelschijf 2 versie 0 specificeert, en spelschijf 2 is gewijzigd in versie 1 nadat deze is verkocht, dan moeten, zodra spelschijf 1 is gewijzigd, de versies op beide spelschijven worden geüpgraded en opnieuw worden ingediend.
      Wanneer een groep vrienden hun eigen exemplaren van dezelfde game heeft en de versies verschillend zijn en twee vrienden spelschijven wisselen, zullen ze niet goed werken wanneer spelschijf 1 en spelschijf 2 worden uitgewisseld.
      Een identificatieteken is vereist op het label, zodat de versie kan worden geïdentificeerd.
  2. Wanneer een joker wordt gebruikt in een gameversie
    • Voordelen
      Onafhankelijke versie-upgrades kunnen op toekomstige data op hun eigen spelschijven worden uitgebracht.
      Spelschijven met verschillende versies blijven draaien wanneer ze samen worden gebruikt, zodat vrienden zonder problemen spelschijven kunnen wisselen.
    • Nadelen
      Voorzichtigheid is geboden bij het uitbrengen van toekomstige versie-upgrades. Met andere woorden, bij het upgraden van bijvoorbeeld spelschijf 2, is het noodzakelijk om ervoor te zorgen dat deze kan worden gewisseld met alle spelschijf 1-versies die op de markt circuleren.

De procedure voor het uitwisselen van spelschijven

Hieronder volgt een overzicht van de procedure die plaatsvindt vanaf het moment dat de speler spelschijven uitwisselt tot het moment dat de Wii toegang heeft tot de nieuwe spelschijf.

  1. De motor van de optische-schijfeenheid wordt gestopt.
  2. Er wordt bevestigd dat de motor van de optische-schijfeenheid is gestopt en er wordt een bericht weergegeven waarin de speler wordt verteld om spelschijven uit te wisselen (zie hoofdstuk "Berichten en foutafhandeling bij het wisselen van spelschijven").
  3. Het systeem wacht tot de speler de schijfklep opent en vervolgens sluit.(Wii heeft geen schijfklep)
  4. Na de uitwisseling wordt de spelschijf-ID gecontroleerd om te bepalen of het de juiste spelschijf is.
  5. De File Symbol Table (FST) van de spelschijf wordt geladen en de toegang wordt ingeschakeld.

Al deze procedures, met uitzondering van de berichtweergave die wordt uitgevoerd in (2), worden verwerkt door de functie DVDChangeDisk (zie hoofdstuk "API's voor games met meerdere schijven").
U kunt de duur van het bericht dat in stap 2 wordt weergegeven bepalen door de functie DVDGetDriveStatus te gebruiken om de status van het stuurprogramma te controleren. U controleert de status van het stuurprogramma met dezelfde methode die u gebruikt voor foutafhandeling (zie hoofdstuk "Het fouttype ophalen"). Wanneer de motor van de optische-schijfeenheid is gestopt, is de status van het stuurprogramma van de optische schijf DVD_STATE_MOTOR_STOPPED. Geef het bericht in stap 2 alleen weer wanneer het stuurprogramma van de optische schijf zich in deze status bevindt.
Als de uitgewisselde spelschijf niet de juiste spelschijf is, of als er geen spelschijf in de optische-schijfeenheid zit, geef dan een geschikt bericht weer, zoals die in hoofdstuk "Berichten en foutafhandeling bij het wisselen van spelschijven". De functie DVDChangeDisk* kan het spelschijf-uitwisselingsproces annuleren door de functie DVDCancel aan te roepen.

Berichten en foutafhandeling bij het wisselen van spelschijven

Deze sectie geeft een voorbeeld van een bericht dat aan de speler moet worden weergegeven wanneer spelschijven worden uitgewisseld. Deze voorbeeldweergaven zijn zoals die in hoofdstuk "Foutmeldingen wijzigen", en ze kunnen worden aangepast om hun bedoeling aan de speler over te brengen.

  • De speler instrueren om spelschijven te wisselen
    Terwijl het stuurprogramma zich in de DVD_STATE_MOTOR_STOPPED-status bevindt, geeft u dit bericht weer en instrueert u de speler om de volgende geschikte spelschijf te plaatsen:
    "Please insert <Game Title> Game Disc 2." (Plaats <Game Title> spelschijf 2.)
    Als de game een game met meerdere schijven is, zorg er dan voor dat u duidelijke instructies geeft over welke spelschijf hierna moet worden geplaatst.

Wanneer u de functie DVDChangeDisk uitvoert, voert u dezelfde foutafhandeling uit als bij de functie DVDRead. Zie hoofdstuk "Fouttypen die ontwikkelaars moeten oplossen" voor meer informatie (als de gespecificeerde spelschijf niet is geplaatst, moet er een verkeerde schijffout worden gegenereerd.)

Multi-disc-emulatie

Momenteel kan multi-disc-emulatie alleen worden uitgevoerd op NDEV.

API's voor games met meerdere schijven

De volgende API's zijn van toepassing op games met meerdere schijven. Raadpleeg de Revolution SDK Function Reference Manual voor meer informatie over elke API.

  • DVDChangeDisk* (DVDChangeDisk evenals DVDChangeDiskAsync)
  • DVDCompareDiskID
  • DVDGenerateDiskID
  • DVDGetCurrentDiskID

Waarschuwingen met betrekking tot games met meerdere schijven

Elke spelschijf moet zelf opstarten
(Dezelfde inhoud als Wii Programming Guideline, versie 1.00, paragraaf "[Alleen voor games met meerdere schijven] Onafhankelijk opstarten van alle schijven [Vereist].")
Zelfs als het opstarten van de applicatie vanaf een bepaalde Wii-spelschijf niet wordt verwacht, moet u er altijd voor zorgen dat er een soort programma wordt uitgevoerd wanneer de schijf onafhankelijk wordt gestart, zelfs als het slechts een waarschuwingsbericht is. Als de geplaatste Wii-spelschijf bijvoorbeeld een van een set van twee Wii-spelschijven is en de geplaatste schijf er een is die niet zelfstandig kan worden afgespeeld, moet u een programma beschikbaar hebben dat een bericht weergeeft zoals "This is <game title> Game Disc 2. Please insert <game title> Game Disc 1 and restart power." (Dit is <game title> spelschijf 2. Plaats <game title> spelschijf 1 en start opnieuw op.)
Als u dit niet doet, kan de gebruiker denken dat er een storing is in de Wii-console of de Wii-spelschijf wanneer een Wii-spelschijf niet is ontworpen voor onafhankelijk opstarten.
Ontwerp elke spelschijf zo dat deze zelf kan opstarten wanneer deze in de Nintendo GameCube wordt geplaatst. Laat de spelschijf zelf opstarten - zelfs als het uitvoeringsprogramma van de game niet kan worden opgestart zonder het uitvoeringsprogramma dat zich op een andere spelschijf bevindt - en geef vervolgens een bericht weer waarin de speler wordt geïnstrueerd om spelschijven te wisselen (zie hoofdstuk"Weergave voor spelschijfuitwisselingen")

Bied ondersteuning voor de uitwisseling met elke spelschijf
Zorg ervoor dat het systeem niet vastloopt, ongeacht welke spelschijf wordt uitgewisseld. Als spelschijf 3 bijvoorbeeld alleen zou mogen werken wanneer deze wordt opgestart na spelschijf 2, laat het systeem dan niet vastlopen als deze in plaats daarvan na spelschijf 1 wordt uitgewisseld.

Weergave voor spelschijfuitwisselingen
Als een uitwisseling van schijven noodzakelijk is, geeft u instructies hiervoor op het scherm weer. Zie sectie "Berichten en foutafhandeling bij het wisselen van spelschijven" om meer te lezen over de inhoud van dit schermbericht.

Gebruik labels en banners om spelschijven te onderscheiden
Druk een label af voor elke spelschijf, zodat spelers spelschijven kunnen onderscheiden en ze op de juiste manier kunnen uitwisselen wanneer ze daartoe worden geïnstrueerd. Zie "Icon and Banner Creation Tool" voor meer informatie over banners en pictogrammen die door de Wii-console worden weergegeven.

Beveilig geheugen voor FST
Wanneer een normale spelschijf wordt uitgewisseld, wordt de File Symbol Table (FST) overschreven door wat zich op de nieuwe spelschijf bevindt. Als de FST van de nieuwe spelschijf kleiner is dan de FST van de spelschijf die is verwisseld, is er geen probleem. Maar als de nieuwe FST groter is, kan deze niet worden geladen. Er wordt een ASSERT-bericht uitgevoerd en het systeem loopt vast.
Om dit te voorkomen, moet u bij een game met meerdere schijven een geheugenruimte van voldoende grootte voor de FST beveiligen. Wanneer u DDH gebruikt, vraagt u de vereiste FST-grootte van elke schijf op en specificeert u elke waarde in FstMaxLen. Wanneer u NPDP-GDEV gebruikt, registreert u de groep schijven in het mdf-bestand. Wanneer dit is gedaan, wordt de juiste FST-grootte automatisch ingesteld.
Lees de verschillende handleidingen voor de ontwikkelomgeving voor meer informatie.

Andere richtlijnen met betrekking tot de toegang tot het optische schijfstation

Opstartscherm van het spel

Nadat het dol-bestand is geladen door het opstartprogramma, worden gegevens- en programmabestanden gelezen van de speldisk. Om de tijd dat het scherm zo veel mogelijk leeg is te verkorten, mogen er op dit moment geen gegevensbestanden worden gelezen. Gebruik alleen het dol-bestand om het eerste scherm weer te geven.
Het dol-bestand moet ook de foutafhandelingsroutines gebruiken die worden beschreven in Hoofdstuk "Hoe het fouttype te achterhalen". Als er geen foutafhandelingsroutines (inclusief de benodigde gegevens) in het dol-bestand zijn ingebouwd, is er geen manier om de gebruiker te informeren als er een probleem optreedt met het lezen voordat de gegevens van de foutafhandelingsroutine zijn geladen.

Waarschuwing
(Geen probleem bij de Wii)
Er zit een bug in het opstartprogramma waardoor het systeem in bepaalde omstandigheden vastloopt wanneer het spelprogramma wordt opgestart vanuit het hoofdmenu. Als de schijfklep precies op het juiste moment wordt geopend terwijl het scherm wegvalt, blijft het scherm wegvallen en loopt het systeem vast. De timing moet precies goed zijn om dit te laten gebeuren, dus de frequentie is erg laag. U moet zich hier echter van bewust zijn bij het testen van de foutafhandeling van uw spelprogramma. Het is acceptabel om deze bug te negeren.
Volg de volgende stappen als er een probleem optreedt en u wilt bepalen of dit te wijten is aan deze bug of aan een bug in het spelprogramma:

  1. Probeer de schijfklep te sluiten. Als het spelprogramma opstart, werd het probleem veroorzaakt door een bug in het spelprogramma.
  2. Wacht 10 seconden na het sluiten van de schijfklep en druk vervolgens op de START-knop. Als het spelprogramma opstart, werd het probleem veroorzaakt door de bug in het opstartprogramma. (Dit kan worden genegeerd.)
  3. Als het spelprogramma niet opstart wanneer u stap 2 uitvoert, werd het probleem veroorzaakt door een bug in het spelprogramma.
    Deze bug in het opstartprogramma treedt niet op wanneer spellen worden gestart vanaf het Nintendo GameCubeTM-logo (met andere woorden, opgestart zonder het IPL-hoofdmenu te doorlopen).

Diverse oorzaken van veranderingen in de toegangstijd van de speldisk

(Hetzelfde als Wii Programming Guideline, versie 1.00, paragraaf "Verboden afhankelijkheid van apparaatspecificaties [Informatie]. Plan om "Verboden afhankelijkheid van apparaatspecificaties) [Vereist]" toe te voegen aan het hoofdstuk over schijfstations, als een onderwerp dat verband houdt met schijfstations.)
Vermijd het ontwerpen van een programma met een afhankelijkheid van de apparaatspecificaties van de Wii-console of de randapparatuur, omdat dit kan leiden tot een storing of crash van het programma.
Er zullen enkele specificatieverschillen tussen apparaten zijn. De prestaties zullen ook afnemen naarmate het apparaat ouder wordt of een disk beschadigd raakt.
De apparaten verwijzen hier in het bijzonder naar het schijfstation, de schijf, de Wii-afstandsbediening, het Wii-systeemgeheugen, de SD-geheugenkaart en de Nintendo GameCube-geheugenkaart. Zie de bijbehorende hoofdstukken voor meer informatie.
Als er een probleem optreedt met de toegang tot de speldisk, zal de hardware intern een nieuwe poging uitvoeren. Dit betekent dat zelfs als een leesactie is geslaagd, dit het resultaat kan zijn van verschillende nieuwe pogingen.
Ook vereist het kalibratieproces veel tijd, zoals vermeld in Hoofdstuk 3.5 "Statusschema". Wanneer een speler tijdens het lezen de schijfklep opent, is er dus veel meer tijd nodig dan slechts één leesactie.
Verder kan de toegang door individuele verschillen iets sneller worden voltooid dan met het specifieke optische schijfstation dat de ontwikkelaar gebruikt.
Omdat de toegangstijd van de speldisk om al deze verschillende redenen kan variëren, mag u geen processen ontwerpen die afhankelijk zijn van de toegangstijd.

dol-bestand beperkingen

Houd er rekening mee dat de volgende beperking van toepassing is op het dol-bestand (zie Hoofdstuk "Speldiskstructuur").

  • Adressen die door dol-bestanden kunnen worden gebruikt, liggen onder 0x8070_0000
    Adressen vanaf 0x8070_0000 en hoger zijn gereserveerd door het systeem, dus dol-bestanden kunnen alleen adressen onder dit adres gebruiken. Houd er rekening mee dat deze beperking ook van toepassing is op de BSS-sectie.

Daarnaast raden we aan dat de totale bestandsgrootte, exclusief de BSS- en SBSS-secties (gegevensgebied voor niet-geïnitialiseerde variabelen), minder is dan 4 megabytes. Dit wordt aanbevolen om de leestijd bij het opstarten te verkorten.

Op de Nintendo GameCube wordt diskinformatie op het scherm weergegeven wanneer het spel niet onmiddellijk wordt gestart en wordt gestart nadat het IPL-hoofdmenu eenmaal is geopend. Bannerbestanden worden in deze situatie gebruikt.
Om diskinformatie weer te geven, moet de volgende informatie worden opgegeven in het bannerbestand:

De grootte is 96x32 (hetzelfde als de banner van de geheugenkaart), maar de enige indeling die kan worden gebruikt, is RGB5A3.
Identieke gegevens worden gebruikt op het menuscherm en op het gameplay-scherm.
Het is geen probleem als de gegevens niet overeenkomen met de banner van de geheugenkaart (hoewel u dezelfde gegevens kunt gebruiken).

De titel van het spel dat op het hoofdmenu wordt weergegeven.

De naam van de maker die op het hoofdmenu wordt weergegeven.
U kunt alleen de naam van de maker opnemen, of de naam van de maker en de productiedatum (het jaar).

De titel van het spel dat tijdens het spelen wordt weergegeven.

De naam van de maker die op het gameplay-scherm wordt weergegeven.
U kunt alleen de naam van de maker opnemen, of de naam van de maker en de productiedatum (het jaar).

Opmerkingen die op het gameplay-scherm worden weergegeven.
Voorbeeld: Luigi's Mansion

Figuur 2 - Een voorbeeld van de weergave van speldiskinformatie

De tekens die kunnen worden gebruikt, zijn dezelfde als die kunnen worden gebruikt door de FONT API. Speldisks die bestemd zijn voor de Japanse markt, kunnen Level 1 Shift-JIS-tekens bevatten, evenals ASCII- en single-byte ("hankaku") katakana-tekens. Speldisks die bestemd zijn voor de niet-Japanse markt, kunnen ANSI 8-bit (WinLatin1)-tekens bevatten. Regelinvoercodes kunnen ook in opmerkingen worden gebruikt. Als u echter veel regeleinden of tekens met brede tekenbreedtes gebruikt, is het mogelijk dat de opmerking niet volledig binnen het kader wordt weergegeven. In dergelijke gevallen moet u uw tekst herzien om deze volledig binnen het kader te laten passen.
Op ontwikkeltools geeft het Nintendo GameCube-opstartprogramma de informatie weer in het opening.bnr bestand dat is opgeslagen in de rootdirectory van de speldisk. U kunt opening.bnr creëren door de makebanner.exe tool of de makebanner2.exe tool (specifiek voor Europa) uit te voeren die is meegeleverd met de Nintendo GameCube SDK in de /X86/bindirectory.
makebanner.execreëert bannerbestanden in de BNR1-indeling, die in elke regio kunnen worden gebruikt.
makebanner2.exe creëert bestanden in de BNR2-indeling, die spelinformatie in zes standaardtalen (Engels, Duits, Frans, Spaans, Italiaans en Nederlands) kunnen bevatten. Gebruik makebanner2.exe niet voor speldisks die bestemd zijn voor Japan of de VS. De reden hiervoor is dat de IPL's van de Japanse en Amerikaanse versies van de Nintendo GameCube de BNR2-indeling niet ondersteunen. Aan de andere kant raden we aan om makebanner2.exe te gebruiken voor speldisks die bestemd zijn voor Europa.
De structuur van het bannerbestand is gedefinieerd in /dolphin/dvd/DVDBanner.h.
U kunt het listdemo-programma (te vinden in build/demos/carddemo) gebruiken om de speldiskbanner en de spelinformatie in het opening.bnr bestand te controleren.

Vermijd oneindige lus van hardware-/audiostreaming onder de volgende omstandigheden

(Hetzelfde als Wii Programming Guideline, versie 1.00, paragraaf "Oneindige lussen tijdens meervoudige datastreaming verboden [Vereist]". Wii voert geen hardware-audiostreaming uit.) Vermijd oneindige looping van gelijktijdige meervoudige instanties van datastreaming.
Datastreaming wordt gedefinieerd als de methode om gegevens opeenvolgend te lezen terwijl ze worden gebruikt, in tegenstelling tot een burst-overdracht waarbij de benodigde gegevens in één keer van de schijf worden geladen voordat ze worden gebruikt. Een goed voorbeeld van datastreaming is het afspelen van films.
Als frequente niet-opeenvolgende toegang gedurende een lange periode nodig is, probeer de toegang dan opeenvolgend te maken of voorkom in ieder geval een oneindige lus.
Ook kan het zoekgeluid dat ontstaat tijdens gelijktijdig afspelen aanzienlijk worden verminderd door bestanden die gelijktijdig worden afgespeeld zo dicht mogelijk bij elkaar te plaatsen.
Wanneer de drive in een oneindige lus terechtkomt terwijl de drivekop constant met een hoge frequentie wordt verplaatst, kan dit de drive nadelig beïnvloeden als de gebruiker het spel in deze staat laat staan.
Als de applicatie deze vereiste schendt, kunnen de volgende stappen worden ondernomen om een dergelijk voorval te voorkomen.

  • Interleave het gegevensbestand en het audiobestand tot één bestand en speel het audiogedeelte af.
  • Interleave meerdere bestanden voor datastreaming tot één bestand zodat ze opeenvolgend kunnen worden geopend.

Een andere methode om oneindige lussen te voorkomen, is om de datastreaming na enkele lussen te stoppen.

Vermijd een oneindige lus in de volgende situaties:

  1. Hardware-/audiostreaming tijdens datastreaming
  2. Synchroon afspelen van meer dan één datastroom

Opmerking: De benodigde gegevens worden in één keer van de speldisk gelezen en vervolgens naar behoefte gebruikt. Deze methode wordt gedefinieerd als Burst Transfer. De gegevens worden indien nodig één voor één in volgorde gelezen en worden niet in één keer gelezen. Deze methode wordt gedefinieerd als Datastreaming. Een typisch voorbeeld van datastreaming-overdracht is het afspelen van een film.
De reden dat we oneindige lussen moeten vermijden, is omdat de speler de Nintendo GameCube onbeheerd kan achterlaten en er mogelijk frequente toegang tot de drive plaatsvindt. Het optische schijfstation van de Nintendo GameCube verplaatst de kop frequent bij het openen van de speldisk. Het is mogelijk dat dit onnodige slijtage aan het optische schijfstation veroorzaakt. Games moeten deze situatie vermijden.
Anders dan "1" en "2" hierboven, als er behoefte is aan langdurige toegang die niet opeenvolgend is met een hoge frequentie, maak de toegang dan opeenvolgend of voorkom dat deze in een oneindige lus terechtkomt.
Terwijl het optische schijfstation naar gegevens zoekt, wordt er een geluid gegenereerd dat sommige gebruikers mogelijk aanstootgevend vinden. Om dit geluid te beperken, vermindert u het aantal zoekopdrachten dat wordt gegenereerd tijdens synchroon afspelen aanzienlijk door die bestanden die synchroon worden afgespeeld zo dicht mogelijk bij elkaar te plaatsen. Plaats deze bestanden zo dicht mogelijk bij elkaar.

Voorbeelden van problemen en hoe ze op te lossen

  1. Er is een demo die verschillende audiobestanden afspeelt als achtergrondmuziek tijdens het afspelen van een filmbestand. Het is mogelijk dat deze demo in een oneindige lus terechtkomt.
    Oplossing 1: Compileer het filmbestand en het audiobestand tot één bestand door ze te interleaven en speel het audiogedeelte af met behulp van software. Nadat dit is gedaan, is de toegang tot het optische schijfstation opeenvolgend.
    Oplossing 2: Stop de achtergrondmuziek na het uitfaden van de derde lus. Door dit te doen, wordt alleen de film afgespeeld en is de toegang tot het optische schijfstation opeenvolgend.
  2. Als twee films synchroon worden afgespeeld, is het mogelijk dat het programma in een oneindige lus terechtkomt.
    Oplossing 1: Compileer de twee filmbestanden tot één bestand door ze te interleaven. Door dit te doen, is de toegang tot het optische schijfstation opeenvolgend.
    Oplossing 2: Schakel beide films na drie lussen over naar een statisch beeld. Dit voorkomt een oneindige lus.
  3. Er is een spel met kunstmatige intelligentie-achtige dialogen. Er is een gedeelte van dit spel waarin stemgegevens achter elkaar worden gelezen, terwijl het audiobestand als achtergrondmuziek wordt afgespeeld. Dit kan oneindig doorgaan, tenzij er een input is voor de controller.
    Oplossing: Als er gedurende 5 minuten geen input is voor de controller, laat u de personages in het spel in slaap vallen, zodat ze niet meer praten. Door dit te doen, is de toegang tot het optische schijfstation alleen voor het afspelen van achtergrondmuziek.

Andere voorzorgsmaatregelen

Beschrijving van Wii-optische media

Gebruik bij het beschrijven van Wii-optische media aan een speler, zoals in een spelbericht of in de handleiding, "speldisk", "disk" of "disk" in plaats van "Disk".

Download handleiding

Hier kunt u de volledige pdf-versie van de handleiding downloaden. Deze kan aanvullende veiligheidsinstructies, garantie-informatie, FCC-regels, enz. bevatten.

Download Nintendo Wii handleiding

Beschikbare talen

Inhoudsopgave