Author Topic: Modified ROM Updates (Generic & iBook)  (Read 17974 times)

Offline iMic

  • Enthusiast Member
  • ***
  • Posts: 29
  • new to the forums
Modified ROM Updates (Generic & iBook)
« on: March 11, 2015, 08:12:13 AM »
As some may have noticed, I haven't been around in a while. The development of additional ROM and extension modifications has been halted for the time being.

Of course that doesn't mean this project is finished. Should new developments or discoveries come to light, I don't see why we can't continue to experiment with these modifications to the Mac OS as time allows.

This is a rather time consuming project, and recent events have moved this one down the list of priorities somewhat. Between running ThinkClassic, my studies and finding time to spend with my significant other, dedicating several hours or even days to disassembling the Mac OS has become a rather tall order.

That said, another round of updates was made available two months ago in January. These were mostly overlooked however, buried deep within the forum thread over on ThinkClassic, so I'm making them known here officially with this thread.


I have omitted the download links for these packages from the post below. The reason for this is nothing personal - I'm hosting them from my own private account, and I can't guarantee that they will remain there (as a matter of fact, I'm almost certain they will eventually be moved elsewhere). Since I have greater control over that thread and can update it as necessary, I'll direct members from here to that post for up-to-date information on where to find these packages.

https://www.thinkclassic.org/viewtopic.php?pid=4504#p4504


Cheers,

~ iMic.


Quote
Time for another release. I wanted to release these now in their current form since I won't be able to commit to a time-frame for another release. Significant life events and recent difficulties have moved development of these down the list of priorities somewhat.


Macintosh ROM 10.2.1v1 "Generic"

* This release replaces the "Mac OS ROM 10.2.1 (Generic)" ROM.

These enhancements for the Macintosh operating system allow for the installation and use of Mac OS 9 on hardware released after Apple ceased support for Mac OS 9, henceforth referred to as unsupported machines.

Release 10.2.1v1 allows some unsupported Macintosh models to boot into Mac OS 9. This "Generic" release does not have any hardware-specific optimisations, and works best on machines like the Power Macintosh G4. While it can be used across a number of models of Macintosh desktops and notebooks, some features like notebook-specific power management or built-in display backlight control may not function correctly on some systems.


Changes

10.2.1v1 introduces a number of revisions from the standard Macintosh system, including:

   Mac OS ROM

   - Enables OS 9 as a valid boot option on MacRISC3 systems
   - Bypasses supported machine checks to attempt startup on unsupported models
   - Added model identifier names for Apple System Profiler:

         - PowerMac6,1 iMac
         - PowerMac6,3 iMac
         - PowerMac6,4 eMac
         - PowerBook6,3 iBook G4
         - PowerBook6,5 iBook G4
         - PowerBook6,7 iBook G4

   - Updated ROM version in About This Mac to Macintosh ROM 10.2.1v1
         - Previously Mac OS ROM 10.2.1
   - Updated Package Info to Macintosh System Component
         - Previously Mac OS CPU Software 5.9

   Insomnia

   - Prevents computer from automatically entering sleep mode (see Known Issues in included Read Me First)

            
This release is also recommended for users of the Mac OS ROM 10.2.1 (Generic) release as it contains a number of bug fixes:

   - Fixed incorrect string length for PowerBook6,3 iBook G4 in ntbl resource
   - Fixed incorrect number of ntbl entries


Download

(See ThinkClassic thread for information)


Macintosh ROM 10.2.1r1 "iBook"

This release contains the complete set of files from my PowerBook6,3 iBook G4.

These enhancements for the Macintosh operating system allow for the installation and use of Mac OS 9 on hardware released after Apple ceased support for Mac OS 9, henceforth referred to as unsupported machines.

Release 10.2.1r1 is specifically intended for use on the iBook G4. It contains a customised version of the Mac OS ROM with improvements specific to the iBook G4, system extensions to provide limited support for the iBook's built-in video hardware and display, and a ColorSync profile to correct gamma for iBook displays that appear overly bright or "washed out".


Changes

10.2.1r1 introduces a number of revisions from the standard Macintosh system, including:

   Mac OS ROM

   - Enables OS 9 as a valid boot option on MacRISC3 systems
   - Bypasses supported machine checks to attempt startup on unsupported models
   - Patched backlight NDRV to enable brightness control with mnca backlights
   - Added model identifier names for Apple System Profiler:

         - PowerBook6,3 iBook G4
         - PowerBook6,5 iBook G4
         - PowerBook6,7 iBook G4

   - Updated ROM version in About This Mac to Macintosh ROM 10.2.1r1
         - Previously Mac OS ROM 10.2.1
   - Updated Package Info to Macintosh System Component
         - Previously Mac OS CPU Software 5.9

   ATI Via Driver

   - Custom NDRV extracted from OS X Panther enables basic framebuffer support
   - Resolution Switching Enabled (640x480, 800x600, 1024x768 on iBook)
   - Color Mode Switching Enabled (256 Grays, 256 Colors, Thousands and Millions on iBook)
   - Hardware Scaler (Lower Resolutions scale up to fit the entire LCD)
   - Backlight Control (when used in conjunction with 10.2.1r1 ROM on iBook)
   - Display Sleep and Backlight Dimming Enabled
   - VRAM amount detected correctly

   ATI Resource Manager

   - v3.1.6, Mac OS CPU Software 5.9 included (unmodified)

   Insomnia

   - Prevents computer from automatically entering sleep mode (see Known Issues in included Read Me First)


This release is also recommended for users of the Mac OS ROM 10.2.1 (Generic) release as it contains a number of bug fixes:

   - Fixed incorrect string length for PowerBook6,3 iBook G4 in ntbl resource
   - Fixed incorrect number of ntbl entries


Download

(See ThinkClassic thread for information)

Offline DieHard

  • Global Moderator
  • Platinum Member
  • *****
  • Posts: 2366
Re: Modified ROM Updates (Generic & iBook)
« Reply #1 on: March 11, 2015, 08:26:49 AM »
Your contributions are greatly appreciated :)

