Dizzy Walk – A 2D maze adventure simulation in x86 Assembly (MASM32). Features automated/keyboard-controlled pathfinding, obstacle collision, coin collection, and comprehensive file-based audit logging.
- Visual Studio (2019 or later) with MASM build tools
- Irvine32 Library (Assumes default
C:\Irvine\installation)
- Open
Project.slnxin Visual Studio - Ensure the build configuration is set to x86 (32-bit)
- Build the solution (
Ctrl + Shift + B) - Run (
F5orCtrl + F5)
ml /c /coff /Zi /I"C:\Irvine" Project\i242065_i242095_i242102_coal_project_main.asm
link /SUBSYSTEM:WINDOWS /LIBPATH:"C:\Irvine" i242065_i242095_i242102_coal_project_main.obj Irvine32.lib kernel32.lib user32.lib gdi32.lib winmm.libDizzy-Walk/
├── 📄 README.md # This file
├── 📄 Project.slnx # Visual Studio solution file
└── 📁 Project/ # Main game project
├── 📄 Project.vcxproj # VS project configuration
├── 📄 Project.vcxproj.filters # VS project filters
└── 📄 i242065_i242095_i242102_coal_project_main.asm # Main game source code
After each game session, an adventure_log.txt file is automatically generated next to the executable:
=== Dizzy Walk Adventure Log ===
Professor: Zubair
Final Wallet: 3 coins
Key Status: YES
Total Steps: 50
Ending Reason: Fell into a pit! Adventure is over.
Treasures Found: 1
Path Length Recorded: 51 steps
This project showcases a wide range of x86 assembly language concepts:
| Category | Concepts Used |
|---|---|
| Registers | EAX, EBX, ECX, EDX, ESI, EDI — general purpose register manipulation |
| Addressing | Direct, Register Indirect [EDI], Base-Index [EDI + EAX], Displacement |
| Arithmetic | ADD, SUB, INC, DEC, MUL, DIV for game logic calculations |
| Bitwise | AND masking, SHL bit shifting, CMP logic |
| Control Flow | .IF/.ELSEIF/.ELSE, conditional jumps JE/JNE/JL/JG, JMP |
| Stack | PUSH/POP register preservation |
| Structs | Custom structures STRUCT/ENDS, size extraction via SIZEOF operator |
| Macros | Reusable MACRO/ENDM definitions for rendering and audio |
| Procedures | PROC/ENDP, INVOKE, PROTO, STDCALL convention |
| Win32 API | Window creation, message loop handling (WinProc), GDI painting routines, system timer execution |
| Memory | .data and .data? segments, DUP array definitions, OFFSET usage |
- 20x30 Maze Grid — A rich obstacle course with walls, buildings, lakes, pits, coins, treasures, and keys
- Dual Movement Modes — Random AI-driven pathfinding or manual keyboard-controlled movement
- Two Game Scenarios — Step-limited mode (max 500 steps) or endless exploration mode
- Collectibles System — Pick up coins (+1 wallet), treasures (+5 wallet), and spare keys
- Stumble Mechanic — 2% chance per step of dropping the key, adding strategic tension
- Home Door Victory — Navigate to the destination with your key to win
| Key | Action |
|---|---|
↑ ↓ ← → |
Move professor (in Keyboard mode) |
R |
Toggle between RANDOM and KEYBOARD mode |
L |
Toggle between Step-Limit (Scenario 1) and Endless (Scenario 2) mode |