Skip to content

Commit

Permalink
Added a working algorithm for decompressing DOOM64 format, compressed…
Browse files Browse the repository at this point in the history
… data. This is still somewhat early and requires a lot more study so it can be documented fully.

Has been tested and proven to work with all texture and map data lumps in the original DOOM64 ROM-embedded IWAD on both 32 and 64 bit arches (note: algorithm expects big endian src data and outputs big endian).
  • Loading branch information
danij committed Nov 26, 2008
1 parent edaca13 commit 44ba80a
Show file tree
Hide file tree
Showing 6 changed files with 340 additions and 4 deletions.
4 changes: 4 additions & 0 deletions doomsday/build/codeblocks/doomsday.cbp
Expand Up @@ -243,6 +243,7 @@
<Unit filename="..\..\engine\portable\include\m_args.h" />
<Unit filename="..\..\engine\portable\include\m_bams.h" />
<Unit filename="..\..\engine\portable\include\m_binarytree.h" />
<Unit filename="..\..\engine\portable\include\m_decomp64.h" />
<Unit filename="..\..\engine\portable\include\m_filehash.h" />
<Unit filename="..\..\engine\portable\include\m_gridmap.h" />
<Unit filename="..\..\engine\portable\include\m_huffman.h" />
Expand Down Expand Up @@ -527,6 +528,9 @@
<Unit filename="..\..\engine\portable\src\m_binarytree.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="..\..\engine\portable\src\m_decomp64.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="..\..\engine\portable\src\m_filehash.c">
<Option compilerVar="CC" />
</Unit>
Expand Down
1 change: 1 addition & 0 deletions doomsday/build/win32/doomsday_cl.rsp
Expand Up @@ -15,6 +15,7 @@
./../../plugins/common/src/m_fixed.c
./../../engine/portable/src/m_filehash.c
./../../engine/portable/src/m_bams.c
./../../engine/portable/src/m_decomp64.c
./../../engine/portable/src/m_args.c
./../../engine/portable/src/m_linkedlist.c
./../../engine/portable/src/m_binarytree.c
Expand Down
16 changes: 12 additions & 4 deletions doomsday/build/win32/vs8/doomsday.vcproj
Expand Up @@ -254,11 +254,11 @@
>
</File>
<File
RelativePath="..\..\..\engine\portable\src\bsp_map.c"
RelativePath="..\..\..\engine\portable\src\bsp_main.c"
>
</File>
<File
RelativePath="..\..\..\engine\portable\src\bsp_main.c"
RelativePath="..\..\..\engine\portable\src\bsp_map.c"
>
</File>
<File
Expand Down Expand Up @@ -477,6 +477,10 @@
RelativePath="..\..\..\engine\portable\src\m_binarytree.c"
>
</File>
<File
RelativePath="..\..\..\engine\portable\src\m_decomp64.c"
>
</File>
<File
RelativePath="..\..\..\engine\portable\src\m_filehash.c"
>
Expand Down Expand Up @@ -1269,11 +1273,11 @@
>
</File>
<File
RelativePath="..\..\..\engine\portable\include\bsp_map.h"
RelativePath="..\..\..\engine\portable\include\bsp_main.h"
>
</File>
<File
RelativePath="..\..\..\engine\portable\include\bsp_main.h"
RelativePath="..\..\..\engine\portable\include\bsp_map.h"
>
</File>
<File
Expand Down Expand Up @@ -1564,6 +1568,10 @@
RelativePath="..\..\..\engine\portable\include\m_binarytree.h"
>
</File>
<File
RelativePath="..\..\..\engine\portable\include\m_decomp64.h"
>
</File>
<File
RelativePath="..\..\..\engine\portable\include\m_filehash.h"
>
Expand Down
1 change: 1 addition & 0 deletions doomsday/engine/portable/include/de_misc.h
Expand Up @@ -43,5 +43,6 @@
#include "m_linkedlist.h"
#include "m_binarytree.h"
#include "m_gridmap.h"
#include "m_decomp64.h"

#endif
34 changes: 34 additions & 0 deletions doomsday/engine/portable/include/m_decomp64.h
@@ -0,0 +1,34 @@
/**\file
*\section License
* License: GPL
* Online License Link: http://www.gnu.org/licenses/gpl.html
*
*\author Copyright © 2008 Daniel Swanson <danij@dengine.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301 USA
*/

/**
* m_decomp64.h: Decompression algorithm, used with various lumps of
* DOOM64 data.
*/

#ifndef __M_DECOMPRESS64_H__
#define __M_DECOMPRESS64_H__

void M_Decompress64(byte* dst, const byte* src);

#endif

0 comments on commit 44ba80a

Please sign in to comment.