{"id":6382,"date":"2025-10-27T11:02:57","date_gmt":"2025-10-27T11:02:57","guid":{"rendered":"https:\/\/research.swissdigitization.ch\/?p=6382"},"modified":"2025-11-12T10:25:24","modified_gmt":"2025-11-12T10:25:24","slug":"dev-case-bonyxii-1995-imp89-macintosh-7-1","status":"publish","type":"post","link":"https:\/\/research.swissdigitization.ch\/?p=6382","title":{"rendered":"BONYXII 1995(?) Imp89 Macintosh 7.1+ Tech-Aspekte [Erfahrungsbericht]"},"content":{"rendered":"\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"bonYx |  longplay demo (no commentary)\" width=\"625\" height=\"352\" src=\"https:\/\/www.youtube.com\/embed\/6MEGCL9NKHI?start=29&#038;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Vergleiche dazu auch <a href=\"https:\/\/www.macintoshrepository.org\/4984-bonyx\">https:\/\/www.macintoshrepository.org\/4984-bonyx<\/a> <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Skizzen zum Spiel<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1536\" height=\"2048\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/IMG_6523-2-1536x2048.jpeg\" alt=\"\" class=\"wp-image-6852\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/IMG_6523-2-1536x2048.jpeg 1536w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/IMG_6523-2-225x300.jpeg 225w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/IMG_6523-2-768x1024.jpeg 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/IMG_6523-2-1152x1536.jpeg 1152w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/IMG_6523-2-624x832.jpeg 624w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/IMG_6523-2-scaled.jpeg 1920w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1536\" height=\"2048\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/IMG_6525-2-1536x2048.jpeg\" alt=\"\" class=\"wp-image-6850\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/IMG_6525-2-1536x2048.jpeg 1536w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/IMG_6525-2-225x300.jpeg 225w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/IMG_6525-2-768x1024.jpeg 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/IMG_6525-2-1152x1536.jpeg 1152w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/IMG_6525-2-624x832.jpeg 624w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/IMG_6525-2-scaled.jpeg 1920w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Spielmechanik<\/h2>\n\n\n\n<p>Woher die Spielmechanik kommt, kann ich heute leider nicht mehr eruieren. Die Spielmechanik ist simple, vielleicht fast zu einfach:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1998\" height=\"1076\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.28.59.png\" alt=\"\" class=\"wp-image-6398\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.28.59.png 1998w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.28.59-300x162.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.28.59-768x414.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.28.59-1536x827.png 1536w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.28.59-624x336.png 624w\" sizes=\"auto, (max-width: 1998px) 100vw, 1998px\" \/><\/figure>\n\n\n\n<p>Es geht darum, dass man gleiche Steinreihen verschwinden l\u00e4sst. Die Steine sind allerdings ungeordnet auf einem Stappel. Man kann nun Steine vom Stapel werfen nach unten, wo sie sich in einer neuen Lage sammeln. Sind alle vom selben Typ verschwinden sie, andernfalls werden sie nach oben geschoben. Sind alle Steine weg ist der Level gel\u00f6st. Allerdings gibt es eine Art Zeitlimit in Form eines Balkens, der langsam von oben nach unten f\u00e4hrt. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Code<\/h2>\n\n\n\n<p>Der Code ist in C in CodeWarrior geschrieben. Siehe dazu auch hier: <a href=\"https:\/\/research.swissdigitization.ch\/?p=6270\">https:\/\/research.swissdigitization.ch\/?p=6270<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">CodeAufbau<\/h2>\n\n\n\n<p>Prinzipiell besteht der Code aus zwei Files:<\/p>\n\n\n\n<p>_rock.c &#8211; das Spiel (keine Ahnung warum der Name vermutlich das urspr\u00fcngliche Template)<br>_hollywood.c &#8211; der music tracker (Soweit ich weiss per Zufall gefunden und kam aus Genf)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hollywood.c<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>\/* bonYxII *\/<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Includes<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;CursorDevices.h&gt;\n#include &lt;sound.h&gt;\n#include &lt;math.h&gt;\n#include &lt;Gestalt.h&gt;\n\n\n\/* MUSIC IS ON *\/\n#include &lt;QuickTimeComponents.h&gt;\n#include &lt;Components.h&gt;\n\n#include \"Hollywood.h\"\n#include \"Hollywood.c\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Defs Game <\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>int registr=0;    \/\/ 0 == nicht registriert 1 == registriert\nint ev=0;         \/\/ EVENT=1 eingeschaltet\nEventRecord    theEvent;\nint ai;\nPoint integerPosition, position;    \/* The position of our object, in integer and fixed-point*\/\nPoint centerOfScreen;           \/* The center of the screen*\/\nPoint theMouse;                 \/* A Point that we get the mouse position in*\/\nRect drawingRectangle;          \/* A rectangle used for drawing*\/\nPoint speed;                    \/* The accumulated speed*\/\nRect    windRect,maxrec;\nGDHandle         thisGDevice;\nRgnHandle gOldVisRgn = NULL;  \n\nKeyMap theKeys;\nCGrafPtr bsack,banima,btest;\n\n int qweer=-10,aanzr=0;\n<strong>int ffield&#91;20]&#91;20]&#91;50]={{{ &#91;...]<\/strong>\n\n   int ff&#91;100],razo=0;\n   <strong> int breiteq&#91;50]={3,4,4,3,&#91;...],3},<\/strong>\n        <strong>timeq&#91;50]={1092,518,479,880,425,390,669,101,353,&#91;...],163,212};<\/strong>\n    int fof&#91;100],timeqq,breiteqq;\n    int ofield&#91;10];    int field&#91;20]&#91;20];\n       SFReply  reply,replyy;\n        short refnum,refnumm;\n\t\tlong bietes;\n\t\n\t\/\/---------------\n\tint cheat=0;  \/\/ cheat =0 deaktiviert\n\t\n\tint r=24,rr=24,rit=2;\n\tint alt,welch,qt;\n\tint anim,animz,spi=2;<\/code><\/pre>\n\n\n\n<p>[Diverse Quicktime\/Music-Pointers.]<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Screenhandeling (Offscreen)\nvoid KillOffScreenPixMap (CGrafPtr offScreen){\t&#91;...] }\nvoid CreateOffscreens (void) {  &#91;...] }\nvoid CreateOffScreenBitMap (Rect *theRect, GrafPtr *offScreen) { &#91;...] }\nvoid CreateOffScreenPixMap (Rect *theRect, CGrafPtr *offScreen) { &#91;...] }<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Hauptprogramm \/ Spiel<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>\/* MAIN *\/\n\nvoid main(void)\n{<\/code><\/pre>\n\n\n\n<!--more-->\n\n\n\n<h4 class=\"wp-block-heading\">Init<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\/* DIE VARIABELN ZU BONYX II *\/\n\tint anz=0,red=0,zt=0,zzt=0;\t\n\tint wox=120,woy=-100; \n\tint woxt=0 ,woyt=0,awoxt=0,awoyt=0;\n\tint breiteu=3;\n    int quix,quiy,quixt,quiyt,ier;\n    int zlr,hi,zz,zlrt,we,zo;\n\tint alx=0,aly=100,aqx,aqy,x,y,out;\n\tint handz=0,schlagz=0,aanz=0,loe=0,uux,uuy;\n    SndChannelPtr sndc0=0L,sndc1=0L,sndc2=0L;\n    SndListHandle gefressen,click,levelg ,backgr,faellt,up,splat,ends,done,fluck;\n    int teer,teera,rok=0,rime,rimet,fust=0;\n    CCrsrHandle cune,tune;\n\n\n    thisGDevice = GetMainDevice();\n    \n\/* cleared field *\/\n   for (ii=0;ii&lt;20;++ii)\n    for (i=0;i&lt;20;++i)\n     field&#91;i]&#91;ii]=0;\n\/*\n   for (anz=0;anz&lt;50;++anz)\n   { for (ii=0;ii&lt;20;++ii)\n     for (i=0;i&lt;20;++i)\n     \/\/ffield&#91;i]&#91;ii]&#91;anz]=0;\n     breiteq&#91;anz]=3;\n     timeq&#91;anz]=20;\n\t}; *\/\n\n   field&#91;0]&#91;11]=1;\n      \n \/* INIT *\/\n\tInitToolbox();\n\n\/* Hide the cursor - it won't make sense anyway *\/\n\tHideCursor();\n\n\/* ================== PATTERN ===================== *\/\n   leers=GetPixPat(1);  \/* schwarz bzw weisser HIntergrund *\/\n   leerw=GetPixPat(0);<\/code><\/pre>\n\n\n\n<p>[Set up window and co]<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>\/* INSTALL CHEAT ? -- I am anfang dr\u00fccken *\/\n  GetKeys(theKeys);\n  if (BitTst(&amp;theKeys,37)==true) cheat=1;<\/strong>\n\nOffscreen Init<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>\/* ============== OFFSCREENS   =============== *\/   \n    CreateOffscreens ();\n    \n    SetRect(&amp;rec,0,0,640,480);\n        \n    SetPort((GrafPtr) banima);\n    FillCRect(&amp;rec,leerw);    \n                  \n    SetPort((GrafPtr) btest);    \n    FillCRect(&amp;rec,leerw);                  \n    SetPort((GrafPtr) bsack); \/\/2 verschiedene Welten ok !!\n    FillCRect(&amp;rec,leerw);                  \n\n&#91;Installation aller Channels und Soundeffekte aus ResEdit ]\n &#91;...]\n <strong>click=(SndListHandle) (GetResource(soundListRsrc,138));<\/strong>\n &#91;...]<\/code><\/pre>\n\n\n\n<p>\/\/ Registrationscheck<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/* TESTEN OB REGISTRIERT *\/\n                          GetVol(NULL,&amp;reply.vRefNum);\n                          <strong>FSOpen(\"\\pSCOT\",reply.vRefNum,&amp;refnum);<\/strong>\n                          bietes=sizeof(char)*10;\n                          FSRead(refnum,&amp;bietes,&amp;snam&#91;0]); \/\/ ANDERES !!\n                          bietes=sizeof(int)*10;\n                          FSRead(refnum,&amp;bietes,&amp;sser&#91;0]); \/\/ ANDERES !!\n                          FSClose(refnum); \n\n\n \t\t\t\t\t\/\/ TEST OB .. UND ODER DOCH NICHT ?\n     \/* --------TESTEN NOW---------- *\/\n     <strong>for (ti=0;ti&lt;10;++ti)\n      es&#91;ti]=snam&#91;ti]+ti;\n      \n      \n       es&#91;0]=es&#91;2]+es&#91;3];\n       es&#91;4]=es&#91;5]*es&#91;1];\n       es&#91;9]=es&#91;7]*es&#91;8]*es&#91;9];\n       es&#91;3]=es&#91;1]*es&#91;1]*es&#91;1];\n       es&#91;7]=es&#91;0]+es&#91;1]+es&#91;2]+es&#91;3];\n     for (ti=0;ti&lt;10;++ti)\n      if (es&#91;ti]&lt;0) es&#91;ti]=0;<\/strong>\n\n     <strong>\/* VERGLEICHEN *\/\n     tii=0;\n     for (ti=0;ti&lt;9;++ti)\n     if ((es&#91;ti]%10)==(sser&#91;ti]-'0'))\n     {  } else { tii=1;\n      };<\/strong>\n      \n      if (tii==0) { \/* SERIAL NUMBER IST ECHT *\/\n     registr=1;\n     \/\/ TON DAFUER ? \n     };\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Loading<\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"1122\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.04-2048x1122.png\" alt=\"\" class=\"wp-image-6401\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.04-2048x1122.png 2048w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.04-300x164.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.04-768x421.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.04-1536x841.png 1536w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.04-624x342.png 624w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Menu <\/h4>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1770\" height=\"1120\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.46.png\" alt=\"\" class=\"wp-image-6397\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.46.png 1770w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.46-300x190.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.46-768x486.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.46-1536x972.png 1536w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.46-624x395.png 624w\" sizes=\"auto, (max-width: 1770px) 100vw, 1770px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>\ndo { \n\/* MUSICS *\/\n\nif (quicktimei==1)\n if (musicflag==1) {\n\t\tHY_ServiceTasks();\n\t\tProcessQuickTimeMovie();\n };\n\n\/\/if (musicflag==0)\n\/\/if (SndChannelBusy(sndc2)==false) SndPlay(sndc2,backgr,TRUE); \n\n                    GetMouse(&amp;mousepix); \n                    x=mousepix.h;\n                    y=mousepix.v; \n\n teer=0;\n i=0;\n \/* QUIT *\/\n  <strong>if ((x&lt;530) &amp;&amp; (x&gt;440))\n   if ((y&gt;339+40) &amp;&amp; (y&lt;380+40))\n    { teer=1; <\/strong>\n\n    SetCCursor(tune);    \n    \n    if (Button()==true)\n    { out=1; i=1;  \n      SndPlay(sndc1,faellt,TRUE);\n     };};\n\n\/* how to PLAY *\/\n<strong>  if ((x&lt;530) &amp;&amp; (x&gt;440))\n   if ((y&gt;40+264) &amp;&amp; (y&lt;40+326))\n   { teer=6;<\/strong>\n&#91;...]\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1860\" height=\"1152\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.17.png\" alt=\"\" class=\"wp-image-6396\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.17.png 1860w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.17-300x186.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.17-768x476.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.17-1536x951.png 1536w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.26.17-624x386.png 624w\" sizes=\"auto, (max-width: 1860px) 100vw, 1860px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">InGame<\/h4>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"666\" height=\"427\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/bonyx_s.png\" alt=\"\" class=\"wp-image-6386\" style=\"width:636px;height:auto\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/bonyx_s.png 666w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/bonyx_s-300x192.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/bonyx_s-624x400.png 624w\" sizes=\"auto, (max-width: 666px) 100vw, 666px\" \/><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">Background kopieren<\/h5>\n\n\n\n<pre class=\"wp-block-code\"><code>\/* DER LEVEL WIRD NEU GEZEICHNET *\/\n                     SetPort((GrafPtr) myWindow );   \n                     apple=GetPicture(136);  \n                     SetRect(&amp;rec,0,40,640,440 );\n                     HUnlock((Handle) apple);\n                     <strong>DrawPicture(apple,&amp;rec);<\/strong>               \n                     ReleaseResource((Handle) apple);  <\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Steine zeichnen<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>for (ii=0;ii&lt;20;++ii)\n    for (i=0;i&lt;20;++i)\n     field&#91;i]&#91;ii]=ffield&#91;i]&#91;ii]&#91;red];<\/strong>\n\n   breiteu=breiteq&#91;red];\n               \n                      resi=0;\n                      for (i=0;i&lt;20;++i) \n                       for (ii=19;ii&gt;=0;--ii) \n                       {\n\t\t\t\t\t\t if (field&#91;i]&#91;ii]!=0) \n\t\t\t\t\t\t  SndPlay(sndc1,splat,TRUE); \n                       \n                        for (anz=0;anz&lt;17;anz=anz+2)      \n                        if (field&#91;i]&#91;ii]!=0)\n                        {\n                         \n                           which=field&#91;i]&#91;ii]-1;\n\t\t\t\t\t\t   q=i*breite;\n\t\t\t\t\t\t   qq=ii*hoehe;\n                                                   \n                            apple=GetPicture(200+which*5    );\n\t\t\t\t\t\t    SetRect(&amp;rec,q+wox+32-anz*2,qq-anz+woy+16+40,q+anz*2+wox+32,qq+40+woy+16+anz);\n\t\t\t\t\t\t    HUnlock((Handle) apple);\n\t\t\t\t\t\t    DrawPicture(apple,&amp;rec);               \n\t\t\t\t\t\t    ReleaseResource((Handle) apple); \n\t\t\t\t\t\t    \n\t\t\t\t\t\t    if (Button()==true) {\n\t\t\t\t\t\t     i=20;\n\t\t\t\t\t\t     ii=-1;\n\t\t\t\t\t\t     anz=20;\n\t\t\t\t\t\t     resi=1;\n\t\t\t\t\t\t    }; };\n\t\t\t\t\t\t \n                          do ; while(SndChannelBusy(sndc1)==true); \n                          \n\t\t\t\t\t\t};<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">Animationen <\/h5>\n\n\n\n<pre class=\"wp-block-code\"><code>\/* ZEICHNE ANIMATIONEN INS BANIMA *\/\nSetPort((GrafPtr) banima );   \n    SetRect(&amp;rec,0,0,640,400);\n    FillCRect(&amp;rec,leerw);    \n\nfor (ii=0;ii&lt;=10;++ii)\nfor (i=0;i&lt;5;++i) {\n    apple=GetPicture(200+ii*5+i);\n    SetRect(&amp;rec,i*64,ii*32,i*64+64,ii*32+32 );\n     HUnlock((Handle) apple);\n    DrawPicture(apple,&amp;rec);               \n    ReleaseResource((Handle) apple);  };\n\n<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">Stein verschoben<\/h5>\n\n\n\n<pre class=\"wp-block-code\"><code>\/* NUN WIRD EIN STEIN VERSCHOBEN *\/\n\t\t\t\t\tif (Button()==true)\n                    { loe=0;\n                    SndPlay(sndc0,click,TRUE); \n    schlagt= TickCount();         \n schlagz=0;      \n for (i=0;i&lt;5;++i) {\n   while (TickCount()&lt;schlagt+6) { };   \n\t\t\t\t     SetRect(&amp;re,lx,ly-40,lx+64,ly+32-40);                     \n                     SetRect(&amp;ri,640-64,400-64,640,400-32);   \n                     CopyBits(&amp;((GrafPtr) bsack)-&gt;portBits,&amp;(((GrafPtr) banima)-&gt;portBits),&amp;re,&amp;ri,srcCopy, 0L);                      \n\t\t\t          SetRect(&amp;re,schlagz*64,400-64,schlagz*64+64,400-32); \n                     SetRect(&amp;ri,640-64,400-64,640,400-32);   \n                     CopyBits(&amp;((GrafPtr) banima)-&gt;portBits,&amp;(((GrafPtr) banima )-&gt;portBits),&amp;re,&amp;ri,36, 0L);                      \n                     SetRect(&amp;re,640-64,400-64,640,400-32);                    \n                     SetRect(&amp;ri,lx,ly,lx+64,ly+32);\n                     CopyBits(&amp;((GrafPtr) banima)-&gt;portBits,&amp;(((GrafPtr) myWindow)-&gt;portBits),&amp;re,&amp;ri,srcCopy, 0L);                      \n      \n     schlagt= TickCount(); \n        ++schlagz;\n    };\n\n&#91;...]\n\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Dev-LevelEditor<\/h4>\n\n\n\n<p>Das Spiel scheint einen Leveleditor zu besitzen. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\t for (i=0;i&lt;10;++i)\n\t  ofield&#91;i]=0;\n\tdo\n\t{ \n\/* EDITOR ---------------------------------------- *\/\n                 GetKeys(theKeys);\n               <strong> if (cheat==1)\n                 if (BitTst(&amp;theKeys,54)==true) { \n\t     ShowCursor();                 <\/strong>\n                    hoehe=32;\n                    breite=64;\n                    which=0;\n\t\t\t\t\tSetPort((GrafPtr) myWindow );   \n                        apple=GetPicture(198);\n\t\t\t\t\t\t    SetRect(&amp;rec,0,0,640,40);\n<\/code><\/pre>\n\n\n\n<p>Der LevelEditor scheint die Levels als C-Array zu speichern, wie er in der Initialiisierung genutzt wird. Hier werden also vermutlich  die Daten im Code eingebunden und nicht geladen von einem File. <\/p>\n\n\n\n<p>Lustig auch folgender Text (wie viele Kommentare in Deutsch) die Baustelle. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1326\" height=\"1014\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.05.58-Kopie.jpg\" alt=\"\" class=\"wp-image-6394\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.05.58-Kopie.jpg 1326w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.05.58-Kopie-300x229.jpg 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.05.58-Kopie-768x587.jpg 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-14.05.58-Kopie-624x477.jpg 624w\" sizes=\"auto, (max-width: 1326px) 100vw, 1326px\" \/><figcaption class=\"wp-element-caption\">Screenshot<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Musik<\/h2>\n\n\n\n<p>Die Musik ist ein klassisches Klavier-St\u00fcck, dessen Mod-File ich irgendwo gefunden habe. Es gab &#8211; nicht mehr auffindbar &#8211; einige Kommentare dazu, dass dies ein klassisches St\u00fcck sei. Hier zeigt sich ein bisschen, dass es schon eine klare Erwartungshaltung an Games gab und diese konnten auch Genre-spezifisch sein. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">DevelopmentFolder<\/h2>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-73baf887-d076-463d-bc19-b3b2631a4b5a\" href=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/BONYXII-2.zip\">BONYXII<\/a><a href=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/BONYXII-2.zip\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-73baf887-d076-463d-bc19-b3b2631a4b5a\">Herunterladen<\/a><\/div>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1638\" height=\"1078\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-11.44.56.png\" alt=\"\" class=\"wp-image-6384\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-11.44.56.png 1638w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-11.44.56-300x197.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-11.44.56-768x505.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-11.44.56-1536x1011.png 1536w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2025-10-24-um-11.44.56-624x411.png 624w\" sizes=\"auto, (max-width: 1638px) 100vw, 1638px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Restrictions<\/h2>\n\n\n\n<p>So lange die Spiele nur \u00fcber geschickte <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Webseite<\/h2>\n\n\n\n<p>Eine sp\u00e4te Version der Webseite sah so aus (1998?).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"1294\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2022-05-18-um-23.16.51-2048x1294.png\" alt=\"\" class=\"wp-image-6385\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2022-05-18-um-23.16.51-2048x1294.png 2048w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2022-05-18-um-23.16.51-300x190.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2022-05-18-um-23.16.51-768x485.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2022-05-18-um-23.16.51-1536x971.png 1536w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2022-05-18-um-23.16.51-624x394.png 624w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\" \/><\/figure>\n\n\n\n<p>Registration \u00fcbers Netz<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"1136\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2022-05-18-um-23.16.25-2048x1136.png\" alt=\"\" class=\"wp-image-6387\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2022-05-18-um-23.16.25-2048x1136.png 2048w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2022-05-18-um-23.16.25-300x166.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2022-05-18-um-23.16.25-768x426.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2022-05-18-um-23.16.25-1536x852.png 1536w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2025\/10\/Bildschirmfoto-2022-05-18-um-23.16.25-624x346.png 624w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Vergleiche dazu auch https:\/\/www.macintoshrepository.org\/4984-bonyx Skizzen zum Spiel Spielmechanik Woher die Spielmechanik kommt, kann ich heute leider nicht mehr eruieren. Die Spielmechanik ist simple, vielleicht fast zu einfach: Es geht darum, dass man gleiche Steinreihen verschwinden l\u00e4sst. Die Steine sind allerdings ungeordnet auf einem Stappel. Man kann nun Steine vom Stapel werfen nach unten, wo sie [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6382","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/6382","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6382"}],"version-history":[{"count":24,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/6382\/revisions"}],"predecessor-version":[{"id":6929,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/6382\/revisions\/6929"}],"wp:attachment":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6382"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6382"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}