the cutting room mirror

Pilotwings Resort

To do:

  • There's some sort of development text in code.bin.
  • Add also informations and a checking inside the USA and https://www.youtube.com/watch?v=pu24WnslDUI&t=2s EUR kiosk demo of the game. for any unused and leftovers stuff. and also comparing them with the retail versions of the game for the differences (if any).
  • Investigate if the rocket and jet models from the debug Model Test menu are the same ones used in gameplay, or if they are unused versions.
  • Investigate more on the "Choose Color" submenu from the Model Test (the string seems to be referenced at 0x002951b4 in code.bin, EUR).
  • Investigate the file wuhu_wingsuit_test.trk.
  • Cheat detection.
  • Three prototypes were dumped

Pilotwings Resort is the third entry in the Pilotwings franchise which takes place on Wuhu Island from Wii Sports Resort. Just like the previous two entries, it's also a launch title.

Debugging Functions#

Debug Menu#

Watch on YouTube

EUR

Function Address (code.bin)

0x0028121c

A debug menu is present in the game with two options: Story and Model Test. To access it, enable the following code and select either the "Dioramas" or "Options" menus.

EUR

Gateway Code

D3000000 00000000
00274214 e320f000
D2000000 00000000

Story#

EUR

Function Address (code.bin)

0x00298888

Allows the player to select any mission from the game. The first submenu is named "Debug Tracks" and has all of the mission categories. When selecting one, any mission can be selected, with the description appearing on top of the upper screen, alongside some strange lines.

Model Test#

EUR

Function Address (code.bin)

0x00295048

It has 3 options: Rocket, Jet and Jet Flight Test. The first two options show a model viewer that can be controlled using the touch screen, with the instructions being provided there. They both show a rocket and a jet model respectively, albeit with strange texturing.

The third option does not seem to work, as pressing it will return back to the model test submenu. There is code to go to a submenu named "Choose Color", which renders a button that does nothing when pressed.

Missing Options#

There seems to be code in the debug menu function that points to two more debug options. The first one, located in function 0x002941e0 from code.bin (EUR), seems to load a file named arttest.res. The second one, located in function 0x00295ab0 from code.bin (EUR), seems to be for some kind of model test, since it references the file uimodeltest.car.

Trying to access these options crashes the game, likely because none of the files mentioned are found in the game.

Debug Coordinates#

This debugging feature, referenced as debug_coords internally, prints the X, Y and Z position coordinates of the player in the upper screen. It can be enabled with the following code:

EUR

Gateway Code

D3000000 00000000
002380d8 e320f000
D2000000 00000000

Development Text#

Build Info#

To do:
Add the second string for all versions.

The code contains a build date which differs between versions.

Version

First string

Second string

June 4, 2010 prototype

Jun  4 2010
18:12:01

[none]

June 8, 2010 prototype

Jun  8 2010
14:26:22

[none]

July 16, 2010 prototype

Jul 16 2010
20:40:16
Jul 16 2010 20:40:16 CTR-DMO-RLS-NDBG-US-QA-NTSC ARM-400771 NN-0.10.2 dave_p

USA Kiosk Demo

Jan 25 2011
11:37:31

USA v16 and v32

Jan 26 2011
11:37:00
Jan 26 2011 11:37:00 CTR-DMO-RLS-NDBG-US-NTSC ARM-400902 NN-0.14.19 dave_p_build

Europe Kiosk Demo

Jan 25 2011
59:28

Europe v0 and v16

Jan 26 2011
11:40:21
Jan 26 2011 11:40:21 CTR-DMO-RLS-NDBG-EU-NTSC ARM-400902 NN-0.14.19 dave_p_build

Japan v32

Jan 26 2011
11:38:41

Japan v48

Jan 26 2011
11:38:41

Japan Kiosk Demo

Jun 13 2011
11:34:53
Jun 13 2011 11:34:53 CTR-DMO-RLS-NDBG-JP-NTSC ARM-400902 NN-0.14.19 evan_r3

The only non-header difference between USA v16 and v32, or between Europe v0 and v16, is adding a digital manual - there are no other differences in the files contained within the ExeFS and RomFS.

(Source: Ferrox)

(Source: Original TCRF research)

Error Messages#

A bunch of hilarious messages and error strings can be found in the executable.

*@glider: I required a pants-kick of %.3f MPH
glider: entered water while landing
=pants rocket: crashed into landing pad! (flying)
Hey I suck!  playing > max_sounds (%d > %d)
rocket: hey: trying to transform into wingsuit but rocket isn't wearing wingsuit
rocket: already is wingsuit!
rocket: hey, we somehow got into landed/out of fuel!
rocket: hit a landing pad at over 50 MPH into landing pad! (ground_spring)
rocket: crashed into landing pad! (collide)
Creating 3d sound failed.  Supposed to be impossible.
Attempt to call ValueFileLoadHumanReadable() from non-PC platform???
undestroyed sound: %s
%s/%d: Invalid soundclass! (%s)
material(%s:%d): OVERSUBCRIBED: referring to alt_color|layer# is not possible.
Unable to allocate memory for pool
Panic: out of memory in pool(%s)
uistyle: can't find style %s
Art: Picture #%d not found in %s
gridmenu: attempted to unregister plugin that was not currently registered.
eventwob: ewedit tried to quick-restart-create a non-editable class! (%s/%s)
eventwob: importing legacy tokens
colortex: %s has a vehicle_layers table but isn't marked to have generated body texture
savefile: format failed (0x%08x), trying again
savefile: second format failed (0x%08x)
savefile: remount failed
savefile: reformatting
savefile: reformat failed again, oh well
savefile: re-re-mount failed.  oh well
savefile: re-remount succeeded
savefile: remounted successfully

*************************************
** DID YOU KNOW? Only non-resident **
**   resources may be extracted!   **
%s[%d]/%s was already resident!

ARSetLoad(%s): this set is already resident.
COTEres: %s: Bad external toc version/size (%d != %d || %d != %d)
Someone tried to forget "%s" too many times!
FaceLib: Error getting extra info for Mii (%d, %d)!
res: waiting for %s...
res: wait(%s) took %d msec
res: Someone was waiting for %s, but it just wasn't pending!
res: wtf!  this node should not be in the fifo anymore
res(%s/%s): Get-Before-Wait failure! Resource set still in flight.
AsyncResourceSetMustLoad(%s): This set is only accessible via ARS
res: bad set header on %s: bad set header crc '0x%8.8x' != '0x%8.8x'
AsyncResourceSet(%s): resident too large for supplied buffer (%d > %d)
AsyncResourceSet(%s): load too large for supplied buffer (%dK > %dK)
Bad MOD version: %d; expecting %d (%s)
Couldn't load ModelInfo %s
mrModelUnload: unloading MODEL_INVALID!!
mrModelLoad(%s) in scene!
TEXTURE_NULL
(INVALID)
gText: escape sequence %s already is contained within another escape sequence
BlockHeapAllocator: no current block set and cannot find heap in which 0x%x was allocated
BlockHeapAllocator::Free: no current block set and not in relaxed mode.
gamemaster: too many objective creation functions specified (max %d)
GameMaster: WARNING!!!! - No objective found which will end the event!
thermal.cpp: couldn't load %s!!!!!
package.cpp: too many destinations added (max %d)
package.cpp: too many packages (balloons) added (max %d)
vehicle.cpp: too many nodes specified in car path (max %d)
mem(%s): Max alloc: %dK  Highest address: 0x%x (%dK)
mem(%s): Lowest address: 0x%x (%dK)  Range: %dK
mem(%s): Unused: %dK
face: CFL_InitCharModel() fails (%d)
face: CFL_MakeIcon() fails (%d)
file: %s still in use
MemFree(%s): overrun: footer cookie corruption (%x:@EOB+%d) in %s (%2.2x != %2.2x)
IdentityRegisterCallback: Tried to add too many callbacks (max %d)
D:\build_unaware\SRC\kernel\file.cpp
D:\\build_unaware\\SRC\\sound\\soundmgr.cpp

Internal Project Name#

According to strings in the exheader and the code, the project's internal name is "unaware". This may also be reflected in the game's two-letter code "AW" (unaware).

(Source: Original TCRF research)