npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

3ds-theme-parser

v1.0.1

Published

A parser for the 3DS body_LZ.bin format.

Downloads

9

Readme

3ds-theme-parser

Parses and extracts 3DS body_LZ.bin theme files.

CLI

Usage: 3ds-theme-parser body_lz_bin [output_directory] [options]

Options:
  --save-body, -B        Save the extracted body.bin                   [boolean]
  --pretty-json, -p      Format the JSON with indents                  [boolean]
  --save-json, -j, -A    Write JSON of the body_LZ data to data.json   [boolean]
  --output-json, -J      Write JSON of the body_LZ data to STDOUT      [boolean]
  --save-images, -i, -A  Save the images                               [boolean]
  --save-cwavs, -c, -A   Save the CWAV sound effects                   [boolean]
  --apply-alpha, -a      Apply alpha masks to the folder images        [boolean]
  --process-borders, -b  Process the icon border into a complete image [boolean]
  --json-textures        Include the textures in the output JSON
                         WARNING: RESULTS IN LARGE JSON!               [boolean]
  --json-cwavs           Include the CWAVs in the output JSON
                         WARNING: RESULTS IN LARGE JSON!               [boolean]

API Reference

Classes

Typedefs

ThemeInfo

Kind: global class

new ThemeInfo(bodyBuffer)

The ThemeInfo constructor.

| Param | Type | Description | | --- | --- | --- | | bodyBuffer | Buffer | The body_LZ.bin buffer to parse |

themeInfo.getData([callback]) ⇒ Promise.<ThemeInfoObject>

This is the main function, it will parse the body_LZ.bin data and output a javascript object.

Kind: instance method of ThemeInfo
Returns: Promise.<ThemeInfoObject> - The theme info

| Param | Type | Description | | --- | --- | --- | | [callback] | function | An optional node.js style callback |

ThemeInfoObject : Object

This is the top-level object containing the theme information

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | enableBGM | Boolean | If background music is enabled | | customSFX | Boolean | If custom sound effects are used | | customFolders | Boolean | If custom folder images are used | | customCartridgeColors | Boolean | If custom cartridge colors are used | | customBorders | Boolean | If custom border images are used | | customTopScreenBackground | Boolean | If the top screen has a custom background image | | customBottomScreenBackground | Boolean | If the bottom screen has a custom background image | | topScreen | TopScreenObject | An object containing information about the top screen | | bottomScreen | BottomScreenObject | An object containing information about the bottom screen | | colors | ColorsObject | An object containing information about all of the theme colors | | textures | TexturesObject | An object containing all of the theme textures | | cwavs | CWAVSObject | An object containing all of the theme sound effects |

TopScreenObject : Object

Contains various information about the top screen

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | drawType | Integer | Top screen draw type: 0 = none, 1 = solid color, 2 = solid color with textured squares, 3 = texture. | | frameType | Integer | undefined | Top screen frame type, when draw-type is 3: 0 = texture1 (regular scrolling speed), 1 = texture0 (no scroll), 3 = texture1 (slow scrolling speed). | | topScreen.background | TopScreenBackgroundObject | Contains information about the top screen background | | topScreen.squareOpacity | Float | Controls the opacity of the squares that float in front of the background, ranges from 0 - 1. |

TopScreenBackgroundObject : Object

Contains information about the top screen background

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | texture | TiledImageObject | undefined | The top screen texture when drawType allows it. | | color | RGBObject | undefined | The top screen background color if drawType is set to either 1 or 2. | | gradient | Integer | undefined | The top screen background gradient (0=none, 255=fade all the way to white at the top) |

BottomScreenObject : Object

Contains information about the bottom screen

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | background | BottomScreenBackgroundObject | Information about the bottom screen background | | drawType | Integer | The bottom screen draw type: 0 = none, 1 = solid color(see below), 2 = invalid, 3 = texture. | | framType | Integer | The bottom screen frame type when draw-type is 3: 0 = texture4 (regular scroll), 1 = texture2 (no scroll), 2 = texture3 (flipbook scroll, 0 > 1 > 2 > 0), 3 = texture4 (slow scroll), 4 = texture3 (flipbook scroll, 0 > 1 > 2 > 1 > 0). |

BottomScreenBackgroundObject : Object

Information about the bottom screen background

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | texture | TiledImageObject | undefined | The bottom screen background image |

ColorsObject : Object

