#arma3_tools

1 messages ยท Page 36 of 1

nocturne basin
#

but right now i am facing other difficulties anyways ๐Ÿ™ˆ
natural looking levels are pretty damn hard ...

keen owl
#

Natural things on a silicon device...
If you wanted something like this:

class MyThing implements Welcome, Goodbye {
    welcome() { ... }
    goodbye() { ... }
}```
Then the answer is simply duck typing and removing the ` implements Welcome, Goodbye` part to make the code run without errors. Lua/Wren/Io/Python are all gonna work with `x.welcome()` if X is `MyThing`.
nocturne basin
#

yeah ... think that is what i need to do in the end

keen owl
#

Like C++ templates, except you get the error at runtime, instead of compile time that you forgot to make bool operator== const.

nocturne basin
#

and those "float f > 0.5" checks are too basic to actually get me somewhere

keen owl
#

Neat! And you already split Render from Simulation. Where the float checks you mention?

#

Yeah natural level generation is an art form.

orchid shadow
#

Why Mono?

nocturne basin
#

C# Scripting
never looked into C# scripting though ... so it was just the first idea i had in mind

karmic niche
#

C# Scripting
wew, after googling I realized that such a thing actually exists! At first I thought it was a bit like "Java Scripting" ๐Ÿ˜‰

nocturne basin
#

it is pretty much the same though ๐Ÿ˜…
just that the compilation is handled by some fancy framework emiting code
neat to work with in C#, no idea about the implications for C/C++

elfin oxide
#

For scripting something like lua is better

#

C# is not an easy thing to drop into an existing environments

#

Interpreter languages are easier to use in the scripting environment than something like c# that needs to be compiled

#

Not impossible, just more hassle

nocturne basin
#

for now i am facing other difficulties anyways with collision ... as i want to finish that one first in a robust manner ... but it just is not working properly (not the detection, that works perfectly fine ... but everything else in regards to finding, where i may move to instead)

dusky dune
#

how fast does it need to be?

nocturne basin
#

as said, collision works fine

#

the delta to the move vector however ... not

sacred flume
#

space engineers allows c# scripting, its pretty epic

vague shard
#

anyone here hosting git repos on a server himself or even a full gitlab instance?

glossy inlet
#

git repos via ssh yeah. and atlassian bitbucket

scenic canopy
vague shard
#

any experience with repository > 10 GB?

nocturne basin
#

kinda
but that repository was literally a shitfest where the only actual solution should have been, to wipe the entire repository as a shitton of build artifacts and other things that did not belong in a code repository has been inside of it
(miss my old job)

glossy inlet
#

negative. TFAR is/was the biggest repo I ever had but not 10gb. I moved everything to git lfs and made it smaller

scenic canopy
#

I think our largest is 13 GB

#

I read an article the other day about some new alternative to LFS

elfin oxide
#

Git with lsf should work fine. You only notice it when you push and pull. That can take some time but other than that it does not matter if it's 10 GB or 1 TB. Git can handle it

#

You can relatively cheaply host large repos on GitHub but they charge for bandwidth. So if you change a lot of big files that's a no no. Rather rent a Webspace and put bitbucket on it for that sake. One advantage of git is that you can just move it around and push to new self host remotes without any hassle. It will all just be there :)

#

@vague shard do you have any specific issues with a large repo of yours or was this more a general "what if" question?

vague shard
#

gitlab 10 gb limit includes LFS. so would need our own host anyway

#

atm we have like 20 git repos at gitlab - to keep all non binary small and thus performance top notch (and not run into the 10 gb limit)

#

however some in our team find it a hassle and thus want an AIO system

#

overall our git repo combined is probably 30+ GB

#

i am asking as i did some extensive research again and ppl recommend to keep repos small (size, nr of objects and diffs) to keep the speed high and not put binary data into git (LFS is an alternative but as said needs also hosting) - as separate layer a complete AIO repo would be useful for release and version management (so without LFS)

#

MS has developed git mods (VFS and very recently Scalar) for large git projects

#

downside is limited tool support so far and scalar still being very new. plus more complex to use - which is overall the other main concern for modding/gaming projects with non IT/programmers already struggling to use git at all

scenic canopy
#

I should find that article I read the other day thinkcat3d

#

I've heard a few modders complain about Git LFS issues in the past

glossy inlet
#

#SVNFTW

karmic niche
#

#WhyNotCVS

scenic canopy
#

that's what we currently use for non config only Arma and Squad mods

#

shame that there are no good SVN thingies like self hosted git alternatives

#

you can puzzles together some of the different tools but...

#

and phabricator is a bit over the top and complex

dawn palm
#

despite git's claim to fame, and apparent dominance, around 35% of repository systems use (or remain with) svn. Git has two large drawbacks, a) it was designed and intended for text documents and performs badly with binay files, worse, with large ones. b) It is designed around one, central blob. There is no file system as such on a git server. Anything modify delete or add reflects in the blob and performance does suffer, let alone clean and simple ways of fixing the data base itself when things go bang. One other, thing, the transport protocol, the commands it uses is close to ludicrous. There are far better, tried and proven, methods that could have been employed,

#

But, most of us are stuck with it for this generation of repo tools.

karmic niche
#

@vague shard random suggestion: have you considered mercurial? Maybe it didn't have the drawbacks of git, for your use case?

glossy inlet
#

perforce :U

vague shard
#

getting people to learn new system and tools is no good idea

#

git works very well if you keep it simple to use, have some coordination and ensure it remains fast (which is only a problem with 100k files, a lot of objects/diffs or much binary data)

#

one can also disable/limit the size when git is to do deltas. so it simplifies the computation but makes the repo even larger

scenic canopy
#

you could do a shallow clone as well

dawn palm
#

it's an example of a Band-Aid getting round a bad design in the first place.

scenic canopy
#

yes ๐Ÿ˜„

#

svn generally works better when working with blobs

#

and its a bit easier to cope with for non programmers

karmic niche
#

svn generally works better when working with blobs
Well, anything that doesn't download the whole repo will work better with blobs ยฏ_(ใƒ„)_/ยฏ

#

And the idea of git was that anyone could be the "server" that someone else can pull from or push to. You can't really do that if you don't have all the files, in the first place

#

btw. anyone still remembers Bazaar, at all? ๐Ÿ˜„

glossy inlet
#

The name rings a bell

scenic canopy
#

it was forked into breezy

#

they released 3.0 last year

glossy inlet
#

doesn't ring a bell

scenic canopy
#

canonical dropped the development of bazaar sooo ๐Ÿ˜„

stable berry
#

Hello, I am getting an 80004005 error starting up, mounting my P:. any ideas what this might be? running Arma 3 Tools [development].

#

The error is:

        System/Local App Data dir: C:\Users\NUNYA\AppData\Local

2020-03-28 10:04:15,376 [INFO]: =====================================================================
2020-03-28 10:04:15,378 [INFO]: Build Configuration: Arma3
2020-03-28 10:04:16,091 [INFO]: Mounting the work drive from "C:\Program Files (x86)\Games\Steam\SteamApps\common\Arma 3 Tools"
2020-03-28 10:10:49,647 [FATAL]: (0x80004005) FileName: WorkDrive.exe
        WorkingDirectory: C:\Program Files (x86)\Games\Steam\SteamApps\common\Ar
ma 3 Tools\WorkDrive
        Arguments: /mount P "C:\Program Files (x86)\Games\Steam\SteamApps\common
\Arma 3 Tools" /parent=2264
        Verb: runas

Message: The operation was canceled by the user
Source: System
Target: Boolean StartWithShellExecuteEx(System.Diagnostics.ProcessStartInfo)
StackTrace:    at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at WorkDrive.Program.NewInstance(String[] args, Boolean elevation, Boolean killCurrent, Boolean pid, Boolean createNoWindow)
HResult: 0x80004005
Program terminated, hit any key to exit.
glossy inlet
#

0x80004005 -> Google
-> Access denied

dawn palm
#

there are plenty of other tools, mine included, that will mount a p:\drive with far less fuss that above. The code bis are using also mounts an admin p:\ drive apart from yours, and is dangerous.

search around for a mapdisk.bat or setP.bat. it's normally 2 lines of code!

glossy inlet
#

yeah BIS workdrive is bad. I used it once and ended in a bluescreen on boot loop..

stable berry
#

good to know thanks for the response. ๐Ÿ‘

dawn palm
#

most will tell you the same thing, avoid steam tools altogether. For the most part they don't work (but give you the impression that they do).

stable berry
#

so all I really need are the mikero tools and the map disk to the same?

dawn palm
#

of course

#

and, like most here, you only have to 'play' steam tools once, so that it can set the registry (don't ask me why)

#

for t/b and o/b you MUST use shortcuts to use them. the steam tools gui does not work the way you think it should.

#

armake is also an excellent tool (not from me) if you care to use it.

stable berry
#

any idea what that registry key is?

dawn palm
#

17 of them. want to ask more?

stable berry
#

maybe ๐Ÿ˜‰

#

top level... in the HKLM\SOFTWARE\Wow6432Node?

#

at least as relates to "necessary" tools

dawn palm
#

arma3p.bat corrects some errors in them, the rest don't matter. you're free to read the bat file for further info. but, essentially, the only necessary thing is you 'play' steam tools once on any update because bis move goalposts.

#

I am unaware of any modder using the steam tools gui for any other purpose.

sly skiff
#

~1/10 it seems to work as intended

#

I think most people here have adopted the "no touchy" policy

stable berry
#

appreciate the feedback thanks...

dawn palm
#

It's not your fault in any way. Where the hell else were you going to go but use what bis provide to start with?

#

The truth of the matter is they don't want you to succeed. It makes them look bad.

tawny island
#

never had any issues with Arma Tools, including setting up P: drive and extracting A3 pbo's

#

only packing stuff seems messed up

sly skiff
#

for some it works

tawny island
#

or better said.. mikero tools work better/easier ๐Ÿ˜‰

sly skiff
#

๐Ÿ˜„

#

I strongly believe our success rate of setting up peoples tools with the simple steps Mikeros tools provide has been 100%.

However its the other parts of Arma moddings difficulties that then crush people and they are never heard from again.

dawn palm
#

for some it works
in fact, extraction doesn't. they 'forgot' to extract core or languagecore last time i looked, and, they over-ride the games config.bin with a piece of irrelevant crap supplied by buldozer.

beware beware beware than when folks say 'it works' all that actually means is (as most people here know), bis tools do NOT report errors. they ignore them!

sly skiff
#

๐Ÿ˜„

#

lets call it a for some it "works" kind of situation then

stable berry
#

it's funny how the cancer works... when the ship is leaky, moving furniture on the deck is irrelevant, the whole vessel is going down. I do not understand that sort of counterproductive mentality.

#

alright so what's the bottom line, I've got registry settings exe, exe1, and path. can I relo the work directory? also uses devp.bat and futuratop.bat.

#

I'd like to at least relo that off my C:

#

these are all BIS A3 bits, I take it?

sly skiff
#

this is all you need for setting up the P drive

#

you dont need anything from the arma 3 tools launcher

stable berry
#

perfect, thanks all.

nocturne basin
#

soooo ... i just crafted my first macro chain that expands to ~700k characters ...
and it is not as funny as i thought

karmic niche
#

(even though the contest is, obviously, already over ๐Ÿ˜ฆ )

nocturne basin
#

the bad part is that i actually kinda need those macros ... ๐Ÿ™ˆ

PRINT__XVM_MTHD_OPERATOR(divide,/)
 // [...]
    PRINT__XVM_CODE_DECLARATIONS(divide,/)
    PRINT__XVM_CODE_EXECUTION(divide,/)
 // [...]
```with literally all datatypes possible (and obviously all operators possible)
It is this monster btw. <https://github.com/X39/yaoosl/blob/master/yaoosl.c#L13-L275>
lapis sonnet
#

