Anonymous

Changes

From Rare Gaming Dump
7 bytes removed ,  20:20, 17 October 2020
m
RedBees moved page OSGetConsoleType to Wii Console Types
Line 7: Line 7:  
=== 2000 [[Dolphin SDK]] ===
 
=== 2000 [[Dolphin SDK]] ===
   −
Note: The "2000 Dolphin SDK" is actually a small set of documents and header files found in the [[Official Dolphin Emulator]] 2.8 package, indicating the time at which said package was created; there is no full GameCube SDK which is this early publicly available. (GameCube SDK and Dolphin SDK are synonymous)
+
'''Note''': The "2000 Dolphin SDK" is actually a small set of documents and header files found in the [[Official Dolphin Emulator]] 2.8 package dated to 2000; there is no full GameCube SDK which is this early publicly available. (GameCube SDK and Dolphin SDK are synonymous)
   −
The GameCube SDK OSGetConsoleType documentation says that the leftmost bit distinguishes development and retail console types, with the rest being a "minor revision number". so The console type for the Mac emulator (see [[Official Dolphin Emulator]]) is 100000, followed by the PC emulator which is 10000001. This signifies that the Mac emulator likely came before the PC emulator, also supported by OS_CONSOLE_EMULATOR being the identifier for the Mac emulator and OS_CONSOLE_PC_EMULATOR being the identifier for the PC emulator; this may be due to Macs being PPC-based at this point, making it easier to create an "emulator" for Macs due to the similar hardware architecture.
+
The GameCube SDK OSGetConsoleType documentation says that the leftmost bit distinguishes development and retail console types (1 being development and 0 being retail), with the rest being a "minor revision number". The console type for the Mac emulator (see [[Official Dolphin Emulator]]) is 100000, followed by the PC emulator which is 10000001. This signifies that the Mac emulator likely came before the PC emulator, also supported by OS_CONSOLE_EMULATOR being the identifier for the Mac emulator and OS_CONSOLE_PC_EMULATOR being the identifier for the PC emulator; this may be due to Macs being PPC-based at this point, making it easier to create an "emulator" for Macs due to the similar hardware architecture.
    
Next up is "[[Arthur]]", ID 1000002, described as a "PPC750 evaluation board". The PowerPC 750 is the CPU of which a variation is used in the GameCube and Wii. It can be assumed that the emulator was made first before any of the hardware was made to test out the API (hence how old the emulator is), then the first hardware was a board with a stock PPC750, this board being "Arthur".
 
Next up is "[[Arthur]]", ID 1000002, described as a "PPC750 evaluation board". The PowerPC 750 is the CPU of which a variation is used in the GameCube and Wii. It can be assumed that the emulator was made first before any of the hardware was made to test out the API (hence how old the emulator is), then the first hardware was a board with a stock PPC750, this board being "Arthur".
Line 45: Line 45:  
Looking at the header definitions reveals some interesting information. All the NDEV versions are specified including 1.2 and 2.1. The Wii (RVL) definitions are separated from the GameCube ones; RVL_RETAIL1-3 are listed as 0000021-000023. It is unclear what this means exactly, as at the time of the SDK release there should not have been more than one retail version of the Wii defined; as such, these may refer to unseen prototype retail boards. They may also correspond to NDEV versions, or have been used as identification for the [[RVT-R Reader]] and [[RVT-H Reader]]; it seems logical that the original retail unit would be RETAIL1, the RVT-R would be RETAIL2, and the RVT-H would be RETAIL3, as the RVT-R and RVT-H (particularly the former) were meant to somewhat simulate a retail environment. Since the RVT-H is much farther from a retail system than the RVT-R, it is possible that only the RVT-R was used as RETAIl2, and RETAIL3 was reserved for future use; this is completely unknown, however.
 
Looking at the header definitions reveals some interesting information. All the NDEV versions are specified including 1.2 and 2.1. The Wii (RVL) definitions are separated from the GameCube ones; RVL_RETAIL1-3 are listed as 0000021-000023. It is unclear what this means exactly, as at the time of the SDK release there should not have been more than one retail version of the Wii defined; as such, these may refer to unseen prototype retail boards. They may also correspond to NDEV versions, or have been used as identification for the [[RVT-R Reader]] and [[RVT-H Reader]]; it seems logical that the original retail unit would be RETAIL1, the RVT-R would be RETAIL2, and the RVT-H would be RETAIL3, as the RVT-R and RVT-H (particularly the former) were meant to somewhat simulate a retail environment. Since the RVT-H is much farther from a retail system than the RVT-R, it is possible that only the RVT-R was used as RETAIl2, and RETAIL3 was reserved for future use; this is completely unknown, however.
   −
Similarly, there are the "PP" (pre-production) boards (See [[Pre-Production Boards]]). Their IDs match those of NDEV versions except with the retail mask instead of the development one; PP3 (to match NDEV 2.1) is not listed here, but it is known to exist from [[all.ini]]. PP0 matches NDEV 1.0, PP1 matches NDEV 1.1, PP2-1 matches NDEV 1.2, and PP2-2 matches NDEV 2.0. It is unknown if this matching is coincidental or not, however if it is not, it could be presumed that these boards were effectively "retail spec" NDEV boards. It is unknown what the relation between these and the aforementioned RVL_RETAIL console types is.
+
Similarly, there are the "PP" (pre-production) boards (See [[Pre-Production Boards]]). The disassembly in the section below reveals that these boards were pre-release retail units corresponding to NDEV versions.
    
