23 March 2012, 22:43 | #1 |
Moderator
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 |
24 March 2012, 07:11 | #2 |
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?
|
24 March 2012, 09:39 | #3 |
Moderator
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!" |
24 March 2012, 10:21 | #4 |
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.. |
24 March 2012, 10:28 | #5 |
Moderator
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 ...
|
24 March 2012, 10:32 | #6 | |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,518
|
Quote:
Above would be too stupid hack, no thanks. |
|
24 March 2012, 11:06 | #7 | |
Moderator
Join Date: Jun 2009
Location: France
Age: 46
Posts: 1,985
|
Quote:
Original => $D982 WinUAE/uaeunp => $4E9B |
|
24 March 2012, 11:59 | #8 |
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. |
25 March 2012, 00:14 | #9 |
Moderator
Join Date: Jun 2009
Location: France
Age: 46
Posts: 1,985
|
Thank you! Hope your corrections will not break other files
|
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 |
|
|