Thread: Looking for 474~ Map & Heightmap/Heightfield for a Minecraft recreation project!

Page 1 of 2 12 LastLast
Results 1 to 10 of 17
  1. #1 Looking for 474~ Map & Heightmap/Heightfield for a Minecraft recreation project! 
    Registered Member wizardcm's Avatar
    Join Date
    Oct 2014
    Posts
    26
    Thanks given
    3
    Thanks received
    2
    Rep Power
    11
    Hello there!

    [For a TL;DR of the important stuff - skip to the end. The core of this post explains what I've done/tried so far]

    Throughout 2014 I helped work on a Minecraft recreation of RuneScape 2007 that got fairly popular, however because the owner was inexperienced the project slowly died off and he sold it.

    I, along with a few friends, want to do it again - but this time, properly. Now, I understand that there is no advertising allowed here, so I'm not going to link to the project itself - I just need some help with the next step.

    The goal with this request is this - I want to generate an accurate, to-scale, heightmap of the entire OSRS world (around cache 474) which I can then use to create a Minecraft world.

    For those who don't know, [Only registered and activated users can see links. ] of a hightmap.

    Once I have the heightmap, I can do the rest on the Minecraft end.

    Over the past few months, I've been exploring these forums and others for caches around 474, tools to read/access/extract the cache data, tools that can edit RS map data, and a whole lot more, including (but not limited to):

    1. [Only registered and activated users can see links. ] by peterbjornx
    2. [Only registered and activated users can see links. ] by Canownueasy
    3. [Only registered and activated users can see links. ] by Xaves
    4. [Only registered and activated users can see links. ] by Defyboy
    5. [Only registered and activated users can see links. ] by Fabian
    6. [Only registered and activated users can see links. ] by Hirapuis
    7. [Only registered and activated users can see links. ] by Paketa
    8. [Only registered and activated users can see links. ]


    Some of these tools have successfully read/extracted data, others have complained on launch (I can provide more specific errors/issues with any of these tools on request, but as this is not the core important thing in this post I'm not mentioning it now) - however, while they have taught me a fair bit about how the RSPS servers and caches work, none have brought me closer to goal in this post.

    TL;DR: In essence, I'm looking for an accurate 474 cache (primarily the map) and one of the following:
    • Help in creating an application (probably in java, I have a fair amount of experience in it) that can use the 474 map files and generate a [Only registered and activated users can see links. ]
    • Help in understanding how the map cache files work so I can make my own [Only registered and activated users can see links. ]generator for this project
    • Or, if you want to help significantly, I'm requesting a tool that can read ~474 cache data, find the map, load it, then generate a grayscale [Only registered and activated users can see links. ].


    I had zero experience in working with the RS cache before I decided to work on this project, but I am 100% willing to learn whatever more is needed.

    Thanks in advance for any help or suggestions!

    Also - apologies if this thread is in the wrong area, as mapping is part of the client I felt this was the most accurate spot for it.
    Reply With Quote  
     

  2. #2  
    Community Veteran

    mige5's Avatar
    Join Date
    Aug 2008
    Posts
    5,322
    Thanks given
    546
    Thanks received
    1,129
    Discord
    View profile
    Rep Power
    1806
    [Only registered and activated users can see links. ]
    ...
    Reply With Quote  
     

  3. #3  
    Registered Member wizardcm's Avatar
    Join Date
    Oct 2014
    Posts
    26
    Thanks given
    3
    Thanks received
    2
    Rep Power
    11
    Quote Originally Posted by mige5 View Post
    [Only registered and activated users can see links. ]
    While that looks really nice (and the screenshots are clearly from MCEdit), I don't see a download link or anything useful. Willing to share whatever code you had?

    To provide more context on my end - the plan is 1 RS tile = 2 MC blocks. I have buildings in Lumbridge, Falador, Burthorpe, Taverly, and more already designed and built, but don't have a to-scale landscape to place them on.
    Last edited by wizardcm; 12-29-2014 at 09:12 AM. Reason: Context
    Reply With Quote  
     

  4. Thankful user:


  5. #4  
    Registered Member wizardcm's Avatar
    Join Date
    Oct 2014
    Posts
    26
    Thanks given
    3
    Thanks received
    2
    Rep Power
    11
    In the meantime, I guess I might as well explore how the client calculates heights, and attempt to get that saved to a text file or something. This could get interesting...
    Reply With Quote  
     

  6. #5  
    07craft Planner

    Join Date
    Mar 2014
    Posts
    21
    Thanks given
    1
    Thanks received
    4
    Rep Power
    9
    We have found some things that have gave us a huge step forward. We have created a heightmap via a 2d map viewer posted within these forums. There are a few things to be worked on still though, so any little bit helps.
    Reply With Quote  
     

  7. #6  
    Registered Member wizardcm's Avatar
    Join Date
    Oct 2014
    Posts
    26
    Thanks given
    3
    Thanks received
    2
    Rep Power
    11
    Quote Originally Posted by RootPC View Post
    We have found some things that have gave us a huge step forward. We have created a heightmap via a 2d map viewer posted within these forums. There are a few things to be worked on still though, so any little bit helps.
    For extended detail on this, for anyone who wants to mess with it themselves, we've modified this [Only registered and activated users can see links. ] to display the heights rather than textures, resulting in significantly more useful data. This is done through turning values 0 to -2040 (max RS world height) into 0 to 255 (max MC world height). This was achieved using the cache provided in the [Only registered and activated users can see links. ].

    The next step is to have the 2D Map Viewer export the entire map to an image file, or each chunk of tiles to its own file (which can then be stitched together). Images below.

    Heightmap (screenshot from client) - only brightness matters, colour is irrelevant.


    WorldPainter - by importing the heightmap above into WorldPainter, a world is generated (in this case, at 200% scale - 1 RS tile = 2 MC blocks).


    Minecraft - and here is a resulting screenshot ingame.


    The snippets above include all the data we've attempted to render in WorldPainter so far - once we've exported the entire map we can then load it all up in one go. We will also need to determine more realistic height parameters, as having land near bedrock with aspects of the world touching Minecraft world height is unrealistic (there are caves and stuff in RS).

    If you are interested in helping, respond below and we'll provide the code changes to achieve this.
    Reply With Quote  
     

  8. #7  
    Registered Member wizardcm's Avatar
    Join Date
    Oct 2014
    Posts
    26
    Thanks given
    3
    Thanks received
    2
    Rep Power
    11
    Update: We're still looking for a 474 heightmap!

    We have determined the Enrisep map is from before June 2006, so we still need to try and get a 474 map going. As of right now, any 317loading474 result in a loop of the following two lines.

    Requesting file CacheFileDescriptor(CacheIndex(id = 4, size = 3536), 617, 8166, 8868)
    Requesting file CacheFileDescriptor(CacheIndex(id = 4, size = 3536), 616, 7073, 8861)
    This eventually causes the Map Viewer to run out of memory.

    So far we've downloaded over 600mb worth of caches (not to mention even more clients, servers and more). Actual 474 caches are in the new format, so our 317+ map viewer can't load it.



    cache_474 is loaded below - as you can see, entire chunks are missing. From recent research, I've learned that this has something to do with the encryption added in the 400s.




    HOWEVER, onto actual progress. Below you can see examples of the entire RuneScape January-May 2006 map loaded on a Minecraft Dynamic Map. With and without pathing/building outlines.









    (black patches are just lighting issues from an editor I used to add the pathing overlay, the dynamic map makes them look worse than they are)

    Everything you see is perfectly scaled in both sizing and depth, so going down the hill on tutorial island is realistic. While for paths and stuff we might have to tweak landscape so players can actually walk up it (landscape smoothing is very strong in RuneScape but.. well, blocky in Minecraft) in general this is AWESOME and significantly better than doing the whole landscape from scratch.

    Next step is to either try and fix the loops with 317loading474, or to mess around with extracting the maps from 474 and loading them ourselves into a 317 cache.
    Reply With Quote  
     

  9. #8  
    Community Veteran

    mige5's Avatar
    Join Date
    Aug 2008
    Posts
    5,322
    Thanks given
    546
    Thanks received
    1,129
    Discord
    View profile
    Rep Power
    1806
    is that cache_474 from me? - if it is u need to edit the map_index loader to this:
    Code:
    abyte2 = streamLoader.getDataForName("map_index");
    		Stream stream2 = new Stream(abyte2);
            totalRegions = stream2.readUnsignedWord();
    		j1 = totalRegions;
            mapIndices1 = new int[j1];
            mapIndices2 = new int[j1];
            mapIndices3 = new int[j1];
            for(int i2 = 0; i2 < j1; i2++)
            {
                mapIndices1[i2] = stream2.readUnsignedWord();
                mapIndices2[i2] = stream2.readUnsignedWord();
                mapIndices3[i2] = stream2.readUnsignedWord();
            }
    also iirc -400 height is sea level on rs maps.
    ...
    Reply With Quote  
     

  10. Thankful user:


  11. #9  
    Registered Member wizardcm's Avatar
    Join Date
    Oct 2014
    Posts
    26
    Thanks given
    3
    Thanks received
    2
    Rep Power
    11
    Quote Originally Posted by mige5 View Post
    is that cache_474 from me? - if it is u need to edit the map_index loader to this:
    Code:
    abyte2 = streamLoader.getDataForName("map_index");
    		Stream stream2 = new Stream(abyte2);
            totalRegions = stream2.readUnsignedWord();
    		j1 = totalRegions;
            mapIndices1 = new int[j1];
            mapIndices2 = new int[j1];
            mapIndices3 = new int[j1];
            for(int i2 = 0; i2 < j1; i2++)
            {
                mapIndices1[i2] = stream2.readUnsignedWord();
                mapIndices2[i2] = stream2.readUnsignedWord();
                mapIndices3[i2] = stream2.readUnsignedWord();
            }
    also iirc -400 height is sea level on rs maps.
    Honestly, I've explored hundreds of pages on these forums so I don't know for sure if cache_474 is from you, but I'm willing to try your suggestion anyway.

    However, could you provide more context to that code? Here's what the Map Viewer I'm using has at the moment.

    DataBuffer b = config.entry("map_index").buffer();
    int count = b.length() / 7;

    regionHash = new int[count];
    regionObjectMapIndex = new int[count];
    regionLandscapeIndex = new int[count];
    regionPreload = new int[count];

    for (int reg = 0; reg < count; reg++)
    {
    regionHash[reg] = b.getShortUnsigned();
    regionLandscapeIndex[reg] = b.getShortUnsigned();
    regionObjectMapIndex[reg] = b.getShortUnsigned();
    regionPreload[reg] = b.getUnsigned();
    }
    I'll be playing around with it myself while waiting for your response. And thanks for the water level information, that'll definitely come in handy!
    Reply With Quote  
     

  12. #10  
    Community Veteran

    mige5's Avatar
    Join Date
    Aug 2008
    Posts
    5,322
    Thanks given
    546
    Thanks received
    1,129
    Discord
    View profile
    Rep Power
    1806
    Quote Originally Posted by wizardcm View Post
    Honestly, I've explored hundreds of pages on these forums so I don't know for sure if cache_474 is from you, but I'm willing to try your suggestion anyway.

    However, could you provide more context to that code? Here's what the Map Viewer I'm using has at the moment.



    I'll be playing around with it myself while waiting for your response. And thanks for the water level information, that'll definitely come in handy!
    try this:
    Code:
    DataBuffer b = config.entry("map_index").buffer();
    int count = b.getShortUnsigned();
    
    regionHash = new int[count];
    regionObjectMapIndex = new int[count];
    regionLandscapeIndex = new int[count];
    
    for (int reg = 0; reg < count; reg++)
    {
    regionHash[reg] = b.getShortUnsigned();
    regionLandscapeIndex[reg] = b.getShortUnsigned();
    regionObjectMapIndex[reg] = b.getShortUnsigned();
    }
    ...
    Reply With Quote  
     

  13. Thankful user:


Page 1 of 2 12 LastLast

Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. Replies: 11
    Last Post: 10-09-2010, 12:30 AM
  2. Looking for 474 maps
    By Shkic in forum Requests
    Replies: 0
    Last Post: 12-19-2009, 02:53 PM
  3. [req] looking for some maps
    By guppycity in forum Requests
    Replies: 1
    Last Post: 09-08-2009, 01:34 AM
  4. What's the 474 map file for wildy ditch?
    By Jon_ in forum Requests
    Replies: 0
    Last Post: 08-25-2009, 05:52 AM
  5. Looking for 474 client
    By Koston in forum Requests
    Replies: 2
    Last Post: 05-13-2009, 02:28 AM
Tags for this Thread

View Tag Cloud

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •