Jump to content

tinyBigGAMES

Members
  • Content Count

    55
  • Joined

  • Last visited

  • Days Won

    4

tinyBigGAMES last won the day on November 27 2024

tinyBigGAMES had the most liked content!

Community Reputation

71 Excellent

About tinyBigGAMES

  • Birthday January 15

Technical Information

  • Delphi-Version
    Delphi 12 Athens

Recent Profile Visitors

4887 profile views
  1. tinyBigGAMES

    Some new projects...

    Yes.
  2. tinyBigGAMES

    Some new projects...

    ๐Ÿš€ Explore My GitHub Projects! ๐ŸŒŸ Check out my current GitHub tools and libraries Iโ€™ve been working on! ๐ŸŽฎ JetInfero Local LLM Inference Library ๐ŸŽจ Aurora Game Toolkit Advanced Game Development Toolkit ๐Ÿ“ฆ JetZip Zip It Fast, Zip It Easy! ๐Ÿค– Lumina Local Generative AI Toolkit ๐Ÿ”ฅ Pyro Pyro Game Library for Delphi ๐Ÿ›  CPas Static C Libraries for Delphi ๐Ÿ“€ PSFML SFML for Pascal Developers ๐Ÿง  MemoryDLL In-Memory DLL Loading & Execution for Pascal ๐Ÿ•น DSDL SDL for Delphi Developers ๐ŸŒ• Callisto Lua Scripting for Delphi ๐Ÿ“œ CScript C99 Scripting Engine
  3. tinyBigGAMES

    Some new projects...

    https://github.com/tinyBigGAMES/jetLua
  4. tinyBigGAMES

    Some new projects...

    What if you wanted an even smaller Lua integration for Delphi? Just using stock Lua 5.4.7+, statically linked directly into your Delphi executable with no external overhead, and automatic registration of native Delphi routines, all in a single unit? Introducing Chandra - Lua Scripting for Delphi. A client needed a tiny, simpler, but capable Lua scripting solution than my recently released PLUA. The Chandra.o file (just Lua compiled into a single translation unit) is linked directly into Delphi via {$L Chandra.o} with ~600kb overhead. It can directly register published Delphi class methods via RTTI. Enjoy, happy coding! ๐Ÿ‘€ https://github.com/tinyBigGAMES/Chandra
  5. tinyBigGAMES

    Some new projects...

    Hi, thanks! At the moment, I'm only targeting Windows. Mostly because much of that audience is on Windows. I won't rule out other platforms, however. The products that I create are for clients using Windows. The libs are open source so if anyone wishes to port to other platforms, go for it. Note that often, a library may take express advantage of a feature that is limited or unique to the Windows platform, however. In the case of games for example, the last time I looked at the Steam stats, the vast majority of users there are still on Windows. It's no debate that Windows still has the best development tools, and it is still much easier to release on it. But, like I said, I'm not against it per say, just that for me, in the current moment, I have no need or desire to release anywhere else.
  6. tinyBigGAMES

    Some new projects...

    Here are a few more projects: PLUA: Lua for Pascal PLUA is a lightweight and powerful ๐Ÿ“ฆ that integrates LuaJIT scripting into Delphi, enabling you to easily add a scripting layer to your Delphi apps. Whether you're building dynamic software ๐Ÿ–ฅ๏ธ, adding mod support ๐Ÿ› ๏ธ, or simply looking for a way to make your apps more flexible and customizable, PLUA makes this possible through simple, straightforward APIs. CPas: Static C Libraries for Delphi A collection of hand-picked, high-quality C libraries, compiled into a single translation unit and seamlessly integrated into Delphi. This approach eliminates the need for external DLLs, runtime extraction, or loading them in memory, simplifying the development process and reducing potential compatibility issues, such as antivirus ๐Ÿ›ก๏ธ interference. Mamba Game Toolkit: Advanced 2D Game Library for Delphi. Mamba Game Toolkit (MGT) is a sophisticated yet easy-to-use 2D game development library for Delphi. Tailored to meet the needs of Windows developers, MGT offers a streamlined approach to building 2D games, focusing on simplicity, performance, and reducing external dependencies. With everything linked directly into the executable๏ธ, it eliminates the need for runtime DLLs, simplifying deployment and enhancing the overall stability and reliability of your projects. Enjoy! ๐Ÿ‘€
  7. tinyBigGAMES

    Some new projects...

    Here are a few recent projects I've created that might be useful to others: CScript: C99 Scripting Engine for Delphi ๐Ÿ…ฒ๐Ÿ†‚cript represents a sophisticated ๐Ÿ…ฒ99 scripting engine meticulously crafted for experienced ๐Ÿง‘โ€๐Ÿ’ป Delphi developers. Leveraging the compact yet highly versatile TinyCC compiler, ๐Ÿ…ฒ๐Ÿ†‚cript seamlessly integrates โš™๏ธ dynamic backend code generation into the Delphi development environment. With ๐Ÿ…ฒ๐Ÿ†‚cript, Delphi developers can ๐Ÿ› ๏ธ compile and execute ๐Ÿ…ฒ scripts at runtime, directly in ๐Ÿ’พ memory, and generate output in the form of ๐ŸชŸ Win64 executables (.exe), dynamic-link libraries (.dll), or ๐Ÿ“‚ object files (.obj). MemoryDLL: In-Memory Win64 DLL Loading & Execution for Pascal. The MemoryDLL unit provides advanced functionality for loading dynamic-link libraries (DLLs) directly from memory in Win64 environments. Unlike traditional methods that involve loading DLLs from the file system, MemoryDLL allows you to load DLLs from byte arrays ๐Ÿ“‚ or memory streams ๐Ÿ’พ, retrieve function addresses, and unload themโ€”all in-memory. This library is ideal for Delphi/FreePascal developers who need to manage DLLs without relying on the filesystem, enhancing both performance โšก and security ๐Ÿ”’. PSFML: SFML for Pascal PSFML is a Pascal binding for the โšก Simple and Fast Multimedia Library (SFML), providing Pascal developers with a straightforward way to utilize SFMLโ€™s multimedia features directly in their projects. Whether building ๐ŸŽฎ games, ๐Ÿค– interactive applications, or ๐ŸŽฅ multimedia tools, PSFML integrates smoothly with SFML, bringing robust multimedia functionality to the Pascal ecosystem. Enjoy! ๐Ÿ‘€
  8. tinyBigGAMES

    CPas - C for Delphi

    Latest update: - Added miniaudio
  9. tinyBigGAMES

    CPas - C for Delphi

    Using the new Clang based C++ Builder (win64 modern platform), which can compile more C/C++ code than it could in the past, which means it is more likely to be able to compile your favorite C library. You compile the code to generate .o files, which Delphi can consume with {$L unit1.o} for example. I have a unit called CPas.CRuntime that references all the missing c runtime routines that the C lib may reference and thus allow Delphi to compile and use the static C library. Continue to update CPas.CRuntime as you encounter references that you may need. I have included a far bit already. โ€œNow๏ปฟ you can link in static C libs directly into Delphi:๏ปฟโ€ means you can take your favorite C lib, such as sqlite and link inside the EXE vs calling it from a DLL. I have sqlite3 as an example in the repo. Not all of them will be possible, but you should be able to do more with the new tool chain than you ever could before. This does require 12.1+
  10. tinyBigGAMES

    CPas - C for Delphi

    Ok, I've revived this project. Now you can link in static C libs directly into Delphi: tinyBigGAMES/CPas: Static C Libraries for Delphi (github.com)
  11. tinyBigGAMES

    Dllama - Local LLM inference Library

    It evolved into tinyBigGAMES/LMEngine: Local LLM Inference (github.com) for Vulkan based GPUs and tinyBigGAMES/Infero: An easy to use, high performant CUDA powered LLM inference library. (github.com) for CUDA GPUs. More stable and supports using up to full model context if you have the resources on your device.
  12. Dllama, a simple and easy to use library for doing local LLM inference directly from Delphi (any language with bindings). It can load GGUF formatted LLMs into CPU or GPU memory. Uses Vulkan back end for acceleration. Simple Example uses System.SysUtils, Dllama, Dllama.Ext; var LResponse: string; LTokenInputSpeed: Single; LTokenOutputSpeed: Single; LInputTokens: Integer; LOutputTokens: Integer; LTotalTokens: Integer; begin // init config Dllama_InitConfig('C:\LLM\gguf', -1, False, VK_ESCAPE); // add model Dllama_AddModel('Meta-Llama-3-8B-Instruct-Q6_K', 'llama3', 1024*8, '<|start_header_id|>%s %s<|end_header_id|>', '\n assistant:\n', ['<|eot_id|>', 'assistant']); // add messages Dllama_AddMessage(ROLE_SYSTEM, 'you are Dllama, a helpful AI assistant.'); Dllama_AddMessage(ROLE_USER, 'who are you?'); // display the user prompt Dllama_Console_PrintLn(Dllama_GetLastUserMessage(), [], DARKGREEN); // do inference if Dllama_Inference('llama3', LResponse) then begin // display usage Dllama_Console_PrintLn(CRLF, [], WHITE); Dllama_GetInferenceUsage(@LTokenInputSpeed, @LTokenOutputSpeed, @LInputTokens, @LOutputTokens, @LTotalTokens); Dllama_Console_PrintLn('Tokens :: Input: %d, Output: %d, Total: %d, Speed: %3.1f t/s', [LInputTokens, LOutputTokens, LTotalTokens, LTokenOutputSpeed], BRIGHTYELLOW); end else begin Dllama_Console_PrintLn('Error: %s', [Dllama_GetError()], RED); end; Dllama_UnloadModel(); end.
  13. tinyBigGAMES

    CPas - C for Delphi

    Hi, for now yes. I may revisit it in the near future.
  14. tinyBigGAMES

    AskChatGPT

    Integrate with OpenAI's ChatGPT API seamlessly from Delphi. Features Easily access the GPT API from a single class Supports both GPT3 and GPT4 models API key can be read from ChatGPTApiKey environment variable if defined Automatically sanitizes input to minimize errors Ability to define proxy settings Adjust personality response with a precision range of 0-1, from precise to creative Stream responses just like in the ChatGPT web interface Usage Get your API Key: https://platform.openai.com/account/api-keys Define environment variable ChatGPTApiKey and assigned your API key. You may have to reboot your machine for it to take effect. // Basic example showing how to query ChatGPT uses AskChatGPT; var LChat: TAskChatGPT; begin LChat := TAskChatGPT.Create; try // set chat params LChat.Model := GPT3; // use the GPT3 model, or GPT4 for the GPT4 model LChat.Creative := 1; // 0-1, 0 being most percise and 1 being most creative // ask question LChat.Question := 'What is Delphi?' // print question PrintLn('Q: %s', [LChat.Question]); // process and print response if LChat.Process then PrintLn('A: %s', [LChat.Response]); finally LChat.Free; end; end; Media Download https://github.com/tinyBigGAMES/AskChatGPT
  15. 1. If you have not done so, make sure you have excluded all Delphi related folders + your project folders from real-time virus scanning 2. ASLR is enabled by default so there may be places in your code that are now suddenly invalid whereas it worked perfectly before. There may be places where you must use NativeInt/NativeUInt instead for example. So, check for ASLR related issues that may exist in your code base. After doing the above, the constant AVs and crashes diminished for me.
ร—