Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

Oodle DLL binding

Featured Replies

  • Author
  • Localization

Delutto, posted Fri Jan 26, 2018 2:22 am (31918)


I'm working in a project which use Oodle data compression and I need to know the functions declaration to call oo2core_4_win64.dll, but I can't find any information on internet...
Looking in QuickBMS sources, there's this two functions:
Code:
OodleLZ_Compress(int algo, unsigned char *in, int insz, unsigned char *out, int max, void *a, void *b, void *c) = NULL;
OodleLZ_Decompress(unsigned char *in, int insz, unsigned char *out, int outsz, int a, int b, int c, void *d, void *e, void *f, void *g, void *h, void *i, int j) = NULL

That's it? And someone have more information about those parameters? Like these "int max, void *a, void *b, void *c" and decompression doesn't need set the algorithm?
PS.: I'm coding in Delphi but any information is useful.

Thanks in advance.
  • Author
  • Localization

aluigi, posted Fri Jan 26, 2018 3:39 pm (31933)


My oodle.c code available in the source code of quickbms is quite helpful about how to use this dll.
Compression:
Code:
outsz = OodleLZ_Compress(10, in, insz, out, 7, NULL, NULL, NULL);

Decompression:
Code:
outsz = OodleLZ_Decompress(in, insz, out, outsz, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 3 /*3 and 0 are the same*/);
  • Author
  • Localization

Delutto, posted Sun Dec 09, 2018 8:07 am (41139)


aluigi wrote:
My oodle.c code available in the source code of quickbms is quite helpful about how to use this dll.
Thanks. I had some problems using the x86 version of the dll, so I decided to make a x64 app and is working well. I also found some other interesting material about it and maybe this can help somebody else whoo also interested in this matter:
OodleSharp
Open source Kraken/Mermaid/Selkie/LZNA/BitKnit decompression
Well, I'm not a professional programmer, I'm not a software developer, I'm self-taught and it's just a hobby, and I never maked a commercial application and I don't intend to do it, so I don't understand very well about licenses and copyright. So, here is my question: Can I distribue the Oodle DLL with my tool? I see the dll in quickbms code, it's sutil but is there, this kind of distribuition can be considerate a copyright infringement?
  • Author
  • Localization

aluigi, posted Sun Dec 09, 2018 9:42 am (41140)


There were some topics and posts on https://encode.ru about Oodle in which RAD (the developers) were discussing:
https://encode.ru/threads/2577-Open-sou ... #post49929
https://encode.ru/threads/2577-Open-sou ... #post49921

Long story short the developers have no problem with the dll since it's already public and distributed with various games but they are absolutely against any reverse engineering work: https://github.com/github/dmca/blob/mas ... 0-Oodle.md (the repository is still available)

If you use the oodle dll for a commercial game or commercial product... well, that changes everything :)
  • Author
  • Localization

Delutto, posted Sun Dec 09, 2018 1:31 pm (41149)


Thanks. I'm have a little afraid with this things... now my only concern is about Ubisoft... :lol:
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.