Jump to content

    CPS3 Tile / Sprite Data Compression

    Alpha
    By Alpha,

    sfiiibg5pb9.png

     

    CPS3 emulation is seriously picked up speed! Yesterday it was sounds, backgrounds, and now it's sprite data compression.

     

    CPS3 uses compressed data for it’s BG tiles and Sprite Data. The system has a ‘DMA’ list in Video RAM, and when given the command the video hardware will process this list, and copy + decompress graphic data from the FlashROMs into Video RAM for use by the game.

     

    The compression initially looked rather complex, but actually turns out to be much more simple than first thought (although emulation still isn’t perfect)

     

    The basics of it are simple. The first command in the DMA list is a special command, telling the chip to upload a 256 byte table to its internal memory. The Compressed data contains 8 bit values from 00 - FF. Byte with 0×80 set (0×80 - 0xFF) are treated as a lookup into the table it uploaded, replacing one byte, with one word from the table. This allows them to compress the 128 most common words to a single byte instead of a word, thus saving 50%.

     

    After that there is an RLE stage, bytes with 0×40 set are command bytes, telling the chip to repeat the next byte a certain number of tiles. What you’re left with is a series of values between 0×00 and 0×3f, giving 6bpp (64 colour) sprite / bg tiles.

     

    What isn’t quite understood is what happens if there is an RLE command byte followed by an RLE command byte, or if RLE is applied to a 0×80 byte, does it just affect the first value in the table, or do both get repeated etc.

     

    Here are some screenshots, they’re not quite as good as ElSemi’s, probably due to a bug in the code I’m using right now. Also I’ve had to disable the text layer palette for now because MAME can’t handle over 0×10000 colours in a palette without custom drawing functions.

    The progress has truly become a beautiful sight to see! Keep up the great work Haze, ElSemi, and all the developers.

     

    »» More Screenshots & Original Post


    MAME compiler updated

    Robert
    By Robert,
    Updated Windows Build Tools Now Available

     

    Those of you who regularly build their own MAME binaries on Windows will want to head over to the Development Tools page and follow the directions there to grab the latest set of tools. This set of tools contains the latest officially released mingw toolset, along with a set of patched files that fixes the problems they have been having under Vista. This means that you can now build MAME on a Vista machine just like on any other machine — no more hacks required (in fact, if you have the existing workarounds enabled, you need to remove them; in particular the GCC_EXEC_PREFIX environment variable should be eliminated).

     

    A side effect of this upgrade is that the official base compiler for the Windows builds is now gcc 3.4.5 instead of 3.4.2. This isn’t a big change, but it is worth noting. Hopefully the mingw folks will eventually get around to releasing a 4.x build of gcc sometime in the not-too-distant future, but I’m not holding my breath. A toolchain that supports 64-bit compilation under Windows would also be nice, but let’s not get carried away here.

     

    Finally, the pre-packaged toolset now contains the SDL headers and libraries, so you can build SDLMAME for Windows out of the box.

    Source


    Hoxs64 v1.0.4.23 released

    Robert
    By Robert,

    Commodore 64 emulator

     

    18 June 2007 v1.0.4.23

    ======================

    1) Bug fix to the TAP version 2 reader. The "Giana Sisters" tape file now plays.

     

    2) Adjusted TOD clock to allow the possibility of a TOD Alarm IRQ occurring immediately on

    a write to the TOD clock. The game "Hammer Fist" now plays.

     

    7 June 2007 v1.0.4.22

    =====================

    1) Minor VIC fixes.

     

    4 June 2007 v1.0.4.21

    =====================

    1) Fixed bug introduced in the previous version to the D64/G64/New disk insertion that

    loads tracks into both the whole track and halftrack position.

     

    2) 1541 ROM changed to a 1541C revision 2 to cure a half track miss-alignment issue that

    prevents the correct saving to an inserted floppy following an attempted save with no

    floppy inserted.

     

    4 June 2007 v1.0.4.20

    =====================

    1) Numerous 1541 emulation fixes. The demo Intoxication by Singular and game Starflight

    now work.

     

    2) Fixes to the VIC border unit and background colours. The demos LCP_memories and Skaaneland

    by Fairlight now display correctly.

    Changelog / Download


    CPS-3 now has Backgrounds! (ElSemi WIP)

    iq_132
    By iq_132,

    That's right, the compression of the backgrounds has been (mostly) figured out.

     

    cps3025ho3.png

     

    Check here for more Screenshots/News

     

    WIP


Portal by DevFuse · Based on IP.Board Portal by IPS
×
×
  • Create New...