I've been playing around with getting
ML working on the 5D3.134 firmware and have gotten quite far but am stumped trying to find the addresses for the fonts.
According to the 5D3.123 code:
// http://magiclantern.wikia.com/wiki/Fonts
#define BFNT_CHAR_CODES 0xF7363A50
#define BFNT_BITMAP_OFFSET 0xF7366BC4
#define BFNT_BITMAP_DATA 0xF7369D38
Ok, been there before on the 700D firmware update and treated these just like finding stubs but these addresses aren't in the ROM1.BIN disassembly. I looked up the wiki reference and it pointed to the find_fnt.py script which is in the contrib/indy directory and it needs to be run on ROM0.BIN. Ok, so far so good. This is what I got this for the 5D3.123:
Find bitmap fonts in Canon DSLR firmwares
Arm.Indy. based on work by Pel, Trammel Hudson and A1ex
0xff373a2c: FNT
0xff373a30: (+0x04) 0xffd8
0xff373a32: (+0x06) font_width = 40
0xff373a34: (+0x08) charmap_offset = 0x24
0xff373a38: (+0x0c) charmap_size = 0x3174
0xff373a3c: (+0x10) bitmap_size = 0x89f16
0xff373a40: (+0x14) font name = 'HCanonGothic///'
0xff373a50: (+0x24) char_codes[]. 3165 chars
0xff376bc4: (+0x3198) offsets[]. Last offset value = 0x89ee0
0xff379d38: (+0x630c) bitmaps[]
0xff403c18: (+0x901ec) last bitmap
+0x00: bitmap width = 28
+0x02: bitmap height = 28
+0x04: char width = 36
+0x06: X offset = 4
+0x08: Y offset = 16
bitmap size = 0x70
0xff403c50: FNT
0xff403c54: (+0x04) 0xffd8
0xff403c56: (+0x06) font_width = 40
0xff403c58: (+0x08) charmap_offset = 0x24
0xff403c5c: (+0x0c) charmap_size = 0x188
0xff403c60: (+0x10) bitmap_size = 0x31c4
0xff403c64: (+0x14) font name = 'CanonMonospace'
0xff403c74: (+0x24) char_codes[]. 98 chars
0xff403dfc: (+0x1ac) offsets[]. Last offset value = 0x3142
0xff403f84: (+0x334) bitmaps[]
0xff4070c6: (+0x3476) last bitmap
+0x00: bitmap width = 22
+0x02: bitmap height = 22
+0x04: char width = 22
+0x06: X offset = 0
+0x08: Y offset = 0
bitmap size = 0x42
0xffb73a2c: FNT
0xffb73a30: (+0x04) 0xffd8
0xffb73a32: (+0x06) font_width = 40
0xffb73a34: (+0x08) charmap_offset = 0x24
0xffb73a38: (+0x0c) charmap_size = 0x3174
0xffb73a3c: (+0x10) bitmap_size = 0x89f16
0xffb73a40: (+0x14) font name = 'HCanonGothic///'
0xffb73a50: (+0x24) char_codes[]. 3165 chars
0xffb76bc4: (+0x3198) offsets[]. Last offset value = 0x89ee0
0xffb79d38: (+0x630c) bitmaps[]
0xffc03c18: (+0x901ec) last bitmap
+0x00: bitmap width = 28
+0x02: bitmap height = 28
+0x04: char width = 36
+0x06: X offset = 4
+0x08: Y offset = 16
bitmap size = 0x70
0xffc03c50: FNT
0xffc03c54: (+0x04) 0xffd8
0xffc03c56: (+0x06) font_width = 40
0xffc03c58: (+0x08) charmap_offset = 0x24
0xffc03c5c: (+0x0c) charmap_size = 0x188
0xffc03c60: (+0x10) bitmap_size = 0x31c4
0xffc03c64: (+0x14) font name = 'CanonMonospace'
0xffc03c74: (+0x24) char_codes[]. 98 chars
0xffc03dfc: (+0x1ac) offsets[]. Last offset value = 0x3142
0xffc03f84: (+0x334) bitmaps[]
0xffc070c6: (+0x3476) last bitmap
+0x00: bitmap width = 22
+0x02: bitmap height = 22
+0x04: char width = 22
+0x06: X offset = 0
+0x08: Y offset = 0
bitmap size = 0x42
So now I'm more lost than ever. Where are the character codes, bitmap offset and bitmap data and how did someone come up with values of around 0xF736xxxx?
By the way, here's what find_fnt.py is reporting on the 5D3.134 ROM0.BIN file:
Find bitmap fonts in Canon DSLR firmwares
Arm.Indy. based on work by Pel, Trammel Hudson and A1ex
0xff373a2c: FNT
0xff373a30: (+0x04) 0xffd8
0xff373a32: (+0x06) font_width = 40
0xff373a34: (+0x08) charmap_offset = 0x24
0xff373a38: (+0x0c) charmap_size = 0x3180
0xff373a3c: (+0x10) bitmap_size = 0x8a18c
0xff373a40: (+0x14) font name = 'HCanonGothic///'
0xff373a50: (+0x24) char_codes[]. 3168 chars
0xff376bd0: (+0x31a4) offsets[]. Last offset value = 0x8a156
0xff379d50: (+0x6324) bitmaps[]
0xff403ea6: (+0x9047a) last bitmap
+0x00: bitmap width = 28
+0x02: bitmap height = 28
+0x04: char width = 36
+0x06: X offset = 4
+0x08: Y offset = 16
bitmap size = 0x70
0xff403edc: FNT
0xff403ee0: (+0x04) 0xffd8
0xff403ee2: (+0x06) font_width = 40
0xff403ee4: (+0x08) charmap_offset = 0x24
0xff403ee8: (+0x0c) charmap_size = 0x188
0xff403eec: (+0x10) bitmap_size = 0x31c4
0xff403ef0: (+0x14) font name = 'CanonMonospace'
0xff403f00: (+0x24) char_codes[]. 98 chars
0xff404088: (+0x1ac) offsets[]. Last offset value = 0x3142
0xff404210: (+0x334) bitmaps[]
0xff407352: (+0x3476) last bitmap
+0x00: bitmap width = 22
+0x02: bitmap height = 22
+0x04: char width = 22
+0x06: X offset = 0
+0x08: Y offset = 0
bitmap size = 0x42
0xffb73a2c: FNT
0xffb73a30: (+0x04) 0xffd8
0xffb73a32: (+0x06) font_width = 40
0xffb73a34: (+0x08) charmap_offset = 0x24
0xffb73a38: (+0x0c) charmap_size = 0x3180
0xffb73a3c: (+0x10) bitmap_size = 0x8a18c
0xffb73a40: (+0x14) font name = 'HCanonGothic///'
0xffb73a50: (+0x24) char_codes[]. 3168 chars
0xffb76bd0: (+0x31a4) offsets[]. Last offset value = 0x8a156
0xffb79d50: (+0x6324) bitmaps[]
0xffc03ea6: (+0x9047a) last bitmap
+0x00: bitmap width = 28
+0x02: bitmap height = 28
+0x04: char width = 36
+0x06: X offset = 4
+0x08: Y offset = 16
bitmap size = 0x70
0xffc03edc: FNT
0xffc03ee0: (+0x04) 0xffd8
0xffc03ee2: (+0x06) font_width = 40
0xffc03ee4: (+0x08) charmap_offset = 0x24
0xffc03ee8: (+0x0c) charmap_size = 0x188
0xffc03eec: (+0x10) bitmap_size = 0x31c4
0xffc03ef0: (+0x14) font name = 'CanonMonospace'
0xffc03f00: (+0x24) char_codes[]. 98 chars
0xffc04088: (+0x1ac) offsets[]. Last offset value = 0x3142
0xffc04210: (+0x334) bitmaps[]
0xffc07352: (+0x3476) last bitmap
+0x00: bitmap width = 22
+0x02: bitmap height = 22
+0x04: char width = 22
+0x06: X offset = 0
+0x08: Y offset = 0
bitmap size = 0x42
So close yet so lost!