I played a bit with Destiny of an Emperor (U) [!] {NES}.
I managed to hack it in the following way:
First I'll post the RAM Addresses of the game I used to hack it:
Infinite & Max Soldiers,
$C00F: E8 E8 E8 => 20 8C FE
3C01F E8 E8 E8 => 20 8C FE
Max Stats,
$EEF9: CA CA CA => 20 70 FF
3EF09 CA CA CA => 20 70 FF
Infinite Money and Food,
$EECB 20 FF C2 => 20 50 FE
3EEDB 20 FF C2 => 20 50 FE
All the Best Tactics,
$C07C 20 99 C0 => 20 00 FB
3C08C 20 99 C0 => 20 00 FB
Infinite & Max Tactic Points,
$EEDD 20 FC C0 => 20 37 FB
3EEED 20 FC C0 => 20 37 FB
I want to give my thanks to Pugsy and Ugetab. Without their help this hack would not exist
.
Now to the question:
How can I recognize parts of any NES rom (I understand I must search addresses between $8000 and $FFFF) that are safe to replace with my own code injection?.
Destiny of an Emperor has not lots of FFs or 00s. The only part I found with dozens of them was not usefull because that part of the rom changes a lot in game. So using it crashed the game. So I had to arbitrary replace parts of the rom. I played the game past the middle of it and I can't found any bugs or crashes.
Thanks in advance n_n.
Whipon.
I managed to hack it in the following way:
First I'll post the RAM Addresses of the game I used to hack it:
Code:
; [COLOR="RoyalBlue"]Destiny of an Emperor (U) #1 6076-03-98967F Money #1 6079-03-98967F Food #1 60D0-03-01869F General 1 - Max Soldiers #1 6160-03-01869F General 1 - Current Soldiers #1 619C-01-FF General 1 - Strength #1 61A8-01-FF General 1 - Intelligence #1 60D4-03-01869F General 2 - Max Soldiers #1 6164-03-01869F General 2 - Current Soldiers #1 619D-01-FF General 2 - Strength #1 61A9-01-FF General 2 - Intelligence #1 60D8-03-01869F General 3 - Max Soldiers #1 6168-03-01869F General 3 - Current Soldiers #1 619E-01-FF General 3 - Strength #1 61AA-01-FF General 3 - Intelligence #1 60DC-03-01869F General 4 - Max Soldiers #1 616C-03-01869F General 4 - Current Soldiers #1 619F-01-FF General 4 - Strength #1 61AB-01-FF General 4 - Intelligence #1 60E0-03-01869F General 5 - Max Soldiers #1 6170-03-01869F General 5 - Current Soldiers #1 61A0-01-FF General 5 - Strength #1 61AC-01-FF General 5 - Intelligence #1 60E4-03-01869F General 6 - Max Soldiers #1 6174-03-01869F General 6 - Current Soldiers #1 61A1-01-FF General 6 - Strength #1 61AD-01-FF General 6 - Intelligence #1 60E8-03-01869F General 7 - Max Soldiers #1 6178-03-01869F General 7 - Current Soldiers #1 61A2-01-FF General 7 - Strength #1 61AE-01-FF General 7 - Intelligence #1 61F8-02-FFFF Tactic Points - Max #1 61FB-02-FFFF Tactic Points - Current #1 61FE-02-0000 Tactic Points - Used #1 65A0-01-05 General 1 - Tactic 1 #1 65A1-01-0A General 1 - Tactic 2 #1 65A2-01-0F General 1 - Tactic 3 #1 65A3-01-13 General 1 - Tactic 4 #1 65A4-01-1E General 1 - Tactic 5 #1 65A5-01-1A General 1 - Tactic 6 #1 65A6-01-05 General 2 - Tactic 1 #1 65A7-01-0A General 2 - Tactic 2 #1 65A8-01-0F General 2 - Tactic 3 #1 65A9-01-13 General 2 - Tactic 4 #1 65AA-01-1E General 2 - Tactic 5 #1 65AB-01-1A General 2 - Tactic 6 #1 65AC-01-05 General 3 - Tactic 1 #1 65AD-01-0A General 3 - Tactic 2 #1 65AE-01-0F General 3 - Tactic 3 #1 65AF-01-13 General 3 - Tactic 4 #1 65B0-01-1E General 3 - Tactic 5 #1 65B1-01-1A General 3 - Tactic 6 #1 65B2-01-05 General 4 - Tactic 1 #1 65B3-01-0A General 4 - Tactic 2 #1 65B4-01-0F General 4 - Tactic 3 #1 65B5-01-13 General 4 - Tactic 4 #1 65B6-01-1E General 4 - Tactic 5 #1 65B7-01-1A General 4 - Tactic 6 #1 65B8-01-05 General 5 - Tactic 1 #1 65B9-01-0A General 5 - Tactic 2 #1 65BA-01-0F General 5 - Tactic 3 #1 65BB-01-13 General 5 - Tactic 4 #1 65BC-01-1E General 5 - Tactic 5 #1 65BD-01-1A General 5 - Tactic 6 #1 65BE-01-05 General 6 - Tactic 1 #1 65BF-01-0A General 6 - Tactic 2 #1 65C0-01-0F General 6 - Tactic 3 #1 65C1-01-13 General 6 - Tactic 4 #1 65C2-01-1E General 6 - Tactic 5 #1 65C3-01-1A General 6 - Tactic 6 #1 65C4-01-05 General 7 - Tactic 1 #1 65C5-01-0A General 7 - Tactic 2 #1 65C6-01-0F General 7 - Tactic 3 #1 65C7-01-13 General 7 - Tactic 4 #1 65C8-01-1E General 7 - Tactic 4 #1 65C9-01-1A General 7 - Tactic 6[/COLOR]
Infinite & Max Soldiers,
$C00F: E8 E8 E8 => 20 8C FE
3C01F E8 E8 E8 => 20 8C FE
Code:
$FE8C 3FE9C E8 E8 E8 8A 48 A2 00 A9 9F 9D D0 60 9D 60 61 A9 86 9D D1 60 9D 61 61 A9 01 9D D2 60 9D 62 61 8A C9 18 D0 03 68 AA 60 18 69 04 AA 90 DA 60
Max Stats,
$EEF9: CA CA CA => 20 70 FF
3EF09 CA CA CA => 20 70 FF
Code:
$FF70: 3FF80 CA CA CA 8A 48 A2 00 A9 FF 9D 9C 61 9D A8 61 8A C9 06 D0 03 68 AA 60 18 69 01 AA 90 EA 60
Infinite Money and Food,
$EECB 20 FF C2 => 20 50 FE
3EEDB 20 FF C2 => 20 50 FE
Code:
$FE50: 3FE60 A9 7F 8D 76 60 8D 79 60 A9 96 8D 77 60 8D 7A 60 A9 98 8D 78 60 8D 7B 60 20 FF C2 60
All the Best Tactics,
$C07C 20 99 C0 => 20 00 FB
3C08C 20 99 C0 => 20 00 FB
Code:
$FB00: 3FB10 8A 48 A2 00 A9 05 9D A0 65 A9 0A 9D A1 65 A9 0F 9D A2 65 A9 13 9D A3 65 A9 1E 9D A4 65 A9 1A 9D A5 65 8A C9 24 D0 06 68 AA 20 99 C0 60 18 69 06 AA 90 D1 20 99 C0 60
Infinite & Max Tactic Points,
$EEDD 20 FC C0 => 20 37 FB
3EEED 20 FC C0 => 20 37 FB
Code:
$FB37: 3FB47 A9 9F 8D F8 61 8D FB 61 A9 86 8D F9 61 8D FC 61 A9 01 8D FA 61 8D FD 61 A9 00 8D FE 61 8D FF 61 8D 00 62 20 FC C0 60
I want to give my thanks to Pugsy and Ugetab. Without their help this hack would not exist
.Now to the question:
How can I recognize parts of any NES rom (I understand I must search addresses between $8000 and $FFFF) that are safe to replace with my own code injection?.
Destiny of an Emperor has not lots of FFs or 00s. The only part I found with dozens of them was not usefull because that part of the rom changes a lot in game. So using it crashed the game. So I had to arbitrary replace parts of the rom. I played the game past the middle of it and I can't found any bugs or crashes.
Thanks in advance n_n.
Whipon.
Comment