Giter Site home page Giter Site logo

maxim-zhao / bmp2tilecompressors Goto Github PK

View Code? Open in Web Editor NEW
22.0 4.0 2.0 2.94 MB

Compression DLLs for BMP2Tile

License: MIT License

C 62.77% Assembly 22.28% C++ 10.83% Makefile 0.24% Yacc 2.53% Python 1.36%
sega-master-system graphics compression-implementations sega-game-gear z80

bmp2tilecompressors's People

Contributors

dependabot[bot] avatar iratahack avatar maxim-zhao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

iratahack

bmp2tilecompressors's Issues

Benchmark graph improvement

I think it would be nice if the benchmark graph had a small cross + for the average point of each decompression algorithm calculated from the scattered points, of course of their very same color.

And a circle with radius equal to the standard deviation around that small cross would be the icing on the cake ๐Ÿ˜„

Automated benchmark

  1. Load data
  2. Compress using all plugins
  3. Pass compressed ones through their Z80 decompressors, using a cycle-counting emulator
  4. Generate results
    #3 seems to be the tricky part...

Shining Force Gaiden compressor

It's simple LZ but also bitplane separated so maybe interesting. Likely rather tricky to implement a decompressor that doesn't use a RAM buffer though...

suboptimal output with compress_plane() in Phantasy Star compression (pscompr)

I get some "17 FE 82 FD FD 17 FE" which is suboptimal, as the "82 FD FD" could be stored as a single RLE run "02 FD".
In compress_plane() there's a check for runs of at least 3 equal bytes (if it's worth or not to break a non identical run) but in this case you're not breaking anything so you should RLE them.

it's missing a compressor!

clickbait title! ๐Ÿคฃ

I wonder if you want to add the tile compressor plugin and z80 decompressor I just released a few moments ago: https://github.com/sverx/stc0

I expect it to average at about 0.3 compression level and 1000 bytes/frame decompression speed, which will probably mean it's going to be the fastest among all the ones in the list, of course at the price of a very simple compression. We'll see.

One 'missing' data point on the graph

I just realized that beside the two 'uncompressed' data points on the graph it would make sense to have a third one marking the fastest transfer speed it's possible to achieve without needing either the screen to be off or the transfer to happen entirely in vblank.
This is probably a better reference mark for all the decompression routines.

Something like continuous always safe max speed - but maybe in better words ๐Ÿ˜…

Now, where that point should be is another issue.
We know for the SMS one write every 26 cycles is always safe, but that's not the case for every Game Gears, where this safe value appear to be only every 27 cycles.
Or one could use the official recommended value of 29 cycles.

What do you think about it?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.