ScratchData LogoScratchData
Back to Geotale's profile

Pokémon B/W Front Sprites

GEGeotale•Created October 22, 2021
Pokémon B/W Front Sprites
21
14
226 views
View on Scratch

Description

Left/Right arrow keys to switch displayed sprite after they've finished decompressing (Unlike my other projects, instead of converting base-64 to binary, it's actually decompressing everything to pixel data). https://turbowarp.org/588261162/fullscreen?stuck Might want this for faster decompression and faster scrolling Sprites extracted from a site that technically has comments so I'm not going to name it here (But I think anyone that would wonder already knows what it is). This is all 820 Pokémon B/W (non-shiny) front sprites, stored as pen. This actually compresses all of the data better than PNGs, taking 955760 characters to store all of the sprites in base-93, while the ZIP of all PNGs is ~1600000 bytes large in base-256! I didn't store everything to be quite as small as possible I don't think, at least when taking palettes into account, and different forms of already existing sprites. This compression format is sorta weird and complex -- It uses LZ77 along with a kinda complicated storage method for colors. It's basically: (Color table initialized to a transparent pixel) Offset of the sprite to the right Offset of the sprite downwards Width - 1 (stored in 2 characters if width >= 93) Height - 1 (stored in 2 characters if height >= 93) For every pixel in the sprite { If going to copy from previous data in the output { Number of pixels to copy - 1 (Must be < 47 pixels) Offset to copy from relative to current pixel (2 bytes) } Else { If the color table includes the color { If the index of the color in the color table is < 8 { 46 + 31 + index of color in color table } else { 46 + 31 + 8 + (index mod 8) 46 + All but last digit of floor(index / 8) in base 46 Last digit of floor(index / 8) in base 46 } } else { Convert color to number with each part being 5-bit 46 + First digit of color in base 93 Second and third digit of color in base 93 (Add color to color table) } } } So... yeah. A bit complicated, but hey, it works, and it makes it so this project doesn't even get close to the 5mb limit for *820* different sprites! I mean... who needs costumes anyways? If there aren't too many animation sprites maybe I'll try to add those in in the future or something?

Project Details

Project ID588261162
CreatedOctober 22, 2021
Last ModifiedOctober 23, 2021
SharedOctober 23, 2021
Visibilityvisible
CommentsAllowed