This contains all of the colors used in the theme

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | cursor | CursorColor | undefined | Four RGB colors that affect the cursor as it expands and contracts. | | folder3DModel | Folder3DModelColor | undefined | This contains colors for the 3D folder model. | | cartridge | CartridgeColor | undefined | This contains colors that affect both the cart icon that appears for DSiWare, and the file graphic that appears in folders. | | folderTopHighlight | RGBObject | undefined | The highlight used at the top of a folder icon | | pager | PagerObject | undefined | This contains colors that affect the the pager. | | openButton | OpenCloseButtonObject | undefined | Contains RGB data for the open button that appears on the bottom screen when an app is under the cursor. | | closeButton | OpenCloseButtonObject | undefined | Contains RGB data for the close button that appears when home button pressed from within a app. | | zoomedText | ZoomedTextObject | undefined | Contains color data that affects the text that appears above game icons when zoomed to the maximum level. | | bottomScreenIconArea | BottomScreenIconAreaObject | undefined | Contains colors related to the bottom screen icon area. Used when the draw-type is set to solid color. | | bottomScreenOuterArea | BottomScreenOuterAreaObject | undefined | Contains colors releated to the bottom screen outer area. Used when the draw-type is set to solid color. | | folderBackground | FolderBackgroundObject | undefined | Contains information related to the background of folders. | | settingsAndResize | SettingsAndResizeObject | undefined | Contains colors that affect the bottom screen icon-resize and settings buttons. | | activateCameraOverlay | ActivateCameraOverlayObject | undefined | Contains colors for the "press to activate camera" overlay. | | demoUsesRemaining | DemoUsesRemainingObject | undefined | Contains colors for the message that tells you how many demo uses you have remaining. | | topScreenBackground | RGBObject | undefined | The top screen background color if drawType is set to either 1 or 2. |

CursorColor : Object

Four RGB colors that affect the cursor as it expands and contracts.

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | border | RGBObject | The cursor border color | | main | RGBObject | The cursor main color | | unknown | RGBObject | An unknown color | | expandedGlow | RGBObject | The glow of the expanded cursor |

Folder3DModelColor : Object

This contains colors for the 3D folder model.

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | main | RGBObject | The main color | | shadowed | RGBObject | The shadowed color |

CartridgeColor : Object

This contains colors that affect both the cart icon that appears for DSiWare, and the file graphic that appears in folders.

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | main | RGBObject | The main color | | bottomShadow | RGBObject | The bottom shadow color |

PagerObject : Object

This contains colors that affect the the pager.

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | button | PagerButtonColor | undefined | This contains colors that affect the button of the pager | | arrow | PagerArrowColor | undefined | This contains colors that affect the arrows of the pager |

PagerButtonColor : Object

This contains colors that affect the buttons of the pager.

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | downwardSheen | RGBObject | The downward sheen color | | main | RGBObject | The main color | | leftwardSheen | RGBObject | The leftward sheen color |

PagerArrowColor : Object

This contains colors that affect the arrows of the pager.

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | edge | RGBObject | The edge color | | unpressed | RGBObject | The unpressed color | | pressed | RGBObject | The pressed color |

OpenCloseButtonObject : Object

Contains RGB data for the open and close buttons that appear on the bottom screen.

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | button | OpenCloseButtonColor | The colors for the button | | text | OpenCloseButtonTextColor | The colors for the button text |

OpenCloseButtonColor : Object

Contains three colors that are used for the open/close button color

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | pressed | RGBObject | The button background when pressed | | unpressed | RGBObject | The button background when not pressed | | border | RGBObject | The button border color |

OpenCloseButtonTextColor : Object

Contains three colors that are used for the open/close button text color

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | pressed | RGBObject | The pressed text color | | unpressed | RGBObject | The unpressed text color | | shadoow | RGBObject | The text shadow color |

ZoomedTextObject : Object

Contains color data that affects the text that appears above game icons when zoomed to the maximum level.

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | background | RGBObject | The background color | | text | RGBObject | The text color |

BottomScreenIconAreaObject : Object

Contains information related to the bottom screen icon area. Used when the draw-type is set to solid color.

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | emptySlotShadow | RGBObject | The shadow color at the top of an empty slot | | background | RGBObject | The background color | | emptySlotBorder | RGBObject | The empty slot border color | | folderGlow | RGBAObject | The shadow / glow around the folder area |

FolderBackgroundObject : Object

