Cruis´n World

Developer

Joined May 30, 2018

OP

September 18 2019, 1:11am, edited October 18 2019, 4:50pm

Official Topic Post for discussion about Cruis'n World (Nintendo 64) Cruis'n World (Nintendo 64)
Created 18 Sep, 2019 01:11 by Keltron3030


1. Cruis'n World (USA).z64
Cruis'n World (U) [!].z64
Cruis'n World (1998)(Eurocom - Midway - Nintendo)(US).bin
RA Checksum: aada4cbd938e58a447b399a1d46f03e6
CRC32 Checksum: A123769F


Resources:
GameFAQs
Longplay
Wikipedia

Joined Sep 15, 2019

September 18 2019, 4:39am, edited September 18 2019, 4:39am

[game=] crusi'n world

I would like to make a claim on this game please.

Moderator

Joined Aug 6, 2018

December 22 2019, 2:34am

Set is open for development if anyone is interested.

Joined Nov 11, 2021

November 16 2021, 8:42pm

Is here when we can suggest the achievements? im new, so sorry if im broke some rule

So, the basics will be:
-End Cruis'n World mode
-End Cruis'n mode in Very hard mode
-End Moon race
-Get all secret Cars
-Get all championship points unlockables
-Get 9999 Championship points (which maybe be in the same page as "get all points")
-Win easy Championship in 1st place
-Win Medium Championship in 1st Place
-Win Hard Championship in 1st place
-Win Bonus Championship in 1st place
-Get 6th gear
-Record list of every Cruis'n World track best time
-Record list of every Time Trial track best time
-Maybe a list of Full Cruise best time? (Ends in Florida)

Joined Jul 21, 2021

November 29 2022, 11:38am

I have a few basic achievements working for the game, just working on achievements for the car unlocks right now.

Will post a list of the achievements planned soon.

Joined Jul 8, 2021

May 15 2023, 2:34pm

Since this has (hopefully) been claimed again, I have a couple of ideas that have not been mentioned:

I think Kenya, Australia, Hawaii, and Italy all have "shortcuts". I think an achievement for finding each one would be neat. Shortcuts are in air quotes because some of them are more like "long-cuts". LOL

Minute Man - Have each track record under 1 minute.

This would be interesting. First, you would have to get the fastest car in the game. Then on some tracks, you would have to get a little creative with stunts to get under 1 minute (looking at you Italy).

Achievements for doing stunts and certain amounts maybe.

There could also be an achievement for doing stunts off of every doable ramp on certain tracks. Egypt would be a good one to try this out on.

Anyways, I can't wait to play this. I played this a lot when in was younger, so I can wait to play through again. :-)

Developer

Joined Apr 19, 2019

May 21 2023, 3:45pm, edited May 21 2023, 3:48pm

.

Developer

Joined Nov 17, 2021

May 23 2023, 2:52pm, edited May 23 2023, 3:10pm

I'm coming along well with my set so far, but there is a minor complication which I'd like to vent about. I have identified a memory address (0x3c7678, 32-bit) which seems to correspond with the in-game timer, but its behavior is weird. When the race starts, this value jumps from zero to roughly 0x3c800000, representing 0:00.01, and updates every other frame (for 30fps), but not by the same amount. Rather, every time the address reaches a multiple of 0x00800000 (8388608 in decimal), the time interval doubles. As such, the amount this value increases by each frame is cut in half at these points. Also to note, when the player starts a new lap (in Championship mode), this value resets as described above, but its last value before resetting to 0 is stored to a separate address.

In other words, here are some sample address values and their respective times:

0x3f800000 = 0:01.00
0x40000000 = 0:02.00
0x40800000 = 0:04.00
0x41000000 = 0:08.00
0x41800000 = 0:16.00
0x42000000 = 0:32.00
0x42800000 = 1:04.00
0x43000000 = 2:08.00
0x43800000 = 4:16.00
0x44000000 = 8:32.00

And so on. In between these "keyframes", so to speak, the memory values and their corresponding times both update at a constant rate, i.e., 40100000 = 0:02.25, and 41100000 = 00:09.00. As such, here's the formula as I've worked it out:

2 ^ ((address / 0x800000) - 6) * (1 + ((address % 0x800000) / 0x800000)) = time in seconds

Unfortunately, I don't see how I could make an equation this complex work for any achievement/leaderboard logic. For one thing, RA logic doesn't currently support exponent operators (I used ^ to depict this above, but RATools actually uses this as a bitwise xor operator), nor could I get decimal values from division, as I would need in the right-hand part of my formula. So, unless someone else can bring in a new perspective on the matter, it looks like I can't use this for anything. Fortunately, none of my planned achievements rely directly on IGT, and I'm working on another approach for the leaderboard times, namely, counting the frames from race start to race end. So far it's still off a fraction of a second from what the IGT displays, and I also need to account for when the game is paused, but if I'm going to add any leaderboards myself, it may have to do. At the very least, I figured I should at least document all this madness for future developers.

Edit: Asked about it on Discord, and it turns out these are float values. So, never mind, I think I can work with them after all.

Developer

Joined Nov 17, 2021

May 27 2023, 10:54pm, edited May 28 2023, 4:41pm

Quick update on the progress of this set. Now that I've sorted out all this float business from my last post, everything's falling into place... except for one thing. One of the achievements I'm adding is to beat the default record times for every track in Cruise Mode. Unfortunately, these default times are not fixed, but are randomly generated within a certain range (generally between 1:46 and 1:50 for each track) when you start fresh or reset the saved records. As such, here are some workarounds I'm considering:

1) Unlike the record times themselves, the initials attached to them are fixed; the name for all of the 1st place records is ROB. I can measure when the player beats a record by checking when the 1st place initials have changed. However, they must use a name other than ROB in order for this to count.
1a) In addition, the car used to set a record are also saved, so I could check if either that or the name have changed to determine if a new record has been set.

2) Require the player to set records for all courses in one sitting. I'm not keen on this approach, even though the default records are not that hard to beat, and this would let me check just the #1 times without worrying about what name the player enters.

3) Instead of beating the default records, have the player beat a different fixed time for all tracks, like 1:30. A little less intuitive, perhaps, but again, I could check just the #1 times for this, since they are never set below 1:35.

At present I'm leaning towards option 1, but if anyone has other ideas I'm open to them.

You must log in before you can join this conversation.