1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
Escape From Pong rev 4
A 1K NES entry into the MiniGame 2003 Compo (http://www.ffd2.com/minigame/)
by Halley's Comet Software
http://here.is/halleyscomet
http://hcs.freeshell.org/efp.html
Assembled with DASM by Matthew Dillon.
Written in edit.com
1,021 bytes of code and data.
Object:
Your goal, as a Ping Pong ball, is to avoid the paddles and other obstacles
to escape from the screen in 13 variously difficult levels.
Gameplay:
Levels consist of one paddle which always tries to stay in front of the ball.
There are also white walls which the ball will bounce off of and red walls
which will restart the level if you contact them. If you get in the way of
a paddle the level will also restart, this is to prevent you from having the
paddle push you through a wall. In order to advance to the next level you
must get the ball to leave the screen.
The early levels do not have gravity, but later levels do.
The difficulty level generally gets higher as the game progesses.
When you have completed all 13 levels the game will restart from level 1,
but the paddles will move faster. There is no way to actually "win" the game,
but then again there is no way to "lose".
I have personally played every level the first time through (with both control
configurations), but I don't know if it is even physically possible to beat it
again.
Controls:
The directional pad controls thrust. Remember that the ball will accelerate
in the opposite direction of the button you press.
Note: The included file efpbw.nes has the controls reversed for those
who think it is easier to play that way. 4 bytes are different.
Recommended Emulators:
loopyNES (runs well on older computers, the best alternative to Nesticle),
FCEU, nnnesterj
NonRecommended Emulators:
Nesticle (scroll issues), Nester (colors are wrong)
Bugs:
In rare situations it is possible for the ball to get stuck inside the
paddle.
Due to an optimization of the controller code the start, select, a, and b
buttons also activate the thrust. This actually makes control quite a bit
easier (you can use both hands), but it is an unintended feature.
The directional buttons correspond to the other buttons as follows:
B = Up
A = Down
Select = Left
Start = Right
I have not tested the program on an actual NES, so it very well may not
work with the real hardware, but it works on every decent emulator I've
tried it with.
History:
first release: er, it was the... first release?
revision 1: Nintendulator helped me find a bug, I had not set the
interrupt flag. Only unusually accurate emulators (and the
NES itself, I suppose) would have a problem with it.
revision 2: Fixed a glitch of the screen when loading a level by not
enabling the screen in the middle of a frame, only required
a slight reordering of commands. (this was the version entered
in the MiniGame Compo)
revision 3: Released under a BSD license, some clarification to source,
included reversed version
revision 4: Fixed bug with speed limitation in reversed version, added support
for reversed gravity, added level 13, optimized palette loading
so that file size did not change from rev 3
Based on concepts from:
* Pong
* Lunar Lander
* Some QBasic game (I remember finding it on AOL, it involved a bouncing ball)
* Several other games I've written (Rise of the Triangle, Cheese Reactor,
Mushrong)
Why the file is so big:
The 1,021 bytes of the game are distributed as follows: 1,017 bytes at the
beginning, which make up the program and header, and 4 bytes at the end (the
reset and NMI vectors). The last two bytes, for the BRK/IRQ vector, are not
used. No iNES format ROM can be less than 16,400 bytes in size, all of the
other bytes are filler.
Level data:
The levels are read from "scripts" as specified by comments in the source.
Level data begins at the label "level". Levels of up to 256 bytes and games of
unlimited size (within the restraints of 16KB of PRGROM) can be created and
should be fully supported by the physics engine.
License:
See the source or the included file LICENSE for details.
|