A little bit improvement of the raycaster engine, now with simple texture mapping included. I had to invent some fixed point mathematics to make it fast enough on real m68k Amiga but still it works nicely and just a bit slower. I found a little bug in FreePascal when using functions Trunc() or Frac(), but Charlie thankfully saved the day and made a super quick fix of it.
Again a little video on my Amiga 1200 (68030/50Mhz, 68882/50Mhz, 32 color AGA Screen) and it’s still a single source code file of less than 20kb size (many of them are comments 😉 ). and the executable is less than 100k, not bad especially because I did not optimize for size, just for speed
By random I came across a funny video on youtube showing the basics behind a simple raycaster like Wolfenstein 3D. I know the mathematics behind it for real rayshading and on a real Amiga it’s awefuly slow. So for me it was interesting which short-cuts they take to make it fast. It’s really not complicated to understand (if you know the mathematics already, if not I guess it stays a black box).
I tried to implement that into a FreePascal program (with some tiny changes (block size smaller for example, because of the smaller screens on Amiga)). It runs rather well, I did not want to code hardware, but use OS functions which make it a bit slow of course (especially the line drawing).
For the actual 3D image s I used RectFill but of course on a non-RTG Amiga thats very slow, therefore I changed that to write chunky pixels to a temp buffer and use WriteChunkyPixels to copy that to screen, already much faster but still not max speed. I found a funny patch (Blazewcp), which patches the WriteChunkyPixels function to be much faster, and voila really nice speed of already 12.5 fps, without turning OS of or Assembler/Hardware stuff, in pure FreePascal.
You want to have it? try it? Sure why not: Download (Source and Exe for m68k Amiga OS3.x 68020+ and FPU needed, but can be compiled and run for all Amiga-likes)
You know whats most funny when browsing Wolfram Alpha or such databases, just following the links inside it, sadly the API does not give infomations for links in the text. BUT it supplies related searches, I implemented an additional page to AYA that you can find close searches, sometimes there are even some weird stuff… maybe they are searches other user used? I don’t know.
Besides that I implemented a history of your searches and also added some suggestions sorted in categories, some starting points what to search. Also if you find something funny (like the people curves e.g. “Arnold Schwarzenegger curve” and so on) why not share them with other. In the result window is now a “Share” button where you can add a short description and your name (if you like) and I will add them to the suggestion database. (which you can update via the suggestion window)
Also the software itself can be updated from the suggestion window.
Finally I found some motivation to put a release together of “Ask Your Amiga” the new tool for your beloved Amiga. It’s working nicely, now also can save the image or text, but nothing more… just very basic functionality but even so I like it working rather smooth even on my slower Amiga 68030.
As always it is available for all Amiga systems with an Internet connection and a GIF Datatype installed.
Worked a little bit more on the SSL implementation for Amiga in FPC using the AmiSSL.library. First I tried to just use the OpenSSL implementation in FPC. It was much work but sadly it just crashes on SSL connect and I have no idea why, rechecked everything. But before it was working using the BIO_* functions, so I rewrote the FreePascal implementation for AmiSSL using the BIO_* functions and finally it works. That means one could now get a webpage from a HTTPS page with a single line of code (and two uses), which is really nice.
In principle this should also work on MorphOS, for AmigaOS4 it would need to rewrite the import unit for AmiSSL. Sadly AmiSSL still does not exists for AROS only a c-link lib which does not work at the moment in FreePascal-AROS.
Charlie took some time to review the FreePascal 3.2.0 packages, I created. I changed them according to the suggestions. Some of the hints are not possible at the moment, needs some changes in the code, others are easy to change. He also found a bug in vlink, which got solved and we include now also the latest version of vlink.
The biggest change for the users is, that it now installs into a folder called “FPC” (instead of FreePascal) also the assign created is named “FPC:” (instead of “FreePascal”). If you did install the old package and install the new one you can afterwards (after the reboot) delete the old “FreePascal” drawer.
Yesterday I did exchange all links to the new version already, when updating the arm-AROS version. But here are the links again
With it the archives are now also uploaded to the official FPC server and can be downloaded there as well, that means we finally have an official Amiga, MorphOS, AROS release of FPC. Congratulations and thanks to all people involved.
Finally Version 3.2.0 of FreePascal is released. This is the first final release contains the Amiga style systems fully usable. A while before I did some extra work to also create an Amiga-sytle installer, which will be also released with this. Today I will also release the 3.2.0 FreePascal packages for Amiga 68k, Amiga OS4, AROS for ARM, AROS for i386 and MorphOS. So basically all versions except AROS for x86_64 because that’s still too unstable to use (mainly the AROS 64 bit is still a moving target and I was not able to fix that, because AROS is simply not working after the last changes and my last questions about it got just ignored)
You notice, these files are still hosted on my server and not on the official FreePascal Server, as the last release 3.0 as well. I was told because my previous packages did not meet the standards for official FreePascal packages. Which was true, I did not care about and packed a lot additional stuff into, like fpgui or LCL and I did not know there are readme texts to add which are not in the official repository but in an external one.
For that release 3.2 I did a lot of work on finding out what would be a good Amiga style package and which docs/texts should be added. Therefore I created that installer package I release today. I also asked for a review and put on to the official FreePascal server, as an official Amiga FreePascal package or give me feedback on what I should further changed.
Sadly that did not happen, I did not get any feedback and the release archives are still nowhere to be found on the official servers, therefore missed for that release.
That whole story took away my motivation as well over the last month as well, it seems rather futile to continue to work on it, when nobody even really use it, which is still true, unfortunately, I have to admit.