Mischa Poslawsky [Tue, 3 Mar 2009 16:35:16 +0000 (17:35 +0100)]
parse-wormedit: peaworm level variant for v90 strings
The earliest level strings have peaworm levels distinct from multiplayer
levels (i.e. declares 1 worm position instead of 4).
Leave out unsupported level variants in normal output, because having
a 'Peaworm (invalid)' for modern versions would be confusing (and it's
only obvious to leave out undefined data).
Mischa Poslawsky [Wed, 4 Mar 2009 13:53:20 +0000 (14:53 +0100)]
Parse::Binary::Nested: byte-terminated groups
Feature ?$NUM count value to read until the specified byte is encountered.
Very good to cleanly declare nul-terminated objects.
Mischa Poslawsky [Tue, 3 Mar 2009 22:15:53 +0000 (23:15 +0100)]
Parse::Binary::Nested: simple non-OO unpackf
Make the unpackf method callable without an object, taking a template
array instead. This turns it into a simple superset of CORE::unpack()
for most usage. The object-oriented syntax is still supported for
reusable parsing (saves reparsing the template on each call, so should
also be slightly faster).
Mischa Poslawsky [Tue, 3 Mar 2009 17:59:16 +0000 (18:59 +0100)]
Parse::Binary::Nested: track parsed bytes
Reparse template values ourself, in order to:
- Put multiple data in a single value (for example 'CC' will return
an array with the two bytes, instead of screwing up all following
elements);
- Know the amount of bytes read, allowing the current position to be
returned by the special '=.' declaration.
Also, the special case 'Ca$NUM' is now to be given as 'C/a$NUM'.
This solution should be much better (logically combines C/a and a$NUM)
and unambiguous (this syntax is invalid with CORE::unpack, so no
unexpected results).
Mischa Poslawsky [Tue, 3 Mar 2009 14:00:08 +0000 (15:00 +0100)]
parse-wormedit: declare hardcoded bytes in unpackf template
Recognise a new template value '=$N' (where $N is any number) in
Parse::Binary::Nested to insert a hardcoded value instead of reading it.
This allows object structures of v90 files without type declarations to
be returned in the same format as newer versions. Still requires some
custom merging of the multiple arrays afterwards, but this may be solved
later on.
Mischa Poslawsky [Tue, 3 Mar 2009 14:00:55 +0000 (15:00 +0100)]
document Parse::Binary::Nested features
Describe the differences with CORE::unpack(), since it's growing into
a superset basically.
Eric Samuel [Mon, 4 Mar 2002 21:35:40 +0000 (13:35 -0800)]
completed first 2 'worms for dinner' levelsets
Originally the "Salad" levelset, finished and split up into "Appetizer"
and "Soup".
Aaron Curtis [Tue, 22 Jan 2002 07:54:57 +0000 (02:54 -0500)]
improve starting positions in wormage2 levelset
Aaron Curtis [Sun, 20 Jan 2002 22:29:06 +0000 (17:29 -0500)]
wormage updates and second episode
Subject: wormy stuff
> I've got 20 levels for you. The original wormage, remastered, plus
> wormage ][. [wormage.zip]
Aaron Curtis [Mon, 10 Dec 2001 23:17:26 +0000 (18:17 -0500)]
initial 'wormage' levelset
Subject: my very poor wormy levels
> Here they are... [Wormage.zip]
Eric Samuel [Sun, 20 Jan 2002 01:18:30 +0000 (20:18 -0500)]
initial 15 levels for 'worms for dinner' series
> I created a set of levels there are 15 although the last one seems to
> not be working. So i attached the .lvl file as well so you can figure
> out what is wrong. [...] [Yumworms.lvl]
Mischa Poslawsky [Mon, 2 Mar 2009 19:20:56 +0000 (20:20 +0100)]
parse-wormedit: bytes declarable as non-capturing
Parse::Binary::Nested format values containing only x/X (ie ignored)
are detected and skipped during conversion. This allows for exact
specifications instead of having to append to previous (defined)
elements.
Mischa Poslawsky [Mon, 2 Mar 2009 16:25:12 +0000 (17:25 +0100)]
parse-wormedit: seperate parsing module Parse::Binary::Nested
Make the package a (mostly) stand-alone include, potientially reusable by
other projects, but primarily keeping it more maintainable (uncluttered
code, testable, and allowing futher modularisation of file parsers).
Mischa Poslawsky [Mon, 2 Mar 2009 15:48:01 +0000 (16:48 +0100)]
parse-wormedit: distinguish newer v95 level strings
Some 86s files exist with version identifier 95, which already contain
newer v97 features.
This is logically --version=96, but needs to be specified manually.
Mischa Poslawsky [Mon, 2 Mar 2009 03:49:19 +0000 (04:49 +0100)]
parse-wormedit: support older 86s formats
Mischa Poslawsky [Sun, 1 Mar 2009 16:18:24 +0000 (17:18 +0100)]
parse-wormedit: detect common finish code in 86s data
Mischa Poslawsky [Sun, 1 Mar 2009 15:37:08 +0000 (16:37 +0100)]
parse-wormedit: better support for missing multiplayer levels
- Do not try to read levels if none are declared (common for
singleplayer-only episodes).
- Read episode finish code after parsing singleplayer levels,
so that the starting offset is correct.
Mischa Poslawsky [Sun, 1 Mar 2009 15:25:15 +0000 (16:25 +0100)]
parse-wormedit: containing row for finish data
Put various data related to episode completion in a single hash
container.
Mischa Poslawsky [Sun, 1 Mar 2009 15:11:09 +0000 (16:11 +0100)]
parse-wormedit: raw output in yaml
Format --raw data using YAML, which should be even more human-readable
than JSON, especially using inline hashes (requires some custom
replacements because no formatting module seems to support this yet).
Mischa Poslawsky [Thu, 26 Feb 2009 23:38:20 +0000 (00:38 +0100)]
parse-wormedit: guess specific variant of v95 levels
There were 3 different level formats all with the same version 95.
Try to autodetect which by looking at some conflicting byte offsets;
the only other way is manual specification, which hopefully isn't
needed in any practical cases.
Mischa Poslawsky [Wed, 25 Feb 2009 23:58:58 +0000 (00:58 +0100)]
parse-wormedit: parse multiplayer levels in 86s files
Mischa Poslawsky [Wed, 25 Feb 2009 18:05:49 +0000 (19:05 +0100)]
parse-wormedit: show amount of bouncing balls
Mischa Poslawsky [Wed, 25 Feb 2009 17:26:40 +0000 (18:26 +0100)]
parse-wormedit: preliminary 86s parsing
Read (current) compiled level strings. Restructure code a bit to keep
different file formats modularised.
Mischa Poslawsky [Wed, 25 Feb 2009 12:38:55 +0000 (13:38 +0100)]
git: recognise level files
Set filetype for all (likely to be) levels to "wormylevel", so it is
possible to use custom handling for them. Notably, for more detailed
diffs than 'binary files differ', users can use parse-wormedit output
for example:
git config --global diff.wormylevel.textconv parse-wormedit
Mischa Poslawsky [Wed, 25 Feb 2009 10:35:02 +0000 (11:35 +0100)]
parse-wormedit: support older wormedit versions
Detect earlier version 95, 94, and 93 headers (or by --version
override), and parse data accordingly (each former format is mostly
a subset; hide output if it's not present yet).
For version 95 there was also an intermediate file in history, which
has been rewritten to specify (sub)version 94 in order to be able to
detect it automatically.
Uses Perl v5.10 features for slightly nicer code (wasn't necessary,
but compatibility is unlikely to be an issue (who else is gonna run
this code anyway?)).
Mischa Poslawsky [Wed, 25 Feb 2009 08:45:54 +0000 (09:45 +0100)]
parse-wormedit: more details in summarised mode
Display various episode and level properties, giving a more complete
overview (without actually drawing anything that is).
Mischa Poslawsky [Tue, 24 Feb 2009 12:54:04 +0000 (13:54 +0100)]
parse-wormedit: perl script to parse wormedit level data
Quickish script to summarise level contents, without requiring to
execute the editor (which involves an DOS environment and unparseable
output).
Code should also be much more readable than my horrible Pascal blob, so
simultaneously serves as a format description (and can return all data
in JSON structure, in case anyone has the desire to read it).
Mischa Poslawsky [Wed, 25 Feb 2009 07:12:59 +0000 (08:12 +0100)]
makefile to build wormy.86p
Automated make rules to ease Wormy compilation, at least on Unix
systems. Assume non-Windows, but default to use DOS tasm.exe and
prgm86.exe programs, since they are the most common and seem to work
decently in Wine. Alternative (native) tools can be specified in a
custom local.mk.
Mischa Poslawsky [Wed, 25 Feb 2009 05:11:30 +0000 (06:11 +0100)]
git: ignore expected compiler programs and results
Mischa Poslawsky [Tue, 24 Feb 2009 02:20:01 +0000 (03:20 +0100)]
convert source text files to unicode
Convert CP-437 characters to proper UTF-8 (except for output naturally).
Also use line terminators instead of seperators (i.e. whitespace at EOF).
Mischa Poslawsky [Tue, 24 Feb 2009 01:47:02 +0000 (02:47 +0100)]
case-insensitive z80 label usage
Rename labels conflicting with other capitalisation (eg Start vs start)
because some compilers (at least spasm) do not support case-sensitive
labeling.
Mischa Poslawsky [Sun, 31 Mar 2002 19:10:20 +0000 (21:10 +0200)]
todo update
Mischa Poslawsky [Wed, 6 Mar 2002 19:52:54 +0000 (20:52 +0100)]
wormy 1.00 stable!
Mischa Poslawsky [Wed, 6 Mar 2002 19:12:04 +0000 (20:12 +0100)]
wormedit: minor reinitialisation fixes
Mischa Poslawsky [Wed, 6 Mar 2002 18:52:28 +0000 (19:52 +0100)]
finalise readme for release
Mischa Poslawsky [Sat, 8 Sep 2001 11:57:58 +0000 (13:57 +0200)]
personal pascal include
Mischa Poslawsky [Wed, 6 Mar 2002 18:50:18 +0000 (19:50 +0100)]
wormy episodes
Mischa Poslawsky [Tue, 5 Mar 2002 23:34:34 +0000 (00:34 +0100)]
wormy 0.99.305
Mischa Poslawsky [Mon, 4 Mar 2002 14:20:42 +0000 (15:20 +0100)]
wormy 0.99.304B
Mischa Poslawsky [Mon, 4 Mar 2002 12:51:10 +0000 (13:51 +0100)]
wormy 0.99.304
Mischa Poslawsky [Wed, 27 Feb 2002 20:49:50 +0000 (21:49 +0100)]
wormy 0.98.227
Mischa Poslawsky [Mon, 25 Feb 2002 10:11:44 +0000 (11:11 +0100)]
wormedit: fix ctf level count
Mischa Poslawsky [Mon, 25 Feb 2002 22:29:12 +0000 (23:29 +0100)]
wormy 0.98.225
Mischa Poslawsky [Mon, 25 Feb 2002 10:45:20 +0000 (11:45 +0100)]
wormy episode #1
Mischa Poslawsky [Sat, 19 Jan 2002 23:49:32 +0000 (00:49 +0100)]
wormy 0.98.118
Mischa Poslawsky [Sat, 19 Jan 2002 23:27:26 +0000 (00:27 +0100)]
fourth wormy episode: All your Wormy
Mischa Poslawsky [Sat, 19 Jan 2002 18:53:46 +0000 (19:53 +0100)]
wormedit 0.53
Add public worm5253 script to convert levels in the old v0.95 format,
because such files are already circulating.
Mischa Poslawsky [Wed, 16 Jan 2002 22:02:34 +0000 (23:02 +0100)]
wormy 0.97.116
Mischa Poslawsky [Mon, 14 Jan 2002 14:36:56 +0000 (15:36 +0100)]
wormedit 0.51
Mischa Poslawsky [Tue, 15 Jan 2002 22:47:02 +0000 (23:47 +0100)]
wormy 0.97.115
Mischa Poslawsky [Tue, 8 Jan 2002 23:33:12 +0000 (00:33 +0100)]
wormy 0.97.109
Mischa Poslawsky [Sat, 5 Jan 2002 20:14:46 +0000 (21:14 +0100)]
wormy 0.97.105
Mischa Poslawsky [Wed, 2 Jan 2002 20:03:52 +0000 (21:03 +0100)]
wormedit 0.5.2103
Mischa Poslawsky [Thu, 3 Jan 2002 21:30:14 +0000 (22:30 +0100)]
wormy 0.97.103
Mischa Poslawsky [Mon, 24 Dec 2001 11:02:06 +0000 (12:02 +0100)]
wormy 0.96.C24
Mischa Poslawsky [Sun, 23 Dec 2001 13:27:44 +0000 (14:27 +0100)]
wormy episode #1 C23
Mischa Poslawsky [Sun, 23 Dec 2001 10:00:34 +0000 (11:00 +0100)]
third wormy episode: Wormy and his Friends =)
Official multiplayer levels.
Mischa Poslawsky [Sat, 22 Dec 2001 00:34:36 +0000 (01:34 +0100)]
second wormy episode: Pj34r d4 W0RM!
Mischa Poslawsky [Fri, 21 Dec 2001 14:37:00 +0000 (15:37 +0100)]
wormy 0.95.1C21
Mischa Poslawsky [Thu, 20 Dec 2001 20:38:28 +0000 (21:38 +0100)]
wormedit 0.5.1C20
Mischa Poslawsky [Fri, 14 Dec 2001 15:45:58 +0000 (16:45 +0100)]
wormy 0.96.1C14
Mischa Poslawsky [Wed, 12 Dec 2001 20:20:06 +0000 (21:20 +0100)]
wormy 0.95.1B09
Mischa Poslawsky [Fri, 14 Sep 2001 18:26:08 +0000 (20:26 +0200)]
wormy 0.95.1914
Mischa Poslawsky [Fri, 14 Sep 2001 19:57:08 +0000 (21:57 +0200)]
wormedit 0.95.1914
Mischa Poslawsky [Sun, 9 Sep 2001 10:25:14 +0000 (12:25 +0200)]
wormy 0.95.1909
Mischa Poslawsky [Sat, 8 Sep 2001 21:03:26 +0000 (23:03 +0200)]
wormedit 0.95.1908
Mischa Poslawsky [Tue, 4 Sep 2001 23:10:00 +0000 (01:10 +0200)]
wormy 0.95.1907: spiffy readme formatting
Mischa Poslawsky [Fri, 7 Sep 2001 13:01:52 +0000 (15:01 +0200)]
wormy 0.95.1907
Mischa Poslawsky [Sun, 26 Aug 2001 13:56:20 +0000 (15:56 +0200)]
game over screen mockup
Mischa Poslawsky [Wed, 29 Aug 2001 15:30:44 +0000 (17:30 +0200)]
wormy level at 0.95.1907
Mischa Poslawsky [Thu, 6 Sep 2001 21:24:58 +0000 (23:24 +0200)]
wormedit 0.95.1907
Mischa Poslawsky [Mon, 30 Apr 2001 20:44:04 +0000 (22:44 +0200)]
wormy 0.94.1430
Mischa Poslawsky [Sun, 22 Apr 2001 12:46:06 +0000 (14:46 +0200)]
wormy/wormedit 0.94.1422
Mischa Poslawsky [Sun, 15 Apr 2001 11:59:36 +0000 (13:59 +0200)]
wormy 0.93.1415
Mischa Poslawsky [Fri, 13 Apr 2001 00:51:44 +0000 (02:51 +0200)]
wormy 0.93.1413
Mischa Poslawsky [Tue, 10 Apr 2001 15:11:28 +0000 (17:11 +0200)]
wormy 0.93.1411
Mischa Poslawsky [Sat, 24 Mar 2001 21:42:10 +0000 (22:42 +0100)]
wormedit 0.93.1324
Mischa Poslawsky [Sat, 3 Mar 2001 16:31:14 +0000 (17:31 +0100)]
wormedit 0.93.1303
Mischa Poslawsky [Sun, 18 Jun 2000 14:50:26 +0000 (16:50 +0200)]
wormedit 0.92.0618
Replaces the need for level source example.
Mischa Poslawsky [Mon, 9 Apr 2001 12:40:32 +0000 (14:40 +0200)]
wormy 0.93.1403: beta release
Mischa Poslawsky [Sat, 31 Mar 2001 11:17:46 +0000 (13:17 +0200)]
wormy 0.93.1331: overhaul levelset selection
- minor input-related changes
- horizontal line objects
- faster if compiled with horizontal line routine (circles too)
- improve episode select screen (list options vertically)
Mischa Poslawsky [Fri, 30 Mar 2001 17:27:36 +0000 (19:27 +0200)]
wormy 0.93.1330: first episode using wormedit
Mischa Poslawsky [Sun, 25 Mar 2001 12:20:22 +0000 (14:20 +0200)]
wormy 0.93.1325: documentation improvements
Mischa Poslawsky [Sun, 4 Mar 2001 13:31:42 +0000 (14:31 +0100)]
wormy 0.93.1304: circles, customisable controls
- update title picture to new name
- player keys can be entered from menu
- some bugs fixed like the one that stored names wrong
- game over screen looks better (less basic)
- levels can have *circles* in them!
- wrote a nice routine from scratch (mostly on paper during vacation)
- default player names (Wormy, Viper, Nibbler, Spunky)
Mischa Poslawsky [Sun, 25 Feb 2001 00:39:12 +0000 (01:39 +0100)]
wormy 0.925.1225: new menu
- menu completely redone, so it is much easier to use and more pretty
- current selection is inverted instead of marked with *
Mischa Poslawsky [Sun, 22 Feb 2009 15:25:41 +0000 (16:25 +0100)]
rename to Wormy
Mischa Poslawsky [Thu, 7 Sep 2000 16:36:00 +0000 (18:36 +0200)]
worm 0.92.0907: link improvements
Mischa Poslawsky [Fri, 23 Jun 2000 12:25:52 +0000 (14:25 +0200)]
worm 0.92.0623: alpha release; tron, fat lines
- fix left+down bug
(froze the calc while certain keys were pressed simultaneously)
- Tron game mode in which worms do not shrink (both single- and multiplayer)
- extensible object types (adds 'fat lines' and allows for more)
- default sprite fallback
- very limited release
(add some padding to indicate future size increase)
Mischa Poslawsky [Wed, 24 May 2000 20:22:56 +0000 (22:22 +0200)]
worm 0.91.0524: further link improvements
The work continues. Documents base send/receive routines.
Mischa Poslawsky [Tue, 16 May 2000 11:00:54 +0000 (13:00 +0200)]
worm 0.91.0516: send game data over link (wip)
Mischa Poslawsky [Sun, 7 May 2000 11:34:28 +0000 (13:34 +0200)]
worm 0.91.0507: improve key handling, mask game field before start
Mischa Poslawsky [Fri, 5 May 2000 13:14:56 +0000 (15:14 +0200)]
worm 0.90.0505: ctf improvements, link development
Mischa Poslawsky [Wed, 3 May 2000 10:30:24 +0000 (12:30 +0200)]
worm 0.90.0503: ctf, example level file
- capture the flag, though not perfect yet (issues replacing food)
- seperate playable levelset from fully documented (tutorial) example
Mischa Poslawsky [Mon, 1 May 2000 13:02:24 +0000 (15:02 +0200)]
worm 0.90.0501: title picture, mode-specific improvements
- title picture at main menu ("worm" formed by wormies)
- improve race scoring, remove hunting
- initial multifood support
- first worm can grow twice as long (useful in Peaworm games)
- scores saved for each peaworm level
Mischa Poslawsky [Wed, 26 Apr 2000 11:34:54 +0000 (13:34 +0200)]
worm 0.89.0426: further memory usage analysis/tweaking
Mischa Poslawsky [Sun, 23 Apr 2000 17:07:42 +0000 (19:07 +0200)]
worm 0.89.0423
- bonus score for completing a level, extra live for each 1000 points
Mischa Poslawsky [Mon, 17 Apr 2000 17:50:34 +0000 (19:50 +0200)]
worm 0.86.0417: sprites, names, various improvements
- code polish
- abbreviate common 4-character instructions for alignment
- inline (documented) declaration of ti86abs.inc constants
- document memory usage
- plan version roadmap
- worms' names can be altered from main menu
- worm growth can vary per level
- both worms die when they run into each other
- peas can be any sprite upto 8x8, changable per level
- use line routine to draw boxes easily and reliably
Mischa Poslawsky [Tue, 4 Apr 2000 20:12:38 +0000 (22:12 +0200)]
worm 0.84: new version numbering
Decide on a new (incompatible) versioning scheme, making the number a
fraction till completion (1.00, ie 100%) in favour of counting forward
from Peaworm 0.9[0] (likely resulting in lots of 9s eventually).
Mischa Poslawsky [Mon, 27 Mar 2000 21:11:16 +0000 (23:11 +0200)]
worm 0.84.0327: external levels (wormlvl.86s)
Try to read levels from calculator string 'wormlvl'. Its source is
documented and can be modified to customise levels.
Mischa Poslawsky [Sat, 25 Mar 2000 10:58:14 +0000 (11:58 +0100)]
worm 0.84pre.0325: common includes, code cleanup