Take all the time off you need; your previous work has helped (and will help) many others in the future. We can mirror any files you wish here. Your studies are very important (and so is keeping your girl happy), so we all understand... at least until the new improved Hologram Slut Systems come out in 2020, then we will not be as dependent on the ladies.

supernova777

  • Guest
Re: Modified ROM Updates (Generic & iBook)
« Reply #2 on: March 11, 2015, 08:50:17 AM »
Your contributions are greatly appreciated :)

Take all the time off you need; your previous work has helped (and will help) many others in the future. We can mirror any files you wish here. Your studies are very important (and so is keeping your girl happy), so we all understand... at least until the new improved Hologram Slut Systems come out in 2020, then we will not be as dependent on the ladies.

you better hope your wife doesnt read your posts :D lol

Offline mrhappy

  • Platinum Member
  • *****
  • Posts: 1152
  • new to the forums
Re: Modified ROM Updates (Generic & iBook)
« Reply #3 on: March 11, 2015, 11:33:28 AM »
I'm sure that the "H.S.S." will be a big hit!!! ;D

Online Protools5LEGuy

  • Global Moderator
  • Platinum Member
  • *****
  • Posts: 2749
Re: Modified ROM Updates (Generic & iBook)
« Reply #4 on: March 11, 2015, 01:07:23 PM »
To understand what machines are OS9'able with this updates:

Previous MDD FW800

PowerBook6,3 http://www.everymac.com/ultimate-mac-lookup/?search_keywords=PowerBook6,3
ATI Mobility Radeon 9200

PowerBook6,5 http://www.everymac.com/ultimate-mac-lookup/?search_keywords=PowerBook6,5
ATI Mobility Radeon 9200

PowerBook6,7 http://www.everymac.com/ultimate-mac-lookup/?search_keywords=PowerBook6,7
ATI Mobility Radeon 9550


So, All iBooks G4?

eMacs PowerMac6,4 eMac are 2 models http://www.everymac.com/ultimate-mac-lookup/?search_keywords=PowerMac6,4

Apple eMac G4/1.25 (USB 2.0) http://www.everymac.com/systems/apple/emac/specs/emac_1.25.html This model has ATI Radeon 9200 graphics with 32 MB of dedicated DDR SDRAM. There were OS9 drivers for 9200 not mobility. It could be the best supported unsupported machine (aside the first iMac G4 "X-only"). It has PowerPC 7447a and 512k on-chip level 2 cache runs at processor speed. Stronger than a cube, for example. Probably slower than a 1GHz Ti Powerbook (?). But this thing supports 3.5'' IDE with 7200rpm

Apple eMac G4/1.42 has ATI Radeon 9600 graphics with 64 MB.

Looking for MacOS 9.2.4

Offline iMic

  • Enthusiast Member
  • ***
  • Posts: 29
  • new to the forums
Re: Modified ROM Updates (Generic & iBook)
« Reply #5 on: March 11, 2015, 09:46:17 PM »
Your contributions are greatly appreciated :)

