Archives for Freepascal

LazSokoban

Posted by ALB42 on 4. Dezember 20223 Comments

A long time before when I was working on the LCL for AROS I tested out some 3rd Party LCL application code to compile for AROS with the newly created LCL. It worked quite nicely. On of them was LazSokoban a Sokoban clone written by a russian guy which worked nicely on AROS.

Some Texts in the GUI where in russian and I translated them to english for the AROS release, some I had forgotten or mistyped a bit. Now I got a request to fix that problem, first there was the big problem to find such and old source code, but luckily it’s included in the archive I published (it’s GPL2, so I had to 😉 ) but I also found in on my Harddisk in the backup.

The changes where not to difficult to make, but the curious thing was if it would still work with the latest LCL. One thing I remember that I need to add the AThreads unit (like Linux CThreads) to make any LCL application work, back in the days that was not needed. And it still works, I checked out the original source and I noticed that they added some kind of skin system (different graphics for the tiles) and also supplied some which looks much nicer than the original one. So I added that as well the the AROS system, it will be available on the next Version of AROS One or here on my page of course.

The other thing that changed since then, we can now compile for MorphOS and OS4 as well (and for Amiga68k, but it will be much to slow for that, I tried) and it also seems to work, not everything, the Buttons images are missing but as far as the game goes not too bad. So I created a Version for all 3 Platforms, AROS, MorphOS and AmigaOS4

Have Fun.

Whats going on…

Posted by ALB42 on 31. August 2022No Comments

A little bit stuff is happened in the last week, I want to report a bit about it.

The first very nice development is a bugfix in the 68k Free Pascal compiler, there was a long standing bug inside the PNG-loader. I noticed it with MUIMapparium, but it only showed on some computers, namely my Draco. Charlie tried to look into the issue long time ago, but not really found anything to fix.

But now he looked again into the issue and finally was able to track down the problem. The problem is not really fixed but there is a workaround included so now MUIMapparium works on my Draco, very nice.

MUIMapparium on Draco

MorphOS added an OpenSSL3 Amiga style library a while before, as soon that was available I started to try it to get it to work with Free Pascal on MorphOS. Sadly it did not work, always was crashing already when I tried to use even the simplest function, so I was lost. Charlie mentioned that there must be a change in our linker script of some sort to make it work and he will later care about it. But as often too much other stuff happened and this got delayed. Finally I started to implement the stuff via AmiSSL also on MorphOS. I implemented that for Amiga68k already so the switch to MorphOS is just not a big thing. But then Charlie said I should better use the openssl3.library instead and he will fix the problem with the linker script. And he did and it seemed there was even an easier solution for that and finally openssl3.library does work together with Free Pascal for MorphOS.

Get a webpage via HTTPS using the openssl3.library on MorphOS

Charlie tried MCAmiga on his „new“ build Amiga2000. It only has a 68030 with 25 MHz and he noticed that the load is rather high (around 30%) when the program is doing nothing just waiting for the key. That is the case because it is based on old DOS behavior, therefore the key events and so on must be polled and not fired via events as it is common today. But he showed me a special function in the keyboard unit called WaitForSystemEvent() which is only available for Amiga system to be able to really wait for events and not poll them. That reduces the load when the program waits for input (to under 10%) which is nice of course.

AmiTube 1.3

Posted by ALB42 on 29. Juli 20225 Comments

„Alex R“ found a AmiTube problem on Amiga OS4 and reported it to me. (some days before already) I tried to implement that AmiTube remembers the splitter position. Sadly I made a big error there resulting in a very small barely recognizable List on the left side of the window. I only tested it on m68k-Amiga where it did not happen, but after a bit of trying I found the culprit and fixed it.

Originally I planed to release that fix with the next version, but now I got some more bug reports about the exact same thing (hmm, nobody of the beta testers reported it). It seems that it is not only an OS4-problem but also happens on at least MorphOS and some 68 Amigas. Therefore I will release this new version now, with bugfixes only, no functional changes.

Sorry for the trouble, if you are affected by this bug.

Download as always on the AmiTube Page

Thanks to „Alex R“ for the report and the members of the AmiTube Discord channel and of course Amix for the constant support and feature ideas (even if I can’t implement them all)

AmiTube 1.2

Posted by ALB42 on 9. Juli 2022No Comments

New Version of AmiTube release, most important changes are a playlist feature and multiple move directories management.

Download as always on the AmiTube Page or via update function in AmiTube

Full History:

  • Bugfix for fancy list text printing
  • play list with wait screen
  • open own directories with movies in play list
  • close requester
  • restore splitter position on start
  • multiple movie directories via icon tooltypes
  • choose default directory via menu

Multiple Movie directories

Posted by ALB42 on 30. Juni 2022One Comment

Another wish for AmiTube was to have multiple movie directories for easier sorting of movies. I implemented a possibility to do that, now you can add MOVIEDIR1, MOVIEDIR2 and so on to the icon to have multiple movie directories. In the Project menu one can choose which movie directory should be used for next download or loading of local files.

Will be included in AmiTube 1.2.

Play list for AmiTube

Posted by ALB42 on 26. Juni 2022One Comment