I assume this is a me problem

#

trying to open eliteness

dawn palm
#

moment

lapis sonnet
#

Thanks mate

#

I get this one now

dawn palm
#

install the updater on the bytex website and download anything in red

lapis sonnet
#

ty

#

appreciate the help

sly skiff
vague shard
#

it would need a check if the generated point is inside the original shape/polygon

sly skiff
#

would simple workaround be to split the object into parts it can manage?

vague shard
#
for vert in selected_verts:
    co = vert.co

probably one just needs to loop through those and see if the coordinates match for one of them and otherwise skip

#

@sly skiff yes but this can cause overlap of points

sly skiff
#

booleaning overlapping parts could help

#

does overlap matter? I think I just read on the damage explanation page it should not really matter if hipoints overlapp

#

ah but now that I tested it, its not perhaps quite working as I though

#

@vague shard particle system could be used to create the points I think

#

examples here are not very perfect but possbily with some value tweaking these can be made more accurate

#

shpere object tied to the particle cloud through instancing

#

modifier applied to make the mesh real

#

each ball scaled to 0 by individual origins (+ merge by distance to make them single verticles instead of a huge stack)

#

== hitpointcloud

#

some of this can be quite simply automated I think. But the particle system setup or at least the tweaking needs to be manual in order to get the density right with whatever sized hitpoint will be used

#

I guess this kinda crossed over to modelmaking now ๐Ÿ˜…

#

@severe lava maybe this stuff interests you too

severe lava
#

I really don't have time for this I'm afraid.

sly skiff
#

Oh sorry didnt mean like you should get this stuff into the tools

severe lava
#

I had planned to make a fancy editor where the points would be rendered as spheres but I really can't find the time to do it.

#

No I know what you mean. I wish I could improve that part

sly skiff
#

I'll let you know if I find time to put together at least partly automated process

severe lava
#

I wish Blender's UI code was less convoluted ๐Ÿ˜

sly skiff
#

๐Ÿ˜“

vague shard
#

sorry cant quite follow why you think this visualization approach is necessary

#

the distance/radius between points should be pretty much the same regardless of model

#

or why do you think customization is useful here?

sly skiff
#

you can set different radius of the hitpoint yes?

#

of course if you use set radius in all points then that can make it simpler to produce the points

#

size visualization would be important to see where your actual hitpoints are since the generation might not be perfect

#

but this is just a quick example I just came up with

#

could be it could work

#

or it might not be what you are looking for

#

in this case the resolution can alter quite a bit how good the results are

#

this result would need larger hitpoints though

#

and some manual tweaking

#

but again just a very fast proof of concept

nocturne basin
#

TIL that in c/c++ the increment and decrement (postfix) operator actually increments and decrements after bitwise operators

elfin oxide
#

@nocturne basin I am confused how that is something remarkable. the ++/-- operator as suffix always executes what ever it is appended to first

#

Do you have an example that made you question that?

