# DMD Config Tool
A command-line tool to automatically configure DMD (Dot Matrix Display) and Backglass settings for Visual Pinball tables using DirectB2S files.
## Features
- Automatic DMD area detection in DirectB2S files
- Support for both 2 and 3 screen setups
- Precise template-based rectangle detection
- Configurable screen layouts via YAML file
- Optional image extraction for debugging
## Installation
```bash
pip install dmd-config
```
## Usage
Basic usage:
```bash
dmd-config your_table.directb2s
```
Save extracted images for debugging:
```bash
dmd-config -s your_table.directb2s
```
Use custom screen configuration:
```bash
dmd-config -c custom_config.yaml your_table.directb2s
```
## Configuration
Create a `DMD_config.yaml` file to define your screen layout:
```yaml
screens:
# Primary display for the playfield
Playfield:
id: 1
size_x: 3840
size_y: 2160
# Display for the DMD (set size_x: 0 for 2-screen setup)
DMD:
id: 2
size_x: 1920
size_y: 1080
# Display for the backglass
BackGlass:
id: 3
size_x: 2560
size_y: 1440
```
## Output
The tool generates an INI file with the same name as your DirectB2S file, containing all necessary settings for:
- PinMAME DMD window
- FlexDMD window
- B2S window settings
- Screen positions and dimensions
## Requirements
- Python 3.8 or higher
- OpenCV
- NumPy
- Pillow
- PyYAML
## License
This project is licensed under the GNU General Public License v3 (GPLv3).
## Contributing
Found a bug or want to contribute? Feel free to open an issue or submit a pull request on GitHub.
## Author
Le-Syl21 (sylvain.gargasson@gmail.com)
Raw data
{
"_id": null,
"home_page": null,
"name": "dmd-config",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "vpinball, dmd, directb2s, pinball, vpinballx, pincab",
"author": "Le-Syl21",
"author_email": "sylvain.gargasson@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/16/27/348e6a49d01efa9fe2c5ca91f05e999a1b85bbd4334ef7391da25cb50d9b/dmd_config-0.1.0.tar.gz",
"platform": null,
"description": "# DMD Config Tool\n\nA command-line tool to automatically configure DMD (Dot Matrix Display) and Backglass settings for Visual Pinball tables using DirectB2S files.\n\n## Features\n\n- Automatic DMD area detection in DirectB2S files\n- Support for both 2 and 3 screen setups\n- Precise template-based rectangle detection\n- Configurable screen layouts via YAML file\n- Optional image extraction for debugging\n\n## Installation\n\n```bash\npip install dmd-config\n```\n\n## Usage\n\nBasic usage:\n```bash\ndmd-config your_table.directb2s\n```\n\nSave extracted images for debugging:\n```bash\ndmd-config -s your_table.directb2s\n```\n\nUse custom screen configuration:\n```bash\ndmd-config -c custom_config.yaml your_table.directb2s\n```\n\n## Configuration\n\nCreate a `DMD_config.yaml` file to define your screen layout:\n\n```yaml\nscreens:\n # Primary display for the playfield\n Playfield:\n id: 1\n size_x: 3840\n size_y: 2160\n\n # Display for the DMD (set size_x: 0 for 2-screen setup)\n DMD:\n id: 2\n size_x: 1920\n size_y: 1080\n\n # Display for the backglass\n BackGlass:\n id: 3\n size_x: 2560\n size_y: 1440\n```\n\n## Output\n\nThe tool generates an INI file with the same name as your DirectB2S file, containing all necessary settings for:\n- PinMAME DMD window\n- FlexDMD window\n- B2S window settings\n- Screen positions and dimensions\n\n## Requirements\n\n- Python 3.8 or higher\n- OpenCV\n- NumPy\n- Pillow\n- PyYAML\n\n## License\n\nThis project is licensed under the GNU General Public License v3 (GPLv3).\n\n## Contributing\n\nFound a bug or want to contribute? Feel free to open an issue or submit a pull request on GitHub.\n\n## Author\n\nLe-Syl21 (sylvain.gargasson@gmail.com)\n",
"bugtrack_url": null,
"license": "GPL-3.0-or-later",
"summary": "A DMD configuration tool from DirectB2S files in Visual Pinball ini",
"version": "0.1.0",
"project_urls": null,
"split_keywords": [
"vpinball",
" dmd",
" directb2s",
" pinball",
" vpinballx",
" pincab"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a28cc5e73aa159d489026f6429404d0249b9e7fa3e889985133f0715dbab7990",
"md5": "0c08933b53e54d84d3b7fd795db123eb",
"sha256": "78c89d4f334027543aa8318bc0bf94f946e8655e80a7063c16bb580fb385a3b6"
},
"downloads": -1,
"filename": "dmd_config-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0c08933b53e54d84d3b7fd795db123eb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 18427,
"upload_time": "2025-01-27T19:33:48",
"upload_time_iso_8601": "2025-01-27T19:33:48.769474Z",
"url": "https://files.pythonhosted.org/packages/a2/8c/c5e73aa159d489026f6429404d0249b9e7fa3e889985133f0715dbab7990/dmd_config-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1627348e6a49d01efa9fe2c5ca91f05e999a1b85bbd4334ef7391da25cb50d9b",
"md5": "2ed43a3fd03c53d4b8a9baa809b4ff69",
"sha256": "c3b7eb9a471f9b355d560d919de647b3b7771dafe8ffccf4cd1bcbfe6a094c1b"
},
"downloads": -1,
"filename": "dmd_config-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "2ed43a3fd03c53d4b8a9baa809b4ff69",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 17313,
"upload_time": "2025-01-27T19:33:51",
"upload_time_iso_8601": "2025-01-27T19:33:51.559867Z",
"url": "https://files.pythonhosted.org/packages/16/27/348e6a49d01efa9fe2c5ca91f05e999a1b85bbd4334ef7391da25cb50d9b/dmd_config-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-27 19:33:51",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "dmd-config"
}