|
Post by zaimoni on Apr 17, 2016 21:55:31 GMT
Both RS alpha 9 fork and the config utility have been decompiled and recompiled, yes. SFML has been disconnected from both programs.
The code is mostly properly labeled, as expected from the Cheat Engine seeing all of the class, method, and field names. The compiler generated names for presumed lambda functions are, of course, improperly named. CodeReflect reported that the member function that implements zombification looked obfuscated, so I expect that to be particularly illegible.
As of time of posting: The config utility does not crash on open. I suspect it will work as-is, but have not tested yet. The authentic RS alpha 9 config utility will interoperate with RS alpha 9 fork for now. (I was careful not to change any enumeration values when disabling SFML.)
RS alpha 9 fork still crashes on open. (It's no longer Windows stomping it, it's a plain old runtime error that would be compile time in C++.).
|
|
|
Post by zaimoni on Apr 17, 2016 9:13:44 GMT
Tools: JetBrains dotPeek C# decompiler - note that everything else .NET-related by JetBrains has a monetary price. This doesn't.
Visual Studio 2015 Community Edition- You will have to log in, using your Microsoft network login (e.g., what Win10 nags you for when setting up) to render the duration indefinite, rather than a 30-day demo.
- This login also enables dotPeek to see it can export the source code for RogueSurvivor into a Visual Studio project.
- The sole free target format (MSIL) is incompatible with the SFML dlls (x86). The other four formats cost $$$.
Install Visual Studio first, then dotPeek. This allows dotPeek to integrate with Visual Studio. Then: ask dotPeek to construct an entire Visual Studio C# project for RogueSurvivor.exe . (I plausibly also have to do the configuration utility, but that can wait.) Opening the project will trigger a one-way upgrade in Visual Studio 2015. The first commits after baseline were squelching errors and warnings.
|
|
|
Post by zaimoni on Apr 17, 2016 9:07:06 GMT
Repository: github.com/zaimoni/RSRevived/ . Downloads are at github.com/zaimoni/RSRevived/releases . StatusUndead. Revived 0.9.9.5 has risen. The latest unstable release is November 9, 2022. Using the private messaging feature to copy-paste full bug reports to me is preferred. There is precedent for copy-pasting full bug reports in this thread.
|
|
|
Post by zaimoni on Apr 15, 2016 5:22:27 GMT
For those who have given up on becoming good at Rogue Survivor: a scanner that displays every single map in the game with at least one living or undead, with vital statistics. The final break was the CodeReflect recommendation; seeing the actual class definition told me where the pointer to the map was in the unit records, in relation to the x,y coordinates which were already known. I will have to write proper documentation for this. Example screenshots: This lady woke up to . She is flagged as the player with a light green background: . Chrome says the scan is 93 pages when printed to PDF.
|
|
|
Post by zaimoni on Apr 14, 2016 20:37:51 GMT
Cheat Engine 5.5 (released Dec 2015). As implied, I used the ZIP because the EXE bundles OpenCandy adware. It includes an integrated assembler/disassembler for Intel binary executables, but that won't handle bytecode languages cleanly, only their interpreters.
|
|
|
Post by zaimoni on Apr 14, 2016 2:02:52 GMT
I went ahead and tracked down a way to analyze RS alpha 9 that wasn't demoware and didn't cost $$$ to get started. (I did have to use a ZIP archive to avoid installing the malware that is so common in open-source EXE installers these days.) Turns out that there's only 17 binary functions in RS alpha 9, and everything you would expect functions to be named for is present in the executable -- as C strings, rather than the C# strings the hard-coded text and help file text are formatted as.
That is, RS alpha 9 appears to be a C# interpreter bundled with bytecode. It's not completely compressed (e.g., the first/last name lists are in plain sight in the *.EXE as well). So I have the names of every single constant and function in RS 9 alpha, but no real way to proceed as what's needed is a C# decompiler/patcher (not installed), not a disassembler/assembler (installed).
|
|
|
Post by zaimoni on Mar 29, 2016 20:01:57 GMT
Its been a few years since Roguedjack has wandered into the hospital basement and was axed by Jason Meyers disappeared. Would hacking or decompiling the game allow a modder to finish the game for Roguedjack? Unfortunately, re-implementation is predicted to be faster. Decompiling might help with reverse-engineering level generation, but there are several fundamental limitations with the current game engine that make binary-modding it less than useful for my wishful thinking. While the save file is excessively informative (and bloated), I'm pretty close to what I can write as a savefile scanner; there isn't much of a handle for tracking inventory contents or skills. (This is a very awesome cheat, as what is there operates as an all-level detector of *every actor*. The current readout also gives enough information to allow multiple PCs in a single district via hex editor...both level transitions and district transitions go south fast if any PCs are left behind. Split level transitions would work if the game had a "display map" for every map in the game, rather than just one that tracked the latest destination. District transitions just get everyone left behind, deleted from the save file.)
|
|
|
Post by zaimoni on Jan 15, 2013 11:31:31 GMT
The to-hit calculation is in a very early post in the forums, and is hard-coded. My impression is that there was a rescaling somewhen between RS4 and RS6 so I'll just review the current situation:
ATK and DEF are actually maximum values. Using dN notation, the to-hit calculation is 2d(ATK/2)>2d(DEF/2). I have not checked whether ties hit or miss (that is, I have not confirmed whether the > is actually >= ).
Also, the critical failure rate does affect crossbows (they automatically miss rather than jam like firearms, or break like non-artifact melee weapons). Critical failure dominates the ATK vs. DEF check, although this may not be obvious because saving the game alters the RNG state.
|
|
|
Post by zaimoni on Dec 13, 2012 8:17:31 GMT
More importantly: there is no "manufacturing district". The ammunition situation is already pretty bad (I find it next to impossible to keep shotgun shells or either of the army ammunition types in stock), a realistic defense turret would only make that harder to balance. At least late-game, crossbows are the third-best weapon in the game in absolute damage rate.
There is also a substantial amount of work needed on the AI before this would make sense, even if the backstory could be made to fit. The current living AIs don't have much state (otherwise civilians wouldn't starve to death in the subway when all they would have to do to find food is go to your stash right next to the up staircase).
If I had a proper C# development environment and the source code, the biggest AI change of use is a proper Stone Soup Dungeon Crawl-ish stash memory. (Pre-requisite: de-bloat the save file format. It should not be telling me the general layout of the agent records, and most definitely should not have fields that are obviously calculated on the fly.)
Eidetic recall of everything you've seen with when you last saw it may not be realistic, but it gets rid of the temptation to screenshot all over the place to simulate it. If you follow that up with the ability to drop items to free up space, the game would get interesting fast because the civilians actually could build safehouses like you do. (e.g., my shotgun's empty with no ammo but there's this cool military pistol with a spare clip...that basic calculation is beyond the current AI).
Combine that with making the active sector not dominate the save file layout (so everyone can change districts, enabling the revised orders menu ), and teaching the civilian AI that generators can be used to recharge flashlights and detectors. The result might be a reasonable beta if the plot is extended. ==== C.H.A.R. seems to have generally been researching various kinds of infinite-battery/magnetosphere tap power technology (there are no gas or diesel stations, so the cars must not need either gasoline or diesel). A backstory I'm comfortable with is that the cars are all wrecked because they got "shorted out" when the apocalypse started. That's also why all of the backup power generators both don't require fuel (they're infinite-battery/magnetosphere tap technology), and need starting up (they're functional only because they were off when the feedback short-out that took out the cars happened).
|
|
|
Post by zaimoni on Dec 7, 2012 5:08:16 GMT
The other option is a First Aid Kit.
|
|
|
Post by zaimoni on Sept 12, 2012 23:28:42 GMT
And ain't what you just said already in the game? Micromanaging followers using the avatar command interface is not in RS9. I would love this feature in RS10. The avatar command interface capability should be stored somewhere closely related to the unit record, but I wasn't able to identify the representation quickly. (An earlier version reportedly had a bug in infection/vintage modes: if your next avatar had Medic skill and revived your previous avatar's corpse, you got command-by-command control of your prior avatar as well.)
|
|
|
Post by zaimoni on Aug 24, 2012 23:13:50 GMT
... It would allow us to trade the ammo for weapons we don't use for stuff we need. My strategy requires using all six ammo classes of ranged weapons.
|
|
|
Post by zaimoni on Aug 14, 2012 23:25:46 GMT
The Leadership-specific cause of death is starvation; that just doesn't happen to lone wolves (unlike, say Bikers/Gangsters/Those Guys, or actually having to sleep at midnight.)
|
|
|
Post by zaimoni on Aug 13, 2012 7:24:29 GMT
Zones...while I like the idea, the internal representation of the map would have to be more robust.
The current (RS9) "lose any followers not with you on a district change" behavior isn't just a game rules decision. The savefile format *always* puts your avatar's map section as the very first map section saved, and furthermore guarantees that the avatar's district is the first district saved.
So...save game at turn 0 (in district C2). The save order is: C2, A0, B0, C0, D0, E0, A1, B1, C1, D1, E1, A2, B2, D2, E2, .... That is, your district C2 is plucked out of order and saved first.
|
|
|
Post by zaimoni on Aug 12, 2012 18:01:19 GMT
So in my current game #3 for the six-hour survivor checkpoint, the most worthwhile skill I was given was...Leadership.
Getting leadership too early has killed at least two of my characters in the early game. This time, it only almost has (by starvation; I am not used to getting down to ~300 food). Knowing what to do with the guard command has improved things (by keeping the the follower in a "safer place", and allowing directing the follower somewhere else on the main path while I run about.)
Also: a sleeping follower will not leave you just because you leave the level. But reports are (weblog comments) that there's a horrible unit cloning bug if the follower wakes up while you're not on the level. So calculating when he'll wake up naturally is critical.
|
|