Asterix Gaming Guild Logo GeneralXXLXXL 2XXL 3XXXLOlympic GamesXXL EditorToolsOff-TopicXXL RomasteredXXL 2 RemasteredOther GamesModsCaesar's ChallengeUnfair XXLPatchesFan ArtPersonal ArtSpeedrunningMediaRandomizerBETA RomeHSKALPresence AdrienPresence SPQRPresence Mr. RubinshteinSupport Bot Helpdesk

#hskal

alatinn
Yeah, at the scale of an entire game, that's a lot of work
hesopesomeso
Better than plain x86 that's for sure
alatinn
I don't understand why you don't use binary code though :TotalKappa:
hesopesomeso
But once you have the engine base figured out (like I do), it's about the individual logic of the k-classes.
hesopesomeso
Should I make the patch with a magic header like Adrien? So one doesn't patch it multiple times? :FrogThinking:
baku69
adrientd
The header once had a very important role
pegperegogaucho
Maybe you could also describe the patches that you do to the lvl file
pegperegogaucho
I will try to look at it later and see if maybe something went wrong, but for that I would need to know what is correct :Obelul:
hesopesomeso
Exactly what the python script did. Take the first x bytes stored in the exe of the level header (which is missing and stored here) and append them to the level file (you can check out the project manager code, I document it well there). Maybe spork try uxxl or cc (those should never get patched)... and should properly register as an adrien patched module
hesopesomeso
I assume it served as an offset when you were patching?
hesopesomeso
I will add tooltips with time...
pegperegogaucho
The reason I suggested the documentation is so other people could adjust their tools so everyone understands the "new" format, but if it's just this simple then maybe it is not necessary
pegperegogaucho
Maybe someone in the future wants to make a tool to work with the KWN files etc.
hesopesomeso
``` Patch LVL files - make them executable independent. LVLxyz/LVLxy.Ktu files are missing a header (except LVL000): 0xEA0 of data, which is located in the executable at `data := 0x00285000+0x600`, for each level i: data[i * 0xEA0]. ``` I think this says it all.
pegperegogaucho
:PogelixClappa:
adrientd
You would also need to patch in missing values in some classes which are protected by DRM: for example the duration of the torch in CKHkTorch, as well as number of enemies in a squad are read from a "DRM file" instead of the actual file.
hesopesomeso
Ah right there's this thing too :FrogThinking: thanks for that!!!
pegperegogaucho
Right, but I believe you have not encountered those classes yet so no issue 👍
pegperegogaucho
I was wondering how you handled those classes in UXXL/CC since they had different serialization, of course they are unimplemented still :Obelul: