Skip to content

suppertails66/csmmgtools

Repository files navigation

********************************************************************************
*                             Chou Soujuu Mecha MG                             *
*                     English Translation Patch Materials                      *
********************************************************************************

This package contains the source materials (code/art/script) for the English 
translation project for the Nintendo DS game Chou Soujuu Mecha MG (Super Control
Mecha MG).

                    ****************************************
                    *          Build Instructions          *
                    ****************************************

Before building, make sure to check out all submodules with "git submodule init"
and "git submodule update".
                    
The build system is only set up for Unix-like systems, though none of the code 
is fundamentally dependent on this and could be ported with a bit of effort. 
You'll need the following tools:
  * GCC
  * libpng
  * ImageMagick (convert/mogrify tools)
  * Any dependencies of armips and ndstool
  * Due to unfortunate circumstances, wine. ndstool, which is used to repack the 
ROM, seems to have a bug on Unix systems which causes it to produce filesystems 
that work on some emulators but will not boot on real hardware. This does not 
occur when (an old version of) ndstool is run through wine.

You must provide a ROM image of Chou Soujuu Mecha MG. Your ROM should be
decrypted (if you don't know what that means, it probably is). It should match
the following specifications:

  No-Intro filename: 0547 - Chou Soujuu Mecha MG (Japan).nds
  CRC32:             288F5E78
  MD5:               CCD7052931E3AE09CB4505D19D16C738
  SHA-1:             7150167E394074F43F71325204E6346B6F50A274

Rename it "csmmg.nds" and place it in the root directory of the repository, then 
run build.sh. build.sh should then build all the necessary tools and output the 
translated ROM as csmmg_en.nds. The build process will probably take a while due 
to some heavy-duty image
image editing operations plus the time needed to compress hundreds of files.

If you want to modify the project, check build.sh to see where the resources
that get inserted into the game are coming from.

                    ****************************************
                    *           Resource Overview          *
                    ****************************************

This was the second translation project I ever worked on, so unfortunately I 
didn't do a great job of organizing it. Here's a brief guide to what's what:

asm/csmmg.asm
  
  Source code for ASM modifications, formatted for use with armips.

bvm/extracted

  Contains game script as SJIS-formatted CSV files.
  
  Due to the way the game structures its executable scripts, these contain both
  the game text and various other strings, including character portrait
  identifiers and debug output. _Only_ the actual game text should be edited!
  Changing anything else will cause problems.

  Text boxes must be one-to-one with the original script, i.e. you get one
  English box per Japanese box and no more. While I wish this restriction didn't
  exist, it's usually not a big issue.
  
  Also note that the original scripts were optimized to recycle strings within
  the same script wherever possible, so e.g. a single message of "はい。" may be
  used multiple times in different contexts; I programmed the script extractor
  to print every instance to keep the script readable (if you want to read it
  without the repetition, see extracted_condensed). It's possible to add
  additional strings to circumvent this if necessary, but you'll need to adjust
  the "References" column to reflect the changes, and this can potentially cause
  problems due to the way the game's VM for scripting works.
  
fonts
  
  New fonts.
    
    12x12: New variable-width 12x12 font used for menu text.
    12x12-ascii: New variable-width 12x12 font used for mission text.
      The original game uses an odd optimization where the full font is
      unloaded during mission cutscenes to save memory. In its place, a special
      font containing only the characters needed for that cutscene is loaded.
      Thus, this ASCII font is automatically injected into every cutscene's
      font to allow English characters to be used everywhere.
  
images
  
  Contains images used for translation.
  See index.txt for some notes.
  
  Subfolders:
    cabinarchive/163/multi: Title screen.
    kar: "img" folder contains translated images, "img_orig" contains originals.
      bg: Backgrounds shown on mission select screen.
      roboimage: Mecha preview images shown in shops and menus.
      ShopStartTop: Shop intro screens.
      StaffText: Credits.
                 The translation generates these automatically using a script;
                 see generate_credits.sh.
    mission1205: 
      Character2Cell2: Mission complete/failed messages.
      txt00Cell4: Pause menu.
    opb: Mostly menus.
    workshop: Icons used to replace original kanji logos for each workshop.

text
  
  Menu text. CSV files in same format as bvm/extracted.

                    ****************************************
                    *              Licensing               *
                    ****************************************

See COPYING. Basically, everything by me (Supper) is GPLv3, and everything else
is under the terms of whoever wrote it.

                    ****************************************
                    *               Credits                *
                    ****************************************

                               Supper -- Hacking
                              Phantom -- Translation & Art
                               cccmar -- Testing & Editing