Home › Forums › Destiny of an Emperor › Destiny of an Emperor RH Guide ( MOVED! to http://doaerhguide.wikidot.com )
Tagged: Battles, Destiny of an Editor, Destiny of an Emperor, Destiny of an Emperor hacking, Destiny of an Emperor Mods, Destiny of an Emperor Rom, DoaE rom, DoaE Rom hacking, FCEUX, Feidian, Graphics, hacking DoaE, Map, NES ROM hacking, nes8 template, Portraits, ROM Hacking, ROM hacking information
- This topic has 985 replies, 17 voices, and was last updated 2 years, 9 months ago by
MiDKnighT.
-
AuthorPosts
-
November 11, 2011 at 3:57 am #39850
DragonAtma
ModeratorOnce again, it'd be nice to adjust tactic learning levels — if nothing else, some of them can be delayed to the 11-30 era.
FUN FACT: even though it heals someone completely — and is the final boss's most evil weapon — Wan Fu is closer to the very beginning of the game (in number of levels, anyway) than it is to level 50.
November 11, 2011 at 4:05 am #39851MiDKnighT
ModeratorQuote:Once again, it'd be nice to adjust tactic learning levels — if nothing else, some of them can be delayed to the 11-30 era.That can already be done. Instructions are in the guide :)
November 11, 2011 at 3:42 pm #39852ludmeister
ParticipantMiDKnighT–
Before you make the IPS patch with the 8 Tactics thing, I've found a few more changes that I've needed to make it complete. Here they are:
First, here are the changes code for the tactic shifting (in case you learn a tactic in slot 8, but don't have a tactic already learned in any of the slots from 1-7). I believe this is executed for both allied and enemy officers:
0x3b823: "07" -> "09"
0x3b827: "06" -> "08"
This makes it so enemy officers after don't have their tactics summarily wiped after they are awarded them (it is supposed to clear the next enemy officer's tactics before they are awarded):
0x3e0d1: "0a85f3 0a65f3" -> "0a0a0a eaeaea"
0x3e0d9: "06" -> "08"
And finally, I was finding that enemy officers were being given Escape and Return. This was the culprit:
0x3b803: E0 09: CPX #$09– Comparing officer # with 09 (that would be the third enemy officer)
After this, it tested the tactic to be awarded with #$1d, and that is Escape's ID (Return's is #$1e). If #$1d or greater, the tactic is not to be awarded. So… normal operation with Escape/Return would require:
0x3b804: "07"
While with your Resurrect/Revive change, this would be better:
0x3b804: "0b"… or maybe "0c" to be safe??
The 8 Tactics change has the potential to be super-cool… I'm liking it :P I have even realigned the attack tactics to 4 Fire, 4 Water, and 2 miscellaneous tactics which are not affected by Douse/Levee, and don't require proximity to bodies of water! Yay!
When all else fails... manipulate the source code.
November 11, 2011 at 4:07 pm #39853MiDKnighT
ModeratorNice Lud. I only tested the 8 tactic thing in battle and on the status page. I didn't think about level ups.
Quote:And finally, I was finding that enemy officers were being given Escape and Return. This was the culprit:0x3b803: E0 09: CPX #$09– Comparing officer # with 09 (that would be the third enemy officer)
No wonder! I was wondering why I didn't have to do anything to get the bad guys to use "Life" and "Raise" but I'm also using 8 tactics. That solves one mystery.
I'll add these changes to the guide in a few.
Update on Life and Raise: Getting the bad guys to target dead guys has been a MAJOR pain in the arse. I had some code laid out to do this but it broke the game in spectacular fashion. I have a new idea that I think would be better…
November 11, 2011 at 5:20 pm #39854DragonAtma
Moderator…why did I say 11-30? I meant 31-50, when the party normally learns no more tactics. *facepalm*
Sorry 'bout that.
November 11, 2011 at 5:31 pm #39855ludmeister
ParticipantAtma–
In my current playthrough, I'm planning to test what happens when you skip a level and tell the game to award the last tactic at level 32 (not 31). If that works, it should work in any order. I don't foresee any difficulties with doing this… however,
Two caveats with this:
1. You'd (potentially) gain TP on level 32… not 31 (not a biggie), and
2. The Destiny of an Editor would not work for enemy officers set to level 31… since they would not be awarded tactics for any level higher than 31. So either you'd have to set the level of enemy officers (especially Wei officers) manually, or maybe Niahak could allow us to set the level of officers up to 50 (please, Niahak? :nod: )
When all else fails... manipulate the source code.
November 11, 2011 at 5:42 pm #39856DragonAtma
ModeratorUnless the tactics byte is used for something else, they should be able to handle anything up to level 255!
And presumably tactics would be scattered over the 50 levels, so TP should probably be redone. Then again, assuming the player gets all thirty tactics, they should wind up with just as many TP even though they take longer to finish!
November 11, 2011 at 5:57 pm #39857MiDKnighT
ModeratorQuote:or maybe Niahak could allow us to set the level of officers up to 50 (please, Niahak? )There's a simple way around that. Just edit tactable.tbl.
November 11, 2011 at 6:08 pm #39858ludmeister
ParticipantMiDKnighT– You rock. Thanks! (So do you, Niahak… great software engineering, man :thumleft: )
When all else fails... manipulate the source code.
November 11, 2011 at 6:21 pm #39859MiDKnighT
ModeratorNiahak is in high demand around here. I suggested earlier that the entire DoaE community should pool money together to give him a salary and make DoaEditor his full time job. :thumright:
November 12, 2011 at 3:26 am #39860Niahak
ModeratorQuote:There's a simple way around that. Just edit tactable.tbl.That's a nifty unintended side effect of my mini config files. It worked out pretty well :)
Quote:(So do you, Niahak… great software engineering, man :thumleft: )Thanks, but you probably wouldn't call it "engineered" if you saw the code :P
November 12, 2011 at 11:23 am #39861sonic.penguin
ModeratorOnly problem is not being able to physically see the sprites makes it really hard to pick appropriate ones atm
November 13, 2011 at 12:07 am #39862MiDKnighT
Moderator"Life" and "Raise" Tactics Complete! (replaces Tui Lu/Escape and Gui Huan/Return)
To Enable "Life" and "Raise" for the Good Guys:


Ally and Tactic Changes:
0x2FF37: 1B383534FFFFFF2130382E34FFFF <– tactic names
0x38D1D: 1DB0
0x3B98E: 4CCABA0000
0x3BACA: 206F8CA00CC91ED002A00F844D4C83B9B99C60A8A91E2082C40000000000000000000000 <– tactic code
0x3BBF6: 0A14 (10 and 20) <– tactic cost
0x3B90C: B4E6 (180 and 230) <– INT needed
Success/Fail code:
0x7B98E: A90E2082C4
0x7B9DB: A90E2082C4
0x7B9E8: A90E2082C4
0x7BAE3: 98A44DC01D900AC98090034CCBB94CD8B9C980B0034CCBB94C7EB9 <– main success/fail code
To Enable "Life" and "Raise" for the Bad Guys:


First make all the ally and tactic changes then:
0x3B804: 0B
0x3A7FA: AAA91E2082C48A1800
0x78360: A90C2082C44CEBA7
0x7A7FB: A90E2082C44C5083
0x30360:
A91E2082C4188AA6789DE46184BEBC00
62C01DB00CAAE678A4BEA90085BE4C50
83A8ADFA01690585BFC8C00AD002A005
B9A960C900F0F2B99E60C900F005C6BF
4C9983989DE461C6BFA5BFC900D0DABD
E461A8A90085BEE6784C5083 <– Enemy target selection code (the hard part)
Recommendations:
– Use the tactic slot table to put "Life" and "Raise" in slot 03 if using 8 tactics or slot 02 if using 6 tactics. By doing this the enemy will only use "Life" or "Raise" if they are low on HP instead of any time.
0x3b8b2-0x3b8cf- Tactic appears in this "slot"
00 00 00 00 00 01 01 01 01 01 02 02 02 02 02
03 03 03 03 03 04 04 05 05 06 05 05 07 03 03
– Life should probably be introduced in mid-game (chapter 4-5?). So adjust level learned accordingly…
– Raise is an end game tactic that could be used by the nastiest smart bad guys. Should probably be introduced around chapter 6 or 7… So adjust level learned accordingly…
– Not a good idea to put too many enemies in one battle that have Revive and Raise or you may be in for a never-ending battle… :wink:
The main guts of the changes:
Succeed or Fail – Basically Success if ally is dead, fail if they are alive when using "Life" or "Raise":
00:BAD3:98 TYA
00:BAD4:A4 4D LDY $004D = #$1D
00:BAD6:C0 1D CPY #$1D <– Is this life or raise?
00:BAD8:90 0A BCC $BAE4
00:BADA:C9 80 CMP #$80 <– Is the ally alive or dead?
00:BADC:90 03 BCC $BAE1
00:BADE:4C CB B9 JMP $B9CB <– Tactic fails
00:BAE1:4C D8 B9 JMP $B9D8 <– Tactic succeeds
00:BAE4:C9 80 CMP #$80 <– Is the target alive or dead?
00:BAE6:B0 03 BCS $BAEB
00:BAE8:4C CB B9 JMP $B9CB
00:BAEB:4C 7E B9 JMP $B97E <– Test tactic for success/fail
Tactic Code:
00:BABA:20 6F 8C JSR $8C6F <– Call Resurrect Code
00:BABD:A0 0C LDY #$0C <– Call Salve for "Life"
00:BABF:C9 1E CMP #$1E
00:BAC1:D0 02 BNE $BAC5
00:BAC3:A0 0F LDY #$0F <– Call Revive for "Raise"
00:BAC5:84 4D STY $004D = #$1D <– Switch tactic
00:BAC7:4C 83 B9 JMP $B983 <– Go run heal tactic
Enemy Target Choice – Enemy randomly chooses a dead ally to bring back to life:
00:8355:18 CLC
00:8356:8A TXA
00:8357:A6 78 LDX $0078 = #$05 <– General who's turn it is
00:8359:9D E4 61 STA $61E4,X @ $61E9 = #$02 <– Store target
00:835C:84 BE STY $00BE = #$00
00:835E:BC 00 62 LDY $6200,X @ $6205 = #$1E <– What tactic are they using?
00:8361:C0 1D CPY #$1D <– Is it life or raise?
00:8363:B0 0C BCS $8371
00:8365:AA TAX
00:8366:E6 78 INC $0078 = #$05 <– Go to next ally.
00:8368:A4 BE LDY $00BE = #$00
00:836A:A9 00 LDA #$00
00:836C:85 BE STA $00BE = #$00
00:836E:4C 50 83 JMP $8350
00:8371:A8 TAY
00:8372:AD FA 01 LDA $01FA = #$06 <– Random number
00:8375:69 05 ADC #$05 <– Cycle through at least 5 times to look for dead allies
00:8377:85 BF STA $00BF = #$00
00:8379:C8 INY
00:837A:C0 0A CPY #$0A <– If we've hit the last ally, start at top again
00:837C:D0 02 BNE $8380
00:837E:A0 05 LDY #$05
00:8380:B9 A9 60 LDA $60A9,Y @ $60AF = #$54 <– Load general ID of target
00:8383:C9 00 CMP #$00 <– Is there a general in this slot?
00:8385:F0 F2 BEQ $8379
00:8387:B9 9E 60 LDA $609E,Y @ $60A3 = #$80 <– Is the target alive or dead?
00:838A:C9 00 CMP #$00 <– Ignore and choose a different target if they are alive
00:838C:F0 05 BEQ $8393
00:838E:C6 BF DEC $00BF = #$00
00:8390:4C 99 83 JMP $8399
00:8393:98 TYA
00:8394:9D E4 61 STA $61E4,X @ $61E9 = #$02 <– Store target to bring back
00:8397:C6 BF DEC $00BF = #$00
00:8399:A5 BF LDA $00BF = #$00
00:839B:C9 00 CMP #$00
00:839D:D0 DA BNE $8379
00:839F:BD E4 61 LDA $61E4,X @ $61E9 = #$02 <– Load target
00:83A2:A8 TAY
00:83A3:A9 00 LDA #$00
00:83A5:85 BE STA $00BE = #$00
00:83A7:E6 78 INC $0078 = #$05 <– Go to next ally.
00:83A9:4C 50 83 JMP $8350
The tactics themselves weren't that hard to do. The hardest part by far was getting the enemy to target dead guys for "Life" and "Raise". Because of that this was one of the hardest DoaE hacks I've done. I'd appreciate if a couple of people can help test this to make sure it doesn't break other tactics or mess up the game in any way.
November 13, 2011 at 2:19 am #39863sonic.penguin
ModeratorOnly issue I see is that "revive" will just give people one more reason to SS hack. By endgame your guys never really die unless they get An-Sha'd or you just never heal out of ignorance. Im finding it rather difficult finding a combination to balance 8 tactics. :retard:
November 13, 2011 at 3:01 am #39864sonic.penguin
Moderatorload me up your latest yuan shao mod. I want to test out these improvements together. based off variance in dmg due to new tactics and multi-hits, the damage output of 2.0 which im building off of will just slaughter players I think if I include these
-
AuthorPosts
- You must be logged in to reply to this topic.

