EBArtSoft [Lexaloffle Blog Feed]https://www.lexaloffle.com/bbs/?uid=52494 PICO-8 Home Server <h3>Hi,</h3> <p>Let me introduce...</p> <h2>PICO-8 Home Server</h2> <p>It's not a game, it's not a cart, it's a tool.</p> <p>This is a private dedicated browsable library server for showcasing your own games or broadcasting your fav all over your house, share with your family and introduce pico to your friends. It's open source and fully configurable.</p> <p>The idea come from me having trouble for sharing my cart (tbh, I'm not good at making PICO-8 game yet) with my daughter who don't know &quot;thngs&quot; about dev but know how to watch videos on youtube. So I made a simple web page with real-time-auto-packaging cart directly accessible from her favorite web browser. Since then the project has evolved...</p> <h2>Features</h2> <h3>Easy handling web interface for listing shared carts</h3> <p>Everyone knows how to scroll and click a web page right ?<br /> Use your PC or play with your mobile devices with wifi</p> <img style="margin-bottom:16px" border=0 src="/media/52494/screen 1.png" alt="" /> <h3>Search, filter, sort, rate and browse paginated list</h3> <p>Or just hit &quot;shuffle&quot; and discover wonders from the community.</p> <img style="margin-bottom:16px" border=0 src="/media/52494/screen 2.png" alt="" /> <h3>Console monitored lan server</h3> <p>You control everything no external internet call or other dependency.<br /> /!\ Please, for your own safety, don't open it to the web or put exe in production server /!\<br /> YOU CAN but you won't do that ^^</p> <img style="margin-bottom:16px" border=0 src="/media/52494/screen 3.png" alt="" /> <h3>Open source and stupidly small code for educational purpose and P.O.C</h3> <p>You only need <a href="https://visualstudio.microsoft.com/vs/community/">&quot;Visual Studio Community Edition&quot;</a> or any .Net IDE.<br /> The whole compiled app and assets do not exceed 1.6MB, no installation required.</p> <img style="margin-bottom:16px" border=0 src="/media/52494/screen 4.png" alt="" /> <h3>Use and showcase any cart you want</h3> <p>It's completely automatic, just make a zip of your carts and put it in the app folder.<br /> You can change the whole thing by editing css or embedded templates.</p> <img style="margin-bottom:16px" border=0 src="/media/52494/screen 5.png" alt="" /> <h3>And of course... play games!</h3> <p>That&rsquo;s the goal, isn&rsquo;t it?</p> <img style="margin-bottom:16px" border=0 src="/media/52494/screen 6.png" alt="" /> <h3>[Edit 2] Full Featured Editor Included [Edit 2]</h3> <p>It includes <a href="https://www.lexaloffle.com/bbs/?tid=47278">PICO-8 Education Edition for Web v0.2.6b</a>.<br /> Edit listed carts or create new ones.</p> <img style="margin-bottom:16px" border=0 src="/media/52494/19_screen 7.png" alt="" /> <h3>[Edit 3] NOW with Cartridge Assets Viewer! [Edit 3]</h3> <p>View spritesheet and map directly in web listing or click game page to view/download sprites, map, label and lua code</p> <img style="margin-bottom:16px" border=0 src="/media/52494/screen 8.png" alt="" /> <img style="margin-bottom:16px" border=0 src="/media/52494/screen 9.png" alt="" /> <img style="margin-bottom:16px" border=0 src="/media/52494/screen 10.png" alt="" /> <h3>[Edit 3] Have fun with JSON api [Edit 3]</h3> <p>You can use the (small) JSON api to debug your cart, make javascript cart utility or just for fun/educational purpose. You can also isolate the c# cart classe to make your own PICO-8 tools.</p> <img style="margin-bottom:16px" border=0 src="/media/52494/screen 11.png" alt="" /> <p>It's not a final product, you know, don't expect too much (there are bugs, lots of them). It's just a quick (and dirty) project to meet a specific need. I am happy to share that with you.</p> <h2>[Edit 2] Setup Guide [Edit 2]</h2> <h3>Requirement</h3> <ul> <li>A PC with keyboard and mouse with &quot;Windows&quot; OS (may work with another OS but need rebuild).</li> <li>A modern web browser.</li> </ul> <h3>Installation</h3> <ul> <li>Download the pre-build binaries (and source code) from my &gt;&gt; <a href="https://ebartsoft.com/dl/Pico8Gallery-BBS-Version.zip">website</a> &lt;&lt;.<br /> <strong>/!\ NEVER trust the internet and check for virus ! /!\</strong>.<br /> MD5 Hash of the current version is : E9D77FB9CC81B4E41C7194DF2F73AAD1.</li> <li>Unzip the content of the downloaded file then browse 'Pico8Gallery\bin'.</li> <li><em>Optional</em> : Put your zipped cart archive on the same folder or just leave it (name it 'global.zip').</li> <li>Double click on 'Pico8Gallery.exe' wait for startup then press the space bar.</li> <li><em>Optional</em> : you may need to configure your firewall and/or autorize http:+8080 access.</li> </ul> <h3>Please don't make profit on it</h3> <p>Share, and <a href="https://www.lexaloffle.com/pico-8.php#getpico8">buy PICO-8</a> if you don't already have it. It's worth it.</p> <p>Also I would like to take this opportunity to express my thanks to all those who create and participate in this wonderful content (dev, gfx, sfx and all creators and fair players in general)</p> <p>Download the app and source code <a href="https://ebartsoft.com/pico8">here</a></p> <p>Download sample cart bundle from archive.org <a href="https://archive.org/details/p8carts">here</a> or <a href="https://archive.org/details/pico8">here</a></p> <p>. - . - . - . - .</p> <p><strong> Thank you </strong></p> <p>. - . - . - . - .</p> https://www.lexaloffle.com/bbs/?tid=140464 https://www.lexaloffle.com/bbs/?tid=140464 Fri, 01 Mar 2024 15:21:53 UTC Dedicated SPLORE server <h3>Hi,</h3> <p>I played around with Pico-8 and wanted a fancy way to build and run<br /> custom cart when the idea came to me like the urge to go &pi; :</p> <h2>I NEEDED A DEDICATED SPLORE SERVER !</h2> <p>One hour later it was alive</p> <img style="margin-bottom:16px" border=0 src="/media/52494/customsplore.png" alt="" /> <p>Showing custom list and loading whatever I want directly from SPLORE.<br /> I was surprised at how simple it is to make a proxy.</p> <p>First I edited &quot;drivers\etc\hosts&quot; but it lacked flexibility...</p> <p>Then I came up with the idea of ​​replacing wininet.dll by a custom script.<br /> That way you just put (or remove) the file near pico.exe and start it.<br /> No user hack, no patch, no third party.</p> <p>You can make your own proxy with the MASM32 code below<br /> (I think I can share it with you because it does not disclose any flaws or infringe any copyright)<br /> (The code of the server may be more sensitive to disclose)</p> <p>Anyway, I swear that no &quot;pico8.exe&quot; were harmed during the making of this progam.</p> <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> <div> <div class=scrollable_with_touch style="width:100%; 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>.386 .model flat, stdcall option casemap :none option Prologue:none option Epilogue:none include windows.inc include user32.inc include kernel32.inc includelib user32.lib includelib kernel32.lib .data _Wininet dd 0 _InternetOpenA dd 0 _InternetOpenUrlA dd 0 _InternetReadFile dd 0 _sInternetOpenA db &quot;InternetOpenA&quot; , 0 _sInternetOpenUrlA db &quot;InternetOpenUrlA&quot; , 0 _sInternetReadFile db &quot;InternetReadFile&quot; , 0 _URL db &quot;http://127.0.0.1:80&quot; , 0 ;&lt;=== YOUR SERVER URL HERE _SysDLL db &quot;c:\windows\system32\WININET.DLL&quot;, 0 ;&lt;=== YOUR PATH HERE temp db 260 DUP(0) ; GIVE IT SOME SPACE !! .code ; MAIN DLL FUNCTION _DllMainCRTStartup proc instance:DWORD,reason:DWORD,unused:DWORD ; ONLY ON PROCESS ATTACH mov eax, [esp+8] cmp eax, 1 jne @next ; GET REAL &quot;WININET.DLL&quot; push offset _SysDLL call LoadLibraryA mov _Wininet, eax ; GET REAL &quot;InternetOpen&quot; push offset _sInternetOpenA push _Wininet call GetProcAddress mov _InternetOpenA, eax ; GET REAL &quot;InternetOpenUrl&quot; push offset _sInternetOpenUrlA push _Wininet call GetProcAddress mov _InternetOpenUrlA, eax ; GET REAL &quot;InternetReadFile&quot; push offset _sInternetReadFile push _Wininet call GetProcAddress mov _InternetReadFile, eax @next: mov eax, 1 ret 12 _DllMainCRTStartup endp ; FAKE &quot;InternetOpen&quot; InternetOpenA proc jmp [_InternetOpenA] InternetOpenA endp ; FAKE &quot;InternetReadFile&quot; InternetReadFile proc jmp [_InternetReadFile] InternetReadFile endp ; FAKE &quot;InternetOpenUrl&quot; InternetOpenUrlA proc ; LAZY STRING REPLACE ^^ mov eax, [esp+8] add eax, 25 push eax push offset _URL call lstrcat mov [esp+8], eax ; CALL REAL &quot;InternetOpenUrl&quot; jmp [_InternetOpenUrlA] InternetOpenUrlA endp end ; DEF FILE LOOK LIKE =&gt; ;LIBRARY WININET ;EXPORTS ; ;InternetOpenA @1 ;InternetOpenUrlA @2 ;InternetReadFile @3 </pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p></div></div></div></p> <p>Unfortunately while the dedicated server works perfectly, the SPLORE internal cache ttl make it useless for its original purpose (eg:dynamic build and run).</p> <p>If you have any new idea to use such a product let me know.</p> <p>.</p> https://www.lexaloffle.com/bbs/?tid=42213 https://www.lexaloffle.com/bbs/?tid=42213 Sun, 28 Mar 2021 17:08:16 UTC Some Cartridge Statistics <h3>Hi,</h3> <p>I had fun making a compilation of statistics on my cartridge library<br /> (line of code, number of sprites, color etc...).</p> <img style="margin-bottom:16px" border=0 src="/media/52494/stats.png" alt="" /> <p>And I surprised myself when I learned that :</p> <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> <div> <div class=scrollable_with_touch style="width:100%; 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> **1.15%** of all the cartridges are **Celeste fork**! (^w^ ) </pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p></div></div></div></p> <p>Other fun facts such as</p> <p><em>The most used colors are</em> :</p> <ul> <li><strong>N&deg;0 with 72.06%</strong> [#000000] of all sprites (obviously empty pixels fall in that slot)</li> <li>N&deg;7 with 3.52% [#E8F1FF]</li> <li>N&deg;1 with 2.95% [#532B1D]</li> </ul> <p><em>The most used notes are</em> :</p> <ul> <li><strong>N&deg;12 with 5.10%</strong> [C3] &quot;Do&quot; rules !</li> <li>N&deg;24 with 4.28% [C4]</li> <li>N&deg;31 with 3.51% [C5]</li> </ul> <p>You can see all computed statistics in the CSV available on <a href="https://www.ebartsoft.com/pico8">My Website</a>. More than 4700 P8.PNG cartridges have been deeply analyzed, not all metrics has been written to the doccument. I plan to add more interesting metrics like &quot;code token&quot; but for now I struggle to compute them correctly.</p> <p>If you think of any interesting data to extract please let me know</p> <p>+===================+<br /> | EDIT 2021-03-29<br /> +===================+</p> <p>Solved the PXA decompression issue and now all the cartridges are correctly analyzed.<br /> I Updated the CSV with the lastest cartridges.</p> <p>Enjoy</p> <p>.</p> <p>Note: <em>Some Lua data are wrong - see column [Lua ERR] in CSV - due to a problem in my PXA decompression algorithm (happen with special characters)</em> /!\ PROBLEME SOLVED</p> https://www.lexaloffle.com/bbs/?tid=42207 https://www.lexaloffle.com/bbs/?tid=42207 Sat, 27 Mar 2021 18:36:35 UTC Pico-8 Toolbox <h3>Hi,</h3> <p>This is my first post and I don't know if it's a good thing to write a question here, so let's see.</p> <p>First of all I LOVE Pico-8 since years, a friend of mine introduce me to this awesome project in a game jam and I immediately felt good with it. But I am bad at drawing, composing music and coding innovative games so after that event I stopped lua coding and just continued reading news and playing cartridge made by other. You guys really make my eyes shine.</p> <p>Well today I decided to contribute by making a cart reader, browser, assets extractor and a sound/music player and editor (to begin). Things are progressing well and I will soon be ready for public release. But... questions :</p> <ul> <li>Is it legally authorized to distribute such tool ?</li> <li>Do anybody (other than me) need/want it ?</li> <li>Can someone help solve a pxa compression problem (maybe unicode related...) ? /!\ SOLVED</li> </ul> <p>Screenshot of the actual cart browser (all WIP) :</p> <img style="margin-bottom:16px" border=0 src="/media/52494/Untitled.png" alt="" /> <p>Screenshot of the actual sound editor :</p> <img style="margin-bottom:16px" border=0 src="/media/52494/Untitled2.png" alt="" /> <p>am i off topic ?</p> <p>+===================+<br /> | <em>EDIT 2021-03-21</em><br /> +===================+</p> <p>A little update with two side projects, the first is intended to produce custom cartridge picture. Create or load custom picture or use pre-loaded templates, change color and text. You can also change existing cartridge picture without altering ROM data.</p> <img style="margin-bottom:16px" border=0 src="/media/52494/Untitled1.png" alt="" /> <p>The second is intended to let you produce custom font file (.TTF) from a small pixel editor and use it anywhere for your game or any other document.</p> <img style="margin-bottom:16px" border=0 src="/media/52494/8_Untitled.png" alt="" /> <p>Tell me what you think.</p> <p>+===================+<br /> | <em>EDIT 2021-03-26</em><br /> +===================+</p> <p>I just released the Pixel Font Editor (still in early dev stage, Windows only) with a TTF sample.<br /> Use it at your own risk ^^. The editor is safe but installing custom font on your OS can put you in trouble !<br /> Download it here : <a href="https://www.ebartsoft.com/pico8">My Website</a></p> <p>+===================+<br /> | <em>EDIT 2021-03-29</em><br /> +===================+</p> <p>Solved the PXA problem, I will be able to continue the dev.<br /> Thanks to <a href="https://github.com/samhocevar/zepto8">zeto8</a>.</p> <p>+===================+<br /> | <em>EDIT 2021-03-31</em><br /> +===================+</p> <p>Released another small tool that allows you to extract information (label, spritesheet, tilemap, lua code, P8 data) from a cartridge see picture below.<br /> Download it here : <a href="https://www.ebartsoft.com/pico8">My Website</a><br /> If you have any problem or suggestion just let me know</p> <img style="margin-bottom:16px" border=0 src="/media/52494/11_Untitled.png" alt="" /> <p>Enjoy</p> <p>.</p> https://www.lexaloffle.com/bbs/?tid=42003 https://www.lexaloffle.com/bbs/?tid=42003 Sun, 14 Mar 2021 21:28:58 UTC