Menu

#37 Update 7-zip32.dll

Access Violations
closed
None
1
2019-02-19
2015-12-19
TonyWoode
No

The current dll is years out of date, still works fine for everything i throw at it though. Finding the dll is not as easy as it sounds - I eventually found the included and tried it, but some sets worked and some didn't. Needs plenty of further investigation

1 Attachments

Discussion

  • TonyWoode

    TonyWoode - 2016-10-23

    Re: QUickPlay error

    Post details
    Quote MarcoForce
    

    Post by MarcoForce » Thu Oct 20, 2016 4:59 pm
    Open your file with 7-zip Manager and scroll to the right. If you can read "lzma2:" you file is not compatible with QuickPlay.

    Solution:
    1. Install 7-zip (if you don't have it) and extract your compressed files in a directory with the same name of the .7z file (for example: if your file's name is "Neutopia.7z", the files must be extracted in the "Neutopia" directory). The number of the created folders must be the same of the .7z files with the respective names.

    1. Backup and delete the original *.7z files.

    2. Create a file with Notepad and paste the following command text:
      for /D %%A in () do "C:\Program Files\7-Zip\7z.exe" a -t7z -m0=lzma -mfb=273 -md=1024m -mx9 -mmt2 "%%A.7z" -xr!.bat ".\%%A*"

    Note: "C:\Program Files\7-Zip\7z.exe" is the default location of 7-zip installed program. You can change this if you install 7-zip in other location.

    1. Save the text file and rename the .txt extension to .bat extension.

    2. Put the *.bat file in the same location of the directories.

    3. Select the *.bat file and press Enter.

    4. Wait until the console windows is closed.

    5. Check if the number of the new generated *.7z files are the same of the folders.

    6. If all is right, you can delete the folders and now your packaged roms are 100% compatibles with QuickPlay.

    Now, this is the description of the error:

    Unfortunately, QuickPlay is not compatible with LZMA2. LZMA is the algorithm used for compression in 7-zip. Another problem is GoodMerge. That tool don't specific the LZMA version used in the compression. As a result, if you have an updated version of 7-zip different from 9.20 the default option is LZMA 2. So, this is the problem with the new GoodSets "merged" with new versions of 7-zip.

    For now, this manual command line method is a solution but the problem is the extra work for organize your folders (yes, a harder work). So, I conluded that this as a BUG: QuickPlay don't support LZMA2.

    I wait this information is useful.

    PSD: Sorry if my english is not good.
    Re: QUickPlay error

    Post details
    Quote jaw970
    

    Post by jaw970 » Sat Oct 15, 2016 2:56 pm
    Hey Butterfly,

    Thanks for the reply. The error is something with 7-Zip. I compressed the files with another programs and they run fine now, thanks.

    Jason
    Re: QUickPlay error

    Post details
    Quote butter100fly
    

    Post by butter100fly » Sat Oct 08, 2016 8:35 pm
    Hi Jason

    Do you mean you added an emulator for PC Engine from one of the existing efinds, or did you add it yourself? Which emulator is it? (and how is that emulator being called - is it through some other prog? What does quickplay call?)

    I'm not familiar with that error message, it doesn't seem to be from quickplay....
    QUickPlay error

    Post details
    Quote jaw970
    

    Post by jaw970 » Sat Oct 01, 2016 7:25 pm
    Hello,

    I've added an emulator, PC Engine to my Quick Play list of emulators. ROMs are in 7-zip format. I've added two games to my PC Engine game list. When I launch the games, I get this:


    Error

    An unknown error occurred - The command sent to the DLL was:
    e "D:\Emu\TG16\Neutopia.7z" -aoa -o"D:\QuickPlay\temp" . -hide

    Press CTRL+C to copy this error to clipboard.

    OK

    I have quite a few other systems with 7-zip compression and have no problem running those. It's just with this newly added system. Am I missing something?

    Thank you,
    Jason

     
  • TonyWoode

    TonyWoode - 2016-10-23
    • Group: Within a few releases --> Next Release
    • Priority: 4 --> 1
     
  • TonyWoode

    TonyWoode - 2016-10-23

    Ticket moved from /p/quickplay/feature-requests/53/

     
  • TonyWoode

    TonyWoode - 2019-02-19

    (from the 7zip readme)

    9.30 alpha     2012-10-26
    -------------------------
    - LZMA2 now is default compression method for .7z format.
    

    but

    9.04 beta      2009-05-30
    -------------------------
    - 7-Zip now can update solid .7z archives.
    - 7-Zip now supports LZMA2 compression method.
    

    the japanese dll john used used:

    • says its based on a dll version 9.22
    • the readme is dated 2014
    • says in the readme, against 2010, that it supports LZMA2

    the issue turned out to be the verify method: the method TJSevenZip.VerifyFile is failing, now when i look at the japanese api file included with the jap dll it says this:

    --------------------------------------------------------------------------------
    BOOL WINAPI SevenZipCheckArchive(LPCSTR _szFileName, const int _iMode)
    --------------------------------------------------------------------------------
    ‡˜”  12
    ‹@”\
        Žw’èƒtƒ@ƒCƒ‹‚ªƒTƒ|[ƒg‚µ‚Ä‚¢‚鏑ŒÉƒtƒ@ƒCƒ‹‚Æ‚µ‚Ä
        ³‚µ‚¢‚©‚Ç‚¤‚©‚ð•Ô‚µ‚Ü‚·B
    
    ˆø”
        _szFileName ƒ`ƒFƒbƒN‚·‚ׂ«‘ŒÉƒtƒ@ƒCƒ‹‚̃tƒ@ƒCƒ‹–¼B
        _iMode      ƒ`ƒFƒbƒNƒ‚[ƒhB
          CHECKARCHIVE_RAPID    ŠÈˆÕƒ‚[ƒhB
                (0)             ƒwƒbƒ_‚̃`ƒFƒbƒN‚¾‚¯s‚¢‚Ü‚·Bƒwƒbƒ_‚ªˆÃ†‰»‚³‚ê‚Ä
                                ‚¢‚Ä‚àƒpƒXƒ[ƒh‚ð‹‚ß‚Ü‚¹‚ñB
                                ê‡‚É‚æ‚Á‚Ă̓Tƒ|[ƒg‚³‚ê‚Ä‚¢‚È‚¢ê‡‚à³‚µ‚¢‘ŒÉ
                                ‚Æ‚µ‚Ä•Ô‚·ê‡‚ª‚ ‚è‚Ü‚·B
                                Ý’肵‚Ä‚¢‚ăwƒbƒ_‚ª³í‚È‚ç‚Î TRUE ‚ð•Ô‚µ‚Ü‚·B
          CHECKARCHIVE_BASIC    ’ʏ탂[ƒhB
                (1)             ŠÈˆÕƒ‚[ƒh‚Ƃ͈قȂèA³‚µ‚¢‘ŒÉ‚©”»’f‚µ‚Ü‚·B
                                ƒwƒbƒ_‚ªˆÃ†‰»‚³‚ê‚Ä‚¢‚éê‡‚̓pƒXƒ[ƒh‚ð‹‚ß‚Ü‚·B
          CHECKARCHIVE_FULLCRC  Œµ–§ƒ‚[ƒhB 
                (2)             Ši”[ƒtƒ@ƒCƒ‹‚Ì CRC ‚àƒ`ƒFƒbƒN‚µ‚Ü‚·B
                                ‘ŒÉ‚̃eƒXƒg‚ðs‚¤‚̂ŏˆ—‚ªŠ®—¹‚·‚é‚Ü‚Å‚É’·‚¢ŽžŠÔ‚ð
                                —v‚·‚éê‡‚ª‚ ‚è‚Ü‚·B
    

    now quickplay says its sending

       if FSevenZipCheckArchive(PChar(input), CHECKARCHIVE_ALL) = True then
    

    but CHECKARCHIVE_ALL is sending 16. I set it to 2, which fixed the issue. the file was ujcompression7zip which is in johnlib so i had to update the johnlib zip to fix this, as that's the format the code is available in. Ideally JohnLib needs to be integrated into QuickPlay

     

    Last edit: TonyWoode 2019-02-19
  • TonyWoode

    TonyWoode - 2019-02-19
    • status: open --> closed
    • Group: Next Release --> Access Violations
     

Log in to post a comment.