EBArtSoft [Lexaloffle Blog Feed]https://www.lexaloffle.com/bbs/?uid=52494 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="" 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 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>.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="" 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 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> **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="" border=0 src="/media/52494/Untitled.png" alt="" /> <p>Screenshot of the actual sound editor :</p> <img style="" 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="" 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="" 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="" 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