English Amiga Board


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 23 March 2012, 22:43   #1
Crashdisk
Moderator
 
Crashdisk's Avatar
 
Join Date: Jun 2009
Location: France
Age: 46
Posts: 1,985
dms unpacking bug

I find a bug with this DMS file:
Code:
DMS file selected is :
92LEMMS.DMS

DMS classic format
Version number of creator : v1.02
Version needed to extract : v1.00
File size                 : 495.996 bytes
Packed bytes              : 494.199 bytes
Unpacked bytes            : 902.134 bytes
Lowtrack in archive       : 00
Hightrack in archive      : 79
Compression Mode Used     : Quick
Creation date             : 1992.01.03 00:23:31
Time to create archive    : 00:04:24
Info Header CRC           : $4E70

Machine Type              : Amiga
Machine CPU               : Motorola 68000
CPU Coprocessor           : None
Disktype of Archive       : Amiga OS 1.0 OFS
General info              : NoZero Banner 

 Track   Dec Len   RLE Len  Comp Len  C.Mode  C.Flag  U.CRC  D.CRC  H.CRC  G.Flag
------  --------  --------  --------  ------  ------  -----  -----  -----  ------
Banner     1.014       765       398   Quick       1  $C56E  $77D3  $617B   $0000
     0    11.264     2.232     1.734   Quick       1  $D982  $F8A8  $6957   $0000
     1    11.264       628       598   Quick       1  $B609  $848E  $A573   $0000
     2    11.264        16         -  Simple       -  $60A0  $BD92  $0207   $0000
     3    11.264         5         -  Simple       -  $0000  $C9EC  $9CC8   $0000
     4    11.264         5         -  Simple       -  $0000  $C9EC  $9E8F   $0000
     5    11.264         5         -  Simple       -  $0000  $C9EC  $9E4E   $0000
     6    11.264         5         -  Simple       -  $0000  $C9EC  $9F0D   $0000
     7    11.264         5         -  Simple       -  $0000  $C9EC  $9FCC   $0000
     8    11.264         5         -  Simple       -  $0000  $C9EC  $9B83   $0000
     9    11.264         5         -  Simple       -  $0000  $C9EC  $9B42   $0000
    10    11.264         5         -  Simple       -  $0000  $C9EC  $9A01   $0000
    11    11.264         5         -  Simple       -  $0000  $C9EC  $9AC0   $0000
    12    11.264         5         -  Simple       -  $0000  $C9EC  $9887   $0000
    13    11.264         5         -  Simple       -  $0000  $C9EC  $9846   $0000
    14    11.264         5         -  Simple       -  $0000  $C9EC  $9905   $0000
    15    11.264         5         -  Simple       -  $0000  $C9EC  $99C4   $0000
    16    11.264         5         -  Simple       -  $0000  $C9EC  $919B   $0000
    17    11.264         5         -  Simple       -  $0000  $C9EC  $915A   $0000
    18    11.264     6.075     3.356   Quick       1  $DD4D  $0BC0  $E0F8   $0000
    19    11.264    11.219     7.100   Quick       1  $A466  $8E6B  $6CB7   $0000
    20    11.264    11.296     7.590   Quick       1  $98B2  $850B  $2067   $0000
    21    11.264    11.142    10.420   Quick       1  $42D7  $86C5  $0A7D   $0000
    22    11.264    11.261         -  Simple       -  $BF5C  $560E  $A04F   $0000
    23    11.264    11.217         -  Simple       -  $D679  $4DA9  $EC91   $0000
    24    11.264         -         -  NoComp       -  $56CB  $9569  $247A   $0000
    25    11.264         -         -  NoComp       -  $1727  $6AA5  $1810   $0000
    26    11.264         -         -  NoComp       -  $91FE  $E3F8  $6326   $0000
    27    11.264    11.238    10.712   Quick       1  $CF02  $3712  $0469   $0000
    28    11.264    11.073    10.372   Quick       1  $D660  $82C1  $2CA2   $0000
    29    11.264    10.551    10.174   Quick       1  $7F02  $7345  $F983   $0000
    30    11.264    10.658    10.022   Quick       1  $CE6A  $96E1  $0769   $0000
    31    11.264    10.439    10.014   Quick       1  $78E4  $2F63  $620E   $0000
    32    11.264    10.856    10.430   Quick       1  $7BC3  $7B70  $1BB0   $0000
    33    11.264     6.350     5.734   Quick       1  $C9E8  $1787  $4B13   $0000
    34    11.264    10.087     8.410   Quick       1  $A77B  $F761  $87F7   $0000
    35    11.264         -         -  NoComp       -  $5E62  $8AE2  $E1A8   $0000
    36    11.264         -         -  NoComp       -  $531A  $6502  $8C6E   $0000
    37    11.264         -         -  NoComp       -  $01FA  $6669  $4DF2   $0000
    38    11.264         -         -  NoComp       -  $48E8  $1069  $B546   $0000
    39    11.264         -         -  NoComp       -  $94D0  $3F15  $3B77   $0000
    40    11.264         -         -  NoComp       -  $3370  $E492  $A969   $0000
    41    11.264         -         -  NoComp       -  $DBAC  $F98F  $CAD9   $0000
    42    11.264         -         -  NoComp       -  $92DA  $AB3A  $A8E0   $0000
    43    11.264         -         -  NoComp       -  $CDF6  $A2AD  $B991   $0000
    44    11.264         -         -  NoComp       -  $F624  $94C6  $4BFB   $0000
    45    11.264    11.103         -  Simple       -  $AFBF  $8EFD  $1D33   $0000
    46    11.264    11.142    10.720   Quick       1  $4E03  $4D0F  $E47B   $0000
    47    11.264    11.188         -  Simple       -  $FE50  $ADF7  $31C1   $0000
    48    11.264    10.923         -  Simple       -  $67E0  $8960  $0EAF   $0000
    49    11.264    11.177    11.166   Quick       1  $412B  $E57F  $0B66   $0000
    50    11.264    11.187         -  Simple       -  $C707  $76FB  $C5C7   $0000
    51    11.264    11.279     8.812   Quick       1  $50CB  $3697  $64CB   $0000
    52    11.264    11.284     9.364   Quick       1  $A3BA  $D579  $DEB9   $0000
    53    11.264    11.297     8.196   Quick       1  $402E  $666B  $179C   $0000
    54    11.264    11.273     8.198   Quick       1  $D59A  $0F0C  $FF28   $0000
    55    11.264    10.084     5.210   Quick       1  $FAD7  $4C8B  $C70E   $0000
    56    11.264     9.645     3.698   Quick       1  $47D7  $FDD3  $DDD3   $0000
    57    11.264     8.204     3.884   Quick       1  $A14D  $216C  $6731   $0000
    58    11.264    11.274     7.104   Quick       1  $A3CB  $AA53  $EB07   $0000
    59    11.264    11.273     6.748   Quick       1  $689C  $97AE  $6FB3   $0000
    60    11.264    11.286     9.524   Quick       1  $AB32  $F8D7  $DF49   $0000
    61    11.264    11.302    10.566   Quick       1  $ABC0  $0636  $6C4C   $0000
    62    11.264         -         -  NoComp       -  $0671  $8AFA  $B42A   $0000
    63    11.264         -         -  NoComp       -  $1394  $46AB  $72A6   $0000
    64    11.264         -         -  NoComp       -  $D8F7  $6C69  $C808   $0000
    65    11.264         -         -  NoComp       -  $EFAD  $7C1B  $BBD5   $0000
    66    11.264         -         -  NoComp       -  $D573  $1AAB  $DC88   $0000
    67    11.264         -         -  NoComp       -  $CCFA  $EEEB  $3A6B   $0000
    68    11.264     3.732     2.904   Quick       1  $3FFD  $7920  $1B7D   $0000
    69    11.264         5         -  Simple       -  $0000  $C9EC  $AE0E   $0000
    70    11.264         5         -  Simple       -  $0000  $C9EC  $AF4D   $0000
    71    11.264         5         -  Simple       -  $0000  $C9EC  $AF8C   $0000
    72    11.264         5         -  Simple       -  $0000  $C9EC  $ABC3   $0000
    73    11.264         5         -  Simple       -  $0000  $C9EC  $AB02   $0000
    74    11.264         5         -  Simple       -  $0000  $C9EC  $AA41   $0000
    75    11.264         5         -  Simple       -  $0000  $C9EC  $AA80   $0000
    76    11.264         5         -  Simple       -  $0000  $C9EC  $A8C7   $0000
    77    11.264         5         -  Simple       -  $0000  $C9EC  $A806   $0000
    78    11.264         5         -  Simple       -  $0000  $C9EC  $A945   $0000
    79    11.264         5         -  Simple       -  $0000  $C9EC  $A984   $0000
