Home › Forums › Destiny of an Emperor › Duel Tactic Details
- This topic has 4 replies, 3 voices, and was last updated 13 years, 10 months ago by
ZyloWolfBane.
-
AuthorPosts
-
July 30, 2012 at 4:14 pm #6080
MiDKnighT
ModeratorThis is a huge tactic so I didn't want to stick *everything* in the guide. In the guide I will refer to this post for more info…
Duel Tactic, Protect Tactic, and Enhanced An Sha
Protect:
– Protect combines Wuo Jian, Shui Jian, and Cheng Nei into 1 tactic.
– Enemies will not use it if Ji Mian, Ce Mian, or Ji Rou (Guard) are active.
– The tactic will fail if you use it with Ji Mian, Ce Mian, or Ji Rou (Guard) active as those 3 tactics are more powerful.
– If Ce Mian is used by an ally or enemy, it cancels Ji Mian, Ji Rou, Wuo Jian, Shui Jian, and Cheng Nei
– If Ji Mian is used by an ally or enemy, it cancels Ce Mian, Ji Rou, Wuo Jian, Shui Jian, and Cheng Nei
– If Ji Rou (Guard) is used by an ally or enemy, it cancels Ce Mian, Ji Mian, Wuo Jian, Shui Jian, and Cheng Nei
More info on the Enhanced An Sha:
– The attacker's INT will be compared to the defender's INT. If the defender has 20+ more INT than the attacker then An Sha will fail.
– If the defender is smarter than the attacker (by less than 20) then it's possible for the tactic to succeed but it will be pretty rare.
– If the attacker is smarter than the defender, the more he is smarter the better the chance An Sha will succeed.
– But if an officer has INT > 160, it will be twice as hard to An Sha them vs an officer with INT < 160.
– There is an additional "No An Sha" list where you can add up to 32 officers (in addition to the original 7). This is stored at 0x44F0-0x450F. Simply put general IDs there if you don't want them An Sha'd.
– There is a "secret sauce" formula to generate a "random number" that won't change much in battle unless major changes happen in the battle. That will make save state hacking a lot tougher if not impossible. If you save state and re-cast An Sha over and over, you'll almost definitely get the same result every time.
– As for An Sha A.I., an enemy won't attempt An Sha on someone who is 15+ INT smarter than them.
More info on "Duel":
1. Caster initiates "duel" with custom text:

2. Target decides to accept or reject without user input. Higher INT generals will weigh the odds of winning and intelligently decide whether to accept or reject. Lower INT generals are more likely to blindly accept. Higher STR generals are also more likely to accept. Lower INT generals may receive some kind of penalty for rejecting (Yi Xin and loss of Bei Ji/Qi Shou status). A very high INT general or general on the "rare duel list" (meant for rulers) might send a stronger general to duel in their place. Ie…if you cast duel on Zhuge Liang, he sends Zhao Yun out to duel. The "Rare Duel" list is at 0x44D0-0x44EF. Just put general IDs there (for rulers mainly…like Cao Cao, Sun Quan, Liu Bei, Dong Zhuo, Yuan Shu, etc…)
Example of someone accepting a duel and taunting back:

Example of a high INT general sending a stronger ally in their place:


3. If the duel is accepted, the two duel participants step forward and clash:

There are many possible outcomes for a duel:
Close Match:
– Draw (2/3rd chance) – Neither participant gets any status change
– Both participants An Sha'd (1/3rd chance)
Clear Winner:
– One person is An Sha'd (2/3rd chance)
– Winner but both parties unharmed (1/3rd chance)
* The winner will either receive an agility boost (2/3rd chance) or a Bei Ji boost (1/3rd chance) after victory.
Mismatch (Think: Lu Bu vs Song Yong) –
– One person is An Sha'd (1/3rd chance)
– Loser flees and is his own men are disgusted (1/3rd chance). The fleeing general will lose Qi Shou and Bei Ji status and get Yi Xin status.
– Loser gets KILLED (An Sha'd and removed from the game) (1/3rd chance but this will also have stat protections (nobody over 220 STR, AGI, or INT will be killed unless on the mismatch list) and a no kill list. If the officer is protected it will just be An Sha).
Important lists:
4450-446F (mismatch list – winner)
4470-448F (mismatch list – loser)
4490-44CF = no kill list
44D0-44EF = rare duel list (for rulers mainly)
44F0-450F = bigger no an sha list
The "mismatch list" overrides any protections (no kill list or stat protections). If 2 generals on the mismatch list meet in a duel the mismatch loser will likely die. How it works… You put the winner in the first 2 rows and the loser in the last 2 rows. However, they must line up exactly. For example if I wanted Guan Yu to automatically kill Yan Liang in a duel I could put Guan Yu's general ID at 0x4458 and put Yan Liang's general ID at 0x4478 (exactly 2 rows under). Now if Yan Liang sees Guan Yu in battle he better run…
The formula for winning a duel is:
Own STR: 50%
Own AGI: 16.5%
Party Leader's STR: 16.5%
Secret Sauce Random Number: 16.5%
The final number from the above is compared to the opponent's final number of the above (but they have a different secret sauce random number). If they either only has a +10 or less advantage (0A) there is a draw, otherwise the one who wins by 10+ is the victor.
That said dueling against Lu Bu where Lu Bu is leading the enemy party would be very, very tough to beat but not impossible.
After Duel, there are 4 tactic replacements after this phase:
– Cheng Nei (Tactic ID: 10)
– Wuo Jian (Tactic ID: 11)
– Shui Jian (Tactic ID: 12)
– Original An Sha (Tactic ID: 1A)
With:
– Charge (Power Pill Affects – Tactic ID: 10)
– Protect (Wuo Jian + Shui Jian + Cheng Nei – Tactic ID: 11)
– Duel (Tactic ID: 12)
– Enhanced An Sha (Tactic ID: 1A)
Hex Changes (this combines A.I., Charge tactic, Protect, Enhanced An Sha, and Duel:
Note that this has changed. Best to use the IPS patch to get this tactic.
0x2FED6: 1F2D3E2F34322FFFFF1364343BFFFFFFFFFF
0x2FEF9: 1237302D3634FFFFFF
0x39ECA: 12 –> FF
0x3A7C9: A91E2082C4
0x3A952: A91E2082C4
0x3B9D6: EAEAEAEAEAA91E2082C4
0x3B9F3: 4CEEB9A91E2082C4EAEAEA
0x3BA52: EAEAEAEAA91E2082C4
0x3BB50: 80
0x3BB53: 80
0x78010: A9012082C44C42A9
0x780D0: A9012082C44CB9A7
0x78210: A9012082C44C46BA
0x782B0: A9012082C44C82A0
0x783A5: 4CD8B9EAEA4CCBB9
0x786B6: A9012082C44CE2B9
0x786D0: 4C8AA1
0x78DB0: 00000000004C5EB100004C32A3000000
0x7A19A: 8A2024D14C4FBA
0x7A340: 0000A90E2082C4000000000000000000
0x7A6EF: A90E2082C4
0x7A7C9: A90E2082C44CC080
0x7A952: A90E2082C44C0080
0x7BA56: A90E2082C44C008200A90E2082C4
0x7B16E: A90E2082C4
0x7B9D0:
000000000000A90E2082C4A90E2082C4
4CA0820000000000A90E2082C4004CA6
86008A2024D100000000004CA6860000
0x4010:
A91E2082C4A9019DD061A678BDAA61C9
B4B0034C0080BD0062AC2562C000D003
4C50808AE9050A0A0AAAA008BDD865E8
88C919D008A6789D00624C0080C000D0
EBA678BD00624C008000000000000000
C910B0034C0080C913D00AAC2462C000
F0034CA883C914D00AAC2662C000F003
4CA883C910D00EA8AD22622901C900F0
034CA88398C911D022A8AD22622902C9
00F0034CA883AD2462C900F0034CA883
AD2662C900F0034CA88398C912D0034C
E082C91AD0034C20844C408100000000
A91E2082C4A5F39DE461BDAA61C9B4B0
034CC080BD0062C916D00FA8AD28623D
3081C900F0034CA88398C917D00FA8AD
2A623D3081C900F0034CA88398C918D0
0FA8AD2C623D3081C900F0034CA88398
C91BD00FA8AD2E623D3081C900F0034C
A883984CC08000000000000000000000
01020408100102040810000000000000
C919D017A007A200A9007D2362E8E888
10F8C900F0034CA883A0194C00800000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
E858A80001031B61020202040602080A
01020401010801010102040810010204
08100000000000000000000000000000
A91E2082C4C015D0074C348D00000000
EAEAEAEAEAEAEAEAEAC010D011A9019D
2062A900E8E89D2062E8E89D2062C013
D00EA900CACA9D2062E8E8E8E89D2062
C014D00EA900CACACACA9D2062E8E89D
2062C011D047BD20622901C901D005A9
014CB782E8E8BD2062C900F0034CB582
E8E8BD2062C900F0034CB582CACACACA
A012BD206219D0819D2062A015BD2062
19D0819D2062A011A9604CB0864CD082
A91E2082C4A44DC015D0034C348DEAEA
EAC01AD0034CB083A5AD65AE290FC5F3
90034C95834C9083A9009D20624C9583
C012D0062090904C00854C0082000000
A67820D0888AA8B9A860A01FD9C084F0
0D8810F8EAEABDA861C9DC901C200087
E001D0034CA883C93290034C00804CA8
83A67820D088BDA861C996901C200087
E000D007C91490034C0080E001D007C9
0F90034CA88320E088A67820D088BD9C
6185B020E088C5B0B0034C00804CA883
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
A91E2082C4A91E2082C4000000000000
0000000000000000E6ADA91E2082C400
A44BB9A860A01FD9E084F00E8810F820
A087E001D00BC9149005A01A4C958369
EBE000D00CC97F9002A97E85B0A97FE5
B085B0E000D00FA44BBDA861C9A09006
A5B065B085B020C086C5B09009A00084
B0A01A4C9083A00084B0A01A4C958300
00000000000000000000000000000000
20A087E000D007A91AA6784C0080C90F
90F74CA8830000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
A44BB9A860A01FD9C084F0748810F8EA
A678E005B005A64B4C2385BDE461AABD
9760AABDA861C996B025A678E005B005
A64B4C3D85BDE461AABD9760AABD9C61
85B020E088C5B0B0034C00894C1086C9
DC90034C8085200087E001D007C91490
034C0089E000D007C90F90034C108685
B020E088C5B0B0034C00894C10860000
A000A678E005B002A00598AA20008885
B1BDA860C900F013BD9C60C900F00CA5
B1C5B4900686B284B385B4C8A678E005
B004C00AD0D4E0059004C005D0CCA678
BDE46185B5A54B85B6A5B39DE461A5B2
854B200087E001D0034CEE85A5B59DE4
61A5B6854B4CFB85A5B5C5B3F00AA5B3
857920908E4C00894C1086200087E001
D0F6C93290034C00894C108600000000
20A088C9DC90034C9086A44BB9A860A0
1FD9C084F06A8810F8C905B0034C9086
20EA88C980B0034C9086A96220188FA6
78BDE46185BCA90085BDA57885BEEAEA
18A201A4BCC0059002A200BD2C625930
819D2C62BD2E625930819D2E62A201A4
BEC0059002A200A4BCBD28621930819D
2862EAA96AA6BDE0009002A96B4CB086
20F08720C08F4CB08600000000000000
85B920F38FA200A5B986B960EAEAEAEA
20A0868514A9038515EAEAA91E2082C4
AD7360A00B79A8608810FAA00B79A861
8810FAA44A79A860A44B79A860A47879
A860A00779F8618810FAA00D79226288
10FAA00B799C608810FA600000000000
A678E005B005A64A4C1087E8E8EAEAEA
BD9C618528A678E005B005A64B4C3087
BDE461AABD9760AAEAEAEAEAEAEAEAEA
BD9C618529A528C5299007A200E5294C
4887A201A529E528A000842884296000
A678E005B005A64A4C6087E8E8EAEAEA
BDB4618528A678E005B005A64B4C8087
BDE461AABD9760AAEAEAEAEAEAEAEAEA
BDB4618529A528C5299007A200E5294C
9887A201A529E528A000842884296000
A678E005B005A64A4CB087E8E8EAEAEA
BDA8618528A678E005B005A64B4CD087
BDE461AABD9760AAEAEAEAEAEAEAEAEA
BDA8618529A528C5299007A200E5294C
E887A201A529E528A000842884296000
A900A20E95B0CA10FB60000000000000
E0059005E8E84C1188EAEAEAEABD9760
AABD9C61600000000000000000000000
E0059005E8E84C3188EAEAEAEABD9760
AABDB461600000000000000000000000
E0059005E8E84C5188EAEAEAEABD9760
AABDA861600000000000000000000000
A64BBD9C616000000000000000000000
20408C4CE28900000000000000000000
A64BBDB4616000000000000000000020
508CA678BDE461AA20D088864A4C3B8A
A64BBDA86160000000000000000020D0
88E007B001AA6020D088E00790018A60
4A4A4A60000000000000000000000000
E0059003E8E860BD9760600000000000
20CB86C99BB00269646020608885B020
C386C9649002E964C5B0B002694F6000
20F08720E08F20D08E20908B206091EA
A67820008820C18885BA65BA85BAA678
20208820C08865BA85BAA200A478C005
9002A20520008820C08865BA85BA20C0
8620C08865BA85BAEAEAEAEAEAEAEAEA
A678BDE46185B1AA20008820C18885BB
65BB85BBA6B120208820C08865BB85BB
A200A4B1C0059002A20520008820C088
65BB85BB20C38620C08865BB85BB2091
92EAEAA5BA20308EE000F0034CF08920
008DE5BBC90AB0034C608AC93A90034C
B08D20F08720CB86C955B0044C7088EA
A96C20608F20408DE03DD0034CA58D20
408BA47820A18A20C386A478C955B008
20CE8AA9704CB08620BC8AA96E4CB086
A5BBE5BAC90AB0034C608AC93A90034C
D08D20F08720CB86C955B0054C8F88EA
EAA96D20508FA678A478BDE46185BEAA
20AE88864A98AA857920B788854B2040
8DE03DD0034CA58D20408BA4BE20A18A
20C386A4BEC955B00A20F08720CE8AA9
704CB08620F08720BC8AA96E4CB08600
20C086C9AAB005A9724CB08620F38F20
408DA678A478BDE461AA20D088E03DD0
034CA58D864A98AA857920D088E03DD0
034CA58D854B20F08720408DA9734CB0
86A201C0059002A200BD28623D3A819D
2862BD2A623D3A8A8D2A6260A201C005
9002A200BD2C621930819D2C6260A201
C0059002A200BD2E621930819D2C6260
A5438D4F62A901854320D5C460000000
AD4F628543A9008D4F62600000000000
20E08A200DD1600320F08A6000000000
20E08A200DD1610320F08A20A08E6000
20E08A200DD1620320F08A20A08E6000
20E08A200DD1630320F08A20F38F6000
20E08A200DD1640320F08A20F38F6000
20E08A200DD1650320F08A6000000000
20E08A200DD1660320F08A6000000000
20E08A200DD1670320F08A20C08E6000
20E08A200DD1680320F08A6000000000
20E08A200DD1690320F08A6000000000
20E08A200DD16A0320F08A20A08E6000
20E08A200DD16B0320F08A6000000000
20E08A200DD16C0320F08A6000000000
20E08A200DD16D0320F08A20A08E6000
20E08A200DD16E0320F08A6000000000
20E08A200DD16F0320F08A20A08E6000
20E08A200DD1700320F08A6000000000
20E08A200DD1710320F08A20A08E6000
20E08A200DD1720320F08A6000000000
20E08A200DD1730320F08A6000000000
20E08A200DD1740320F08A6000000000
20E08A200DD1750320F08A6000000000
20E08A200DD1760320F08A20A08E6000
20E08A200DD1770320F08A20A08E6000
20E08A200DD1780320F08A6000000000
20E08A200DD1790320F08A6000000000
20E08A200DD17A0320F08A6000000000
20E08A200DD17B0320F08A6000000000
20E08A200DD17C0320F08A6000000000
20E08A200DD17D0320F08A6000000000
20E08A200DD17E0320F08A6000000000
20E08A200DD17F0320F08A6000000000
85B8A678BDE4618579A5B86000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000A900A6789DD061A90E2082C4
A01A844DA44BA900999C60980A0AAAA9
009DD0609DD1602057E32057E2A679BD
0605297F9D0605A90485792036DFB99C
60300BC67910F4A901857A4C37A3A004
B9A36030138810F8A900857AA675E03D
D0034CA08D60EAEA203BDFA012844D60
A91E2082C4A91E2082C4000000000000
20C386C955B0034CC089C9AAB0034C00
8E20608BA67986BCA67886BE4C508600
20C386C955B0034C118AC9AAB0034C50
8E20508BA67886BC20B788854BA67986
BE4C5086EAEAEAEAEA00000000000000
A96C20608F20408DE03DD0034CA58DA5
7985B1A54B85B220B0904CDA89000000
00000000000000000000000000000000
A20086BDA5BAC5BBB009A20186BDA5BB
E5BA60E5BB6000000000000000000000
A96D20508FA678A478BDE46185BEAA20
AE88864A98AA857920B788854B20408D
E03DD0034CA58DA57885B1A54B85B220
B0904C3B8A0000000000000000000000
A5B6854A20AC8E20708B600000000000
A54B85B3A54A854BA5B3854AA54385B6
A901854320B08F2096CFA5B685436000
A67820D088E007B003854A60864A6000
A5AD65AE20D386C933B00920A08E2010
8B4C118FC966B00920A08E20A08B4C11
8FC999B00920A08E20D08B4C118FC9CC
B00920A08E20F08B4C118F20A08E2010
8C60000000000000A5AD65AE20D38685
B0C955B017200087E000D00920A08E20
208B4C4F8FA5B0EAEAEAEAEAC9AAB009
20A08E20608C4C4F8F20A08E20708C60
20A08E20608F20A08E20F38F60000000
A5AD20CB86C92AB00620C08B4C9A8FC9
54B00620808C4C9A8FC97EB00620908C
4C9A8FC9A8B00620A08C4C9A8FC9D2B0
0620B08C4C9A8F20C08C600000000000
00000000000000000000000000000000
A200A54AC9079002A201867A60000000
20A08EA5AD65AE20D386C955B005A962
4CDE8FC9AAB005A9764CDE8FA9776060
A97085BCA57885B5201090A57985B520
109060A57330FBA94085BFA57885B520
2990A57985B520299060EAEAEAEAEA60
A57330FBA4BCA902A6B5E005901E84F3
A9F0E5F3A8A9FED013A4BFA9FEA6B5E0
05900984F3A9F0E5F3A8A902A6B58512
86138414BD060529FB9D0605A613BD56
05C514F0181865129D5605BDA6056909
9DA605A573300320E2C04C4C90A57330
08BD060509049D060560000000000000
00000000000000000000000000000000
A5AD65AE20CB86C955B00620D08C4CAE
90C9AAB00620E08C4CAE9020F08C6000
A5B4C9DDF036A4B2B9A860A03FD98084
F00D8810F8A6B1200088C9DC90034C48
91A6B1202088C9DC90034C4891A6B120
4088C9DC90034C4891EAEAEA20F38FEA
EAEAEA20808BA6B2BDA860AAA9009D00
63A200BD9060C5B2F006E8E007D0F48A
86B0A906E5B0A8A6B2E007B01DA8A6B0
E8BD9060CA9D9060E88810F4A9FFA206
9D9060A6B1A9A39D9760A6B2E0079005
A9009DA860600000A5B2854B20408B60
00000000000000000000000000000000
A91FA64ABDA860D94084D012A64BBDA8
60D96084D0034C8491A64ABDA8608810
E14C9091A9DD85B44C008E0000000000
A01FA64BBDA860D94084D012A64ABDA8
60D96084D0034CB491A64BBDA8608810
E160EAEAA9DD85B44C508E0000000000
0x5290:
A678BDE4618579600000000000000000
60A57330FB20809420308EE000F00320
D093E000D00320A99320909420F38F60
0000000000000000000020A094A000A6
B8B92A623D3081D00BBD0062D006B926
62F00160A6B8EAEAEAEAEA2036DF844B
B99C603006EAEAEA4CD492A6B8BDD061
C901D004A900857CEAA4B9B905948D45
05B92994A280300AB90F94C4B8D003B9
33948D5505A9008512A67CA900A000F0
02A902E0E19002690020D5C4A5124AB0
12A4B9B906054980990605AD05054980
8D0505ADA50569098DA505A900F032A5
124AB02DA28030034AB0262903A8B919
9485FCB91D9485FDA20FBD4005187921
AD9D4005BD5005187925AD9D5005CA10
E92057E3E612A512A2803006C920D09C
F004C910D096A9008D05052057E3EAEA
EAA900D00820C09460C93A900720BA92
20BA9260C90A900A20409420BA9220BA
92602040942040942040942040946000
A67886B9A67986B8C93A900720BA9220
BA9260C90A900A20BA9220609420BA92
60206094206094206094206094600000
00000000600F273F576F0F273F576F40
40404040B0B0B0B0B000EDED00030300
00000300FDFD00030074747474748080
8080805050505050A0A0A0A0A0000000
20BA92A67886B9A67986B820BA92A679
86B9A67886B860000000000000000000
20BA92A67986B9A67886B820BA92A678
86B9A67986B860000000000000000000
A67886B886B6A67986B986B760000000
A6B68678A6B786796000000000000000
A97485BCA97085BFA57885B5201090A5
7985B520109060000000000000000000
A57885B520D094A57985B520D0946000
A57330FB202990A97085BF6000000000
Text:
0x2C170:
80A1C0D1ED09243F596D7F92CFDFFB0E
2B3A576F88ABCEE60E2B4A62728390AB
0x2C370:
B6B6B6B6B6B7B7B7B7B7B7B7B7B7B7B8
B8B8B8B8B8B8B8B8B9B9B9B9B9B9B9B9
0x2F690:
F0D99055F0E1A096CE3CF00A3433FBF0
4D2E2FAE46FDD0A266F0F2342DAE632E
ECF462FB3534343B90A62EF0F42D3F3D
342E2EFBD0E9D0EF313B3033347AFDFF
F4A0A9D0B1F0E83EA01FD0B2F0F063FD
FFF5A0A33130333B680A663E643D3334
33FBF0EB90A63364343B63FDFFF4A0A3
3130333B680A663E643D333433FBF0EB
90A63364343B63FDFFF50A37E0DE353B
343390A63364343BFBD0EB2F342D2D3E
2D63FDFFF40A37E0DE353B343390A633
64343BFBD0EB2F342D2D3E2D63FDFF1F
342DF0F43F2EB0A9AE28FBD059D0E835
303234FBF47A0AFDFFF4A0A31A181B1B
1413B0EBA0A63364343B7AFDFFF5A0A2
F4A089D0EB323E3C31F0F2CEB0FDFF18
EAF5FBF0ACF0E32F80E6F01A34337AFD
FFFBF4612EB0F03DFBD0653B3E2E2F0A
FB32F0EC353833343D3234B0EBB0B763
FDF0A568A096333E64312F90B3303138
3BF0EA68FBD0E83B343033EEB0FDFFF5
80A3653832F0E82D383E642E7AFDFFF4
FBF0512E90E8332D3066FB2EEE2F2E7B
0A0A1710171017107AFDFFF5612EB0F0
3DFB3630D0EB2E3F3434337AFDFFF462
A096D060F0F03DA083D0B4300A2D3430
3BFDF0BF2D383E2D7AFBFFF5612EFBF0
F03D0A2DF0AA687AFDFF189083323B34
303DFBD060313B3E3E33A066D0EF313B
3033347AFDFFFBF5A0A2F4A06531F0F2
2F3B343390E8300A332D30667AFDFFF5
A0A2F48065313E2F37B0E6343D0A663E
643D3334337AFDFF103BCE86643DF0F4
2DF0F03362FBF4FBD0A3323B34302D3B
68FDF0BC353E6436372FEC103BCE8664
3DF0F42DF0F03362FBF5FBD0A3323B34
302D3B68FDF0BC353E6436372FECF5AE
AEFBF0E32F0A3F3B30680AFBD0523630
F0F02E63FDFFF4FB189065F0E62F2F34
2DFBF0372E90E8333E62FDF059B01AF0
EB36FBD060302D3C38342E7AFDFFF462
FB0EF0560EB0E1809AD0E86638343B33
0A300A313B3033347AFDFFD05CF0E1A0
74F0F43F3F343D2E0A66F0E53DFDD0A9
353032340AFBF57AFDFFF462FBD0A935
3E6436372FFBD059300A3237383B337A
FDFFF4FBD0A9353E6436372FFBF06AEB
FDFFF0BA8E7633F0B12EFBF0E8A02DF5
7BFDFFF4FBD076F0A2A02DF0F07AFDFF
180A3237F0AA343D3634B0A63462FBF4
A0E8300A3364343B63FDFFCEB3D0A931
2D3065340AFBD026F0E8A02DF57B0AFD
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
To get it to work with DoaEditor:
1. Open your ROM with DoaEditor and painful click through all the key errors.
2. Go to the text tab and go to the bottom.
3. Look for text above and below the "Duel" text and fix it. In mine the one above the duel text had a bazillion lines. Simply change it to say:
open slot[END]
4. Save your ROM with DoaEditor.
Some important lists and tweeks:
4450-446F (mismatch list – winner)
4470-448F (mismatch list – loser)
4490-44CF = no kill list
44D0-44EF = rare duel list (for rulers mainly)
44F0-450F = bigger no an sha list
Stat protections for "kill" (besides the "No Kill List")
0x50DB: DC (STR check – don't kill if target is over 220 STR)
0x50E7: DC (AGI check – don't kill if target is over 220 AGI)
0x50F3: DC (INT check – don't kill if target is over 220 INT)
So by default nobody over 220 for any stat can be killed (unless they are on the mismatch list).
Some of the guts (not all – that would be too much to post). Also some of this may not be the latest:
New Protect code:
00:8252:C0 11 CPY #$11 <– Is tactic protect?
00:8254:D0 47 BNE $829D
00:8256:BD 20 62 LDA $6220,X @ $6223 = #$03 <– Get Cheng Nei, Ji Rou/Guard, Wuo Jian, or Shui Jian Status
00:8259:29 01 AND #$01
00:825B:C9 01 CMP #$01
00:825D:D0 05 BNE $8264
00:825F:A9 01 LDA #$01
00:8261:4C B7 82 JMP $82B7 <– If Ji Rou/Guard is already enabled, fail.
00:8264:E8 INX
00:8265:E8 INX
00:8266:BD 20 62 LDA $6220,X @ $6223 = #$03 <– Get Ce Mian status
00:8269:C9 00 CMP #$00
00:826B:F0 03 BEQ $8270
00:826D:4C B5 82 JMP $82B5 <– If Ce Mian is already enabled, fail.
00:8270:E8 INX
00:8271:E8 INX
00:8272:BD 20 62 LDA $6220,X @ $6223 = #$03 <– Get Ji Mian status
00:8275:C9 00 CMP #$00
00:8277:F0 03 BEQ $827C
00:8279:4C B5 82 JMP $82B5 <– If Ji Mian is already enabled, fail
00:827C:CA DEX
00:827D:CA DEX
00:827E:CA DEX
00:827F:CA DEX
00:8280:A0 12 LDY #$12
00:8282:BD 20 62 LDA $6220,X @ $6223 = #$03
00:8285:19 D0 81 ORA $81D0,Y @ $81E1 = #$02
00:8288:9D 20 62 STA $6220,X @ $6223 = #$03
00:828B:A0 15 LDY #$15
00:828D:BD 20 62 LDA $6220,X @ $6223 = #$03
00:8290:19 D0 81 ORA $81D0,Y @ $81E1 = #$02
00:8293:9D 20 62 STA $6220,X @ $6223 = #$03
00:8296:A0 11 LDY #$11
00:8298:A9 60 LDA #$60
00:829A:20 B0 86 JSR $86B0
00:829D:4C D0 82 JMP $82D0
00:82A0:A9 1E LDA #$1E
00:82A2:20 82 C4 JSR $C482
00:82A5:A4 4D LDY $004D = #$11
00:82A7:C0 1A CPY #$1A
00:82A9:D0 03 BNE $82AE
00:82AB:4C B0 83 JMP $83B0
00:82AE:A5 AD LDA $00AD = #$7F
00:82B0:65 AE ADC $00AE = #$1F
00:82B2:29 0F AND #$0F
00:82B4:C5 F3 CMP $00F3 = #$04
00:82B6:90 03 BCC $82BB
00:82B8:4C 95 83 JMP $8395
00:82BB:4C 90 83 JMP $8390
00:82BE:A9 00 LDA #$00
00:82C0:9D 20 62 STA $6220,X @ $6222 = #$0E
00:82C3:4C 95 83 JMP $8395
New Protect A.I.:
# Enemy won't use protect if it is already active or if Ji Rou/Guard, Ce Mian, or Ji Mian are already active.
00:8085:C9 11 CMP #$11 <– Is Tactic Protect?
00:8087:D0 22 BNE $80AB
00:8089:A8 TAY
00:808A:AD 22 62 LDA $6222 = #$00 <– Get Cheng Nei, Ji Rou/Guard, Wuo Jian, or Shui Jian Status
00:808D:29 02 AND #$02
00:808F:C9 00 CMP #$00
00:8091:F0 03 BEQ $8096
00:8093:4C A8 83 JMP $83A8
00:8096:AD 24 62 LDA $6224 = #$00 <– Get Ce Mian Status
00:8099:C9 00 CMP #$00
00:809B:F0 03 BEQ $80A0
00:809D:4C A8 83 JMP $83A8
00:80A0:AD 26 62 LDA $6226 = #$00 <– Get Ji Mian Status
00:80A3:C9 00 CMP #$00
00:80A5:F0 03 BEQ $80AA
00:80A7:4C A8 83 JMP $83A8 <– Pick something else
00:80AA:98 TYA
00:80AB:C9 12 CMP #$12 <– Is Tactic Duel?
00:80AD:D0 03 BNE $80B2
00:80AF:4C D0 82 JMP $82D0 <– Go to Duel A.I. code
00:80B2:C9 1A CMP #$1A <– Is Tactic An Sha?
00:80B4:D0 03 BNE $80B2
00:80B6:4C 20 84 JMP $8420 <– Go to An Sha A.I. code
00:80B9:4C 00 80 JMP $8000
An Sha code:
00:83B0:A4 4B LDY $004B = #$07 <– Defender
00:83B2:B9 A8 60 LDA $60A8,Y @ $61A7 = #$79 <– Get general ID
00:83B5:A0 1F LDY #$1F
00:83B7:D9 E0 84 CMP $84E0,Y @ $85DF = #$00 <– On No An Sha list?
00:83BA:F0 0E BEQ $83CA <– If on An Sha list, tactic fails
00:83BC:88 DEY
00:83BD:10 F8 BPL $83B7 <– End loop
00:83BF:20 A0 87 JSR $87A0 <– Function to compare INT
00:83C2:E0 01 CPX #$01 <– Does defender have more INT?
00:83C4:D0 0B BNE $83D1 <– If not, skip ahead
00:83C6:C9 14 CMP #$14 <– Does defender have 20+ more INT?
00:83C8:90 05 BCC $83CF <– If not, skip ahead
00:83CA:A0 1A LDY #$1A
00:83CC:4C 95 83 JMP $8395 <– Defender has 20+ more INT, tactic fails
00:83CF:69 EB ADC #$EB
00:83D1:E0 00 CPX #$00 <– Does attacker have more INT?
00:83D3:D0 0C BNE $83E1 <– If not, skip ahead
00:83D5:C9 7F CMP #$7F <– Does attacker have 127+ more INT?
00:83D7:90 02 BCC $83DB
00:83D9:A9 7E LDA #$7E <– If so, tactic only has 1 in 255 chance of failing
00:83DB:85 B0 STA $00B0 = #$00
00:83DD:A9 7F LDA #$7F
00:83DF:E5 B0 SBC $00B0 = #$00
00:83E1:85 B0 STA $00B0 = #$00 <– store tactic success factor (lower is better)
00:83E3:E0 00 CPX #$00
00:83E5:D0 0F BNE $83F6
00:83E7:A4 4B LDY $004B = #$09
00:83E9:BD A8 61 LDA $61A8,X @ $6258 = #$00 <– get defender's INT
00:83EC:C9 A0 CMP #$A0 <– going to be tougher to An Sha defenders with INT > 160
00:83EE:90 06 BCC $83F6
00:83F0:A5 B0 LDA $00B0 = #$00
00:83F2:65 B0 ADC $00B0 = #$00 <– double tactic success factor (tougher)
00:83F4:85 B0 STA $00B0 = #$00
00:83F6:20 C0 86 JSR $86C0
00:83F9:C5 B0 CMP $00B0 = #$00 <– Is our tactic success factor < secret sauce number?
00:83FB:90 09 BCC $8406
00:83FD:A0 00 LDY #$00
00:83FF:84 B0 STY $00B0 = #$00
00:8401:A0 1A LDY #$1A
00:8403:4C 90 83 JMP $8390 <– Tactic succeeds
00:8406:A0 00 LDY #$00
00:8408:84 B0 STY $00B0 = #$00
00:840A:A0 1A LDY #$1A
00:840C:4C 95 83 JMP $8395 <– Tactic fails
An Sha A.I. Code:
00:8420:20 A0 87 JSR $87A0 <– Compare INT
00:8423:E0 00 CPX #$00 <– If we are smarter, continue on with the tactic
00:8425:D0 05 BNE $842C
00:8427:A0 1A LDY #$1A
00:8429:4C 00 80 JMP $8000
00:842C:C9 0F CMP #$0F <– We are not smarter, is the defender 15+ INT smarter?
00:842E:B0 F8 BCS $8428 <– If so, find something else to do.
00:8430:A0 1A LDY #$1A
00:8432:4C A8 83 JMP $83A8
Duel Accept/Reject:
00:8500:A4 4B LDY $004B = #$07
00:8502:B9 A8 60 LDA $60A8,Y @ $60A8 = #$A9
00:8505:A0 1F LDY #$1F
00:8507:D9 C0 84 CMP $84C0,Y @ $84C0 = #$BB <– Check the "Rare Duel" list
00:850A:F0 74 BEQ $8580
00:850C:88 DEY
00:850D:10 F8 BPL $8507
00:850F:EA NOP
00:8510:A6 78 LDX $0078 = #$00
00:8512:E0 05 CPX #$05
00:8514:B0 05 BCS $851B
00:8516:A6 4B LDX $004B = #$07
00:8518:4C 23 85 JMP $8523
00:851B:BD E4 61 LDA $61E4,X @ $61E7 = #$06 <– Get target
00:851E:AA TAX
00:851F:BD 97 60 LDA $6097,X @ $609A = #$01
00:8522:AA TAX
00:8523:BD A8 61 LDA $61A8,X @ $61AB = #$B9
00:8526:C9 96 CMP #$78 <– Is INT > 120
00:8528:B0 25 BCS $854F
00:852A:A6 78 LDX $0078 = #$00
00:852C:E0 05 CPX #$05
00:852E:B0 05 BCS $8535
00:8530:A6 4B LDX $004B = #$07
00:8532:4C 3D 85 JMP $853D
00:8535:BD E4 61 LDA $61E4,X @ $61E7 = #$06
00:8538:AA TAX
00:8539:BD 97 60 LDA $6097,X @ $609A = #$01
00:853C:AA TAX
00:853D:BD 9C 61 LDA $619C,X @ $619F = #$36
00:8540:85 B0 STA $00B0 = #$00
00:8542:20 CB 86 JSR $88E0
00:8545:C5 B0 CMP $00B0 = #$00
00:8547:B0 03 BCS $854C
00:8549:4C 00 89 JMP $8900
00:854C:4C 10 86 JMP $8610
00:854F:C9 DC CMP #$DC <– INT > 220?
00:8551:90 03 BCC $8556
00:8553:4C 80 85 JMP $8580
00:8556:20 00 87 JSR $8700
00:8559:E0 00 CPX #$00
00:855B:D0 07 BNE $8564
00:855D:C9 14 CMP #$14
00:855F:90 03 BCC $8564
00:8561:4C 00 89 JMP $8900
00:8564:E0 01 CPX #$01
00:8566:D0 07 BNE $856F
00:8568:C9 0F CMP #$0F
00:856A:90 03 BCC $856F
00:856C:4C 10 86 JMP $8610
00:856F:85 B0 STA $00B0 = #$00
00:8571:20 CB 86 JSR $86CB
00:8574:C5 B0 CMP $00B0 = #$00
00:8576:B0 03 BCS $857B
00:8578:4C 00 89 JMP $8900
00:857B:4C 10 86 JMP $8610
00:857E:00 BRK
00:857F:00 BRK
Smart general decision:
00:8580:A0 00 LDY #$00
00:8582:A6 78 LDX $0078 = #$06
00:8584:E0 05 CPX #$05
00:8586:B0 02 BCS $858A
00:8588:A0 05 LDY #$05
00:858A:98 TYA
00:858B:AA TAX
00:858C:20 00 88 JSR $8800
00:858F:85 B1 STA $00B1 = #$00
00:8591:BD A8 60 LDA $60A8,X @ $60AB = #$D5 <– Is there a general in this slot?
00:8594:C9 00 CMP #$00
00:8596:F0 13 BEQ $85AB
00:8598:BD 9C 60 LDA $609C,X @ $609F = #$80 <– Are they alive?
00:859B:C9 00 CMP #$00
00:859D:F0 0C BEQ $85AB
00:859F:A5 B1 LDA $00B1 = #$00
00:85A1:C5 B4 CMP $00B4 = #$00
00:85A3:90 06 BCC $85AB
00:85A5:86 B2 STX $00B2 = #$00
00:85A7:84 B3 STY $00B3 = #$02
00:85A9:85 B4 STA $00B4 = #$00 <– store winning general
00:85AB:C8 INY
00:85AC:A6 78 LDX $0078 = #$06
00:85AE:E0 05 CPX #$05
00:85B0:B0 04 BCS $85B6
00:85B2:C0 0A CPY #$0A
00:85B4:D0 D4 BNE $858A
00:85B6:E0 05 CPX #$05
00:85B8:90 04 BCC $85BE
00:85BA:C0 05 CPY #$05
00:85BC:D0 CC BNE $858A
00:85BE:A6 78 LDX $0078 = #$06
00:85C0:BD E4 61 LDA $61E4,X @ $61E7 = #$08 <– Load duel requester target
00:85C3:85 B5 STA $00B5 = #$03 <– store duel requester target in B5
00:85C5:A5 4B LDA $004B = #$03
00:85C7:85 B6 STA $00B6 = #$0E <– store duel requester 07 target in B6
00:85C9:A5 B3 LDA $00B3 = #$01 <– get strongest general 05 format
00:85CB:9D E4 61 STA $61E4,X @ $61EB = #$00
00:85CE:A5 B2 LDA $00B2 = #$00 <– get strongest general 07 format
00:85D0:85 4B STA $004B = #$08 <– store in 4B
00:85D2:20 00 87 JSR $8700 <– compare strength
00:85D5:E0 01 CPX #$01
00:85D7:D0 03 BNE $85DC
00:85D9:4C E3 85 JMP $85E3
00:85DC:A5 B5 LDA $00B5 = #$07
00:85DE:9D E4 61 STA $61E4,X @ $61EB = #$00 <– Change target
00:85E1:85 79 STA $0079 = #$06
00:85E3:A5 B6 LDA $00B6 = #$0E
00:85E5:85 4B STA $004B = #$08
00:85E7:4C F6 85 JMP $85F6
00:85EA:A5 B5 LDA $00B5 = #$07
00:85EC:C5 B3 CMP $00B3 = #$01
00:85EE:F0 06 BEQ $85F6
00:85F0:4C 00 89 JMP $8900
00:85F3:4C 10 86 JMP $8610
00:85F6:20 00 87 JSR $8700
00:85F9:E0 01 CPX #$01
00:85FB:D0 F6 BNE $85F3
00:85FD:C9 32 CMP #$32
00:85FF:90 03 BCC $8604
00:8601:4C 00 89 JMP $8900
00:8604:4C 10 86 JMP $8610
Duel Refusal:
00:8610:20 A0 88 JSR $88A0 <– Find INT
00:8613:C9 DC CMP #$DC <– > 220?
00:8615:90 03 BCC $861A
00:8617:4C 90 86 JMP $8690 <– End without penalty
00:861A:A4 4B LDY $004B = #$0B <– Find defender
00:861C:B9 A8 60 LDA $60A8,Y @ $61A7 = #$38
00:861F:A0 1F LDY #$1F
00:8621:D9 C0 84 CMP $84C0,Y @ $85BF = #$78 <– Check rare duel list
00:8624:F0 6A BEQ $8690 <– End without penalty
00:8626:88 DEY
00:8627:10 F8 BPL $8621
00:8629:C9 04 CMP #$04 <– No penalty for rebel force, etc…
00:862B:90 03 BCC $8630
00:862D:4C 90 86 JMP $8690 <– End without penalty
00:8630:20 C3 86 JSR $86C3 <– Get secret sauce number
00:8633:C9 80 CMP #$80 <– 50/50 chance of penalty
00:8635:B0 03 BCS $863A
00:8637:4C 90 86 JMP $8690 <– End without penalty
00:863A:A9 62 LDA #$62
00:863C:20 A0 86 JSR $86A0
00:863F:A6 78 LDX $0078 = #$00 <– Who am I?
00:8641:BD E4 61 LDA $61E4,X @ $61EF = #$06 <– Who is my target?
00:8644:85 BF STA $00BF = #$09 <– Store loser
00:8646:A9 00 LDA #$00
00:8648:85 BD STA $00BD = #$00 <– Attacker wins
00:8650:A0 00 LDY #$00
00:8652:A6 BF LDX $00BF = #$00 <– Who is the loser?
00:8654:E0 05 CPX #$05
00:8656:90 02 BCC $865A
00:8658:A0 01 LDY #$01 <– Enemy lost
…
00:8683:A9 6A LDA #$6A
00:8685:A6 BD LDX $00BD = #$00
00:8687:E0 00 CPX #$00
00:8689:90 02 BCC $868D
00:868B:A9 6B LDA #$6B
00:868D:20 B0 86 JSR $86B0
00:8690:20 F0 87 JSR $87F0
00:8693:A9 62 LDA #$62
00:8695:20 B0 86 JSR $86B0
Loser Punishment:
00:8650:A2 01 LDX #$01
00:8652:A4 BF LDY $00BF = #$00
00:8654:C0 05 CPY #$05
00:8656:90 02 BCC $865A
00:8658:A2 00 LDX #$00
00:865A:BD 2C 62 LDA $622C,X @ $6231 = #$00
00:865D:49 00 EOR #$00
00:865F:9D 2C 62 STA $622C,X @ $6231 = #$00 <– Remove Haste
00:8662:BD 2E 62 LDA $622E,X @ $6233 = #$00
00:8665:49 00 EOR #$00
00:8667:9D 2E 62 STA $622E,X @ $6233 = #$00 <– Remove Bei Ji
00:866A:A2 01 LDX #$01
00:866C:A4 BE LDY $00BE = #$05
00:866E:C0 05 CPY #$05
00:8670:90 02 BCC $8674
00:8672:A2 00 LDX #$00
00:8674:B9 E4 61 LDA $61E4,Y @ $62E3 = #$00
00:8677:A8 TAY
00:8678:BD 28 62 LDA $6228,X @ $622D = #$00
00:867B:19 30 81 ORA $8130,Y @ $822F = #$13
00:867E:9D 28 62 STA $6228,X @ $622D = #$00 <– Add Yi Xin
00:8681:EA NOP
00:8682:EA NOP
00:8683:A9 6A LDA #$6A
00:8685:A6 BD LDX $00BD = #$01
00:8687:E0 00 CPX #$00
00:8689:90 02 BCC $868D
00:868B:A9 6B LDA #$6B
00:868D:4C B0 86 JMP $86B0
00:8690:20 F0 87 JSR $87F0
00:8693:A9 62 LDA #$62
00:8695:4C B0 86 JMP $86B0
Duel Winner?
00:8900:20 F0 87 JSR $87F0
00:8903:A9 61 LDA #$61
00:8905:20 A0 86 JSR $86A0
00:8908:A9 69 LDA #$69
00:890A:20 B0 86 JSR $86B0
00:890D:EA NOP
00:890E:EA NOP
00:890F:EA NOP
00:8910:A6 78 LDX $0078 = #$04
00:8912:20 00 88 JSR $8800
00:8915:20 C1 88 JSR $88C1
00:8918:85 BA STA $00BA = #$00
00:891A:65 BA ADC $00BA = #$00
00:891C:85 BA STA $00BA = #$00
00:891E:A6 78 LDX $0078 = #$04
00:8920:20 20 88 JSR $8820
00:8923:20 C0 88 JSR $88C0
00:8926:65 BA ADC $00BA = #$00
00:8928:85 BA STA $00BA = #$00
00:892A:A2 00 LDX #$00
00:892C:A4 78 LDY $0078 = #$04
00:892E:C0 05 CPY #$05
00:8930:90 02 BCC $8934
00:8932:A2 05 LDX #$05
00:8934:20 00 88 JSR $8800
00:8937:20 C0 88 JSR $88C0
00:893A:65 BA ADC $00BA = #$00
00:893C:85 BA STA $00BA = #$00
00:893E:20 C0 86 JSR $86C0
00:8941:20 C0 88 JSR $88C0
00:8944:65 BA ADC $00BA = #$00
00:8946:85 BA STA $00BA = #$00
00:8950:A6 78 LDX $0078 = #$00
00:8952:BD E4 61 LDA $61E4,X @ $61E4 = #$07
00:8955:85 B1 STA $00B1 = #$07
00:8957:AA TAX
00:8958:20 00 88 JSR $8800
00:895B:20 C1 88 JSR $88C1
00:895E:85 BB STA $00BB = #$82
00:8960:65 BB ADC $00BB = #$82
00:8962:85 BB STA $00BB = #$82
00:8964:A6 B1 LDX $00B1 = #$07
00:8966:20 20 88 JSR $8820
00:8969:20 C0 88 JSR $88C0
00:896C:65 BB ADC $00BB = #$82
00:896E:85 BB STA $00BB = #$82
00:8970:A2 00 LDX #$00
00:8972:A4 B1 LDY $00B1 = #$07
00:8974:C0 05 CPY #$05
00:8976:90 02 BCC $897A
00:8978:A2 05 LDX #$05
00:897A:20 00 88 JSR $8800
00:897D:20 C0 88 JSR $88C0
00:8980:65 BB ADC $00BB = #$82
00:8982:85 BB STA $00BB = #$82
00:8984:20 C3 86 JSR $86C3
00:8987:20 C0 88 JSR $88C0
00:898A:65 BB ADC $00BB = #$82
00:898C:85 BB STA $00BB = #$82
00:898E:EA NOP
00:898F:EA NOP
00:8990:A2 00 LDX #$00
00:8992:86 BD STX $00BD = #$00
00:8994:A5 BA LDA $00BA = #$91
00:8996:C5 BB CMP $00BB = #$82 <– who won?
00:8998:B0 07 BCS $89A1
00:899A:A2 01 LDX #$01
00:899C:86 BD STX $00BD = #$00
00:899E:4C F0 89 JMP $89F0
00:89A1:E5 BB SBC $00BB = #$98 <– attacker won
00:89A3:C9 0A CMP #$0A
00:89A5:B0 03 BCS $89AA
00:89A7:4C 60 8A JMP $8A60
00:89AA:C9 30 CMP #$30
00:89AC:90 03 BCC $89B1
00:89AE:4C B0 8D JMP $8DB0
00:89B1:20 F0 87 JSR $87F0
00:89B4:20 CB 86 JSR $86CB
00:89B7:C9 55 CMP #$55
00:89B9:B0 05 BCS $89C0
00:89BB:4C 70 88 JMP $8870
Subroutine to find duel winner:
00:8E30:A2 00 LDX #$00
00:8E32:86 BD STX $00BD = #$00
00:8E34:A5 BA LDA $00BA = #$78
00:8E36:C5 BB CMP $00BB = #$A3 <– Who won?
00:8E38:B0 09 BCS $8E43
00:8E3A:A2 01 LDX #$01
00:8E3C:86 BD STX $00BD = #$00
00:8E3E:A5 BB LDA $00BB = #$A3
00:8E40:E5 BA SBC $00BA = #$78 <– Subtract loser's amount to see winning deficit
00:8E42:60 RTS
00:8E43:E5 BB SBC $00BB = #$A3 <– Subtract loser's amount to see winning deficit
00:8E45:60 RTS
Opponent Wins:
00:89F0:A5 BB LDA $00BB = #$C5
00:89F2:E5 BA SBC $00BA = #$2C
00:89F4:C9 0A CMP #$0A
00:89F6:B0 03 BCS $89FB
00:89F8:4C 60 8A JMP $8A60
00:89FB:C9 30 CMP #$30
00:89FD:90 03 BCC $8A02
00:89FF:4C D0 8D JMP $8DD0
00:8A02:20 F0 87 JSR $87F0
00:8A05:20 CB 86 JSR $86CB
00:8A08:C9 55 CMP #$55
00:8A0A:B0 05 BCS $8A11
00:8A0C:4C 8F 88 JMP $888F
00:8A0F:EA NOP
00:8A10:EA NOP
00:8A11:A9 6D LDA #$6D
00:8A13:20 D0 8B JSR $8BD0
00:8A16:A6 78 LDX $0078 = #$05
00:8A18:A4 78 LDY $0078 = #$05
00:8A1A:BD E4 61 LDA $61E4,X @ $61E5 = #$05
00:8A1D:85 BE STA $00BE = #$00
00:8A1F:AA TAX
00:8A20:20 D0 88 JSR $88D0
00:8A23:86 4A STX $004A = #$07
00:8A25:98 TYA
00:8A26:AA TAX
00:8A27:85 79 STA $0079 = #$00
00:8A29:20 D0 88 JSR $88D0
00:8A2C:85 4B STA $004B = #$04
00:8A2E:20 40 8D JSR $8D40
00:8A31:E0 3D CPX #$3D
00:8A33:D0 03 BNE $8A38
00:8A35:4C A5 8D JMP $8DA5
00:8A38:20 40 8B JSR $8B40
00:8A3B:A4 BE LDY $00BE = #$00
00:8A3D:20 A1 8A JSR $8AA1
00:8A40:20 C3 86 JSR $86C3
00:8A43:A4 BE LDY $00BE = #$00
00:8A45:C9 55 CMP #$55
00:8A47:B0 0A BCS $8A53
00:8A49:20 F0 87 JSR $87F0
00:8A4C:20 CE 8A JSR $8ACE
00:8A4F:A9 70 LDA #$70
00:8A51:4C B0 86 JMP $86B0
00:8A54:20 F0 87 JSR $87F0
00:8A57:20 BC 8A JSR $8ABC
00:8A5A:A9 6E LDA #$6E
00:8A5C:4C B0 86 JMP $86B0
00:8A5F:00 BRK
Opponent devastating win:
00:8DD0:20 C3 86 JSR $86C3
00:8DD3:C9 55 CMP #$55
00:8DD5:B0 03 BCS $8DDA
00:8DD7:4C 11 8A JMP $8A11 <— An Sha result
00:8DDA:C9 AA CMP #$AA
00:8DDC:B0 03 BCS $8DE1
00:8DDE:4C 50 8E JMP $8E50 <— Loser is KILLED (if not on no kill list or stat protect, otherwise An Sha)
00:8DE1:20 50 8B JSR $8B50 <— Loser flees in terror.
00:8DE4:A6 78 LDX $0078 = #$04
00:8DE6:86 BC STX $00BC = #$74
00:8DE8:20 B7 88 JSR $88B7
00:8DEB:85 4B STA $004B = #$07
00:8DED:A6 79 LDX $0079 = #$05
00:8DEF:86 BE STX $00BE = #$00
00:8DF1:4C 50 86 JMP $8650
Draw:
00:8A60:20 F0 87 JSR $87F0
00:8A63:20 C0 86 JSR $86C0
00:8A66:C9 C0 CMP #$C0
00:8A68:B0 05 BCS $8A6F
00:8A6A:A9 72 LDA #$72
00:8A6C:4C B0 86 JMP $86B0
00:8A6F:20 40 8D JSR $8D40
00:8A72:A6 78 LDX $0078 = #$03
00:8A74:A4 78 LDY $0078 = #$03
00:8A76:BD E4 61 LDA $61E4,X @ $61E5 = #$05
00:8A79:AA TAX
00:8A7A:20 D0 88 JSR $88D0
00:8A7D:E0 3D CPX #$3D
00:8A7F:D0 03 BNE $8A84
00:8A81:4C A5 8D JMP $8DA5
00:8A84:86 4A STX $004A = #$01
00:8A86:98 TYA
00:8A87:AA TAX
00:8A88:85 79 STA $0079 = #$07
00:8A8A:20 D0 88 JSR $88D0
00:8A8D:E0 3D CPX #$3D
00:8A8F:D0 03 BNE $8A94
00:8A91:4C A5 8D JMP $8DA5
00:8A94:85 4B STA $004B = #$09
00:8A96:20 F0 87 JSR $87F0
00:8A99:20 40 8D JSR $8D40
00:8A9C:A9 73 LDA #$73
00:8A9E:4C B0 86 JMP $86B0
00:8AA1:A2 01 LDX #$01
00:8AA3:C0 05 CPY #$05
00:8AA5:90 02 BCC $8AA9
00:8AA7:A2 00 LDX #$00
00:8AA9:BD 28 62 LDA $6228,X @ $6229 = #$00
00:8AAC:3D 3A 81 AND $813A,X @ $813B = #$00
Duel A.I.:
00:82E0:A6 78 LDX $0078 = #$05
00:82E2:20 D0 88 JSR $88D0
00:82E5:8A TXA
00:82E6:A8 TAY
00:82E7:B9 A8 60 LDA $60A8,Y @ $60A8 = #$D7
00:82EA:A0 1F LDY #$1F
00:82EC:D9 C0 84 CMP $84C0,Y @ $84C0 = #$00
00:82EF:F0 0D BEQ $82FE
00:82F1:88 DEY
00:82F2:10 F8 BPL $82EC
00:82F4:EA NOP
00:82F5:EA NOP
00:82F6:BD A8 61 LDA $61A8,X @ $61AD = #$55
00:82F9:C9 DC CMP #$DC
00:82FB:90 1C BCC $8319
00:82FD:20 00 87 JSR $8700
00:8300:E0 01 CPX #$01
00:8302:D0 03 BNE $8307
00:8304:4C A8 83 JMP $83A8
00:8307:C9 32 CMP #$32
00:8309:90 03 BCC $830E
00:830B:4C 00 80 JMP $8000
00:830E:4C A8 83 JMP $83A8
00:8311:A6 78 LDX $0078 = #$05
00:8313:20 D0 88 JSR $88D0
00:8316:BD A8 61 LDA $61A8,X @ $61AD = #$55
00:8319:C9 96 CMP #$96
00:831B:90 33 BCC $8350
00:831D:20 00 87 JSR $8700
00:8320:E0 00 CPX #$00
00:8322:D0 07 BNE $832B
00:8324:C9 14 CMP #$14
00:8326:90 03 BCC $832B
00:8328:4C 00 80 JMP $8000
00:832B:E0 01 CPX #$01
00:832D:D0 07 BNE $8336
00:832F:C9 0F CMP #$0F
00:8331:90 03 BCC $8336
00:8333:4C A8 83 JMP $83A8
00:8336:20 E0 88 JSR $88E0
00:8339:A6 78 LDX $0078 = #$05
00:833B:20 D0 88 JSR $88D0
00:833E:BD 9C 61 LDA $619C,X @ $61A1 = #$D7
00:8341:85 B0 STA $00B0 = #$00
00:8343:20 E0 88 JSR $88E0
00:8346:C5 B0 CMP $00B0 = #$00
00:8348:B0 03 BCS $834D
00:834A:4C 00 80 JMP $8000
00:834D:4C A8 83 JMP $83A8
00:8350:4C 39 83 JMP $8339
There's a lot more than this as well that's not posted.
July 30, 2012 at 4:43 pm #44676Zhuge Liang
ParticipantWoah that's MASSIVE coding there, MidKnight. Unimaginable effort.
DoaE will get more attention.
DoaE gave birth to Huo Hu.
July 30, 2012 at 4:47 pm #44677MiDKnighT
ModeratorQuote:Woah that's MASSIVE coding there, MidKnight. Unimaginable effort.3 weeks of obsession. I'm also surprised at how much code there was in the end. I got LOTS of 6502 assembly practice… :o
July 30, 2012 at 5:41 pm #44678Zhuge Liang
ParticipantDon't worry you will be remembered in the history of DoaE hacking.
DoaE gave birth to Huo Hu.
July 30, 2012 at 6:06 pm #44679ZyloWolfBane
ParticipantJust looking at all that made my brain hurt, but it looks like you guys were able to bring about everything you imagined, it sounds pretty damn awesome!
-
AuthorPosts
- You must be logged in to reply to this topic.

