New Release of Free Pascal is done. It’s a bug fix release for 3.2.0 it has also some bug fixes for the Amiga systems, especially structures and functions are checked against official SDKs (especially for MorphOS with its latest SDK Version). For changes that break compatibility you can check official changes document.
I added assumptions to Ask Your Amiga. Assumptions are the way the different meaning of one word are separated from each other in Wolfram alpha. For example if you ask for “Berlin” it will show you information about the capital of germany, but also shows you a list of other cities (mostly in USA) named Berlin and also other meanings like Berlin as a name or a music band (never heard that before) and so on.
Like on the web page I put these assumptions to at the top of the results to select from a cycle widget.
Download latest AYA at hte AYA Page or use the build-in Update Version
Still trying the TProcess and Pip stuff on MorphOS (I do not want to steal the gdb from Charlie though 😉 ). I remembered, a while before someone told me that he has a shell based chess program for MorphOS compiled Predateur. It uses a rather common command line API (uci). I also found a UCI GUI written in FreePascal the GUI itself is made with fpGUI, but that’s not a big problem. I changed the GUI to MUIClass and try it. It did not work directly on the first try, there are some problems with the TProcess. I have to think about that, how to solve. But with a little bit tweaking it works now. You can play chess nicely. The author of the GUI also has some uci compatible engines written in FreePascal, but they sometimes crash after some moves. But this Predateur one works quite nicely. Disclaimer: I’m very bad at chess, never really played, barely know the rules.
Besides the documentation work I also updated the docker container. I created 4 scripts to compile directly from the docker (without using VNC/lazarus) so you can directly compile in your linux installation, that there is a docker container behind it you barely notice. But it only can compile standard Free Pascal things, no LCL applications (missing pathes to the lcl units, also not easy possible, but without Lazarus make not much sense, I think)
The AROS compilation had a big problem, when you compile without -g option it tries to strip but the strip tool was not installed, so I added some more tools to make it possible to compile without -g (makes the executable much smaller)
On this I updated the lazarus version to the latest version 2.0.12 as well.
If you want to use the newest Version of the docker (with the AROS bugfix) start the “CheckForUpdate.sh” script if you also want to have the direct compile command download the CrossAmigaLazarus Package.
To be honest I don’t watch much TV, I like playing games much more but sometimes there are nice movies or interesting news, but mostly I’m repelled by the amount of commercials these days.
But nevertheless I have a satellite bowl and it connected to a DVB-S2 card in my Linux server with TVHeadend as TV server which works quite nicely especially together with Kodi. But the Webpage does not work very nicely, the it’s very complicated and the in browser watching of TV program does not work most of the time. So I seldom use it (basically only to program recordings).
In the past there was a nice VLC plugin for it make it very easy to use, sadly it’s not maintained for very long time. VLC moved on and the plugin does not work again, I got it to compile somehow but still no luck still does not work.
A long introduction to what I did now, the TVHeadend have a JSON based API, therefore it was rather easy to write a little program to get all the information from the Server show it in a window and select a channel to stream. And of course as I always do when I start a new program I also make it for Amiga style systems, MorphOS is this case. (but also for Linux 😉 )
This weekend I extended (and sometimes created) the documentation for all four Amiga systems library units (amunits, arosunits, morphunits, os4units) and the util units (ami-extra).
It is available as chm file or HTML pages created with the Free Pascal fpdoc tool. The documentation is kept in separate XML file, I created a GitHub repository for that.
The build server compiles the documentation on every change and put it for download an direct use to the build server pages
There is also a new SDK (3.16) for MorphOS which also has some new function to handle TLS-memory functions (Thread Locale Storage) to handle variable switching for different threads. Charlie wants to use them for Free Pascal thread implementation for MorphOS (AThreads). To make it easier I checked the current SDK and tried to update the Free Pascal library units for MorphOS. (of course not only the TLS functions, but all updates I found). And to make it even easier also created the documentation for these functions.
My long term plan is to have for many of the library units functions an example code, I added now example code for ExamineFH, Examine/ ExNext and MatchFirst/MatchNext.
I’m playing with docker and how to put Free Pascal for Amiga Systems and even Lazarus inside a docker container. Works quiet nicely with the latest FPC (3.2.0) and Lazarus (2.0.10), sadly there are some bugs in the published MUI interface for Lazarus, or better left overs of old Free Pascal inconsistencies between the Amiga flavors. I fixed them in FPC but did forget to remove the workarounds in the LCL. So I had to patch the official LCL. Must also check them in the official repository. Sadly the OS4 the LCL compile does not work at all, something wrong with the resource stuff, so I removed it for now. I will look into it later. So still some stuff to work on.
To actually use the Lazarus IDE I also installed a VNC server and hence also a small as possible window manager, I played around with some simple one, most old simple window managers are very annoying (e.g. twm) but icewm seems to be nice (looks like Java though).
And why docker? It’s much easier to keep the software up to date and there are automatically running scripts to create, modify and start them. But there are some drawbacks. The first compilation of a LCL program for any Amiga-style system will need a long time (as seen in the video), because it will compile the whole LCL. This will happen for every start of the docker container. This is good to have a clean compilation of LCL (especially when developing on the actual LCL) but a bit annoying when only compile simple programs. There should be some ways around it. But for now for me that’s good enough.
With normal raycasting the floor and ceiling looks kinda boring (like in Wolfenstein), I was trying to introduce texture mapping floor but it was always too slow for my 030 Amiga. New Idea some easy reflection effect should be easy to make and not eat much resources. an voila.
I proudly (?, more present in shame) present the most ugly and nasty reflection like floor.
Also introduced push-able block and switches on the floor, when you move the blocks over it the block changes the color. In principle one could make a sokoban like game with this mechanic, just in 3D, would be much harder to solve, especially if you do not have the map 😉
As always the download with source (still a single file 😉 ) Raycaster3 (source + exe compiled for m68k-amiga 68020+68882, OS3.0+)