Jump to content


  • Content Count

  • Joined

  • Last visited

Posts posted by X7123M3-256

  1. I mean, you're not going to get a new Arrow looper today (a relocated one maybe), so most installations are getting old now, and technology has moved on.  It was just meant as an example of an old ride style - I didn't mean to say "guests should not want to ride Arrow loopers". 

    I think rides should get less popular with time - people do get bored of rides they've ridden many times before (at least I do), and new rides attract people to the park (otherwise parks wouldn't build them). Without this mechanic, there'd be no incentive to keep expanding the park.

  2. 44 minutes ago, KKLD said:

    multiplayer versionchanged to 4 so it should 'work' with current clients.

    Please be careful with this. The game state may not be deserialized correctly because my version expects an extra byte for the status of the new cheat, which won't be sent by servers running the develop build. Also, without the patch you're limited to 16 cars, and setting more than that will corrupt the memory of other clients. Even if it appears to work, I would recommend against it - it can have all sorts of side effects because you are overwriting memory that is being used for other things. I had various weird bugs occur during testing as a result of this memory corruption - car sprites being drawn where they shouldn't be, menu items being populated with random text, and at one point it thought my coaster was a sign. I am not sure whether this could actually crash the server or other clients - I suspect it could but I'm reluctant to try it.

    • Like 1

  3. I am currently working on a cheat to do this. Another option, which I have used in the past, is to modify the DAT file to set the minimum car length to the length you want - this overrides all other limits on the train length. However, the fact that the train length displayed in the window remains unchanged suggests neither method was used here. 8Cars has a similar feature, it's possible that the train length was hacked in 8Cars, and then the resulting savegame loaded in OpenRCT2. It is also theoretically possible to do something like this by directly editing the game's memory (which is essentially what 8Cars does), but I'm not sure how easy this would be.

    In the vanilla game and current versions of OpenRCT2, there is an absolute limit of 16 cars and setting a length longer than that can result in undefined behaviour/possible crashes. My cheat increases this limit to 255 cars, which I believe is as far as you can go without having to modify the save format.


    Also see this other discussion on the topic

  4. 7 hours ago, theannihilator9807 said:

    I think it would be good if we could have RCT 2 style and RCT 1 style go karts that way we can have both

    There's no need for any changes to OpenRCT2 to implement this - just take the sprites from csg1.dat and create a new DAT file from them (if somebody hasn't done it already, a number of RCT1 rides have been ported). The only tricky part is that the sprites aren't always in the same order, but the go karts don't have many sprites so you can just manually rearrange them if necessary.

  5. This error means you're missing an object file. PTCT2R is a default object (the 6 seater reversed wooden coaster trains), so either you accidentally deleted it or something is wrong with your RCT2 install. You might have to try reinstalling the game. Is that the only file that's missing, or are you getting other missing object errors (the complete list of missing objects should be printed to the terminal).

  6. Oh,  sorry, I thought you were asking for OpenRCT2 to be able to load RCT1 resource files directly, which would be difficult.

    Extracting the RCT1 sprites and turning them into an RCT2 object file is easy - I already did it for the RCT1 mini suspended coaster, and I've seen it done for a couple of other RCT1 rides as well. There is no reason not to do it if that's what you want - it does not require any alteration to the code nor introduce an incompatibility with the vanilla game.

  7. RCT1 doesn't have object .DATs so you can't easily patch in support for loading RCT1 rides. You can't easlily use the RCT1 base graphics in place of the RCT2 base graphics either, because they don't have the same sprites. I think the best option is to extract the go-kart sprites from csg1.dat and repackage them as an object file for RCT2. This doesn't require any changes to the code - it would still work in vanilla. If you then want to replace the existing go-karts with the RCT1 version, you could substitute KART1.DAT with the new file (you have to make sure that the object header is the same though, or the game won't recognize it). If you want to have the RCT1 go karts alongside the standard ones, just give it a different name.

  8. 64 does seem to be the limit of the dropdown menu, any more than that causes problems, and I know that the vehicle selection dropdown is limited to 64 items as well. To get 255, I just modified the code to ignore the dropdown and always set the train length to 255. Obviously this is not very practical so I've now changed it back to 64 - I put it up that high partly to see how far it can go, but also to try and detect any remaining buffer overflows (adding this many cars to an array sized for 16 will surely break something, right?).

    • Like 1

  9. Just now, KKLD said:

    I can't help but wonder why the initial limit was set to 16 and why changing it to 32 should fix it.


    In the ride_entry struct, they're 8 bit values. But during the calculation of the max train length, those two values get copied into a single 8 bit variable, which gives 4 bits each for a maximum of 15. I think that's the issue here, but janisozaur is the better person to answer becasue he implemented the fix.


    Just now, KKLD said:

    The Log Flumes, Splash Boats, Car Ride and some other rides support 31 boats/cars.


    The number of trains and the number of cars per train are not the same thing. All those rides are limited to individual cars.


    Just now, KKLD said:

    And talking about a cheat to enable longer cars; is the only thing required to disable these 4 checks?

    As far as I can tell, yes. This doesn't look like a difficult thing to implement, but it's hard to be sure until I've tried it - I don't know the codebase as well as the developers do.

  10. I'm getting a merge conflict, which I think is because I have local changes (I was messing with the track code again). I've tried running git reset --hard and then pulling the latest version, but it still doesn't work. Is there a way to reset everything back to the current version of the code?

  11. I set the minimum and maximum train length field to 30. That's all there is to it. An interesting thing is that the game doesn't validate train lengths on load, so you can tweak the DAT, build a ride with absurdly long trains, then restore the original DAT and still load your park - as long as you don't close and reopen the ride, you keep your long trains. Same for friction values - I've thought about implementing it as a cheat to cut out the need to change DAT files entirely.

    I retested the 30 car trains and they crash now, so something's changed, but possibly not in this part of the code. The 15 car versions still work, so I'm not sure what the new limit is but given that it's getting packed into a 4 bit value at one point I assume it's just coincidence that 30 cars worked before. I'll have to investigate a bit more to see what the root cause of the crash is.

  12. The game takes into account 3 things when determining how long the trains can be, in this order:

    • The max train length set in the file
    • The total friction of all the cars on the track
    • The length of the station
    • The minimum train length

    The relevant code is here. The key point is that the minimum train length is the last thing calculated, so if the minimum train length is set to 30 then the trains have to be at least that long, even though the game won't allow a station long enough to accomodate them. Strangely, looking through that code again I see that the min and max train lengths are packed into a single 8 bit value with 4 bits each, so I'm not quite sure why a value of 30 worked - has that changed since I did this?

  13. It works fine for me in OpenRCT2 (I haven't even tested in vanilla), but make it one car longer and it crashes. I have not yet looked into why it crashes. It is definitely possible to implement a "remove train length limits" cheat, and I might look into doing that, along with an option to change the friction value used for the ride. The method I use for this at the moment involves making a new .DAT file, but the change need not be permanent - you can restore the original limit and the cars already on the circuit will not be shortened.

  14. The limit is definitely not 8 cars, even without hacks. The articulated wooden coaster trains support up to 12, for a start. I've tested trains with up to 30 cars, and I wasn't able to get higher than that without crashing the game, but I'm still not 100% sure this is the absolute limit. There is no cheat to remove the limit as of yet but it's not impossible to implement one - I'm not sure where this "stored in 3 bits" is coming from because as far as I can tell, it's an 8 bit value.

    • Like 1

  15. I have a long list of custom track styles I wish I could make:

    • Intamin track with all the inversions available
    • New style Intamin hyper track
    • Intamin quad-rail track (technically already in the game, but very limited and thus basically useless)
    • B&M dive track (wider than standard B&M track)
    • RMC track
    • Waterslide track with banked curves and vertical drops
    • Wider waterslide track (for four-person rafts; I currently use bobsled which isn't ideal)
    • Alpine coaster/slide track

    Your rotating car ride could probably implemented in the game as it is by putting it on multi-dimension track (which has the pitch control), and then making that invisible and zero-clearancing car ride track over the top. Not ideal, because it requires the use of cheats, but if you wanted to do that it could be done.

  16. This has confused so many people that I'm beginning to think I shouldn't have posted screenshots of the custom track in the first place. So, to clarify, custom track styles are not yet supported in OpenRCT2. Maybe one day they will be, but for now it's not possible.

    So what I did was I put the ride on B&M track, and then replaced the B&M track sprites with RMC track sprites. I swapped the sprites, recorded the animation, and then restored the original sprites. I used the custom track for the preview image, because the wooden track just looks awful (and if I'd known that to start off with, I would never have made an RMC train)

    There's no point releasing it in this state because a) I didn't replace every sprite, just the ones I used,  b) my renderer isn't ready for track yet and the custom track is rather glitchy, and c) you would lose the Twister track. If somebody *really* wants to play with it, I might still have the file somewhere, but you would not want to keep it like that for very long.

  • Create New...