Jump to content
CorinaMarie

CoriBoom Partial Mythbusting - Building Style Tilesets Not Locked Down in the EXE

131 posts in this topic Last Reply

Highlighted Posts

Posted:
Last Online:  
 

You can pass whatever you want in fact, it just needs to evaluate to a valid number. So 0x0000000000001 is the same as passing 0x1. You can even use decimal numbers if you like, but that's not really useful I guess.

  • Like 3

Visit www.growifier.com for ploppable residentials

Love playing hearts and other card games? Have a look at www.whisthub.com!

Share this post


Link to post
Share on other sites
Posted:
Last Online:  
 

0xB5C001FF is the most complete BSC Tileset available. Not surprisingly, it's SimGoober's OG. But B5Cxxxxx is pretty much our OG range. 

I think it will be important to test how much editing can be done. If we start with a single tileset, how many could be added via savegame editing before there's a problem? Can you start with one and then add the full spectrum (or vice versa) without worrying about checksums? Or is there a limit? 

  • Thanks 1

BSC Custodian, SC4D staff, & LEX Admin

BSC LEX Superior Collections: high quality content, one click away

Share this post


Link to post
Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    1 minute ago, xxdita said:

    If we start with a single tileset, how many could be added via savegame editing before there's a problem?

    I've tested with 32 enabled at the same time. Ofc, in the game it takes a minimum of 32 game years to cycle thru all of them.

     

    2 minutes ago, xxdita said:

    ... without worrying about checksums?

    Since @smf_16 understands the checksums, I imagine it's already being calculated in the SaveGameEditor program. It was only me who was editing via Reader where I didn't even know that exemplar had a checksum and, oddly, not changing it didn't bother the game in any way I could see.

    • Like 4

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    I haven't had any luck with Industrials yet. It's just a totally different beast. So I still see StartUp Manager as the superior option for managing cities/regions. 

    Have you tried it yet? 


    BSC Custodian, SC4D staff, & LEX Admin

    BSC LEX Superior Collections: high quality content, one click away

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    I very briefly tried a couple things with industrial OGs and that was a dismal flop. I won't say nothing can be done with them, but I haven't looked into them enough to even have a plan to try.

    • Like 2

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    45 minutes ago, CorinaMarie said:

    Since @smf_16 understands the checksums, I imagine it's already being calculated in the SaveGameEditor program. It was only me who was editing via Reader where I didn't even know that exemplar had a checksum and, oddly, not changing it didn't bother the game in any way I could see.

    Correct, my command line utility recalculates the checksum when it saves the file again. You can verify in the reader that bytes 4-8 will in fact have changed. It's interesting that the game ignores the checksum, while it was definitely not the case with for example the Lot subfile.

    By the way, pretty much every subfile of the Savegame has the same structure, being

    DWORD	Size in bytes
    DWORD	CRC Checksum
    DWORD	Memory address
    All the rest

    One notable exception being 0x499b23fe (cSC4COMSerializer::SaveClassObjects).

    • Like 1
    • Thanks 3

    Visit www.growifier.com for ploppable residentials

    Love playing hearts and other card games? Have a look at www.whisthub.com!

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Right. It's murky waters, just because each type behaves uniquely. Ag lots are all Outs, 0x3002, whereas farm fields don't have a building style, and there are no Maxis IA Anchors or Mech lots to even know what those could do. Yet the IA Developer has the same Style Percentages of 0x3001 and 0x3002 set at 50% each. So it's hard to know if that even does anything. 

    • Like 1

    BSC Custodian, SC4D staff, & LEX Admin

    BSC LEX Superior Collections: high quality content, one click away

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    @CorinaMarie and @Cyclone Boom 

    This was the coolest potential new development for the game since a long time, which is saying something what with modding going on for the last 17 years.  I'm dying to hear if it's still coming along, or if there's been a snag.

     

    -Matt

    • Like 4

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Awesome to hear.  I understand the usefulness of moving buildings to other tilesets automatically, but that's not a major barrier to me, as you only need to edit each one once.  The major hangup I saw in this thread was this:

    On 2/18/2020 at 10:06 PM, CorinaMarie said:

    Ofc, that right now part requires a wee bit of hex editing in the save game data file in between saving a city tile, quitting, hex tweaking, and then reloading the game. I'm still working on a tutorial for that so anyone who wants to give it a whirl can try it for themselves.

    I think the breaking point of usability is the ability to change tilesets without quitting and restarting the game.  If that's no longer an issue, I would be super interested in a forum-attachment release of where it's at now.

    • Like 4

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    2 minutes ago, Indiana Joe said:

    I think the breaking point of usability is the ability to change tilesets without quitting and restarting the game.

    Ah, well that's still not an option. The hex editing part is gone tho.

    • Like 3
    • Yes 1

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    So, slapping one's knee and calling it a day is fine and all.  But it's hard to express just how cool I think this would be to have in the game, with full button functionality like the original tilesets.  It's just too good---but is it too good to be true?

    I don't know how much you guys have explored this in PMs, Cori and CB, but for the casual outside observer, I find this interesting and wanted to sum it up.

    So this has been glossed over briefly:

    On 2/2/2020 at 1:18 AM, CorinaMarie said:

    As CB mentioned, the extra toggles we've added don't have any influence on the new tile sets. For the new ones, if they are listed in the Tract property then they are always on. It might be possible that @simmaster07 could work his magic and let the internal code recognize a new, higher amount of tile sets that the toggles would work for.

     

    On 2/17/2020 at 3:12 AM, Cyclone Boom said:

    This will only be for visual use as a proof of concept. The actual functionality of the custom tileset toggles will likely require other forms of advanced modding, such as though a masterful DLL which provides the necessary integration. *;)

    We call this "magic," in jest of course.  We know modding some things previously locked in SimCity4.exe is possible through DLLs.  Simmaster07 documented a bit of that exploration...

    https://community.simtropolis.com/forums/topic/69566-sc4fix-third-party-patches-for-sc4/?page=2

    https://community.simtropolis.com/forums/topic/70495-game-framework-compatible-dll-loading-and-other-modding-discoveries/

    ...and I don't know his current endeavors, but based on his links it would seem he graduated from college and is probably busy starting a career.  Don't know if he works on SC4 at all anymore.   But he made the following important advancements:

    1. Allowing DLLs to be loaded by the game
    2. Allowing said DLLs to overwrite data previously locked in the executable file

    Doing this is rather difficult because:

    1. You must be able to program in C++ to write the DLL (possible to learn, with some more info here: https://github.com/nsgomez/gzcom-dll/wiki)
    2. You must be able to partially Debug or Decompile SimCity 4.exe to find things that can be overwritten

    That last one is the kicker, the hardest part.  There is very scant documentation about how to do this, and most of it is because people are scared of the EULA.  Now, I hate mentioning the word EULA because it is a legal document and legal documents are meant to be interpreted.  Which means as soon as you put it in your post you get one hundred comments coming from all over that say

    Quote

    This is my opinion on the EULA and legal things, which is slightly different from everyone else's because that's how legal interpretation works, but I feel the need to share it because it feels like the rest of the post is over my head and I don't realize I'm derailing the whole discussion by turning it into a legal one instead of a modding one.

    End rant.  Back to modding.

    According to the few people who have explored DLL modding, the Aspyr Mac version is the real Rosetta Stone because some things that are encrypted in the compiled code of the Windows version are readable in that version.  It is superior for debugging/decompiling the executable.  That's what ultimately allowed Simmaster to create SC4Fix.

    There's also apparently this:

    On 12/26/2015 at 1:01 AM, simmaster07 said:

    Apparently Steam itself sets a flag on any game it launches (excluding non-Steam games) to hide programs' threads from debuggers. Thankfully, someone discovered this long ago and developed a fix that prevents Steam from setting this flag, so I'm now able to get a debugger into version 641 and reproduce crashes there.

    Which might reference ScyllaHide.  I don't think I've been able to get ScyllaHide to work however.

    So it would seem that the proper environment for learning about DLL modding would require you to have access to multiple versions of SimCity 4:

    1. Original disc version
    2. Steam/GOG/DRM version
    3. Aspyr Mac version, the original of which has been superseded by a 64 bit version (still useful or not?)

    And then you would take a Debug/Decompile program and run the executable through it.  That's the part that's questionably forbidden, but just reading the program is something the computer does anyway, and that's the logic that DLL modders have used in the past.  As long as you don't modify the EXE.

    And as for what needs to happen to enable Building Style radio buttons, I would speculate that there are at least 2 important parts that need to talk to each other:

    1. The User Interface
    2. The Building Development Simulator

    Someone has explored DLL modding the UI, a long time ago:

    https://community.simtropolis.com/forums/topic/16356-adding-features-to-the-exe/?tab=comments#comment-473846

    But no one has found any code that seems to relate to the Building Development Simulator, that I know about.  So that's the uncharted part.  In a quick sentence, what would need to happen is: someone with the Mac game needs to hit it with a debugger/decompiler and look for references to the IDs used in the Building Development exemplars.

    • Like 8

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Hey Cori & CB,

    I know it's been a while since there's been an update on this, but I wanted to ask a couple of quick questions about your work on custom tilesets.

    1) Is savegame editing required to modify the "Tract Developer Available Styles" property for a new and/or existing city? Or can this property be modified with a simple plugin?

    2) If new buttons for tilesets need a dll to be functional, would there be a way to simply override the original four tileset buttons with a plugin? There's post on page one that seems to indicate this is possible, if I'm reading it correctly. Or would this also require a dll?

    Regarding question #2: Obviously, this would still confine players to four tilesets at any given moment. However, it would allow players to choose any four tilesets they wish at a given time -- all custom, or a mix of Maxis and custom -- and then toggle back and forth between those four tilesets while in-game.

    • Like 2

    🚜 Get well soon, Cori! 🚜

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Wow! I didn’t even know about this until just now! How has the progress been!?

    • Like 2

    Ocram's Razor: Though "more things shouldn't be used than are necessary," they're just too fun to pass up! Expect many verbose arguments from me. I will try to write abstracts before or short summaries after from now on.

    Words to live by:
    "Now there are varieties of gifts, but the same Spirit. But to each one is given the manifestation of the Spirit for the common good. For to one is given the word of wisdom through the Spirit, and to another the word of knowledge according to the same Spirit; to another faith by the same Spirit, and to another gifts of healing by the one Spirit... But one and the same Spirit works all these things, distributing to each one individually..." 1 Corinthians 4-11

    "Do not worry about tomorrow; for tomorrow will care for itself. Each day has enough trouble of its own." Matthew 6:34
    "Do not judge so that you will not be judged. For in the way you judge, you will be judged; and by your standard of measure, it will be measured to you." Matthew 7:1-3

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    12 hours ago, BartonThinks said:

    1) Is savegame editing required to modify the "Tract Developer Available Styles" property for a new and/or existing city? Or can this property be modified with a simple plugin?

    1a) The tweak to the "Tract Developer Available Styles" is edited in a plugin. Any new city embeds this info inside and only those tilesets defined in it are available in said city tile for all eternity (with the exception of 1b below).

    However, if then clicking a radio box in the Building Styles thinger in the game, those original Maxis tilesets will get added to the list.

    1b) Once a city tile is established, it only uses the Styles as embedded during creation. However, there is one single exemplar entry in the Save Game data which can simply be deleted and this then causes the game to re-look at the "Tract Developer Available Styles" of the plugin during the next loading of the city tile. So if I've created a plugin with my own 0x2004, 0x2005, and such and I want to grow only those in a city established long ago which had the 4 Maxis defaults, I first use Reader to delete said entry in the Save Game Data, re-save the file, then open the game and load that city tile. That's when it gets the new info to use only the 0x2004, 0x2005, and such as set in the plugin.

    Additionally, after I've grown all I want from these new tilesets I can save the city tile, exit the game, re-edit (or swap in a different plugin), delete the entry from the save game data, and then use 0x2007, 0x2009 (or whatever).

    Since we could not make this all be button enabled with the game running and it does require the changes to be made only after quitting, the project died. (Turns out many peeps have extreme load times due to their quantity of plugins and therefore do not consider the only method which currently works as an option.)

     

    12 hours ago, BartonThinks said:

    2) If new buttons for tilesets need a dll to be functional, would there be a way to simply override the original four tileset buttons with a plugin? There's post on page one that seems to indicate this is possible, if I'm reading it correctly. Or would this also require a dll?

    Yes, sort of. We can change the text which is displayed via a separate UI override plugin, but the buttons are not functional for toggling to the new tilesets.

    • Like 4
    • Yes 1
    • Thanks 1

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    On 14/10/2020 at 7:21 PM, Indiana Joe said:

    You must be able to partially Debug or Decompile SimCity 4.exe to find things that can be overwritten

    As a programmer, it can not be overstated the difficulty of this step. It's one thing to understand C++, but to be able to go through 10's if not 100's of thousands of lines of code (maybe even millions?) and not only understand it, but understand the relationships and paths between everything is simply hideous.

    So for example, if we look at the previous NAM installer, written by Z, in order to simply edit it requires understanding how the NSIS code is "nested". What resulted in the installer becoming so broken, is that lines were added or modified to add or adapt to new features. But, somewhere in the process, this threw off the ordering of the code, which had the effect of nullifying certain sub-routines either completely or based on certain selections/other sub-routines. Given that you can't realistically visually view all these parts at once, the code spans many, many pages, it's very hard to even understand the relationships between the sections that are nested in some cases many steps deep. As the person who wrote the code, Z would have a unique insight into it, that others despite spending many hours wrangling, still couldn't hope to unravel. All this before you get into the complexity of how NSIS handles what to the end user may appear to be quite simple rules like if you click this - for example RRW, then you can't also have regular railways selected. I know from my vastly more simple installers how just having an either/or selection where it's imperative only one set of files is installed, can balloon the existing code in order to function as intended.

    In much the same vein, it takes someone very skilled to break-down such code to the level that you can alter how things work and have any degree of success changing things. As such, whilst the possibilities to add some of the most desired changes seems within our grasp, pragmatically I still feel we're not ever going to see the game opened up and transformed from what we have now. The best we can hope for is some useful additional or tweaked functionality, the latter really is more likely, because everything .dll based so far just "diverts" existing code so as to alter the result rather than adding new functions. This is important as it encapsulates the limitations of .dll modding, adding things that don't already exist would be more in the realm of recompiling the .exe and that's still very much off limits both technically and legally.

    • Like 5
    • Thanks 4

    Head over to my Lot and Mod Shack to keep abreast of my latest developments.

    Do you like custom textures, but don't like all the work involved creating them?, take a look at the Texture Automation options here. Change the look and feel of your transit networks, with the minimum of effort, for example customised versions of my Sidewalk NAM (SWN) and Terrain Grass NAM (TGN) mods, and much more besides.

    New to the NAM? Check out my tutorials on YouTube. Latest upload: How to: RHW - MHO Roundabout Interchanges. (Nov 25).

    p.s. - I'm MGB over on SC4D and a member of the NAM team.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Thanks, @CorinaMarie. That's very helpful information. I apologize if most of this stuff was explained elsewhere in the thread. I read through everything before asking, but it was a lot to take in all at once.

    Not being able to repurpose the existing buttons is a bit disappointing (if unsurprising), but the rest is encouraging to hear.

    While it sounds like this might not be ideal for players who like to toggle back and forth a lot between tilesets, it seems convenient enough for players who tend to switch tilesets less frequently. It also seems like there are some easy-to-implement possibilities with custom tilesets that are intended to be used sequentially or in cycles, with the timing controlled by the "Change building style every # years" function.

    Really appreciate the detailed explanation!

    • Like 5

    🚜 Get well soon, Cori! 🚜

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    2 hours ago, BartonThinks said:

    ... it seems convenient enough for players who tend to switch tilesets less frequently.

    Yeah, that's how I see it.

    I'm fine with setting it to Row Houses Only, growing them, saving then quitting, and then doing the minor edit and swapping the one plugin, but I can be in and out of the game in a minute or two due to a low quantity of plugins and only the parts of NAM I use installed.

    This is something I'd like to explore more someday. It's just there are a million other things too. *:blush:

    • Like 5
    • Yes 1

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    1 hour ago, CorinaMarie said:

    Yeah, that's how I see it.

    I'm fine with setting it to Row Houses Only, growing them, saving then quitting, and then doing the minor edit and swapping the one plugin, but I can be in and out of the game in a minute or two due to a low quantity of plugins and only the parts of NAM I use installed.

    This is something I'd like to explore more someday. It's just there are a million other things too. *:blush:

    I've been using the Startup Manager recently and growing smaller cities, plus I completely scrapped the RHW system from my NAM installation (might use it someday but, oh, how I hate highways), so the load time isn't as big a deal for me either. 

    That said, for me the appeal has more to do with historic city-building and using tilesets to control how cities stylistically evolve over time. It would be similar to what the game already does with the Chicago/New York/Houston tilesets, but with the option of adding entirely new time periods, (1790, 1840, etc); taking the existing content and breaking it up into shorter periods (e.g., 1890, 1915, 1940, 1965, etc.); or applying the concept to non-American building styles (e.g. Kyoto 1890, Tokyo 1940, and Osaka 1990 -- not sure if those cities make sense for those years but you get the idea).

    With that sort of setup, you could use a set-it-and-forget it approach, so long as you choose the right interval for changing the building style when you create the city.

    The other option that came to mind (the cyclical one I mentioned) would allow you to break up content in a way that can grow cohesive neighborhoods, but avoid a monotonous look in your cities. For example, you could set up a cycle of three tilesets, each with a distinct and consistent style for low-density modern suburbs. By rotating through the tilesets and building neighborhoods accordingly, you'd be able to grow realistic cookie-cutter neighborhoods, each with its own distinct style (as opposed to using the same style for the entire city, using blockers to control neighborhood growth, or growing chaotic neighborhoods where the houses don't match up). The same method could be used to have multiple styles of rowhomes in a city, but ensuring all of the rowhomes on a given street (or in a given neighborhood) have a similar style.

    Anyway, as you said, it seems like that might only appeal to certain types of players, and there's no shortage of other projects to work on. Plus, it sounds like you and CB got far enough along that other players could make this work for their own cities, if they want to take the time.

    • Like 6

    🚜 Get well soon, Cori! 🚜

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    Edit: This post was moved to this thread after I was quoted elsewhere. (That's why in this thread, the reply I quoted isn't actually in this thread.)

    Subsequent to this post, I've written a more detailed guide with pics. Scroll down or click to jump there.

     

    On 1/19/2022 at 5:15 AM, mallenuk said:

    @CorinaMarie ...will your repetition mod still be released?

    While @Cyclone Boom created an excellent Building Style picker menu to allow up to 32 different tilesets, I was never able to figure out how to code it to allow in game changing of them. The feedback in the thread indicated if one has to leave the game, swap in a file to plugins and hex edit an exemplar in the city save file, it was way too much hassle to use and so the project died.

    Subsequent to that thread about the tilesets not being locked down in the .exe (as previously assumed), I did discover that the esoteric hex editing in the city save file isn't necessary (tho it's still ok to do), but it still cannot be user selectable to switch the new style(s) while in the game.

    Basically it's a do it yourself kit with 4 steps:

    1. Edit Exemplar 6534284a-e7e2c2db-e8da7677 with Reader 1.5.4 (0.9.3 cannot see all the properties). Note: This is the same exemplar NKO uses.
      1. Edit the property Tract Developer Available Styles to list whichever OccupantGroups you want to have available. (The Maxis default is: 0x00002000,0x00002001,0x00002002,0x00002003)
      2. Edit the property Tract Developer Years Between Styles to 0x00000001. Note: Even setting it to zero, the game will use 1 year between changes.
    2. Create (or tweak) growable lots changing the OccupantGroups in their building exemplar to list only the Building Style you want such as 0x0000201F or whatever you set in the above step.
    3. Open the city save file where you want to alter the tilesets which can grow and delete the entry 2990C142-299B2DB1-00000000. Re-save the file. When you load that city tile in the game, it will recreate the entry you deleted and build it from the 6534284a-e7e2c2db-e8da7677 exemplar.

    If you list a bunch of alternate tilesets in the Tract Developer Available Styles property and do not have any lots which match them, then for those years nothing will grow.

    Important: While playing that city tile, do not use the Building Style picker in the game.

    • Like 2
    • Thanks 1

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    On 19/01/2022 at 5:02 PM, CorinaMarie said:

    Create (or tweak) growable lots changing the OccupantGroups in their building exemplar to list only the Building Style you want such as 0x0000201F or whatever you set in the above step.

    Hi @CorinaMarie, I am guessing this is a better place to continue the discussion on how to replicate what a repetition mod would do and not the 'Show us your... r-r-r-r-r-repetition-n-n-n-n!' thread!

    If I have understood correctly, you need to create a copy of the lots that you want to grow (?).

    So for me I thought I would start with the The MacVicar Building and achieve this repeating pattern as a terrace:

    MacVicar.JPG.834763abdef7f3a7b4b0d2519a0a5fc6.JPG

    And then what I have done is to use the SimCity 4 Building Index to identify The MacVicar Building lots should have a name that starts with R$$$5_2x2:

    Code.jpg.86ed3bd7005e2d90e25ed6a177155599.jpg

    Next step, locate this lot(s) in the SimCity 4 Lot Editor to be able to make a copy of both:

    Options.jpg.1503ad4a435a4a0673d60cb8c6f69d55.jpg

    That gives ten options but having opened each one none of them show a The MacVicar Building. Do you mind to let me know what I am getting wrong please?

    I have already installed Reader 1.5.4 and located the property Tract Developer Available Styles and added a new one, I thought that was going to be the toughest part. XD

    • Like 2

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    3 hours ago, mallenuk said:

    Hi @CorinaMarie, I am guessing this is a better place to continue the discussion on how to replicate what a repetition mod would do and not the 'Show us your... r-r-r-r-r-repetition-n-n-n-n!' thread!

    If I have understood correctly, you need to create a copy of the lots that you want to grow (?).

    So for me I thought I would start with the The MacVicar Building and achieve this repeating pattern as a terrace:

    MacVicar.JPG.834763abdef7f3a7b4b0d2519a0a5fc6.JPG

    And then what I have done is to use the SimCity 4 Building Index to identify The MacVicar Building lots should have a name that starts with R$$$5_2x2:

    Code.jpg.86ed3bd7005e2d90e25ed6a177155599.jpg

    Next step, locate this lot(s) in the SimCity 4 Lot Editor to be able to make a copy of both:

    Options.jpg.1503ad4a435a4a0673d60cb8c6f69d55.jpg

    That gives ten options but having opened each one none of them show a The MacVicar Building. Do you mind to let me know what I am getting wrong please?

    I have already installed Reader 1.5.4 and located the property Tract Developer Available Styles and added a new one, I thought that was going to be the toughest part. XD

    Hey @mallenuk -- Maxis grouped their growable buildings into families based on the wealth and size of each building. They then designed the lots to accommodate building families, rather than individual buildings. As such, the lots used by the MacVicar building are designed to host a whole family of similarly sized R$$$ buildings.

    If you want to make a copy of the lots that have the MacVicar building, you'll need to...

    • Identify which building family (or families) the MacVicar building is assigned to
    • Find the lots that use this building family that you want to copy.
    • Create the copies using one of two processes:
      • Create a copy of the lot exemplar and then modify the correct properties so that the lot only uses the MacVicar building, not the building family. This work is fairly advanced.
      • Create a new lot of the same size for the MacVicar building and then copy over all of the props and textures from the lot you want to copy. This can be done in PIM-X, which makes it less advanced than the first option, but still not very beginner-friendly.

    Hope that clears things up a bit!

    • Like 3
    • Thanks 1

    🚜 Get well soon, Cori! 🚜

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    9 hours ago, mallenuk said:

    I am guessing this is a better place to continue the discussion on how to replicate what a repetition mod would do and not the 'Show us your... r-r-r-r-r-repetition-n-n-n-n!' thread!

    Very good call! *:ohyes:

    So much so, I've discussed it with @Cyclone Boom and he can move my post from there to here and based on the timestamp it'll slot in above yours and he'll reply saying that was done so it won't look like you were quoting from the wrong place and such.

     

    9 hours ago, mallenuk said:

    If I have understood correctly, you need to create a copy of the lots that you want to grow (?).

    Yes, a copy of the building exemplar to be an override in which you then modify the OG property. No need for relotting. *;)

    Quick sample:
    7010b-4522.jpg

    ^ And as set, those are the only ones which can grow.


    Then for the exact method, I'll get that written up as a mini tutorial (with pics) for The MacVicar Building so you'll see all the steps rather than just a text version.

    Hang tight for a wee little while as I do have some other irons in the fire. *:blush:

    • Like 2

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    25 minutes ago, CorinaMarie said:

    So much so, I've discussed it with @Cyclone Boom and he can move my post from there to here and based on the timestamp it'll slot in above yours and he'll reply saying that was done so it won't look like you were quoting from the wrong place and such.

    All sorted!  *:thumb:

    [Linky]
     

    • Thanks 1

    Quick Links

    “SimCity 4 is not just a game, but a tool driven by our own imagination and creativity.”

    Buy me a coffee

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    Tutorial for Specific TileSet Usage (non-standard OG)

    Step 01

    Open SimCity_1.dat in Reader 0.9.3, click the Navigator Button, then (since this is for the MacVicar Building) expand the Residential $$$ tree, expand the Buildings Tree (not Lots), then click open each one, and look for the name of the building. When you know which tileset it's in, you can tell by the building names if you should expand their sub tree or not. Maxis uses Chi for Chicago, NY for New York, Hou for Houston, and Euro for European. Those'll be embedded within the name.

    Additionally, when you know which growth stage the building has, the part after the first underscore is that number.


    So their name layout goes:

    • RCI Type and Wealth such as the R$$$ or CO$$ or such.
    • Base footprint of the building in meters like 24x48 for MacVicar.
       
    • Underscore and the growth stage. When more than one number (like for little buildings) that shows multiple stages.
      • Such as 123 where there are different lot sizes for different growth stages which use the same building.
         
    • The TileSet abbreviation. (Chi, NY, Hou, or Euro)
    • The generic Maxis internal name for the building class/style often with a trailing number. (Condos1, Mansion3, TinyHouse7, etc.)
       
    • Underscore followed by a 4 or 8 digit hex number. This is the IID of the building exemplar.
      • When it's 4 digits you can assume that's the first 4 followed by four zeroes for the full IID.
      • ^ It might always be the 4 digit version. I didn't peek at all of them.

     

    Here I've found that R$$$24x28_5NYUrbanPalazzo3_0142 is the one we want:

    01 - Navigator - Find the Building - 7010b-4527.jpg

    ^ Yes, I clicked on the + Magnifier to make the building image larger.


    Step 02

    Right click on the building name and select Add to patch:

    02 - Add to Patch - 7010b-4529.jpg

     

    Step 03

    Close Navigator, click the Patch button (upper middle of Reader), and Create DAT. Name it something which makes sense to you. I like to include the TileSet hex number I'm going to set it to.

    For mine I called it: The MacVicar Building as Tileset 0x2005.dat

    You can save it anywhere in your plugins, because it won't be an override of any exemplar since we will set a new Instance ID.

     

    Step 04

    Open your newly created building exemplar file in Reader 0.9.3, single click the Exemplar in the left hand pane so the data will show up in the right hand pane.

    Then double click the OccupantGroups property:

    04 - Open Newly Created Building Exemplar File - 7010b-4530.jpg

     

    Step 05

    It will initially look like this and it's the 0x00002001 entry we will change:

    05 - OGs as they Initially Appear - 7010b-4531.jpg

    ^ Note: If working with custom content (and some Maxis commercial stuff), there could be up to four entries for each of the original possible tilesets.
    Ergo, 0x00002000, 0x00002001, 0x00002002, and/or 0x00002003.

    If there are extras of those 4, remove them. Others need to stay as they mean something else.  *;)

     

    Step 06

    I've arbitrarily chosen 0x00002005, but it can be any hex number which isn't one of the 4 originals.
    (I've already used 0x00002004 for my own other test, but you could use it.)


    It is a good idea to keep a list of tileset numbers you use. *;)

    In this step I've changed that third entry, then clicked the Apply button:

    06 - Change to a Unique TileSet OG - 7010b-4532.jpg

    ^ Then click the lower Apply button to the left of the Cancel.
    (The first Apply button sets the value, the second writes it to the property.)

     

    Step 07

    Now we want to generate a new IID.

    Right click the Exemplar in the left hand pane and select Generate new instance:

    07 - Generate a new IID - 7010b-4533.jpg

    ^ Earlier I said we were going to make an override of the building exemplar. That's not quite how I should've described it. What we are doing is creating a unique copy of it with the OG set differently. (More about why later.)

    Special Note: For non-Maxis content where the Lot Configurations exemplar directly calls one specific Building exemplar, we then do not change the IID, but do make this as an override and then make sure it loads last (as in after the original). The rest of the steps are the same with the exception you will remove the new file after you've grown all you want and reset the TileSets in the Controller and updated the city save file. I can provide more detail for CC, but for the question at hand the Maxis Lots don't directly call the specific building as @BartonThinks mentioned about Families.
     

    Step 08

    The two changes to notice are the Instance number in the left hand pane is now something else, and the Style: New York has been replaced with 0x00002005.

    08 - Building Exemplar after Editing - 7010b-4534.jpg

    ^ Save, then close the file.

     

    Step 09

    Next we need to update the Controller file. Ofc, you can extract it yourself from SimCity_1.dat, but it's easier to just grab our NKO file and edit it. This one is slightly different inasmuch as you must use Reader 1.5.4 because 0.9.3 cannot see all the properties.

    Note: It's the linky near the top in the line " v1.5.4 update; ".


    The exemplar looks like this when you first open it:

    09 - NKO in Reader 1.5.4 - 7010b-4535.jpg

    ^ And it's the Tract Developer Available Styles we want to edit.

     

    Step 10

    Double click that property to see this:

    10 - Track Developer Available Styles - 7010b-4536.jpg

     

    Step 11

    Remove three of them, edit the last one to 0x00002005, and click the Set button. (That's like the upper Apply in 0.9.3.)

    11 - 0x00002005 Only for Available Styles - 7010b-4537.jpg

    ^ Then click the Apply button.

     

    Step 12

    The whole exemplar now looks like this:

    12 - NKO Exemplar After Editing - 7010b-4538.jpg

    ^ Save the file and close it.

     

    Step 13

    Make a backup of your City Save file (the one in which you want to grow the non-standard tileset).

    Now edit the live file with Reader 0.9.3.

    Click the Type column header twice to sort them in ascending order:

    13 - Edit the City Save File - 7010b-4540.jpg

    ^ Look for the 2990C142-299B2DB1-00000000 entry.

    Right click it and select Remove file.

    Reader will question your sanity. Click Yes to perform the removal. Then save and close the file.

     

    Step 14

    Download and open the RCI Buildings List. Find the building you are working on and this is where you find the specific zoning sizes on which it can grow.

    14 - Find the Building in the RCI Building List - 7010b-4541.jpg

    ^ So now we know to use Ctrl+Zoning to get those to grow.

    Note:
    See this topic for details on how to use Ctrl+Zoning and other precision zoning techniques.
    Also, CB explained about it here.

     

    Here's the example from my previously posted pic:

    15 - Control + Zoning - 7010b-4523.jpg

     

    For this neighborhood, I did all 2 x 3 lots:

    16 - 2 x 3 Control Zoning Grown - 7010b-4524.jpg

     

    And here I alternated between 2 x 2 and 2 x 3 while adding tennis courts behind the shorter lots:

    17 - Alternaing 2 x 2 and 2 x 3 Control Zoning Grown - 7010b-4526.jpg

     

    So, that's the gist of the method. It works for Residential and Commercial, but not Industrial.
    (There is a separate way I believe the industrial might work, but I've not explored that.)


    After growing all you want of the unique tileset, save your city (ofc), restore the NKO to its original Available Styles, and edit your save city tile again removing the 2990C142-299B2DB1-00000000 entry. This latter part is so the game will re-update it back to normal.


    Important Note:
    (This is the "More about why" mentioned in Step 07.)

    You will always, I repeat always, keep your uniquely made Building Exemplar in your plugins. It won't interfere in any way because it cannot grow unless the controller file has its tileset OG set (and the city file has been edited to re-update), but it will be read properly by the game should you bulldoze any of the specially grown lots.

    Also, it's a good idea to mark each of the specially grown lots as historical, so when you return to normal tilesets they don't get ambitious and go replacing all your hard work. *;)

     

    Additional Caveat:
    While playing the game with unique OGs enabled, do not click anything in the Building Styles selector panel. If you do it reads the original available styles from the .exe and adds those so now more things can grow than you want. Also, remember your city will need to have the appropriate demand and desirability for where you want to grow your lots. This isn't a magic fix for how enthusiastic the growth will be.


    Synopsis:

    Using the above method one can grow specific buildings where repetition is desired such as these row houses previously shown here:

    7010-5598.jpg

    ^ I grew four different buildings each in their own little section of my city. *:)

     

    Special thanks to @Cyclone Boom for proofreading and adding tons of polish to the formatting of this post. :wub:

    • Like 6
    • Thanks 2

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    11 out of ten tutorial @CorinaMarie, thank you very much! I managed to implement it successfully. Here is my initial showcase! It seems to work best visually when you have a collection of similar buildings with many different lot designs.

     

    • Like 2

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    22 hours ago, mallenuk said:

    I managed to implement it successfully.

    Woot! *:)  So you are now the first to use this method outside of our own testing. *:thumb:

     

    This also got me to thinking about it again and I have a couple of ideas.

    1. Change the one goofy entry in the NKO Controller file to a Uint32 so that Reader 0.9.3 can edit that exemplar safely. This was mentioned by BT some time ago and we never got around to changing it. Once changed, you could use it as your template and not need to edit with the separate Reader version.
    2. In Step 07 where we generate a new Instance ID, change that to not creating a new IID.

    Generating a new IID (as in my Step 07 above) was with the idea that you'd not have keep track of a slew of files to move in and out of plugins when wanting that particular building (or set of buildings) to grow. After writing and testing it all, it suddenly occurred to me that custom content would behave differently than Maxis because their Lot Configurations will call the Building exemplar directly and not via the Family. This latter part means that the entry in the Lot Config would also need changed if going with the current plan.


    Advantages of giving them a Unique IID (per step 07 above) are:

    • The file itself becomes standalone and can stay in plugins forever without interfering.
    • Load order for the file doesn't matter since it's not an override.
    • Re-activating any of the files where we've set a unique OG TileSet number is all handled by the Controller file.

    Disadvantages of giving them a Unique IID are:

    • The file must remain in plugins for all eternity.
    • This method creates extra steps for Custom Content where the Lot Config exemplar also needs edited.


    So, the other method is that we do not give them a unique Building exemplar IID. This way both Maxis content and CC become the same steps. However, the modified file must be in plugins to grow as a unique tileset, but must be removed from plugins when resetting the controller to normal tilesets.

    Advantages of using the Same IID are:

    • Easier creation of the file because there's no need to edit the Lot Config exemplar for Custom Content.
    • The file does not need to remain in plugins after growing the non-standard OG building.
    • The file will act as a blocker for that building if left in plugins (and it's in a load last location).
    • The grown lots can be safely bulldozed with or without the file in plugins.

    Disadvantages of using the Same IID are:

    • The file must be moved into plugins to allow it to grow as a special OG tileset.
    • The file must be removed from plugins when returning to normal tilesets in the controller or it will become a growth blocker for that building.

     

    I'm personally leaning more toward the second method now as it'll then make the process the exact same for Maxis and Custom Content even tho that does mean the newly created Building Exemplar files must be added to, or removed from, plugins for each use.

    I believe we should get this established as the Officially Recommended Method before anyone gets too far along using the current steps above.

    Do note that even tho it might be better to change horses in the middle of the stream, any lots created and grown with the current Unique IID method (of Step 07) will be fine as long as those files do remain in plugins.

    • Like 2

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Hi guys, sorry, I don't mean at all to highjack this thread, but I wonder if the information contained here can be usefull to solve the bug where all building style will not grow at once even though that option is selected? More details in this topic...
     

     

    • Like 1
    • Thanks 1

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    2 hours ago, violins77 said:

    I wonder if the information contained here can be usefull to solve the bug where all building style will not grow at once even though that option is selected?

    I participated in that thread testing @11241036's original premise that the styles do not grow all at once (even when the option is selected), but rather grow at a minimum of one style per game year. My tests showed exactly the same as they observed.

    The conclusion was that truly growing all at once was never coded properly in the .exe and is (as far as we can tell) beyond the hope of changing by mere mortals. It is, ofc, theoretically possible someone who knows DLL coding might resolve it, but that would only be if someone has both the desire to look into it and the knowledge of what to modify. It's certainly beyond my current ability.

    • Like 1
    • Yes 1

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites

    Sign In or register to comment...

    To comment in reply, you must be a community member

    Sign In  

    Already have an account? Sign in here.

    Sign In Now

    Create an Account  

    Sign up to join our friendly community. It's easy!  

    Register a New Account


    ×

    Thank You for the Continued Support!

    Simtropolis depends on donations to fund site maintenance costs.
    Without your support, we just would not be in our 24th year online!  You really help make this a great community. *:thumb:

    But we still need your support to stay online. If you're able to, please consider a donation to help us stay up and running. This helps sustain a platform where we can share our community creations for years to come.

    Make a Donation, Get a Gift!

    Expand your city with the best from the Simtropolis Exchange.
    Make a Donation and get one or all three discs today!

    STEX Collections

    By way of a "Thank You" gift, we'd like to send you our STEX Collector's DVD. It's some of the best buildings, lots, maps and mods collected for you over the years. Check out the STEX Collections for more info.

    Each donation helps keep Simtropolis online, open and free!

    Thank you for reading and enjoy the site!

    More About STEX Collections