Files
etcprs/README.md
2026-03-18 03:06:27 -06:00

124 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ETC PRS Viewer & Editor (Web-Based)
A modern, web-based viewer and editor for ETC Expression .prs personality files.
This tool allows you to inspect, modify, and export fixture personalities using an intuitive UI with support for 16-bit channel pairing, drag-and-drop reordering, and local file history.
# 🚀 Application Functionality
## Core Features
- Open & View PRS Files
- Load .prs files directly from your system
- Clean visual layout with card or table views
- Accurate parsing based on reverse-engineered binary structure
- Edit Personalities
- Modify channel attributes, flags, and home values
- Support for:
- Independent
- LTP
- 16-bit
- Flipped
- 16-bit channels are represented as a single unified card
- 16-bit Channel Handling
- Proper pairing based on actual binary flags (no heuristics)
- Editing applies correctly across paired channels
- Home/display values follow ETCs storage behavior (stored in second channel)
- Drag-and-Drop Reordering
- Reorder channels using a dedicated drag handle
- 16-bit pairs move together as a single unit
- Prevents accidental dragging while editing inputs
- Export PRS Files
- Export valid .prs files from both:
- Viewer page
- Editor page
- Output matches ETC Personality Editor structure
## UI Features
- Global Menu Bar
- Open PRS File (auto-load on selection)
- Create New PRS File
- Previously Opened Files
- Snapshot Versions
- Secondary Control Bar (Contextual)
- Viewer:
- Switch to Editor
- Toggle Card/Table view
- Export PRS
- Editor:
- Add Channel
- Save Snapshot
- Export PRS
- Exit Editor
- Toggle Card/Table view
- View Modes
- Card-based layout for intuitive editing
- Table view for compact overview
## Data Persistence
Uses browser localStorage for:
Recently opened files
- Snapshot history
- No backend required
# 🛠️ How to Run the Program
Requirements:
- Node.js (v18+ recommended)
- npm
## Setup
### Install dependencies
```sh
npm install
```
### Run Development Server
```sh
npm run dev
```
Then open your browser to:
http://localhost:5173
## Build for Production
```sh
npm run build
npm run preview
```
## ⚠️ Ethical Disclosure
This project includes the use of AI-assisted development and reverse engineering techniques.
## AI Usage
Portions of this application—including:
- UI implementation
- Data handling logic
- Iterative refinement of features
were developed with the assistance of an AI system (ChatGPT).
All outputs were reviewed, tested, and refined by a human developer before inclusion.
## Reverse Engineering
The .prs file format used by ETC Expression lighting consoles is not publicly documented in full detail.
To support this application:
- The file format was analyzed through:
- Inspection of real .prs files
- Behavioral comparison with ETCs Personality Editor
- Static analysis of the Personality Editor executable
- No proprietary source code was accessed or used.
- The reverse engineering was limited to understanding file structure for interoperability.
## Intent
This project is intended for:
- Educational purposes
- Interoperability and tooling
- Supporting legacy systems
It is not affiliated with or endorsed by ETC (Electronic Theatre Controls).
# 📌 Notes
- All file handling is local to your machine/browser
- No data is transmitted externally
- The application is designed to faithfully replicate ETC behavior where possible