rpgmaker-mv-decoder 1.4.0
Quickly decode or encode assets for RPG Maker MV, even if you don't have the key
License: MIT license
Requires Python: >=3.6
Keywords: rpgmaker_mv_decoder


RPGMaker MV Decoder v1.4.0
==========================


.. image:: https://img.shields.io/github/workflow/status/kins-dev/rpgmaker_mv_decoder/CodeQL/v1.4.0?label=v1.4.0%20CodeQL&logo=GitHub
   :target: https://github.com/kins-dev/rpgmaker_mv_decoder/actions/workflows/codeql-analysis.yml
   :alt: v1.4.0 CodeQL Status
 
.. image:: https://img.shields.io/github/workflow/status/kins-dev/rpgmaker_mv_decoder/Python%20application/v1.4.0?label=v1.4.0%20Python%20application&logo=GitHub
   :target: https://github.com/kins-dev/rpgmaker_mv_decoder/actions/workflows/python-app.yml
   :alt: v1.4.0 Python Application Status
 
.. image:: https://img.shields.io/github/workflow/status/kins-dev/rpgmaker_mv_decoder/Upload%20Python%20Package/v1.4.0?label=v1.4.0%20Upload%20Python%20Package&logo=GitHub
   :target: https://github.com/kins-dev/rpgmaker_mv_decoder/actions/workflows/python-publish.yml
   :alt: v1.4.0 Pylint Status
 
.. image:: https://img.shields.io/readthedocs/rpgmaker_mv_decoder/v1.4.0?label=v1.4.0%20Documentation&logo=readthedocs
   :target: https://rpgmaker-mv-decoder.readthedocs.io/en/v1.4.0/
   :alt: Documentation status


.. image:: https://img.shields.io/pypi/v/rpgmaker_mv_decoder?label=Latest%20pypi%20release&logo=pypi&color=blue
   :target: https://pypi.python.org/pypi/rpgmaker_mv_decoder
   :alt: Latest pypi release


This is a set of python scripts for decoding and encoding RPGMaker MV/MZ game assets.

Decoding has a handy feature, it will figure out (if possible) the key automatically.
It will also can use the file data for creating the extension.
If you know the key, you can pass it in.

If you want you can use the `API <https://rpgmaker-mv-decoder.readthedocs.io>`_ instead

Features
--------


* GUI for those who need that
* Fast
* No key needed if there's any encoded png images
* Can put proper file extensions on the decoded files

Example usage
-------------

.. code-block:: bash

   ./decoder.py "<source path>" "<destination path>" ["<optional key>"]

.. code-block:: bash

   ./encoder.py "<source path>" "<destination path>" "<key>"

.. code-block:: bash

   ./gui.py

The GUI has a fairly simple main window:


.. image:: https://raw.githubusercontent.com/kins-dev/rpgmaker_mv_decoder/main/docs/_static/screenshots/main.png
   :target: https://raw.githubusercontent.com/kins-dev/rpgmaker_mv_decoder/main/docs/_static/screenshots/main.png
   :alt: Main Window


Progress will be shown while finding the key, decoding the files or encoding the files:


.. image:: https://raw.githubusercontent.com/kins-dev/rpgmaker_mv_decoder/main/docs/_static/screenshots/progress.png
   :target: https://raw.githubusercontent.com/kins-dev/rpgmaker_mv_decoder/main/docs/_static/screenshots/progress.png
   :alt: Progress Dialog


Hitting the question mark will bring up the about box, which gives some handy links:


.. image:: https://raw.githubusercontent.com/kins-dev/rpgmaker_mv_decoder/main/docs/_static/screenshots/about.png
   :target: https://raw.githubusercontent.com/kins-dev/rpgmaker_mv_decoder/main/docs/_static/screenshots/about.png
   :alt: About Dialog


Help
----

You can use the standard ``--help`` option for full documentation:

Decoding
^^^^^^^^

.. code-block:: text

   Usage: decode.py [OPTIONS] <Source> <Destination> [<Key>]

     Decodes RPGMaker files under <Source> directory to <Destination> directory.

   Arguments:
     <Source>       The source directory. For best results this should be the
                    parent of the 'www' or 'img' directory.
     <Destination>  The parent destination directory. This script will create a
                    project directory under this path if it doesn't already
                    exist.
     <Key>          The decoding key to use. This argument is optional. If the
                    key is omitted it will be inferred (if possible) based on the
                    file contents.

   Options:
     --detect_type  Detect the file type and use the associated file extension.
                    By default .rpgmvp becomes .png and .rpgmvo becomes .ogg
                    regardless of the file contents.
     --version      Prints the version number
     --overwrite    Overwrite files without prompting
     --help         Show this message and exit.

Encoding
^^^^^^^^

.. code-block:: text

   Usage: encode.py [OPTIONS] <Source> <Destination> <Key>

     Encodes image and audio files under <Source> directory.

   Arguments:
     <Source>       The source directory. For best results this should be the
                    parent of the 'www' or 'img' directory.
     <Destination>  The parent destination directory. This script will create a
                    project directory under this path if it doesn't already
                    exist.
     <Key>          The encoding key to use.

   Options:
     --version    Prints the version number
     --overwrite  Overwrite files without prompting
     --help       Show this message and exit.


=======
History
=======

1.4.0 (2022-05-10)
------------------

* Fixed minor API bugs
* Fixed documentation
* Added cli overwrite prompt
* New messaging system
* New prompt system
* Updates to the progress UI
* Renamed callback module to callbacks
* Refactored messaging to user
* Better package information
* Added --overwrite and --version to options for CLI tools

1.3.0 (2022-05-04)
------------------

* Added project class
* Updated messages for skipped files
* Fixed same key calculation
* Code cleanup
* Refactored CLI - Removed duplicated code

1.2.1 (2022-04-26)
------------------

* Fixed history
* Callback class to make life easier internally

1.2.0 (2022-04-21)
------------------

* Added overwrite handling in the GUI

1.1.1 (2022-04-18)
------------------

* Fixing tag issue
* Fixing release build

1.1.0 (2022-04-18)
------------------

* Documentation changes
* GUI changes

1.0.3 (2022-04-18)
------------------

* Bumping version to fix out of order upload to pypi

1.0.2 (2022-04-15)
------------------

* Fixed history file
* Fixed documentation link

1.0.0 (2022-04-15)
------------------

* Added about dialog
* Production ready

0.3.4 (2022-04-14)
------------------

* Updating actions to publish properly
* Documentation updates

0.3.3 (2022-04-14)
------------------

* Fix to GitHub actions

0.3.2 (2022-04-14)
------------------

* Automate the release process

0.3.1 (2022-04-13)
------------------

* Fixes to documentation

0.3.0 (2022-04-13)
------------------

* Added icons
* Added encoding
* Changed exe name
* UPX packing on Windows
* Documentation updates

0.2.4 (2022-04-06)
------------------

* More testing
* Bump2Version configuration fixes
* Fixing up tox.ini

0.2.3 (2022-04-01)
------------------

* Added tests

0.2.2 (2022-04-01)
------------------

* Fixed documentation
* Fixed exceptions

0.2.1 (2022-03-31)
------------------

* Bug fixes

0.2.0 (2022-03-30)
------------------

* Added GUI

0.1.1 (2022-03-23)
------------------

* Faster key detection
* Python typing
* Added documentation
* Keeping files compatible with RPGMaker MV/MZ
  * Using .png or .ogg instead of real extension

0.1.0 (2021-04-18)
------------------

* First release on PyPI.