Coder Social home page Coder Social logo

32bit ARM support about mcmap HOT 23 CLOSED

spoutn1k avatar spoutn1k commented on July 22, 2024
32bit ARM support

from mcmap.

Comments (23)

pfiszer avatar pfiszer commented on July 22, 2024

And I'm trying to run it on RaspberryPi 4B with 4GB of RAM

from mcmap.

spoutn1k avatar spoutn1k commented on July 22, 2024

Hi ! Thanks for raising this issue.

The compilation failed, which means the mcmap executable has not been generated, so ./mcmap is correctly returning the warning that the file does not exist.

However the compilation error is interesting. I have no way of replicating the error on hand, but it looks like something changes in the ARM version of the stl. Let me write patches so you can test them, if you have some time.

from mcmap.

pfiszer avatar pfiszer commented on July 22, 2024

Yeah, I've got some time, when you patch it I can test it

from mcmap.

spoutn1k avatar spoutn1k commented on July 22, 2024

Can you clone and test the branch armFix ? I noticed an x86_64 assumption that might break on ARM, it might fix your issue.

from mcmap.

spoutn1k avatar spoutn1k commented on July 22, 2024

So I got my hands on a 32bit ARM system and I managed to replicate your error.
While the branch fixes the compilation errors, and not without complaining a bunch, the resulting executable produces .. Interesting results.
I don't know if you are still interested, but I am working on it.
output

from mcmap.

spoutn1k avatar spoutn1k commented on July 22, 2024

The latest commit fixes the rendering errors. Expect a merge soon, then if no comments are made, I will close the issue.

from mcmap.

pfiszer avatar pfiszer commented on July 22, 2024
src/canvas.cpp:239:65: note:   mismatched types ‘std::initializer_list<_Tp>’ and ‘long long unsigned int’     
       std::max(uint64_t(ceil(log2(sectionPalette->size()))), 4ul);
                                                                 ^
make: *** [Makefile:40: src/canvas.default.o] Error 1

from mcmap.

spoutn1k avatar spoutn1k commented on July 22, 2024

Well yes that is the error on the main branch. You have to use the armFix branch, where I put the fixes to your specific situation. I mentionned it in the previous comments, but I prefer to reiterate as you seem to have overlooked it.

If you are not familiar with git, you can check which branch you are on using git branch, and change to another branch using git checkout <branch name>.

The armFix branch executable created a full image with no errors in a reasonable time on a Raspberry Pi 4B 4g with stock RPiOs, so if you haven't made custom installs it should work for you.

from mcmap.

pfiszer avatar pfiszer commented on July 22, 2024

It compiled fine, but when I tried to run it I got this error:

 mcmap 3.0.0 32bit (compatible with Minecraft v1.13+)
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted

from mcmap.

spoutn1k avatar spoutn1k commented on July 22, 2024

Please give some more context. What did you run ? The mcmap options are important.

from mcmap.

pfiszer avatar pfiszer commented on July 22, 2024

I run ./mcmap ~/.minecraft/saves/Kebab

from mcmap.

spoutn1k avatar spoutn1k commented on July 22, 2024

Well, if you are willing to, please send a compressed archive of the save file so that I can take a look.
In the meantime, try using the -from -to options to reduce the load, as this is a raspberry after all it is not capable of doing too much. The usage of options is detailed in the README.

from mcmap.

pfiszer avatar pfiszer commented on July 22, 2024

I run ./mcmap -from 0 0 -to 200 100 ~/.minecraft/saves/Kebab
and got :

mcmap 3.0.0 32bit (compatible with Minecraft v1.13+)
Loaded 44 colors out of the 731 declared
[Error] Nothing to output: canvas is empty
Job complete.

The output file has 0 bytes.

Here is the world:
https://mega.nz/file/uX5nEBYZ#RKl8EMr-PrXvRyCj4AjCOgWAwDA3ZZ55zXtUvnI_doE

from mcmap.

spoutn1k avatar spoutn1k commented on July 22, 2024

Okay so this is what your world looks like (cropped):
segments

mcmap creates an image for the whole world, which is pretty empty. Unfortunately, there is no way of knowing. On my beefy system, it squeezes out a 40,000x20,000 pixels image to fit everything, so you HAVE to tell it what to render or the pi will run out of memory.

Try with greater values: ./mcmap -from -1024 -1024 -to 1024 1024. On my pi however it created an image from the coordinates you mentionned, try cleanng and recompiling: make clean && make -j.

from mcmap.

pfiszer avatar pfiszer commented on July 22, 2024

I got [Error] Nothing to output: canvas is empty again, which pi are you using?

from mcmap.

pfiszer avatar pfiszer commented on July 22, 2024

It doesn't detect any region files

from mcmap.

pfiszer avatar pfiszer commented on July 22, 2024

oh wait

from mcmap.

spoutn1k avatar spoutn1k commented on July 22, 2024

The exact same as you; the pi is not important.

Now I can only think that the world is different or not accessible, can you try with the save you provided ? Download it in another folder and try with this one.

from mcmap.

pfiszer avatar pfiszer commented on July 22, 2024

I copied all of the region files to the pi again and It's working fine

from mcmap.

spoutn1k avatar spoutn1k commented on July 22, 2024

Did you get an output ?

from mcmap.

pfiszer avatar pfiszer commented on July 22, 2024

yes

from mcmap.

spoutn1k avatar spoutn1k commented on July 22, 2024

Great then. Expect a merge this week-end, then the changes will be available in the main (NBT19133) branch.

from mcmap.

spoutn1k avatar spoutn1k commented on July 22, 2024

After a bit of refactoring, the changes are merged into the main branch. Thanks for bringing that error up. Closing the issue.

from mcmap.

Related Issues (20)

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.