• Topic Archived
You're browsing the GameFAQs Message Boards as a guest. Sign Up for free (or Log In if you already have an account) to be able to post messages, change how messages are displayed, and view media in posts.

User Info: Xian_Zhu_Xuande

Xian_Zhu_Xuande
10 years ago#61
I understand completely in regard to things like this. Like you, I've also got a pretty limited amount of personal time to spend on things like this. Most of my day is spent working or with my family. I appreciate the time you have spent helping me with things because I wouldn't be able to test the vast majority of this stuff otherwise (unless I took the time away from the Cao Cao mod which I'm trying to finish). I asked things like this just in case you can discover the answer quickly.

It isn't that I don't want to figure some things out, it is just that I don't have as much time as I would like, and I'm hoping to learn everything from you I possibly can. :)

I would really appreciate help with that question about hard-patching the bug, though. That would be awesome for a very large amount of people out there.
Kongming’s Archives: kongming.net (Three Kingdoms Web Site)
Scholars of Shen Zhou: the-scholars.com (Three Kingdoms Forum)

User Info: MeteorStrike

MeteorStrike
10 years ago#62
Yea I'll post a reply to that. I realize that you have things to do too, I wasn't trying to be mean or anything. :)

I'm just saying that I really need to start doing other things with my time... Technically, all my time is free time right now, but that's because I'm out of a job. But this just means I need to spend a lot of free time gaining new skills (such as learning the very popular C# language) so that I can finally get a job...

If I was on a break or having vacation, it would be different, but the sooner I start learning new things I can put down on my resume, the sooner I will be able to find that new job, and unfortunately, "Good Debugging skills and extensive practice hacking NES Games on an emulator" is not exactly something I can put in my resume... >_>

User Info: Xian_Zhu_Xuande

Xian_Zhu_Xuande
10 years ago#63
Haha... isn't that the truth!

I think about that constantly while I'm hacking through this game. I don't think a single thing I've learned while doing it, however cool it may be, is something I can put down on a resume or impress a potential employer with. Oh well! At least it has been a lot of fun, other people have been enjoying it, and when I'm done, I'll get to really sit back and enjoy it too.

Then I can go spend some more time on things employers actually care about.
Kongming’s Archives: kongming.net (Three Kingdoms Web Site)
Scholars of Shen Zhou: the-scholars.com (Three Kingdoms Forum)

User Info: MeteorStrike

MeteorStrike
10 years ago#64
OK I went back to do those last 2 items I promised, and for the second one, I don't see why you are having problems "recruiting villagers."

Here is the data for a villager in the first village as an example:


0x31AD1 = Villager 1 Starting Y1 Position
0x31AD2 = Villager 1 Starting Y2 Position
0x31AD3 = Villager 1 Starting X1 Position
0x31AD4 = Villager 1 Starting X2 Position
0x31AD5 = Villager 1 Dialog Line
0x31AD6
0x31AD7 = Villager 1 General ID


Now if I change 0x31AD7 to C0 and 0x31AD5 to 98, then you will be able to recruit Lu Bu at the beginning of the game... without any buggy or glitchy graphics... If you already have all the "Dialog Line" memory locations as you (supposedly) do, then all you have to do is to change the General ID to the General you want that villager to be, which is just 2 bytes later...

User Info: Xian_Zhu_Xuande

Xian_Zhu_Xuande
10 years ago#65
No, that's pretty much it. The only thing we've been unable to do as far as recruiting villagers goes is change a villager from a villager to an officer. And with that location in the ROM it can be done. Of course, we'll have to map out what villagers roam about in what cities, but that is doable with enough time. I suppose I'd just go through and give each villager an officer ID, going down, and then note where they are. It is an imperfect solution, but it is something.

What governs whether they walk or not? Is it handled like the officer is dead flag?

I wonder what that other hexadecimal entry is...
Kongming’s Archives: kongming.net (Three Kingdoms Web Site)
Scholars of Shen Zhou: the-scholars.com (Three Kingdoms Forum)

User Info: Xian_Zhu_Xuande

Xian_Zhu_Xuande
10 years ago#66
I've got a question which might be very easy for you!

In the opening scene when Liu Bei, Guan Yu, and Zhang Fei enter the screen from three sides and meet to talk, what would someone do if they wanted to change the color of Liu Bei's sprite there? If you change Liu Bei's sprite in his profile it updates the type of sprite used in this scene, but it doesn't change the color. He always remains red and white.

I've been curious about that. :)
Kongming’s Archives: kongming.net (Three Kingdoms Web Site)
Scholars of Shen Zhou: the-scholars.com (Three Kingdoms Forum)

User Info: Xian_Zhu_Xuande

Xian_Zhu_Xuande
10 years ago#67
If I could get your thoughts on something...

Level 51 has a value of 999,999 associated with it in the ROM. If you adjust the experience requirements of later level-ups above 999,999 there's an unfortunate surprise waiting when you actually reach level 50. If you gain a natural level when also attaining 999,999 experience you gain at least one extra level-up, and it might also be the case that you get additional levels for levels that would have required more than 999,999. I guess the point is that there's something taking place at 999,999 experience.

The level experience array does feature an entry for 999,999, but changing that value to a higher number doesn't seem to resolve this problem.

It would be nice to be able to work around this as it would allow for more control of party experience and level progression in a mod which features greater soldier counts for enemy generals. I'm not sure how difficult it would be for you to see what happens, though. Perhaps the answer exists in the level-up handling?
Kongming’s Archives: kongming.net (Three Kingdoms Web Site)
Scholars of Shen Zhou: the-scholars.com (Three Kingdoms Forum)

User Info: MeteorStrike

MeteorStrike
10 years ago#68

What governs whether they walk or not? Is it handled like the officer is dead flag?

The Y1 and X1 positions should be between 00 and 0F. If their X1 position has the highest bit set, the villager will not walk.

User Info: MeteorStrike

MeteorStrike
10 years ago#69
When you win a battle, the level up algorithm includes this code:

$A428:AD 73 60 LDA $6073
$A42B:C9 32 CMP #$32
$A42D:B0 03 BCS $A432


Basically, if your level is greater than or equal to 50, you will not level up. If your level is less than that, then the game will allow a level up.

The problem happens because this check is done only ONCE per battle. So if you level up more than 1 single level in a single battle, the check is done only once, so you can potentially go over level 50. The assumption the programmers made here is that you will never be able to level up more than one level in a single battle. This is a safe assumption as long as no hacking is involved... >_>

There is no "fix" to this situation, because the remaining of the algorithm does not factor in your current level to determine if you are ALLOWED to raise a level. It only looks at the EXP requirements for the next level, which is stored sequentially in memory, and then act based on this. The value of 999,999 was probably added for level 51 as a safe-guard for this problem. If you lower that value of 999,999 or you gain enough exp to go from level 49 to level 51 in a single fight, then you're screwed.

You're gonna have to plan the EXP table based on this limitation of the algorithm. (Which, to be fair, is not really a "limitation" because the assumption made was a safe one until you decided to muck with the EXP table and enemy soldier count. :p) Another thing you can do is increase the 999,999 limit, to make it impossible for the player to go from level 49 to 51 in a single fight. Just keep in mind that overwriting the EXP requirements for "level 52" is a bad idea, because that's memory used for something else...

User Info: MeteorStrike

MeteorStrike
10 years ago#70

The level experience array does feature an entry for 999,999, but changing that value to a higher number doesn't seem to resolve this problem.
hmm give me a repro scenario of this and I will look into it. If your total EXP is less than that for level 51 after a battle, there is no reason why you should level up additional levels...
  • Topic Archived