# TWL Manual Tools M2d Library Revision History

## Index

### 3.4

#### Added and Changed Features

- Note 16-L01: (Library) Revised the description of sound volume in the Programmer's Guide.

### 3.3

#### Added and Changed Features

- Note 15-L01: (Library) Modified data for the How to Use the Instruction Manual page

### 3.2

#### Added and Changed Features

- Note 14-L01: (Library) Modified data for the How to Use the Instruction Manual page

### 3.1

#### Added and Changed Features

- Note 13-L01: (Library) Modified data for the How to Use the Instruction Manual page

### 3.0

#### Added and Changed Features

- Note 12-L01: (Library) Added support for the Chinese and Korean languages
- Note 12-L02: (Library) Modified data for the How to Use the Instruction Manual page
- Note 12-L03: (Library) Changed processing when memory allocation fails

### 2.2

#### Added and Changed Features

- Note 11-L01: (Library) Changed handling of font array that is received by the initialization function

### 2.1

#### Added and Changed Features

- Note 10-L01: (Library) Modified data for the How to Use the Instruction Manual page
- Note 10-L02: (Library) Changed how hidden objects are handled when previewed

### 2.0

#### Added and Changed Features

- Note 09-L01: (Library) Modified data for the How to Use the Instruction Manual page
- Note 09-L02: (Library) Added functions that explicitly specify the language of the e-manual
- Note 09-L03: (Library) Changed the format of the e-manual binary files and the resource files for the library
- Note 09-L04: (Library) Changed the names used to identify archives in the library
- Note 09-L05: (Library) Added support for situations where the library is called but power-off is not performed automatically

#### Problem Fixes

- Note 09-L06: (Library) Corrected a bug that caused two different page buttons to be selected simultaneously
- Note 09-L07: (Library) Fixed a bug that caused the Previous Page button to remain enabled

### 1.7

#### Problem Fixes

- Note 08-L01: (Library) Fixed a problem in the Japanese UI that caused hits to be detected past the edges of the Previous Page and Next Page buttons.

### 1.6

#### Added and Changed Features

- Note 07-L01: (Library) Changed how font data is handled.
- Note 07-L02: (Library) Changed how DMA settings are configured for GX functions.
- Note 07-L03: (Library) Modified data for the How to Use the Instruction Manual page.

### 1.5

#### Added and Changed Features

- Note 06-L01: (Library) Added an explanation of necessary preprocessing and recovery processing to the Programming Guidelines.

### 1.4

#### Added and Changed Features

- Note 05-L01: (Library) Modified data for the How to Use the Instruction Manual page.

### 1.3

#### Added and Changed Features

- Note 04-L01: (E-Manual Data Binary Converter) Reduced the e-manual data size.

#### Problem Fixes

- Note 04-L02: (Library) Fixed a bug that halted execution when a memory allocator that uses the TWL-SDK heap was specified.

### 1.2

#### Problem Fixes

- Note 03-L01: (Library) Fixed a bug that caused pad operations to be unresponsive after the area without buttons at the top of the Contents screen toolbar was tapped.

### 1.1

#### Problem Fixes

- Note 02-L01: (Library) Fixed a bug that prevented a sound effect from being played for +Control Pad operations when moving to the previous page or next page was not possible.

### 1.0

#### Problem Fixes

- Note 01-L01: (Library) Fixed a bug that prevented scrolling the upper screen.

## Revisions in Version 3.4

### Note 16-L01: (Library) Revised the description of sound volume in the Programmer's Guide.

The Programmer's Guide describes sound preprocessing that is required when using the library. However, information has been added because the original description of sound volume was inadequate.

## Revisions in Version 3.3

### Note 15-L01: (Library) Modified data for the How to Use the Instruction Manual page

Modified data for the Korean-language version of the How to Use the Instruction Manual page.

## Revisions in Version 3.2

### Note 14-L01: (Library) Modified data for the How to Use the Instruction Manual page

Modified data for the Chinese-language version of the How to Use the Instruction Manual page.

## Revisions in Version 3.1

### Note 13-L01: (Library) Modified data for the How to Use the Instruction Manual page

Modified data for the How to Use the Instruction Manual page.

## Revisions in Version 3.0

### Note 12-L01: (Library) Added support for the Chinese and Korean languages

Added support for the Chinese and Korean languages.

### Note 12-L02: (Library) Modified data for the How to Use the Instruction Manual page

Modified data for the How to Use the Instruction Manual page.

### Note 12-L03: (Library) Changed processing when memory allocation fails

In previous versions, depending on the location for memory allocation, processing will continue when memory allocation fails. There were also instances in which it was difficult to notice that there was insufficient memory.

From this version, processing was changed to always stop the program if memory allocation fails.

## Revisions in Version 2.2

### Note 11-L01: (Library) Changed handling of font array that is received by the initialize function

In the previous version, in the initialize function `NTMV_M2dInitFor*`, the pointer to the font array specified by the argument was retained internally without any change. It was necessary that the array remained valid while using that library, but that was not described in the manual.

From this version this was changed to copy the array elements with the initialization function and corrected so that there is no need to maintain the array specified by the function.

## Revisions in Version 2.1

### Note 10-L01: (Library) Modified data for the How to Use the Instruction Manual page

Modified data for the How to Use the Instruction Manual page. Also changed the text for buttons that control the e-manual.

### Note 10-L02: (Library) Changed how hidden objects are handled when previewed

In the past, Manual Viewer did not show hidden objects when previewing individual pages or the entire project. These are now shown.

