GithubHelp home page GithubHelp logo

ydkjpsx-master's Introduction

This project provides tools to extract content from YDKJ [Playstation] game files, including Q&A data and audio files. The extracted content is exported in .json files for easy access and manipulation.

GLUEX

The GLUEX program provides a graphical user interface for data viewing and export. Simply run the program and use the intuitive interface to drag and drop files, set export paths, and play audio files. GLUEX logo
Drag & Drop .GLU viewer Listen in the app
Move it or click "View" button and then select .glu file If it contains Q&A data, you can view the entire contents Open the "List" and listen to an audio in the app
Drag & Drop GLU file GLU list
Settings View all Remove all
Do you want to change the export path for the data or the audio format? Then this is for you! Are you tired of clicking "View" and selecting a .glu file every time? Click "View all" and choose a folder with the contents. Tired of clicking the x button every time? Just click "Remove All" to clear all content.
Settings Remove all View all

Python

  • Place the extractor script in the same directory as the .glu files you wish to export. Running the script will export all the files in the current directory.
  • .vag files are audio files. To open them, use the VAGEDIT program.
  • To extract the game itself, you need a .bin file of the game and the jPSXdec program.

.glu

This script is a tool for extracting and processing data from .glu files used in games to store various types of content such as questions (QBD), audio (VAG), and images (IMG).

Content

QBD

This code block is designed to extract structured data from QBD (Question Block Data) blocks within .glu files. QBD blocks contain information about questions and answers for different question types. The question type is determined by reading the value at offset 0x808 (id_value).

Depending on the id_value, the question type is identified as either "Simple Question", "DisOrDat", "Wendithap'n", "Coinkydink", or "Jack Attack". Each question type has different offsets and data structure:

  • Simple Question: Category, question, answer options, and correct answer.
  • DisOrDat: Category, question, two answer options with their corresponding matches.
  • Wendithap'n: Category, question, seven answer options with their corresponding matches.
  • Coinkydink: Category, texts, roots, and answers.
  • Jack Attack: Category, roots, and answers. A JSON file is created with the name corresponding to the question ID, where a structured dictionary of data is stored.

VAG

This code block is designed to extract and save audio data in VAG format from .glu files. It searches for VAG blocks using the signature 0x56\x41\x47\x70. It finds the names of VAG files within the .glu file using a .VAG signature search. Each found VAG block is read and saved into a corresponding .vag file.

IMG

This code block is designed to extract and save graphic data in IMG format from .glu files. It determines the starting index to search for the beginning of IMG blocks using the signature 0x49\x4D\x47\x34. It finds the names of IMG files within the .glu file using a .IMG signature search. Each found IMG block is read and saved into a corresponding .img file.

Usage

The project supports two usage modes via the command line:

  • Processes a specific .glu file.
python glu.py file <filename>
  • Processes all .glu files in the current directory.
python glu.py all

.inf

The script extracts and analyzes data from .inf files used to store information about question types and category names.

  • Map ID (mape_id): Unique identifier of the content.
  • Data containers: Extracts up to 15 data containers, each containing:
    • content_id: Identifier of the content.
    • category_data: Category of the data.
    • type_data: Type of data, which can be one of the predefined values (Simple Question, DisOrDat, Wendithap'n, Coinkydink, Jack Attack).
python inf.py file HTE.INF

vagtowav

The script is a utility for decoding VAG format files (PS2 audio format) into WAV format. VAG files are commonly used for storing sound effects and music in PlayStation games.

Key Functions

vag_file_is_valid

  • File Magic and Version: Checks the file header and its version.
  • Sampling Rate and Channels: Extracts the sampling rate and number of channels (only supports mono).
  • Track Name: Extracts the track name from the file header.

decode_vag

Decodes data from a VAG file into PCM (Pulse-code modulation) format and saves the result to a WAV file:

  • Data Decoding: Unpacks data using coefficients and predictive values specified in the VAG header.
  • Creating WAV File: Writes the decoded data to a WAV file with the specified sampling rate and mono channel.

Additional Functions and Constants

  • VagLutDecoder: Decoding table used to unpack data from VAG format into PCM.
  • VAGFlag: Class of flags used to indicate various operations during VAG data decoding.
  • Loop offset: Helper function to compute loop offset in VAG format.

Usage

The project supports two usage modes via the command line:

  • Processes a specific .vag file.
python vagtowav.py file <filename>
  • Processes all .vag files in the current directory.
python vagtowav.py all

.94

This code serves as a tool for processing .94 files used in PlayStation games (PS-X EXE). It includes functions for extracting information from such files, specifically extracting PS-X EXE data (program code), images (IMG), and audio (VAG). Extracts key parameters from a PS-X EXE file (.94) data in JSON format:

  • Magic Number: Unique file identifier.
  • Region Specific: Region-specific information.
  • Initial PC, GP, etc.: Initial addresses and sizes for various code and data segments.
python 94.py file SLUS_011.94

.cnf

This Python script is designed to process files with the .cnf extension, extracting specific data based on given offsets and saving it in JSON format. It reads the contents of the specified file, extracts information about system boot, version, TCB parameters, EVENT, and STACK, then creates a JSON file with a corresponding name containing structured data.

python cnf.py file SYSTEM.CNF

ydkjpsx-master's People

Contributors

dedz212 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.