READ.ME FILE
FRINDGUS (An incomplete game) (14/11/92)
----------------------------------------
By Jason Nunn (JsNO BAR----NUNN)
nunn@pandanus.cs.ntu.edu.au
A VGA GAME
----------
Hello,
- You may freely use is code. You may use it directly in your
source, even if you make Millions of Dollars on a game you made
using this code. It only took me a night to write the basic code
so it's no skin off my nose (I took me alot longer to design the
graphics though!).
DISTRIBUTION
------------
This distribution comes with:
fringdus.pas <game source>
pic_make.pas <sprite maker source>
map_mak2.pas <map maker source for editing the FRING1.MAP file>
pack.pas <transforms *.PIC (sprite graphics) to
the FRINGPC1.PIC file>
fringdus.exe <the excutables>
pic_make.exe
mak_mak2.exe
pack.exe
pack.ini <the pic list that pack reads to dtermine which
pic files to append to "fringpc1.pic">
flr1.pic thru to-
flr32.pic <the individual sprites>
b_scr.bmp <The base screen file (in windows format)>
bs.bat <Boot scrap compiling sequence, with the relevent
flags etc>
Very Techical Notes & Discussion Notes
--------------------------------------
FRINGDUS.PAS:
-------------
Have you ever heard of Paradroid?. It was a game I used
to play on a friends C-64 a long time ago (1987). I reckon
it was the best game ever written. Fringdus has the same
scrolling effect of the graphics as Paradroid. It looks really
good!, I'm really impressed with what I have done. As you operate
the key-pad keys, it looks like the "ground floor" is moving
under you. It looks very smooth, but still needs some
modifications so that it is faster. The computing solutions are
the first solvable solutions, not the best ones.
Basically, the code that resides in the Pascal source:
"FringDus.pas" is like a Database Manager. It manages a
2 entity 1-N relational database. The ERD (Entity
Relationship Diagram) is below:
^
---------------- / \ ---------------
| | 1 / \ N | |
| FRINGPC1.PIC |------/ HAS \----->| FRING1.MAP |
| | \ / | |
---------------- \ / ---------------
\ /
.
It copies blocks of graphics contained of the "FRINGPC1.PAS"
(FRINGdus PiCture 1) file (which is stored in memory), according
to what the "FRING1.MAP" tells it (also stored in memory). The
"FRING1.MAP" file is really the "map of the floor", which only
contains position references to the blocks of graphics in the
"FRINGPC1.PAS" file.
(Note/ From now on, we'll call the blocks of graphics: "Sprites"-
from my good old C-64 days :) ).
When "Fringdus.exe" is executed, the computer reads a
section of the "FRING1.MAP", It reads the relative locations
of the sprites in the "fringpc1.pic file. It then reads the
sprite and then copies it the video memory located at decimal
address 40960 (A000h). The screen dimensions for Fringdus are:
320*200 pixels (or 64K of memory).
(Note that this for VGA only. You will have to make the relevent
changes to the code to turn it in to a EGA or CGA game.)
Fringdus provides a quick assembly base to copy chucks of data
to the video (invisible) memory. As you will see, many of these
assembly routines are tailor made for certain situtions.
The problem is with graphic libraries is that they are standardised.
The problem with standardised anythings, is that they compensate
for any kind of situation (philosophically speaking). Hence they are
slow. If you want speed, you need to custom make routines for only
certain situtions in assembly. Disassembled 3GL's like Pascal are
very Stack intensive. There is alot of overhead in preparing values
for the registers. Analagously, they "have a few drinks, watch a
few porn's, have a couple of games of pool, then go to sleep" before
they do they they useful. With assembly, you can "contain" the
processing, within the action registers AX, DX, CX, BX, so that
processing is very fast.
These routines are in no way efficient. I don't consider myself an
assembly expert. An assembly expert will look at these routines and
speed them up by 5 times, because they know what intructions are fast
and what instructions are slow. A lot can be said about Assembly
experts, but we won't go in to that now.
NB/ A detailed look at how they work, is in the source documentation.
If your still having problems with how they work, write me. I haven't
documented them properly, but will. Remember!, I might be documenting
for a living, so please remember that cooks don't like cooking when
they get home :).
Enjoy :). Feel free to contact me if you don't understand something,
or can't that something working.
ooo0ooo
-----------------------------------------------------------------------------
JsNO BAR----NUNN
Spelling Disclaimer: "MY SUN keyboard is a chunk of shit"
"Computer Science students learn how to become computing professionals,
Business Information Systems students are users learning about themselves"
NTU, DARWIN, OZ
nunn@pandanus.cs.ntu.edu.au
-----------------------------------------------------------------------------
or
snail:
8 Winton Street,
Jingili, Darwin,
NORTHERN TERRITORY,
0810,
AUSTRALIA.
|