From news-rocq.inria.fr!univ-lyon1.fr!newsfeed.nacamar.de!wnfeed!worldnet.att.net!4.1.16.34!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!news.new-york.net!news.stormking.com!iltzu@sci.fi Tue Sep 30 09:51:16 1997 Article: 7872 of rec.games.corewar Path: news-rocq.inria.fr!univ-lyon1.fr!newsfeed.nacamar.de!wnfeed!worldnet.att.net!4.1.16.34!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!news.new-york.net!news.stormking.com!iltzu@sci.fi From: iltzu@sci.fi (Ilmari Karonen) Newsgroups: rec.games.corewar Subject: Shelter Date: 29 Sep 1997 16:49:59 -0400 Organization: Storm King Ind. Inc. Lines: 66 Sender: server@news.stormking.com Distribution: world Message-ID: <29199740.Amiga@pop.sci.fi> Reply-To: iltzu@sci.fi NNTP-Posting-Host: valhalla.stormking.com Originator: corewar-l@stormking.com X-Mailer: Air Mail V2.0 (Unregistered) -- Amiga Mailer by Danny Y. Wong It's been about a month or something now since Anton Marsden said he'd post all the tournament entries soon, and since there's been discussion about "silver bullets", I figured I'd post my round 2 entry, Shelter: It exploits two weaknesses of Electric Head's mini HSA: 1. A decoy, placed just before the program, can render it invisible to HSA. 2. The HSA degenerates into a .66c forward core clear when it hits a decoy. This means that if it starts wiping the trail of a faster clear, such as d-clear, it's doomed. This version is a result of much trial-and-error tweaking, as one can see from the clear. Believe it or not, this is the most effective size. ;redcode-94 ;name Shelter 1f3 ;author Ilmari Karonen ;strategy Anton Marsden's tournament round 2 entry: ;strategy hide from HSA behind a decoy, and catch ;strategy it with a brainwashing 1c forward clear ;date Jul 31, 1997 ;planar clear, pspace ;assert CORESIZE == 8000 PSTATE equ 250 ; from EH STATES equ 10 ; from EH BWASH equ 2 hsastep equ 9 ; from EH's mini HSA proglen equ 7 cend equ (cptr+BWASH+2*STATES) org start decoy z for (MAXLENGTH-19) spl #-z, 4000+z rof dgap dat.f 0, 0 ; next scan will land at dgap+hsastep+1 dat.f 0, 0 ; or at dgap+hsastep+2 dat.f 0, 0 cptr dat.f 0, 0 dat.f 0, 0 dat.f 0, 0 dat.f 0, 0 dat.f 0, 0 cbmb dat.f {1234, {BWASH+2*STATES cwsh stp.ba #250, #BWASH+2*STATES dat.f 0, 0 ; this will be scanned dat.f 0, 0 ; or this start spl #0, 0 loop mov.i cbmb, >cptr mov.i cwsh, >cptr mov.i cwsh, >cptr mov.i cwsh, >cptr djn.f loop, >cptr end -- Ilmari Karonen (iltzu@sci.fi) http://www.sci.fi/~iltzu/