« Architektura Nintendo 64 (index)

Architektura Nintendo 64

Chapter 6: System Operacyjny


Podobnie jak w przypadku gier PS1 i Saturn, gry N64 pisane są bezpośrednio na sprzęt. Nie ma jednak dostępnych procedur BIOS, aby uprościć niektóre operacje. Jako substytut, gry osadzają mały system operacyjny, który zapewnia odpowiednią ilość abstrakcji do skutecznej obsługi CPU, GPU i We/Wy.

To nie jest konwencjonalny desktopów OS który, możemy sobie wyobrazić na początku, jest to tylko mikrojądro z najmniejszym możliwym śladem, które zapewnia następującą funkcjonalność:

Ogólnie rzecz biorąc, funkcje te mają kluczowe znaczenie dla organizacji zadań audio, wideo i logiki gry, które muszą działać jednocześnie.

Kernel jest automatycznie osadzony przez użycie bibliotek Nintendo. Co więcej, jeśli programiści zdecydują się nie umieszczać jednej z bibliotek, odpowiednia część jądra jest usuwana, aby uniknąć marnowania miejsca na kartridżu.

Proces rozruchu

W odróżnieniu od poprzednich systemów opartych na kartridżach Nintendo 64 stosuje zaawansowany proces rozruchu w celu przygotowania całego swojego sprzętu przed rozpoczęciem gry. Wykonywane jest to jak tylko użytkownik włączy konsolę i jest bardzo zbliżone do ówczesnych konsol opartych o CD, które zawierają BIOS lub IPL.

Te procedury są również określane jako Program Inicjujący (IPL) i działają w następujący sposób :

  1. Użytkownik włącza konsolę.
  2. PIF-NUS (oddzielny chip na płycie głównej) wprowadza główny procesor w nieskończony reset do momentu, gdy PIF-NUS zweryfikuje chip CIC znaleziony w kartridżu gry.
    • PIF-NUS i chip CIC są dogłębniej wyjaśnione odpowiednio w sekcji I/O oraz w sekcji dotyczącej zwalczania piractwa.
  3. Jeśli proces weryfikacji zakończył się pomyślnie, CPU rozpoczyna wykonanie pod adresem 0xBFC00000. Ten adres wskazuje wewnętrzny ROM w PIF-NUS, w szczególności pierwszy etap rozruchu o nazwie IPL1.
  4. IPL1 inicjuje część sprzętu (rejestry CPU, interfejs równoległy i RCP) i kopiuje następny etap (IPL2) z wewnętrznego ROM do pamięci RSP w celu szybszego wykonania. Następnie przekierowuje tam wykonywanie instrukcji.
  5. IPL2 inicjuje pamięci podręcznej RDRAM i CPU. Następnie kopiuje pierwszy megabajt pamięci ROM gry do RDRAM. Ten blok zawiera następny etap rozruchu o nazwie IPL3.
  6. IPL3 uruchamia system operacyjny (tj. wirtualną pamięć i wektory wyjątków), ustawia stan programu (tj. wskaźnik stosu) i wreszcie przechodzi do wywołania funkcji startowej gry.

Ponieważ IPL3 znajduje się w kartridżu do gry, nie każdy kartridż z grą zawiera ten sam kod. Przypuszczalnie warianty są skorelowane z innym chipem CIC występującym w kartridżu.


Previous: 5. Dźwięk

Next: 7. WE/WY


Rodrigo Copetti © 2026 RSS Feed

Przełącz na wersję nowoczesną

Strona Główna · Artykuły · Wsparcie · O autorze · O stronie