ABCDEF
1
Useful Links
2
MesenDebug emulator - most complex (for experts)
3
FceuxDebug emulator - a good starting point
4
Decimal to Hex ConverterThis will come in handy
5
Hex editing with FCEUX:
6
To hex edit with FCEUX, open the rom in the emulator and select "debug" from the top menu
7
Next, select "Hex Editor" from the dropdown menu
8
Finally, select "ROM file" from the View dropdown menu
9
10
11
12
13
14
15
16
When you find an address you want to change, you'll need to find the corresponding value next
17
Let's say, for example, you want to change the palette of map 1. You'll note that the range of addresses for map palettes is 0x36BE2-0x36CA1
18
The addresses on the left don't have the 6th's digit, however. That digit actually represents the column that you'll look for
19
So for 0x36BE2, that would correspond to the highlighted value below (60). From there, type in the new value you want to replace 60
20
21
22
23
24
25
26
27
28
29
30
31
32
For most of these, it will take some trial and error to determine which values correspond with which aspect of the game you want to change
33
For instance, the map palettes range from 0x36BE2-0x36CA1, but these constitute each map, as well as the various objects in each map (water, dirt, etc.)
34
With a tiny bit of trial and error, it should be easy to edit what you need to edit using the corresponding address ranges
35
36
Set a certain amount of lives (not infinite)
37
0x308E1Default life count address
38
0x3D2D6Life count after game over address
39
Notes:
40
You need to change both of these addressed in order for the lives to be correct
41
For quick reference: 19 in hex = 25 lives. 32 in hex = 50 lives, 5A = 90 lives
42
43
Edit the map palettes
44
0x36BE2-0x36CA1Range of world map palettes
45
0x1842D-0x18435Corresponding map palette
46
Notes:
47
For '0x1842D-0x18435' -> this constitutes which map uses which palette. Change w3's value to w7 if you want to make it use w7's palette values
48
It's very important to note that you NEED to change this to prevent w1 and w3 from using the same palettes
49
Tutorial on hex editing map palettes
50
51
Edit the warp zone
52
0x1630A-0x16312 (0x9)Y-Position Per World
53
0x1631C-0x16324 (0x9)X-Position Per World
54
0x15194-0x151AF (0x1C)World Number Sprites in Warp Zone
55
Notes:
56
Tutorial on editing the warp zone
57
58
Edit the map music
59
0x143CA-143D1Map music (main)
60
0x3C424-3C42CMap music (start of game)
61
Notes:
62
Both addresses should be edited for each map in order to play the correct music
63
Tutorial on editing the map music