Take all the time off you need; your previous work has helped (and will help) many others in the future. We can mirror any files you wish here. Your studies are very important (and so is keeping your girl happy), so we all understand... at least until the new improved Hologram Slut Systems come out in 2020, then we will not be as dependent on the ladies.

It has been a difficult time since my last round of updates here, especially the last few weeks in particular. She's been keeping me going through all of it though. (Cue Awwwwww.)

I'm not opposed to the idea of having these files mirrored here. They're self contained archives containing the necessary extensions and some documentation about what they do, how to use them and how to install them, so they should already contain everything most users would need.


To understand what machines are OS9'able with this updates:

From what I can tell:

Previous MDD FW800 - Confirmed Working.

PowerBook6,3 iBook G4   [ http://www.everymac.com/ultimate-mac-lookup/?search_keywords=PowerBook6,3 ]
Mostly Working. ATI Mobility Radeon 9200 framebuffer is usable but lacks hardware 2D/3D acceleration. Sleep Mode is not supported, the system will sleep but be unable to wake, requiring a hard reboot. AirPort Extreme does not work. All other functions of the machine work correctly.

PowerBook6,5 iBook G4 (Early/Late 2004)   [ http://www.everymac.com/ultimate-mac-lookup/?search_keywords=PowerBook6,5 ]
Mostly Working. PowerPC 7447A processor requires OF commands to identify to Mac OS 9 as an older G4 CPU. Multiprocessing folder must be removed from Extensions folder prior to first boot. ATI Mobility Radeon 9200 framebuffer is usable but lacks hardware 2D/3D acceleration. Sleep Mode is not supported, the system will sleep but be unable to wake, requiring a hard reboot. AirPort Extreme does not work. All other functions of the machine work correctly.

PowerBook6,7 iBook G4 (Mid 2005)   [  http://www.everymac.com/ultimate-mac-lookup/?search_keywords=PowerBook6,7 ]
Unlikely to work. Initial testing shows the machine hangs during startup. Possibly requires further investigation to determine if this machine is capable of booting into Mac OS 9. ATI Mobility Radeon 9200 extensions are unlikely to work with the Mobility Radeon 9550 without further modification.


I haven't tested the eMac models personally, but I'm hearing some success with earlier OS X-only models. The ATI Radeon 9200 extensions still need to be patched to determine whether they can be made to work with the onboard graphics in these models.

Some PowerBook G4 models, including the earlier 12", 15" and 17" models, also appear to work in a limited capacity. The main issue there seems to be the graphics hardware, and while I've looked into nVidia's extensions to see if they could be tweaked to work, they're a completely different beast to ATI's extensions and somewhat harder to understand and work with.

Offline Dooley2.0

  • Newcomer
  • Posts: 1
  • New Member
Re: Modified ROM Updates (Generic & iBook)
« Reply #6 on: November 19, 2017, 07:53:30 PM »
Fairly new here. Is there any harm in upgrading the graphics card on my FW 800 1.25 G4? I currently have the standard Radeon 9000 Pro but I know that Radeon makes better cards and so does NVIDEA. I have it booting 9.2.2 using the 10.2.1 ROM supplied here.  I don't know if that would throw off anything?  Thanks!

Offline dr bu

  • Gold Member
  • *****
  • Posts: 230
  • inconsistent soul
Re: Modified ROM Updates (Generic & iBook)
« Reply #7 on: February 05, 2018, 11:49:06 PM »
possibly ill buy a G4 Mirror DP 1.42 PowerMac 3.6. are there any issues running os9 on this using the hacks here?  :-\
could i even run the swedish os?  :-\
« Last Edit: February 06, 2018, 10:14:24 AM by dr bu »
djupsinnig

Offline dr bu

  • Gold Member
  • *****
  • Posts: 230
  • inconsistent soul
Re: Modified ROM Updates (Generic & iBook)
« Reply #8 on: February 06, 2018, 10:47:40 AM »
me time is short. i bet Gary can help me out on this one if nobody else will. :)
djupsinnig

Offline GaryN

  • Platinum Member
  • *****
  • Posts: 1566
  • active member
Re: Modified ROM Updates (Generic & iBook)
« Reply #9 on: February 06, 2018, 12:06:15 PM »
me time is short. i bet Gary can help me out on this one if nobody else will. :)
Bu, I'm not sure if that's a compliment because you think I can help you or an insult because I'm your last resort…

Buy the machine. Use the OS9 on file here specifically for it. The FW800 ports will operate as FW400 so all you need there is a couple of 3-dollar adapters. English, Swedish, whatever will work if you have the language pack installed. Boot it and enjoy your 1.42gHz OS9 computer.

Offline dr bu

  • Gold Member
  • *****
  • Posts: 230
  • inconsistent soul
Re: Modified ROM Updates (Generic & iBook)
« Reply #10 on: February 06, 2018, 10:34:44 PM »
thank you!
that was intended a compliment for you; mocking everybody else. ;)

tomorrow i will see my new friend.
djupsinnig

Offline dr bu

  • Gold Member
  • *****
  • Posts: 230
  • inconsistent soul
Re: Modified ROM Updates (Generic & iBook)
« Reply #11 on: February 10, 2018, 05:59:44 AM »
i wonder if anyone sgot successful doin this unsupported journey on a non-english OS. my cloudy brain realized "language pack" is not the same thing as the language specific Mac OS ROM. i did try cheating (putting the updated ROM in the swedish system) but for one thing the sound panel settings locked as if occupied by an application. for some reason i find the swedish OS cute compared.
 
else i have to start learning some english...
djupsinnig

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Modified ROM Updates (Generic & iBook)
« Reply #12 on: April 07, 2018, 11:15:03 AM »
whatever a "language pack" for OS9 is, but the ROM contains close to nothing in a specific language.
insert arbitrary signature here

Offline MacTron

  • Global Moderator
  • Platinum Member
  • *****
  • Posts: 2116
  • keep it simple
Re: Modified ROM Updates (Generic & iBook)
« Reply #13 on: April 07, 2018, 11:20:53 AM »
whatever a "language pack" for OS9 is, but the ROM contains close to nothing in a specific language.
You are wrong. There are ALRT, DLOG, STR, STR# etc... resources in localized languages.
Please don't PM about things that are not private.

Offline ssp3

  • Platinum Member
  • *****
  • Posts: 710
Re: Modified ROM Updates (Generic & iBook)
« Reply #14 on: April 29, 2023, 10:24:32 PM »
Since Open Firmware stuff is still double Dutch to me, I have a couple of questions to our resident Open Firmware masochists  :D :

Am I right in my assumption that the lines on the right are responsible for loading checksum routine? I see Adler32 there..
Can these lines be deleted like I've shown on the left?
Is "then" before "hex" needed there or can it be omitted too?

The idea behind this is simple - if it is known that checksum will be wrong, why load the routine and then end it with "clear", like iMic did in his original mod? Maybe it's better not to load it at all?

I looked at nanopico's ROM mod and this checksum stuff is not present in his version. But then, he added a bunch of other commands - see my post here:
http://macos9lives.com/smforum/index.php/topic,6744.msg51429.html#msg51429
« Last Edit: April 30, 2023, 05:33:49 AM by ssp3 »
If you're not part of the solution, you're part of the problem.

Offline joevt

  • Enthusiast Member
  • ***
  • Posts: 65
  • New Member
Re: Modified ROM Updates (Generic & iBook)
« Reply #15 on: April 30, 2023, 10:12:44 AM »
Am I right in my assumption that the lines on the right are responsible for loading checksum routine? I see Adler32 there..
It runs the adler32 checksum method for bytes starting at load-base and ending at load-base + load-size - 14.
Then it evaluates the 12 bytes at load-base + load-size - 12. Is it code that outputs the expected checksum? What was loaded? I guess it's the Mac OS ROM file that was loaded (by Open Firmware) and it is checksumming itself. I have an unmodified MAC OS ROM file where the last 14 bytes are:
Code: [Select]

\ h# 198BF23F
so I guess that's the expected checksum where the last 12 bytes starts at the space character following the back-slash \ character. A back-slash \ character starts a comment in Open Firmware but this statement is evaluated starting from after the back-slash character. Executing the last 12 bytes puts the expected checksum (198BF23F in my case) on the top of the stack.

Can these lines be deleted like I've shown on the left?
Is "then" before "hex" needed there or can it be omitted too?
Depends on what the rest of the code is doing.
then is supposed to end an else or if. You didn't include all the code so I can't tell if the then belongs there.
The code would be easier to read if it was indented correctly.

The idea behind this is simple - if it is known that checksum will be wrong, why load the routine and then end it with "clear", like iMic did in his original mod? Maybe it's better not to load it at all?
clear just empties the stack. The original code has an abort here which would also clear the stack. The change to clear removes the abort so it ignores the checksum error.

I suppose if you don't care about the checksum then you don't need to calculate it - assuming the adler32 method doesn't do anything other than calculate a checksum.

The original code in my Mac OS ROM file looks like this:
Code: [Select]
decimal
1 load-base load-size 14 - adler32
load-base load-size + 12 - 12 ['] eval catch if
2drop ." , bad checksum value" -1
then
<> if
." , checksum error"
abort
then
hex

Removing the checksum check would make it look like this:
Code: [Select]
hex

Offline ssp3

  • Platinum Member
  • *****
  • Posts: 710
Re: Modified ROM Updates (Generic & iBook)
« Reply #16 on: April 30, 2023, 10:59:27 AM »
Thank you!
In my previous post, on the right is a unmodified 10.2.1 Mac OS ROM file. I suppose you have the same one.

I have an unmodified MAC OS ROM file where the last 14 bytes are:
Code: [Select]
\ h# 198BF23F

Same here.

Quote
I suppose if you don't care about the checksum then you don't need to calculate it - assuming the adler32 method doesn't do anything other than calculate a checksum.

I don't know. What else could adler32 be calculating? It's a ROM, not some form of copy protection  ;)

Removing the checksum check would make it look like this:
Code: [Select]
hex

So, if I understood it correctly, everythig from "decimal" to "then" can go, leaving only "hex" in place, right? I am willing to try it out.

Also, as an alternative, can't the checksum be calculated anew after modifications and put into the last 14 bytes in the file?
If you're not part of the solution, you're part of the problem.

Offline robespierre

  • Veteran Member
  • ****
  • Posts: 123
  • malfrat des logiciels
Re: Modified ROM Updates (Generic & iBook)
« Reply #17 on: April 30, 2023, 11:03:53 AM »
"then" is paired with a preceding "if", and you can't simply omit one and leave the other without breaking the code.

The best manual for OpenFirmware is hosted by Oracle, if you want to truly master the language:
https://docs.oracle.com/cd/E19620-01/805-4436/6j4719cc1/index.html#6j4719cd6

Note that your diff is full of "&lt;&gt;" and so on, which are not valid OpenFirmware. Those are HTML entities to escape the less-than and greater-than characters which cannot be typed literally in web pages.

Offline joevt

  • Enthusiast Member
  • ***
  • Posts: 65
  • New Member
Re: Modified ROM Updates (Generic & iBook)
« Reply #18 on: April 30, 2023, 11:35:57 AM »
Note that your diff is full of "&lt;&gt;" and so on, which are not valid OpenFirmware. Those are HTML entities to escape the less-than and greater-than characters which cannot be typed literally in web pages.
The Mac OS ROM file begins with some stuff that looks like XML or HTML and the Open Firmware code is contained within that, so < and > are replaced with &lt; and &gt; It's part of the CHRP spec I guess. I didn't research that. That's just what's in the file. I replaced them in my code examples to make them easier to read but they need to be there in the Mac OS ROM file.

So, if I understood it correctly, everythig from "decimal" to "then" can go, leaving only "hex" in place, right? I am willing to try it out.
I think so. The adler32 call is removed. The checksum get catch if then is removed. The checksum compare if then is removed.

Also, as an alternative, can't the checksum be calculated anew after modifications and put into the last 14 bytes in the file?
Sure. You can load the Mac OS ROM file manually into Open Firmware and do the adler32. First you need to load the file. There's some notes at https://forums.macrumors.com/threads/question-how-powerful-of-a-graphics-card-will-work-in-a-beige-power-macintosh-g3.2303689/
Search for "Loading Files in Open Firmware"
When you load a file, it may report the adler32. Ignore that since it is calculate for the entire file instead of what we want which is the entire file minus 14 bytes:
Code: [Select]
1 load-base load-size 14 - adler32 8 u.r
Then paste the result at the end of the Mac OS ROM file.

Offline ssp3

  • Platinum Member
  • *****
  • Posts: 710
Re: Modified ROM Updates (Generic & iBook)
« Reply #19 on: April 30, 2023, 11:41:07 AM »
"then" is paired with a preceding "if", and you can't simply omit one and leave the other without breaking the code.

That's why I asked in the first place. I find it difficult to locate the pairs of those in ROM file in question.

Quote
Note that your diff is full of "&lt;&gt;" and so on, which are not valid OpenFirmware. Those are HTML entities to escape the less-than and greater-than characters which cannot be typed literally in web pages.

Swine tool!  ;D
If you're not part of the solution, you're part of the problem.