A little preview for the next AmiTube Version, one wish was a play list like feature to play the downloaded movies automatically or by random or in a loop.

I thought about that feature, the main problem, would be how to stop the actual playing, because when you just start AGABlaster one after the other, how to stop the actual playing, therefore I decided to add a little announcement Screen for 5 seconds where you can stop the current play list.

So stay tuned and look forward to the next release.

I also fixed some bugs in the fancy list.

AmiTube 1.1

Posted by ALB42 on 11. Juni 2022No Comments

I finished some bug reports (most related to the fancy list), big thanks to the beta testers, especially „HANsolo“ who found the most bugs, thanks very nice work.

One thing I changed, The „Auto icon load“ setting in prefs will now also set the fancy list to auto load the icons or not, that way I guess it is maybe also usable on slower Amigas as well. I tried out on my real A1200 (with TF1260, AGA 32 color screen) and even with the icon preview on, it’s not that bad, certainly fast enough to work with it. I like it.

So the changes for this Version are quite short:

  • Fancy movie list
  • updated translation for italian and french
  • encoding bug fixes (should show now umlauts and other non ASCII chars in title and description)
  • smaller bugs fixes related downloading movies

Download as always via the Updater in the Program or on the AmiTube page

Fancy list

Posted by ALB42 on 29. Mai 2022One Comment

Finally I found some mood to work on the new list feature in AmiTube, the so called fancy list, including the title, description and preview image directly in the list.

For that I use a background task to download and load the images, usually such things I use a Thread with Event system behind it. But it seems not to work, most of the time it works fine but then from time to time it locks up completely, total dead lock. After some debugging I found the culprit in my TEvent implementation for Amiga systems in AThreads, the two cases when the Event is already set when you start to wait for it (or the Even is already destroyed) are not covered properly and it leaves the routine with the semaphore locked, easy fix but hard to find.

But back to the list, one can switch to the fancy list, but that also means it auto loads the images, so it will be only good for faster Amiga/RTG or NG Amiga or so.

Working quiet nicely already. Also I got some updated localization for AmiTube which will be released with the next version.

New bicycle

Posted by ALB42 on 23. April 2022One Comment

I bought a new bike, which I will use mainly for training (and keep the other bike for my daily way to work). Because my usually training round has a lot of rough streets in it I decided against a racing bicycle, but I do not go too rough terrain so a mountain bike was also not suitable. I found something in between called gravel bike, still very light but it will not break directly when you jump a curb or drive a forest path. It should be very light so I search for a full carbon frame. Finally I found a very nice one and noticed there is even a shop nearby where I could test it.

It’s a Cannondale Topstone Carbon 6 in abyss blue and drives very nicely you can easily notice the weight difference when driving.

It comes with a build in wheel sensor which connects to iPhone via Bluetooth LE to increase precision of speed and distance recording parallel to GPS. But to record my training I still prefer the Trails app. The cannondale app is free and works fine but has no export to GPX feature (it has no way of exporting the recorded tracks as it seems, only as picture) which I need to load the track to MUIMapparium.

AROS 64, a disappointment (again)

Posted by ALB42 on 22. März 2022One Comment

Last weekend I tried to bring the AROS 64 interface of Free Pascal up to the current level. Some might remember, I created a special automatic checker which you can use to check the records in the pascal units against the structs in the official C includes. An it ensures that all the records and field there is have the same name across all Amiga-like platforms. I already used it for AROS ABIv0 and MorphOS and a bit on Amiga 68k (there are some problems with structs inside structs).

With this tool on hand it was rather easy to check where my AROS units must be changed to be 64-bit and ABIv11 compliant, I tested it and it worked well.

As next step I thought about to update my distribution (0.3.1?) I checked out the latest AROS version and tried to compile for myself. Good thing it works much better than before, bad thing it tries to download a bunch of stuff from the internet (like binutils, gcc and so on) but the server referenced there seems to be offline (sure why one should use the official GNU source, better use some weird 3rd party server which does not work), so I had to get them from the official GNU webpage by hand, annoying!

I tried to compile the native boot-able variant, it compiles, but it does not work, directly after grub when you try to start the kernel it crashes (tried in qemu/vmware, no difference) so still nothing new here. Fall back like last time to Linux hosted. BUT whats that some of my programs crash at very unusual places, on running Threads, hard to debug actually. It seems like a structure has changed.. So I got out my automatic checker again and, yes it found that there is a change in the structure, old T100pUAD 0.3 programs cannot work anymore (or only by random).

The reason I decided to publish „The 100% useless AROS distribution Version 0.3“ was that the ABI, so the binary interface is promised to be fixed now.

componentkept stable
Application Binary Interface (ABI)YES
OS 3.1 API (examples: exec.library, input.device)YES
3rd party public libraries API (example: muimaster.library)YES
Classes, gadgets, datatypes API (examples: png.dataype)YES
AROS driver system (HIDD, oop.library)NO
AROS kernel components (example: kernel.resource)NO

This was in January, now not even three(!) month later that promise is already broken, void, not existing anymore. What a big disappointment. Of course no developer, let alone User will use such a system.

This is especially annoying when you notice, that the structure change is 100% unnecessary and useless (and 100% incompatible with original 68k code).