Mac OS 9 Lives

Classic Mac OS Hardware => Video Cards, Monitors & Displays => Topic started by: whoisthisguy on May 20, 2019, 07:31:25 AM

Title: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on May 20, 2019, 07:31:25 AM
Introduction

As we all know Mac Mini G4 has a Single-Link DVI port which can drive displays up to 1920x1200 resolution digitally and maximum 2048x1536 via VGA adapter.
But there is a huge problem: on pre-Tiger OSes you will get no more than 1280x1024 resolution on non-Apple Displays such as AOC, Dell, LG, Sony etc. More info to read in this thread: http://macos9lives.com/smforum/index.php/topic,4337.0.html (http://macos9lives.com/smforum/index.php/topic,4337.0.html) 

I want to share my personal experience. Maybe together we will find the solution.

Hardware I'm using in this experiment

Monitor: Dell S2719DGF 27 inch 2560x1440 155hz. Ports: 1 x DisplayPort, 1 x HDMI 1.4, 1 x HDMI 2.0
PowerMac #1: Apple Mac Mini G4 1.5GHz, ATI Radeon 9200 64MB
PowerMac #2: Apple Power Mac G5 Late 2005, Quadro FX4500
Adapter #1: StarTech DVI-D (Single Link) to DisplayPort USB-Powered Active Converter
Adapter #2: Atlona AT-DP400 Dual Link DVI to Mini DisplayPort USB-Powered Active Converter
Adapter #3: Noname VGA to HDMI USB-Powered Active Converter

Experiment #1: The Power Mac G5 + Adapters Experience
Nvidia Quadro FX4500 has two Dual-Link DVIs capable of powering two 2560x1600 Apple Cinema 30-inch displays.

- Booting G5 into Tiger: only 1280x1024 max

- Booting G5 into Tiger with Adapter #1: 1280x1024 max

- Booting G5 into Tiger with Adapter #2: 2560x1440 native

- Booting G5 into Tiger with Adapter #3: 2048x1536 max. * Blurry picture. Screen area distorted, has wrong position and proportions. The monitor itself hasn't controls to stretch and move screen area as CRT monitors.

- Booting G5 into Leopard: same results.

-------------------------------------------

- Booting Mini into Tiger: 1920x1080 max * No option to select 1920x1200. Have Overscan option in Displays like if I'm using a TV as my second monitor.

- Booting Mini into Tiger with Adapter #1: 1920x1080 max, overscan

- Booting Mini into Tiger with Adapter #2: 1920x1080 max, overscan

- Booting Mini into Tiger with Adapter #3: 2048x1536, blurry picture, screen area issues.

-------------------------------------------

- Booting Mini into Leopard with and without adapters: same results


Experiment #2: Mac Mini G4 - Running Jaguar + Panther + Adapters Experience
* For this experiment you will need a clean separate ~ 10GB partition.

Step 1: Boot into Tiger.

Step 2: Somehow obtain Mac OS X Panther or Jaguar Install CDs.

Step 3: Download 10.3.9 / 10.2.8 Combo Updates

Step 4: Mount Install CD 1.

Step 5: Go to /Volumes/[Mounted Install CD]/System/Installation/Packages

Step 6: Launch OSInstall.mpkg. Unselect all additional install options and Run the setup as usual. You have to install OS onto your separate clean Partition. * Wait for setup to complete. If it's not: just force quit.

Step 7: Install Combo update onto partition you have just installed the OS.

Step 8: Run Terminal: diskutil repairpermissions /Volumes/[Volume you installed Panther or Jaguar] * Wait the process to complete

Step 9: Reboot with Option (ALT) key pressed. Select Panther or Jaguar Partition. Hit Enter.
-------------------------------------------

- Booting Mini into Panther: 1280x1024 max

- Booting Mini into Panther with Adapter #1 and #2: 1280x1024 max

- Booting Mini into Panther with Adapter #3: 2048x1536, blurry picture, screen area issues, glitches, freezes.

-------------------------------------------

- Booting Mini into Jaguar with and without adapters: almost the same results.

-------------------------------------------

- Booting Mini into Jaguar or Panther without /System/Library/Extensions/AppleNDRV: 1920x1080, bad colours, glitches.


Experiment #3: Mac Mini G4 - Running Jaguar + Panther with 10.4.11 NDRV + Adapters Experience

Step 1: Copy the contents of Tiger's /System/Library/Extensions/AppleNDRV/ into the same folder of your Panther or Jaguar Partition.

Step 2: Delete Extensions.mkext and Extensions.kextcache from your Panther's or Jaguar's /System/Library folder (you could not have both files there).

Step 3: Run terminal "diskutil repairpermissions /" from Panther or Jaguar or "diskutil repairpermissions /Volumes/[Panther or Jaguar Partition]" from Tiger. * Wait for completion.

Step 4: Cross your fingers and Reboot.

-------------------------------------------

- Booting Mini into Panther with Tiger's NDRV: 1920x1080, no overscan options etc. No glitches.

- Booting Mini into Panther with Tiger's NDRV and Adapters #1+#2: same results.

- Booting Mini into Panther with Tiger's NDRV and Adapter #3: 2048x1536, blurry picture, screen area issues but no glitches or freezes.

-------------------------------------------

- Booting Mini into Jaguar with Tiger's NDRV and with and without adapters: almost the same results.

As you can see there is a Huge improvement with Tiger's NDRV here.

Experiment #4: Mac Mini G4 - Running OS9 + Adapters Experience

* For this experiment you will need OS9 Mac Mini V8 Distro from this thread: http://macos9lives.com/smforum/index.php/topic,4365.msg30502.html#msg30502 (http://macos9lives.com/smforum/index.php/topic,4365.msg30502.html#msg30502) installed on separate partition.

- Booting Mini into OS9 with ATI Extensions: 1280x1024 max, Millions of Colours, 2d / 3d acceleration enabled

- Booting Mini into OS9 with ATI Extensions + Adapter #1 & #2: same results.

- Booting Mini into OS9 with ATI Extensions + Adapter #3: 2048x1536, Millions of Colours, 2d / 3d acceleration enabled, blurry picture, screen area issues.

- Booting Mini into OS9 without ATI Extensions: 1920x1080, 256 Colours, 2d / 3d acceleration disabled.

- Booting Mini into OS9 without ATI Extensions + Adapters: same results.

As you can see we have 1920x1080 support here but no acceleration and only 256 colours. It's almost the seme behaviour we saw earlier on Panther and Jaguar.
It would be wonderful to make things from experiment #3 possible here. And I want to say: it's nearly possible. Thanks to darthnVader for his brilliant guide from this thread: http://macos9lives.com/smforum/index.php/topic,4319.0.html (http://macos9lives.com/smforum/index.php/topic,4319.0.html)

Experiment #5: Mac Mini G4 - Running OS9 with 10.4.11 NDRV

* First of all you will need something:

Super ResEdit which can be found here: https://www.macintoshrepository.org/1867-super-resedit-2-4-2-1-3- (https://www.macintoshrepository.org/1867-super-resedit-2-4-2-1-3-).

a Hex Editor of your Choice (I found ResEdit's Hex Editor strange). I'm using HexEdit 1.8.5 which can be found here https://www.macintoshrepository.org/7323-hexedit (https://www.macintoshrepository.org/7323-hexedit).

Tiger's NDRV which can be obtained from here: /System/Library/Extensions/AppleNDRV/ATIDriver.bundle/Contents/MacOS/ATIDriver

ATI Extensions from Mac Mini V8 Distro. I recommend to backup this extensions. We will work with ATI Via Driver Extension here.

------------------------------------------

Step 1: Open ATIDriver with Hex editor of your choice.

Step 2: Search ASCII Next for "RockHopper".

Step 3: Search ASCII Previous for "joy".

Step 4: Delete all ASCII code before "Joy!peffpwpc".

Step 5: Search ASCII Next for the next "joy".

Step 6: Delete all ASCII code from the founded "Joy!peffpwpc" to the end of the file.

Step 7: Save the results as a New File.

Step 8: Open newly created file with Super Resedit.

Step 9: Hit YES if it asked you to create Resources.

Step 10: Go into DF section. CMD+C on "Data Fork". Remember the number in "size" column.

Step 11. Open ATI Via Driver with Super Resedit.

Step 12. Go to DF section. CMD+V on "Data Fork". Click "Yes" when being asked for ID replacement.

Step 13. Go back and open "cfrg" section. Then, open the resource itself. Scroll down to the "Length" input field and replace numbers there with the numbers you remembered on Step 10.

Step 14. Save file.

Step 15. Put ATI Via Driver inside the Extensions folder.

Step 16. Reboot the machine.

------------------------------------------

— Booting Mini into OS9 with Patched NDRV: 1920x1080. No "out of range" anymore, but System will freeze right after the ATI Extensions have loaded.
— Booting Mini into OS9 with Patched NDRV without ATI Graphics Accelerator Extension: 1920x1080, Millions of Colours, 2d / 3d acceleration not working.
 
------------------------------------------

Issues

— Issue 1: Having issues with empty Grey Screen and a cursor on it after resolution / colour changes. To fix that just shortly press the power button to initiate the fake sleep (Thanks to Sleeper Extension).

— Issue 2: How to install OS9 if I have only "Out of Range" mode. You can't install OS9 from OSX because you need to format HDD via OS9 to Enable OS9 drivers. So, to boot from CD you need to use VGA monitor or VGA adapter. Also you can disable ATI Extensions. I recommend to Install OS9 from USB. To achieve this:

***** You can lose your data so please do it on your own risk *****

a) Download V8 distro onto your Tiger / Leopard desktop.