## Revisions in Version 2.0

### Note 09-L01: (Library) Modified data for the How to Use the Instruction Manual page

Modified image data for the How to Use the Instruction Manual page.

### Note 09-L02: (Library) Added functions that explicitly specify the language of the e-manual

From this version onward, it is possible to handle e-manuals in languages that cannot be specified in the System Settings area of the TWL system. Multiple-language versions of e-manuals can be included in the e-manual binaries. If an e-manual binary contains a language that does not appear in System Settings, the display language cannot be set automatically based on the information in System Settings.
For that reason, we added functions that explicitly specify the display language from the application side.

### Note 09-L03: (Library) Changed the format of the e-manual binary files and the resource files for the library

The format has been changed for both the e-manual binary files (`manpages_narc.blz`) and the resource files for the library (`m2dres_narc.blz`). In previous versions, the library used separate resource files for each market, but from this version onward, all markets share the same resource file.

### Note 09-L04: (Library) Changed the names used to identify archives within the library

In prior versions, the identifiers "LYT" and "MUI" were used when mounting archives within the library. From this version onward, these identifiers have been changed to "M2M" and "M2U," respectively.
For more details on the identifiers, see the Programmer's Guide.

### Note 09-L05: (Library) Added support for situations where the library is called but power-off is not performed automatically

Previously, if the M2d library was called after `PM_SetAutoExit(FALSE)` had been called to stop the power from being turned off automatically, the system would not power down properly even if the Power Button were pressed while an e-manual was being displayed.
To correct this, we have changed the library so that it temporarily sets `PM_SetAutoExit(TRUE)`, which enables the system to power down properly.

### Note 09-L06: (Library) Corrected a bug that caused two different page buttons to be selected simultaneously

In previous versions, a problem would occur if a certain series of steps were done while an e-manual was displayed. This problem would cause the previously selected page button to remain selected, which led to two different page buttons being selected at the same time. This problem has been corrected.

### Note 09-L07: (Library) Fixed a bug that caused the Previous Page button to remain enabled

In previous versions, a problem would occur if a certain series of steps were done while an e-manual was displayed. This problem would cause the Previous Page button to remain enabled, even when there was no previous page. This problem has been corrected.

## Revisions in Version 1.7

### Note 08-L01: (Library) Fixed a problem in the Japanese UI that caused hits to be detected past the edges of the Previous Page and Next Page buttons.

The Japanese user interface had a problem that caused hits to be detected past the edges of the Previous Page and Next Page buttons. This problem has been corrected.

## Revisions in Version 1.6

### Note 07-L01: (Library) Changed how font data is handled.

Font data in the NFTR format used to be accepted, initialized by the E-Manual Display library with the TWL-System function `NNS_G2dFontInitAuto`, and then used to display the e-manual. The `NNS_G2dFontInitAuto` function can only change and initialize the NFTR data once, requiring NFTR data to be reloaded whenever it was passed to the E-Manual Display library. In this release, NFTR data is not accepted unchanged. Instead, it must first be initialized with the `NNS_G2dFontInitAuto` function and then a pointer to the resulting `NNSG2dFont` structure will be accepted.

### Note 07-L02: (Library) Changed how DMA settings are configured for GX functions.

The TWL-SDK's GX functions used to be configured to always use DMA 3 in the E-Manual Display library. In this release, DMAs are set to be used only if they have not already been configured. When the E-Manual Display library exits, the original DMA settings will be restored.

### Note 07-L03: (Library) Modified data for the How to Use the Instruction Manual page.

Modified image data for the How to Use the Instruction Manual page.

## Revisions in Version 1.5

### Note 06-L01: (Library) Added an explanation of necessary preprocessing and recovery processing to the Programming Guidelines.

Added an explanation of necessary preprocessing and recovery processing to the Programming Guidelines.

## Revisions in Version 1.4

### Note 05-L01: (Library) Modified data for the How to Use the Instruction Manual page.

Modified image data for the How to Use the Instruction Manual page.

## Revisions in Version 1.3

### Note 04-L01: (E-Manual Data Binary Converter) Reduced the e-manual data size.

Rearranged the structure of the e-manual data file. This slightly reduced the size of the binary file used for e-manual data.
Note: You cannot use binary files created with earlier versions (1.2). Use binary data exported by the ManualEditor in this package.

### Note 04-L02: (Library) Fixed a bug that halted execution when a memory allocator that uses the TWL-SDK heap was specified.

When the memory allocator specified for the M2d library used the TWL-SDK heap, a bug resulted in failed memory allocation and abnormal operation for some e-manual pages, depending on their structure.
This problem has been corrected.

## Revisions in Version 1.2

### Note 03-L01: (Library) Fixed a bug that caused pad operations to be unresponsive after the area without buttons at the top of the Contents screen toolbar was tapped.

When the area without buttons at the top of the Contents screen toolbar was tapped, a bug caused pad operations to be unresponsive.
This problem has been corrected.

## Revisions in Version 1.1

### Note 02-L01: (Library) Fixed a bug that prevented a sound effect from being played for +Control Pad operations when moving to the previous page or next page was not possible.

When movement using Previous Page or Next Page was not possible, a bug prevented sound effects from being played if Left or Right were pressed on the +Control Pad.
This problem has been corrected.

## Revisions in Version 1.0

### Note 01-L01: (Library) Fixed a bug that prevented scrolling the upper screen.

When the scroll button was tapped after tapping the background of the Contents screen, the screen would not scroll. That problem has been fixed.

CONFIDENTIAL