Jgottula's Convenience Links Etc

From Dead Cells Wiki
Jump to navigation Jump to search

TODO

  • Update/adjust/add quick links for wiki changes since last I was active here (around release 2.2)
  • Update/modify/adapt/rename custom CSS and JS for newer, shittier Fandom (yay)

External

Quick Links







My User Pages


In Progress

  • Talk:Curse: Testing additional possible exceptions to curse OHK mechanic (mostly force field stuff)

Wiki Bugs

TODO: check if these things are at all un-fucked in the latest Fandom/UCP or whatever (highly doubt it... also, hey overlords, when the fuck are you going to release the goddamn source code for UCP, huh? cowards...)

  • Images displayed at original resolution are given width resize URLs and are therefore processed (1:1 rescaled) by the MW backend. (Even for PNGs, there's a noticeable color difference between the original file and the "rescaled" version.)
  • Lossy WebP bullshit in thumbnail generation (see same Discord link, discussion shortly prior to the linked part)

Haxe/HashLink Bytecode Tool

Desired Features

  • Creation of a real, existent bytecode opcode reference document
  • Invention of a relatively-sane "assembly language" format for Haxe/HL bytecode (contrast vs the compiler dump, which is more of a listing / LST file really)
  • Disassembly from bytecode to asm source (with commented annotations for indexed references to things; or, potentially, asm syntax that allows referencing stuff by name, not just by index)
  • Reassembly from asm source back into bytecode (critical for non-trivial mod possibilities)
  • If Possible: Use debug info embedded in the bytecode to emit asm source into effectively the same directory/file structure as they came from (!)
  • Maybe: Binary Ninja plugin adding decompile-to-pseudocode functionality for the Haxe/HL bytecode format

Modding Concepts

  • Basic patch mods: stuff that can be applied to the original bytecode blob with a hex editor, essentially
  • More advanced mods: disassemble, edit asm source, then reassemble (the reassembly step ensures that indexes/references/offsets/etc are fixed up)
  • Exposed modding API
    • Create an "installer" whose job is to:
      • Make a backup of the EXE or bytecode file
      • Patch the bytecode to add new "hooks" in various locations of interest (exposed via new methods/etc that extend the existing mod script system)
      • Apply those patches in-place to the bytecode file or EXE resource blob (as appropriate)
    • Regular old standard Steam Workshop game mods can now include "extended" stuff in script files that take advantage of the novel hooks

Specific Mod Ideas

  • Sound: hack in support for non-braindead OpenAL reacquire-audio-device-after-disconnection capability
  • Input: add just-ignore-the-fucking-mouse-cursor-entirely option
  • Reasonable in-game "cheat codes" (obviously disabling achievements), primarily aimed at making it easier/faster to test game mechanics etc
    • Instantly warp to level exit(s); or spawn an exit door to desired next-level
    • Add/remove: gold / souls
    • Add/remove: scroll stats (B/T/S)
    • Set health level / flask charges
    • Set curse level / malaise level
    • Add/remove speedboost / invisibility / invulnerability
    • Spawn item with particular level, affix, etc
    • Alter existing item: change level, add/remove affix, etc
    • Suspend/resume enemy/boss movement and actions
    • Maybe: text overlay for enemies/bosses showing HP level, damage multiplier, AI state, etc?
    • Maybe: console UI for applying these various modifications and/or showing debug stuff?
  • Some kind of API allowing the creation of arbitrary new items/weapons to work in conjunction with associated additions to the CDB (yikes)

RE Investigations

  • What is the precise algorithm used to determine colors offered by dual scrolls, and when does it run?
  • Why does "all items are colorless" not affect starting items and other specially dropped items (e.g. HOTK Symmetrical Lance)?
  • Why does changing BSC level not re-adjust the level of held starting items (Custom Mode starting loadout / hidden base weapons)?
  • How exactly does the "value equalization" stuff for with dual/triple item altars work? (see patch notes for 1.5.6)
  • Try to figure out what "projectiles" actually means (e.g. the amulet affix)
  • Determine which mutations have internal cooldown periods
  • Investigate item tags; in particular, wtf is UnlockInPublicEvent?!
  • Suggestions from R30hedron:
    • Figure out legendary alter spawning logic
    • Maybe: Make a tool that uses the game's RNG logic to rapidly determine level seeds that satisfy some particular predicate
      • Example: Want seed that satisfies predicate: >=1 Legendary Altar with Lightspeed in first or possibly second biome
    • Verify some of our assumptions about how level seed progression logic works
      • Known: Level seed begins in inclusive range of decimal 000000-999999
      • Asserted: Level seed is incremented by 1 at each level transition
      • Asserted: When level generation fails and must retry, level seed is incremented an additional time (presumably once per retry)
  • TODO: find other shit in one of my various DC bugs lists buried in /mnt/tmp somewhere