b) Insert an Empty USB Drive with enough free space for OS9 Install CD.

c) Open Disk Utility and partition Flash Drive with Mac OS Extended File System and Apple Partition Map.

d) Open Terminal. Insert this "diskutil list". It will list all of yours HDDs. Find the partition from the USB Drive (something like disk2s1, you will identify it by the size).

e) Unmount the Volume with the command "diskutil unmount disk2s1(put your volume here).

f) Now we will copy our install cd onto the flash drive by bites. It will take time (5-20 minutes) so be patient. Type into the terminal "dd if=[Path to Install CD] of=/dev/rdisk2 bs=4096"

So what all this commands mean?:)
dd - the name of the program.
if - short from Input File
of - short from Output File
bs - block size. You can use 1024, 2048, 4096 or any other value here. So every XXXX bites the data will be written onto the drive.

Why you are using /dev/rdisk2 instead of disk2 or disk2s1?
Remember the step "e" when we unmounted disk2s1. We just unmounted the Volume to avoid conflicts, but the disk itself (disk2) is stil present in the system. Also, as you may know, Mac OS X is a UNIX-based system. In UNIX based environment all devices are represented as files in /dev/ directory even HDDs. And we are using unix "dd" command to copy the cd image onto the drive... So, you know what I mean. Also we are using whole disk not only the partition because we will copy all the data, including CD bootsector etc.

Finally: whats wrong with the "r" letter before the "disk2"
Well, I can't provide any info here. But without "r" this operation will require hours. Maybe someone can provide some info on it in the comments below?.

g) Ok. After you insert the dd command and double checked that "if" is your input cd and "of" is your flash drive disk (and not only the volume) hit "Enter". Wait for this procedure to complete. There is no prompts or progress bars so wait until the new terminal input string appears (yourname@nameofyourmac: ).

h) If all is ok, unmount the drive with terminal "diskutil unmountDisk disk2 (the name of your disk without r or /dev/).

i) Reinsert the drive if the partition is mounted successfully you're done. If not - check the steps again. There might be an error.

j) Go onto the mounted partition and delete or move somewhere ATI Via Driver Extension.

k) Reboot your machine holding O+F+CMD+OPT buttons after the Chime sound. You will boot into Open Firmware Environment.

l) type "boot ud:,\\:tbxi". There only 1 space after the "boot" command. Also you will need all symbols like ",",":" etc exactly in mentioned order for this operation to work. Hit Enter. If you follow all the steps you will be booting from OS9 via USB with 2d / 3d disabled and without "Out of Range" issues.
 
-----------------------------------------

Conclusion

As you can see, the Mini's "Out of Range" problem can be solved by the software. But we need to experiment more and share our experience with the community. I want to thank darthnVader, and all the community members who made the boot and use OS9 under unsupported hardware possible. Also I'm sorry for my english. It's not my native language.

-----------------

Please share your experience and comments here. Cheers!
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: darthnVader on May 22, 2019, 02:45:33 AM
I abandoned 'NDRV's later than 10.3.7 because of the "Grey Screen" issue, oddly it seems only the R9200 was effected by it. The R9550 in one of my iBooks has no issue in OS 9 using the 'NDRV' from 10.5.x.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on May 22, 2019, 04:58:49 AM
darthnVader did you try 10.5 NDRV under 9200? I think its possible to fix only the EDID section of NDRV driver and not to replace the whole code. What do you think about it?
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on May 22, 2019, 05:10:19 AM
@darthnVader Also I have some experience in PPC AGP Graphics Cards flashing. For example: when I was flashing 9800 pro with reduced 64kb rom years ago it wasn't working correctly in OSX without ATI Rom Extender Kext which could be obtained from ATI drivers update package. So, maybe we need to modify OS9 ATI Rom Extender also to fix things? 
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on May 22, 2019, 03:37:46 PM
Hey everyone! Maybe someone know any good tutorial of NDRV drivers creation? Sample Projects, Links, PDF-s would be great!
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: darthnVader on May 22, 2019, 07:39:38 PM
@darthnVader Also I have some experience in PPC AGP Graphics Cards flashing. For example: when I was flashing 9800 pro with reduced 64kb rom years ago it wasn't working correctly in OSX without ATI Rom Extender Kext which could be obtained from ATI drivers update package. So, maybe we need to modify OS9 ATI Rom Extender also to fix things?

All the Rom Xtender is is a group of 'NDRV's.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: darthnVader on May 22, 2019, 07:40:48 PM
Hey everyone! Maybe someone know any good tutorial of NDRV drivers creation? Sample Projects, Links, PDF-s would be great!

Apple's documentation on 'NDRV's is near useless, good luck.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: ELN on May 22, 2019, 10:35:56 PM
NDRVs are essentially just Apple PowerPC binaries that present a specific interface to the rest of the system. They are mainly (only?) used for PCI device drivers. Daniel’s disassembly toolkit, or alternatively Hopper or IDA Pro, can help you get at the PowerPC code inside. Then patching is probably best done by feeding the output of Daniel’s tool back into the MPW PPC assembler.

To make a brand new NDRV, you would probably compile it from C. The OS 7/8/9 driver dev kits for PCI and CardBus should contain sample code.

I am hoping to see a comprehensive archive of all the video card NDRVs that anyone can find. A wealth of data, in my experience, makes all these problems seems shallow.

Does anyone still have the problem of a blank screen lasting until late in the boot process? It will probably be pretty easy to incorporate an NDRV deep into a Mac OS ROM file to work around this.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on May 23, 2019, 12:58:20 AM
Quote
NDRVs are essentially just Apple PowerPC binaries that present a specific interface to the rest of the system. They are mainly (only?) used for PCI device drivers. Daniel’s disassembly toolkit, or alternatively Hopper or IDA Pro, can help you get at the PowerPC code inside. Then patching is probably best done by feeding the output of Daniel’s tool back into the MPW PPC assembler.

To make a brand new NDRV, you would probably compile it from C. The OS 7/8/9 driver dev kits for PCI and CardBus should contain sample code.

I am hoping to see a comprehensive archive of all the video card NDRVs that anyone can find. A wealth of data, in my experience, makes all these problems seems shallow.

Does anyone still have the problem of a blank screen lasting until late in the boot process? It will probably be pretty easy to incorporate an NDRV deep into a Mac OS ROM file to work around this.

Hey, ELN! Thank for your reply! Yeap, I've already tried the Ida Pro. But for now I have no luck there. The result code is unstructured and nearly unreadable. I've heard the "macnosy" able to do the trick, but cannot find the distro.
Quote
The OS 7/8/9 driver dev kits for PCI and CardBus should contain sample code.
Maybe you have some files or links? It would be great!

Quote
Does anyone still have the problem of a blank screen lasting until late in the boot process?
I have on mine Mac Mini. Only 1280x720 works well with darth's RockHopper2 modified drivers. I also could boot with 10.4, 10.5 ndrv into 1920x1080 but without 2d/3d and with grey screen issues.

Quote
I am hoping to see a comprehensive archive of all the video card NDRVs that anyone can find.
We need a thread in download section! @MacOs9Lives?

---
I think it's a good idea to create forum thread with all of NDRVs for the OS9 - modified and unmodified.

@darthnVader

I've also tried to use Merlin NDRV from eMAC G4 but unsuccesfully. What I've done - changed "Merlin" to "RockHopper2" and fixed the length in "cfrg". The system just ignores this NDRV. What else can I do?
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: ELN on May 23, 2019, 03:56:02 AM
I think a GitHub repo would be a good idea.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: Daniel on May 23, 2019, 12:31:09 PM
Quite a few Apple development kits are located in the Apple FTP archives: https://www.staticky.com/mirrors/ftp.apple.com/developer/Development_Kits/ (https://www.staticky.com/mirrors/ftp.apple.com/developer/Development_Kits/).

Documentation on NDRVs can be found in here: http://mirror.informatimago.com/next/developer.apple.com/documentation/Hardware/DeviceManagers/pci_srvcs/pci_cards_drivers/Designing_PCI_Cards_Drivers.pdf (http://mirror.informatimago.com/next/developer.apple.com/documentation/Hardware/DeviceManagers/pci_srvcs/pci_cards_drivers/Designing_PCI_Cards_Drivers.pdf). Look for "TheDriverDescription" for info on how NDRVs are matched to device tree nodes.

The device name field in a NDRV is a constant 32 bytes long. The first byte is the length of the name; the rest are the name itself. To change it, you must carefully preserve the actual length of the file. Go open the NDRV in a hex editor and find where the name is. The 32 byte area starting 1 byte before the 'M' should look like this:
Code: [Select]
06 4d 65 72 6c 69 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00Replace it with this:
Code: [Select]
0B 52 6f 63 6b 48 6f 70 70 65 72 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00That should properly change "Merlin" to "RockHopper2".

Though if you want to test NDRVs out on different devices, you should probably just change the Open Firmware device name to the name the NDRV looks for. Then, you can just type a few lines of forth into a console rather than hex edit a driver.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on May 24, 2019, 04:38:23 AM
Quote
Quite a few Apple development kits are located in the Apple FTP archives: https://www.staticky.com/mirrors/ftp.apple.com/developer/Development_Kits/.

Documentation on NDRVs can be found in here: http://mirror.informatimago.com/next/developer.apple.com/documentation/Hardware/DeviceManagers/pci_srvcs/pci_cards_drivers/Designing_PCI_Cards_Drivers.pdf. Look for "TheDriverDescription" for info on how NDRVs are matched to device tree nodes.

The device name field in a NDRV is a constant 32 bytes long. The first byte is the length of the name; the rest are the name itself. To change it, you must carefully preserve the actual length of the file. Go open the NDRV in a hex editor and find where the name is. The 32 byte area starting 1 byte before the 'M' should look like this:
Code: [Select]
06 4d 65 72 6c 69 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Replace it with this:
Code: [Select]
0B 52 6f 63 6b 48 6f 70 70 65 72 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
That should properly change "Merlin" to "RockHopper2".

Though if you want to test NDRVs out on different devices, you should probably just change the Open Firmware device name to the name the NDRV looks for. Then, you can just type a few lines of forth into a console rather than hex edit a driver.

Hey Daniel! Thank you for this absolutely amazing reply. I will try the HEX way first. I'm afraid of changing something inside the open firmware because don't want to brick my device. Is it safe? Can I return to defaults by CMD+OPT+P+R or changes will stay there permanently?
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: Daniel on May 24, 2019, 07:14:46 AM
Yes, there are ways to undo bad Open Firmware settings. This forum thread here goes into much of the specifics: http://macos9lives.com/smforum/index.php/topic,4750.0.html (http://macos9lives.com/smforum/index.php/topic,4750.0.html).

But if you just type something on the console with CMD-OPT-O-F, the changes will be gone on the next boot unless you specifically enter them into nvram.

Code: [Select]
dev <insert path to Merlin here>
" RockHopper2" encode-string " name" property
unselect-dev
So this code will change the "Merlin" device's name to "RockHopper2", if the angled brackets are replaced with the path to "Merlin". As with most OF changes, this is entirely temporary, and will only last a single boot.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on May 24, 2019, 07:42:34 AM
Quote
Yes, there are ways to undo bad Open Firmware settings. This forum thread here goes into much of the specifics: http://macos9lives.com/smforum/index.php/topic,4750.0.html.

But if you just type something on the console with CMD-OPT-O-F, the changes will be gone on the next boot unless you specifically enter them into nvram.

Code: [Select]
dev <insert path to Merlin here>
" RockHopper2" encode-string " name" property
unselect-dev
So this code will change the "Merlin" device's name to "RockHopper2", if the angled brackets are replaced with the path to "Merlin". As with most OF changes, this is entirely temporary, and will only last a single boot.

Thank you! I will give it a try.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on May 25, 2019, 04:39:42 AM
Hey, Daniel! I've tried Merlin profiler with your OF method and it works! Thanks you! This experience is brilliant! And I finally got my mini to boot 1920x1080 @ 72hz 8). I have some minor color glitches on the screen and not tried acceleration yet. I will continue to experiment with different NDRVs. I have one question here. I tried to do some HEX modifications you mentioned earlier but my code differs. For example I don't have "06" counter before "Merlin" in hex and have no zeroes after. Maybe there is something I miss? Thank you again!
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: Daniel on May 25, 2019, 05:01:17 AM
I am not really sure why it would be different. I haven't ever actually tried to modify NDRVs myself.

The name in the TheDriverDescription structure should be a Str31, but maybe the string "Merlin" shows up several times in the NDRV? I am not confident enough on that subject to offer further advise with that.

Well, good luck on your endeavor. It seems you have pretty good results already, but maybe you can succeed several more times with this project :)
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on May 25, 2019, 06:57:02 AM
Quote
I am not really sure why it would be different. I haven't ever actually tried to modify NDRVs myself.

The name in the TheDriverDescription structure should be a Str31, but maybe the string "Merlin" shows up several times in the NDRV? I am not confident enough on that subject to offer further advise with that.

Well, good luck on your endeavor. It seems you have pretty good results already, but maybe you can succeed several more times with this project :)

It's a historical moment now. I booted up successfully 1920x1080@60 full 2d/3d support on 9.2.2. No glitches, no grey screens. Used Merlin NDRV from 10.3.9 with your OF hack. Now its time to figure out how to make proper HEX patch and release the drivers for Mac Mini.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on May 25, 2019, 07:05:19 AM
Quote
I am not really sure why it would be different. I haven't ever actually tried to modify NDRVs myself.
Daniel, thank you anyway! I've attached the hex. Maybe you have some ideas on it. I've tried to just rename the Merlin to the RockHopper2 in Insert mode via 0xED but OS9 just igonres it. There is zeroes at the end of ndrv and I tried to fix the final size like it was before but with no luck.

The drivers fix is the almost final step to release them for testing.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: Daniel on May 25, 2019, 07:28:27 AM
Well, that is definitely the TheDriverDescription structure. The signature 'mtej' marks the start of them.

It seems that the device node is called "ATY,Merlin" instead of just "Merlin". You will notice the '0a' right before "ATY" indicates the proper length of "ATY,Merlin".

So you the substitution should actually be from this:
Code: [Select]
0a 41 54 59 2c 4d 65 72 6c 69 6e 15to this:
Code: [Select]
0b 52 6f 63 6b 48 6f 70 70 65 72 32Hopefully that 0x15 at the end is replaceable. I kind of get the structure, and I think it might be just padding.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on May 25, 2019, 07:51:32 AM
Quote
Well, that is definitely the TheDriverDescription structure. The signature 'mtej' marks the start of them.

It seems that the device node is called "ATY,Merlin" instead of just "Merlin". You will notice the '0a' right before "ATY" indicates the proper length of "ATY,Merlin".

So you the substitution should actually be from this:
Code: [Select]
0a 41 54 59 2c 4d 65 72 6c 69 6e 15
to this:
Code: [Select]
0b 52 6f 63 6b 48 6f 70 70 65 72 32
Hopefully that 0x15 at the end is replaceable. I kind of get the structure, and I think it might be just padding.

Daniel, thanks! I will try it today. For now check this bad boy in attachment.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: Daniel on May 25, 2019, 09:28:01 AM
Wow that is awesome :)
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on May 25, 2019, 09:51:46 AM
Hey, Daniel! I've followed your instructions this way: found "Merlin" in hex, changed it to "RockHopper2", then I changed the counter to 0F (15). After that I replaced Data Fork with Resedit and fixed lenght in "cfrg" section. Also I replaced ATY,Merlin with ATY,RockHopper2 in "cfrg" section too. Unfortunately no luck here for now. Maybe there is something I missed? @darthnVader, maybe you can help here? Thanks!
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on May 25, 2019, 11:07:26 PM
Hey, Daniel! I've followed your instructions this way: found "Merlin" in hex, changed it to "RockHopper2", then I changed the counter to 0F (15). After that I replaced Data Fork with Resedit and fixed lenght in "cfrg" section. Also I replaced ATY,Merlin with ATY,RockHopper2 in "cfrg" section too. Unfortunately no luck here for now. Maybe there is something I missed? @darthnVader, maybe you can help here? Thanks!

There is a second value "15" right after the ATY,Merlin. I've changed it to 10 with ATY,RockHopper2 (It's something like padding as you said before) but still no success here. I have no idea why   :'(
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on May 26, 2019, 12:44:36 AM
Hey, Daniel! I've followed your instructions this way: found "Merlin" in hex, changed it to "RockHopper2", then I changed the counter to 0F (15). After that I replaced Data Fork with Resedit and fixed lenght in "cfrg" section. Also I replaced ATY,Merlin with ATY,RockHopper2 in "cfrg" section too. Unfortunately no luck here for now. Maybe there is something I missed? @darthnVader, maybe you can help here? Thanks!

There is a second value "15" right after the ATY,Merlin. I've changed it to 10 with ATY,RockHopper2 (It's something like padding as you said before) but still no success here. I have no idea why   :'(

Woohoo! I finally figure this out! The whole $mtej section should be patched, not only the counters on the both sides of "ATY,Merlin", but the value here $mtej.$.ATY,RockHopper.$ It's something like a padding too. So the working Extension is in Attachement. You will also need the extensions included with V8 Mac Mini Install CD. Replace "ATI Via Driver" with "ATI RockHopper2 Driver" extension.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: darthnVader on May 26, 2019, 03:05:14 AM
Hey, Daniel! I've followed your instructions this way: found "Merlin" in hex, changed it to "RockHopper2", then I changed the counter to 0F (15). After that I replaced Data Fork with Resedit and fixed lenght in "cfrg" section. Also I replaced ATY,Merlin with ATY,RockHopper2 in "cfrg" section too. Unfortunately no luck here for now. Maybe there is something I missed? @darthnVader, maybe you can help here? Thanks!

