mirror of
https://github.com/bzhxx/LCD-Game-Shrinker.git
synced 2025-12-16 07:16:09 +01:00
47 lines
2.3 KiB
Markdown
47 lines
2.3 KiB
Markdown
|
|
# LCD-Game-Shrinker
|
|
This program permits to shrink MAME ROM & Artwork of LCD handheld devices (Game & Watch, Konami, Tiger, Elektronika,...).
|
|
|
|
High resolution artworks are mixed, downscaled and color reduced to match portable device performances.
|
|
|
|
LCD segments are resized and extracted from Scalable Vector Graphics with drop shadow effect.
|
|
|
|
Finally, a compressed data file is created including all relevant information for portable device running LCD-Game-Emulator : https://github.com/bzhxx/LCD-Game-Emulator
|
|
|
|
|
|
# Environment
|
|
Python (3.6) script tested under Linux Ubuntu and Windows 10.
|
|
|
|
# Requirements
|
|
The following application need to be installed
|
|
- [x] Inkscape (v1.02 or v1.10 recommended) https://inkscape.org
|
|
|
|
The following Python modules are used
|
|
- [x] import sys, os, subprocess, re, lxml, importlib, zipfile, numpy, urllib.request, svgutils
|
|
- [x] from struct import pack
|
|
- [x] from PIL import Image,ImageChops
|
|
|
|
|
|
## Usage
|
|
### MAME Artworks and ROMs
|
|
This tool is used to shrink any MAME artwork and ROM **SM510** family.
|
|
You have to place Artwork file and ROM file in their respective directory **input/artwork** and **input/rom**.
|
|
|
|
Design, layout and artwork by *hydef* or *DarthMarino* are recommended.
|
|
[www.mameworld.info](https://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=382366&page=0&view=expanded&sb=5&o=&fpart=2&vc=1&new=)
|
|
|
|
|
|
### Execute
|
|
**Python shrink_it.py** to process all files or
|
|
**Python shrink_it.py input/rom/gnw_mygame_zip** to process a single file.
|
|
|
|
All intermediate files are created in **build/** directory.
|
|
At the end, resulting files are available under **output/** directory.
|
|
The resulting files can be executed by https://github.com/bzhxx/LCD-Game-Emulator ported on https://github.com/bzhxx/game-and-watch-retro-go
|
|
|
|
## Advanced usage : Custom rules
|
|
It's possible to customize the shrinking process by adding some image processing on artwork and graphics.
|
|
For this purpose, a python script is available or must be added in **custom/** directory.
|
|
Sometimes, an example is better than any explanation. So, have a look on **https://github.com/bzhxx/LCD-Game-Shrinker/blob/main/custom/gnw_ball.py**;
|
|
This script customizes the rendering by adding gradient effect, anti-newton rings filter, artwork background shadow and experimental drop shadow effect on each LCD segments.
|