Staredit Network > Forums > SC1 Mapping Tools > Topic: scxcomp (Test version)
scxcomp (Test version)
Feb 24 2013, 2:47 pm
By: trgk  

Mar 3 2013, 6:38 am trgk Post #21



using jump sections for compression seems bad, if what i've googled is right
implode : lz77 + shannon coding?

jump section are somewhat random. (deff ffff in middle of positive number)

if what i've googled is right, then blocks of 0 (000000000000...0000) should be encoded by less than 8 bytes in lz77. (from wiki - lz77 and lz78.)

Instead of nulling things, it may be better to fill them with prior character. This may compress 1~2kb more?)
ex) a0000000 -> aaaaaaaa, a0000b000cd0 -> aaaaabbbbcdd

Even SMC seems to not handle jump section properly

Post has been edited 1 time(s), last time on Mar 3 2013, 9:18 am by trgk.



EUD

Mar 4 2013, 2:02 pm Heinermann Post #22

SDE, BWAPI owner, hacker.

Well the jump section would probably work in the duplicate triggers/unit cases. I don't think you're right about repeated bytes, since this increased the size of my test map. The MPQ compression library being used might be a little at fault. Perhaps we should be looking there?




Mar 4 2013, 6:45 pm Wormer Post #23



So bad MPQ doesn't know it's compressing triggers for example. If only it was taking into account the real structure of data being compressed... *sigh* Anyways, I was thinking for a moment about duplicate triggers and couldn't come up with many useful examples. They might be used here and there, but from my experience the majority of triggers are binary countoffs. If only it was possible to compress series of triggers with minimal changes (that actually follow a pattern) then it was a *real* breakthough.

P.S. By the way, is it possible to include jumps into conditions or actions? That could probably be more useful than compressing entire triggers.



Some.

Mar 4 2013, 7:48 pm jjf28 Post #24

Cartography Artisan

Quote
P.S. By the way, is it possible to include jumps into conditions or actions? That could probably be more useful than compressing entire triggers.

No fields are available for doing so, it's sometimes possible to "jump" actions with waits; very tricky to make even small systems work off this though.

Edit: Perhaps it's possible to engineer a escape from a trigger by causing some kind of exception to be thrown given certain map conditions?

Post has been edited 1 time(s), last time on Mar 4 2013, 8:05 pm by jjf28.



Rs_yes-im4real - Clan Aura - jjf28.net84.net

Reached the top of StarCraft theory crafting 2:12 AM CST, August 2nd, 2014.

Mar 6 2013, 6:54 am trgk Post #25



Quote from Heinermann
Well the jump section would probably work in the duplicate triggers/unit cases. I don't think you're right about repeated bytes, since this increased the size of my test map. The MPQ compression library being used might be a little at fault. Perhaps we should be looking there?
Yeah I was wrong.

Tested with python with some test protection applied. (Including Jump section intersection)
- (4)Python1.3.scx : original
- (4)Python1.4.scx : jump section compressed + Test melee compression of scxcomp.
- (4)Python1.5.scx : TM2ed. (Just.)

- Anyway, why does TM2 set human slots to computers?

Should finalize this soon...

Attachments:
BroodWar.zip
Hits: 0 Size: 129.53kb



EUD

Mar 6 2013, 10:32 am O)FaRTy1billion[MM] Post #26

👻 👾 👽 💪

Quote from trgk
- Anyway, why does TM2 set human slots to computers?
It sets humans to computers only for melee maps. It makes it so that they don't give errors if you try and load in Use Map Settings (UMS sections do not exist in melee maps), and because it makes more values the same and removes some VCOD values.



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Mar 11 2013, 9:24 am trgk Post #27



Test build. I don't know if this works well. (It may eat up your trigger)
Jump section 'Compression' enabled.
- Edit + file

Attachments:
scxcomp.exe
Hits: 1 Size: 154.5kb

Post has been edited 1 time(s), last time on Mar 11 2013, 12:21 pm by trgk.



EUD

Mar 13 2013, 9:28 am trgk Post #28



+ GUI
+ Indivisual wav's size won't enlarge anymore. If scxcomp failed compressing it, then it will leave it as-is.
(Compressible wav file will have the same compression as before)



Post has been edited 3 time(s), last time on Mar 13 2013, 12:02 pm by trgk.



EUD

Mar 15 2013, 3:19 am Heinermann Post #29

SDE, BWAPI owner, hacker.

Are you also using the source for the MPQ compression (so that it could be modified)?




Mar 15 2013, 3:36 am trgk Post #30



Quote from Heinermann
Are you also using the source for the MPQ compression (so that it could be modified)?
Yes. But I don't know if I can modify them properly.



EUD

Mar 20 2013, 3:53 am Heinermann Post #31

SDE, BWAPI owner, hacker.

If you share your current source code, I could take a look at it if I have some time.




Mar 20 2013, 12:20 pm trgk Post #32



Quote from Heinermann
If you share your current source code, I could take a look at it if I have some time.

It's spaghetti code... (VERY Seriously.) Maybe I should use some time to make this more readable...

Collapsable Box


Attachments:
src.zip
Hits: 5 Size: 205.71kb



EUD

Mar 28 2013, 10:05 pm Heinermann Post #33

SDE, BWAPI owner, hacker.

There's a comment in imp.c
Code
   //
   // The following part checks if there isn't a longer repetition at
   // a latter offset, that would lead to better compression.
   //
   // Example of data that can trigger this optimization:
   //
   //   "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEQQQQQQQQQQQQ"
   //   "XYZ"
   //   "EEEEEEEEEEEEEEEEQQQQQQQQQQQQ";
   //
   // Description of data in this buffer
   //   [0x00] Single byte "E"
   //   [0x01] Single byte "E"
   //   [0x02] Repeat 0x1E bytes from [0x00]
   //   [0x20] Single byte "X"
   //   [0x21] Single byte "Y"
   //   [0x22] Single byte "Z"
   //   [0x23] 17 possible previous repetitions of length at least 0x10 bytes:
   //          - Repetition of 0x10 bytes from [0x00] "EEEEEEEEEEEEEEEE"
   //          - Repetition of 0x10 bytes from [0x01] "EEEEEEEEEEEEEEEE"
   //          - Repetition of 0x10 bytes from [0x02] "EEEEEEEEEEEEEEEE"
   //          ...
   //          - Repetition of 0x10 bytes from [0x0F] "EEEEEEEEEEEEEEEE"
   //          - Repetition of 0x1C bytes from [0x10] "EEEEEEEEEEEEEEEEQQQQQQQQQQQQ"
   //          The last repetition is the best one.
   //


I would have to sit down and take a look if I wanted to really understand the algorithm used.




Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[08:55 pm]
Vrael -- not really two-party-system specific but it was kinda a big deal when those old guys wrote about "unalienable rights" and that stuff
[08:54 pm]
Vrael -- Oh_Man
Oh_Man shouted: basically i'm saying two party systems sap the violence out of a population by giving them the illusion of choice, instead of feeling the need to rebel, they just say "well i'm not voting for you next time"
you kinda missed those minor details about how fundamental rights are baked into democratic systems so you actually have power to change the system (to whatever degree you wanna argue), whereas in other systems your only option is "no u", aka it's not an illusion of choice
[08:52 pm]
Ultraviolet -- what are you trying to accomplish here?
[08:51 pm]
sraw531 -- similar to how people farm scarabs.
[08:50 pm]
sraw531 -- was toying with the thought of trying to get a computer to continuously make nexi in the corner of the map and have triggers remove it occasionally, but I honestly don't know how to do that.
[08:48 pm]
Ultraviolet -- sraw531
sraw531 shouted: is there a way to create using triggers a building that is under construction? (Especially protoss, for multiple reasons)
afaik this is not possible
[08:46 pm]
sraw531 -- though ~3400 units on map is also an improvement considering reavers are 11 and carriers are 9 units.
[08:45 pm]
sraw531 -- GGmano
GGmano shouted: Yea see it describet as ccmu fix
I think my favorite part about ccmu fix is probably the 400 weapon limit. 100 is so low, considering 10 valks is 80 of that.
[08:41 pm]
Ultraviolet -- Suicidal Insanity
Suicidal Insanity shouted: Ultraviolet The devs are fairly good about backwards compatibility, just sometimes takes time
Fair enough, random crashes are always scary though :P
[07:36 pm]
Suicidal Insanity -- Ultraviolet
Ultraviolet shouted: martosss So you've had issues with maps that were previously playable having issues with the latest patch as well? I was play testing one of my creations a couple days ago and it crashed the game, something it has never done before. Has me feeling kind of concerned about playability of custom content going forward :/
The devs are fairly good about backwards compatibility, just sometimes takes time
Please log in to shout.


Members Online: jjf28, Roy, hamlet337017, Gladishse10, yxekow