Commit Graph

20 Commits

Author SHA1 Message Date
Lephenixnoir f461c08a17
fxconv: introduce an ObjectData interface to avoid assembly
ObjectData is a stream-like object that accepts bytes, bytearrays,
references to external variables and references to other bundled data to
create structures with pointers without having to write assembly.

Internally ObjectData unfolds into static data and an assembly
instruction. Existing assembly support remains fully compatible.

* Added an ObjectData interface to ease reference generation
* Ported topti to ObjectData (instead of assembly)
* Ported libimg_fx and libimg_cg to ObjectData (idem)
2020-12-22 14:51:43 +01:00
Lephenixnoir ee9c459c69
fxconv: add custom conversions
Custom conversions can be used by:
* Providing a converters.py in the main directory with a convert()
  function
* Specifying --custom on the fxconv command-line or using a subfolder or
  assets-{fx,cg} unused by standard fxconv
2020-10-23 13:05:50 +02:00
Lephenixnoir e3af6a5d4b
fxconv: add character spacing in topti fonts
Adds a new parameter "char-spacing" (default: 1) to change character
spacing for fonts rendered with topti.
2020-10-05 16:12:34 +02:00
Lephenixnoir 66d88bef7a
fxconv: better support for indexed images
Indexed images don't have an alpha channel, so the detection of
transparent pixels in fxconv failed. This change forces a conversion of
indexed images to RGBA to properly handle this.
2020-07-16 15:42:23 +02:00
Lephenixnoir 84f77c3136
fxconv: support Unicode fonts
This commit adds the Unicode input feature where fonts are defined by a
set of block files under a common directory.
2020-07-14 15:29:41 +02:00
Lephenixnoir 77c277721f
fxconv: support Unicode in topti fonts (WIP)
This commit changes the output structure of topti to a format that
supports arbitrary Unicode blocks, but still only accepts the fixed set
of charsets that was defined before.
2020-07-14 12:25:39 +02:00
Lephenixnoir bd49e9506e
fxconv: fix temporary files not being removed 2020-07-14 12:20:50 +02:00
Lephenixnoir 822b5107e5
fxconv: expose Area and Grid in the API 2020-07-14 12:20:49 +02:00
Darks b80f2a117a
fxconv API accepts PIL.Image.Image 2020-05-30 15:27:58 +02:00
Lephenixnoir ce78d4814c
fxconv: add support for script mode (-s) 2020-05-30 12:17:06 +02:00
Lephenixnoir c9dd9fad18
fxconv: add support for libimg images on fx-9860G 2020-03-15 12:11:32 +01:00
Lephenixnoir c79b3b1a9d
fxconv: add suport for libimg images and deprecate --image
This commit introduces the libimg image format, selected with the option
type:libimg-image. To avoid confusion with the bopti image format,
options -i and --image are now deprecated and should be replaced with
--bopti-image or type:bopti-image. The fxSDK Makefile has been updated
accordingly.

To support the construction of a structure that contains a pointer in
fxconv, an assembly-code feature has been added. The structure itself is
assembled with as and then linked with the data proper. This allows the
structure to reference the data by name and have the pointer calculated
by ld at link time.
2020-03-11 19:37:27 +01:00
Lephenixnoir 3598f7c387
fxconv: implement support for the p4 and p8 profiles 2020-02-19 22:26:29 +01:00
Lephenixnoir 7cc4199342
fxconv: be even smarter with toolchain/arch detection 2019-09-12 18:20:14 +02:00
Lephenixnoir d74785d34d
fxconv: add toolchain/arch/section command-line parameters
New parameters are:
* --toolchain: specify the target triplet (eg. "sh3eb-elf")
* --arch: specify the binary architecture (eg. "sh3")
* --section: specify the output section (eg. ".rodata")
2019-09-09 09:18:59 +02:00
Lephe e1ddf0f452 fxconv: code review and color image conversion
This change enhances the style of fxconv by using more classes and
generally more Pythonic constructions.

It also introduces image conversion for fx-CG 50, requiring the use
of --fx or --cg to specify the target machine with -i. The default
is set to --fx to maintain compatibility with older Makefiles.
2019-08-04 14:05:59 +02:00
Lephe 14bef439ab fxsdk fxconv: various improvements 2019-07-03 13:49:48 -04:00
Lephe f8dc830adc fxconv: proportional fonts
Lost commit.
2019-07-01 10:45:58 -04:00
Lephe 86a9350a17 fxconv: minor fixes
* Explicitly convert to RGB to avoid errors with exotic formats.
* Don't pollute the user's /tmp directory for debugging purposes.
2019-06-16 00:16:47 -04:00
Lephe d19025bbc9 fxsdk: initial push for gint v2 (WIP but mostly done) 2019-03-21 22:54:06 +01:00