All posts by jihem

picarde, a pico-8 cards player

Picarde is a pico-8 cards player (provided with five cards) designed for persons who can’t easely handle the keyboard nor a gamepad.
The controls are provided as big buttons you can scratch on a tactile screen. So you can use any part of your body or prothesis to play. You can play with a mouse, an eye tracker or trackback too (if you have it and can use it).


  • On some cards, x/z buttons may have been switched (depends on the game implementation by their authors).
  • The program installs a local dedicated web server on a port between 8000 and 8020 to serve the datas. Windows will problably ask you to allow this.

As usual, any help welcome, PayPal or whatever you want (add a link to this page).



Download, uncompress (on the Desktop or in %AppData%), open the folder picarde and launch picarde.exe.

You will have to two UAC warnings to allow the execution of the programs (picarde.exe, picarde-http.exe) and one to allow the use of the TCP/IP port. Thanks to windows :’-( If I had a developper certificate to sign the exe I could remove these UAC warnings (but since most of my programs are used for free, I have no money for this). So please, stop complain about that.

Cards :

  • Minesweeper by Sophie Kirschner,
  • Pico-2048 by Aslan85,
  • Puzzle Cave 1 by Hackefuffle,
  • Picross-8 by Nest,
  • Combo Pool by Nusan –



To help disabled persons to communicate using a computer, I started to write toSay. It’s an attempt to offer a way to type text and to let it be said by the computer (button [ :-D]). Two versions are available (010E and 011E). The last offer the opportunity to manage a web browser (Chrome) : [E] to start it, [TAB->] and [TAB<-] to send tab key to the browser to move to the next/previous item, [ENTER] to send the typed text to the browser followed by the Enter key. For this, you will need a computer with Windows 10 and the speach extension (provided by default).

You can use tobii Eye tracker with Gaze Point to allow the use of the software only with the eyes (no need of the hands).

I’m still working on 011E to improve the browser management and to add some additional features. Any help welcome, PayPal or whatever you want.


Button [<] and [>] are disabled. Use ‘_’ to add a space in the text.
The window is hided on the top left of the desktop at startup.

Use ‘_’ to add a space in the text.

mapOSM (WIP)


I have found a new subject to scratch my head: i’m trying to work with OSM XML files (geographic data used to draw map). I made a program to convert the file into an sqlite database (nodes, ways, relations). The latitude-longitude values are converted in planar coordinates (to draw on screen) with a Lambert azimuthal projection.

MVD is very efficient for this. A lot of SQL statements are required which consume a lot of time. I choose to  put the sql file on a RAMdisk. Even if the RAMDisk is 200X more faster than my hard drive, the import of the XML file (a big one) take near 10 minutes. Fortunately, the import is only required one time.

Now, I’m able to draw streets and houses. It was a very interesting thing to explore. I have a lot to optimize and maybe some bugs to catch. I’m not sure I will release an application, more surely some tricks how to process.

Now, I would like to implement some aspect of the graph theory but that is another story 😉

See below…

Lambert azimuthal equal-area projectionmapOSM-2

Show a part of an export

EAN13 barcode generator



EAN13 is a barcode generator. Enter a valid EAN13 code in the text box, click Generate. The barcode is displayed in the image. Then you can Save the picture. In the install folder (right click on the icon, show properties, access the application folder), the file <EAN13>_EAN13.png is created.

If you have a lot of barcodes to create, edit a text file (example EAN13.TXT) with a barcode per line. Sample:


Put the text file in the application install folder (%APPDATA%\..\Local\EAN13 by default), launch a shell, then type :

C:\…> CD %APPDATA%\..\Local\EAN13
C:\…> EAN13 EAN13.TXT

A picture with the EAN13 barcode is generated for each valid EAN13 code in the EAN13.TXT file.

Note: If you don’t know the value of the check digit (13th), you can enter  twelve digits and let the program compute the last.

You can download the install program of EAN13 in english.

The application has been done with MyVisualDatabase (a cheap and well done environment similar to Delphi).






Podcastor is a RSS stream downloader. You can download the install program of podcastor in english or in french. Run the installer and follow the instructions. After install, click on the icon of the program “podcaster” on the desktop.

Copy/Paste or type the URL of a RSS stream in the first field then click “Import” button. The application may apper unresponsive for some seconds (downloading/decoding/importing time). The content of the stream is displayed in the grid. Double-click to select some  items. Click “Download” to download them. They are stored in the application folder (where podcastor.exe remains).

The application has been done with MyVisualDatabase (a cheap and well done environment similar to Delphi). The download operations are made using an external program : wbGetFile (made with PureBasic).

In hope you find this app useful. I made it as a proof of concept (background downloading are is not provided by MyVisualDatabase)… and because I’m a big fan of the podcast “Du grain à moudre” (Hervé Gardette, France Culture).

Now, I’m begging Dmitry (MyVisualDatabase developer) to include the background download natively in MyVisualDatabase.



Poscastor in french
(a good way to listen Hervé Gardette)

i_editor 2.0


I_EDITOR is a programming game. The goal is to write simple scripts to reproduce a drawing on screen. The commands used in the scripts move a pointer (“turtle”). The pointer has a pen, which can be up or down. When the pen is down, each move lays a print. There are additional instructions to make calculus, evaluate conditions and call previous declared sequences. The syntax and semantic are organized in language called I_CORE.

I_EDITOR 2.0 and its manuals are available as a PICO-8 cartridge (download the picture) and PDF files : english , french.

You can play the game online.

i_editor 1.5


. displays result in the drawing (up to 17 lines)

Sample 1
5 4 + .

Clipboard enabled (<CP, >CP)

CLR : clear
<CP : copy from clipboard
>CP : copy to clipboard

Copy the line below into the clipboard

:a 10 fd 90 tr ; a a a a

Paste in PICO-8, then activate <CP


Sample 2
:a >a # <a / flr # b >b <a * – <a 2 / flr # ?a ; :b cl 4 c ; :c 1 – # 3 fd 3 bd 90 tr 1 fd 90 tl ?c ; pu 20 20 mv pd 62 128 a pu pd 20 24 mv 127 128 a pu 20 28 mv pd 73 128 a pu 20 32 mv pd 127 128 a pu 20 36 mv pd 62 128 a pu 20 40 mv pd 42 128 a

Clipboard functions (<CP,>CP) aren’t working in HTML exported cartridge.
Copy from notepad (text in the html browser may contain tag or additional characters).



Choose the command in the first column (up/down, x)
Change column (left/right)

Change the value in the second colum (x, then left/right to decrease/increase)
Delete instruction in the second colum with (o)

Have a look on i_core post to have more explanation about the language “I”.

I will make a tutorial soon and post a link and additional information here.

Sample 1 (gif)

:A 20 FD 90 TR ; :B 1 – # A ?B ; 4 B

Sample 2 (gif) made by roywig



You can accelerate the rendering process in the M:DRAW method. At the end, change from



while i>0 and self.vm:state()!=3 do

i_core + turtle


This cartridge includes i_core and the turtle extension.
It shows how to:
– bind a personal extension (turtle object, turtle binding) to the language core engine,
– initialize the external extension and call its methods (from PICO-I and i_core)
– pass parameters from PICO-8 to i_core (N).

The turtle extension includes the following commands:
– FD forward, 20 FD
– BD backward, 20 BD
– TR turn right, 90 TR
– TL turn left, 90 TL
– CL change color, 1 CL
– PU pen up, PU
– PD pen down, PD
– TO go to, 10 10 TO
– HD head to (0 right, 90 top, 180 left, 270 down), 0 HD

Sample :

‘:loop 20 fd <a tr 1 – # ?loop ; :side >n 360 <n / >a <n loop ; cls 4 side’

Have fun 😉