nocturne basin
#
(bytes[i++] << (8 * 1)) | (bytes[i++] << (8 * 0));```
#

simplified example

#

same issue if used the other way around (with prefix)

#

that this will not work as one might have had the same expectations as i did

elfin oxide
#

the expected behavior is to get bytes[i] and then increment i by 1

nocturne basin
#

yup

#

but that is wrong

#

with prefixed ++, the increment and bitshift blocks just move

elfin oxide
#

bytes[i++] is one group through and should be executed before it even touches the shift

nocturne basin
#

but that ain't how that works

#

did not yet checked with GCC

elfin oxide
#

you use VS c++ ?

nocturne basin
#

VS for development
thus yeah ... M$ compiler

elfin oxide
#

shouln't this replicate that? or do i overlook something

#

to me this looks like it takes the element 0 on the first iteration, and shifts that by 1 to the left

#

aka inreasing the ยฒ by one

#

if it was to first increment i and then do the shift then it would access element 1 on the first iteration and also cause an illegal acces on third iteration since it would acces bytes[3] which does not exist

#

to validate what it looks like when the increment happens before the shifting ... as expected it grabs random ram

#

unless i missed something or missunderstood you, the behavior of execution order/priority is as i initally thought it was

dawn palm
#

you are correct Paul, it's a postfix operator that applies to the variable, not a post fix of the entire expression

karmic niche
#

(bytes[i++] << (8 * 1)) | (bytes[i++] << (8 * 0));
Wait, aren't these two postincrements of a single variable within one sequence point, making that Undefined Behavior? (and thus making the generated assembly irrelevant)

elfin oxide
#

isn't there a priority which side of the OR-Bitwise is executed first?

glossy inlet
#

Latest MSVC defined the execution order I think, but they had problems in older versions

elfin oxide
#

i mean they should be interchangeable by definiton when i think about it

karmic niche
#

postincrement is executed after the sequence point, AFAIR so the priority doesn't matter here, anyway (again, AFAIR)

elfin oxide
#

yet that also should not matter for the increments. actually i would expect this code to increment i twice

#

the order might indeed be undefined making the whole statement undefined

#

yet it should do something and in either way not access via i post increment

karmic niche
#

No, no. What i mean is that the whole thing should be UB. Meaning you have no guarantee what value will be +=1 by the compiler in the second ++: i before the first ++ or after it [AFAIR]

#

Sadly, I have not time to check the docs for that, now. I'll take a look later if I remember to

nocturne basin
#

yup

dawn palm
#

the (parenthesis) cause two, separate operantions as being A | B

It is incremented twice (A has the order of precedence) and the above code is somewhat traditional when converting big endian (apple) <> little endian (intel)

#

boolean operators are processed left->right. The following is 'tradtional' too when testing for nulness

if (ptr && *ptr) ....

#

if the above worked right to left, you would get a memory exception when ptr=0

nocturne basin
#

Nope
Incrementing the same variable in one expression is undefined behavior
Checked

tribal portal
#

IDK where I should write this, but anyway

I was thinking is there any mod for unitCapture and unitPlay and i have not found any, then i had an idea to tell smd that knows how to make mods for arma to make a mod with unitCap and unitPlay.
So if anyone knows and can do that or knows if smt like that exists please DM me.

rancid anvil
#

FoxBlepDerp What do you want the mod to do though @tribal portal

#

Also wrong chat I think

tribal portal
#

well that its automates the unitCapture and unitPlay, so that it automatically makes the files copys the data

#

to make it easier

dawn palm
#

looking for victims (ginea pigs). I've made a major vicious change to rapify detecting THE line in error (rather than guessing when it's reached eof)

I need some brave souls to test the change and find out what I've broken.

stray galleon
#

Did c++17 fix the UB with ++?

dawn palm
#

(A) | (B) are two separated expressions. there is no issue

#

c++17 nor any other stroustrup invention alters this.

#

there are no known issues with gcc (the gold standard) nor visual studio 19 which changes the rules either.

#

People are reading into UB what they want to read, not what the reality is.

glossy inlet
#

execution order was previously not well defined, c++17 and latest visual studio fixed that up

dawn palm
#

it's perfectly clear in above example what the execution order is. c++17 is a diabolical mess and getting worse, pretending to be a higher level language than it is.

dawn palm
#

I have been coding in C/++ since the 1970's. first on the pdp11 octal machines, The very same that Kernighan & Ritchie 'invented' C for. Like most of my generation I love C C++ and like most of my generation I would not recommend it to anyone beginning their coding career. Last survey I read was that a little over 40% of c c++ coders refuse to use <templates> at all. An indication perhaps of where no one wanted the language to go to.

sick verge
#

Last survey I read was that a little over 40% of c c++ coders refuse to use <templates> at all. An indication perhaps of where no one wanted the language to go to.
Well this is probably due to template errors blowing you up to the moon and back. The time I need to only try and figure out what the error is actually telling me is probably the same as I'd require to fix 10 normal compile errors (if not more).

fallen stone
#

That being said, template errors and thus debugging them has gotten exponentially easier in recent times

dawn palm
#

yes. it's almost unreadable. The only other item on offer are macros (which templates were supposed to replace). But when macros go bang they are only a little less difficult to trace debug.

#

<for><<me><the><sytnax>> is abominable and a wasted effort trying to decipher it.

sick verge
#

That being said, template errors and thus debugging them has gotten exponentially easier in recent times
Where? how? I only read once that clang would do better than e.g. gcc. And they do, but it's still terrible (at least the last time I chacked) ๐Ÿค”

fallen stone
#

It wasn't awfully long ago that you could trivially generate gigabytes of error messages from templates

#

They are continually getting better on releases

sick verge
#

<for><<me><the><sytnax>> is abominable and a wasted effort trying to decipher it.
The syntax is okay for very basic stuff. E.g. std::vector<int> but as soon as you start nesting templates or even get into TMP, it gets out of hand

dawn palm
#

yes

#

I have to also put up my hand and say my income derives from embedded microprocessors. washing machines, measuring equipment on space shuttles, real close to the bare metal and real time is important. So for me, and people like me, C C++ is a perfect language to lift you out of assembler without straying too far. C++17 etc etc has no relevance to me. I do think however that C# (not dotNet) would be a better choice for most people entering the IT wonderland.

sick verge
#

I started with Java and I still think that this is a great language to start with (unless you want to start with scripting in which case I think Python is not too bad)

dawn palm
#

i agree with both comments there.

#

unfortunately java is proprietary. and python (as you say) is more of a scripting language than an all purpose beast should be.

sick verge
#

Oh and C# is OpenSource? Didn't know that...

dawn palm
#

to micro$oft's eternal credit.

#

some things they got right

karmic niche
#

Uh... I always feel uneasy when discussing things with people with the Veteran tag (and Bohemia.net too ๐Ÿ˜› ) but I'm afraid I must stand my ground, so here it goes:

There ARE issues with Gcc and C++17: it shows you a warning here that says the order of execution is unspecified:
https://godbolt.org/z/deFM-B

warning: multiple unsequenced modifications to 'i' [-Wunsequenced]

Regarding the stackoverflow link, you can read, at the very end:

Also note this classical question
int x=0;
x++ + ++x;
is still undefined.

...which precisely is our case here.

Regarding using the && operator to prove the case wrong:
Yes, wikipedia states that there is a new sequence point at && ( https://en.wikipedia.org/wiki/Sequence_point#Sequence_points_in_C_and_C++ ) so it IS true that i++ && i++ IS well defined. However, a binary or (|)is completely different from a logical and (&&) and does not create a new sequence point.

I'm going to quote StackOverflow because I really don't want to dive in the standard myself (and also because of my nicknames :P)
https://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points/4183735#4183735

What are the common sequence points listed in the C++ Standard ?
Those are:
at the end of the evaluation of full expression (ยง1.9/16) (A full-expression is an expression that is not a subexpression of another expression.)1
So that means that the perentheses denotifying subexpressions (A) | (B) don't matter here.

And in the answer below:

In (ยง1.9/15) it has been mentioned that
Except where noted, evaluations of operands of individual operators and of subexpressions of individual expressions are unsequenced4.
For example :

int main()
{
int num = 19 ;
num = (num << 3) + (num >> 3);
}
Evaluation of operands of + operator are unsequenced relative to each other.
Evaluation of operands of << and >> operators are unsequenced relative to each other.

glossy inlet
#

Well I wasn't that wrong, c++17 fixed some execution order issues, just not all, and not the one we were discussing about ๐Ÿ˜„

dawn palm
#

i happen to agree with you stack, with the examples shown. but they are, illogical in usage.

#

i would not care to read up on freshly minted rules about them because i would not use those expressions as they stand anyway. At a certain point logic and common sense have to prevail.

#

x++ + ++x is eye watering and I would not trust a compiler to get it right, but intuitevely I'd assume the x++ is incremented 2ndt because of left to right reading order

#

(sorry, i meant 2nd)

karmic niche
#

Actually, a friend of mine told me the link to godbolt was wrong (that service is too complicated for me :P).
Here is the correct link, but the the message is just slightly different:
https://godbolt.org/z/-YKF9-

but they are, illogical in usage
Yup! All I needed in my life was to have trained myself (at least I hope! ๐Ÿ˜ฎ ) enough to spot these potential gotchas and i don't want to have anything else to do with these expressions, afterwards ๐Ÿ˜›

dawn palm
#

for me, the code i develop on say a linux or windoze pc, is ultiamtely crunched by a compiler for the embedded microprocessor. So, for me, I simply would not trust getting identical results.

tame tartan
#

mikero is there any way to disable errors from other pbos when packing a map while using pboProject?

sly skiff
#

No. Those problems should be fixed or those things should not be used.

dawn palm
#

A general example of that is if a p3d (from another pbo) is faulty:

  • you will not get any icons on the 2d map
  • you will get no animations for that p3d (doors open / windows breaking eg)
#

The general rule for my tools is, if it can detect any error at all, it will refuse to make a pbo, without exceptions because the result will be crap. Ignoring them allows you till forums with 'why doesn't it work' when the answer was there in front of you.

tame tartan
#

Ok cool thought it was that way but just wanted to see, will get to fixing those errors, thanks boys magic

grave echo
#

is there a way to pack pbos using a script?

#

thanks

orchid yew
#

yes

grave echo
#

ive tried using pbo manager but im new to batch so im not sure why its not working

orchid yew
#

try not using pbo manager for a start. it works but its not great.

grave echo
#

whats your suggestion?

orchid yew
#

personally it depends on what im doing, most people recommend mikero tools

#

if you already have arma 3 tools installed you can get away with that

grave echo
#

whats the arma 3 tools one called?

#

dsutils?

orchid yew
#

that is for signing pbos

#

you packing mods or mission files?

grave echo
#

mission files

orchid yew
#

filebank

grave echo
#

sweet

#

thanks

#

nvm, the files are empty?

orchid yew
#

dm me what u r doing

dawn palm
#

@grave echo , it's recognized by most people that the bis tools supplied just aren't up to the task. As a generalization they haven't been updated since arma1 (except for the all important bis binarise). Much worse than that (in most people's opinion) they ignore all errors. You have no idea if what you put in a pbo works at all, merely that you built a pbo.

This leaves you boxed into a corner, build, load game, test, fix, build, load game, test, ad nauseum.

go here

https://mikero.bytex.digital/Downloads

These tools are FREE and will help you immensly. They will binarise your mission.sqm for you, check for typos, etc etc.

your choice is to use makapbo.exe in a batch file, or similarly pboProject.exe (which is hell on earth discovering errors)

#

pboManager is an excellent little gui and highly intuitive. it can only be used for mission making, and even then it does not check for errors, nor can it binarise anything (pretty important to reduce loading lag). I don't think it has a cmdline interface and I would not recommend you use it even if it did.

orchid yew
#

it does have one.

dawn palm
#

it costs you nothing to use the above tools (most people do).

#

and, as unbelievable and as extraordinary as it sounds, the tools bis supply are crap. You, like everyone before you recognise that, eventually.

#

If you don't want to use mine, use @glossy inlet's Armake tools, they are excellent too.

grave echo
#

im using filebank and that is working wonderfully

dawn palm
#

well, i've explained as best as i need to, what's going to happen. If filebank suits you, all is well too.

glossy inlet
#

Armake not my tools

dawn palm
#

OH, I thought you tool over

glossy inlet
#

I just made the C++ rewrite that noone uses

dawn palm
#

shame

#

c# / dotNet is not useful for the penguin

glossy inlet
#

why not

#

dot net core works just fine

dawn palm
#

i've not had much faith in it.

nocturne basin
#

Dot net core is perfectly fine

scenic canopy
#

is reflection performance improved?

#

mono had really slow reflection

nocturne basin
#

Reflection is pretty much always slow

#

But you can work around the slowness

#

By actually compiling expressions for example

scenic canopy
#

helped improve startup time on a C# project. On Windows it started in like 5-10s, Mono on mac/linux took 2-3 minutes. Got it down to a couple of seconds on both after removing a lot of non needed reflection.

dawn palm
#

Wherever i can, i avoid being Micro$oft centric, and even Apple to a lesser extent. It's not that i dislike them, i think Msoft have done much more good than harm, but it's part of what the Canadian Anthropoligist? (Dr Suzuki) warns that monocultures are dangerous.

#

And when it comes to dotNet specifically, it's not a language in it's own right, its a collection of (mostly) well structured libraries which i don't have much use for.

sacred flume
#

i love direction microsoft has gone with current ceo, the things they are currently developing and supporting

#

so many great products not locked behind walls

#

its great GUI frameworks moved into .net core 3.0+

dawn palm
#

the catch here is they are GUI. which instantly means windows compatible.

#

which is fine and good if your IT career will never venture away from them.

#

but the world is much bigger than the intel pc. Big Blue (ibm) make billions each year from their mainframes and as400s (updated)

#

then too if you look at any pie chart available via google regarding what language is the most dominant. It is venerable, little C (not c++, not C#), but K&R c which fills over half of the pie chart. (and around 15% of that uses ebcidic, not ascii as it's text language). Then there's apple, which uses a big endian framework, contrary to intel and it's frendz.

#

So what you're left with, with microsoft are some remarkably good lego blocks than you just bolt together and produce an app. That's fine, but it's horses for courses. I can't handle the bloat that these lego blocks produce.

glossy inlet
#

It is venerable, little C (not c++, not C#)
According to TIOBE Index Java is currently at top, and it fills about 17% of the pie chart

https://insights.stackoverflow.com/survey/2019#technology-_-programming-scripting-and-markup-languages
According to Stack Overflows survey both C# and C++ and a half dozen other are more popular than C
That being "popular" though. Considering C is 4th on the "Most Dreaded" list, its to be expected that many people are still stuck with it even though they hate it

dawn palm
#

true the last part

#

I went thru several pie charts with tim dittmar about 18 months ago, i don't have the urls handy here to show you.

#

But I would never accept that Java is top of the heap in usage. It's proprietory and limited due to that.

#

My main point here is that we have a skewed view of the intel PC and Microsoft dominance becuase (most of us) use them every day. The world is a far far far bigger place and neither of them figure enormously in cpu usage. Just think Sun microsystems or Crays, or the squillions of rasberry Pi's and Arduinos. As for the internet itself, it's Apache, not Msoft who dictate the pace.

#

And Apache is not cpu specific, it runs on whatever cpu architecture gives you a thrill. And this harkens back to Suzuki's comment that monocultures are dangerous places to be in.

scenic canopy
#

quite a lot of ARM based devices ๐Ÿ˜›

dawn palm
#

haha

#

and risc cpus too

scenic canopy
#

Nginx will probably surpass Apache soon too if it hasn't already

dawn palm
#

the more variety the better. there is no one shoe fits all best solution. variety breeds innovation

stoic matrix
#

Especially in computing stuff, the overhead of having to cater to a huge variety of applications loses out to the specialized stuff.

dawn palm
#

which (for me) is where severe bloat occurs. Microsoft lego blocks contain code that will never be used in a given situation, even most situations, but it's there for when it is.

stoic matrix
#

It's the reason why pretty much all super-computers and specialized computers use a super-light version of linux/unix most of the time. They don't need most of it.

dawn palm
#

yep

stoic matrix
#

In a lot of cases, the stuff they do need that is otherwise offered in a library is running a specialized pared-down version they made/complied for themselves to reduce overhead further for their specific application.

dawn palm
#

an example of innovation AND monoculture is microsoft's quite brilliant introduction of 16bit unicode. Overnight, it destroyed conflicting code pages. people being unable to read cyrillic email, or russians unable to read west european because they didnt' and couldn't have the codepage to do so.

Msoft deserve very credit for taking that bull by the horns and revolutionizing how we can (now) easily communicate. (what we know as UTF16 actually came from Ibm with what they (then) called dbcs. The codepoints are the same. It took Microsoft to implement it in a real world way.

BUT, now Msoft have boxed themselves in a corner. The world moved on (largely due to linux) and adopted Utf8, a brilliant move that inovated everything back to standard sbcs US ascii code page with bells on. We on discord are the recipients of that because everything here is transmitted in it. Even the linux file system is utf8 encoded. In the meantime, microsoft encode their file system in dbcs, and don't actually support utf8 in a meaningful way.

#

So, had they dominated (monoculture) we'd still be wrestling with the downsides of so called wide char coding.

#

It's actually an agony to work with (eg) katakana filenames in utf8 and translate it to utf16le for msoft because, by default, they assume what's coming in is 'local codepage' eg ascii, or Tibetan, or wherever you are in the world, your dos screen, and the underlying, default, translation for the file system is sbcs, LOCAL codepage

stoic matrix
#

I count myself lucky that I haven't encountered that, then.

sick verge
#

I try to avoid Microsoft products wherever possible - if only to support alternatives ๐Ÿคท

vast roost
dawn palm
#

and ?

#

you've copied them from someone else, not installed them.

quiet cedar
#

Is there a way to disable pboProject failing to build due to missing files?

#

Other then creating fake files

glossy inlet
#

If I remember right mikero removed that ability specifically to stop people from making their mods build despite failing files.
Due to that ACE/CBA are now completely migrating away from mikeros tools as they've become unusable, so I guess there is no way without fake files

#

I just use my dokan P-drive and have all files

quiet cedar
#

I'm copying strings from the string table and because some of them have file paths in them its catching and causing issues such as "Left/Right &lt;img image='\xmisc\ctrl_strafe.paa'/&gt;"

orchid yew
#

localizing a filepath ๐Ÿค”

quiet cedar
#

Its also catching others like this, Use a path relative to the scenario's directory (e.g., 'Textures/myTexture_ca.paa', relative to the game's directory (e.g., '/a3/Ui_f/data/Logos/arma3_white_ca.paa'where the file path is used as an example in a tooltip.

#

I think it also catchs on \ne.g.

#

A mass search and replace with &#92; has fixed the issue so I'll just have to make a work around for it.

glossy inlet
#

That would probably be a bug in mikeros tools then?

dawn palm
#

I think it also catchs on \ne.g.
Yes. it will. it looks like, it breathes like and it quacks like a duck called ne.g

#

mission files and description.ext are the only files which i don't check file references.

#

as for relative path, it's a bug if not detected. I would have to see the config.cpp you're using it in please.

#

ACE/CBA are now completely migrating away from mikeros tools

if they can't be bothered contacting me to tell me what the problem is, i can't be bothered either.

glossy inlet
#

Already told them that I think.
But also can't really contact every few months when something comes up.
Now they use HEMTT which they can just fix themselves

dawn palm
#

Well, i am between a rock and a hard place here, i am damned if i do, and damned if i don't. Too many people were using the wyswig option to avoid fixing their errors. And THEN filling forums with 'why doesn't it work' when the answer was in front of them. Three guesses who got the blame for 'my tools don't work'.

ace/cba is a collateral damage. The hate fest is largely coming from one person, who is outraged that he had to fix his genuine errors. Be that as it may, ace/cba is predominantly sqf and there's no particular advantage using my tools for it.

and, i have no idea what a hemtt is even if it bit me.

sick verge
#

HEMTT is basically a wrapper around armake2

tame tartan
#

Getting this error when packing my map, anyone know why rapify isnt recognized even though I have it installed?

'rapify' is not recognized as an internal or external command,
operable program or batch file.

glossy inlet
#

Not in PATH

tame tartan
#

Ahh yes thanks Dedmen

vague shard
#

anyone has gotten a Steam (Web) API key to interact with it?

#

we are looking for ways to determine an users subscribed mods (when profile is public)

glossy inlet
#

you can just get your own?

#

you can only see subscribed mods if you have the users auth

#

not externally

scenic canopy
#

@vague shard those Web APIs are locked to publishers, most steam web api documentations list if publisher key is required or not per endpoint

vague shard
#

well kinda

#

User Keys
The standard user keys are available to everyone, all that is required is a Steam account and the domain name that will be associated with this key.

You will also need to agree to the Steam Web API Terms of Use.

You can create a user Web API key from the registration page on the Steam Community.

#

(the rest require the publisher key)

scenic canopy
#

yes, that is the only one I know of that works with (just) a user web api key

#

steamworks sdk is afaik the only somewhat officially supported solution, assuming valve ignores other projects than the publisher's to use their app id

vague shard
#

GetPublishedFileDetails
GetUGCFileDetails

#

should work too

#

this has also a few more from what i understand

scenic canopy
#
#

GetPublishedFileDetails does not require a key

#

GetUGCFileDetails does not work

vague shard
#

ty

sly skiff
#

does Arma 3 tools - GameUpdater work for anyone else? mine hangs up on login. does not proceed further

glossy inlet
#

steamguard?

sly skiff
#

yes

#

that still a problem?

#

well turned it off for a bit there and it logged in

#

apparently that was the issue

#

oh does it also redownload subscribed mods??

#

๐Ÿ˜…

#

no Arma just has grown into a big boy ๐Ÿ˜ต

glossy inlet
#

I got myself a ticket, will be looked at

#

been an issue for like.. years and noone even make a internal ticket

sly skiff
#

Could arma 3 tools maube include just the diag exe somewhere so it would be easy to update? ๐Ÿ˜…

glossy inlet
#

no

#

tools is updated seperately from arma

#

you can probably do some steam hackery to only download that one file

scenic canopy
#

yes, its possible to download specific depot files from the steam cdn

sly skiff
#

Uuu that would be useful! Have to remember to look into that next time I need to update it.

vague shard
#

A3T had a dev branch too, no?

sly skiff
#

yes

glossy inlet
#

it does? ๐Ÿ˜ฎ

scenic canopy
glossy inlet
#

@sly skiff putting diag binary into stable is in discussion, you think thats good?
Also looking to enable some more tools there, don't see why not

sly skiff
#

I've used it without issues so far yeah

#

filepatching etc seems to work just as is with just the diag exe in the stable install

glossy inlet
#

no i mean not the dev diag into stable, but a "new" stable diag then
so you don't need to download dev branch just to get diag

sly skiff
#

yes that would be great

sudden nova
#

Is this an easy fix? it appear at the end of my binarizing log: Cannot read registry HKEY_LOCAL_MACHINE/Software\BIStudio\BinMake

sly skiff
#

it does not mean anything

#

you could add the registry entries manually if you wanted

#

but it should not affect packing

sudden nova
#

Thank you

unique idol
#

Where does the A3 P drive by default store it's data

cinder meteor
#

not sure about default, but you can set the actual location of its data in arma tools

#

I guess if you haven't changed it, and if you go to these settings, you will see the default value

dawn palm
#

the data itself is the game. anything extracted out of the pbos begins life in the p:\a3 folder because that's what the prefix in the header of each pbo says where it belongs

unique idol
#

@dawn palm I was following this very unhelpful guide as someone had mentioned it fixed their TB as I was having the same problem and now my P drive is gone...

dawn palm
#

that tutorial is the best you will find anywhere

unique idol
#

But it broke my P drive, I admit it is probably 100% accurate and the best way to fix but it should definately mention backing up your P drive before doing so

#

Do you know how to fix it?

#

It may have been a mistake of my own

#

but im unsure

dawn palm
#

ah ok, i know what your problem is. don't panic. you haven't lost anything

#

bis generally put THE folder on the c: drive. use windows explorer. i think you'll find it's called c:\Pdrive

#

if not, just look in likely folder names till you find it.

#

then
subst p:\ c:\wherever\you\found\it

unique idol
#

Okay, I will look ๐Ÿ™‚ It looks like BIS is using WorkDrive now instead. Just restarted and it fixed it

#

Will try and subst it now

dawn palm
#

fair enough but you did the right thing, right away to use a 'better' method of making a p drive

unique idol
#

I've only just found this suprised it hasn't been a problem before... hidden away on the PMC wiki ๐Ÿ™‚

dawn palm
#

true, the tute assumes you're starting from scratch, which obviuosly isn't the case for everyone. above all. dont' panic.

unique idol
#

Not sure if the reference was intended but it was appreciated ๐Ÿ˜†

dawn palm
#

whatever happens, be assured you're unconditionally doing yourself a favor following the pmc tute. everyone, including everyone, recommends it. Most folks in the terrain makers channel won't even bother replying to you until you have because 80% of issues get solved with it.

unique idol
#

Hehhehe, thanks I'm still struggling to find where it is stored do you know how it is stored?
Is it just straight up a clone of what is in P drive or is it in some binarized or encrypted format?

dawn palm
#

i don't understand the question. all that happens is a 'virtual' drive, pretending to be P:\ happens. and it uses the data and folders in c:\workdrive

#

the bis >engine< is linux. it knows nothing about c:\my documents or anything else on a micsoft pc. it only knows about \

you are emulating that by creating a P:\ or a Z:\ or any other drive:\ that gives you a thrill.

#

so, it's neither cloned or copied or stored onto p: in a literal sense, it's written to c:\workdrive, but to be usable when making terrains eg, it needs a p:\ to access the houses and assets inside a pbo

unique idol
#

Yes that's what I was looking for, I was unsure of how it was emulating that virtual drive

#

but that makes sense

dawn palm
#

so next step in the chain, if not done already, is to populate that drive with the arma engine's pbos. and to do that, you need arma3p

#

the end result is all that data, including your project behaves in exactly the same way, and accessed, in exactly the same way.

unique idol
#

Yes, I have this done already done it a few times now with each PC install, but still trying to figure out where it is stored, been scripting and making little things for a while but new to Terrain Builder and Object Builder

#

But still can't find the path to the P drive to do the subsitute

dawn palm
#

well, it's there somewhere. hell, just do an explorer search on the nameof your project folder.

unique idol
#

Found it

#

It's under Documents >> "Arma 3 Projects"

dawn palm
#

and now forget all about it (other than set the subst correctly) it does not figure, nor should it figure in any scripts you write. you need to think in bis terms of \ to be successful.

unique idol
#

yeah ๐Ÿ™‚ thanks a lot

meager falcon
#

I know this is a bit off topic but it relates to the sqflint update..
Does anyone know if a azure devops account is actually completely free (if I dont use the services ofc) kinda confusing because they claim it to be free for 30 days, but what after that..
I would need one to publish the extension to the vscode marketplace

scenic canopy
#

its free for one private worker (with a limit on hours) and a couple of public

#

using github actions or similar CI which is included with the code hosting is probably easier though

#

azure devops is more or less the same as github actions now

#

some of the build images are already shared

#

and they are merging more of them

#

the azure devops linux image docs redirects to github actions

meager falcon
#

thanks for the info ๐Ÿ‘

#

the usual microsoft thing

#

"hint hint.. we've got this cool new thing... USE IT!"

scenic canopy
#

the main benefit of github actions over azure devops is probably the community provided build steps

#

there are a lot of more them and easier to interact with or extend

#

even arma specific ones

meager falcon
#

I like the idea, but I didnt have the time to dig into it yet
I just want the action to just my dockerimage, mount a folder and copy some stuff out once the build is done..
Is there an easy way to do stuff like that?

scenic canopy
#

sure, just run a docker step as part of the build

#

it will automount the repo inside the container

meager falcon
#

nice, gonna give it a try then

meager falcon
#

got it done

neon flax
#

What's the difference between original one and this?

meager falcon
#

updated the parser to read "missionNameSpace setVariable" as global variables and includePrefixes now alos apply to CfgFuntion paths

#

first useful if you define some vars publicly (like initDone or smth)
scond useful if your project structure does not have a toplevel folder for alle the functions (or the functions are in another folder (like storing cba or ace outside your repo or whatever)

#

Also I am willing to implement some more stuff if anyone has got some ideas

#

probably gonna do some cleanup and performance tweaks

nocturne basin
#

Preprocessor, sqf-vm Support,...

neon flax
#

It has preprocesor support already.

nocturne basin
#

Been quite some time ๐Ÿ˜‚

neon flax
#

Not very robust tho. Can hang sometimes.

meager falcon
#

yup there are some stack overflow issues I didnt get behind yet

neon flax
#

The most annoying thing right now for me is that it mostly works with missions via description.ext

meager falcon
#

yup

neon flax
#

It could use config.cpp and pboprefix detection.

meager falcon
#

you cann add any CfgFunction.hpp to manual discorery list tho.. will work just fine

#

thats what it got now.
add the cfgFunctions.hpp to the extDiscovery list (propably gonna do auto detection for this one)
then define the prefix in includePrefixes

neon flax
#

Are you going to maintain the Java part too or only the extension part?

meager falcon
#

both

#

the setVariable stuff already was integrated into the java part

#

also added autobuild (github actions) to it.. the netbeans stuff was horible

#

can also be built via docker locally

cinder meteor
#

If you are on it, maybe you could check why parser loves to hang on our code ๐Ÿค”

#

Let me see if your sqflint hangs too

#

no it doesn't hang! nice! previously java was taking one core

#

oh wait nvm

#

'the SQF language server server crashed 5 times in the last 3 minutes, it will not be restarted` at bottom-right

scenic canopy
#

๐Ÿ˜›

neon flax
#

That's progress, at least it's not getting stuck eating one core.

meager falcon
#

can you send me the output of the sqf language server channels?

#

or a link to your repository so I can check whats causing it

vague shard
#

did someone here look into how the bikey to bisign matching works on a technical level?
in other words how to replicate a client with pbos&bisign vs a server with bikeys matching check

in addition how does optional mods works these days?
AFAIK since a recent update A3 is basically equalMod/Files required by default, yet optional mods (like sound replacements) apparently still work somehow?

orchid yew
#

i used to do optional mods by adding the key to the server but not listing it in the server -mod parameter. I assume it hasnt changed.

vague shard
#

so its a two layered system?

  1. first check if server bikey allows client bisign/mod hash
  2. then check if client has the same pbos and as the server pbos (loaded via -mod. while -serverMod is excluded)
dawn palm
#

The bisign file on the client is not used. it's sent by the server

#

small correction to above. i went thru this excersise 18 months ago. things may have changed.

glossy inlet
#

Got this weird issue with steamcmd on windows.
When launching via cmd with parameters, it'll ask for steam guard code after trying to log in.
When launched via "Process" from visual basic, redirecting stdout/stderr/stdin and programatically controlling it.
Everything works fine, except the steam guard. After logging in it just hangs and never asks for the guard code.

My idea was that maybe it checks whether the console is interactive somehow and doesn't request guard code if not, but in that case it should just fail and not freeze. And I also checked the steamconsole.dll and there is no "is interactive" kind of check at the place where it freezes.

Any ideas?

#

Aha!
Found steam logs [2020-05-04 19:57:54] [1,2] RecvMsgClientLogOnResponse() : [I:0:0] 'Account logon denied, need two-factor code'
But why only if launched in code and not via cmd ๐Ÿค”

nocturne basin
#

Maybe it checks in what env it was launched into? Or if hooks are Set or something

glossy inlet
#

Ah no both fire the "need two-factor code" but only the cmd version actually asks for it.
Yeah that was my thought, but I checked the code and can't see that.. Guess I have to grab it in a debugger and manually step through whatever steam does there

nocturne basin
#

Iirc there Was a way to directly Pass the 2FA Code

#

Burried in some Wiki Page

scenic canopy
#

@glossy inlet did you assign it a proper TTY?

#

stdin/stdout is not enough

glossy inlet
#

Yes via command line you can pass it, but I first need to launch it so that it even generates/requests a code.
Or rather, I need to know if the client needs a 2FA code.
Currently the program waits for steamcmd to ask for the code, but for some reason it never did.

Don't know if I did, I use this https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.process?view=netcore-3.1
With the 3 redorects set tp trie https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.processstartinfo.redirectstandardinput?view=netcore-3.1

scenic canopy
#

not enough

#

it will check if its running inside a "proper" TTY

#

like it wont trigger steam guard inside a container unless you connect a TTY to it

glossy inlet
#

oof. I'll read up on it and try to try it out ๐Ÿ™ƒ

scenic canopy
#

I haven't tried conpty myself but a couple of other PTY libs

glossy inlet
#

Mh.. Can I just go the dumb way and just launch the program via a invisible cmd prompt instead of launching the program directly?

scenic canopy
#

maaaaybe

glossy inlet
#

cmd /c ๐Ÿค”
That'd be much easier, I'll try ๐Ÿ˜„

#

nope doesn't work ๐Ÿ˜ข

#

Well in C/C++ I would now know how to set a pseudo console.. now i just have to figure out the same in friggin visual basic

nocturne basin
#

Why visual basic?

glossy inlet
#

Because old stuff (actually not that old, I cannot answer you that question, i don't know why)

nocturne basin
#

Unless you have to use vb, use c# or c++/CLR and just reference the assembly

glossy inlet
#

I have to

#

I'd just rewrite this garbage in C# if I could

nocturne basin
#

Then good luck
You will need it

#

Visual basic is pretty much a "resting" language
Loads of Features in CLR will never Land in VB

#

Maybe just reference the win32 APIs and try to work from there

glossy inlet
#

last time I used VB was in 2011 or earlier, and i didn't plan to ever go back there

#

just need to fix this one "small" thing and then I can get outta there again ๐Ÿ˜„

nocturne basin
#

Last time I did Was back when garrysmod.org has still been a thing ๐Ÿ˜‚๐Ÿ˜‚

#

Well
As said
Reference the win32 APIs then and work from there ๐Ÿคทโ€โ™‚๏ธ๐Ÿคทโ€โ™‚๏ธ

glossy inlet
#

wow.. I opened steamcmd in a visible window, still doesn't work.
I click X on the steamcmd window and make it exit, steam guard prompt window pops up :U

#

Try to login.
Nothing happens.
Click X
Assertion fail illegal termination of worker thread
steamcmd exited signal
Stdout: "Please Enter the current code from your Steam Guard Mobile Authenticator app"

What the literal.. when I kill it, it prompts the guard code ๐Ÿ˜„
Maybe steamcmd is just not flushing the stdout

nocturne basin
#

๐Ÿ˜‚ ๐Ÿ˜‚

glossy inlet
#

So.. I can now rewrite the whole way the Process output stream is handled, which the SO thread as a C# implementation of, but implement that whole mess in VB..
Or.........
I do a WriteProcessMemory and just hack the steamcmd process and change the prompt message to have a \n at the end

nocturne basin
#

The third Option would be to just use c# and reference the assembly ๐Ÿคช
Whole surrounding still can remain in VB

fickle void
#

Any chance someone here has built armake2? Or even better just has a binary I can use?

#

Hit MAXINCLUDES in armake1, it doesn't support easily building on windows, thought I would just try armake2, and it complains of many unresolved externals wrt openssl, even though I have it installed and setup as per the docs

scenic canopy
#

armake2 used to be embedded in hemtt

fickle void
#

i think it is, but hemtt forces requirements on project layout i think

scenic canopy
#

as in you could do armake2 calls via hemtt

fickle void
#

oh really? thanks!

scenic canopy
#

hemtt armake

#

works with 0.6.x

nocturne basin
#

Sqf-vm preproc also can work ๐Ÿค” ๐Ÿคช
Just zap it into armake afterwards

fickle void
#

oh good idea

scenic canopy
#

I think I have a modded version of armake2 with higher limit as well

fickle void
#

oh it has the limit as well? :/

scenic canopy
#

no, you're right, that was armake "1"

fickle void
#

whelp armake2 couldn't even parse line 1

#

any chance you have that modified armake to hand please?

scenic canopy
#

which os do you need it for?

fickle void
#

windows

#

or maybe you know why i get

note: libarmake2-643055c34f06a35e.rlib(armake2-643055c34f06a35e.4zynadfububvquq9.rcgu.o) : error LNK2019: unresolved external symbol _RSA_get0_key referenced in function __ZN7openssl3rsa15Rs
          libarmake2-643055c34f06a35e.rlib(armake2-643055c34f06a35e.4zynadfububvquq9.rcgu.o) : error LNK2019: unresolved external symbol _RSA_get0_factors referenced in function __ZN7openssl3rsa
          libarmake2-643055c34f06a35e.rlib(armake2-643055c34f06a35e.4zynadfububvquq9.rcgu.o) : error LNK2019: unresolved external symbol _RSA_get0_crt_params referenced in function __ZN7

when trying to build armake2? i setup ssl correctly i think...

#

(that is just 3 of the errors, looks like every single ssl function failed to resolve)

scenic canopy
#

armake2 you can get from the link above at least

fickle void
#

You mean the version in hemtt? I guess it is very out of date? It fails on first line

#

no later version of hemtt that 0.6.1 exposes it, so i can't use newer version from that

scenic canopy
#

it should be somewhat up to date

fickle void
#

okay i will check my errors again

glossy inlet
scenic canopy
#

๐Ÿ˜›

fickle void
#

interesting armake2 didn't like that i had a header without a trailing newline at the end

scenic canopy
#

that causes issues when concatenating

#

its good practice to always have an empty last line

fickle void
#

after fixing that it works with hemtt build of armake, thanks

scenic canopy
#

๐Ÿ‘

glossy inlet
#

Man.. long road for a small fix.
Ended up injecting a dll that hooks steam's stdout and injects a flush after printing the steam guard prompt..
Suuuper jank, but not as jank as the idea of writing stuff in VB

#

So @sly skiff can soon have his GameUpdater with SteamGuard like we talked about a week ago ๐Ÿ˜„

sly skiff
#

wee

glossy inlet
#

I wonder for how long that was broken now, atleast mid 2019

sly skiff
#

Although I did receive a thingy that can run SteamCmd to fetch me the individual diag.exe file already ๐Ÿ˜…

#

Im sure that fix will be beneficial for everyone though. so thank you.

glossy inlet
sly skiff
native kiln
#

That steamcmd bug is probably one of the most annoying I've ever encountered, and that it hasn't been addressed by steam in forever

neon flax
#

They don't have any feedback tracker do they? ๐Ÿ˜„

#

@meager falcon can you enable issues on your sqflint fork?

#

The tab is missing on GH.

#

your version is not working for me ๐Ÿ˜

#

original:

Indexing workspace...

fork:

Indexing workspace...
SQFLint: Error message java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.lang.Class.privateGetMethodRecursive(Unknown Source)
    at java.lang.Class.getMethod0(Unknown Source)
    at java.lang.Class.getMethod(Unknown Source)
    at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli.ParseException
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 7 more
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" 
SQFLint: Process crashed with code 1
vague shard
#

no one looked into how bikey system works? ๐Ÿ˜

dawn palm
#

@vague shard, the ace/cba guys have some experts with this.

#

The Microsoft CRT considers that stdout is not a TTY when it's a pipe
worse. it no longer recognises a gui has been invoked via the dos console (bat file eg), so there is no stdin stdout. it always has to be created (allocConsole). This in turn causes all message text to be splattered in this new console, not the one that invoked.

#

Does anyone have some bullet proof code please in C/C++ to set the user's environ string. I've tried everything I can think of, including simple setX command in a dos console, but all results are unreliable. Despite my best efforts there is no error reported. Setx itself, cannot add to a PATH if it's already larger than 1023 chars. But that is no issue via C/C++ direct registry changes. It is still unreliable (in win10 only)

meager falcon
#

@neon flax I will didnt know they were disabled

#

said error is fixed in 0.11.3

glossy inlet
#

the ace/cba guys have some experts with this.
There are 2 or 3 guys who know how to generate bisigns. But not how the system works in-engine.

vague shard
#

@karmic niche said steam protocol sends a string for the bikey over network (if i got him right)
however i cant see how this matching works. via hash or some comparison of bisign with bikey and pbo header/footer i would imagine

glossy inlet
#

afaik its just a check for whether you have bisigns for your mods with that bikey name at all.
It doesn't actually verify if any of the pbo's are legit

dawn palm
#

@karmic niche , i do know that the actual generation of the bisign (both generated, and calculated in MP) is solely dependent on the 20 byte sha key at end of file. In times past, this key could be altered in a hex editor, because it was not checked, in-game, during pbo load (client AND server). Now, it is, and hence a fast read of the sha is all that's necessary

#

I also know that the bisigns on a client are not part of this. Bis, quite rightly, have fiddled around in the mechanics of what (and how) to transfer<>back and forth, and at that point i lost interest.

vague shard
#

to be clear: we are not interested in replicating the check itself, but rather to determine just if client vs server mods/bikeys match, and how optional client, as well as server side only mods system works, so we can give the client the information if he can join the selected server with the current loaded mods

dawn palm
#

that makes sense to me.

scenic canopy
#

server side mods are never exposed to clients at least afaik

glossy inlet
#

-serverMod is not, until you actually join the server and their effects might become visible

karmic niche
#

For the record, I have no idea how computing the hash for a mod works (I once just heard someone say that the mod hash is the SHA1 hash of all the hashes from all the PBOs, concatenated? Or something like that. Is that even true?)

What I said (to Kju) is that, when queried, the server returns a list of mods running on the server AND signatures. The signatures seem to be the filenames of the bikeys from the keys folder, with the extension stripped. These are just strings.
And now you could compute which mods are optional by looking which signatures don't match the mods running on the server.

...if only matching them was possible. Because no one prevents me from having a mod named @Apples and signed with the key oranges. And if I do, then that's what you're going to get when querying the server. So you have no way of knowing what mod the oranges signature points to. Does the server allow connecting with @Oranges? You can't know that UNLESS you have that mod already subscribed and installed. In which case, the Arma launcher can check the signature file inside the mod folder, locally, and compare the name.

That's my understanding of how the launcher detects the required and optional mods for a given server. If I'm wrong, I'll happily hear the correct process.
@vague shard @dawn palm @glossy inlet

dawn palm
#

I have nothing useful to say here Stack.

glossy inlet
#

The signatures seem to be the filenames of the bikeys from the keys folder
yes.
And now you could compute which mods are optional by looking which signatures don't match the mods running on the server.
By checking if there are bisigns for the key names on the server.
Yes bisign name should match key name, few modders in the past assumed it didn't matter, and renamed the bisigns to include the mod version which caused big-sad with V3 signatures.
It is not a full sig check, as the same name doesn't mean its the same key.

#

Is it only transferring the key names? I wasn't sure if it also transfers a hash or smth and didn't have time to look yet.
If only the names then its most likely what I wrote, again can't check currently

karmic niche
glossy inlet
#

I don't even know what A3 Launcher needs the sig names for, I wasn't aware that it did any sig verification.
Though I also never really used it..

karmic niche
#

It surely uses that to tell you that "this server supports these optional mods, select if you would like to enable them", when trying to connect to a server (NOT when using direct connect, FYI). Maybe for something else, too

orchid yew
#

im pretty sure it sends more than just the key name for keys on the server. my launcher doesnt suggest to load an optional mod if the server key is the same name but outdated.

karmic niche
#

@orchid yew I'd be much obliged if you decided to take a look at your code

#

Just mind you that some mods change the key name with each release (the filename contains the version) so that's what could have actually prevented the suggestion

orchid yew
#

in my case the old and new key names are identical. The difference (other than being a new key) is the old is v2 and the new is v3.

glossy inlet
#

there are no v2/v3 keys. The key format didn't change

orchid yew
#

do i mean v3 sig then? v2/v3 is a difference somewhere in my case.

#

idk if it even makes a difference, the only point im trying to make is somehow the launcher can tell the difference from more than just a key name.

glossy inlet
#

Yeah bisigns have differences, but Arma can handle v2 and v3

karmic niche
#

@orchid yew Are you sure you're not talking about parsing the keys on disk, locally? Because there really isn't anything more that comes over the wire (and don't get me wrong: I would love to be proved wrong because that would make my life easier)

orchid yew
#

no its a remote server. i might give it a look tomorrow if i have time.

orchid yew
#

am unable to replicate what I'm describing on my test server, must be misremembering the details of my case ๐Ÿค”

karmic niche
#

Thanks for giving it a try!

subtle smelt
#

Do any tools exist for linux to make PBOs? I know of MakePbo by Mikero but I'm looking for something for linux

glossy inlet
#

armake, armake2, armake++, hemtt

#

I think mikero also had basic linux tools?

subtle smelt
#

yea I see a linux thing in the download list but it says to be depbo tools, might have a PBO maker in there, it isn't really clear

#

Oh yea, it's in there

scenic canopy
#

cpbo also exists for linux

#

there's a bunch of other random tools as well

#

a couple of pbo libs

karmic niche
#

AFAIR you use the same command in the command line to create a PBO both on windows and on linux (using Mikero's tools)

scenic canopy
#

and a FUSE implementation for virtual fs based on PBOs

orchid shadow
#

just hack it together in hexedit

dawn palm
#

all my dos tools are actually linux based first and foremost. they have wrapper code to make them microsoft compatible.

#

depbo tools, might have a PBO maker in there, it isn't really clear

when all else fails.....

heavy quartz
#

I've messed my tools install up somehow.I uninstalled mikero's tools and reinstalled but it still says i dont have the depbo.dll installed an i have.tried a couple of times.Dont know what ive done...Please help!:)

dawn palm
#

what is the exact message you are getting.

heavy quartz
#

code execution cannot proceed beacause Depbo.dll was not found

#

i thnik i deleted the folder instaed of uninstalling.or maybe moved it..

#

dunno,been a long day..

dawn palm
#

then install depbo again.

heavy quartz
#

i have. wait 1.i 'll do it again.I can see the depbo64.dll in the folder

dawn palm
#

this is where ALL my files live:

C:\Program Files (x86)\Mikero\DePboTools\bin

#

you can neither stuff it up or alter it. They will go to the above no matter what else you try to do.

heavy quartz
#

yeah, i'am in there.

#

i just re ran the depboinstaller.same error

dawn palm
#

what exe are you running to get that message

heavy quartz
#

oh, sry.Eliteness

dawn palm
#

then the eliteness you are using is not the eliteness that's in the above folder.

heavy quartz
#

.k,I'll check

#

deleted the old shortcut and re run the installer and used that.no go.

dawn palm
#

that;s physically impossible to achieve. if the dll is in the same folder as the exe it has no choice in the matter but to be found,. it's the first thing the OS does.

#

paste a screenie of your folder please.

heavy quartz
#

bin folder?

dawn palm
#

what do you think?

#

or simply dbl click on eliteness while you're in the bin folder.

heavy quartz
#

same result if i dbl click the one in the bin folder

#

theyre the free set

#

looks normal?

dawn palm
#

yep, i have no idea then, you have something very strange going on on your pc

heavy quartz
#

hmmm

dawn palm
#

perhaps a virus blocker being a little enthusiastic

heavy quartz
#

maybe..my pc made me jump thru hoops to let it dload the exe's

#

if i try to boot pboproject i get this

glossy inlet
#

Well..

#

it complains about dePbo.dll not being found. And thats correct. You don't have it

#

You have DePbo64.dll, the 64bit version.

#

But not a 32bit DePbo.dll

#

Also what the frick is wrong with your tools installation that you have deOgg64 from september 2015, Eliteness from January 2015, pboProject from november 2018, and makePbo from december 2019

#

why do you have such a weird mix of very old, to still old dates?

heavy quartz
#

i have older tools than that prolly

glossy inlet
#

well obviously you do

#

I wouldn't recommend to mix and match 5 years of tools evolution together into a single installation

heavy quartz
#

i mainly stick to tools i know to use.I dunnootherwise m8.I arnt a code guys fella's.I just try my best and go with ehat works.

#

i uninstalled the toolas and reinstalled. shouldnt that cover that

glossy inlet
#

Where did you download them from?

#

If you downloaded it from the official source, your Eliteness would have a changedate of december 2019

dawn palm
glossy inlet
#

but yours is at january 2015

dawn palm
#

(good grief)

heavy quartz
#

thanks.

#

๐Ÿ™‚

dawn palm
#

and you were right dedmen, those tools are so old they're looking for a non-existent 32bit dll

heavy quartz
#

nice find.:)

glossy inlet
#

Still wonder where you got the download from. Maybe that source can be taken down so that not more people fall into that trap

dawn palm
#

they're probably from a Russian site, or possibly a since taken down official bis site (Julien)

heavy quartz
#

Well.Huge thank you. mikero and Dedman.

#

I now have my old friend eliteness back again.:)

#

And thank you for your tools m8.I been around since Ofp and appreciate your work over all this time.:)

vague shard
#

XXX.Arma3Profile.browsingSource: Unknown enum value Friends
any ideas what this about?

glossy inlet
#

your arma profile has a browsingSource entry with a invalid value

vague shard
#

well yes but how is this changed / why is Friends not valid

glossy inlet
#

I don't have a browsingSource in my profile

vague shard
#

@native kiln pretty cool ๐Ÿ‘ how do you manage with timeouts and other issues (corrupted downloads/missing data, etc) of steamCMD itself?

scenic canopy
#

It uses steamkit2 which is a reverse engineered steam client not endorsed by valve. it interacts with the steam cdn directly

#

If you want to be on the safe side use any of the steamworks based clients

native kiln
#

@vague shard what Dahlgren said, if you need to be 100% sure it never breaks it's best to go with a steamworks based client, but otherwise this doesn't use steamcmd so it doesn't have the timeout issues of it ๐Ÿ˜ƒ

scenic canopy
#

that or your account getting flagged

vague shard
#

do you do some post update verification - is it even possible with available data/API?

#

like are these two custom implementations or native steamkit2?

--synctarget If enabled, only changed files in the target directory will be downloaded (only changed files will be deleted before download).
--enablesyncdelete If enabled, synctarget will also delete files that are not in the original download, making the download target folder a 1 to 1 copy of the original.

#

with IFA3, and I believe also CUP, we have the issue with old installs Steam doesnt remove files no longer in depot (at times).

native kiln
#

@vague shard i do very primitive checks on whether the data is as expected right now, but i can add a --verify parameter that also hashes the downloaded data before writing it to disk

#

the two parameters are custom implementations, steamkit2 only gives you the tools to download a chunk of a file off steam, im building on that

vague shard
#

excellent ๐Ÿ‘

fiery vector
#

Hi all, does Arma3 support pbo compression? if so, I'm trying to make sense of the text on your wiki to implement your compression, but it's proving a little fruitless

glossy inlet
#

Yes

#

But its not been tested for a looooong time. And last time people tried most had problems

fiery vector
#

ok, thanks

#

I'm making a C# pbo library, but I'm trying to test compression

glossy inlet
#

probably not worth it

fiery vector
#

lol

#

well, I'm trying to reduce the size of my pbo and RLE on the scripts would help

dawn palm
#

the biki contains accurate code for both read and write lzss compression

fiery vector
#

I see pseudo code only

#

unless I'm looking in the wrong place

dawn palm
#

last time i looked it was written in c

#

ah yes, you are right

#

be aware that some sqf cannot be compressed. bis in their infinite wisdom neglected to use it for any sqf/sqs beginning with init_Anything

fiery vector
#

oh

#

ok, well that seems to be the most appropriate place to use RLE compression lol

glossy inlet
#

The code loading stuff shouldn't even know that pbo file compression is going on. So it shouldn't matter what kind of sqf file its about

dawn palm
#

also, paa compression uses a different checksum to the norm.

glossy inlet
#

paa are compressed anyway, unrelated to pbo compression

fiery vector
#

yeah, I get that

dawn palm
#

yes @glossy inlet , but someone at bis thought he knew better and byapassed the standard file reading code

glossy inlet
#

wuht

dawn palm
#

init.sqs eg, cannot be compressed. easy for you to test the truth of that.

glossy inlet
#

just as easy to fix

dawn palm
#

how?

glossy inlet
#

Well change the code that loads these files

dawn palm
#

i don't work for them.

glossy inlet
#

But I do

dawn palm
#

problem solved.

fiery vector
#

@glossy inlet was there a choice made at some point to give up on the RLE? because you have 0 files marked as compressed in any of your pbo's

glossy inlet
#

its just not useful

#

saving a couple MB on what.. 80GB of data?

fiery vector
#

hmmmm, true

glossy inlet
#

and with todays internet speeds, basically not worth it anywhere anymore

dawn palm
#

compressed p3ds will save approx 20% of space, wrps considerably more, but i agree with dedmen

fiery vector
#

I wanted to use them due to my mission file growing, I guess I'll have to look into other ways of reducing the size

glossy inlet
#

just increase mission download speed and all good ๐Ÿ˜„

fiery vector
#

But thanks for engaging with me @glossy inlet

#

lol my server hag dedicated 1 Gigabit

#

still slow

glossy inlet
#

Yes because default Arma bandwidth settings are low

#

basic.cfg

class sockets{

maxPacketSize = 1430;
initBandwidth = 2000000; // 16 mbit
maxBandwidth = 6250000; // 50mbit
};
fiery vector
#

Thankyou ๐Ÿ™‚

cinder meteor
#

initBandwidth and maxBandiwidth are not referenced at wiki or am I wrong?

glossy inlet
#

correct

cinder meteor
#

Should they be added there?

glossy inlet
#

no

cinder meteor
#

ok

#

๐Ÿค” why?

glossy inlet
#

Too unsafe to let some life kids mess up their servers with that

cinder meteor
#

What's default value of these values?

glossy inlet
#

will make it public when theres enough info to explain it, and when we can stop idiots from making their clickbait "how to magically make everything better" videos ๐Ÿ˜„

fiery vector
#

haha

#

dammit, there is my idea out of the window

#

clickbait is so annoying though

cinder meteor
#

You are laughing but someone might be writing a how to arma magic server fps guide now ๐Ÿ˜„

glossy inlet
#

well magic server fps is easy ๐Ÿ˜„

dawn palm
#

btw, ignoring whether lzss compression is useful or not, paa compression was around 20% reduction because (generally) only the top two mipmaps are lzo compressed, the remain six or so are plain jane. But, compression can't be used any more because the texheaders.bin creates corrupted data.

glossy inlet
#

all mipmaps above a certain size are compressed

#

Idea is that compression is only used when "Its worth it"

dawn palm
#

yep. and whatever the certain size is, it generally applies to only the 1st two. Just mentioning it. not an argument.

glossy inlet
#

i had the idea of adding zstd support

dawn palm
#

to my mind if it aint broke don't fix it. the difference between all compressors isn't big enough.

#

most of them use liv-zempel encoding with differences in the size of the dictionary.

scenic canopy
fiery vector
#

@scenic canopy thanks, but I already turned that up during my traveling of the net. Also, it seems there is a custom implementation of LZSS reading only.

scenic canopy
#

one major downside of compressed PBOs is that most delta patching tools works better with uncompressed data

#

that includes steam workshop and arma3sync

dawn palm
#

ouch

scenic canopy
#

at least you'll often get bigger diffs when data is changed ๐Ÿ˜›

#

as data will be shuffled around more than without

#

then again good internet connections are a lot more common today

dawn palm
#

i've heard that, but not any total collapse of an obfuscated (compressed) pbo.

scenic canopy
#

not sure if the upsides outweigh the downsides with the current solutions at least

fiery vector
#

well, the main reason was to decrease the download time of users loading into my server

scenic canopy
#

are you using a solution that supports delta updates?

#

except for the additional CPU overhead on clients it cuts down on download time and bandwidth

#

like steam or arma3sync http

#

swifty too I guess?

karmic niche
#

I think he is talking about the mission file - something that you won't transfer with arma3sync anyway

scenic canopy
#

you're correct ๐Ÿ˜„

#

could still be a mission collection addon? ๐Ÿ˜‰

#

large mission download could be improved with the minBandwidth / initBandwidth at least ๐Ÿ™‚

glossy inlet
#

Delta updates are neat. 14GB RHS update is only 330MB delta :3

scenic canopy
#

yep, I cry a bit when I see an arma3sync repo using ftp instead of http(s) ๐Ÿ˜ฆ

karmic niche
#

You're referring to the range fetching over http(s)? Can't FTP do the exact same thing? I thought it can @scenic canopy

glossy inlet
#

I built my own protocol ยฏ_(ใƒ„)_/ยฏ

karmic niche
#

Sorry, i meant to address dahlgren ๐Ÿ˜›

glossy inlet
#

yes ftp supports it. Atleast filezilla can do it ยฏ_(ใƒ„)_/ยฏ

karmic niche
#

Btw I was trying to do the same with torrents (by storing extra metadata in the torrent file that would allow for delta patching). Never finished that, but I still think that it should be doable

scenic canopy
#

arma3sync does not support delta patching via ftp

#

you could probably do it over ftp but not with current arma3sync ๐Ÿ˜›

#

it uses the zsync protocol

#

torrents support delta patching by default but its not as smart when data shifts AFAIK

#

I don't remember anymore, haven't that much torrent implementations since university

karmic niche
#

I was talking about implementing data shifting inside the PBOs

scenic canopy
karmic niche
#

That was my definition of "delta patching" ๐Ÿ˜‰ (I assumed the regular torrent feature of only updating the chunks of XXX Kb that have changed to be a given, by now ๐Ÿ™‚ )

#

I have looked at the zsync protocol a few years ago. Does it have an easy to use library that one can take and wrap, to use in other programming languages, nowadays?

scenic canopy
#

C, C++, I think there's one in Java too

#

could just wrap the zsync client unless you need 100% control?

karmic niche
#

I feel bad if I don't have 100% control over my program ๐Ÿ˜‰

scenic canopy
#

might also be faster than reimplementing in other languages

#

like the arma3sync impl isn't super snappy sometimes

#

they've improved it a lot over the years

karmic niche
#

Well, that's why I just wanted to reuse the C(++) library by wrapping it, instead of reimplementing

#

I was considering using zsync for my launcher years ago but since there was no easy to use library, I switched to using torrent files, that gave an additional feature of clients sharing the file between themselves while (and also after - if selected) downloading

scenic canopy
#

its a nice bonus with peer2peer

nocturne basin
#

one could also implement a very basic change-transfer-only setup without much hazzle

#

biggest problem imo. is to detect inserts

#

which is kinda hard to do

orchid shadow
#

Swifty does PBO deltapatching fyi, not anyone cared much :P

karmic niche
#

They'd care if they would realize they would have to download 2GB instead of the current 200MB

glossy inlet
#

I always note the with/without delta size when I announce mod updates for my unit.
Even though everyone is currently forced to use the delta option
Noone cares really ๐Ÿ˜ข

karmic niche
#

We were running some semi-public games back in the day and each time RHS (or CUP) was updated there was at least one guy that was joining right on time just to state that downloading the updates would take him 3 hours because he has something like a 5Mbps connection (meaning he won't be able to even download everything before we finish).

I know for sure that people like him would care

glossy inlet
#

since I added delta patching, we pushed maybe about 50GB of updates, which got down to maybe 3GB with delta.
To me it seems like a must now. And I pushed that feature around in the backlog for years.
Now I just need a SSD to fix the HDD bottleneck

karmic niche
#

Hmm... After reading about these compressed PBO I feel like adding support for compression for my library. Does anybody know where I could get some compressed PBO files for testing?

karmic niche
#

Don't worry, Dedmen, I'm strong. They won't manage to take my soul

glossy inlet
#

it was basically only useful for missions, and it was semi-broken for missions even if you tried to use it.
So... finding test pbos is bigoof

karmic niche
#

Well, I could write the code based on the description on the wiki but then I'd never know if I have a bug in my code because using the same algorithm to pack and unpack should recreate the same file

#

Actually, i could create my own PBO with Mikero's tools ยฏ_(ใƒ„)_/ยฏ

glossy inlet
#

I think maybe armake had lz compression too

fiery vector
#

@karmic niche I have tried to write code using the wiki only, but since they use a non standard address and run length encoding (AAAALLLLAAAA) and some other rules when dealing with repetition of segments and filling of empty space when the pointer is past the current decompressed length. However, I can't for the life of me for it to work.

#

What languages do you code in?

karmic niche
#

Python (but since you asked for languageS I have to add: "and C/C++")

fiery vector
#

Ahhh ok, well I'm using C#

#

@glossy inlet question, what is the byte order of a PBO?

#

I'd hazard a guess it should be little endian

karmic niche
#

AFAIR little-endian, judging by my code from 3 years ago ๐Ÿ˜„

fiery vector
#

Yeah, you see, I have got the decoding of the format bytes down, and as far as I can see the repetition and duplication using the pointers follows the wiki, however, when I try to decompress, it isn't correct

#

@glossy inlet I compressed my Altis mission with WinPBO and it actually loaded just fine. No errors finding the script files at... I remember another user saying here that the server cannot read them

#

Do PBOs support different compression types?

#

From what I see, you use modified lz, quite simplistic, still apparently eluding me tho ๐Ÿคช

karmic niche
elfin oxide
#

@fiery vector only LZH is available as compression format

fiery vector
#

@karmic niche I have thanks, and they don't support compression

#

The only ones I have found, only support decompression

#

I even found a c# decompression function using goto statements... Yikes

twin shale
#

Weird TFAR Bug:

So I went to go play vanilla, which I hadn't in a while. Told launcher to unload all mods, launch, hit initialize, and it triggers "Task Force... requires CBA_A3"

So obv. can't play on vanilla servers, with my friends, who were waiting.

So I go and try again. Then go and start stripping all the TFAR files out of the workshop folder, the main folder, the teamspeak folder in Arma 3, etc. There are no TFAR files, in the game directory.

I close out teamspeak having disabled TFAR in there.

I launch.

Task Force Arrowhead Radio requires CBA_Main_A3

At wits end, really annoyed, guess I don't get to play vanilla anymore without a full wipe.

#

Which still probably won't fix it.

#

Thought I'd share.

glossy inlet
#

This is #arma3_tools not "report TFAR bug channel" ๐Ÿค”

#

@twin shale "There are no TFAR files, in the game directory." there are

#

Check your main Addons folder.
Somehow tons of people end up with TFAR files in there, if you can tell me how I'd be happy to know, I always suspected some intelligence inhibited person made a youtube installation guide showing it be done like that.

dawn palm
#

where I could get some compressed PBO files for testing?
pboProject

#

since it's you asking, @karmic niche , i can pass you the code itself.

#

it is lzss compression and only used in pbo and some paa formats

#

bis move to lzo for all file formats, but left pbo compression alone as considered redundant. The code however to decompress still exists in the engine, as do any paa created prior to arrowhead.

fiery vector
#

@dawn palm what language is your code?

karmic niche
#

C++

#

since it's you asking, @karmic niche , i can pass you the code itself.
@dawn palm
I'd be much obliged ๐Ÿ˜Š
However, I'll try writing the decompression routine by myself, first, anyway - for the last 10 years, I wanted to implement a compression routine but never got around to actually do that. Now I have my pretext to actually sit down and do that :D

Thanks for noting that this is lzss. That will make it easier for me to figure out the compression algorithm, more efficiently. However, from what I can see in the Biki, the length parameters is incremented by 3 (because lower values don't make sense) and when I read the algorithm on the Polish wiki (wow, first time a Polish wiki page has more information that its english couterpart, on a computer science related topic) it said the value should be incremented by 2. Either there is a mistake somewhere or the algorithm used by BI is a modified lzss ๐Ÿค”

fallen stone
#

Are you referring to min/max run length? @karmic niche

twin shale
#

@glossy inlet Have to run to work, but when I say "There are no TFAR Files in the game directory" there aren't, because I stripped out all that I could find, including the !Workshop folder, addons, the "teamspeak folder", the .dll sets, etc. Anything labeled TFAR, tec., got pulled out. The core issue I have is that I shouldn't have to have done any of that; when I unloaded it in the launcher, to my mind, Arma 3 should not attempt to load that mod regardless of it being in the folder.

scenic canopy
#

the old TFAR version has "task_force_radio" as filenames

twin shale
#

I'm aware. I'm abbreviating

scenic canopy
#

if you look in your RPT it will say where the pbos are loaded from

karmic niche
#

Yes, I'm talking about:

The run length of the data to be copied, the 'pattern' has 4 bits and therefore, in theory, 0 to 15 bytes can be duplicated. In practice the values are 3..18 bytes because copying 0,1 or 2 bytes makes no sense.
And then the sample code:

rlen = (B2B1 & 0x0F00>>8) + 3

@fallen stone

#

(not sure if the parentheses above are okay, though; I had to add a pair before the binary shift to make rlen return a reasonable value, so maybe this example code should be fixed)

glossy inlet
#

but when I say "There are no TFAR Files in the game directory" there aren't,
Last 5 times someone told me that, there were TFAR files in the game directory, and they were being loaded.. so.. meh not gonna believe that until I see the proof in form of the RPT myself.

karmic niche
#

So according to what the Wikipedia states about the order of operations (I never remember these ๐Ÿคฆโ€โ™‚๏ธ), it really should be:

rlen = ((B2B1 & 0x0F00)>>8) + 3

I really should create a biki account so that I have editing rights there, one day ๐Ÿค”
(the question about the value 3 is still open, though)

glossy inlet
#

i = B1
j = B2
i|=(j&0xf0)<<4; j&=0x0f; j+=2;

int ii = FL-i; //start
int jj = j+ii; //end

karmic niche
#

Ha! So it's a 2 after all! Thanks, @glossy inlet ! ๐Ÿ™‚

dawn palm
#

this code has never failed decompressing in the 20 years i've been using it:
Rpos=*CompressedData++;
Rpos+=((*CompressedData&0xF0)<<4);
rlen=(*CompressedData++&0x0F) +3;
if (!Rpos) return -1; // encoder is bad, the output points to itself, it wanted -0x1000

karmic niche
#

lol... now I'm lost again ๐Ÿ™ˆ
I'll experiment in the evening

glossy inlet
#

ยฏ_(ใƒ„)_/ยฏ

fallen stone
#

The minimum match is 3 @karmic niche

#

In the snippet posted by mikero, his run length is decremented by 3, before being encoded into the 'pointer'

#
*CompressedData++&0x0F

Can be seen as run length, given it starts at 3

#

This is implementation specific, though

dawn palm
#

code that uses +2 says later:
while (rlen>=0)

code that uses +3 says;
while (rlen--)

karmic niche
#

It probably depends on what you make of the length. Someone is probably adding a -1 somewhere, when using the value so in the end, it ends as being the same

#

Yeah, that's what i had in mind

fallen stone
#

Maybe when your fun is over, the BIKI could use some documented code ๐Ÿ˜‰

dawn palm
#

when compressing, the sliding window of the dictionary is between 3 and 18 bytes.
the sliding window itself is the last 16k of previous data.

#

there is a special provision in lzss to fill output with text spaces (0x20) when the address of the sliding window is > than the current position, not behind it.

fallen stone
#

Don't you mean 4k... ? @dawn palm

dawn palm
#

sorry,.my bad

solemn isle
#

Is it possible with pboproject to include missions?

#

Right now I've got the following in CfgMissions

class CfgMissions {
    class MPMissions {
        class arc_sandbox_altis {
            briefingName = "ARC Sandbox: Altis";
            directory = QPATHTOF(arc_sandbox.altis);
        };
    };
};
#

Path to folder is P:\x\arc_misc\addons\sandbox\arc_sandbox_altis.altis

#

actually I might be an idiot

#

Yep, I'm an idiot

young plaza
#

hey my P drive fails to recognize textures and models I think
because Object builder marks paas as non-existent and PboProject fails to find models and textures

scenic canopy
#

Is your P drive correctly setup? Is the P drive assigned as path for textures in Object Builder? Is pboproject configured to use your P drive?

sly skiff
#

has arma tools launcher been used to set up the P drive? @young plaza

young plaza
#

first used mikeros then used arma tools

#

it worked with none of the 2

#

also yeah it worked before and it still works for older things for some oreason

sly skiff
#

The tools one is unreliable. You I would recommend setting it up with Mikeros tools. PMC wiki has tools and P drive setup guides that work

young plaza
#

yeah I originally used the mikeros first but it was still broken

sly skiff
#

you should really debug that error and stick to them

young plaza
#

I'm not sure how to debug an arror that just says a file is missin
especially since the file is there

sudden shard
#

Is there a tutorial on how to use pboProject to pack my map into a PBO? I saw a video on YouTube and when he clicked Source Folder he just chose his map in the P drive but when I do that it makes me choose another folder instead of that im not sure why....

orchid yew
#

set your workspace as the p drive?

sudden shard
#

@orchid yew Thank you, now I get this error. How do I make it so it ignores this error or how do I fix this error? Which file do I edit? https://i.imgur.com/bCc655a.png

orchid yew
#

idk ๐Ÿคทโ€โ™‚๏ธ presumably offices_01_v1_f.p3d. you dont want to ignore the error because if it doesnt work while packing it most likely wont work ingame.

sly skiff
#

@young plaza follow the PMC guides of setting stuff up and dont skip a step, after that if you still have a problem it can be debugged.

#

@sudden shard all youtube tutorials are dangerous misinformation traps, dont rely on that information.

Your setup is weird. why have you se workspace like that?

#

you also may need to follow the PMC guide on how to set up the tools and P drive

sudden shard
#

Also does anyone know if I should have Bin64 ticked on?

sly skiff
#

what version of the tools are you using?

#

the free ones on Bytex site?

sudden shard
#

I didn't download from the bytex site ugh I forgot the name of the website but it wasn't bytex. How do I check version.

#

2.63

#

Version 2.63

sly skiff
#

you should not download tools from random sites

young plaza
#

@sly skiff
to remove the arma tools one should I do anything or just click unmount project drive?

sudden shard
#

Wait that's the website. I'm sorry but I didn't think that was bytex it looks different to the normal one.

sly skiff
#

@young plaza I honestly dont remember anymore.

#

K then @sudden shard then you are all set

sudden shard
#

What does Bin64 do?

sly skiff
#

uses 64bit binarize.exe

sudden shard
#

Does it binarize the wrp so I can load the map faster?

young plaza
#

maybe if I use a different folder it could reset?

sly skiff
#

no dont go solo on that

sudden shard
#

oh ok thats good then thank you Connor and HorribleGoat

sly skiff
#

its not faster if I remember right

#

but you can use it

sudden shard
#

Oh ok

#

I keep getting this error for the vanilla buildings placed down on the map. Does anyone know how I can fix this? https://i.imgur.com/njlKo6j.png I really can't delete this from the map, I had this error with the office building and I deleted the office buildings off of the map now I get this error with the pier...

sly skiff
thorny nimbus
#

Anyone having issues with Obfuscation corrupting or otherwise mangling p3ds with Mikero Tools? Using most up to date versions.

dawn palm
#

it mangles the p3d in the pbo, not, the original

thorny nimbus
#

Been packing with it fine, updated and now it seems every pbo is having p3d fail to load or textures get errors on loading only when enabling the Obfuscation setting

dawn palm
#

once you obfuscate a pbo, all other addons that rely on that pbo, must be re-crunched.

thorny nimbus
#

Current project structure is to have P:\GD_Main which contains subfolders.
Packing P:\GD_Main\ML700_SoB on its own results in the p3d's of only the armor not appearing.

#

But other p3d within the same folders are same, none is calling an external p3d or texture

dawn palm
#

I have no idea then.

#

nor can i possibly know what 'armor' means.

thorny nimbus
#

The armor.p3d doesnt use any external proxies or textures.
Its all self contained within the ML700_SOB folder.

#

When Obduscating the armor.p3d will pop this error...

#

But other p3d such as uniform/SoBHelmet are unaffected

dawn palm
#

as i already said, it's not possible to get at the p3d name,. because it doesn't exist.

#

some other outside element is trying to access it.

thorny nimbus
#

The unit that spawns with the armor is trying to access it.
the problem is that it should exist.

#

So something is messup between MakePbo.1.99.6.81 and MakePbo.2.07.7.59

#

As packing previously with MakePbo.1.99.6.81 resulted in 0 errors.

dawn palm
#

that's good research on your part, to be clear here, it's no makepbo causing your problem, its depbo.dll version 7.59 and better that obfuscates in a different way. If this is sqf doing the spawning, i don't intend fixing it. Try the latest version of the dll, and/or move that specific p3d out of that pbo

thorny nimbus
#

This is a standard unit config. No SQF involved.

dawn palm
#

well what's 'spawning' the p3d please.

thorny nimbus
#

Eden Editor > Place unit

dawn palm
#

i'm not aware of the editor being able to get access to a p3d. it's class, yes, but not the p3d.

#

checking here for the latest dll......

thorny nimbus
#

DePbo64.dll located in C:\Program Files (x86)\Mikero\DePboTools\bin is the one you are referring to?

dawn palm
#

7.68

#

yes

thorny nimbus
#

Uninstalled PBOTools, confimed original DePbo64.dll was removed. Reinstalled and its there again.
Testing the pack now.

#

No luck, same problem.

dawn palm
#

where is the config.cpp that says model= armor.p3d . same pbo?

thorny nimbus
#

Yes

dawn palm
#

as a quick solution, you might have to move that p3d out of there while I hunt down the error. (just the p3d, it doesn't need altering in any way, nor it's data moved either)

thorny nimbus
#

Wouldnt the tools then error out because the p3d it is looking for is now missing.

dawn palm
#

it's not missing it's been renamed so that no thief can extract it or even know what the hell it is.

#

part of that involves altering the model= too, as appropriate. and so far none else has hit this trouble.

thorny nimbus
#

Ill have to consider that. We pushed out a build with alot of broken pieces due to obfuscation.

#

Were considering just seeing if we can downgrade our tools

dawn palm
#

that's the only place they would be (if at all). bytex handle where it goes.

thorny nimbus
#

Yeah just has the most up to date stuff sadly

zealous fox
#

Did I miss something? https://gist.github.com/liKe2k1/c9abcf9ea32aaadeda984199c4442467 - I'll test the Extension via callExtension v2.0 and expect an output. But I always get "Method is not implemented". I test the x86 and x64 build... WIN64 and WIN32 is defined in as properties as well.
My build command looks like
%MSBUILD% src\TestExtension.sln /property:Configuration=Release /property:Platform=x86 /target:Rebuild /verbosity:normal
%MSBUILD% src\TestExtension.sln /property:Configuration=Release /property:Platform=x64 /target:Rebuild /verbosity:normal

opaque pendant
#

Unsure if this is the proper place, but is there a tool out there to calculate out weapon accuracy, range and impact?

sly skiff
#

I would say no

opaque pendant
#

damn

glossy inlet
#

Accuracy you can read from weapons config. Range and Impact are not weapon, they are in the ammo

opaque pendant
#

@glossy inlet, explain please?

dawn palm
#

he means cfgAmmo for the others

opaque pendant
#

im assuming it has to do with the caliber + hit values?

dawn palm
#

the biki config.cpp describes each value= in cfgAmmo

glossy inlet
#

I mean you cannot calculate weapon range and impact from just the weapon, the ammo matters too

torn fulcrum
#

Not sure if this is the right channel, I'm having trouble packing an addon using mikeros tools. If I use addon builder it works fine, when I use mikeros the sounds are not included for vehicles and a missing p3d error happens when I load in the server (it's on the map) here are my settings - https://i.imgur.com/95bMNMz.png any help would be greatly appreciated

#

also, could anyone give clarity if we are allowed to pack our mods as EBO's?

low gyro
#

also, could anyone give clarity if we are allowed to pack our mods as EBO's?
No you're not iirc

karmic niche
#

Yeah, you're not allowed

sly skiff
#

passing build with Addon Builder means nothing as it checks nothing.

#

missing errors with pboPro mean you dont have stuff in right places or your tools are not set up right

torn fulcrum
#

just packed it using pboPro, with no obfuscation and no compression and it works fine

#

what settings would cause that issue?

sly skiff
#

probs something you turned off?

torn fulcrum
#

anything look out of place? I just have the default options