Resource centre for ZX Spectrum games
      using Manic Miner and Jet Set Willy game engines

 

Archive of the

Manic Miner & Jet Set Willy Yahoo! Group

messages

 

 

 

Message: 4553

Author: andrewbroad

Date: 23/10/2004

Subject: Re: Other hopes for JSW64 / Machine-code programming

 

Alexandra wrote:

>
> Just some ideas I had, any feedback + or - would be interesting...
>
> 1 - Soft teleport. Redraws the room but does not interfere with
> the guardians. In other words, it goes to the new room but the old
> guardians continue running. This would be good for making switches
> that manipulate the room terrain in an arbitrary way.

It would be an occasion of infinite death to save the position of
the old guardians, if they were to be restored to these saved
positions instead of their original start-positions upon reentering
the room from a different room (Booty has this flaw), or upon losing
a life (JSW II has this flaw).


> 2 - Walk-on-able guardians. For making horizontal lifts. Also,
> would work well with vertical lifts. You'd have to jump with it
> when it went up (like the cloud lift in screen 2 of Monty on the
> Run), but I still think it would be very cool.

I'm hoping for vertical lifts that take you smoothly up and down as
in JSW II. I intend to have a go at implementing horizontal and
vertical lifts for JSW48 within the next few weeks.


> 3 - A block that you can fall any height onto.

That would be cool to see.

> Or alternatively, giving the Trampoline block this property. This
> would be a good alternative to breaking long falls with a rope
> (or using the fall any height thingy).

Trampolines in Magic Mushrooms (for the BBC Micro) had this
property. The game came with an editor, too! :-)


john_elliott_uk wrote:
>
> Alexandra wrote:
> >
> > 4 - John will probably want to shoot me
>
> EX-TER-MIN-ATE!!!!!
>
> * ZAP **

AVADA KEDAVRA!!!!


Alexandra wrote:
>
> I still haven't got very far learning machine code. I managed to
> get a few of Geoff's most simplest patches to run in my game, but
> I haven't made any breakthroughs. I have a feeling my brain just
> ain't cut out for programming. I may have to hire someone *L*.

Machine-code is best learned gradually, I think - by studying small
code-fragments written by other people and making minor adjustments.
It's important to write a small amount of code at a time and test it
thoroughly, as even tiny mistakes can easily result in overwriting
random chunks of memory, or crashing.


I've been learning 80x86 assembler for work, writing little
machine-code routines that I call from a C program (just as Z80
machine-code routines can be called from a Spectrum BASIC program,
although the practicalities of compiling the C, assembling the x86
and linking them together are very different).

I must say that studying the disassemblies of Manic Miner and Jet
Set Willy and writing small patches has proved to have been an
enormous help to me in this, as it's given me a feel of how things
tend to be done at such a low level - particularly:

* the ubiquitous use of shift-instructions to simulate
multiplication or division by powers of two (put simply,
left-shifting by one bit multiplies by 2, and right-shifting
by one bit divides by 2);

* the use of AND- and OR-masks to extract selected bits from a word
so that they can be manipulated or acted on individually, and to
modify selected bits in existing words without having to recompute
these words from scratch, as is the wont of the BASIC programmer.

Now I'm getting into port-programming (IN and OUT instructions,
which interact directly with hardware), and patching the interrupt-
vector table in order to handle hardware-interrupts in my own way,
which is a different kettle of fish!

--
Dr. Andrew Broad
http://www.geocities.com/andrewbroad/
http://www.geocities.com/andrewbroad/spectrum/
http://www.geocities.com/andrewbroad/spectrum/willy/

 

 

arrowleft
arrowright