There is a second value "15" right after the ATY,Merlin. I've changed it to 10 with ATY,RockHopper2 (It's something like padding as you said before) but still no success here. I have no idea why   :'(

Woohoo! I finally figure this out! The whole $mtej section should be patched, not only the counters on the both sides of "ATY,Merlin", but the value here $mtej.$.ATY,RockHopper.$ It's something like a padding too. So the working Extension is in Attachement. You will also need the extensions included with V8 Mac Mini Install CD. Replace "ATI Via Driver" with "ATI RockHopper2 Driver" extension.

Sometimes fixing one thing, breaks something else.....

It helps to have quite a few monitors and connectors to test with, test VGA/DVI/DVI-HDMI.

Also, you should try the 'NDRV' from 10.5.8, as that would include the last bug fixes, but we don't know how the eMac 'NDRV' may react to OS 9 on the Mini.

Good work so far, I think I tested the "ATY,Bugsy" 'NDRV' with the Mini and it was a no go, I just assumed other dual head 'NDRV's would work.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on May 26, 2019, 03:36:40 AM
Quote

Sometimes fixing one thing, breaks something else.....

It helps to have quite a few monitors and connectors to test with, test VGA/DVI/DVI-HDMI.

Also, you should try the 'NDRV' from 10.5.8, as that would include the last bug fixes, but we don't know how the eMac 'NDRV' may react to OS 9 on the Mini.

Good work so far, I think I tested the "ATY,Bugsy" 'NDRV' with the Mini and it was a no go, I just assumed other dual head 'NDRV's would work.

Thanks! And for your help too. The thing with eMac's NDRV - the system thinks I'm on VGA Display: Menu bar has rounded corners and I also have 640x480 resolution in first few seconds of OS booting. I also have some resolutions like 1920x1080@72, 1920x1200@76 that displayed in Monitors Control Panel but give me out of range. Thats all. The 2D/3D works great in games and on OS level. The machine works perfectly stable on 1920x1080@60 in Millions of Colours finaly. I really can't understand what is wrong with the original RockHopper2 NDRV why it's so buggy? I also tested iBook's NDRV and get 1024x768 resolution max, but fully working system. ) Today I will try Radeon 9000, but later. The friend of mine should connect the card and check compatible property for me.
----
@darthnVader, Also there is a mistery with ATI 9200 3D Accelerator Extension and ATI Displays Control Panel. I cannot find them at all. Do you have them?
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: darthnVader on May 26, 2019, 03:49:39 AM
Quote

Sometimes fixing one thing, breaks something else.....

It helps to have quite a few monitors and connectors to test with, test VGA/DVI/DVI-HDMI.

Also, you should try the 'NDRV' from 10.5.8, as that would include the last bug fixes, but we don't know how the eMac 'NDRV' may react to OS 9 on the Mini.

Good work so far, I think I tested the "ATY,Bugsy" 'NDRV' with the Mini and it was a no go, I just assumed other dual head 'NDRV's would work.

Thanks! And for your help too. The thing with eMac's NDRV - the system thinks I'm on VGA Display: Menu bar has rounded corners and I also have 640x480 resolution in first few seconds of OS booting. I also have some resolutions like 1920x1080@72, 1920x1200@76 that displayed in Monitors Control Panel but give me out of range. Thats all. The 2D/3D works great in games and on OS level. The machine works perfectly stable on 1920x1080@60 in Millions of Colours finaly. I really can't understand what is wrong with the original RockHopper2 NDRV why it's so buggy? I also tested iBook's NDRV and get 1024x768 resolution max, but fully working system. ) Today I will try Radeon 9000, but later. The friend of mine should connect the card and check compatible property for me.
----
@darthnVader, Also there is a mistery with ATI 9200 3D Accelerator Extension and ATI Displays Control Panel. I cannot find them at all. Do you have them?

The R9200 uses the ATI 8500 3D Accelerator, same basic GPU, and no version of ATI Displays supports the R9200 under OS 9.

I did some work trying to hack it, but all it would do even fully working would be to show the vram in use for 2D/3D.

It doesn't support 3D overrides or hog PCI bandwidth under OS 9, only OS X.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on May 26, 2019, 05:55:38 AM
Quote
The R9200 uses the ATI 8500 3D Accelerator, same basic GPU, and no version of ATI Displays supports the R9200 under OS 9.

I did some work trying to hack it, but all it would do even fully working would be to show the vram in use for 2D/3D.

