gamax92 [Lexaloffle Blog Feed]https://www.lexaloffle.com/bbs/?uid=11513 midi2pico by gamax92 <p> <table><tr><td> <a href="/bbs/?pid=37155#p"> <img src="/bbs/thumbs/pico37156.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=37155#p"> Midi2Pico by gamax92</a><br><br> by <a href="/bbs/?uid=11513"> gamax92</a> <br><br><br> <a href="/bbs/?pid=37155#p"> [Click to Play]</a> </td></tr></table> </p> <p>Hello there, I've been working on this piece of software called midi2pico<br /> It does what it implies, converts midis into music for pico-8</p> <p>I've recently just added proper drum support, so in celebration of that I want to release this little demo.</p> <p>Come checkout midi2pico at github: <a href="https://github.com/gamax92/midi2pico"><a href="https://github.com/gamax92/midi2pico">https://github.com/gamax92/midi2pico</a></a></p> <p>It's a very configurable midi conversion program, with the ability to mute channels, change volumes, and to shift pitches to fit into pico-8's audio range. midi2pico attempts to arrange midi data in a logical way, storing the beginning of a song at sfx 0 and the end of the song near the end of available sfx.</p> <p>MIDI Format 0, pitch bends, sfx deduplication, silence removal, and now drums are supported. A midi instrument and drum to pico-8 translation table is supported, though not very populated and most instruments use a default conversion. Look for 'Instrument to PICO-8 Map' and 'Drums to PICO-8 Map' inside midi2pico.lua</p> <p>A separate utility is also included for debugging midi files called midi2note. midi2note shows the end result after midi2opus, opus2score, and score2note conversions that midi2pico also uses.</p> <p><strong>Installation</strong> is easy, all you need is lua 5.2 and the MIDI library, which is available in luarocks as 'luarocks install midi' or download the MIDI library directly <a href="http://www.pjb.com.au/comp/lua/MIDI.lua">here</a> and place it along side midi2pico.lua</p> <p>lua 5.1 is also supported, but you will need a bit32 backport which is also available in luarocks as 'luarocks install bit32'</p> https://www.lexaloffle.com/bbs/?tid=28792 https://www.lexaloffle.com/bbs/?tid=28792 Sat, 04 Feb 2017 17:46:29 UTC Classic Screensaver <p> <table><tr><td> <a href="/bbs/?pid=34979#p"> <img src="/bbs/thumbs/pico34978.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=34979#p"> Classic Screensaver -1</a><br><br> by <a href="/bbs/?uid=11513"> gamax92</a> <br><br><br> <a href="/bbs/?pid=34979#p"> [Click to Play]</a> </td></tr></table> </p> https://www.lexaloffle.com/bbs/?tid=28445 https://www.lexaloffle.com/bbs/?tid=28445 Thu, 05 Jan 2017 02:44:30 UTC Motivation <p> <table><tr><td> <a href="/bbs/?pid=32486#p"> <img src="/bbs/thumbs/pico32485.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=32486#p"> Motivation -1</a><br><br> by <a href="/bbs/?uid=11513"> gamax92</a> <br><br><br> <a href="/bbs/?pid=32486#p"> [Click to Play]</a> </td></tr></table> <br /> <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;"><img style="" border=0 src="https://www.lexaloffle.com/bbs/files/11513/get.png" width=275 height=275 alt="" /></div></div></div></p> https://www.lexaloffle.com/bbs/?tid=28068 https://www.lexaloffle.com/bbs/?tid=28068 Tue, 15 Nov 2016 02:51:31 UTC Working ALT Glyphs for 0.1.9 (Windows) <p>I did a small patch to SDL2 that should fix using the custom glyphs in 0.1.9, so until 0.1.9b is released this should suffice</p> <p>This also fixes getting a ding/beep sound when trying to use the custom glyphs, the version of SDL2 that ships with PICO-8 is too old</p> <p>Changed: <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> <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> --- a/src/video/windows/SDL_windowsevents.c 2016-01-02 13:56:31 -0700 +++ b/src/video/windows/SDL_windowsevents.c 2016-09-29 21:02:54 -0600 @@ -619,6 +619,7 @@ break; } /* otherwise fall through to below */ + case WM_SYSCHAR: case WM_CHAR: { char text[5]; </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 change here involves adding in WM_SYSCHAR support since, normally pressing a key produces a WM_CHAR event, but Alt + Key generates WM_SYSCHAR which SDL2 doesn't handle.</div></div></div><br /> <a href="http://gamax92.pc-logix.com/CustomSDL2.zip"><a href="http://gamax92.pc-logix.com/CustomSDL2.zip">http://gamax92.pc-logix.com/CustomSDL2.zip</a></a></p> <p>No idea if this change adds in any issues but I've not been able to see any.</p> https://www.lexaloffle.com/bbs/?tid=27771 https://www.lexaloffle.com/bbs/?tid=27771 Thu, 29 Sep 2016 23:06:06 UTC Ran PICO-8 on my phone <p>However, not in Android.</p> <p>Got bored, set up Arch Linux ARM.<br /> Got angry at freedreno Segmentation faulting.<br /> Wasted several days compiling debugging versions of programs and trying to fix the crash.<br /> Fixed freedreno (libdrm needs --enable-freedreno-kgsl)<br /> Ran PICO-8:</p> <img style="" border=0 src="http://i.imgur.com/W22vmjU.png" alt="" /> <p>Keyboard is the linux 'onboard' program, set to run on top of all other windows.<br /> (Screenshot is resized, otherwise it would be absurdly huge due to my DPI)</p> <p>(Renamed title to hopefully remove some confusion)</p> https://www.lexaloffle.com/bbs/?tid=3637 https://www.lexaloffle.com/bbs/?tid=3637 Sun, 19 Jun 2016 00:46:36 UTC How to retrieve mouse coordinates (with demo) <p> <table><tr><td> <a href="/bbs/?pid=22278#p"> <img src="/bbs/thumbs/pico22286.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=22278#p"> Mouse Demo</a><br><br> by <a href="/bbs/?uid=11513"> gamax92</a> <br><br><br> <a href="/bbs/?pid=22278#p"> [Click to Play]</a> </td></tr></table> </p> <p>poke(0x5F2D, 1)</p> <p>stat(32) -&gt; X coord<br /> stat(33) -&gt; Y coord<br /> stat(34) -&gt; button bitmask (1=primary, 2=secondary, 4=middle)</p> <p>You should probably limit yourself to using the primary button, not everyone has a middle mouse button and dunno how secondary button would work on a touch device. You should also be using the mouse to enhance a program, not for it to be the only control, or else you make it so anyone lacking a mouse on whatever device they're playing PICO-8 on is unable to use your cart.</p> <p>EDIT: apparently it <strong>doesn't work that well on a touch device</strong>, atleast PocketCHIP:<br /> &quot;I tested the mouse support on PocketCHIP. It didn't work well. It seems to cannot detect mouse release (touch up).&quot; ~ oinariman</p> <p>A cheap way to do mouse press/release is to store the result of stat(34) in some variable at the end of the frame so that during the next one you can see if they differ and then respond on that.</p> https://www.lexaloffle.com/bbs/?tid=3549 https://www.lexaloffle.com/bbs/?tid=3549 Sat, 04 Jun 2016 16:17:25 UTC Mostin's Meltdown <p> <table><tr><td> <a href="/bbs/?pid=21056#p"> <img src="/bbs/thumbs/pico21625.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=21056#p"> Mostin's Meltdown</a><br><br> by <a href="/bbs/?uid=11513"> gamax92</a> <br><br><br> <a href="/bbs/?pid=21056#p"> [Click to Play]</a> </td></tr></table> </p> <p>Mostin's having a Meltdown, can you help him locate his car keys?<br /> He told me he lost them down out back near the barn gate, but that's a long long hike.<br /> Over massive mountains and deep valleys, but it's all right, because he'll give you a pay of 60 Noblus!</p> <p>Worth it, ... right? ... right? ...</p> <p>EDIT: Alright, final p8jam2 version, I think I've gotten down what I wanted to accomplish.</p> https://www.lexaloffle.com/bbs/?tid=3415 https://www.lexaloffle.com/bbs/?tid=3415 Sat, 21 May 2016 23:05:01 UTC Bad Apple v1.0.3/v1.1.0 <p> <table><tr><td> <a href="/bbs/?pid=20028#p"> <img src="/bbs/thumbs/pico20057.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=20028#p"> Bad Apple v1.1.0</a><br><br> by <a href="/bbs/?uid=11513"> gamax92</a> <br><br><br> <a href="/bbs/?pid=20028#p"> [Click to Play]</a> </td></tr></table> </p> <p> <table><tr><td> <a href="/bbs/?pid=20028#p"> <img src="/bbs/thumbs/pico20069.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=20028#p"> Bad Apple v1.0.3</a><br><br> by <a href="/bbs/?uid=11513"> gamax92</a> <br><br><br> <a href="/bbs/?pid=20028#p"> [Click to Play]</a> </td></tr></table> </p> <p>Decided to write an encoder for 128x128, 2 color, 1 pixel scrolling, and one rectangle per frame<br /> After a bit of tweaking, it outputted this. Some parts of the video are entirely unrecognizable and just look like jittery boxes sure, but it's interesting.</p> <p>Changelog:<br /> v1.0.2:<br /> Ignored the data for left and right scrolling, it's invalid.</p> <p>v1.0.3:<br /> Regenerated a new rectangles version with valid scrolling data + the extra tweaks.<br /> 8% better</p> <p>v1.1.0:<br /> Added circles<br /> Fixed left/right pixel scrolling: the encoder was outputting garbage due to a typo.</p> https://www.lexaloffle.com/bbs/?tid=3263 https://www.lexaloffle.com/bbs/?tid=3263 Wed, 27 Apr 2016 23:29:57 UTC Pico World 1.3 <p> <table><tr><td> <a href="/bbs/?pid=19296#p"> <img src="/bbs/thumbs/pico19319.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=19296#p"> Pico World 1.3</a><br><br> by <a href="/bbs/?uid=11513"> gamax92</a> <br><br><br> <a href="/bbs/?pid=19296#p"> [Click to Play]</a> </td></tr></table> </p> <p>Old versions:<br /> <table><tr><td> <a href="/bbs/?pid=19296#p"> <img src="/bbs/thumbs/pico19303.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=19296#p"> Pico World 1.2</a><br><br> by <a href="/bbs/?uid=11513"> gamax92</a> <br><br><br> <a href="/bbs/?pid=19296#p"> [Click to Play]</a> </td></tr></table> <br /> <table><tr><td> <a href="/bbs/?pid=19296#p"> <img src="/bbs/thumbs/pico19297.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=19296#p"> Pico World 1.1</a><br><br> by <a href="/bbs/?uid=11513"> gamax92</a> <br><br><br> <a href="/bbs/?pid=19296#p"> [Click to Play]</a> </td></tr></table> <br /> <table><tr><td> <a href="/bbs/?pid=19296#p"> <img src="/bbs/thumbs/pico19295.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=19296#p"> Pico World 1.0</a><br><br> by <a href="/bbs/?uid=11513"> gamax92</a> <br><br><br> <a href="/bbs/?pid=19296#p"> [Click to Play]</a> </td></tr></table> <br /> It's a spinning globe.</p> <p>Changelog:<br /> <strong>1.3:</strong><br /> Brightened things up a bit!<br /> Fixed a warping issue<br /> Increased the horizontal resolution of the map<br /> Added the vertical spherical distortion to go along with the horizontal</p> <p><strong>1.2:</strong><br /> Made the globe spherical</p> <p><strong>1.1:</strong><br /> Fixed the jittery issue</p> https://www.lexaloffle.com/bbs/?tid=3140 https://www.lexaloffle.com/bbs/?tid=3140 Fri, 18 Mar 2016 22:28:22 UTC Rotating Textured Cube <p> <table><tr><td> <a href="/bbs/?pid=17562#p"> <img src="/bbs/thumbs/pico17561.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=17562#p"> Rotating Textured Cube</a><br><br> by <a href="/bbs/?uid=11513"> gamax92</a> <br><br><br> <a href="/bbs/?pid=17562#p"> [Click to Play]</a> </td></tr></table> <br /> Got bored and wrote a textured wall renderer.<br /> If you really wanted to you could simply replace sspr with line and have a colored wall renderer.</p> https://www.lexaloffle.com/bbs/?tid=2866 https://www.lexaloffle.com/bbs/?tid=2866 Sun, 06 Dec 2015 16:27:37 UTC Bomb Squad <p> <table><tr><td> <a href="/bbs/?pid=17498#p"> <img src="/bbs/thumbs/pico17544.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=17498#p"> Bomb Squad v0.0.2</a><br><br> by <a href="/bbs/?uid=11513"> gamax92</a> <br><br><br> <a href="/bbs/?pid=17498#p"> [Click to Play]</a> </td></tr></table> <br /> Still working on it, but it's gotten to the point where all major features have been implemented and it's winnable.</p> <p>Instructions:<br /> <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;">You're solving a bomb with a certain number of digits (depending on how many you choose), by rewiring and replacing modules. How hard could that be?</p> <p>Panel overview:<br /> You'll view a grid of 4x5 panels, each corresponding to an element in the number, as you solve circuits, the panels will change to green and represent a part of the number. When you're confident in what the number is, press X and select the number. You can only do this when you've solved two circuits. Each panel must be guessed correctly to win the game, and if you guess incorrectly ... well ...</p> <p>The circuit:<br /> Pay attention to what flashes briefly, as it won't be said again until you complete a module. Go from 1st to 2nd to 3rd, cutting each side of the module, removing the old one, and soldering the new one on. When you're &quot;cutting out&quot; the modules, you replace the module you're working on with a wire (the grey rectangle), and if you're &quot;replacing&quot; them, you replace it with one of either same shape or same color. It won't be both, and you might have to try either to figure out what the circuit wants. Once you figure it out, every other module will follow the same rule.</p> <p>No you can't just cut off a side of the circuit and then resolder it, that won't work.<br /> </div></div></div></p> <p>(Havent worked on this in forever so might as well just move it to Cartridges, it's playable at the very least.)</p> <p>Changelog:<br /> <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;"><br /> v0.0.2 - 17544:<br /> Fixed bug in number preview causing the wrong sprite to render</p> <p>v0.0.1 - 17497:<br /> First released version<br /> </div></div></div></p> https://www.lexaloffle.com/bbs/?tid=2862 https://www.lexaloffle.com/bbs/?tid=2862 Fri, 04 Dec 2015 21:53:44 UTC Air Raiders <p> <table><tr><td> <a href="/bbs/?pid=16866#p"> <img src="/bbs/thumbs/pico21201.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=16866#p"> Air Raiders 1.0.2b</a><br><br> by <a href="/bbs/?uid=11513"> gamax92</a> <br><br><br> <a href="/bbs/?pid=16866#p"> [Click to Play]</a> </td></tr></table> <br /> <strong>AIR RAIDERS</strong><br /> The object of the game is to blast enemy aircraft out of the sky... and dodge ground missiles!!! Zero in on enemy planes! Bank left, bank right, dive, climb out! Watch your elevation! Keep track of the fuel! Run out of ammo...land and refuel...take off again!</p> <p><strong>For Your PICO-8 Video Game System</strong><br /> You should download and play it though, the web player seems to break some minor things.</p> <p><strong>Changelog:</strong><br /> <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;"><br /> <strong>Update 1.0.2b:</strong><br /> Fixed bug with reset causing the cartridge saving icon to appear.<br /> b: Restore btn on reset</p> <p><strong>Update 1.0.1a:</strong><br /> Enemy won't fly so low to the ground<br /> Changed rain effect to lines<br /> Smoothed out rotation<br /> Fixed rain effect when rotating and takeoff<br /> Reduced ground strike effect<br /> Added safe zone<br /> Markers are brightened at night</p> <p><strong>Update 1.0.0:</strong><br /> The original version.<br /> </div></div></div></p> <p><strong>Older Versions:</strong><br /> <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;"><br /> <strong>AIR RAIDERS v1.0.1a</strong><br /> <a href="https://www.lexaloffle.com/bbs/cposts/1/16888.p8.png"><img style="" border=0 src="https://www.lexaloffle.com/bbs/cposts/1/16888.p8.png" alt="" /></a></p> <p><strong>AIR RAIDERS v1.0.0</strong><br /> <a href="https://www.lexaloffle.com/bbs/cposts/1/16865.p8.png"><img style="" border=0 src="https://www.lexaloffle.com/bbs/cposts/1/16865.p8.png" alt="" /></a></div></div></div></p> https://www.lexaloffle.com/bbs/?tid=2801 https://www.lexaloffle.com/bbs/?tid=2801 Sat, 21 Nov 2015 23:37:28 UTC