Banner       101         -         -  NoComp       -  $1481  $FF3E  $C0AB   $0000
the first track is not properly depacked and the game does not even start! The memory of dms_text must be 0 filled after Banner depacking with decruncher reinitialization or just skip this...
Crashdisk is offline  
Old 24 March 2012, 07:11   #2
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,518
Two small problems, this has nothing to do with betas and where is the image for testing?
Toni Wilen is offline  
Old 24 March 2012, 09:39   #3
Crashdisk
Moderator
 
Crashdisk's Avatar
 
Join Date: Jun 2009
Location: France
Age: 46
Posts: 1,985
Hi Toni,
yes you're right, it is not specific to the beta. Files in "The Zone!"
Crashdisk is offline  
Old 24 March 2012, 10:21   #4
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,518
Do you mean Init_Decrunchers() must be always called after banner tracks (ignoring "if (!(flags & 1)) Init_Decrunchers();")?

Banner stuff is a mess, most of it seems to be misusing accidental side-effects..

UAE dms banner support is kept because uaeunp can be used to extract banners.

EDIT: I assume only after "official" banner flag is detected, not after those fake bootblocks or normal tracks..
Toni Wilen is offline  
Old 24 March 2012, 10:28   #5
Crashdisk
Moderator
 
Crashdisk's Avatar
 
