Author Topic: Issues with GeForce 4MX - iMac G4 - M6498 (EMC 1956)  (Read 1266 times)

Offline Genie52

  • Newcomer
  • *
  • Posts: 4
  • New Member
Issues with GeForce 4MX - iMac G4 - M6498 (EMC 1956)
« on: April 05, 2024, 06:09:08 AM »
Hello all! First post :) new owner of amazing lamp - iMac G4 - 17" LCD monitor with GeForce 4MX. Removed OSX (everything was working perfectly) - because I wanted to install 9.2.2. Managed to install OS9.2.2. Live with no issues however it seems NVIDIA acceleration is not working. I so have millions of colors but I can see for example when moving windows around on desktop its quite slow. To my untrained eye it seems like nvidia drivers are not getting used, but some general video drivers - however they are in extensions folder (nvidia drivers 3.5.2) and under Systems Profiles->Extensions I can see they are enabled (enabled = yes). When I try to start a game like Day of the Tentacle I got the message "Sorry, but Day of the Tentacle requires at least one 13" or larger monitor that is capable of switching to 256 colors"

I have followed few guides here on forum how to remove unused extensions (like ATI and the rest), however its still the same.

Some guidance is appreciated! Thank you! :)

Offline Knezzen

  • Administrator
  • Platinum Member
  • *****
  • Posts: 1008
  • Pro Tools Addict!
    • Macintosh Garden
Re: Issues with GeForce 4MX - iMac G4 - M6498 (EMC 1956)
« Reply #1 on: April 05, 2024, 07:16:09 AM »
I don't have any helpful words, I just took the opportunity to move your post into the Video cards section.

Welcome to Mac OS 9 Lives, btw! :)
Pro Tools addict and admin at Macintosh Garden, Mac OS 9 Lives! and System 7 Today

Offline aBc

  • Moderator
  • Veteran Member
  • *****
  • Posts: 136
  • FdB•FBz•aBc
Re: Issues with GeForce 4MX - iMac G4
« Reply #2 on: April 05, 2024, 08:06:45 AM »
This may seem overly simplistic / redundant...
but try manually changing your monitor settings to 256 colors?

Offline Genie52

  • Newcomer
  • *
  • Posts: 4
  • New Member
Re: Issues with GeForce 4MX - iMac G4
« Reply #3 on: April 05, 2024, 09:04:36 AM »
This may seem overly simplistic / redundant...
but try manually changing your monitor settings to 256 colors?

hi aBc! how do you mean manually? under monitor setting I have only one option = millions :)
I think the problem is that NVIDIA drivers are not used even if they are in Extensions folder. I have removed them completely , restarted machine and nothing changed - so with them or without them its the same behavior.

Do you know how to "force" those nvidia drivers being used?

Offline aBc

  • Moderator
  • Veteran Member
  • *****
  • Posts: 136
  • FdB•FBz•aBc
Re: Issues with GeForce 4MX - iMac G4 - M6498 (EMC 1956)
« Reply #4 on: April 05, 2024, 10:41:11 AM »
..."under monitor setting I have only one option = millions"

Sorry, the above unclear in original post. And I'm unaware of this problem before.
I would likely nuke the entire OS install and begin over again.

And you’ve not stated if it’s an 800 MHz?
https://everymac.com/systems/apple/imac/specs/imac_800_17_fp.html

If it’s an 800 MHz - maybe try this download:
http://macos9lives.com/smforum/index.php?topic=5907.0

OR for OS 9 only… the Universal Install (again?)
http://macos9lives.com/smforum/index.php?topic=2109.0

Offline Genie52

  • Newcomer
  • *
  • Posts: 4
  • New Member
Re: Issues with GeForce 4MX - iMac G4 - M6498 (EMC 1956)
« Reply #5 on: April 05, 2024, 12:12:04 PM »
thank you for links aBc! I have https://everymac.com/systems/apple/imac/specs/imac_1.0_17_fp.html . Will try with the version you have linked. I did download 9.2.2. Uni from webarchive but it seems its a different version (I can see difference in sizes). I will try with the version you have posted. Thank you!

