Skip to content

Repository files navigation

⌨️ MASM-TypeFall

Terminal typing game · MASM · Irvine32 · Windows


MASM-TypeFall is a typing game written in x86 assembly with the Irvine32 library. Two game modes:

Mode What you do
Typing Tutor Type a displayed sentence character-by-character — green for correct, red for mistakes
Word Dropping Random words fall from the top, one row per second. Type each word before it hits the finish line

Difficulty levels: Easy (4-letter words, 10 words) · Medium (8 letters, 8 words) · Hard (12 letters, 6 words)

📽️ Demo: assets/MASM-TypeFall-Demo.MOV — watch gameplay footage


Build from Source

What you need

  • Visual Studio 2022 (Community/Professional/Enterprise)
  • MASM build tools (included via the "Desktop development with C++" workload)

Step 1 — Install Visual Studio 2022 with MASM

  1. Download Visual Studio 2022 (Community is free).
  2. In the Visual Studio Installer, select the Desktop development with C++ workload.
  3. On the right side under Installation details, make sure these individual components are checked:
    • MSVC v143 - VS 2022 C++ x64/x86 build tools
    • Windows 10 SDK
    • C++ MASM (or MASM under "Optional")
  4. Click Modify and wait for installation to finish.

✅ MASM (ML.exe) is included with the C++ workload — no separate install needed.


Step 2 — Irvine32 library

The Irvine32 library files are already included in the irvine/ folder at the project root:

MASM-TypeFall/
└── irvine/
    ├── Irvine32.inc
    ├── Irvine32.lib
    ├── SmallWin.inc
    ├── VirtualKeys.inc
    └── Macros.inc

💡 The project file uses relative paths to irvine/ for both the MASM include path and the linker library directory, so everything works out of the box.


Step 3 — Open and Build in VS 2022

  1. Double-click MASM-TypeFall.sln — it opens in Visual Studio 2022.
  2. If you see a Retarget Projects dialog, just click OK (it will auto-update the toolset).
  3. In the toolbar, set the solution platform to x86 (or Win32) — Irvine32 only works with 32-bit.
  4. Build → Build Solution (F7).
  5. Debug → Start Without Debugging (Ctrl+F5) to run.

🔧 First build may prompt you to retarget the Windows SDK version — accept the suggested version (10.0.19041.0 or newer).


Step 4 — Project Configuration Reference

Key settings used in the project (for reference if adapting to a new MASM project):

Setting Location in Property Pages Value
Include path MASM → Include Paths irvine (relative path)
Library path Linker → General → Additional Library Directories irvine (relative path)
Library input Linker → Input → Additional Dependencies irvine32.lib
Subsystem Linker → System → SubSystem Console
Platform Active solution platform x86 (Win32)

To open the property pages: right-click the project in Solution Explorer → Properties.


Step 5 — Build from Command Line (without VS IDE)

Open the Developer Command Prompt for VS 2022 (find it in the Start Menu), then:

cd C:\path\to\MASM-TypeFall
MSBuild MASM-TypeFall.vcxproj /p:Configuration=Debug /p:Platform=Win32
Debug\MASM-TypeFall.exe

Troubleshooting

Problem Fix
Irvine32.inc not found Verify the irvine\ folder exists at the project root with all .inc files inside, and that MASM → Include Paths is set to irvine
unresolved external symbol Add irvine32.lib to Linker → Input → Additional Dependencies
ML.exe not found Re-run VS installer and add C++ MASM component under "Desktop development with C++"
Build fails with v145 toolset error The project uses v145 (VS 2026). For VS 2022, change <PlatformToolset>v145</PlatformToolset>v143 in the .vcxproj file (4 occurrences), or click Retarget when prompted
Console window closes immediately Run with Ctrl+F5 (Start Without Debugging) instead of F5, or add a call ReadChar / pause before the exit

📁 Project Structure

MASM-TypeFall/
├── Text.asm                        # Main assembly source (918 lines)
├── MASM-TypeFall.sln               # Visual Studio solution
├── MASM-TypeFall.vcxproj           # Visual Studio project (MASM)
├── MASM-TypeFall.vcxproj.filters   # VS filter file
├── irvine/                         # Irvine32 library (self-contained)
│   ├── Irvine32.inc
│   ├── Irvine32.lib
│   ├── SmallWin.inc
│   ├── VirtualKeys.inc
│   └── Macros.inc
├── docs/
│   └── MASM-TypeFall-Report.docx   # Course report
├── assets/
│   └── MASM-TypeFall-Demo.MOV      # Gameplay demo
├── README.md
└── .gitignore

🧰 Tech Stack

Layer Technology
Language MASM (Microsoft Macro Assembler)
Library Irvine32 (Kip Irvine)
Build system MSBuild / Visual Studio
Assembler ML.exe (MASM)
Platform Windows x86 / x64

📚 Course

Computer Organization and Assembly Language — 3rd Semester project.

About

A terminal typing game written in x86 assembly (MASM) using the Irvine32 library. Two modes: Typing Tutor and Word Dropping, with three difficulty levels to play in.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages