What mode is the graphics card trying to use when the display goes black?
Some things to try:
- A modern display that isn't limited to 1920x1080 60Hz. I have a Acer XV273K 4K display which can accept anything up to 5K60 or 8K30 via DisplayPort. Not sure about HDMI/DVI though.
- Connect two displays - one display that is known to work so that you can see what timing is being attempted on the display that doesn't work.
- If you can't get two displays, then maybe a screen sharing app, so you can use another Mac to see what's happening when the display goes black on the first Mac.
- A custom EDID adapter like Dr HDMI 8K.
- A scan converter that can take an input and convert it to a different timing that is acceptable by the display.
- A HDMI capture device (USB or PCIe) - maybe it can accept what ever is being output.
- SwitchRes - I don't remember if the OS 9 version has custom timing options? Maybe it can at least disable modes that don't work with your display.
Regarding DVI to HDMI adapters : they are all single link even if they say dual link.
Noname VGA to HDMI USB-Powered Active Converter are terrible. They only work with some modes, produce blurry results, and loose some lines of pixels.
Nvidia 7800 or Nvidia Quadro FX4500 should be able to do 1440p60 or 4K30 using Dual Link DVI to DisplayPort adapter.
In the post by ELN that you linked, he mentions his PEF viewer and assembler python scripts. He said:
"To achieve this, I got sidetracked and wrote a single-file PowerPC assembler script (ppcasm.py) and PEF dump/rebuild script (cfmtool.py):"
https://github.com/elliotnunn/tbxi-patches/I haven't tried them to verify that the disassemble -> assemble steps are deterministic/reversible, such that you can disassemble the assembled product to get an assembly that matches the first assembly (for example, my DumpPCIRom -> toke utilities can recreate the Open Firmware PCI option ROM from the Forth code generated by the original Open Firmware PCI option ROM). If they work, then that might be the simplest way to go. The labels generated by cfmtool could be altered to be order based instead of position based if they are not already.
A python script to rename all the labels in IDA is another option. Hopper can also do PEF but it's buggy.