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.exefrom 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.exein this directory -
Run
make -
(optional) Run
make checkto compare the output with the base image.