![]() |
![]() |
![]() |
![]() |
[... "Now class, today we will talk about what you want to be
when you
grow up. Isn't that fun?" The teacher looks
around and spots the child,
silent, apart from the others
and deep in thought. "Jonny, why don't you
start?" she
encourages him.
Jonny looks around, confused, his train of
thought
disrupted. He collects himself, and stares at the teacher
with a
steady eye. "I want to code demos," he says,
his words becoming stronger and
more confidant as he
speaks. "I want to write something that will
change
peoples perception of reality. I want them to walk
away from the
computer dazed, unsure of their footing
and eyesight. I want to write
something that will
reach out of the screen and grab them,
making
heartbeats and breathing slow to almost a halt. I want
to write
something that, when it is finished, they
are reluctant to leave, knowing
that nothing they
experience that day will be quite as real,
as
insightful, as good. I want to write demos."
Silence. The class and the
teacher stare at Jonny, stunned. It
is the teachers turn to be confused.
Jonny blushes,
feeling that something more is required. "Either that
or I
want to be a fireman." ]
- Grant Smith 14:32 21/11/93
![]() |
![]() |
![]() |
![]() |
Why did I make this page
Denthor of Asphyxia (also known as Grant Smith) wrote an excellent tutorial for people who want to start learning how to code demos, and Snowman ported it to C But...
The Problem:
1) Denthor's tutorial uses Borland Pascal, Snowman's tutorial uses Borland C
2) both use Real-Mode which limits the amount of memory that your program can use, and forces you to rely heavily on the use of pointers, which might be difficult for beginners.
3) both use 16-bit code which makes your program slow.
The Solution:
1) I wrote a port (="translation") of their tutorials into today's most popular free 32-bit compilers: Free Pascal, Virtual Pascal, Watcom C, Djgpp C
2) they all use Protected-Mode which doesn't limit the amount of memory that your program can use, and doesn't force you to understand pointers - you can just use big arrays and the compiler won't mind.
3) they all use 32-bit code which makes your program fast!
| # | is about | snapshot | Text Book | Borland Pascal | Borland C | Virtual Pascal | Free Pascal | Watcom C | GNU C | necessary files: |
| 1 | drawing a point |
![]() |
TUT1 | TUT1 | TUT1 | TUT1 | TUT1 | TUT1 | TUT1 | |
| 2 | palette colors |
![]() |
TUT2 | TUT2 | TUT2 | TUT2 | TUT2 | TUT2 | TUT2 | |
| 3 |
circles & lines |
![]() |
TUT3 | TUT3 | TUT3 | TUT3 | TUT3 | TUT3 | TUT3 | |
| 4 |
virtual screen |
![]() |
TUT4 | TUT4 | TUT4 | TUT4 | TUT4 | TUT4 | TUT4 | |
| 5 |
scrolling |
![]() |
TUT5 | TUT5 | TUT5 | TUT5 | TUT5 | TUT5 | TUT5 | Texter5 includes SOFTROCK.FNT PALLETTE.COL |
| 6 | pre-generated tables |
![]() |
TUT6 | TUT6 | TUT6 | TUT6 | TUT6 | TUT6 | TUT6 | |
| 7 | animation |
![]() |
TUT7 | TUT7 | TUT7 | TUT7 | TUT7 | TUT7 | TUT7 | |
| 8 | 3d vectors |
![]() |
TUT8 | TUT8 | TUT8 | TUT8 | TUT8 | TUT8 | TUT8 | |
| 9 | 3d polygons |
![]() |
TUT9 | TUT9 | TUT9 | TUT9 | TUT9 | TUT9 | TUT9 | |
| 10 | mode X |
![]() |
TUT10 | TUT10 | TUT10 | |||||
| 11 | crossfade |
![]() |
TUT11 | TUT11 | ||||||
| 12 | full screen scrolling |
![]() |
TUT12 | TUT12 | ||||||
| 13 | 3d starfield |
![]() |
TUT13 | TUT13 | ||||||
| 14 | glenzing 3d polys |
![]() |
TUT14 | TUT14 | ||||||
| 15 | plasma |
![]() |
TUT15 | TUT15 | ||||||
| 16 | bitmap scaling |
![]() |
TUT16 | TUT16 | ||||||
| 17 | pixel morphs |
![]() |
TUT17 | TUT17 | ||||||
| 18 | file packing |
![]() |
TUT18 | |||||||
| 19 | assembler |
![]() |
TUT19 | |||||||
| 20 | hidden face removal |
![]() |
TUT20 | TUT20 | ||||||
| 21 | texture mapping |
![]() |
TUT21 | TUT21 |
Money for nothing and Compilers for free
We are currently living in something like a golden era of free 32-bit protected-mode compilers these are a few of the best compilers around (click on the picture for a free download), the recommended dos-extender for each one, and the batch "make-file" I use to compile and link my programs with the dos-extender:
| Pascal compilers | C compilers | ||
| Borland Pascal (16 bit, real-mode) the grand-daddy of Pascal compilers. Denthor used this one to write his tutorial | Borland C (16 bit, real mode) the grand-daddy of C compilers. Snowman used it to write his tutorial. | ||
| Virtual Pascal (32 bit, protected mode) can run programs written for BP almost without changes | Watcom C (32 bit, protected mode) programs written for BC need some re-write. | ||
| Free Pascal (32 bit, protected mode) can run programs written for BP with some changes. | GNU C (32 bit, protected mode) programs written for BC often need a lot of re-write | ||
Q: How did you learn to code as you do
now?
A: Learning to code demos is a long and very very difficult process. It
takes
years to learn to code demos very well. A good way to start is some
high
level language like Pascal or C and then started to experiment with
assembler. It takes a lot of time and experimenting to get better,
and
there are no shortcuts (for book recommendations, see a question
before
this). The main thing is trying to understand what you do, then
trying
to change the program to see what you get, and gain wisdom in
what's
the best way of doing things. Learning to code well requires a lot
of
patience, a lot of enthusiasm and a lot of time. It is not easy.
from the Future Crew information package (Frequently Asked Questions part)
version 1.30
06-FEB-1994 Gore, Henchman & Abyss / FC
![]() |
![]() |
![]() |
![]() |
Cool Links:
or
where the original
tutorials can be found
fixes for the runtime
error 200 of Turbo Pascal on fast PCs
under
construction...