I've fixed all the font code so it should now be reading fonts and printing to the window exactly the same as on OS4 (ie. full UTF-8 support). You'll probably find you need to set some different fonts in the Choices file, as the defaults are set to fonts which come with OS4, so something like this should work on a basic OS3 install: (they must be outline fonts)
font_sans:CGTriumvirate
font_serif:CGTimes
font_mono:LetterGothic
font_cursive:CGTimes
font_fantasy:CGTimes
Choices is usually PROGDIR:Users/default/Choices (the "default" may differ if you have the USER env-var set). You may need to create it.
I tried this font config in Choices and the bullet.library crashed fairly early.
Exception !! 00000003 TCB: 08AF5338 CTX: 081C0380 SSP: 082816DC
USP : 0911BED0 SR: 0004 (U0)(-)(-) TCB: 08AF5338
Data: 097AD9E8 00000000 0000000B 00000400 00000100 022B7B1D 022B0D13 00000000
Addr: 0911BEE8 0911BF08 097AC870 08AF5338 097AD9E8 0911BF68 ABADF00D 082816DC
Stck: 0000000B 00000400 08B4F53C 0911BF68 097ADDEC 097D200A 0911BF08 00000000
Stck: 08B58390 080189F4 09005FDE 0000000B 0911BF08 097AD9E8 80000001 00550055
Stck: 80000008 000B0000 8000000E 00000000 8000000F 00000000 8000000A 00000000
----> 097D184E - "LIBS:bullet.library" Hunk 0000 Offset 0000593E
----> 08B4F53C - "netsurf" Hunk 0000 Offset FFFFFFFC
----> 097D200A - "LIBS:bullet.library" Hunk 0000 Offset 000060FA
----> 08B58390 - "netsurf" Hunk 0000 Offset 00008E50
----> 09005FDE - "netsurf" Hunk 0000 Offset 004B6A9E
097d180e : 001c 6718 ori.b #$18,(a4)+
097d1812 : 72ff moveq.l #-$1,d1
097d1814 : b2ac 0020 cmp.l $20(a4),d1
097d1818 : 6710 beq.s $97d182a
097d181a : 4a6c 0024 tst.w $24(a4)
097d181e : 670a beq.s $97d182a
097d1820 : 48c0 ext.l d0
097d1822 : 0c80 0000 ffff cmpi.l #$ffff,d0
097d1828 : 6604 bne.s $97d182e
097d182a : 7006 moveq.l #$6,d0
097d182c : 6058 bra.s $97d1886
097d182e : 7e01 moveq.l #$1,d7
097d1830 : 6014 bra.s $97d1846
097d1832 : 202d 0004 move.l $4(a5),d0
097d1836 : 7e01 moveq.l #$1,d7
097d1838 : 3940 0050 move.w d0,$50(a4)
097d183c : 6008 bra.s $97d1846
097d183e : 7001 moveq.l #$1,d0
097d1840 : 6044 bra.s $97d1886
097d1842 : 7002 moveq.l #$2,d0
097d1844 : 6040 bra.s $97d1886
097d1846 : 41ef 0018 lea.l $18(a7),a0
097d184a : 2c6c 1100 movea.l $1100(a4),a6
097d184e : *4eae ffd0 jsr -$30(a6)
097d1852 : 2a40 movea.l d0,a5
097d1854 : 4a80 tst.l d0
097d1856 : 6600 fc68 bne $97d14c0
097d185a : 4a07 tst.b d7
097d185c : 6726 beq.s $97d1884
097d185e : 4a2c 0015 tst.b $15(a4)
097d1862 : 6704 beq.s $97d1868
097d1864 : 7009 moveq.l #$9,d0
097d1866 : 601e bra.s $97d1886
097d1868 : 4a2c 0016 tst.b $16(a4)
097d186c : 6704 beq.s $97d1872
097d186e : 700a moveq.l #$a,d0
097d1870 : 6014 bra.s $97d1886
097d1872 : 486c 0018 pea.l $18(a4)
097d1876 : 6100 af3e bsr $97cc7b6
097d187a : 584f addq.w #$4,a7
097d187c : 4a40 tst.w d0
097d187e : 6704 beq.s $97d1884
097d1880 : 7003 moveq.l #$3,d0
097d1882 : 0c40 7000 cmpi.w #$7000,d0
097d1886 : 4cdf 608c movem.l (a7)+,d2-d3/d7/a5-a6
097d188a : 4e75 rts
097d188c : 9efc 000c suba.w #$c,a7
Name: "Shell Process" CLI: "netsurf"
I didn't try to bebug this further as I was able to get further without Choices. I can take a look if you want though.
I've just updated it again. This time the menus should work (so OnMenu/OffMenu is back in place) and I've enabled the auto on/off scrollbars. It doesn't appear to be freezing any more, but it crashes far too much for me to tell whether it works!
Somehow, though, I managed to click on a link to NetSurf's homepage, so I'm pretty sure the display of webpages isn't working.
I have the debugger stopped on the first hit while I post from AWeb on the same Amiga. Images in AWeb will load but are immediate flushed despite plenty of memory (edit: my 2MB of gfx mem is <512k with P96 RTG which explains the flushing and slowness) on and the system is slower than it should be so there must already be some kind of problem. It seems stable enough though.
The last NetSurf debug output:
(12.866687) amiga/gui.c ami_openscreen 725: Screen signal 22
(14.550011) amiga/font.c ami_font_open 381: Font cache miss: DejaVu Sans
(14.583344) amiga/os3support.c OpenOutlineFont 64: Unable to open FONTS:DejaVu Sans.otag
(14.600012) amiga/font.c ami_font_open 388: Requested font not found: DejaVu Sans
(14.633347) amiga/misc.c ami_misc_req 54: Unable to open
DejaVu Sans
(14.833350) amiga/gui.c gui_window_create 3713: Creating window object
(15.333339) amiga/gui.c gui_window_create 3978: Opening window
(15.450009) amiga/gui.c gui_window_create 3982: Window opened, adding border gadgets
(15.500009) desktop/browser.c browser_window_navigate 1895: bw 0x9660ba0, url about:welcome
(15.533344) desktop/browser.c browser_window_navigate 1994: Loading 'about:welcome'
(15.566682) amiga/gui.c ami_gui_splash_close 5254: Closing splash window
The MuForce hit:
LONG READ from FBFBFC03 PC: 08C8352A
USP : 09240108 SR: 0010 (U0)(-)(-) TCB: 08B40040
Data: 00000004 00000003 09281228 00000400 00000100 022FA539 022C9399 08C73284
----> 08C73284 - "NetSurf" Hunk 0000 Offset FFFFFFFC
Addr: FBFBFBFB 08B40040 0912DE2C 08B40040 00000000 092401B0 08021A14 08280620
Stck: 00570001 0924018E 09281228 00000400 0912DE2C 08021A14 00030000 08B49A3A
Stck: 00000028 45BE29A9 00000118 00000400 00000100 022FA539 022C9399 08C73284
Stck: 00000001 08C3A9F8 0912DE2C 08B40040 00000000 09240178 08CA17E0 08020000
----> 08C8352A - "NetSurf" Hunk 0000 Offset 000102A2
----> 0912DE2C - "NetSurf" Hunk 0000 Offset 004BABA4
----> 08B49A3A - "C/MuGuardianAngel" Hunk 0000 Offset 00002162
----> 08C73284 - "NetSurf" Hunk 0000 Offset FFFFFFFC
----> 0912DE2C - "NetSurf" Hunk 0000 Offset 004BABA4
----> 08CA17E0 - "NetSurf" Hunk 0000 Offset 0002E558
08c834ea : 181c move.b (a4)+,d4
08c834ec : 206d ffd6 movea.l -$2a(a5),a0
08c834f0 : 7004 moveq.l #$4,d0
08c834f2 : b0a8 000e cmp.l $e(a0),d0
08c834f6 : 6622 bne.s $8c8351a
08c834f8 : 2f2d ffce move.l -$32(a5),-(a7)
08c834fc : 4eb9 08c9 8996 jsr $8c98996
08c83502 : 588f addq.l #$4,a7
08c83504 : 4a40 tst.w d0
08c83506 : 6708 beq.s $8c83510
08c83508 : 6100 24c4 bsr $8c859ce
08c8350c : 6000 1808 bra $8c84d16
08c83510 : 2b6d ffd2 ffd6 move.l -$2e(a5),-$2a(a5)
08c83516 : 6000 17ee bra $8c84d06
08c8351a : 41ed ffde lea.l -$22(a5),a0
08c8351e : 2f08 move.l a0,-(a7)
08c83520 : 2f3c 0057 0001 move.l #$570001,-(a7)
08c83526 : 206d ffce movea.l -$32(a5),a0
08c8352a : *2f28 0008 move.l $8(a0),-(a7)
08c8352e : 4eb9 0912 50d0 jsr $91250d0 ; <- this is DoMethod()
08c83534 : 4fef 000c lea.l $c(a7),a7
08c83538 : 2b40 fffc move.l d0,-$4(a5)
08c8353c : 4aad fffc tst.l -$4(a5)
08c83540 : 6700 17c4 beq $8c84d06
08c83544 : 222d fffc move.l -$4(a5),d1
08c83548 : 0281 ffff 0000 andi.l #-$10000,d1
08c8354e : 2b41 ff70 move.l d1,-$90(a5)
08c83552 : 0cad 0004 0000 ff70 cmpi.l #$40000,-$90(a5)
08c8355a : 6700 16e2 beq $8c84c3e
08c8355e : 0cad 0004 0000 ff70 cmpi.l #$40000,-$90(a5)
08c83566 : 6236 bhi.s $8c8359e
08c83568 : 0cad 0002 0000 ff70 cmpi.l #$20000,-$90(a5)
Name: "Shell Process" CLI: "NetSurf" Hunk 0000 Offset 000102A2
I don't see many symbols beside the call to DoMethod() so the function doing the DoMethod() call is probably a "static" function. The problem is a bad pointer argument being passed to DoMethod(). The base pointer above is A0=FBFBFBFB and on my current run is A0=A7A7A7A7. This is probably an unitialized pointer from MuGuardianAngel munging of memory. I may know after I step a bit but I'll post this in case it crashes.
Edit: I believe this hit is from ami_handle_msg() in /amiga/gui.c. I can see calls to ami_401login_event() and ami_try_quit() probably before the DoMethod() call and a call to ami_gui_get_space_box() right after. What is generating the call to DoMethod() I can't tell from the source. DoMethod() is a GCC or NetSurf function with what looks like 3 stack based arguments and *not* an AmigaOS library call.
Edit2: I believe the next 2 hits from this same build come from ami_mime_entry_locate in /amiga/filetype.c. This would be a bit after the GetHead(ami_mime_list). There is another unitialized pointer in a list or structure.