Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

CPyMO 3DS

From GameBrew
Revision as of 01:15, 27 July 2024 by HydeWing (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
CPyMO
Cpymo3ds.png
General
AuthorSeng-Jik, tuyunlei
TypeGame Engine
Version1.1.9
LicenseAGPL-3.0
Last Updated2023/08/14
Links
Download
Website
Source

CPyMO is a visual novel engine implemented in C for Nintendo 3DS, Windows, Linux, and macOS. It is based on the PyMO Engine and supports two backends: SDL2 and 3DS Citro2D.

This is working in progress, current version has support all of graphics features.

Installation

Note: Only run copies of games that you legally own.

Instructions:

  • Create a directory named pymogames on your SD card.
  • Place your game data into pymogames and make sure that pymogames/startup/gameconfig.txt is accessible.
  • Note that the path should contain only alphanumeric characters and underscores.
  • Install the CIA file and start the application (or run the 3DSX file via Homebrew Launcher).

You will also need to dump your 3DS's DSP firmware to enable sound. You can install that with Luma3DS:

  • Open Rosalina Menu with L+D-Pad Down+Select.
  • Select Miscellaneous > Dump DSP Firmware.

User guide

Differences from PyMO

  • CPyMO uses different save locations and formats compared to PyMO, so they are not interchangeable.
  • CPyMO does not support MID format audio playback.
  • The mask gradient animation effects in CPyMO differ from those in PyMO.
  • CPyMO applies easing effects to animation timing curves, while PyMO uses linear effects.
  • The menu and user interface in CPyMO are different from those in PyMO.
  • CPyMO does not support preloading; any preloading options will be ignored.
  • CPyMO ignores all font settings except font size, and automatically enables font shadows and anti-aliasing.

Debug mode

To view the CPyMO console, hold the L button while selecting a game from the list by pressing A.

Recommended settings for 3DS

Recommended settings for adapting PyMO games to the 3DS:

  • Resolution - 400×300 (3DS native resolution is 400x240 but supports full-screen expansion)
  • Audio Format - Ogg, 16-bit signed little-endian, 32000Hz
  • Background Format - JPG
  • Other Images - PNG with transparency; avoid additional mask grayscale images
  • Platform Parameter - pygame
  • Default Font Size - 28
  • Video Format - H264 MP4, under 30FPS; only supported on New 3DS models

Fonts

The 3DS version of CPyMO does not load custom or TTF fonts from games but uses the Source Han Sans (思源黑体) font. This font is converted to the bcfnt format compatible with the 3DS and will be distributed with CPyMO for 3DS under its original SIL license.

If the default font does not meet your needs, you can place a bcfnt-format font at /pymogames/font.bcfnt on your SD card. CPyMO will prioritize this font over the default.

Controls

Start - Quickly exit

Select - Change screen mode

CPyMO for 3DS supports 3D display; use the 3D slider to enable this feature.

ZL/ZR buttons serve the same functions as A/Y buttons for single-handed operation.

Screenshots

cpymo3ds2.png

cpymo3ds3.png

cpymo3ds4.png

Changelog

v1.1.9 2023/08/14

Deprecated:

  • Removed PSP SDL 1.2 backend support.
  • Removed GameCube Makefile.
  • Removed WiiU Makefile.
  • Eliminated macros.
  • Removed pymo-convert.ps1 and pymo-convert-audio.ps1.

New Features:

  • Added the track "Song of PyMO" for use as startup music on some platforms.
  • "Song of PyMO" now serves as startup music on the PSP platform.
  • Save data is now compatible across different game resolutions.
  • Auto Mode: CPyMO ASCII Art now uses an alternative buffer and hides the cursor.
  • CPyMO ASCII Art now supports dynamic terminal resizing during runtime.
  • Replaced pymo-strip.ps1 with cpymo-tool strip.
  • Replaced pymo-convert.ps1 and pymo-convert-audio.ps1 with cpymo-tool convert.
  • cpymo-tool gen-album-cache now automatically searches for #album commands, eliminating the need to manually input list names.

Bug Fixes:

  • Fixed an issue where the screen did not refresh after clicking dialogue.
  • Fixed a bug where only one folder's games were displayed when GAME_SELECTOR_DIR_2 was defined.
  • Fixed a bug where the logical render size was still set in the SDL2 backend under ENABLE_SCREEN_FORCE_CENTERED state.
  • Changed PSV optimization level to O2 to avoid strange behavior observed with O3 optimization.
  • Corrected drawing order errors between background effect layers and Fade layers.
  • Fixed a memory leak issue when exiting the album interface while displaying CGs.
  • Corrected undefined behavior caused by abnormal CG loading in the album.
  • Fixed segmentation faults caused by missing list files in music and album.
  • Fixed a segmentation fault triggered by the change command when script loading fails.
  • Corrected the misinterpretation of the GOTO_ENDING command in mo2pymo.
  • Fixed the issue where "Memories of Autumn 2" could not return to the main menu during the ending.
  • Fixed incorrect interpretation of the namealign field.
  • cpymo-tool gen-album-ui no longer overwrites existing image files.

Optimizations:

  • Added memory trimming for cases where adequate memory cannot be allocated:
    • During background loading
    • During sprite loading
    • When creating critical strings
    • When playing BGM
    • When using the scroll command
    • When using BG_FADE or background fade time is 0, backgrounds will be loaded in a low-memory mode and retried
  • Background images will be unloaded when entering the album interface to reduce memory usage.
  • Improved the text extraction API cpymo_engine_extract_text.
  • Allowed responding to cancel actions in confirmation dialogs.
  • Improved header file imports, eliminating the need for manual -I option configuration.
  • Optimized the scaling ratio of the right-click menu background to prevent text from overflowing beyond the background.

External links

Advertising: