This is a disassembly of Chip's Challenge for Windows 95.
It builds the following executable:
- CHIPS.EXE
sha256: 8e26acd67cf120bd5b512de4b4e78b80aca1579413cd04f3b2b68909a375866c
All of the code has been disassembled.
The core game logic has been extensively commented; see logic.asm
and movement.asm
.
Almost all of the game's memory has been mapped out; see data.asm
and structs.asm
.
If you are interested in the address of a particular variable, check out variables.asm
.
The rest of the code has been disassembled but may lack useful function/data labels and comments.
Segment | Disassembled | Labels | Comments | Filename / purpose |
---|---|---|---|---|
1 | yes | func | few | crt.asm - C runtime |
2 | yes | some | some | seg2.asm - UI / WinMain |
3 | yes | yes | some | logic.asm - tile logic |
4 | yes | some | no | seg4.asm - levelset I/O |
5 | yes | yes | yes | seg5.asm - tile graphics |
6 | yes | few | no | seg6.asm - dialog boxes |
7 | yes | yes | yes | movement.asm - chip & creature movement |
8 | yes | some | some | sound.asm - sound effects & MIDI |
9 | yes | yes | yes | digits.asm - counter graphics |
10 | yes | yes | some | data.asm |
-
2020-11-21 Every segment has been disassembled! You can now build
chips.exe
from scratch, without a copy of the original game. Thanks to @zrax for supplying the last segment (crt.asm
). -
2020-11-21 Code segments are now completely shiftable, meaning that you can add/remove instructions without worring about changing code offsets.
-
2020-11-14 We have a linker! Building now requires Go (to build the linker).
Join the Bit Busters Discord.
To build, you'll need the following programs installed:
- make
- nasm >= 2.14
- awk
- golang
Go is required for building the linker and (optionally) some other tools.
Some tools require python3, but they aren't used in the build.
-
(optional) Copy the game executable to
base.exe
in this directory -
Run
make
-
(optional) Run
make check
to compare the output with the base image.