Git Product home page Git Product logo

Comments (4)

TheMachine02 avatar TheMachine02 commented on September 12, 2024

Indeed, both the build.bat and the build_model.sh / build_model.bat still use the old spasm. Thanks for pointing it out, I completely looked over it, gonna fix it asap.

There was indeed plan to implement it in C. However, it is not as straightforward as it could be. A lot of memory is reorganized at the engine init (so much that it clobbers C heap), and before I look in detail what C lib linking / using does, I can't guarantee the correct pathing of the linking and function.

For records, the engine init save the whole RAM in a flash image (stored into the swap area), and restore it at exit. Consecutively, it use both $D0 and $D3 RAM page in full along side first quarter of $D1. And of course the whole VRAM.

So in order to create a C wrapper, we need :

  • To make sure what memory areas are used by all the C lib of the toolchain
  • Libload linking mechanism and make sure we dont break it
  • Having a perfectly crafted initialization RAM image for the library (I implemented half of it currently thanks to power of fasmg)
  • Create the actual library with correct export value and function wrapper (all function take right now register as argument instead of stack)

It is kinda why I wanted to wait for the RAM area used within the lib to stabilize (which in pursue of performance never really happened).
Anyway, I'll create a project for that, and if you have any question, please ask.
One thing that could be great from this is also the creation of an underlying doc in the same time, since it will force to review every function.

from virtual3d.

TheMachine02 avatar TheMachine02 commented on September 12, 2024

Spasm should have been removed entirely in commit 1b0a151
Can you please test the windows build system ? Thanks.

from virtual3d.

marcrobm avatar marcrobm commented on September 12, 2024

the windows build system ?

Windows builds now work flawlessly.

from virtual3d.

TheMachine02 avatar TheMachine02 commented on September 12, 2024

Perfect ! Closing the issue. For the C port, a new issue should be created (and there is also now the project page).

from virtual3d.

Related Issues (8)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.