Rytisgit / DCSSReplay

PuTTY based DCSS TTYRec Tiles renderer written in C#
Other
20 stars 4 forks source link
dcss netframework47 netstandard20 putty ttyplay ttyrec uno-platform wasm webassembly

DCSSReplay - A visual TtyRec player for DCSS

Screenshot

FOR DOWNLOADS

Click Here to see the latest Releases

Keyboard Shortcuts

                    CONTROLS
Ctrl+O        Open a ttyrec from filesystem
Ctrl+G        Open ttyrec download window
Ctrl+C        Open Configuration window
Ctrl+F        Open ttyrec event search window
Escape        Close ttyrec and return here
Alt+Enter     Toggle fullscreen
A / S         Switch Tile to console / Full Console Mode

                PLAYBACK CONTROLS
ZXC           Play backwards at x100, x10, or x1 speed
V, SPACE      Play / Pause"
BNM           Play forwards at 1x, x10, or x100 speed
M can stack repeatedly to go forward in time

F / G         Adjust speed by +/- 1
D / H         Adjust speed by +/- 0.2

, (Comma)     Frame Step Back
. (Dot)       Frame Step Back

Left Arrow    Time Step Backward 5 Seconds
Right Arrow   Time Step Forward 5 Seconds

Contact

Development

Building the Source on Windows

I Used VS 2019 Enterprise, should work for older versions as well

Building the Source on Linux

If your distro is Debian-based (Ubuntu, etc.) install dependencies with:

(For non-Debian-based distros, do whatever the equivalent is on your distro.)

Open the DCSSReplay solution in monodevelop. A couple of the projects (SlimPutty and PuttyDLL) will fail to open, but don't worry.

Nuget packages fail to restore for the WASM version of DCSSReplay, so unload it.

You must build the 64-bit version because one of the NuGet dependencies (SkiaSharp native Linux assets) only comes in 64-bit flavour:

Now, you are ready to build:

To run:

Project Layout

PuttyDLL - MaulingMonkey, Rytisgit

PuttyDLL is a native C project which is takes the inner workings of the PUTTY.DSP project from the official PuTTY source code.

Key differences:

PuttySharp - MaulingMonkey

PuttySharp is a C# library which wraps the methods exposed by PuttyDLL for easier consumption in C#

It is currently small enough that it ended up well commented and designed. This probably won't last very long.

TtyRecDecoder - MaulingMonkey, Rytisgit

Parses Ttyrec files, prepares for feeding the data to Putty

TtyRecMonkey - MaulingMonkey, Rytisgit, Aspectus

TtyRecMonkey is the main C# program which is the point of this project. It is not well written.

It currently handles:

InputParser - Rytisgit

Contains a Model that is used for frame Generation.

Parser fills the Model with data before every frame from the terminal Character array that is passed to it.

FrameGenerator - Aspectus, Rytisgit

The Big One - Takes all the custom rules along with the Model for each frame and tries to make an image that resembles what the screen would look like on a real DCSS game in that moment.

Looks similar quite often.

Is just a bit of a mess in general.

Installer - Rytisgit