StinkerB06 [Lexaloffle Blog Feed]https://www.lexaloffle.com/bbs/?uid=25119 Can we be able to export each music channel individually? <p>Hey <a href="https://www.lexaloffle.com/bbs/?uid=1"> @zep</a>!</p> <p>Can you please add a feature to PICO-8's WAV export function, so that each of the four channels have one WAV file each? I've been wanting to do oscilloscope views of PICO-8 chiptune music, but the &quot;oscilloscope view&quot; format requires one WAV file for each channel (so that each channel is seen as a separate waveform).</p> <p>I've already mentioned you on Twitter about this, but you never replied:<br /> <a href="https://twitter.com/StinkerB06/status/1182348172548399104">https://twitter.com/StinkerB06/status/1182348172548399104</a><br /> <a href="https://twitter.com/StinkerB06/status/1174923908128002048">https://twitter.com/StinkerB06/status/1174923908128002048</a></p> https://www.lexaloffle.com/bbs/?tid=35648 https://www.lexaloffle.com/bbs/?tid=35648 Sun, 13 Oct 2019 01:56:18 UTC LS() and BBS STAT() tester <p> <table><tr><td> <a href="/bbs/?pid=65002#p"> <img src="/bbs/thumbs/pico8_ls_and_bbs_stats-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=65002#p"> LS() and BBS STAT() tester</a><br><br> by <a href="/bbs/?uid=25119"> StinkerB06</a> <br><br><br> <a href="/bbs/?pid=65002#p"> [Click to Play]</a> </td></tr></table> </p> <p>This thread is intended for the sake of researching particular (and most likely undocumented) parts of PICO-8's <a href="https://pico-8.fandom.com/wiki/Stat">STAT()</a>, that <a href="https://www.lexaloffle.com/bbs/?uid=1"> @zep</a> didn't reference in the PICO-8 manual. The cartridge above also shows a new way for PICO-8 game devs to read the root-folder cartridge list with LS() (you must be on the desktop PICO-8 and your root directory must have at least 1 cartridge).</p> <p>If you, Zep, know anything about the STAT() numbers not seen in the manual, can you tell me what they are for? People have figured out these for the BBS 101~104:</p> <ul> <li>STAT(101) -&gt; BBS ID (nil for local carts)</li> <li>STAT(102) -&gt; Site name (blank string in exported HTML's, nil in desktop PICO-8 builds and exported binaries)<br /> People have NOT figured out:</li> <li>STAT(103) -&gt; Hash string of unknown encryption method (was 0 in 0.1.11g)</li> <li>STAT(104) -&gt; False (when will this evaluate to true or some other value?)</li> </ul> https://www.lexaloffle.com/bbs/?tid=34445 https://www.lexaloffle.com/bbs/?tid=34445 Wed, 05 Jun 2019 10:19:40 UTC SSPR() Tester <p> <table><tr><td> <a href="/bbs/?pid=64596#p"> <img src="/bbs/thumbs/pico8_sspr_tester-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=64596#p"> SSPR() Tester</a><br><br> by <a href="/bbs/?uid=25119"> StinkerB06</a> <br><br><br> <a href="/bbs/?pid=64596#p"> [Click to Play]</a> </td></tr></table> <br /> This cartridge is intended for PICO-8 newcomers to learn how <a href="https://pico-8.fandom.com/wiki/Sspr">SSPR()</a> works.</p> <p>Controls:<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>Up and down arrows</strong>: Selects the parameter to change.<br /> <strong>Left and right arrows</strong>: Modifies number-parameter values (the two sets of X, Y, W, and H values).<br /> <strong>Z/C/N (or the right face-button on mobile touchscreens)</strong>: Changes number-parameter values by 8 instead of 1. This also modifies the flip settings.<br /> </div></div></div></p> <p>Parameters:<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>Src. X</strong>: The X-coordinate of the spritesheet to draw from, relative to the left. Pixels outside of the 0..127 range will be treated as black.<br /> <strong>Src. Y</strong>: The Y-coordinate of the spritesheet to draw from, relative to the top. Pixels outside of the 0..127 range will be treated as black.<br /> <strong>Src. W</strong>: The width of the sprite's image, in pixels. Negative values are treated as 0, of which results in no sprite drawn. The image is stretched to the 'Draw W' width.<br /> <strong>Src. H</strong>: The height of the sprite's image, in pixels. Negative values are treated as 0, of which results in no sprite drawn. The image is stretched to the 'Draw H' height.<br /> <strong>Draw X</strong>: The X-coordinate of the screen to draw to, relative to the left. Pixels outside of the 0..127 range are invisible, so that the sprite can be pushed into the left or right edge of the screen.<br /> <strong>Draw Y</strong>: The Y-coordinate of the screen to draw to, relative to the top. Pixels outside of the 0..127 range are invisible, so that the sprite can be pushed into the top or bottom edge of the screen.<br /> <strong>Draw W</strong>: The width of the sprite itself, in pixels. Negative values allow a horizontally-flipped image, with the 'Draw X' coordinate representing the right side of the sprite instead of the left.<br /> <strong>Draw H</strong>: The height of the sprite itself, in pixels. Negative values allow a vertically-flipped image, with the 'Draw Y' coordinate representing the bottom of the sprite instead of the top.<br /> <strong>H-Flip</strong>: If TRUE, the sprite's image is flipped horizontally. Combining this with a negative 'Draw W' value results in a cancel-out, drawing the image without flipping it.<br /> <strong>V-Flip</strong>: If TRUE, the sprite's image is flipped vertically. Combining this with a negative 'Draw H' value results in a cancel-out, drawing the image without flipping it.<br /> </div></div></div></p> <p>The spritesheet used here is the one from Zep's <a href="https://www.lexaloffle.com/bbs/?tid=1810">Jelpi Test</a>!</p> https://www.lexaloffle.com/bbs/?tid=34274 https://www.lexaloffle.com/bbs/?tid=34274 Mon, 20 May 2019 00:16:50 UTC Video Mode Tester <p> <table><tr><td> <a href="/bbs/?pid=64141#p"> <img src="/bbs/thumbs/pico8_video_mode_tester-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=64141#p"> Video Mode Tester</a><br><br> by <a href="/bbs/?uid=25119"> StinkerB06</a> <br><br><br> <a href="/bbs/?pid=64141#p"> [Click to Play]</a> </td></tr></table> <br /> This cartridge is intended for PICO-8 newcomers to learn how each mode works.</p> <p>Use the arrows to change the video mode. Valid modes are 0~7.</p> <p>It writes to the address 0x5F2C in <a href="https://pico-8.fandom.com/wiki/Memory#Draw_state">Draw State RAM</a> to set the video mode (display resolution or reflection).</p> <p>The sprites used here are <a href="https://www.lexaloffle.com/bbs/?tid=1810">Jelpi</a> sprites!</p> https://www.lexaloffle.com/bbs/?tid=34121 https://www.lexaloffle.com/bbs/?tid=34121 Thu, 02 May 2019 06:58:07 UTC Communicating between 2 or more PICO-8 windows? <p>How do I communicate between 2 or more PICO-8 instances on the desktop? Maybe you could make virtual GPIO pins that communicate with other PICO-8 instances on the host OS? What do you think, <a href="https://www.lexaloffle.com/bbs/?uid=1"> @zep</a>?</p> https://www.lexaloffle.com/bbs/?tid=33802 https://www.lexaloffle.com/bbs/?tid=33802 Fri, 05 Apr 2019 12:50:54 UTC PicoVisualizer <p> <table><tr><td> <a href="/bbs/?pid=63059#p"> <img src="/bbs/thumbs/pico8_picovisualizer-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=63059#p"> PicoVisualizer</a><br><br> by <a href="/bbs/?uid=25119"> StinkerB06</a> <br><br><br> <a href="/bbs/?pid=63059#p"> [Click to Play]</a> </td></tr></table> </p> <p><strong>WARNING: Depending on what music you listen to with this, the bars could produce flickering effects on your screen, resulting in eye-strain. I noticed it with <a href="https://www.lexaloffle.com/bbs/?pid=17739">this music</a>!</strong></p> <p>This cartridge's source code is a modded variant of &quot;Music Visualizer Bars&quot; by iaoth:<br /> <a href="https://www.lexaloffle.com/bbs/?pid=51460">https://www.lexaloffle.com/bbs/?pid=51460</a><br /> Thanks to him for his visualizer code base!</p> <p>What I've changed (first version):<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;"></p> <ul> <li>Corrected the octave numbers to match the PICO-8 SFX editor.</li> <li>Fixed the waveform colors of the bars being wrong. The PICO-8 palette index it was referring to was 1 less than what the SFX editor references to.</li> <li>Changed the beige text color to white. Prevents blending with bars with the PHASER waveform (SFX editor value 7).</li> <li>Implemented displays for custom instruments (SFX 0~7) and effects (slide/vibrato/drop/fade/arp).</li> <li>The colors of the bars and displays now change accordingly if the instrument is either a fixed waveform or a custom instrument.</li> <li>Implemented the DROP and FADE IN effects (SFX editor values 3 and 4, respectively) to the volume bars' handling code. The code I added may not be 100% accurate, but if you have any changes to make to it, please let me know in the comments!</li> <li>Added a function to disable all loop/stop control flags in the music RAM, found at 0x3100~0x31FF in the <a href="https://pico-8.fandom.com/wiki/Memory#Memory_map">PICO-8 memory map</a>. This can be disabled by commenting out lines 9~11 in code tab 0.<br /> </div></div></div></li> </ul> <p>Update March 27th, 2019:<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;"></p> <ul> <li>Changed the DROP and FADEOUT effects' speed in their respective handler code. It should be more accurate now.</li> <li>The position of the effect displays' texts are now pseudo-centered.</li> <li>The dark-gray color of the displays for custom instruments is now changed to brown, if it blends with the black background of the visualization.<br /> </div></div></div></li> </ul> <p>Update April 3rd, 2019:<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;"></p> <ul> <li>Fixed custom instrument displays from showing &quot;SFX -1&quot;.</li> <li>When the note volume is zero, the wave is set to -8 to make the bar black.</li> <li>Custom instrument bars are now changed to a darker gray. The note/effect displays are changed to white, to be like the fixed waveforms.</li> <li>Effect names now make use of PICO-8's own text string emojis.</li> <li>If PICO-8 plays note indexes beyond 31, they're now treated as being a zero-volume note. Fixes the bars playing inaudible pattern data, especially noted with <a href="https://www.lexaloffle.com/bbs/?tid=28414">Marballs 2</a> while I was making this update.</li> <li>Added displays at the top for showing which patterns and notes the channels are playing.</li> <li>Added another display for identifying what frames repeat or stop the track, by reading the music control flags of each of those 64 frames on the cartridge.</li> <li>Added a simple main menu to select a track the user wishes to play, rather than playing all tracks in one go.<br /> </div></div></div></li> </ul> <p>Update April 5th, 2019:<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;"></p> <ul> <li>Made the loop and stop shapes brighter, as a result of preventing bars for displaying on the top 16 pixel rows.</li> <li>Frames with all three flags disabled will now be displayed with a dark-gray dot/pixel.</li> <li>Arp displays now show the exact note-cycle frequency division for the ~120Hz SFX clock.</li> <li>Tracks in the TRACK.DATA table now have support for loading from an external cartridge. If this is unspecified, track data from the visualizer cartridge itself will be used instead.</li> <li>Minor changes to the menu, including fixing a mistake where I didn't mention the left and right arrows would also select the track, which was already a thing in the previous update.</li> <li>Added the ability to stop a track during playback. When stopping, a 333ms fade-out is applied. However, you can still pause the track by pausing the cartridge.</li> <li>Removed the 3-line time code in the DRAW_VISUALIZER() routine that existed there and did nothing at all.<br /> </div></div></div></li> </ul> <p>Update 2 (April 5th, 2019):<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;"></p> <ul> <li>Fixed bars 2~4 from drawing in front of the top displays.</li> <li>Fixed note <em>nn</em> indexes beyond 31 from showing on the &quot;R<em>nn</em>&quot; displays.</li> <li>SFX speed is now more accurate to the PICO-8 SFX engine.</li> <li>Bars will no longer display beyond the limit (MUSIC_EVENTS.VOLUME[I]&gt;7), improving max-volume FADE IN effects.</li> <li>More minor changes to the interfaces.<br /> </div></div></div></li> </ul> <p>Update April 14th, 2019:<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;"></p> <ul> <li>Added support for the undocumented &quot;half-clock&quot; audio flags in the RAM. Even when they're disabled (which they always were in all previous versions), the drop/fade speed is now fixed in regards to that <a href="https://pico-8.fandom.com/wiki/Time">TIME()</a> change in PICO-8 0.1.12.</li> <li>The 333ms fade-out is now more like an actual third-of-a-second fade.</li> <li>Added a screen-saver! I don't know if it's any good, but please tell me your thoughts about it in the comments!</li> <li>Removed more unnecessary parts of the code, including a blank MUSIC_EVENTS.LIST table that wasn't used.<br /> </div></div></div></li> </ul> <p>Update April 15th, 2019:<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;"></p> <ul> <li>Fixed the FADE-IN movement from heaping over the top of the bar height position that represents the current note volume.</li> <li>The screen-saver color-changer now refers to the lowest-indexed active channel, instead of only the first channel.</li> <li>Changed the PEEK4() into the recently-added PEEK2(). Notes are 16 bits long, so NOTEDAT doesn't need to be 32-bit.</li> <li>When a track stops, it now automatically goes back to the main menu.</li> <li>Changed a few text label strings.</li> <li>Removed one more unnecessary code line that I forgot to remove.<br /> </div></div></div></li> </ul> <p>Update April 16th, 2019:<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;"></p> <ul> <li>Text labels and code editor comments now feature lowercase letters. Since PICO-8 0.1.12 doesn't convert to lowercase letters when 0.1.11g did, this change was made.</li> <li>Fix to prevent the first frame of track playback from being drawn. This first frame had info from the previously-played track that shouldn't be drawn.</li> <li>Minor change to the code that gets rid of one FOR loop.<br /> </div></div></div></li> </ul> <p>Update June 3rd, 2019:<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;"></p> <ul> <li>Added the ability to load up any file (but only on the desktop versions of PICO-8). Just pause the cartridge and select &quot;TOGGLE FILE MODE&quot;. Pick a file and the starting music frame (00~63), and play!</li> <li>Changed <a href="https://pico-8.fandom.com/wiki/Print">PRINT()</a> calls into the undocumented '?' syntax. Reduces token count if applied to the previous update of this visualizer.</li> <li>More minor tweaks. Again.</li> <li>Added an easter egg somewhere. Can you find it?<br /> </div></div></div></li> </ul> <p>Update June 17th, 2019:<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;"></p> <ul> <li>Moved the flags display routine into a separate function, so that I could re-use it in the menu screen.</li> <li>Made each of the 64 frame bars and each of the pattern/row displays change their gray shade. If dark gray, it's disabled (doesn't play any SFX/pattern during the current frame). Otherwise, if light gray, it's enabled.</li> <li>Changed how the loops and red stop-flags look. This actually makes it better/possible to see some odd looping configurations. For example, &quot;Morning Shower&quot; starts on frame 00 and doesn't contain a loop-start marker. Thus, PICO-8 doesn't know what frame to jump to after playing the last frame, so it goes back to 00.<br /> </div></div></div></li> </ul> <p>Update June 30th, 2019:<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;"></p> <ul> <li>Renamed this visualizer! This is the official thread, so why do I have to have the album's name?</li> <li>Changed the screensaver color-changing code to use STAT(25) instead of STAT(24). Fixes the color not changing on 1-frame loops.</li> <li>Added a new &quot;Sound Attributes&quot; menu that allows you to change undocumented audio features, such as the clock halvers, reverb filters, the distortion feature, and the lowpass filters while music is playing. Credit to <a href="https://www.lexaloffle.com/bbs/?uid=12880"> @Synth_dfr</a> for the icons!<br /> <strong>NOTE: Due to some constraints with the PICO-8 audio engine, the half-clock feature causes oddness with STAT(24) if not all four channels have it enabled. Channels with the same SPD value and different half-clock settings eventually get out of sync, not good ;-(</strong><br /> </div></div></div></li> </ul> <p>Update July 5th, 2019:<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;"></p> <ul> <li>Set the pink (0x40) <a href="https://pico-8.fandom.com/wiki/Memory#Sprite_flags">flag</a> of sprites 252~255. Fixes a display's error when song playback ended and the &quot;Sound Attributes&quot; window was open.</li> <li>Rearranged sprites in the sprite editor.<br /> </div></div></div></li> </ul> <p>To Do:<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;"></p> <ul> <li>Allow playlists to be configured for native exports (Windows, Linux x64, MacOSX, Raspberry Pi) from PICO-8. This could probably allow custom playlists of other cartridges to be created without having to buy the fantasy console. When there's a way to get this fully working, there's a will to release binaries to the public. For now until then, if you want to see other songs with my visualizer, post some suggestions in the comments, and I'll reply with a cartridge!</li> <li>Fix 'CD [DIRNAME]' commands in the PICO-8 console from not working properly. When the cartridge is run, it gets all cartridge filenames from the directory, but trying to play them will attempt to <a href="https://pico-8.fandom.com/wiki/Reload">RELOAD()</a> from the root directory instead. A workaround (as of the time of writing) is to put this cartridge in the folder directory of where you want to load your music from. Open the PICO-8 <a href="https://pico-8.fandom.com/wiki/Configuration">config.txt</a>, and change <strong><em>root_path</em></strong> to the directory of where your music is. After that, run PICO-8, then load up this cartridge and run it.<br /> <strong>EDIT: It works if you don't change the root directory. Just copy and paste this cart into every folder PICO-8 can access.</strong></li> <li>Add a JavaScript interface for the virtual <a href="https://pico-8.fandom.com/wiki/GPIO">GPIO</a> pins. Users can upload cartridge files and it will be uploaded to the PICO-8 browser-player instance running the visualizer.<br /> </div></div></div></li> </ul> <p>To test all of my new changes to iaoth's visualizer, I thought I'd use something that really got my attention a few months back. That is &quot;PICO-8 Tunes Vol. 2&quot;, released by <a href="https://www.lexaloffle.com/bbs/?uid=11292"> @Gruber</a>, which is a cartridge featuring 10 amazing tunes! You can find it here:<br /> <a href="https://www.lexaloffle.com/bbs/?pid=62911">https://www.lexaloffle.com/bbs/?pid=62911</a></p> <p>Also, if you keep seeing &quot;Autumn Wind&quot; screenshots through updates and changes, it's my favorite chilly PICO-8 music from Gruber.</p> https://www.lexaloffle.com/bbs/?tid=33732 https://www.lexaloffle.com/bbs/?tid=33732 Wed, 27 Mar 2019 09:09:42 UTC Music Memory Corrupter <p> <table><tr><td> <a href="/bbs/?pid=62988#p"> <img src="/bbs/thumbs/pico8_stinkerb06rmg-1.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=62988#p"> Music Memory Corrupter</a><br><br> by <a href="/bbs/?uid=25119"> StinkerB06</a> <br><br><br> <a href="/bbs/?pid=62988#p"> [Click to Play]</a> </td></tr></table> </p> <p>The sound and music editor data that's generated is 100% randomized! Music starts at a random position from 0 to 63.</p> <p>Update May 10th, 2019:</p> <ul> <li>Improved corruption speed by using <a href="https://pico-8.fandom.com/wiki/Poke4">POKE4()</a>. This pokes four memory locations simultaneously without having to use four sequential <a href="https://pico-8.fandom.com/wiki/Poke">POKE()</a>s.</li> <li>Renamed the cartridge to prevent confusion.</li> </ul> https://www.lexaloffle.com/bbs/?tid=33701 https://www.lexaloffle.com/bbs/?tid=33701 Sun, 24 Mar 2019 05:29:08 UTC This is the minimum requirement for releasing a fantasy console. <p>The minimum requirement for Windows is to make it support 32-bit versions, unless 4+ GB of RAM or other x64-only features may be needed.</p> <p>You've read me correctly, that IS the minimum requirement.</p> <p>I already know that I have a x64-capable system, enjoying a bit of Riko4 on it, and I actually received a gifted copy of PICO-8 last year.</p> https://www.lexaloffle.com/bbs/?tid=32853 https://www.lexaloffle.com/bbs/?tid=32853 Wed, 09 Jan 2019 07:15:57 UTC StinkerBeats <p> <table><tr><td> <a href="/bbs/?pid=55388#p"> <img src="/bbs/thumbs/pico55422.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=55388#p"> StinkerBeats v1.1</a><br><br> by <a href="/bbs/?uid=25119"> StinkerB06</a> <br><br><br> <a href="/bbs/?pid=55388#p"> [Click to Play]</a> </td></tr></table> </p> <p>Update August 20th, 2018: Slight change to show 15 color rectangles instead of only 7. This is not a song-related change.</p> <p>Credit to Zep for the code base.</p> https://www.lexaloffle.com/bbs/?tid=31706 https://www.lexaloffle.com/bbs/?tid=31706 Sun, 19 Aug 2018 13:07:28 UTC