galaxygst


Namegalaxygst JSON
Version 1.0.1 PyPI version JSON
download
home_pagehttps://github.com/SunakazeKun/galaxygst
SummaryPython tool to record GST object motion for Super Mario Galaxy 2
upload_time2023-08-04 17:16:33
maintainer
docs_urlNone
authorAurum
requires_python>=3.10
licensegpl-3.0
keywords nintendo super-mario-galaxy-2 gst dolphin modding
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # galaxygst
![Ghost Luigi and Jibberjay Racers in Wild Glide Galaxy](https://raw.githubusercontent.com/SunakazeKun/galaxygst/master/SCREENSHOT.png)

**galaxygst** is a Python command-line tool to record object motion files (GST files) for [Ghost Luigis](https://www.mariowiki.com/Ghost_(Super_Mario_Galaxy_2)) and [Jibberjay Racers](https://www.mariowiki.com/Jibberjay) in **Super Mario Galaxy 2**. The tool reads relevant information from [Dolphin Emulator](https://dolphin-emu.org/)'s emulated game memory and automatically produces a GST file after recording stopped. The tool requires at least **Python 3.10**. It should also work with 3.11 and newer versions, but this hasn't been tested. Furthermore, it uses [py-dolphin-memory-engine](https://github.com/henriquegemignani/py-dolphin-memory-engine) to interact with Dolphin's game memory. In order to record object motion during gameplay, [Syati](https://github.com/SunakazeKun/Syati)'s *GstRecord* code is required to supply the information from the game to this tool.

It is available on PyPI, meaning that you can easily install it with pip:
```
pip install galaxygst
```

# Limitations
For Ghost Luigis, you should only record proper GST files for normal Power Stars. The game won't recognize GST files associated with Green Stars!

# Usage
In this section, it is assumed that the game you want to record object motion in already uses Syati's *GstRecord* code. The general usage is this:
```
usage: galaxygst [-h] [-address [ADDRESS]] output_folder_path

Record GST object motion in SMG2 from Dolphin memory.

positional arguments:
  output_folder_path  folder to save GST files to

options:
  -h, --help          show this help message and exit
  -address [ADDRESS]  address from which the tool retrieves GstRecordInfo*
```

The ``-address`` option is not required, as the tool assumes ``GstRecordInfo*`` is supplied at ``0x80003FF8`` by default.

# Recording
Before you can record GST files, you need to prepare a recorder object in your galaxy first. For example, ``GhostLuigiRecordHelper`` can be used to record GST files for Ghost Luigi. Once you have configured the helper object, you are ready to use the tool:

1. Launch the modded game in Dolphin and start this command-line tool like explained in previous sections.
2. While the game is running, pay attention to the tool's console output to verify that everything is running correctly.
3. Once you are in the desired galaxy, go to where you placed the recorder object. An A button icon will be displayed on the screen when you are close to it.
4. Once you press A, the recorder object will start. The player's controls will be disabled for one second before the recording starts.
5. If you desire to stop recording, press 2 on the first player's Wiimote.

The tool keeps you informed about its current state, and it should inform you when something goes wrong. Here's an example from one of my tests:
```
Waiting for Dolphin...
Hooked to Dolphin, game ID is SB4P!
Searching for GstRecorderInfo* at 0x80003FF8...
Waiting for GstRecordHelper...
Started recording for GhostAttackGhost in RedBlueExGalaxy Star 1!
Stopped recording!
Dumped 619 ghost frames (approx. 10 seconds) to '.\RedBlueExGalaxy\GhostAttackGhostData01.gst'.
```

After recording, you can build a Ghost.arc containing the GST file. However, this is beyond the scope of this tool. In final releases of your levels, you don't want players to interact with GstRecordHelper objects, so make sure to remove them once they are not needed anymore.

## Synchronization Error
If the recording process terminates due to a synchronization error, you should try the following things before recording again:
- Close unnecessary programs and processes.
- Give the galaxygst process a higher priority.
- Reduce the emulation's execution speed (less than 100%).

If the error persists, try cutting down the emulator's execution speed even further.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/SunakazeKun/galaxygst",
    "name": "galaxygst",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "",
    "keywords": "nintendo,super-mario-galaxy-2,gst,dolphin,modding",
    "author": "Aurum",
    "author_email": "",
    "download_url": "",
    "platform": null,
    "description": "# galaxygst\r\n![Ghost Luigi and Jibberjay Racers in Wild Glide Galaxy](https://raw.githubusercontent.com/SunakazeKun/galaxygst/master/SCREENSHOT.png)\r\n\r\n**galaxygst** is a Python command-line tool to record object motion files (GST files) for [Ghost Luigis](https://www.mariowiki.com/Ghost_(Super_Mario_Galaxy_2)) and [Jibberjay Racers](https://www.mariowiki.com/Jibberjay) in **Super Mario Galaxy 2**. The tool reads relevant information from [Dolphin Emulator](https://dolphin-emu.org/)'s emulated game memory and automatically produces a GST file after recording stopped. The tool requires at least **Python 3.10**. It should also work with 3.11 and newer versions, but this hasn't been tested. Furthermore, it uses [py-dolphin-memory-engine](https://github.com/henriquegemignani/py-dolphin-memory-engine) to interact with Dolphin's game memory. In order to record object motion during gameplay, [Syati](https://github.com/SunakazeKun/Syati)'s *GstRecord* code is required to supply the information from the game to this tool.\r\n\r\nIt is available on PyPI, meaning that you can easily install it with pip:\r\n```\r\npip install galaxygst\r\n```\r\n\r\n# Limitations\r\nFor Ghost Luigis, you should only record proper GST files for normal Power Stars. The game won't recognize GST files associated with Green Stars!\r\n\r\n# Usage\r\nIn this section, it is assumed that the game you want to record object motion in already uses Syati's *GstRecord* code. The general usage is this:\r\n```\r\nusage: galaxygst [-h] [-address [ADDRESS]] output_folder_path\r\n\r\nRecord GST object motion in SMG2 from Dolphin memory.\r\n\r\npositional arguments:\r\n  output_folder_path  folder to save GST files to\r\n\r\noptions:\r\n  -h, --help          show this help message and exit\r\n  -address [ADDRESS]  address from which the tool retrieves GstRecordInfo*\r\n```\r\n\r\nThe ``-address`` option is not required, as the tool assumes ``GstRecordInfo*`` is supplied at ``0x80003FF8`` by default.\r\n\r\n# Recording\r\nBefore you can record GST files, you need to prepare a recorder object in your galaxy first. For example, ``GhostLuigiRecordHelper`` can be used to record GST files for Ghost Luigi. Once you have configured the helper object, you are ready to use the tool:\r\n\r\n1. Launch the modded game in Dolphin and start this command-line tool like explained in previous sections.\r\n2. While the game is running, pay attention to the tool's console output to verify that everything is running correctly.\r\n3. Once you are in the desired galaxy, go to where you placed the recorder object. An A button icon will be displayed on the screen when you are close to it.\r\n4. Once you press A, the recorder object will start. The player's controls will be disabled for one second before the recording starts.\r\n5. If you desire to stop recording, press 2 on the first player's Wiimote.\r\n\r\nThe tool keeps you informed about its current state, and it should inform you when something goes wrong. Here's an example from one of my tests:\r\n```\r\nWaiting for Dolphin...\r\nHooked to Dolphin, game ID is SB4P!\r\nSearching for GstRecorderInfo* at 0x80003FF8...\r\nWaiting for GstRecordHelper...\r\nStarted recording for GhostAttackGhost in RedBlueExGalaxy Star 1!\r\nStopped recording!\r\nDumped 619 ghost frames (approx. 10 seconds) to '.\\RedBlueExGalaxy\\GhostAttackGhostData01.gst'.\r\n```\r\n\r\nAfter recording, you can build a Ghost.arc containing the GST file. However, this is beyond the scope of this tool. In final releases of your levels, you don't want players to interact with GstRecordHelper objects, so make sure to remove them once they are not needed anymore.\r\n\r\n## Synchronization Error\r\nIf the recording process terminates due to a synchronization error, you should try the following things before recording again:\r\n- Close unnecessary programs and processes.\r\n- Give the galaxygst process a higher priority.\r\n- Reduce the emulation's execution speed (less than 100%).\r\n\r\nIf the error persists, try cutting down the emulator's execution speed even further.\r\n",
    "bugtrack_url": null,
    "license": "gpl-3.0",
    "summary": "Python tool to record GST object motion for Super Mario Galaxy 2",
    "version": "1.0.1",
    "project_urls": {
        "Homepage": "https://github.com/SunakazeKun/galaxygst"
    },
    "split_keywords": [
        "nintendo",
        "super-mario-galaxy-2",
        "gst",
        "dolphin",
        "modding"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "19a7e641a4790e1b580441bca5cd2a86751bfaf1413b8fcf869328b4d1cd26f7",
                "md5": "a739b1d14b9efdb9fa85ae03ab825345",
                "sha256": "8f18342470376a9bb13bd3e822bbfc49a58e6b843c1820bcddddea7aacef002a"
            },
            "downloads": -1,
            "filename": "galaxygst-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a739b1d14b9efdb9fa85ae03ab825345",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 21614,
            "upload_time": "2023-08-04T17:16:33",
            "upload_time_iso_8601": "2023-08-04T17:16:33.156812Z",
            "url": "https://files.pythonhosted.org/packages/19/a7/e641a4790e1b580441bca5cd2a86751bfaf1413b8fcf869328b4d1cd26f7/galaxygst-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-04 17:16:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "SunakazeKun",
    "github_project": "galaxygst",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "galaxygst"
}
        
Elapsed time: 0.33766s