This tool allows you to get a Dynamic Sprite, starting from graphics tables and exgfxs of a non dynamic sprite.

How to use?

in command use this:

ToDynamicX <tablesFile> <output folder path> <name of output folder> <gfxSP1> <gfxSP2> <gfxSP3> <gfxSP4>

Example:

ToDynamicX mysprite.asm ./ mysprite GFX00.bin GFX01.bin GFX02.bin GFX03.bin

Format of table file:

You must add the following tables:

Tiles:

<name_of_Pose0>_Tiles:
    db <tiles used by tiles of the pose 0>
<name_of_Pose1>_Tiles:
    db <tiles used by tiles of the pose 1>

...

XDisplacements:

<name_of_Pose0>_XDisp:
    db <X Disps used by tiles of the pose 0>
<name_of_Pose1>_XDisp:
    db <X Disps used by tiles of the pose 1>
...
<name_of_Pose0>_XDispFlipX:
    db <X Disps used by tiles of the pose 0>
<name_of_Pose1>_XDispFlipX:
    db <X Disps used by tiles of the pose 1>

YDisplacements:

<name_of_Pose0>_YDisp:
    db <Y Disps used by tiles of the pose 0>
<name_of_Pose1>_YDisp:
    db <Y Disps used by tiles of the pose 1>
...
<name_of_Pose0>_YDispFlipY:
    db <Y Disps used by tiles of the pose 0>
<name_of_Pose1>_YDispFlipY:
    db <Y Disps used by tiles of the pose 1>

Sizes:
<name_of_Pose0>_Sizes:
    db <sizes used by tiles of the pose 0>
<name_of_Pose1>_Sizes:
    db <sizes used by tiles of the pose 1>
...

Properties:
<name_of_Pose0>_Sizes:
    db <properties used by tiles of the pose 0>
<name_of_Pose1>_Sizes:
    db <properties used by tiles of the pose 1>
...

Example:

Tiles:
Frame0_Tiles:
	db $00,$02,$20,$22,$32,$40,$41,$42,$04,$05,$06
Frame1_Tiles:
	db $00,$02,$20,$22,$32,$40,$41,$42,$14,$15,$16
Frame2_Tiles:
	db $00,$02,$20,$22,$32,$40,$41,$42,$24,$25,$26
Frame3_Tiles:
	db $00,$02,$20,$22,$32,$40,$41,$42,$34,$35,$36
Frame4_Tiles:
	db $00,$02,$20,$22,$32,$40,$41,$42,$44,$45,$46

XDisplacements:
Frame0_XDisp:
	db $FC,$0C,$FC,$0C,$0C,$FD,$05,$0D,$FD,$05,$0D
Frame1_XDisp:
	db $FC,$0C,$FC,$0C,$0C,$FD,$05,$0D,$FD,$05,$0D
Frame2_XDisp:
	db $FC,$0C,$FC,$0C,$0C,$FD,$05,$0D,$FD,$05,$0D
Frame3_XDisp:
	db $FC,$0C,$FC,$0C,$0C,$FD,$05,$0D,$FD,$05,$0D
Frame4_XDisp:
	db $FC,$0C,$FC,$0C,$0C,$FD,$05,$0D,$FD,$05,$0D

YDisplacements:
Frame0_YDisp:
	db $F8,$F8,$08,$08,$10,$1B,$1B,$1B,$13,$13,$13
Frame1_YDisp:
	db $F8,$F8,$08,$08,$10,$1B,$1B,$1B,$13,$13,$13
Frame2_YDisp:
	db $F8,$F8,$08,$08,$10,$1B,$1B,$1B,$13,$13,$13
Frame3_YDisp:
	db $F8,$F8,$08,$08,$10,$1B,$1B,$1B,$13,$13,$13
Frame4_YDisp:
	db $F8,$F8,$08,$08,$10,$1B,$1B,$1B,$13,$13,$13

Sizes:
Frame0_Sizes:
	db $02,$02,$02,$00,$00,$00,$00,$00,$00,$00,$00
Frame1_Sizes:
	db $02,$02,$02,$00,$00,$00,$00,$00,$00,$00,$00
Frame2_Sizes:
	db $02,$02,$02,$00,$00,$00,$00,$00,$00,$00,$00
Frame3_Sizes:
	db $02,$02,$02,$00,$00,$00,$00,$00,$00,$00,$00
Frame4_Sizes:
	db $02,$02,$02,$00,$00,$00,$00,$00,$00,$00,$00

Notes:

If Tiles table doesn't exist, tool will think that all values are $00
If XDisplacements table doesn't exist, tool will think that all values are $00
If YDisplacements table doesn't exist, tool will think that all values are $00
If Properties table doesn't exist, tool will think that all values are $00
If Sizes table doesn't exist, tool will think that all values are $02

XFlip and YDisp are optative, if the sprite have XFlip then can be flipped horizontally
if the sprite have YFlip then can be flipped vertically.

How works the output?

The tool will optimize the tiles of each pose and create differents sections depends on the tables.
Each section will have its own graphic and dynamic routines and are synched to be showed correctly.

The files returned are:

.asm file with the sprite code.
1 .dynamicinfo and .drawinfo for each section.
1 .bin for each section.

You must put .dynamicinfo files on Dynamic X's DynamicInfo folder
You must put .drawinfo files on Dynamic X's DrawInfo folder
You must put .bin files on Dynamic X's DynamicResources folder

.asm file goes on pixi.