Users browsing this thread: 1 Guest(s)
All Things Event Hacking
This thread will be used to handle all things pertaining to event hacking & event related stuff, as well as some important hex addresses, questions, answers, sharing information, findings, & helping others whenever possible etc. I will also be updating stuff here all the time. Please feel more than welcome to contribute any useful information you might want to share, or discuss. This is not an in depth tutorial by any means. Much of this info here was gathered from Lenophis, assassin, Dragonsbrethren, Novalia Spirit, Cless, Master ZED, Imzogelmo, Djibriel, as well as other FF6 hackers.
_ _ _
The Basics:
First off if you don't know anything about editing FF6 events, like I did, you'll want to grab a copy of Imzogelmo's Event Dump, so get it here: http://www.angelfire.com/al2/imzogelmo/patches.html
A hex editor: http://www.x-ways.net/winhex.zip
Note: no table files are needed when hacking events.
Make sure when you load the ROM that you go to "option" > "display offset as" > "SNES Hi-ROM"
To get a standard hex address, from a Hi-ROM address that you will see in the event dump (ex:"CC/988B") subtract 0xBFFE00. Assuming you have a header that is. If not than subtract 0xC00000 instead.
If you are not sure what 0xBFFE00 or 0xC00000 is, it is hex, and that will not be covered in this thread. Teaching how to hex edit is rather hard to explain. It's not really all that bad though so... go learn it! =p
Here's some good links that will help you get started.
http://www.ascii.cl/conversion.htm
http://www.romhacking.net/start/#hex
The best way I've found to navigate much faster through the event dump, is use the "search" or "find" on your document reader program, and search for the dialog you know corresponds with the event. For instance if you wanted to find the event where Locke walks into Arvis' house in the beginning, I would search for the words "the term treasure hunting" because I know Locke says those exact words. Then that would bring me right to the event I'm looking for.
_ _ _
Keywords:
Useful information:
Thread with good info on action queues and how they work:
https://www.ff6hacking.com/forums/showth...ght=npc+10
_ _ _
The Basics:
First off if you don't know anything about editing FF6 events, like I did, you'll want to grab a copy of Imzogelmo's Event Dump, so get it here: http://www.angelfire.com/al2/imzogelmo/patches.html
A hex editor: http://www.x-ways.net/winhex.zip
Note: no table files are needed when hacking events.
Make sure when you load the ROM that you go to "option" > "display offset as" > "SNES Hi-ROM"
To get a standard hex address, from a Hi-ROM address that you will see in the event dump (ex:"CC/988B") subtract 0xBFFE00. Assuming you have a header that is. If not than subtract 0xC00000 instead.
If you are not sure what 0xBFFE00 or 0xC00000 is, it is hex, and that will not be covered in this thread. Teaching how to hex edit is rather hard to explain. It's not really all that bad though so... go learn it! =p
Here's some good links that will help you get started.
http://www.ascii.cl/conversion.htm
http://www.romhacking.net/start/#hex
The best way I've found to navigate much faster through the event dump, is use the "search" or "find" on your document reader program, and search for the dialog you know corresponds with the event. For instance if you wanted to find the event where Locke walks into Arvis' house in the beginning, I would search for the words "the term treasure hunting" because I know Locke says those exact words. Then that would bring me right to the event I'm looking for.
_ _ _
Keywords:
- 1. Byte = Small paired groupings of data that is used in hex. Any two digits make up a byte, for instance 00 or F6 or 01. To distinguish bytes from other numbers, a "$" is placed in front of it. ex: $20
Keep in mind that bytes can also mean different things, depending on what command the byte is following.
- 2. Hex Editor = A hex editor (or binary file editor or byte editor) is a type of computer program that allows a user to manipulate the fundamental binary (0 / 1, zero / one) data that makes up computer files.
- 3. Address: A precise position in the ROM data.
- 4. Offset: Another name for an address, used in hex editors, as well as tile editors.
- 5. Flag = A byte or bytes that will check and either enables or disables certain things from happening. If something is "flagged" to work a certain way, it will no matter what.
- 6. NOP = The byte used to cancel, or to skip to the next byte. There are two bytes to do the same action: $EA and $FD. When specifically working with events, you want to use $FD. If you are working on hex editing any other information that is -NOT- an event, you'll want to use $EA.
Useful information:
Thread with good info on action queues and how they work:
https://www.ff6hacking.com/forums/showth...ght=npc+10
- 1. Bank Dis-assemblies:
http://novaliaspirit.99k.org/ff6/docs.html
http://slickproductions.org/docs.php?id=FF6
How to use the maps over #99 (maps that are more than 2 bytes) -
The third byte after the 6B, xx, is the second byte of the map to load (the high byte) but it also has various flags it can use to determine other things. The highest two bits are used to determine the direction you face when the map loads, there's another to indicate the location name, and I'm not sure what the others do. Basically, if you want to use maps 100-19F, set the lowest bit of the third byte. 20->21, A0->A1
Instances when interceptor status is given to Shadow - Remember that the "89" is the command to "inflict the following status ailments on character" Which in this case, is Dog Block on character $03, which is Shadow.
Code:CB/0AE2: 89 / Hex Address (B0CE2)
CB/7956: 89 / Hex Address (B7B56)
CC/7068: 89 / Hex Address (C7268)
Regarding the 2nd Ultros battle and the Dirt Dragon -
Code:CA/C0FF: F0 Play song 34 (Grand Finale #2), (high bit clear), full volume
Getting that music play for the Dirt Dragon battle, instead of the default boss music.
99.9999% of battles use the song determined by their formation data. There are a few exceptions like the 2nd battle with Ultros, but generally you need to change the song in the FF3usME > formation data. Now, since there's only 7 songs to choose from in that selection, you'll have to either:
1. Edit the 7 bytes in the C2 table (which would make what FF3usME reports incorrect).
2. Use a formation event (ie fighting Shadow in the Colosseum). Those events have all 127 songs entries available to it, so that would probably be easier to edit.
Instances where characters are assigned graphics and palettes - Note that all characters are assigned graphics and palettes at least once, and sometime in more than one instance.
Check out Madsiur's document here to see where all the characters are assigned their graphics and palettes throughout the game:
http://www.mediafire.com/?co0rb1i20hk2721
_ _ _
Locations of unique & important events:
_ _ _Code:Show title screen
Hi-ROM: CA/5E33:
The beginning intro scene - (1000 years ago...)
Hi-ROM: CC/988B
Hex: C9A8B
CB/9A6F: 8F Unlock all of Cyan's SwdTechs
CC/0F2B: 90 Grants Sabin the Bum Rush
Sabin & Edgar outside night time event
CA/7322: 50 Tint screen (cumulative) with color $9B
CA/7324: 52 Tint characters (cumulative) with color $9B
CC/BF77: 6B Load map $0000 (World of Balance) instantly, (upper bits $0400), place party at (84, 34), facing up, party is in the airship
CC/BF7D: FD Change graphic to Esper Terra
Index of Event Hex Commands $00 - $FF: (Under Construction)
Code:00 = begin action queue for character $00 (Terra) / Do graphical action 00
01 = begin action queue for character $01 (Locke) / Do graphical action 01
02 = begin action queue for character $02 (Cyan) / Do graphical action 02
03 = begin action queue for character $03 (Shadow) / Do graphical action 03
04 = begin action queue for character $04 (Edgar) / Do graphical action 04
05 = begin action queue for character $05 (Sabin) / Do graphical action 05
06 = begin action queue for character $06 (Celes) / Do graphical action 06
07 = begin action queue for character $07 (Strago) / Do graphical action 07
08 = begin action queue for character $08 (Relm) / Do graphical action 08
09 = begin action queue for character $09 / Do graphical action 09
0A = begin action queue for character $0A / Do graphical action 0A
0B = begin action queue for character $0B / Do graphical action 0B
0C = begin action queue for character $0C (Gogo) / Do graphical action 0C
0D = begin action queue for character $0D (Umaro) / Do graphical action 00
0E = begin action queue for character $0E / Do graphical action 0E
0F = begin action queue for character $0F / Do graphical action 0F
10 = begin action queue for character $10 / Do graphical action 10
11 = begin action queue for character $11 / Do graphical action 11
12 = begin action queue for character $12 / Do graphical action 12
13 = begin action queue for character $13 / Do graphical action 13
14 = begin action queue for character $14 / Do graphical action 14
15 = begin action queue for character $15 / Do graphical action 15
16 = begin action queue for character $16 / Do graphical action 16
17 = begin action queue for character $17 / Do graphical action 17
18 = begin action queue for character $18 / Do graphical action 18
19 = begin action queue for character $19 / Do graphical action 19
1A = begin action queue for character $1A / Do graphical action 1A
1B = begin action queue for character $1B / Do graphical action 1B
1C = begin action queue for character $1C / Do graphical action 1C
1D = begin action queue for character $1D / Do graphical action 1D
1E = begin action queue for character $1E / Do graphical action 1E
1F = begin action queue for character $1F / Do graphical action 1F
20 = begin action queue for character $20 / Do graphical action 20
21 = begin action queue for character $21 / Do graphical action 21
22 = begin action queue for character $22 / Do graphical action 22
23 = begin action queue for character $23 / Do graphical action 23
24 = begin action queue for character $24 / Do graphical action 24
25 = begin action queue for character $25 / Do graphical action 25
26 = begin action queue for character $26 / Do graphical action 26
27 = begin action queue for character $27 / Do graphical action 27
28 = begin action queue for character $28 / Do graphical action 28
29 = begin action queue for character $29 / Do graphical action 29
30 = begin action queue for character $30 (Camera)
31 = begin action queue for character $31 (Party Character 1)
32 = begin action queue for character $32 (Party Character 2)
33 = begin action queue for character $33 (Party Character 3)
34 = begin action queue for character $34 (Party Character 4)
35 = Pauses execution until camera queue is complete
36 = Disable ability to pass through objects for character XX
37 = Assign Graphics XX to Character YY
38 = hold screen
39 = free screen
3C = Makes Characters WW, XX, YY and ZZ be available in an event; also makes camera focus on character XX.
3D = create object
3E = delete object
3F = assign character $XX (Actor in stot 1) to party YY / Remove character $XX from party YY
41 = show object / Delete Character
42 = hide object
43 = assign palette $XX, to character
45 = refresh objects
46 = Make party XX the current one for the player to command
47 = make character in slot 0 the lead character
48 = display dialogue message, does not wait for button press to continue
4B = display dialogue message, and wait for button press to continue
4D = invoke battle, enemy set XX, background YY
50 = tint screen (cumulative) with color XX
52 = tint characters (cumulative) with color XX
53 = modify object color range from XX (color), XX (intensity)
55 = flash screen with color component(s) (corresponding colors: 2 = red, 5 = green, 6 = yellow, 8 = blue, 12 or C = cyan, 10 or A = magenta, E-F = white)
Note: Sometimes a byte can have 2 parts to it, for instance $55. The 1st part would be the color, and the second part of the byte would be the intensity. EX: $55, $20 = flash screen with red at low intensity. So keep that in mind for other similar bytes.
58 = shake screen
59 = unfade screen at speed XX
5A = fade screen at speed XX
5C = pause execution until fade in or fade out is complete
60 = change background layer $XX to palette $XX (Used for palettes greater than 6)
61 = colorize color range [$XX, $XX] to color [$XX] $03 = Flashback color
62 = mosaic screen
6A = Load map XX
6B = Load map XX
74 = replace current map's Layer 2 at
75 = refresh map after alteration
77 = perform level averaging on character $XX, and calculate new maximum HP/MP
78 = enable ability to pass through other objects for object
80 = move vehicle/entity up 1 tile
81 = move vehicle/entity right 1 tile
82 = move vehicle/entity down 1 tile
83 = move vehicle/entity left 1 tile
84 = move vehicle/entity up 2 tiles
85 = move vehicle/entity right 2 tiles
86 = move vehicle/entity down 2 tiles / give esper $XX to party
87 = move vehicle/entity left 2 tiles
88 = move vehicle/entity up 3 tiles / remove the following status ailments from character $XX (Actor in stot XX): Float, Dog Block, Hide, Chant (Casting Spell), Morph (Esper-form), Instant Death Protection, Frozen, Rage, Death (Wound), Petrify (Stone), Imp, Vanish (Clear), M-Tek, Poison, Zombie, Dark
89 = move vehicle/entity right 3 tiles /inflict the following status ailments on character
8F = unlocks all of Cyans Sword Techs
90 = move vehicle/entity up 5 tiles
91 = pause for 15 units
92 = pause for 30 units
93 = pause for 45 units / move vehicle/entity left 5 tiles
94 = pause for 60 units
95 = pause for 120 units
96 = move vehicle/entity down 6 tiles or... restore screen from fade
97 = fade screen to black or... move vehicle/entity left 6 tiles
98 = move vehicle/entity up 7 tiles
99 = invoke party selection screen
9A = move vehicle/entity down 7 tiles
9B = move vehicle/entity left 7 tiles
9C = move vehicle/entity up 8 tiles
A0 = move vehicle/entity right/up 1x1 tiles
A1 = reset timer 0
A2 = move vehicle/entity left/down 1x1 tiles
A9 = show title screen
AA = show intro with Magitek Armor walking through snowfields
AB = invoke game loading screen
B1 = end block of repeating commands
B2 = call subroutine
B4 = pause for 8 units
B5 = pause for XX units
C0 = If bit XX is set(clear), branch to $YYYY / set vehicle/entity's event speed to super slow
C1 = If bit XX is set(clear) OR bit YY is set(clear), branch to $ZZZZ / set vehicle's facing direction to slow
C2 = set vehicle/entity's event speed to normal
C3 = set vehicle/entity's event speed to fast
C4 = set vehicle/entity's event speed to super fast
C5 =
C6 = set vehicle/entity to move normally when moving
C7 = place airship at position $XX, $XX (overworld map coordinates) or... set vehicle/entity to stay still when moving
C8 = set object layering priority to X (low nibble X)
C9 =
CA =
CB =
CC = turn vehicle/entity up
CD = turn vehicle/entity right
CE = turn vehicle/entity down
CF = turn vehicle/entity left
D1 = hide vehicle
D4 = set event bit
D5 = set vehicle/entity's position to XX YY
DA = set event bit
DC = make vehicle/entity jump (low)
DD = clear event bit / hide mini-map
E0 = pause for XX* 4 frames
EA =
F0 = play song
F1 = fade in song
FA = stop temporarily played song
F4 = play sound effect XX
F6 = Makes sound effect XX stop
FC = go backwards XX bytes
FE = return (ends event)
FF = end queue
Vehicle/entity graphical actions:
Code:00 = Forward, Walking 1
01 = Forward, Standing
02 = Forward, Walking 2
03 = Backward, Walking 1
04 = Backward, Standing
05 = Backward, Walking 2
06 = Side, Walking 1
07 = Side, Standing
08 = Side, Walking 2
09 = Kneeling / Weak; 49 is flipped
0A = Attack pose (facing left); 4A is flipped
0B = Attacked pose (looking left); 4B is flipped
0C = Idle in Battle Pose
0D = Walking in Battle Pose
0E = Arms Raised, Walking
0F = Arms Raised, Jumping; 4F is flipped
10 = Spell Cast (looking left), first frame; 50 is flipped
11 = Spell Cast (looking left), second frame; 51 is flipped
12 = Dead pose (looking left); 52 is the same but looking right
13 = Front, eyes closed (blinking)
14 = Wink
15 = Eyes closed, looking to the left; 55 looking to the right
16 = Front, arms raised in air
17 = Back, arms raised in air
18 = mad/embarrassed
19 = Front, right arm raise
1A = Front, right arm waive
1B = Back, right arm raise
1C = Back, right arm waive
1D = laughing part 1
1E = laughing part 2
1F = shocked
20 = Front, head down
21 = Back, head down
22 = Head down sad left; 62 = reversed
23 = Front, head turned (left); 63 = Look to the right
24 = Moving the finger, first frame; 64= flipped
25 = Moving the finger, second frame; 65 is flipped
26 = unused pose with the Jap. text (Except for terra); 66 is flipped
27 = tent); 67 is flipped
28 = knocked down pose #2 (For special characters)
2C = used for NPCs special pose in some cases.
2D = used for KO'ed NPC
D1 = Make entity disappear
DC = jump low
DD = jump high
Play Song "$F0 command" List:
Code:00 = silence
01 = prelude
02 = title screen
03 = intro
04 = intro #2 (Magitek walking to Narshe)
05 = Terra
06 = WoB Overwold
07 = Shadow
08 = Thamasa
09 = Gau
0A = Figaro Castle
0B = Coin of Fate
0C = Doma Castle
0D = Locke
0E = Forever Rachel
0F = Relm
10 = Setzer
11 = Daryl
12 = Sad Celes
13 = Chocobo
14 = Decisive Battle
15 = Bar Theme
16 = Kefka
17 = Mines of Narshe
18 = Phantom Forest
19 = Veldt
1A = Sad Theme!
1B = The Empire Gestahl
1C = The Empire Marches
1D = Under Imperial Occupation
1E = Waterfall
1F = Metamorphosis
20 = Train Running
21 = Another World of Beasts
22 = Ultros #2 @ Opera House
23 = Mt. Koltz
24 = Battle Theme
25 = Unused Fanfare
26 = Wedding Waltz 2
27 = Aria di Mezzo Caratte
28 = Serpent Trench
29 = Zozo
2A = Town Music
2B = What!
2C = Opera Audience Mumbling (I think)
2D = Gogo's lair
2E = Returner's Hideout
2F = Used Fanfare
30 = Umaro's Cave
31 = Moogles
32 = The Unforgiven
33 = Atma
34 = WoR Town
35 = Falcon
36 = Rise of the Floating Continent
37 = WoR Jidoor
38 = Sleep @ Inn
39 = Wind
3A = Tide
3B = Dancing Mad Tier 1
3C = Phantom Train Stopping
3D = Opera House
3E = Rest in Peace
3F = Chocobos running
40 = Train Noises
41 = Wedding Waltz 1
42 = Ohhhhh Mariaaaaa
43 = Wedding Waltz 3
44 = Wedding Waltz interlude
45 = Singing interlude Between Draco & Maria
46 = 5 minutes until ultros drops weight
47 = Magitek Factory
48 = House on fire
49 = Cranes Activated
4A = Thamasa when House is Burning
4B = Floating Continent
4C = Searching for Friends
4D = Fanatic's Tower
4E = Kefka's Tower
4F = Dark World
50 = Dancing Mad Tier 4
51 = More Silence
52 = Rising to Kefka
53 = Ending Montage of Characters
54 = Final Ending segment
A5 = Unused Fanfare?
Sound Effects ($F4) (FULL LIST ON PAGE 4!):
Code:00 - Lore casting sound
01 - Casting black magic spell
02 - Casting white magic spell
03 - Esper summoning
04 - Footsteps - Escaping
05 - Ultima
06 - Earth Breaking
07 - Haste
08 - Phoenix scream
09 - Scan's "target" sound
0A - Rasp's first sound effect
0B - Rasp's second sound effect
0C -
0D -
0E -
0F -
10 - Bum Rush
15 - Thundaga
22 - Bio
2E - Sword Stab
35 - Dispel
37 - Ice crystalization (Second sound effect of Blizzara spell)
39 - Confuse
44 - Runic
50 - Shock
69 - Plasma (Mog's attack used in Water Rondo Dance)
6A - Jump sound
6D - Magicite Sound (when kefka transforms espers into magicite)
81 - Bismarck
89 - Burning House falling apart
B5 - Landing on the floor (after someone jumps)
B6 - Will of the wisp sound
BA - Falling Down
C7 - Fell hard on the floor
CD - Kefka's Laugh
CE - Splash
DF - Elevator sound
E8 - Huge Footstep (Phunbaba's)
More on page 4 of this thread!
Character ID's:
Code:Terra = 00
Locke = 01
Cyan = 02
Shadow = 03
Edgar = 04
Sabin = 05
Celes = 06
Strago = 07
Relm = 08
Setzer = 09
Mog = 0A
Gau = 0B
Gogo = 0C
Umaro = 0D
Soldier = 0E
Imp = 0F
Leo = 10
Banon = 11
Esper Terra = 12
Merchant = 13
Ghost = 14
Kefka = 15
Gestahl = 16
Important Hex Info:
Desperation attacks -
Code:C2/15C8: C0 08 CPY #$08
C2/15CA: B0 44 BCS $1610 (No DA if monster)
C2/15CC: AD 3F 3A LDA $3A3F
C2/15CF: C9 03 CMP #$03
C2/15D1: 90 3D BCC $1610 (No DA if turn 2 or less)
C2/15D3: B9 E5 3E LDA $3EE5,Y
C2/15D6: 89 02 BIT #$02
C2/15D8: F0 36 BEQ $1610 (No DA If not Near Fatal)
C2/15DA: 89 24 BIT #$24
C2/15DC: D0 32 BNE $1610 (No DA If Muddled or Image)
C2/15DE: B9 E4 3E LDA $3EE4,Y
C2/15E1: 89 12 BIT #$12
C2/15E3: D0 2B BNE $1610 (No DA If Clear or Zombie)
If you want to make it so that desperation attacks could happen anytime regardless of near fatal status, you would want to change the bytes "$F0 $36" (No DA If not Near Fatal) to "$EA, $EA" which is the NOP byte or "Non Operation Code" for FF6. That means that instead of the game reading the default code, it will instead bypass to the next command, thus allowing DA's to happen without near fatal status.
If you want to edit the 1 in 16 chance for a DA found @ C2/15EE: D0 20 BNE $1610
You would need to change four bytes. The two before that instruction, AND $0F needs to be changed to CMP $40 (29 0F -> C9 40) and the BNE should be changed to BCS (D0 -> B0). You can experiment with the CMP argument to tweak the frequency if 25% is too high.
Overworld Music Pointers: (Note these addresses are not in Hi-ROM)
Code:2E858A: World of Balance in-flight airship music
2E858C: World of Ruin in-flight airship music
2E858D: Chocobo music in the WoB.
2E858E: Chocobo music (on the Veldt?) (unable to be tested)
2E858F: Chocobo music (when the default world theme is "Dark World")
2E8590: Chocobo music in the WoR.
2E8591: World of Balance overworld music
2E8592: Veldt music
2E8593: World of Ruin, first 'dark' world music
2E8594: World of Ruin main overworld music
Say you want to have the first WoR music back when you exit the Airship. What you want to do is go to the address: 2E8594 and change the byte to $F4.
Editing Mog's Dance -
Code:C2/177D: B9 F8 3E LDA $3EF8,Y
C2/1780: 09 01 ORA #$01
C2/1782: 99 F8 3E STA $3EF8,Y (Set Dance status)
C2/1785: A9 FF LDA #$FF
C2/1787: 85 B7 STA $B7
C2/1789: B9 E1 32 LDA $32E1,Y (Which dance is selected)
C2/178C: 10 06 BPL $1794
C2/178E: AD 6F 3A LDA $3A6F
C2/1791: 99 E1 32 STA $32E1,Y
C2/1794: AE E2 11 LDX $11E2
C2/1797: DF 5B 8E ED CMP $ED8E5B,X (Check if background is same as dance)
C2/179B: F0 A4 BEQ $1741 (Branch if it is)
C2/179D: 20 53 4B JSR $4B53
C2/17A0: 90 0D BCC $17AF (50% chance of branch)
C2/17A2: AA TAX
C2/17A3: BF AB F9 D1 LDA $D1F9AB,X
C2/17A7: 85 B7 STA $B7
C2/17A9: 8D E2 11 STA $11E2 (Change background to dance background)
C2/17AC: 4C 41 17 JMP $1741
The two bytes to pay attention to if you want to make it so Mog never stumbles again are at C2/17A0
Yes, the "$90, $0D" You will want to NOP these 2 bytes.
the sequence uses the 0 or 1 RNG, so if you want to just change the odds, you'll have to call a different RNG and check for specific numbers, and that means adding more code.
Battle Time Counter function -
(Recalculate the amount by which to increase the ATB gauge. This will also affect the speed of the "wait timer" [which determines how long a character is in their ready stance], the Condemned counter, invisible timers for auto-expiring statuses, and the frequency of damage/healing from statuses like Regen and Poison.)
ATB Gauge colors -
Code:C1/6886: A929 LDA #$29 (Set yellow palette for ATB fully charged)
C1/6888: 8002 BRA $688C
C1/688A: A935 LDA #$35 (Set white palette for ATB charging)
Changing the inherent +20 to speed in battle - This will also affect the speed of the "wait timer" [which determines how long a
character is in their ready stance], the Condemned counter, invisible timers for auto-expiring statuses, and the frequency of damage/healing from statuses like Regen and Poison.
Code:C2/09EE: 83 01 STA $01,S (A = ATB multiplier * 1.5)
C2/09F0: BD 19 3B LDA $3B19,X (Speed)
C2/09F3: 69 14 ADC #$14
C2/09F5: EB XBA (Speed + 20 in top byte of Accumulator)
C2/09F6: E0 08 CPX #$08
Simple fix: Change the ADC #$14 found at C2/09F3 to NOP NOP. This will prevent the +20 from occuring.
Changing the # of battles to unlock the Paladin Shield -
Code:C2/5FFA: C9 66 CMP #$66 Compare accumulator to 66h (Cursed Shld value).
C2/5FFC: D0 0E BNE $600C Branch past the rest if it's not the shield.
C2/5FFE: EE C0 3E INC $3EC0 Increment battle count (loaded from 7E:1DD5).
C2/6001: D0 09 BNE $600C Branch past the rest if the battle count has not returned to 0.
C2/6003: A9 01 LDA #$01
C2/6005: 04 F0 TSB $F0 Tells the game to display "Dispelled..." text.
C2/6007: A9 67 LDA #$67
C2/6009: 9D 1F 16 STA $161F,X Stores the Paladin Shld in equipment spot.
To change the amount of battles it will take, you will have to manually set $1DD5 to a different starting value (it originally starts at 0).
_ _ _
We are born, live, die and then do the same thing over again.
« Next Oldest | Next Newest »
Users browsing this thread: 1 Guest(s)