Contains information related to the background of folders.

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | emptySlotShadow | RGBObject | The empty slot shadow color | | background | RGBObject | The background color | | border | RGBObject | The border color |

SettingsAndResizeObject : Object

Contains colors that affect the bottom screen icon-resize and settings buttons.

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | leftBoxShadow | RGBObject | The left box shadow (subtle) | | background | RGBObject | The background color | | border | RGBObject | The border color | | iconGradient | Array.<RGBObject> | A two value array that contains the color values for the icon gradient. | | pressed | RGBObject | The pressed color | | rightBoxShadow | RGBObject | The color right shadow (subtle) |

ActivateCameraOverlayObject : Object

Contains colors for the "press to activate camera" overlay.

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | background | RGBObject | The background color | | text | RGBObject | The text color |

DemoUsesRemainingObject : Object

Contains colors for the message that tells you how many demo uses you have remaining.

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | background | RGBObject | The background color | | text | RGBObject | The text color |

BottomScreenOuterAreaObject : Object

Contains colors related to the bottom screen outer area. Used when the draw-type is set to solid color.

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | striped | RGBObject | The striped color | | background | RGBObject | The background color | | edgeGlow | RGBObject | The edge glow color |

TexturesObject : Object

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | topBackground | TiledImageObject | undefined | This is the texture used for the top-screen background when topScreen.frameType = 1, Used for backgrounds that don't scroll. | | topScrollingBackground | TiledImageObject | undefined | This is the texture used for the top-screen background when topScreen.frameType = 0 or 3, Used for backgrounds that scroll. | | bottomBackground | TiledImageObject | undefined | This is the texture used for the bottom-screen background when bottomScreen.frameType = 1, Used for backgrounds that don't scroll. | | bottomFlipbookBackground | TiledImageObject | undefined | This is the texture used for the bottom-screen background when bottomScreen.frameType = 2 or 4, Split into three separate 320x240 textures that it jumps through like a flipbook. | | bottomScrollingBackground | TiledImageObject | undefined | This is the texture used for the bottom-screen background when bottomScreen.frameType = 0 or 3, Used for backgrounds that scroll. | | movingPattern | TiledImageObject | undefined | This is used with the top screen when topScreen.drawType = 2, see above. Used to tile the top screen in much the same way as the white squares that appear when no theme is selected, this is the moving pattern, it is rotated 90 degrees. | | stillPattern | TiledImageObject | undefined | textures.movingPattern This is used with the top screen when topScreen.drawType = 2, see above. Used to tile the top screen in much the same way as the white squares that appear when no theme is selected, this is the still pattern, it is rotated 90 degrees. | | closedFolder | TiledImageObject | undefined | This is used for closed folders on the main menu. | | openFolder | TiledImageObject | undefined | This is used for open folders on the main menu. | | largeIconBorder | TiledImageObject | undefined | This is used for 48x48 icon borders on the main menu. | | smallIconBorder | TiledImageObject | undefined | This is used for 24x24 icon borders on the main menu. |

CWAVSObject : Object

Contains buffers of CWAV data for all of the sound effects.

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | cursor | Buffer | undefined | The sound for cusor movement | | Launch | Buffer | undefined | The sound for application launch | | folder | Buffer | undefined | The sound for folder buttons | | cancel | Buffer | undefined | The sound for cancel buttons | | frame0 | Buffer | undefined | | | frame1 | Buffer | undefined | | | frame2 | Buffer | undefined | | | openLid | Buffer | undefined | The sound for when the lid is opened |

RGBObject : Object

This describes a RGB color

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | r | Integer | Red channel from 0 - 255 | | g | Integer | Green channel from 0 - 255 | | b | Integer | Blue channel from 0 - 255 |

RGBAObject : Object

This describes a RGBA color

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | r | Integer | Red channel from 0 - 255 | | g | Integer | Green channel from 0 - 255 | | b | Integer | Blue channel from 0 - 255 | | a | Integer | Alpha channel from 0 - 255 |

TiledImageObject : Object

An object with the tiled image bitmap data, size, and crop dimensions.

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | data | Buffer | The image bitmap data buffer | | width | Integer | The image width | | height | Integer | The image height | | cropWidth | Integer | The image crop width | | cropHeight | Integer | The image crop height | | type | String | The image type, one of the following: rgb565, bgr888, a8 | | tag | String | A string identifying the image, see TextureKind.js |