Any interest in Mobile Suits Gundam Extreme VS. 2? #1

Closed
opened 2023-03-16 13:29:48 +00:00 by asesidaa · 7 comments

There seems to be a huge number of players who are interested in this game.

I tried to take a look at the game, but not sure how their dongle works.

Currently I just hook nbamUsbFinderGetSerialNumber, but no avail. I can only get Dongle Error 2. In the disassembly, I see that it will look for a removable drive, then read 256 bytes from a file whose file name is calculated from the returned serial number and finally perform some calculation, I wonder how would this dongle check work?

There seems to be a huge number of players who are interested in this game. I tried to take a look at the game, but not sure how their dongle works. Currently I just hook `nbamUsbFinderGetSerialNumber`, but no avail. I can only get Dongle Error 2. In the disassembly, I see that it will look for a removable drive, then read 256 bytes from a file whose file name is calculated from the returned serial number and finally perform some calculation, I wonder how would this dongle check work?
Owner

Hm, interesting. I haven't seen a game actually try to read data from the drive before. I don't have the game so I can't say for sure what the mechanics of it are. I'd be interested to take a look, but since I don't have the game, I can't really do anything.

Hm, interesting. I haven't seen a game actually try to read data from the drive before. I don't have the game so I can't say for sure what the mechanics of it are. I'd be interested to take a look, but since I don't have the game, I can't really do anything.
Author

img1

img2

I find these around nbamUsbFinderGetSerialNumber, and the serial number returned is used subsequently, so I assume this is what the game is trying to do with the dongle, not sure whether they are actually related.

![img1](https://media.discordapp.net/attachments/1062740139203366972/1085910695650001039/image.png) ![img2](https://media.discordapp.net/attachments/1062740139203366972/1085910695901675530/image.png) I find these around `nbamUsbFinderGetSerialNumber`, and the serial number returned is used subsequently, so I assume this is what the game is trying to do with the dongle, not sure whether they are actually related.
Owner

Please don't link to data here, no matter how public it is.
As for the code snipits, I'm not sure. It's probably doing something fairly simple. I'll look into it shortly.

Please don't link to data here, no matter how public it is. As for the code snipits, I'm not sure. It's probably doing something fairly simple. I'll look into it shortly.
Author

Oops, sorry for that.

In one subsequently called function, I find constant 0x100000001B3 being used, so looks like this algorithm is used, there's definitely some hashing going on here, but I am not familiar with these.

Oops, sorry for that. In one subsequently called function, I find constant 0x100000001B3 being used, so looks like [this](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function) algorithm is used, there's definitely some hashing going on here, but I am not familiar with these.
Owner

I've never seen that before in my life... I'll have to do some more testing. Currently I can't even get the game to get past the System Boot Error screen.

I've never seen that before in my life... I'll have to do some more testing. Currently I can't even get the game to get past the System Boot Error screen.
Author

Oh, this issue seems to be caused by client type. The game has a terminal(live monitor) mode and pcb mode, which seems to be related to something called bootParam.bin.

I don't know what this file or something should look like, but if you search for string CLIENT_TYPE, you should be able to find the function for parsing this parameter which determines client type. Therefore currently I just patch there, 1-4 seems to be valid values.

Speaking of client type, from teknoparrot, it seems that two computers (one live monitor) is required.

Oh, this issue seems to be caused by client type. The game has a terminal(live monitor) mode and pcb mode, which seems to be related to something called `bootParam.bin`. I don't know what this file or something should look like, but if you search for string `CLIENT_TYPE`, you should be able to find the function for parsing this parameter which determines client type. Therefore currently I just patch there, 1-4 seems to be valid values. Speaking of client type, from teknoparrot, it seems that two computers (one live monitor) is required.
Owner

Closing this because lol

Closing this because lol
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Hay1tsme/bananatools#1
No description provided.