Batman: Arkham City

The game uses Autodesk Scaleform to display UI graphics and HUD elements on the screen.

Button prompts are both stored as scalable vector images (SVG) and defined inside Shockwave Movie Files (.SWFMovie) as 'sprites'.
On the other hand, texture images (usual DDS textures) for UI/HUD (think menu icons, controller picture in options menu) are stored outside SWFs but defined inside them as sprites to be displayed on the screen.

As a result, there are dozens of layers of this Scaleform tech which display different collections of elements on the screen.

There's a different layer for button prompts that appear on the bottom right (use gadget's primary fire/secondary fire) and left (gadget selection) than the one that appears in the middle (tutorial prompts like hold SPACE to run, CTRL + SPACE to open a manhole or ground vent, and prompts for predator takedowns and the subsequent tutorial texts that correspond with them).
Likewise, there's entirely different layers for each menu (Riddler trophy menu, WayneTech upgrade menu, maps/objectives screen) and HUD elements (health bar, compass, name that appears at the top when entering a new area, detective mode).

So, UE Viewer is needed to export these SWFs (or GFXs, they're both the same thing) from the game's UPK package files.
After that's done, to decompile those SWFs a Flash decompiler will be needed (JPEXS FFDEC is the best in my opinion), using which you can remove/edit the definition for the sprites (text, button prompts, menu icons, HUD elements like gadget wheel, compass, objective marker, broadcast analyzer, health meter, minimap, radar) that correlate to the elements that you want removed/modified.
Then use UPK Explorer to import the edited SWFs and create a game patch which can be injected into the UPKs using TFC Installer.

For aiding user BatmanArkhamForever with his mod to remove tutorial prompts, the files related are most likely BmGame.upk and Playable_<PlayableCharacterName>_SF.upk. Look for SWFs with names along the lines of HUD, FrontMostLayer, Image. They contain the definitions for the text and button prompts accompanying the tutorials.

The font styles for the Arkham games are stored within SWF files.

Article information

Added on

Edited on

4 comments

  1. BatmanArkhamForever
    BatmanArkhamForever
    • member
    • 2 kudos
    Thank you very much for your detailed response. I hope that you can also help me out for the final step: I have my modified .gfx files but I don't know how to turn them back into SwfMovie to import them with UPK Explorer (if that's the case, as I can't find a way for UPK explorer to recognize the .gfx directly). Thank you again.
    1. NeverAloneInTheAsylum
      NeverAloneInTheAsylum
      • member
      • 11 kudos
      Follow these steps to import an edited SWFMovie into a UPK.

      Let's say you modified the FrontMostLayer.gfx (actually an SWFMovie file, since gfx is just a container/extension whatever, same thing) file after exporting it from BmGame.upk.

      1) Select the package file from which you exported the SWF file (BmGame.upk in the picture)
      2) Select the SWF file that you're going to be replacing with your edited one (FrontMostLayer)
      3) Click on the Import .swf button on the right
      4) Select 'All files (*.*)' in the drop down, then navigate to the folder where your edited SWF file is located (in this example it is, This PC > Desktop > Exports > BAC > BmGame > SwfMovie)
      5) Select your edited file
      6) Click on Open

    2. BatmanArkhamForever
      BatmanArkhamForever
      • member
      • 2 kudos
      Thank you again. If I manage to make the mod as I intended, I'll upload it and give you credit. For the record, I was using an older version of UPK Explorer, which didn't had that "import .swf" button yet.
    3. NeverAloneInTheAsylum
      NeverAloneInTheAsylum
      • member
      • 11 kudos
      Alright. I'm here if you find yourself needing more information.