It doesn't support 3D overrides or hog PCI bandwidth under OS 9, only OS X.

Can you share the CP and Extension if you have them please?
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to
Post by: whoisthisguy on May 27, 2019, 03:30:41 AM
Hey all! I've made some cosmetic updates in the driver and created separate downloading thread here http://macos9lives.com/smforum/index.php/topic,5009.0.html If someone can help with pinning that thread it will be great. Thanks!
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: Jubadub on July 02, 2019, 02:57:07 PM
Wow. Just wanted to stop by and say this was a really awesome effort. Thank you for doing this!
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on July 03, 2019, 09:04:54 AM
Wow. Just wanted to stop by and say this was a really awesome effort. Thank you for doing this!


You're welcome! I hope i will fix the sound issues too. Stay tuned to the forum.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: ELN on September 26, 2019, 03:08:11 AM
I am hoping to see a comprehensive archive of all the video card NDRVs that anyone can find. A wealth of data, in my experience, makes all these problems seems shallow.

Done, by looking though Mac OS X installers and updaters: https://github.com/elliotnunn/x-ndrv (https://github.com/elliotnunn/x-ndrv)

(Thanks to whoisthisguy for the eMac-specific 10.3.9 RockHopper2 driver)
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: IIO on September 26, 2019, 11:27:52 AM
i was about to say - you probably find all of the required data in OSX 10.9+ or windows 8+.

and while it is great that you found a hack solution which will find its way into the next mini OS - from a user perspective it still seems easier to use a monitor which just works out of the box instead of hacking the OS.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: mmtuk on October 10, 2020, 02:14:26 PM
I stumbled upon this old thread and was amazed at the determination to solve the issue. Before reading a single word of this thread I had already solved the problem but don’t know if my method counts or has any validity here.

Having got numerous adaptors lying around, I merely inserted a dvi to analog (vga) adaptor and then a standard vga lead to the monitor and it worked at full HD (1920 x 1084), no issues.

Does this solution not count as it circumvents the problem rather than solving it?
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: IIO on October 10, 2020, 03:19:29 PM
or maybe there was never a problem.

because my mac minis run dell monitors with 1920*1200 just fine.

they seem to ruthlessly ignore the problem described in the starting post. ;)
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: SDG on October 11, 2020, 12:37:53 AM
I don't think the problem is bogus. I have two old LCD tvs. One one, the G4 displays albeit at the wrong resolution. On the other, I get the out of range error.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on October 12, 2020, 04:03:29 AM
Try this driver http://macos9lives.com/smforum/index.php/topic,5009.msg37457.html#msg37457 and don't forget to uninstall the old one.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: whoisthisguy on October 12, 2020, 04:09:21 AM
I don't think the problem is bogus. I have two old LCD tvs. One one, the G4 displays albeit at the wrong resolution. On the other, I get the out of range error.
The reason why this fix is working is because of simplified NDRV of VGA Display of RockHopper GPU. The same GPU as in MacMini G4 or one found in iBook G4 (which also works but 1024x768) It not trying to automatically detect your GPU's range of supported frequencies and resolutions but gives you eMac's G4 supported ones.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: IIO on October 12, 2020, 08:50:38 AM
I don't think the problem is bogus

yes of course, i know there are a lot of reports in the same direction. i am just saying that the original statement "third party screens dont work in 1900" is only half the truth, because some do.

however, it is interesting that the issue still appears with the mini OS9 v9, i.e. after the usb-vs-ati fix. our GPU gurus can interpret that better than me.

until there is an automatic solution my first advice remains "try another monitor" before anything else.
Title: Re: Mac Mini G4: "Out of range" Issue on non-Apple displays. Experimental way to FIX
Post by: teroyk on October 12, 2020, 09:57:21 AM
Have to say something general about "Out of range"-issues.
Some monitors give miss information when detecting from DVI with adapters and some monitors even with VGA connector.
And opposite some monitors don't want show some resolutions even they can on HP shows "Out of range" and it shows picture as it should in back ground of that text.
One LG LCD TV/monitor let use different resolutions depending do you use Scart, HDMI or VGA connector (tested with computers that possible feed PAL/NTSC signal to VGA).
Raspberry Pi with one monitor (I don't remember name) has to force to use different hz than it detect from connector to get work.

Some older monitors are better because they calculate from VGA-signal how to show picture instead use predefined resolutions. And after that you can adjust calculation if it's not correct.
It would be nice that on Mac side you can choose every possible resolution, not that recommended for that monitor.

Old CRT-monitors are nice, they show something from signal even, when they cannot show whole picture.

EDIT: I fixed one typo