Files
LCD-Game-Shrinker/README.md
2021-08-13 08:06:33 +02:00

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.