Skip to content

Infornographie/Progressive

Repository files navigation

Asset Compliance Checker

A lightweight desktop tool that validates game submission assets (screenshots, banners, key art, logos…) against platform-specific requirements — dimensions, file format, file size, JPEG encoding mode, and more.

Built for Release Managers and production teams who need to verify asset packages before submitting to first parties.

Features

  • Automatic detection — point it at a folder, it scans all JPEG, PNG, and PSD files recursively
  • Smart matching — assigns each file to the correct rule using filename patterns first, then technical specs, with a manual dropdown fallback for ambiguous cases
  • Per-file compliance report — green/red/orange status for each rule, with detailed issue descriptions ("1920x1088, expected 1920x1080", "progressive JPEG, must be baseline", "612 kB, max 500 kB")
  • Multi-platform profiles — ships with Nintendo Switch, PlayStation, and Microsoft Store rules out of the box
  • Editable rules — TOML-based profiles you can edit directly in the app, or with any text editor. Adding a new platform = creating a new .toml file
  • Update notifications — checks GitHub Releases on startup and prompts you when a new version is available
  • Single binary — no runtime, no installer, just a .exe you can drop anywhere

Download

Grab the latest .exe from the Releases page. No installation needed — just run it.

Usage

  1. Select a platform profile (Nintendo Switch, PlayStation, Microsoft Store…)
  2. Click Browse or paste a folder path
  3. Review the compliance report
  4. Reassign any mis-matched files via the dropdown if needed

Built-in profiles

Platform Formats checked Key constraints
Nintendo Switch JPEG, PSD Baseline JPEG only (no progressive), strict dimensions per asset type
PlayStation JPEG, PNG, PSD 4K-first dimensions (3840×2160), PSD source for Hero Art (up to 1 GB)
Microsoft Store PNG HD/4K alternatives accepted for most assets, 50 MB cap

Custom profiles

Profiles live in your user config directory:

  • Windows: %AppData%\AssetChecker\profiles\
  • macOS: ~/Library/Application Support/AssetChecker/profiles/
  • Linux: ~/.config/AssetChecker/profiles/

Each profile is a TOML file. Example rule:

platform = "My Platform"

[[rule]]
name = "Hero Banner"
formats = ["jpeg", "png"]
sizes = [[1920, 1080], [3840, 2160]]  # multiple accepted dimensions
max_kb = 4000
progressive = false    # must be baseline JPEG
required = true
count = 1
name_patterns = ["*hero*", "*banner*"]

Rule fields

Field Type Description
name string Display name in the report
formats list Accepted formats: "jpeg", "png", "psd"
width, height int Expected dimensions (single size)
sizes list of [w, h] Alternative accepted dimensions (OR with width/height)
max_kb int Maximum file size in kilobytes
progressive bool false = must be baseline JPEG. Omit to skip this check
required bool Whether the asset is mandatory for submission
count int Expected number of files (0 = any)
name_patterns list Glob patterns matched against the filename (case-insensitive)

Matching priority: rules are evaluated in file order. A file is assigned to the first rule where both a name pattern and dimensions match. If no name+dimensions match is found, name-only matching is tried, then unique spec matching. Remaining files appear as "unassigned" with a manual assignment dropdown.

Building from source

Prerequisites

  • Go 1.21+
  • A C compiler (CGO is required by Fyne):
    • Windows: MSYS2 with pacman -S mingw-w64-x86_64-gcc, then add C:\msys64\mingw64\bin to your PATH
    • macOS: xcode-select --install
    • Linux: sudo apt install gcc (or equivalent)
  • Fyne CLI: go install fyne.io/tools/cmd/fyne@latest

Build & package

# Dev run
go run .

# Release build (Windows)
fyne package -os windows -release

# Or use the build script (auto-increments build number)
.\build.ps1              # build only
.\build.ps1 -BumpPatch   # 1.0.0 → 1.0.1
.\build.ps1 -BumpMinor   # 1.0.1 → 1.1.0
.\build.ps1 -BumpMajor   # 1.1.0 → 2.0.0

Tech stack

  • Go + Fyne for the GUI
  • JPEG/PNG/PSD detection via raw header parsing (no image decoding, no heavy dependencies)
  • BurntSushi/toml for profile parsing
  • sqweek/dialog for native OS file dialogs
  • GitHub Releases API for update checks

License

This project is licensed under the GNU General Public License v3.0. You are free to use, modify, and distribute this software, provided that any distributed modifications are also licensed under GPL v3.

Author

Anthony Avila

About

A lightweight desktop tool for validating game submission assets against first-party platform requirements.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages