How kaaasi/traders-redone works
Traders Redone is a C# port of a DOS trading game, with a host-run game path and a reference PC emulator for running the original executable. The principal workflow starts in the host, enters menus and game phases, updates shared game state, and presents menus, fields, and reports through VGA graphics. The tree also contains resource decoding and an asset viewer. The README mentions networking and dedicated-server extensions, but the supplied tree does not show their implementation. Several subsystem links are omitted or dashed because their caller code was not sampled.
Main entry points: Dgroup.cs Game state · Planting.cs Field planting · PcMachine.cs PC machine · Program.cs Game entry
Components 30
Host runtime
- Game entry
src/Traders.App/Program.cs - Host game
src/Traders.App/HostGame.cs - Core host
src/Traders.App/ProgramHost.cs - Host input
src/Traders.App/Input/HostKeyMap.cs
Game logic
- Main menu
src/Traders.Core/Menus/MainMenu.cs - Game phases
src/Traders.Core/Phases/ProgramMachine.cs - AI planning
src/Traders.Core/Ai/WeekPlanning.cs - Field planting
src/Traders.Core/Field/Planting.cs - Field grid
src/Traders.Core/Field/FieldGrid.cs - Game rules
src/Traders.Core/Rules - Game state
src/Traders.Core/State/Dgroup.cs - Save games
src/Traders.Core/State/SaveGame.cs - Weekly reports
src/Traders.Core/Week/Report.cs
Presentation
- Menu scene
src/Traders.Presentation/Menus/MenuScene.cs - Field scene
src/Traders.Presentation/Field/FieldScene.cs - Report scene
src/Traders.Presentation/Week/ReportScene.cs - Graphics layers
src/Traders.Vga/Layers/GraphicsLayers.cs - Mode X driver
src/Traders.Vga/ModeXDriver.cs - Video memory
src/Traders.Vga/ModeXMemory.cs
Assets
- Asset library
src/Traders.Assets/AssetLibrary.cs - PP20 decoder
src/Traders.Assets/PowerPacker.cs - Resource table
src/Traders.Assets/ResourceTable.cs - Asset viewer
src/Traders.Viewer/ViewerGame.cs
Reference emulator
- Original runner
src/Traders.RefEmu/OriginalProgram.cs - PC machine
src/Traders.RefEmu/Machine/PcMachine.cs - 286 CPU
src/Traders.RefEmu/Cpu/Cpu286.cs - Emulated memory
src/Traders.RefEmu/Cpu/Memory.cs - DOS files
src/Traders.RefEmu/Machine/DosFileSystem.cs - PC devices
src/Traders.RefEmu/Hardware
Other components
- Player
Connections 36
- Player → Game entry: starts
src/Traders.App/Program.cs - Game entry → Host game: runs
src/Traders.App/Program.cs - Game entry → Core host: configures
src/Traders.App/Program.cs - Game entry → Asset library: finds data
src/Traders.App/Program.cs - Host game → Core host: hosts core
- Host input → Host game: supplies input
- Core host → Main menu: enters game
- Main menu → Game state: updates
src/Traders.Core/Menus/MainMenu.cs - Main menu → Save games: uses saves
src/Traders.Core/Menus/MainMenu.cs - Game phases → Game state: advances state
- Game phases → Field planting: runs planting
- Game phases → AI planning: runs planning
- Field planting → Game state: reads and writes
src/Traders.Core/Field/Planting.cs - Field planting → Field grid: uses grid
src/Traders.Core/Field/Planting.cs - Field planting → AI planning: uses AI helpers
src/Traders.Core/Field/Planting.cs - Field planting → Game rules: uses arithmetic
src/Traders.Core/Field/Planting.cs - Weekly reports → Game state: reads state
- Menu scene → Game state: reads state
src/Traders.Presentation/Menus/MenuScene.cs - Menu scene → Graphics layers: draws through
src/Traders.Presentation/Menus/MenuScene.cs - Field scene → Game state: reads state
src/Traders.Presentation/Field/FieldScene.cs - Field scene → Field grid: reads grid
src/Traders.Presentation/Field/FieldScene.cs - Field scene → Graphics layers: draws through
src/Traders.Presentation/Field/FieldScene.cs - Report scene → Menu scene: reuses scene
src/Traders.Presentation/Week/ReportScene.cs - Report scene → Field scene: reuses scene
src/Traders.Presentation/Week/ReportScene.cs - Report scene → Graphics layers: draws through
src/Traders.Presentation/Week/ReportScene.cs - Graphics layers → Mode X driver: uses driver
src/Traders.Vga/Layers/GraphicsLayers.cs - Mode X driver → Video memory: writes pixels
src/Traders.Vga/ModeXDriver.cs - Asset library → Resource table: loads resources
src/Traders.Assets/AssetLibrary.cs - Asset library → PP20 decoder: decodes images
src/Traders.Assets/AssetLibrary.cs - Asset viewer → Asset library: loads assets
src/Traders.Viewer/ViewerGame.cs - Original runner → PC machine: starts machine
src/Traders.RefEmu/OriginalProgram.cs - PC machine → 286 CPU: executes on
src/Traders.RefEmu/Machine/PcMachine.cs - PC machine → Emulated memory: maps memory
src/Traders.RefEmu/Machine/PcMachine.cs - PC machine → DOS files: uses files
src/Traders.RefEmu/Machine/PcMachine.cs - PC machine → PC devices: models devices
src/Traders.RefEmu/Machine/PcMachine.cs - 286 CPU → Emulated memory: reads and writes
src/Traders.RefEmu/Cpu/Cpu286.cs