edit:
I had to use the one I did before (https://macos9lives.com/smforum/index.php?topic=2143.0) because my iMac does not support OS 9.2.2.
« Last Edit: April 05, 2024, 06:02:59 PM by Genie52 »

Offline Greystash

  • Gold Member
  • *****
  • Posts: 230
  • Tinkerer
    • Mac-Classic.com
Re: Issues with GeForce 4MX - iMac G4 - M6498 (EMC 1956)
« Reply #6 on: April 13, 2024, 08:32:55 PM »
I've been trying to get this working for a while but haven't had much luck. This model will display all color sets and resolutions under OS9, but it needs either video support with drivers or Mac OS ROM modifications to allow this. I'm not sure where to do this within the ROM file but I have seen it done for other models. If you have two partitions (OSX and OS9), the color depth and resolution set in OSX will carry through to OS9 when you restart, but you won't be able to switch after booting into OS9.

I have the 1.0Ghz 15" model (Unsupported OS9) and a 700Mhz (full OS9 support). As darthnVader states here (https://macos9lives.com/smforum/index.php?topic=1173.msg46900#msg46900) the 1.0Ghz model uses a slightly newer graphics chipset which doesn't have OS9 support. I've been trying to override the graphics properties in Open Firmware to be recognised as the older model, to see if that will make any difference. This might be a silly approach but I thought it would be worth a try.

I haven't been able to get far or test this because when the boot process starts Open Firmware is unable to find the display device, which is odd because it can be found and modified when you've booted directly into Open Firmware.

I've saved the following to the NVRAM in Open Firmware:
Code: [Select]
dev /pci@f0000000/NVDA,Parent@10
00000110 encode-int " device-id" property
000000b2 encode-int " revision-id" property
" GeForce2 MX" encode-string " model" property
" GeForce2 MX" encode-string " compatible" property
" NVDA,GeForce2MX" encode-string " device_type" property
device-end


With these changes set in the NVRAM, I boot the computer into Open Firmware again and it loads the NVRAM contents before allowing you to do anything.
In the pictures below you can see that after loading the NVRAM the first line complains that it can't find that hardware address during boot. The strange thing is that these addresses do exist and you can access them by manually entering them in Open Firmware.  :o

The only hardware address related to display that it will find during the boot process is:
Code: [Select]
dev /pci@f0000000None of this device's children can be found during the boot process, so all of the following will produce the same error when loading the NVRAM contents:
Code: [Select]
dev agp
dev screen
dev /pci@f0000000/[any child nodes]

Does anyone know why these device addresses can't be found at boot time?

Offline joevt

  • Enthusiast Member
  • ***
  • Posts: 68
  • New Member
Re: Issues with GeForce 4MX - iMac G4 - M6498 (EMC 1956)
« Reply #7 on: April 13, 2024, 11:14:43 PM »
Does anyone know why these device addresses can't be found at boot time?
Normal Open Firmware boot-up does the following: nvramrc probe-all install-console banner

The problem is probe-all is responsible for populating the PCI devices so your nvramrc script doesn't see the PCI devices. To get around this, add probe-all to the beginning of your nvramrc script and add banner to the end of the nvramrc script.

 https://68kmla.org/bb/index.php?threads/the-great-gazelle-pci-hack-thread-part-2.38360/post-466488
 https://forums.macrumors.com/threads/question-how-powerful-of-a-graphics-card-will-work-in-a-beige-power-macintosh-g3.2303689/

Offline Genie52

  • Newcomer
  • *
  • Posts: 4
  • New Member
Re: Issues with GeForce 4MX - iMac G4 - M6498 (EMC 1956)
« Reply #8 on: April 14, 2024, 02:57:07 PM »
thank you all! will try to play with settings you have mentioned in a weeks time after I come back from travels..

Offline Greystash

  • Gold Member
  • *****
  • Posts: 230
  • Tinkerer
    • Mac-Classic.com
Re: Issues with GeForce 4MX - iMac G4 - M6498 (EMC 1956)
« Reply #9 on: April 15, 2024, 05:06:30 PM »
Thanks joevt! That's interesting and answers a few questions I've had in the past!

I tried adding `probe-all` to the beginning of my script, and `banner` to the end, which resulted in the errors displayed in the image below. There is a "can't OPEN device" error, and several USB related errors. The Open Firmware console also locked up so a had to reboot holding the power button, wait for programmers tone etc. until OFW loaded.

Instead I substituted `probe-all` with `probe-pci`, and that seemed to work. No errors and it doesn't complain about not finding the GPU device.  :D

Unfortunately this didn't change anything regarding GPU support, and I couldn't see any difference within Apple System Profiler. I'm not expecting this to work, its just an experiment but I did expect to see some differences reported in Apple System Profiler.

If you run `probe-all`, or `probe-pci` within the nvramrc, will it run again afterwards as part of the boot process (overwriting changes), or does this hijack the default boot process?

I'll do some more digging later.

Thanks again joevt!

Offline joevt

  • Enthusiast Member
  • ***
  • Posts: 68
  • New Member
Re: Issues with GeForce 4MX - iMac G4 - M6498 (EMC 1956)
« Reply #10 on: April 16, 2024, 05:07:52 PM »
adding banner to the nvramrc script stops the normal boot from doing probe-all install-console banner.

If you were using serial port instead of a non-built-in PCI graphics card for the input/output-device, then you could do install-console first, then add some logging like this:

Code: [Select]
install-console
dev / ls device-end
." [ probe-all"
probe-all
." ] probe-all"
dev / ls device-end
." [ banner"
banner
." ] banner"

The example above will list the devices before and after probe-all

If you're stuck using the screen for input/output, then maybe this will work:

Code: [Select]
dev / ls device-end
." [ probe-all"
probe-all
." ] probe-all"
install-console
dev / ls device-end
." [ banner"
banner
." ] banner"

The logging that happens before install-console is buffered until the console is installed, then the buffered logging is output.

If it doesn't like buffering all that logging, then remove it.
Code: [Select]
probe-all
install-console
dev / ls device-end
." [ banner"
banner
." ] banner"

Basically, you can log each of your commands so that you can find out which one is causing the messages.

You can use one of these commands to view the built-in Open Firmware boot log:
Code: [Select]
.time-stamps
.time-stamps\

Offline Greystash

  • Gold Member
  • *****
  • Posts: 230
  • Tinkerer
    • Mac-Classic.com
Re: Issues with GeForce 4MX - iMac G4 - M6498 (EMC 1956)
« Reply #11 on: April 17, 2024, 01:06:35 AM »
Thanks joevt, I've tried both non-serial methods. After running the following it lists out the entire device tree (it ends at the same device as it would if I just ran ` dev / ls`), then begins the `probe-all` command which results in the same "can't OPEN device" error.
Code: [Select]
dev / ls device-end
." [ probe-all"
probe-all
." ] probe-all"
install-console
dev / ls device-end
." [ banner"
banner
." ] banner"

.time-stamps and .time-stamps\ don't work for me, it returns ".time-stamps, unknown word"

Offline joevt

  • Enthusiast Member
  • ***
  • Posts: 68
  • New Member
Re: Issues with GeForce 4MX - iMac G4 - M6498 (EMC 1956)
« Reply #12 on: April 17, 2024, 04:10:49 AM »
I think .time-stamps is hidden in some Open Firmware versions. Two options:
1) setenv fcode-debug? true then restart
2) false to check-visible then try the .time-stamps command again.
Probably the first is preferable since you only have to do it once (unless you zap the pram).

probe-all does the following:
push-state
probe-pci
probe-ext-mac-io
probe-usb
probe-fw
finish-device-tree
pop-state
   

I suppose you can try probe-pci instead of probe-all. In that case, maybe remove banner so that the normal boot process will do probe-all. It should be smart enough not to repeat the probe-pci part again but I'm not sure.

In either case, you may want to use a catch so that if it fails, the rest of the nvramrc script is executed.

['] probe-pci catch if ." exception:" . . cr then

Offline Greystash

  • Gold Member
  • *****
  • Posts: 230
  • Tinkerer
    • Mac-Classic.com
Re: Issues with GeForce 4MX - iMac G4 - M6498 (EMC 1956)
« Reply #13 on: April 19, 2024, 11:07:47 PM »
I managed to get my changes persisting, and narrowed down the `probe-all` issue to the Ethernet device failing to be opened in the `finish-device-tree` step. This happens on all of the G4 machines that I tested.

I've spent a lot of time on this today and unfortunately spoofing the older chipset didn't result in any success. I wasn't expecting this to work but it was worth a try.
Thanks so much for all the help joevt, I've learned a lot from this thread.