Join Date: Jun 2009
Location: France
Age: 46
Posts: 1,985
If the checksum of the track 0 is bad, you can repeat the decompression after a Init_Decrunchers. Not? Bad for bad, at worst you risk nothing ...
Crashdisk is offline  
Old 24 March 2012, 10:32   #6
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,518
Quote:
Originally Posted by Crashdisk View Post
If the checksum of the track 0 is bad, you can repeat the decompression after a Init_Decrunchers. Not? Bad for bad, at worst you risk nothing ...
Checksum is not bad, there is no after decompression checksum. (Not all disks are bootable = no bootblock checksum)

Above would be too stupid hack, no thanks.
Toni Wilen is offline  
Old 24 March 2012, 11:06   #7
Crashdisk
Moderator
 
Crashdisk's Avatar
 
Join Date: Jun 2009
Location: France
Age: 46
Posts: 1,985
Quote:
Originally Posted by Toni Wilen View Post
Checksum is not bad, there is no after decompression checksum. (Not all disks are bootable = no bootblock checksum)

Above would be too stupid hack, no thanks.
I do not mean the bootblock checksum but of the track (CheckSum16)
Original => $D982
WinUAE/uaeunp => $4E9B
Crashdisk is offline  
Old 24 March 2012, 11:59   #8
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,518
Ah, I already forgot that there is both before and after checksums..

Your solution still is horribly ugly. (what if there is banner track, then normal track that decodes correctly and then finally second track that returns corrupt data due to previous banner..)

Anyway, I checked original xdms.c and it seems to ignore banners completely (not decoding them) so it seems to be safe to call Init_Decrunchers() after banner track.

EDIT: It seems this file may be actually broken (and works only accidentally) because other randomly chosen DMS files always have "0" cflag in banner tracks.

Last edited by Toni Wilen; 24 March 2012 at 12:08.
Toni Wilen is offline  
Old 25 March 2012, 00:14   #9
Crashdisk
Moderator
 
Crashdisk's Avatar
 
Join Date: Jun 2009
Location: France
Age: 46
Posts: 1,985
Thank you! Hope your corrections will not break other files
Crashdisk is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Help unpacking .lzx file ruffian support.WinUAE 14 11 May 2022 13:08
Unpacking Dms files amigafan1200 support.Other 10 25 November 2009 20:19
How can I force DMS to write a dms in spite of fatal errors? andreas support.Apps 43 10 January 2007 05:13
Problems unpacking games Gnorman project.WHDLoad 2 25 February 2006 01:50
LZX unpacking??? Medvind support.Apps 25 27 November 2002 12:33

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 08:49.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.07480 seconds with 13 queries