Sorry for the late reply.
calima wrote:Perhaps you could get one of the SD cards with wifi?
I got a Toshiba Flashair last week but sadly didnt went well, so i returned it.
--
lidnariq thanks for the info, i will start the testings soon.
--
marshallh that sounds very interesting
, i may look into that irc channel.
--
I have uploaded a small beta of "Sprite64", it needs some betatesting though, i will explain a bit all the features.
Input: png folder (drop all the pngs here, will ignore any other file or subfolder)
Output: sprite folder (N64 sprite textures)
INCLUDE CODE
If enabled the tool will generate arrays of all the data generated.
INCLUDE PNG
Do a PNG replica of the converted textures as well, plus other features.
ZLIB
The textures compressed will have .zsprite extension instead of .sprite, it needs zlib on N64, not sure if i can find one already ported.
GROUP / SEPARATED
Group: Everything on the same folder, textures will be named in order, starting from 0 on sprites and 1 on tilemaps (0 is empty).
Separated: Every png conversion have his own folder (useful when many sprites)
OPTIMIZE
The tool will use the right TMEM size based on performance preference, an example:
Libdragon limits:
- Horizontal size: textures have to be pair, the tool fixes uneven sizes by adding empty space.
- Vertical size: textures can be any of these sizes: 4,8,16,32,64,128,256
- Maximum size: 256 width or height
OPTIMIZE L/R
Based on the optimized textures generated the tool will attemp to find any empty area for the best result.
Optimize L: Optimize from the left, this can cause alignment problems, but i did a workaround on libdragon.
Optimize R: Optimize from the right, no issues found.
Improvements:
Original texture of 68x69: 18,3KB (32bit)
Texture conversion (68x72, 9 steps * 8 height): 19,1KB
Optimize R: 14,8KB
Optimize L+R: 11,2KB
Zlib: 1,60KB
* Optimize works diferently on 16bit mode.
RGB
Will make transparent the color input for all the png files, it also supports transparent alpha channel.
PNG TO TILEMAP
Will convert a png into a tilemap while converts the tiles into N64 textures.
If include png is enabled will generate:
- A copy of the full map
- A copy of all the tiles
- A tileset of all the tiles generated
If include code is enabled will generate:
- Different arrays of the tilemap as .c files (code.c)
CUSTOM
Allows a custom valid size, even if its beyond the 4KB TMEM, in case we want to use software render.
CHECK TILE
Will check if the tile is repeated by mirroring and generate flags.c if any found.
SMB map example
Tileset of 8x8 (but we want bigger textures on N64 for better performance)
Tileset of 16x16, less tile match, but better performance.
Goldenaxe II example
Tileset of 16x16, deducted mirrored tiles
- Tiles that are completely transparent will be deducted.
- If check tile and include code are disabled, all the tiles from the map will be generated. (since we don't know the array)
PNG TO SPRITE
The second step of the tool is animator viewer and CP editor.
The gif is a bit self explanatory.
Tick is the delay of the animation.
View provides a ghost reference for faster align.
Rect shows all the rectangles and the number of textures generated for that concrete png.
BG changes the background, so we can test if a sprite have "hidden transparent pixels" inside.
Controls:
F1 - Normal window size
F2 - Double size
Left / Right - Anim left or right
Up / Down (mouse wheelup/wheeldown) - Zoom
Num keys - Input
Mouse for anything else
This will generate extra files if include code is enabled:
- animcp_save.dat, the session of the program in case we want to edit later.
- animcp.cp arrays of all the editable content
* CP x and CP y are embedded on sprite format by using hslices/vslices, so you don't need to save or remember them.
The downloads are attached, both are in WIP state.
Avoid rdp_cp_sprite_scaled since i didnt fix the libdragon yet, use rdp_cp_sprite instead.