# MB_RegisterFile

## Syntax

  `#include <nitro/mb.h>`
  `BOOL MB_RegisterFile(const MBGameRegistry *game_reg, const void *buf);`

## Arguments

game_reg | Pointer to the `MBGameRegistry` structure where the program information to register is saved.
buf | Pointer to memory storing the extracted segment information. This segment information is obtained with the `MB_ReadSegment` function. If the function succeeds, the memory specified here is used internally until the `MB_UnregisterFile` function is called.

## Return Values

Returns `TRUE` when the program registers correctly. Otherwise, returns `FALSE`.

## Description

This function registers the specified program file on the download program list. The parent can simultaneously download game programs up to `MB_MAX_FILE`.The binaries that can operate on a child device during multiboot are NITRO ROMs and HYBRID ROMs. For details, see the Overview.
Before calling this function, specify the segment data by calling the `MB_ReadSegment` function.
When calling this function using segment data that is set for dynamic reading from an archive, note that the MB library will internally start a single thread automatically. For details, see Internal Operation in the `MB_ReadSegment` function.

Note:
When a DS Single-Card Play child selects a game on the IPL, the game may be downloaded from a parent that is not selected, if a particular procedure is performed on the parent side. This problem can be prevented by setting a different GGID in the `MBGameRegistry` structure for each game registered with the `MB_RegisterFile` function.

## See Also

`MBGameRegistry, MB_GetSegmentLength, MB_ReadSegment, MB_UnregisterFile`

## Revision History

2008/09/16 Added a note on restrictions on programs downloaded with the MB library.
2005/02/22 Added a description of problems with DS Single-Card Play.
2005/04/11 Added a note and link for task threads.
2004/09/09 Added a description of the `MB_UnregisterFile` function.
2004/08/09 Initial version.

CONFIDENTIAL