In the separate section for legacy GC definitions, the [[Revolution Emulator]] is found with ID 1000008, which is the next ID from DEVHW4. It is unknown why it is considered to be a GameCube console type, however it is likely that the Revolution Emulator is not substantially different from the [[Official Dolphin Emulator]], and since it was likely used very early in the Wii's development, this may be why it is considered to be a GC platform. It is also worth noting that the TDEV platforms actually start at an ID analogous to MINNOW rather than HW1, being (last digit of ID) 4-7. Overall, the biggest mystery here is the different RVL_RETAIL types and the PP boards.
 
In the separate section for legacy GC definitions, the [[Revolution Emulator]] is found with ID 1000008, which is the next ID from DEVHW4. It is unknown why it is considered to be a GameCube console type, however it is likely that the Revolution Emulator is not substantially different from the [[Official Dolphin Emulator]], and since it was likely used very early in the Wii's development, this may be why it is considered to be a GC platform. It is also worth noting that the TDEV platforms actually start at an ID analogous to MINNOW rather than HW1, being (last digit of ID) 4-7. Overall, the biggest mystery here is the different RVL_RETAIL types and the PP boards.
Line 51: Line 51:  
=== [[Revolution SDK]] 3.1 ===
 
=== [[Revolution SDK]] 3.1 ===
   −
In June 2007, OS_CONSOLE_RVA_PROD1 was added; in fact, 3.1's definitions are identical to 2.1's but with OS_CONSOLE_RVA_PROD1 added. What RVA_PROD1 is is by far the biggest mystery in these console type definitions; the code "RVA" is not used elsewhere (retail Wii is RVL, dev is RVT), and there is no hint as to what this console type represents. It has the retail mask, with ID 0000000100, and is completely separated from the rest of the entries in the header file. "PROD1" implies that it may have been a counterpart to a similar (unlisted) development unit, and the "1" implies possible other models. Theories on what this might have been include:
+
In June 2007, OS_CONSOLE_RVA_PROD1 was added, the console type for the [[Revolution Arcade]] system.
   −
* Cancelled [[Wii + DVD]] unit with DVD support
+
=== Latest RVL_SDK OSGetConsoleType disassembly ===
   −
* Cancelled [[LodgeNet]] Wii system
+
The OSGetConsoleType function in the last released RVL_SDK version has been disassembled, revealing the following:
   −
* In-store demo system
+
* Wii platform version identification is done primarily by the Hollywood revision. Hollywood revision 0 is NDEV 1.0/PP0, revision 1 is NDEV 1.1/PP1, revision 2 is NDEV 1.2/PP2-1, revision 16 is NDEV 2.0/PP2-2, and revision 17 is NDEV 2.1/final retail.
   −
* [[Starlight Fun Center]] kiosk system
+
* The Pre-Production Boards correspond to each NDEV version. It is possible that the [[E3 2006 RVT-R Reader]] is classified as one of these boards. It is unknown where PP3 and "Pre-Product 4" lie in this, although it can be assumed that they are identified as the final retail unit.
   −
* Identification for a development unit, either internal or an external unit such as the [[RVT-R Reader]] or [[RVT-H Reader]]
+
* In the latest RVL_SDK, code for the GameCube return values and the [[RVL_EMU]] return value has been removed. [[RVA]] is also not present. However, for unknown reasons, the [[Arthur]] board return value is still present, and will be returned depending on a certain memory location's value. This code may have been repurposed as with other return values (the generic development value is repurposed from the EMULATOR value and the NDEV 2.0 value is repurposed from the generic TDEV value), so it may not be intended to identify the Arthur board.
 
  −
However, it is currently impossible to determine which of these theories are correct, or if any of them are.
      
=== [[Cafe SDK]] 1.7 ===
 
=== [[Cafe SDK]] 1.7 ===
Line 90: Line 88:     
* TDEV units 1, 3, & 4
 
* TDEV units 1, 3, & 4
  −
* RVA_PROD1 (arguably the biggest mystery)
      
* RVL Retail units 1-3
 
* RVL Retail units 1-3
Line 97: Line 93:  
* The [[Revolution Emulator]]
 
* The [[Revolution Emulator]]
   −
* The [[Pre-Production Boards]]
+
* [[Pre-Production Boards]]
    
* The "CAFE" platform
 
* The "CAFE" platform
Line 104: Line 100:     
Overall, the OSGetConsoleType function documentation and definitions give us a glimpse into mysterious and unseen console and board types used during the early development of the GameCube & Wii consoles, and are the only reason we know about some of these console variants.
 
Overall, the OSGetConsoleType function documentation and definitions give us a glimpse into mysterious and unseen console and board types used during the early development of the GameCube & Wii consoles, and are the only reason we know about some of these console variants.
 +
 +
{{Template:WiiNavbox}}
 +
{{Template:GamecubeNavbox}}
 +
 +
[[Category:GameCube]]
 +
 +
[[Category:Wii]]
 +
 +
[[Category:Wii U]]
 +
 +
[[Category:Development]]