#freepascal — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #freepascal, aggregated by home.social.
-
Playing with #FreePascal in #CompilerExplorer.
Lines 22 and 23 produce less machine code than lines 25 and 26, yet end up with the same result - trimming the last character from the last item in a TStringList.
-
Playing with #FreePascal in #CompilerExplorer.
Lines 22 and 23 produce less machine code than lines 25 and 26, yet end up with the same result - trimming the last character from the last item in a TStringList.
-
So es ist wieder Zeit ein wenig code zu smithen.... https://www.twitch.tv/roughnight86
Ich baue weiter an meinem #freepascal spiel mit #raylib mal sehen was heute fertig wird -
So es ist wieder Zeit ein wenig code zu smithen.... https://www.twitch.tv/roughnight86
Ich baue weiter an meinem #freepascal spiel mit #raylib mal sehen was heute fertig wird -
Grok does not have desktop app. So I produced one with Grok :)
5.5MB binary!
28MB RAMThanks to #Lazarus and #FreePascal
-
Grok does not have desktop app. So I produced one with Grok :)
5.5MB binary!
28MB RAMThanks to #Lazarus and #FreePascal
-
So my game/engine has now all the stuff I need to actually start with content. Quadtree rendering and collision checks, Ysorting, scene switching. All done with #freepascal and #raylib ... Pascal is not dead! :D #gamedev
-
So my game/engine has now all the stuff I need to actually start with content. Quadtree rendering and collision checks, Ysorting, scene switching. All done with #freepascal and #raylib ... Pascal is not dead! :D #gamedev
-
Once again I'm live and smithing code with freepascal and raylib... today I want to be able to switch scenes, generate random dungeons and maybe add some enemies as well. Come and say hi.
https://www.twitch.tv/roughnight86 #gamedev #freepascal #raylib -
Once again I'm live and smithing code with freepascal and raylib... today I want to be able to switch scenes, generate random dungeons and maybe add some enemies as well. Come and say hi.
https://www.twitch.tv/roughnight86 #gamedev #freepascal #raylib -
The aftermath of last nights stream... I have working TMX importer with multiple layers and collision objects. My camera and collisions are working correctly now... the next steps are refactoring some stuff, enemys and ysorting
#raylib #freepascal #gamedev -
The aftermath of last nights stream... I have working TMX importer with multiple layers and collision objects. My camera and collisions are working correctly now... the next steps are refactoring some stuff, enemys and ysorting
#raylib #freepascal #gamedev -
Ich bin live auf https://www.twitch.tv/roughnight86 um mit #freepascal und #raylib an meiner "engine" und meinem Game zu bauen... Zeit für bisschen Codesmithing
-
Ich bin live auf https://www.twitch.tv/roughnight86 um mit #freepascal und #raylib an meiner "engine" und meinem Game zu bauen... Zeit für bisschen Codesmithing
-
I’ve decided to rewrite my game, *Dungeons of Cydonia*, in FreePascal using Raylib. I wanted to revisit the game anyway, so I thought I’d turn it into a challenge: can I release a game without using an engine? Status: The Tiled map importer is finished, as is basic player movement.
#gamedev #freepascal #raylib
https://roughnight.itch.io/dungeons-of-cydonia -
I’ve decided to rewrite my game, *Dungeons of Cydonia*, in FreePascal using Raylib. I wanted to revisit the game anyway, so I thought I’d turn it into a challenge: can I release a game without using an engine? Status: The Tiled map importer is finished, as is basic player movement.
#gamedev #freepascal #raylib
https://roughnight.itch.io/dungeons-of-cydonia -
However, in fixing this I found a different bug. But I don't think it's a problem with my code.
I think #FreePascal's
ParamStr()is using\as an escape character in DOS in certain situations, specifically before a space.For example:
ctran catfile.cat -e c:\sibosdk\include\ -x -c -g...will set the external cat path to
c:\sibosdk\include\ -x.It might also do this in Windows, but I haven't tested it yet.
I need to do more testing, but are any other #Pascal users finding this?
-
However, in fixing this I found a different bug. But I don't think it's a problem with my code.
I think #FreePascal's
ParamStr()is using\as an escape character in DOS in certain situations, specifically before a space.For example:
ctran catfile.cat -e c:\sibosdk\include\ -x -c -g...will set the external cat path to
c:\sibosdk\include\ -x.It might also do this in Windows, but I haven't tested it yet.
I need to do more testing, but are any other #Pascal users finding this?
-
Well that's handy! (Formatting added by me.)
Free Pascal supports the use of long filenames in the system unit and the Dos unit also for go32v2 executables. The system unit contains the boolean variable
LFNSupport. If it is set toTruethen all system unit functions and Dos unit functions will use long file names if they are available. This should be so on Windows 95 and 98, but not on Windows NT or Windows 2000. The system unit will check this by calling dos function71A0hand checking whether long filenames are supported on the C: drive.It is possible to disable the long filename support by setting the
LFNSupportvariable toFalse. -
Well that's handy! (Formatting added by me.)
Free Pascal supports the use of long filenames in the system unit and the Dos unit also for go32v2 executables. The system unit contains the boolean variable
LFNSupport. If it is set toTruethen all system unit functions and Dos unit functions will use long file names if they are available. This should be so on Windows 95 and 98, but not on Windows NT or Windows 2000. The system unit will check this by calling dos function71A0hand checking whether long filenames are supported on the C: drive.It is possible to disable the long filename support by setting the
LFNSupportvariable toFalse. -
I've decided to add a "DOS Mode" switch to #CTRAN. That way I can have an explicit switch for 8.3 vs long file names, and forcing semicolon path separators vs native ones.
DOS Mode would be automatically enabled when running on DOS (via go32v2). Running on other OSes will allow long file names and use native path separators unless the DOS Mode switch is used.
I'm not sure what to do about #FreeDOS's long file name support. I don't know if #FreePascal has the ability to detect file system features like case sensitivity and long file name support without trial-and-error?
-
I've decided to add a "DOS Mode" switch to #CTRAN. That way I can have an explicit switch for 8.3 vs long file names, and forcing semicolon path separators vs native ones.
DOS Mode would be automatically enabled when running on DOS (via go32v2). Running on other OSes will allow long file names and use native path separators unless the DOS Mode switch is used.
I'm not sure what to do about #FreeDOS's long file name support. I don't know if #FreePascal has the ability to detect file system features like case sensitivity and long file name support without trial-and-error?
-
New video: a tour through the current state of KRAFT, my open source 3D physics engine in pure Object Pascal (FPC + Delphi, zlib licensed).
Now with signed distance field collisions: rigid bodies can collide with anything you can write a distance function for, including heightfield terrain. Plus ragdolls, joints, vehicles, meshes and more.
📺 https://youtu.be/qdV6Wlh-qcQ
💾 https://github.com/BeRo1985/kraft
💾 https://git.rosseaux.net/BeRo1985/kraft -
New video: a tour through the current state of KRAFT, my open source 3D physics engine in pure Object Pascal (FPC + Delphi, zlib licensed).
Now with signed distance field collisions: rigid bodies can collide with anything you can write a distance function for, including heightfield terrain. Plus ragdolls, joints, vehicles, meshes and more.
📺 https://youtu.be/qdV6Wlh-qcQ
💾 https://github.com/BeRo1985/kraft
💾 https://git.rosseaux.net/BeRo1985/kraft -
RE: https://oldbytes.space/@thelastpsion/116345290344668595
And the results are in!
- Pico C
- Rust
- Free Pascal
- Joint with Pico C++, MicroZig and Yarg.
So, what am I going to do? Well, I'm leaning towards porting the existing Arduino C code to the Pico C SDK. I'm currently using one class for encapsulation and abstraction, but I could replace that with structs and static functions. I'm not a great C programmer, but I'm pretty comfortable with it, so it makes sense
However, before I do that, I see a bigger challenge of getting a good setup without using VS Code. I've been using #NeoVim for a while now, and I'd like to get a comfortable setup using that on #Linux.
So, I'm going to try to build Blinky projects for at least Pico C, Rust and Free Pascal, using Linux and NeoVim. Hopefully this will give me a better feel for how well these languages actually suit me. I've never done any Rust before, either, so that's going to be quite the learning curve!
If I have time, I'm going to give Yarg a go, too, because I think the premise is really cool. If I'm on a roll, I'll try #MicroZig too.
And if I really feel like I have the capacity, I'll port the code to one of these other languages.
I'm acutely aware of all the other projects I've given myself to do, such as the SIBO SDK and other small Psion-related projects, not to mention $dayjob and $reallife. So we'll see how things go!
#Pascal #FreePascal #ObjectPascal #RustLang #YargLang #RaspberryPiPico #PiPico #PiPico2 #RP2040 #RP2350
-
RE: https://oldbytes.space/@thelastpsion/116345290344668595
And the results are in!
- Pico C
- Rust
- Free Pascal
- Joint with Pico C++, MicroZig and Yarg.
So, what am I going to do? Well, I'm leaning towards porting the existing Arduino C code to the Pico C SDK. I'm currently using one class for encapsulation and abstraction, but I could replace that with structs and static functions. I'm not a great C programmer, but I'm pretty comfortable with it, so it makes sense
However, before I do that, I see a bigger challenge of getting a good setup without using VS Code. I've been using #NeoVim for a while now, and I'd like to get a comfortable setup using that on #Linux.
So, I'm going to try to build Blinky projects for at least Pico C, Rust and Free Pascal, using Linux and NeoVim. Hopefully this will give me a better feel for how well these languages actually suit me. I've never done any Rust before, either, so that's going to be quite the learning curve!
If I have time, I'm going to give Yarg a go, too, because I think the premise is really cool. If I'm on a roll, I'll try #MicroZig too.
And if I really feel like I have the capacity, I'll port the code to one of these other languages.
I'm acutely aware of all the other projects I've given myself to do, such as the SIBO SDK and other small Psion-related projects, not to mention $dayjob and $reallife. So we'll see how things go!
#Pascal #FreePascal #ObjectPascal #RustLang #YargLang #RaspberryPiPico #PiPico #PiPico2 #RP2040 #RP2350
-
vkcube running on 64-bit RISC-V Alpine Linux in my PasRISCV Emulator in turn with the Vulkan-based PasRISCVEmu UI backend. #riscv #vulkan #ObjectPascal #FreePascal #Delphi
@riscv @vulkan -
vkcube running on 64-bit RISC-V Alpine Linux in my PasRISCV Emulator in turn with the Vulkan-based PasRISCVEmu UI backend. #riscv #vulkan #ObjectPascal #FreePascal #Delphi
@riscv @vulkan -
🚀 Lazarus 4.6 is officially out!
This new bugfix release is built with FPC 3.2.2 and brings important stability improvements. Time to update your IDE! 🛠️
Check out the release notes and download links here:
https://forum.lazarus.freepascal.org/index.php/topic,73549.0.html#LazarusIDE #FreePascal #Pascal #Programming #OpenSource
-
🚀 NDXSQLite - Professional SQLite Library for Lazarus
A modern, thread-safe SQLite wrapper for Free Pascal and Lazarus.
Features:
• Native SQLite3 API (no SQLDB dependency)
• Thread-safe connection pooling
• SQLCipher encryption (AES-256)
• Schema migrations
• TDataSet compatible
• 149 console + 10 GUI examples
• Cross-platform (Linux, Windows, macOS)MIT License - Feedback welcome!
https://github.com/NDXDeveloper/NDXSQLite
#FreePascal #Lazarus #SQLite #Database #OpenSource #Programming #FOSS
-
AOC 2025 day 3 is when I start to realize that my usual tool sets in #Pascal or #Go have a lot of string handling functions that I just don't see in #Forth. I'm building up some tools and have a few competing versions of tfunctions that either take different approaches, use different parameter formats, and/or return formats. But I don't want to re-implement the left, right, mid string functions without being sure that's the way to go.
I'm getting a lot of "off by one" errors.
Some are caused by my Pascal "it's a subscript, damn it" bias, and others by not using the right looping constructs.
Strings in Forth are a beginning address and a length. The length can be a maximum size available or the length of the current string. There's no dynamism here, nothing like AnsiStrings in #FreePascal. There are some conventional buffers that the standard definitions will not touch (the PAD) and other transient buffers that can be used with care.
'Tis what I signed up for. It's fun. Kinda. :)
-
AOC 2025 day 3 is when I start to realize that my usual tool sets in #Pascal or #Go have a lot of string handling functions that I just don't see in #Forth. I'm building up some tools and have a few competing versions of tfunctions that either take different approaches, use different parameter formats, and/or return formats. But I don't want to re-implement the left, right, mid string functions without being sure that's the way to go.
I'm getting a lot of "off by one" errors.
Some are caused by my Pascal "it's a subscript, damn it" bias, and others by not using the right looping constructs.
Strings in Forth are a beginning address and a length. The length can be a maximum size available or the length of the current string. There's no dynamism here, nothing like AnsiStrings in #FreePascal. There are some conventional buffers that the standard definitions will not touch (the PAD) and other transient buffers that can be used with care.
'Tis what I signed up for. It's fun. Kinda. :)
-
A deep and wide exposure on internet and computing technologies in early 2000s left me with very specific design taste and UI choices
Yes, I am looking for small XM music for this little baby. If anyone wants to compose something fresh up to 50KB and working with uFMOD plz leave a comment
There will be a little gfx widget above with effects and scroller
Yes, it’s a real ~80KB executable running on actual Windows 7 (works on XP too). #FreePascal makes it a bit more bearable to work with WinAPI
-
A deep and wide exposure on internet and computing technologies in early 2000s left me with very specific design taste and UI choices
Yes, I am looking for small XM music for this little baby. If anyone wants to compose something fresh up to 50KB and working with uFMOD plz leave a comment
There will be a little gfx widget above with effects and scroller
Yes, it’s a real ~80KB executable running on actual Windows 7 (works on XP too). #FreePascal makes it a bit more bearable to work with WinAPI
-
Hey fediverse! Released 3nity-media: lightweight media player in Free Pascal/Lazarus + libmpv (Linux/Windows).
Key features:
Audio/video with hardware accel
Playlists & 13k+ radio stations
Equalizer & stream recordingOpen source GPL: https://snapcraft.io/3nity-media
GitHub: https://github.com/NDXDeveloper/3nity-media
Try it? Feedback welcome!
-
Gedanken zu systemnaher Software, exotischen Programmiersprachen und warum nicht jedes Problem ein Framework braucht.
https://blog.jakobs.systems/micro/20260115-warum-purebasic-freebasic-lazarus/
#Developer #Purebasic #freepascal #lazarus #Framework #Software #Softwareentwickler
-
I've been working on an AD&D2e dungeon master toolkit gui application thingy in FreePascal/Lazarus this week. I'm using the Qt widget set, and documented a few obscure hacky things like loading embedded fonts and qss stylesheets baked into the executable, mapping LCL controls to their Qt equivalent, and accessing the underlying Qt bits of LCL components, etc....
There isn't much info about this on the wiki's (probably because it's hacky AF and not a particularly intended use case) - in any event, have at it: