Skip to content
Ulysses edited this page Apr 12, 2024 · 29 revisions

FreeMote is a set of tool libs for Packaged Struct Binary (PSB) format (including PSB/mdf/pimg/scn/info.psb.m etc.).

It's always welcomed to share me (via email) high quality EMT PSBs for research and my collection!

If you've used it in a project, I'd be glad to know!

Guide for rookies

  • Make sure you have .NET Framework 4.8 installed.
  • Drag and drop a xxx.psb/xxx.scn/xxx.pimg file to PsbDecompile.exe to get json files and images.
  • Drag and drop a xxx.json file (you got from PsbDecompile.exe) to PsBuild.exe to get a PSB file.
  • Drag and drop a dx_xxx.psb file (you got from some galgames) to FreeMoteViewer.exe to view it.
  • For other operations, you must learn how to use CMD or Windows Terminal first. Then read commandline usages.
  • Keep in mind that there is no "double-click" or keyboard input involved in a "drag and drop" operation.

Type <tool_name.exe> -h command in CMD or Terminal for tools' instructions. For example, if you don't know how to use PsBuild, just type PsBuild -h and press Enter; If you don't understand PsBuild "info-psb" command (what's that or how to use that), type PsBuild info-psb -h and press Enter.

Trivials

EMT referred in this repo is a short for "い(E)もう(Mou)と(To)". It definitely doesn’t represent for something like Emilia Maji Tenshi or Emotional Motion Technology.

This library/tool is called FreeMote, please do not mention it as "Freemote" or "freemote".

The following tools' names are inspired by programming tools:

  • PsbDecompile <- JustDecompile
  • PsBuild <- MsBuild
  • EmtMake <- cmake/nmake

PSB related tools/articles

psbtools

by @number201724

https://github.com/number201724/psbfile

FreeMote was made as a replacement of @number201724's psbtools at first (Now it's more than that). Many thanks to him.

GMWare.M2 and M2 PSB File Format Specification, version 4

by @GMMan (Yukai Li)

https://gitlab.com/modmyclassic/sega-mega-drive-mini/marchive-batch-tool/-/blob/master/psb_v4.md

Great thanks to @GMMan (Yukai Li) for the detailed document of PSB format,

even including the PSBv1 things which were not supported by FreeMote, and the Trie form algorithm explanation!

MArchiveBatchTool (the CLI tool of GMWare.M2) could be a replacement of FreeMote PsbDecompile/PsBuild info-psb feature.

Try it if FreeMote is not working, and please report issues here with file samples so I can catch it up here.

Note: FreeMote info-psb packing/unpacking support is added since v1.9.3 (2019-07-07).

vgmstream

by @bnnm and other developers

https://github.com/bnnm/vgmstream/wiki/psb.m

vgmstream allows you to directly play many audios in PSB (or psb.m) files (sound_archive type). Thanks for mentioning FreeMote.

You can unpack/repack these audios with FreeMote tools. See https://github.com/UlyssesWu/FreeMote/wiki/Audio

emote-psb-rs

by @storycraft

https://github.com/storycraft/emote-psb-rs

A Rust library to handle PSB files.


FreeMote is developed by Ulysses from Project AZUSA and Independent Galgrammer