TheRoboZ [Lexaloffle Blog Feed]https://www.lexaloffle.com/bbs/?uid=32989 ord(stat(xx)) behavior changed in version 0.2.3 <p>Hello,</p> <p>I have a problem with some code in version 0.2.3 that worked up to the previous version:</p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre> if stat(30) then local k = ord(stat(31)) end</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>ord(stat(31)) always returns null but was returning the correct value before.</p> <p>It works if changed to:</p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre> if stat(30) then local k = stat(31) k=ord(k) end</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>The RoboZ</p> https://www.lexaloffle.com/bbs/?tid=44969 https://www.lexaloffle.com/bbs/?tid=44969 Wed, 13 Oct 2021 02:30:35 UTC split() problem with binary strings <p>Hello, </p> <p>while trying to compact code to save tokens I ran into an issue when trying to use split with strings containing escaped numbers \0, \1, etc.. (to store binary data that will be converted with ord()</p> <p>s=&quot;abc\0def ghijkl&quot;<br /> split(s,&quot; &quot;)</p> <p>This seems to stop at \0 and the string part after &quot; &quot; will not be in the resulting table.</p> <p>Is this intended behavior or a bug? With other escaped characters as \n \r \t the splitting works fine.</p> <p>If this could be possible it would help me save additional tokens.</p> <p>Thank you,</p> <p>TheRoboZ </p> https://www.lexaloffle.com/bbs/?tid=44968 https://www.lexaloffle.com/bbs/?tid=44968 Wed, 13 Oct 2021 02:27:55 UTC R-Type <p> <table><tr><td> <a href="/bbs/?pid=98070#p"> <img src="/bbs/thumbs/pico8_rtype-5.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=98070#p"> rtype</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=98070#p"> [Click to Play]</a> </td></tr></table> </p> <p>After months of hard work, here is the NEW release (1.3) of Irem&rsquo;s <a href="https://rtype.fandom.com/wiki/R-Type">R-Type</a>* pico-8 port, featuring the 4 stages in a 32kb cart! (Similar to the PC-Engine port, with 4 in a 256kb hu-card.)</p> <p>In addition, there are: </p> <ul> <li>30 enemies with most attack patterns and weapon replicated (albeit simplified)</li> <li>4 HUGE bosses</li> <li>3 force types with 2 levels of power</li> <li>60 fps action with arcade-style graphics</li> <li>Awesome 5 tracks soundtrack by the great <a href="https://www.lexaloffle.com/bbs/?uid=28327"> @dhostin</a> (YouryKiki) based on Masato Ishizaki's original score, you can listen to the <a href="https://soundcloud.com/youry-kiki/sets/r-type-pico8">OST on SoundCloud</a></li> </ul> <p>Hope you enjoy it and please, give me some feedback on performance, especially on lower-end machines.</p> <p>TheRoboZ</p> <h2>Instructions:</h2> <p>🅾️ button to shoot, hold to charge the beam<br /> ❎ to detach/recall the force sphere. (hold to auto-fire. after a while auto-firing will detach the force so be careful!) The force can be positioned in front and behind, has 3 powers up levels and can be used defensively too, absorbing the small enemy bullets.</p> <h3>(I strongly suggest to play with keyboard or pad as on the phone it might be a bit harder)</h3> <p><img style="" border=0 src="/media/32989/rtype_0.png" alt="" /> <img style="" border=0 src="/media/32989/rtype_2.png" alt="" /><br /> <img style="" border=0 src="/media/32989/33_rtype_0.png" alt="" /> <img style="" border=0 src="/media/32989/rtype_1 (2).png" alt="" /></p> <h1>Version 1.4</h1> <ul> <li>FIXED fsign bug reported on April 11</li> <li>Token reduction</li> <li>Optimized sprite rotation</li> <li>Picodraw cached string to table conversion</li> <li>Fixed bug in detaching cargo in stage 3</li> <li>Improved collision bounding boxes in soem cases</li> <li>Beam draw improvement</li> </ul> <h2>Version 1.3</h2> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"></p> <ul> <li>fix for pico 0.2.4 black palette bug</li> <li>fixed stage 2 music bug, boss music plays again if coming from stage 1</li> <li>added score recap at stage clear<br /> </div></div></div></li> </ul> <h2>Version 1.2</h2> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"></p> <ul> <li>stage 4 (2 new enemies and 1 new boss)</li> <li> <h3>NOTE: stage 4 boss cannot be damaged with normal bullets, you need to use the beam or a force weapon</h3> </li> <li>soundtrack available on <a href="https://soundcloud.com/youry-kiki/sets/r-type-pico8">https://soundcloud.com/youry-kiki/sets/r-type-pico8</a></li> <li> <h3>swapped fire buttons</h3> </li> <li>increased special weapon damage</li> <li>added different explosion for missiles</li> <li>fix autofire too fast with force weapons</li> <li>fix autofire firing force while holding button down</li> <li>fixed circle beam/missiles gfx</li> <li>fixed missiles explosion drawn twice</li> <li>missiles only seeks forward as in arcade</li> <li>misc. fixes/improvements to better match arcade version<br /> </div></div></div></li> </ul> <h2>Version 1.1</h2> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"></p> <ul> <li>auto-fire if you hold down (❎), see instructions. thanks <a href="https://www.lexaloffle.com/bbs/?uid=15232"> @dw817</a></li> <li>fixed shooting/sounds after death, thanks <a href="https://www.lexaloffle.com/bbs/?uid=12874"> <a href="https://www.lexaloffle.com/bbs/?uid=12874"> @Felice</a></a></li> <li>fixed problems with music cues/checkpoint restarting and enemy removal(stage 3 mainly) after player death</li> <li>fixed missiles not resetting after player death, thanks to <a href="https://www.lexaloffle.com/bbs/?uid=41412"> <a href="https://www.lexaloffle.com/bbs/?uid=41412"> @extar</a></a> and his awesome <a href="https://www.youtube.com/watch?v=iXNY2dggqtc">let's play</a></li> <li>fixed excessive beam damage due to being stuck in some situation where a bg tile was behind an enemy (first and third bosses as seen in <a href="https://www.lexaloffle.com/bbs/?uid=41412"> <a href="https://www.lexaloffle.com/bbs/?uid=41412"> @extar</a></a> 's <a href="https://www.youtube.com/watch?v=iXNY2dggqtc">video</a><br /> </div></div></div></li> </ul> <h2>What&rsquo;s missing compared to the arcade (mainly down to token limit):</h2> <ul> <li>&quot;Option bits&quot; power up (little spheres flying above and/below the ship)</li> <li>continue screen/high scores table</li> <li>The pow-capsule enemy doesn't land/walk</li> <li>No 1-up</li> </ul> <h2>Development Notes:</h2> <p>The idea for this came as a way to expand and improve the background graphic system of my previous <a href="https://www.lexaloffle.com/bbs/?tid=39310">Masters of the Universe</a> game with scrolling, meanwhile implementing more functionality in picodraw as explained <a href="https://www.lexaloffle.com/bbs/?tid=41225">here</a>.<br /> I am pretty satisfied with the technical results and picodraw now evolved a lot with the addition of cloning groups and sprite support. Programming the game was a fun &ldquo;old times&rdquo; experience since I had no idea how the original worked and had to keep playing on M.a.M.E. trying to understand enemies patterns, but got a bit tedious at time, while fighting token limits to implement them, specially near the end. </p> <h2>Thank you</h2> <p>The following contributions taught me some incredible techniques that allowed me to complete the game</p> <p><a href="https://www.lexaloffle.com/bbs/?uid=42027"> @sparr</a>/<a href="https://www.lexaloffle.com/bbs/?uid=12874"> <a href="https://www.lexaloffle.com/bbs/?uid=12874"> @Felice</a></a> for their fillp <a href="https://www.lexaloffle.com/bbs/?tid=30518">extension</a> that allows object coordinates fill patters, without this I wouldn&rsquo;t even have tried as the jittering was really annoying,</p> <p><a href="https://www.lexaloffle.com/bbs/?uid=25532"> @freds72</a>/<a href="https://www.lexaloffle.com/bbs/?uid=29414"> @paranoidcactus</a> for their <a href="https://freds72.itch.io/poom/devlog/241700/journey-to-poom">Journey to poom</a> article<br /> showing me the invaluable &ldquo;properties factory&rdquo; function that I adapted to my needs and saved me at least 3 times when I overshot token limits. Freds72 also contributed some last minute optimization tricks that will probably allow me an additional update.</p> <p><a href="https://www.lexaloffle.com/bbs/?uid=15096"> @ElGregos</a> for his snake <a href="https://twitter.com/GregosEl/status/1407026760101859333">tweetcart</a>, showing me a simple way to implement a more complex movement for the second boss</p> <p>Without the above, the game would have been way more limited</p> <p>*R-Type is a side-scrolling shoot'em up game, and the first game in the series. It was originally released in July 1987 by Irem for the Arcades, with ports to home consoles and computers in the following years.</p> https://www.lexaloffle.com/bbs/?tid=44842 https://www.lexaloffle.com/bbs/?tid=44842 Fri, 01 Oct 2021 02:28:42 UTC R-Type Demo <h1>Game Released, please see this-&gt; <strong><a href="https://www.lexaloffle.com/bbs/?tid=44842">post</a></strong></h1> <p>Stage 1 and 2 of my <a href="https://rtype.fandom.com/wiki/R-Type">R-Type</a> pico-8 port, showing all game and graphic system working.<br /> <strong>Music once again courtesy of the great <a href="https://www.lexaloffle.com/bbs/?uid=28327"> @dhostin</a> (YouryKiki) based on Masato Ishizaki's original score</strong></p> <h2>What's new</h2> <p>Stage 2 and stage selector</p> <p>Some players complained about the difficulty due to restricted play area so I made the following changes:</p> <ul> <li>slower enemy bullets and fire rate</li> <li>small tweaks to soem enemy placement</li> <li>when you respawn, no enemies already onscreen</li> </ul> <p>Since this is a tech demo, i left some debug options available:</p> <ul> <li>press W to pause scrolling and become invincible</li> <li>once invincible press S and F to scroll through the stage</li> <li>D to show/hide collision boxes</li> <li>Q to summon the force and change its type</li> <li>E to change the force power</li> </ul> <p>Transparent explosions!</p> <p>Using PicoDraw routines for more graphic elements (weapons/UI)</p> <h2>Notes:</h2> <p>The idea for this came as a way to expand and improve the background graphic system of my previous <a href="https://www.lexaloffle.com/bbs/?tid=39310">Masters of the Universe</a> game with scrolling, implementing more functionality in picodraw as explained <a href="https://www.lexaloffle.com/bbs/?tid=41225">here</a>. If I have the chance in the following days I will detail a bit further what's new behind the scenes.</p> <p>This demo is still missing the option power up (the little spheres flying above and/below the ship) and a proper game/over - continue screen. The power-up capsule enemy AI is also unfinished.</p> <p>The code is not completely optimized as the more enemy I introduce, the easier it is to refactor common parts an streamline functions, so it will get another pass after stage 3 is in. As you can see there's still plenty of sprite/map space unused so a bunch of things I am doing in code could be simplified using these instead.</p> <p>Programming the enemies is the hardest and most tedious part because I have to play the original game a lot and try to guess what's going on but I will try to implement 3 and maybe the last stage, then we'll see if there's enough interest to add something more, maybe going multi-cart.</p> <p>Let me know what you think and please give me some feedback on performance, specially on lower-end machines.</p> <p>Enjoy, </p> <p>TheRoboZ</p> <p>*R-Type is a side-scrolling shoot'em up game, and the first game in the series. It was originally released in July 1987 by Irem for the Arcades, with ports to home consoles and computers in the following years.</p> https://www.lexaloffle.com/bbs/?tid=42493 https://www.lexaloffle.com/bbs/?tid=42493 Thu, 15 Apr 2021 07:48:04 UTC Klax (lynx version) <p> <table><tr><td> <a href="/bbs/?pid=88945#p"> <img src="/bbs/thumbs/pico8_klax-2.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=88945#p"> klax</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=88945#p"> [Click to Play]</a> </td></tr></table> </p> <p>This is a pico-8 port of Klax, mainly based on the Atari Lynx version, featuring:</p> <p>-100 levels<br /> -5 different backgrounds<br /> -warps<br /> -full klax combos and scoring system.</p> <h2>updated to v1.1</h2> <p>-Fixed early game over condition when last free tile would create a klax<br /> Thanks to <a href="https://www.lexaloffle.com/bbs/?uid=39890"> @dan9er</a> finding<br /> -added additional perspective tile graphics for tiles on external lines<br /> -added brief tutorial before level one,like lynx version<br /> -added one sample of digitized speech... It's all i could fit without<br /> compression but i wanted to test how this new secret functionality</p> <img style="" border=0 src="/media/32989/klax_0.png" alt="" /> <p>I needed a warm up project after taking some time off since finishing Masters of the Universe and I was thinking how Lynx screen resolution is not that far off from pico-8's and it gave me the idea of trying to port some games.<br /> I played a lot of this on my lynx and it seemed like the easiest one to start with.</p> <p>I found 2 other klax carts for pico. One by <a href="https://www.lexaloffle.com/bbs/?uid=15708"> @GiovanH</a> and one by <a href="https://www.lexaloffle.com/bbs/?uid=40796"> @troske007</a>. I used the last <a href="https://www.lexaloffle.com/bbs/?tid=36184">klax2d</a> as a starting point and then I just &quot;stitched&quot; on all the missing features<br /> and change after change the result is a bit of a Frankenstein monster code-wise, and ended up almost reaching the token limit. </p> <p>I was already planning a future update with cleaner code and just before posting this I saw <a href="https://www.lexaloffle.com/bbs/?uid=23375"> @carlc27843</a> 's amazing discover of <a href="https://www.lexaloffle.com/bbs/?tid=41991">sfx samples</a> so I will try to add a couple of sfx from the lynx version too soon.</p> <p>Major thanks to <a href="https://www.lexaloffle.com/bbs/?uid=38372"> @NiVZ</a> for his feedback!</p> <p>Hope you'll enjoy this.</p> <img style="" border=0 src="/media/32989/klax_2.png" alt="" /> <p>Klax is a puzzle video game released in arcades in 1990 by Atari Games. It was designed by Dave Akers and Mark Stephen Pierce. The object is to catch colored blocks tumbling down a machine and arrange them in colored rows and patterns to make them disappear. Klax was originally published as a coin-op follow-up to Tetris, about which Atari Games were tangled in a legal dispute at the time.</p> https://www.lexaloffle.com/bbs/?tid=41993 https://www.lexaloffle.com/bbs/?tid=41993 Sun, 14 Mar 2021 01:30:42 UTC Project Dragon &ndash; Primitives background system for scrolling games. <p>This blog will be way to track ideas and progress related to improving MOTU&rsquo;s background composition system and <a href="https://www.lexaloffle.com/bbs/?tid=39384">PicoDraw</a>.</p> <p>While developing <a href="https://www.lexaloffle.com/bbs/?tid=39310">Masters Of The Universe</a> I was considering the idea of having some for of scrolling backgrounds but there was no time nor token space to experiment. Right now, I am re-using the same system on Klax to draw the biggest part of the play area (the conveyor belt) but it&rsquo;s still nothing more than a static background.</p> <p>The final goal of this experiment is applying it in scrolling games, generating backgrounds with a combination of limited tiles and &ldquo;generated&rdquo; graphics brushes using pico-8&rsquo;s gfx primitives and fit a whole game with at least 3 big scrolling levels in a single cart.</p> <p>A simple beat&rsquo;em up could re-use a lot of MOTU&rsquo;s code for sprites, input and states. I had my sights set on Double dragon because e it&rsquo;s kind of short and simple, plus I played a lot on the Amiga version which had a limited move set and graphics compared to the arcade but was still fun enough.</p> <p>Last week I saw <a href="https://www.lexaloffle.com/bbs/?uid=26806"> @Pigmeat</a> &lsquo;s post about his Streets of Rage pico-8 demake and that gave me enough motivation to experiment a bit while finishing the most boring technicalities on Klax.</p> <p>First thing, I did some research on Double Dragon to see what I have to deal with and found these 2 treasure troves of information:</p> <p><a href="http://www.electriccafe.xyz/double-dragon">http://www.electriccafe.xyz/double-dragon</a><br /> <a href="https://doubledragon.kontek.net/">https://doubledragon.kontek.net/</a></p> <p>The arcade game has a resolution of 256x240 which is a good fit to be reduced by 50% to 128x120, 1 arcade screen can fit in 1 pico-8 screen with 1 row of 8 pixel left at the bottom. Characters can fit in a 2x4 composite sprite, like MOTU so I can reuse the same composition system.</p> <p><a href="https://doubledragon.kontek.net/games/dd/images/dd1arcmap.gif">Double Dragon Full Map</a></p> <p>The map can be divided in 5 stages, 3 of which are plain horizontal scrolling, 2 are mixed vertical and horizontal. The firs stage is around 5 screens wide and as a first test I&rsquo;ll try to reproduced with the hybrid system.<br /> As a first step, I design a mockup of the first screen, using standard tiles/map to get an idea of the aesthetic at this resolution and proportions of various elements.</p> <img style="" border=0 src="/media/32989/dd_000.png" alt="" /> <p>This looks fine to me but It&rsquo;s using xx tiles for this single screen! </p> <img style="" border=0 src="/media/32989/OLD TILESET dragon.png" alt="" /> <p>Studying the tile set and the object represented we can see a couple interesting things: there are some huge elements (windows, door, car, some large walls) that needs at least 4/6 tiles to be represented and, even if in this screen are repeated 2 or 3 times, will never appear in the game again., and a couple which are used once in other levels. These are good candidates to become object brushes.</p> <p>I will define a table of these object with an id and anchor position in level coordinates, and then draw them on the fly after creating them in picoDraw. </p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>brushes = {{2,-8,8,24,24},{1,16,8,24,24}, ...} --id, x pos, y pos, W, H</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>The drawing routine expects object coordinates to be within -48 to 173 but we can reposition them while scrolling using pico-8&rsquo;s camera() function.</p> <p>Let&rsquo;s test it on a wall and a window after drawing them in picoDraw</p> <img style="" border=0 src="/media/32989/19_picodraw_000.png" alt="" /> <p>in code this object is a string like this: </p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>&quot;+&amp;NNem\0&amp;ONdl□&amp;QQbj⁴!PPck⬆️!NNemく#VdXh&sup1;#VeWh&sup2;#UeVh\n!PUcb$F&quot;</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>Reusing most of the code from MOTU, we will draw this and the tile version side by side and see how it looks</p> <img style="" border=0 src="/media/32989/ddold_000.png" alt="" /> <p>I&rsquo;d say not bad but while scrolling, there&rsquo;s shimmering in the gradients because fill patterns don&rsquo;t respect local coordinates. This is a problem that I couldn&rsquo;t solve while working on MOTU and I was banging my head on until recently when I found this life -saver post on pico&rsquo;s forum.</p> <p><a href="https://www.lexaloffle.com/bbs/?tid=30518">Local fill patterns</a></p> <p>I applied <a href="https://www.lexaloffle.com/bbs/?uid=42027"> @sparr</a> &lsquo;s code and finally, this long-lasting problem is solved! The window is next</p> <p>There will be a minor reduction of 1 px details with these objects, but overall, I think they can look the part and the tile set is drastically reduced (I did the door too and the missing ground tiles are because they were just palette swap and are now generated in code).</p> <img style="" border=0 src="/media/32989/new tileset dragon.png" alt="" /> <p>Now drawing a lot of these will use a bit of CPU so we can&rsquo;t abuse it but, we can already skip drawing the one that are outside screen view for a minor optimization and, in the future, I&rsquo;ll try to implement a form of caching to improve performances. </p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre> for i=1,#brushes do b=brushes[i] if b[2]+b[4]&gt;-(cx+8) then camera(-cx-b[2],-cy-b[3]) do_draw_cmds(brush[b[1]]) --@todo: test caching to user ram/sprites end end</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <img style="" border=0 src="/media/32989/dd_0.gif" alt="" /> <p>It scrolls! (at 60fps in pico-8, gif is a bit jerky)</p> <p>Next on the list is drawign the car and revamping of picoDraw to add 2 functionalities I will need for more complex objects, sprites and text management.</p> https://www.lexaloffle.com/bbs/?tid=41225 https://www.lexaloffle.com/bbs/?tid=41225 Thu, 21 Jan 2021 09:41:16 UTC Picodraw - compressed full-screen graphic drawing tool <p> <table><tr><td> <a href="/bbs/?pid=81235#p"> <img src="/bbs/thumbs/pico8_picodraw-1.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=81235#p"> picodraw</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=81235#p"> [Click to Play]</a> </td></tr></table> </p> <h3>Mouse and Keyboard are required!</h3> <p>New release of PicoDraw, the tool I created to draw all backgrounds in my <a href="https://www.lexaloffle.com/bbs/?tid=39310">Masters of the Universe</a> cart and the huge scrolling objects in <a href="https://www.lexaloffle.com/bbs/?tid=42493">R-Type</a>, in a special compressed format.</p> <h3>What's new:</h3> <ul> <li>sprite tools</li> <li>clone groups</li> <li>H/V mirroring of subshapes</li> <li>revamped UI</li> </ul> <p>It uses a mixture of primitives/sprites/tile-maps. Maybe someone else will find it useful too or just contribute to further development.</p> <h3>I will update this post with some tutorials as soon as possible, here's a demo cart showing how to use the created data in a game. check the code and the included sprites.</h3> <p> <table><tr><td> <a href="/bbs/?pid=81235#p"> <img src="/bbs/thumbs/pico8_picodraw_test-2.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=81235#p"> picodraw_test</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=81235#p"> [Click to Play]</a> </td></tr></table> </p> <p>The reason for its creation is explained in this <a href="https://itch.io/post/1493814">devlog</a></p> <h2>Thanks to <a href="https://www.lexaloffle.com/bbs/?uid=42638"> @JadeLombax</a> for his triangle functions!</h2> <p>Code needs some further optimization and the tool is missing a couple of final features but it's quite usable. According to my plan, this is what left to do:</p> <p>-palette remapping tool<br /> -string tool<br /> -variable length commands for optimization</p> <h3>Keyboard commands:</h3> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre> Left mouse button - draw filled shape Right mouse button - draw outline shape (only for rectangles and ovals, other shapes are the same with both buttons) Keyboard shortcuts (capital letters means shift+letter, * means available in 'Select All' mode) Ctrl+f -- show prompt for sprites/map import from another cart Ctrl+a -- toggle Selct All mode (move all shapes at once) ; -- *toggle background layer ' -- *toggle foregroudn layer Ctrl+h -- *toggle unselected shapes visibility u -- *toggle UI visibility 1 -- rectangle drawing tool 2 -- oval drawing tool 3 -- line drawing tool 4 -- map drawing tool 5 -- shape select tool 6 -- triangle drawing tool 7 -- pixel drawing tool 8 -- sprite drawing tool 9 -- clone drawing tool 0 -- cycle tools Backspace -- Delete selected shape c -- toggle palette tool f -- toggle selected shape fill/outline g G -- cycle selected shape gradient fill h -- *flip current shape horizontally (in omni mode flip all canvas horizontally) i -- toggle selected shape selection filter (so tab and ` will only cycle through the same shape as the one selected) j -- show shape list for current drawing layer , . -- scroll shape list k -- clone shape (makes a copy of the selected shape over itself) l -- switch active layer Ctrl+l -- move shape to other layer (BG-&gt;FG or FG-&gt;BG, as last shape of the level) m -- enable bg horizontal mirroring (as used in Masters of the Universe, see: -- link -- ) Ctrl+n -- clear canvas (preserving undo to get back to existing drawing) r -- toggle 8x8 pixels Grid t -- selected shape mutation (cycle through shapes while preserving all parameters) *v -- flip current shape vertically (in omni mode flip all canvas vertically) Ctrl+v -- paste command strings as new drawing (sanitized as much as possible) Ctrl+y -- redo (256 levels) Ctrl+z -- undo (256 levels) ` Tab -- *cycle selected shape = - -- increase/decrease shape drawing priority up -- *move selected shape up 1 px left -- *move selected shape left 1 px down -- *move selected shape down 1 px right -- *move selected shape right 1 px w -- decrease selected shape height by 1 (pixel for primitives, unit for sprite and maps) a -- decrease selected shape width by 1 (pixel for primitives, unit for sprite and maps) s -- increase selected shape height by 1 (pixel for primitives, unit for sprite and maps) d -- increase selected shape width by 1 (pixel for primitives, unit for sprite and maps) W -- for map/sprite decrease index by 1 row A -- for map/sprite decrease index by 1 col S -- for map/sprite increase index by 1 row D -- for map/sprite increase index by 1 col [ ] -- cycle selected shape color </pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>You can draw 256 shapes on each of the 2 layers, when you reach the limit the toolbar turns purple</p> <p>After the drawing is done, I quit to the prompt and just Ctrl+V paste the drawing data, it's always copied to the clipboard after every operation and it's automatically escaped/unescape</p> https://www.lexaloffle.com/bbs/?tid=39384 https://www.lexaloffle.com/bbs/?tid=39384 Thu, 27 Aug 2020 02:26:04 UTC Masters of the Universe <p> <table><tr><td> <a href="/bbs/?pid=81037#p"> <img src="/bbs/thumbs/pico8_motu-6.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=81037#p"> motu</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=81037#p"> [Click to Play]</a> </td></tr></table> </p> <h3>The battle for Eternia is in your hands!</h3> <p>Side with He-Man and his allies or Skeletor and his minions in this new take on the classic Barbarian sword fighting game.</p> <p>Battle 8 levels against increasingly difficult foes or play against a friend. You have the power!</p> <p>This Pico-8 cart is bursting with the Power of Grayskull, featuring:</p> <ul> <li>16 Characters</li> <li>16 combat moves</li> <li>4 stages</li> <li>8 difficulty levels</li> <li>3 game modes</li> <li>A kickass soundtrack</li> </ul> <h1>Update 1.6 - 2021/08/15</h1> <p>-fixed crash in &quot;vs cpu&quot; select screen after credits cycle (Introduced in v1.5)</p> <h3>Update 1.5 - 2021/03/01</h3> <p>code optimization reclaimed over 110 tokes so:</p> <p>-fixed an AI bug that made flying overhead chop overpowered with some opponent levels, now cpu reacts more like original code</p> <h3>-Added Hordak and Fisto.</h3> <p>-There are now 9 characters for each side but you still fight 8 rounds, picked among this pool.</p> <p>-If you play as She-Ra then Hordak is the final boss and Skeletor can be a random opponent. Same if you paly with Hordak. Old characters with He-Man or Skeletor as final boss get Hordak/She-Ra as random opponents</p> <h3>-Animated intro! (I really wanted this from the start and was so sad to cut it before)</h3> <p>-Various minor gfx fixes</p> <p>-music loop fix</p> <p>current stats: T:8187 C:42085 %:15607</p> <p>Due to the major changes in this release, the previous one remains available below</p> <h3>Updated to v1.4 - 2020/10/03</h3> <p> <table><tr><td> <a href="/bbs/?pid=81037#p"> <img src="/bbs/thumbs/pico8_motu-4.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=81037#p"> motu</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=81037#p"> [Click to Play]</a> </td></tr></table> </p> <p>Thanks to <a href="https://www.lexaloffle.com/bbs/?uid=42967"> @RoundUpGaming</a> suggestions, here's what changed:</p> <ul> <li>fixed infinite roll attack so you can't chain them and stuck opponent to the edge of the stage</li> <li> <h3>added gore disabling option for kids, no decapitations and no blood.</h3> <p>This makes the game a bit more challenging because you can't have a sudden victory with the flying chop</p> </li> </ul> <p>I want to remind also that you can disable sprite outlining to play with the original style the game had during development</p> <img style="" border=0 src="/media/32989/motu_001.png" alt="" /> <p>current stats: tokens 8182 / chars 44437 / compress 99.87</p> <h3>Updated to v1.3 - 2020/09/03</h3> <ul> <li>fixed losing last fight will restart from first opponent, very sorry about this</li> <li>fixed grayskull bg glitch introduced in last update<br /> current stats: tokens 8182 / chars 44523 / compress 99.87 </li> </ul> <h3>Updated to v1.2 - 2020/08/31</h3> <ul> <li>Fixed some P2 controls still affecting CPU opponent</li> </ul> <h3>Updated to v1.1</h3> <ul> <li>Fixed a bug where if the winning blow caused a character to fall it wouldn't display the winning/losing animations</li> <li>Fixed a minor music mistake</li> <li>The flying neck chop was overpowered so now it only decapitates your opponent if his health is 75% or less</li> </ul> <h2>How to play:</h2> <p>Arcade mode is a battle against enemies of increasing difficulty to regain control of Eternia</p> <p>P1 vs CPU is a 1 round fight with customizable difficulties, characters and stage</p> <p>P1 vs P2 allows you to fight a friend with your favorite characters</p> <p>While selecting your character in vs modes, use up and down to select stage and difficulty.</p> <h3>Controls:</h3> <p>Player1: Pad 1 \ arrow keys + Z/N ([O] Button - Attack) + X/M ([X] Button - Defense) </p> <p>Player2: Pad 2 \ E S D F + W/Left Shift ([O] Button - Attack)+ Q/A ([X] Button - Defense)</p> <h3>Move list:</h3> <img style="" border=0 src="/media/32989/controls.png" alt="" /> <p>UP -Jump, RIGHT - move forward, DOWN &ndash; crouch, LEFT - move backward,</p> <p>​ATTACK - Body Chop, RIGHT+ATTACK - Neck Chop, UP + ATTACK - Overhead Chop, LEFT + ATTACK - Sword spin, DOWN + ATTACK - Leg Chop,</p> <p>​DEFENSE - Protect Body, UP + DEFENSE - Protect Head, RIGHT+ DEFENSE - Headbutt, DOWN + DEFENSE &ndash; Leg chop,</p> <p>​ATTACK + DEFENSE - Flying Neck Chop</p> <h2>Credits</h2> <p>Original artworks and idea: John Henderson</p> <p>Music: </p> <ul> <li><a href="https://www.lexaloffle.com/bbs/?uid=28327"> @dhostin</a> (Damien Hostin​ - check out his great pico-8 games: <a href="https://www.lexaloffle.com/bbs/?tid=31490">Brutal Pico Race</a> and <a href="https://www.lexaloffle.com/bbs/?tid=33979">Pico Cyberbank</a>)</li> <li>Matt Kimball</li> <li>Geoff Sejai-Smith</li> </ul> <p>Programming and gfx: Andrea Baldiraghi</p> <p>Masters of the Universe and all related characters TM by Mattel Inc.</p> <p>Barbarian TM by Palace Software Ltd. 1987 </p> <h2>Thanks to:</h2> <p>John Henderson - for granting me permission to develop this version of his original idea</p> <p>FL - for his barbarian archive and source codes: <a href="http://barbarian.1987.free.fr">http://barbarian.1987.free.fr</a></p> <p><a href="https://www.lexaloffle.com/bbs/?uid=25532"> @freds72</a> Frederic Souchu - for finding and sharing it</p> <p><a href="https://www.lexaloffle.com/bbs/?uid=42638"> @JadeLombax</a> - for his triangle drawing functions</p> <p><a href="https://www.lexaloffle.com/bbs/?uid=1"> @zep</a> - for pico-8 <a href="https://www.lexaloffle.com/pico-8.php">https://www.lexaloffle.com/pico-8.php</a></p> <p>And all pico-8 users for their support and contributions on this game<br /> and on Mortal Cards</p> <h2>Development Stats:</h2> <p>Started on may 29 with the first teaser</p> <p>35% of the time on picodraw for backgrounds</p> <p>July 9 &ndash; complete graphics foundation and picodraw</p> <p>Aug &ndash; 18 game code completed</p> <p>Aug 22 - Added Music and released online</p> <p>About three months, working around three hours per day 5 days a week when possible.</p> <p>My goal for this game was to experiment and expand upon the sprite techniques I used for mortal card, as that was a simple and quite rushed game, made for a jam, but I felt the same ideas could be used for a proper action game. After starting, I also decided to experiment a bit with this mixed shapes/map tiles backgrounds to try and give the game a &ldquo;big&rdquo; look, big animated sprites, full screen , painterly style background. I already thought about a barbarian remake since I remembered the game graphics had a lot of repetition that was suitable to be broken into components, and just a short time later, I found John&rsquo;s post about his motu idea and that gave me the final push as it made it a bit more original and interesting. While scouting the pico bbs to see if a barbarian remake was already attempted or even done, I found this&hellip; post that lead to a treasure trove of info that greatly helped for moves timing, AI and overall game flow, even if the code had to be mostly rewritten from scratch for size reason. Overall I am satisfied with the result even if I feel I made a couple of mistakes in the way I manage frames that lead to unnecessary complexity. I should have finalized the frame set once and for all before starting with the input cope and I could have had a more compact representation and probably save some more tokens and compression space.</p> <p>To fit everything into a cart I had to give up some additional &ldquo;flourishes&rdquo; I had in mind, such as an animated intro and an ending mimicking the cartoon with a character giving some moral lesson.. and pre and post fights vignettes with some text and characters portrait.</p> <p>I had to simplify a bit the bg animations to save tokens so they are not as refined as while they were just work in progress and I had to cut personalized winning poses for every character. I also planned to have a dramatic &ldquo;clashing&rdquo; sometimes when swords collided with a lightning and black and white silhouette, but , while I have the code to draw it, it&rsquo;s simply too much tokens to fit. I might code a deluxe multicart version in the future, but all these are just decorations and don&rsquo;t really add much to the game itself.</p> <p>This is my second full game and the third pico coding experiment I also wanted to try to do a port of an existing game to a system, writing my own tools etc.. as old school-style as possible, as I really love reading about classic game programming but never really did anything at the time. Glad that pico-8 gave me a similar, albeit more comfortable chance to experience something close to it. , it was overall a very fun experience, and I hope you all enjoy playing it as much as I enjoyed coding it.</p> <p>From this experience, I hope I can get some improves tricks for the next game, which I&rsquo;ll start after a needed break</p> <p>I will document and release PicoDraw soon, so it can be improved with the input from other pico users.</p> https://www.lexaloffle.com/bbs/?tid=39310 https://www.lexaloffle.com/bbs/?tid=39310 Sat, 22 Aug 2020 08:27:55 UTC Bitwise shift precedence inconsistency <p>Trying to use shifts instead of multiplication, I noticed an odd thing:</p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>work_ram = 0x4300 printh(work_ram + 2*32) -- result: 17216 printh(work_ram + 2&lt;&lt;5) -- result: 24640 + has higher precedence than shift, is this correct? printh(work_ram + (2&lt;&lt;5))-- result: 17216 printh(work_ram | 2*32) -- result: 17216 printh(work_ram | 2&lt;&lt;5) -- result: 17216 printh(work_ram | (2&lt;&lt;5))-- result: 17216</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>pico-8 version: pico-8_0.2.1b_windows</p> <p>Am I missing something and this is an intended behavior or there's an operator precedence inconsistency?</p> https://www.lexaloffle.com/bbs/?tid=39087 https://www.lexaloffle.com/bbs/?tid=39087 Mon, 03 Aug 2020 02:18:03 UTC tline sprite rotation/scaling <p>LAST VERSION as USED in R-type 1.4 after optimizing it a bit further:</p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>--97 tokens with Scaling and arbitrary size function pd_rotate(x,y,rot,mx,my,w,flip,scale) scale=scale or 1 w*=scale*4 local cs, ss = cos(rot)*.125/scale,sin(rot)*.125/scale local sx, sy = mx+cs*-w, my+ss*-w local hx = flip and -w or w local halfw = -w for py=y-w, y+w do tline(x-hx, py, x+hx, py, sx-ss*halfw, sy+cs*halfw, cs, ss) halfw+=1 end end</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <img style="" border=0 src="/media/32989/tline-rot_0.gif" alt="" /> <p>This is a general-purpose sprite rotation function using tline with support for scaling and flipping</p> <p> <table><tr><td> <a href="/bbs/?pid=78451#p"> <img src="/bbs/thumbs/pico8_tline_sprite_rotation-5.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=78451#p"> tline_sprite_rotation</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=78451#p"> [Click to Play]</a> </td></tr></table> </p> <p>It always draw a screen-oriented rectangular area, (centered at x,y) large enough (w) to contain the rotated tiles (centered at mx,my), and calculates the rotated (rot 0 to 1) tline coordinates and deltas. </p> <p>The catch is that you need to have the sprite in the map and must leave &quot;clearance-space&quot; around the map part to be rotated (matching the largest side of the sprite or you get some additional map tiles drawn as well, visible in pink in the example). But you can just prepare one rotating area and just swap tiles with mset().</p> <p>LAST EDITED for a mistake that was messing up mx and my</p> https://www.lexaloffle.com/bbs/?tid=38548 https://www.lexaloffle.com/bbs/?tid=38548 Wed, 24 Jun 2020 05:59:42 UTC Mortal Cards <p>My entry for #rndgame2020 - MORTAL CARDS (Mooooooortal Caaaaaaards!)</p> <p> <table><tr><td> <a href="/bbs/?pid=77103#p"> <img src="/bbs/thumbs/pico8_mortal_cards-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=77103#p"> mortal_cards</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=77103#p"> [Click to Play]</a> </td></tr></table> </p> <p>With more powerful characters, more secret moves, more depth, more control and the most advanced pico-digitized graphics around &ndash; this card game is worth fighting for!</p> <p>Mortal Cards challenges you with the ultimate card playing experience&hellip;<br /> On a secluded island, six elite fighters have gathered to test their deadly skills.</p> <p>Each competes with a deck of 15 cards, 5 cards each round, as they battle each other and finally, the 4-armed mutant warrior Goro.</p> <p>Featuring a digitized graphics, multi-layered backdrops and a pulse-pounding soundtrack.</p> <p>For the most realistic chop-em-up challenge yet, it&rsquo;s Mortal Cards. The competition will bow in submission.</p> <h3>HOW TO PLAY:</h3> <pre><code>- Check opponent's next card and react accordingly - Select with left and right arrow, confirm with &quot;Z&quot; Key (Circle button on pico 8) - Same moves will cancel each other - Special moves are un-blockable, some will inflict reduced damage when blocked and others will be parried completely - Discover all the moves interaction - If health reaches 0 before all card in a hand are used, you can finish with a Fatality!</code></pre> https://www.lexaloffle.com/bbs/?tid=38108 https://www.lexaloffle.com/bbs/?tid=38108 Sun, 24 May 2020 04:17:44 UTC my TweetTweetJam4 entry: p_harrier <p> <table><tr><td> <a href="/bbs/?pid=75965#p"> <img src="/bbs/thumbs/pico8_p_harrier-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=75965#p"> p_harrier</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=75965#p"> [Click to Play]</a> </td></tr></table> </p> <p>my tweettweetjam4 entry, based on the awesome froggy road by 2darray:</p> <p><a href="https://itch.io/jam/tweettweetjam/rate/331076">https://itch.io/jam/tweettweetjam/rate/331076</a></p> <p>It's a pacifist endless space-harrier demake for pico-8, you can;t shoot but must avoid ground obstacles and projectiles (from invisible enemies!)</p> <img style="" border=0 src="/media/32989/pharrier_0.gif" alt="" /> <p>I'm having problems uploading it to itch.io, so I'll post it here for now</p> <p>559 chars, here's source code:</p> <p>x=64u=127z=0q=0h=0n=16y=x<br /> d=0r,g,w=rnd,circfill,x::<em>::flip()cls(1)b=btn()<br /> k=6<em>((b\2)%2-b%2)x+=k;y=mid(n,y+6</em>((b\8)%2-(b\4)%2),u)h+=.4if(z-h&lt;1)z+=1<br /> if(x&lt;9or x&gt;=u)q+=k/4x-=k<br /> for b=z+n,z-1,-1 do<br /> srand(b)p=(b-h+2)/24m=6+r(9)rectfill(0,w+9/p,u,u,9+b%2)for i=1,r(5)do<br /> for v=0,1 do<br /> for j=v,1 do<br /> t=(i<em>m</em>4+j+r()-q)%(200-u<em>v)-w<br /> o=p</em>(1+.5<em>v)-1/(w-n</em>v)k=t/o+w<br /> l=v<em>(r(n)-13)+5t=l/o+w<br /> o=1/o<br /> v</em>=2t-=n<em>v<br /> if(o&gt;v)g(k,t,o,5+v)g(x,y-4</em>v,6-v,8+v)<br /> if(z-d&gt;2 and o&gt;8-v and abs(x-k)&lt;o+4 and abs(y-t)&lt;o+6) goto d<br /> end;end;end;end;goto </em>::d::d=z<br /> ?&quot;❎get ready&quot;,2,2<br /> if(btn(5))goto _<br /> goto d</p> https://www.lexaloffle.com/bbs/?tid=37785 https://www.lexaloffle.com/bbs/?tid=37785 Wed, 06 May 2020 14:24:51 UTC Skiddy - the slippery puzzle <p>Hello, this is the pico-port of our Windows Store game: Skiddy, the slippery puzzle.</p> <p> <table><tr><td> <a href="/bbs/?pid=74434#p"> <img src="/bbs/thumbs/pico8_bbp_skiddy-1.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=74434#p"> bbp_skiddy</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=74434#p"> [Click to Play]</a> </td></tr></table> </p> <p>Help skiddies leave a level by sliding them around all together and using the available obstacles to your advantage.<br /> 110 levels with different completion medals (explained in the tutorial).<br /> Can you get them all?</p> <p>It was a lot of fun to write this lean version for this wonderful fantasy console.<br /> I only cut some bonus levels and hard mode to fit in the .png cart compression limit.<br /> You can erase your progress from the pause menu.</p> <p>Thanks to zep for his font and to the community for the awesome learning resources</p> <p>UPDATE V 1.01</p> <ul> <li>fixed a crashing bug after tutorial</li> <li>cosmetic and music fixes</li> </ul> <p>Game design by Christian &quot;CH&quot; Costanza, original programming and PICO-8 version by Andrea &quot;TheRoboZ&quot; Baldiraghi</p> <p>Hope you'll enjoy it!</p> https://www.lexaloffle.com/bbs/?tid=37248 https://www.lexaloffle.com/bbs/?tid=37248 Fri, 03 Apr 2020 03:37:50 UTC