In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Difference between revisions of "Cafe OS"

From WiiUBrew
Jump to navigation Jump to search
m (Think uvd.rpl may be AMD UVD, but unsure)
(Some speculation on a few more libraries)
Line 19: Line 19:
 
*[[lzma920.rpl]] - LZMA compression
 
*[[lzma920.rpl]] - LZMA compression
 
*[[mic.rpl]] - Gamepad microphone
 
*[[mic.rpl]] - Gamepad microphone
*[[nfc.rpl]] - low level NFC library
+
*[[nfc.rpl]] - Low-level NFC library
 
*[[nio_prof.rpl]]
 
*[[nio_prof.rpl]]
 
*[[nlibcurl.rpl]] - libcurl
 
*[[nlibcurl.rpl]] - libcurl
Line 42: Line 42:
 
*[[nn_olv.rpl]] - Olive/OLV - Miiverse
 
*[[nn_olv.rpl]] - Olive/OLV - Miiverse
 
*[[nn_pdm.rpl]] - System Play related data (play times etc.)
 
*[[nn_pdm.rpl]] - System Play related data (play times etc.)
*[[nn_save.rpl]] - SAVE library
+
*[[nn_save.rpl]] - Savefile access
 
*[[nn_sl.rpl]]
 
*[[nn_sl.rpl]]
 
*[[nn_spm.rpl]] - Storage related functions (USB?)
 
*[[nn_spm.rpl]] - Storage related functions (USB?)
Line 55: Line 55:
 
*[[nsysuvd.rpl]]
 
*[[nsysuvd.rpl]]
 
*[[ntag.rpl]] - NTAG high level NFC library
 
*[[ntag.rpl]] - NTAG high level NFC library
*[[padscore.rpl]]
+
*[[padscore.rpl]] - Other controller input?
 
*[[proc_ui.rpl]]
 
*[[proc_ui.rpl]]
 
*[[snd_core.rpl]]
 
*[[snd_core.rpl]]
Line 61: Line 61:
 
*[[sndcore2.rpl]]
 
*[[sndcore2.rpl]]
 
*[[snduser2.rpl]]
 
*[[snduser2.rpl]]
*[[swkbd.rpl]]
+
*[[swkbd.rpl]] - Onscreen keyboard
 
*[[sysapp.rpl]]
 
*[[sysapp.rpl]]
 
*[[tcl.rpl]]
 
*[[tcl.rpl]]
Line 69: Line 69:
 
*[[usb_mic.rpl]]
 
*[[usb_mic.rpl]]
 
*[[uvc.rpl]]
 
*[[uvc.rpl]]
*[[uvd.rpl]] - AMD Universal Video Decoder?
+
*[[uvd.rpl]]
*[[vpad.rpl]]
+
*[[vpad.rpl]] - Gamepad input
 
*[[vpadbase.rpl]]
 
*[[vpadbase.rpl]]
*[[zlib125.rpl]]
+
*[[zlib125.rpl]] - ZLIB
  
 
==Memory Map==
 
==Memory Map==

Revision as of 02:17, 31 March 2015

Cafe OS is the operating system running on the PowerPC in Wii U mode. It consists of the Cafe OS kernel, the executable loader, and system libraries. Unlike on the Wii, where games ran with full hardware access, Wii U applications run under the supervision of the kernel, isolating them from each other. All applications are modified ELFs, as are the libraries themselves, and applications dynamically link with them to gain access to OS services. Cafe OS also contains a few system processes, like the home menu and error handler.

Architecture

Kernel

Loader

Libraries

Cafe OS applications dynamically link with system libraries to get access to OS services. These OS services include memory management, graphics, audio, and controller input. All libraries are RPL files, a modification of the standard ELF format with compressed sections and more Windows-like dynamic linking. The main system libraries are listed below, with some having their own pages of documentation:

Memory Map

  • 0x01000000 - 0x01?????? Loader and system libraries
  • 0x10000000 - 0x10?????? User-mode OS globals
  • 0xe0000000 - 0xe4000000 Some sort of hardware communication area
  • 0xf4000000 - 0xf6000000 Unknown
  • 0xf6000000 - 0xf6800000 Unknown
  • 0xf8000000 - 0xfb000000 Read-only shared data (system fonts mostly)
  • 0xffee0000 - 0xfff20000 Kernel code