When I got the Steam Deck my immediate thoughts were directed at playing my PC games. Carmageddon II was one of those games I discovered as a kid through PC Gamer's demo discs that were bundled with each monthly issue. It sat alongside other greats that month such as Need for Speed III, Speed Busters, RECOIL, and Shogo: Mobile Armor Division. C2 always felt like a game that would be great on-the-go, so I was determined in getting it to run on the Deck.
Getting the game to run is actually fairly simple if you have the game already purchased on Steam. If you run the game and only get a blank screen during the intro cinematics and menu, simply add PROTON_USE_WINED3D11=1 %command%
to the game's launch options. This bypasses DXVK in Proton and uses WINE's Direct3D to OpenGL compatibility layer directly. This does come with a bit of a performance hit with the framerate dropping to 40fps in some areas, although it's certainly a step above the 20 FPS I would get back in the day on our Pentium III rig.
I have gone ahead and made a Steam Deck compatible controller config and shared it as a Steam community layout. You can find it with the title "Carmageddon II: Steam Deck". The layout is based on the default controls for the game and only requires you to swap the "Flap Doors" (Enter) and "Activate Powerup" (ALT) bindings in the game's options. I was able to beat the game fully with these control schemes.
For anyone who hasn't visited this game in a while, I recommend playing it on the easiest difficulty. The classic Carma modes are conquerable in the other difficulties, but the timed missions are practically broken for how little time they give you. I've been playing this game on and off for the better part of 24ish years and I couldn't make it past the third mission.
Here's some other tips I've learned with my playthrough:
I had a great time playing through the game even though it can be extremely frustrating. I don't know that I'll play through the other Carmageddon games, but I was happy to finish a game that was in my backlog for far too long.