Examples corresponding to WM changes in move from NitroSDK2.0FC to 2.0RC1
                                                                  10/06/2004

This document was written to support fixes to uncompatible parts of the programs in 2.0RC1.
For all changes, refer to changelog.html.

1. Change to type of game group ID
===========================

The structure of WMParentParam (the old name WMpparam can also be used) was changed.
A dummy u16 variable was inserted in the third member variable for padding.
Also, u16 ggid[2] was changed to u32 ggid.

Therefore, the following changes are necessary.

  static const WMParentParam   wcDefaultParameter =
  {
      NULL ,  0 ,
 -    { (u16)WC_GGID , (u16)(WC_GGID>>16) } ,  // game group ID
 +    0 ,                         // padding
 +    WC_GGID ,                   // game group ID
      0x0000 ,                    // temporary ID (done every time + 1)
      1 ,                         // entry permission flag

In the WC_GGID part, set the game group ID alloted by Nintendo as the u32 value.

Also, for WMGameInfo u16 ggid[2] was changed to u32 ggid.
There must be a part performing ggid comparison in the check of results of scanning parent with WMStarScan. 
Therefore, it is also necessary to make those changes.
Examples of changes are as follows.

      // confirm whether GameGroupID agrees
      if(
          ( ( wcWmBssDesc->length * 2 ) >= ( 64 + 8 ) ) &&
 -        ( wcWmBssDesc->gameInfo.ggid[ 0 ] == wcDefaultParameter.ggid[ 0 ] ) &&
 -        ( wcWmBssDesc->gameInfo.ggid[ 1 ] == wcDefaultParameter.ggid[ 1 ] )
 +        ( wcWmBssDesc->gameInfo.ggid == wcDefaultParameter.ggid )
      )
      {

  | This is unrelated to the current changes, but note that the part comparing wcWmBssDesc->length
    was missing from old SDK demo.
    It is absolutely necessary to check whether a valid value for WMBssDesc.gameInfo is inserted.
    Therefore, take this opportunity to confirm that a check of the WMBssDesc.length or WMBssDesc.gameInfoLength
    value was properly done.


2. Changes to MAC address type
======================

MAC address expression was changed from u16 macAddress[3] to u8 macAddress[6].
Change as necessary places that receive MAC address, starting with the 
WM_STATECODE_CONNECTED notification that comes to the callback to WM_StartParent.

Also, the WMScanParam.bssid set during scan changed to u8 bssid[6].
Therefore, changes like the examples below are necessary.

      wcScanParameter->channel = WC_DEFAULT_CHAN;
      wcScanParameter->maxChannelTime = WC_SCAN_TIME_MAX;
 -    wcScanParameter->bssid[ 0 ] = 0xffff;
 -    wcScanParameter->bssid[ 1 ] = 0xffff;
 -    wcScanParameter->bssid[ 2 ] = 0xffff;
 +    wcScanParameter->bssid[ 0 ] = 0xff;
 +    wcScanParameter->bssid[ 1 ] = 0xff;
 +    wcScanParameter->bssid[ 2 ] = 0xff;
 +    wcScanParameter->bssid[ 3 ] = 0xff;
 +    wcScanParameter->bssid[ 4 ] = 0xff;
 +    wcScanParameter->bssid[ 5 ] = 0xff;


3. Changes to WM_StartMPEx interface
======================================

The argument BOOL ignoreFatalError was added to WM_StartMPEx.
Add FALSE to end of arguments in normal applications.
There are no changes to applications using WM_StartMP.

      wmResult = WM_StartMPEx(
          WcCb_StartMP ,
          wcRecvBuffer ,
          (u16)wcRecvBufferSize ,
          wcSendBuffer ,
          (u16)wcSendBufferSize ,
          (u16)(wcParentParameter->CS_Flag ? 0 : 1),
          0,
          TRUE,
          TRUE,
          FALSE
 +        , FALSE       // ignoreFatalError added this time
      );
