Skip to content

krieffer/kom-viewer

Repository files navigation

KOM Viewer

A desktop application for viewing and analyzing KOG Studios .kom archive files (Grand Chase, Elsword).

Features

  • KOM File Parsing: Complete support for KOG Studios .kom archive format (V.0.2)
  • File Tree Browser: Navigate archive contents with size and compression information
  • Text Viewer with Line Numbers: View decompressed files with line numbering
  • Smart Encoding Detection: Automatic detection of CP949, EUC-KR, UTF-8, and other encodings
  • Search: Find text within file contents (Ctrl+F)
  • Export: Save individual files as .txt or extract all files
  • Dark Theme: Professional dark mode interface
  • Drag & Drop: Drag .kom files into the application
  • Keyboard Shortcuts: Quick access to common operations

Supported Format

  • KOG GC TEAM MASSFILE V.0.2 (zlib-compressed entries)

Requirements

  • Python 3.10 or higher
  • Windows, macOS, or Linux

Installation

From Source

  1. Install dependencies:

    pip install -r requirements.txt
  2. Run the application:

    python main.py [optional-file.kom]

Building Standalone Executable

  1. Build executable:

    python build.py              # Single-file .exe
    python build.py --onedir     # Directory bundle (faster startup)
    python build.py --clean      # Clean before building
  2. Find executable:

    • Single-file: dist/kom-viewer.exe
    • Directory: dist/kom-viewer/kom-viewer.exe

Usage

Opening Files

  • File Menu: File > Open (Ctrl+O)
  • Drag & Drop: Drag .kom files into the window
  • Command Line: python main.py path/to/archive.kom

Viewing Files

  1. Select a file from the tree view on the left
  2. View decompressed content in the text viewer on the right
  3. Use Ctrl+F to search within the content

Exporting Files

  • Single File: File > Export as .txt (Ctrl+S) – Saves current view
  • All Files: File > Export All Files – Extracts entire archive

Keyboard Shortcuts

Shortcut Action
Ctrl+O Open file
Ctrl+S Export current file as .txt
Ctrl+F Find text
Ctrl+C Copy selection
Ctrl+A Select all
Ctrl+Q Exit application

Project Structure

kom-viewer/
├── main.py                  # Application entry point
├── viewer.py                # Main window and GUI components
├── decryptor_interface.py   # KOM archive parser and decoder
├── build.py                 # PyInstaller build script
├── kom-viewer.spec          # PyInstaller specification
├── requirements.txt         # Python dependencies
├── assets/
│   └── dark_theme.qss       # Qt stylesheet for dark theme
├── pyproject.toml           # Project metadata (PEP 621)
└── README.md                # This file

KOM File Format

The .kom format is a proprietary archive used by KOG Studios:

  • Header: 60 bytes with magic string KOG GC TEAM MASSFILE V.0.2.
  • File Table: Array of 72-byte entries (filename, sizes, offset)
  • Data: zlib-compressed file contents

See decryptor_interface.py for implementation details.

License

MIT License – see LICENSE file for details.

Contributing

Contributions are welcome! Please ensure your changes are tested thoroughly before submitting.

Legal Notice

This tool is provided for educational and research purposes only. Do not use it to violate game Terms of Service or redistribute copyrighted content.

Troubleshooting

Application won't start

  • Ensure Python 3.10+ is installed
  • Verify all dependencies: pip install -r requirements.txt

File won't open

  • Verify the file is a valid .kom archive (V.0.2 format)
  • Check the file is not corrupted
  • See the error message for details

Korean text shows as garbled characters or �

  • The viewer automatically detects CP949 (Korean Windows), EUC-KR, and UTF-8 encodings
  • If text shows as � (replacement characters), the KOM archive itself contains corrupted data
  • The original text was lost before the files were compressed into the archive
  • Try getting an uncorrupted version of the KOM file from the original game installation

Build fails

  • Ensure all dependencies are installed: pip install -r requirements.txt
  • Run with --clean flag: python build.py --clean

Credits

Developed for viewing KOG Studios archive files from Grand Chase and Elsword games.

About

A desktop application for viewing and analyzing KOG Studios .kom archive files (Grand Chase, Elsword).

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages