Author Topic: Any one want to help build a community made OS 9.3?  (Read 149964 times)

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Any one want to help build a community made OS 9.3?
« Reply #80 on: December 17, 2015, 07:29:07 AM »
Closing thought.  Wouldn't it be a good idea to have a central thread, like a pinned topic where the several ongoing threads are located regarding getting os 9 going on later machines?  It's kind of spread out and I for one am a bit confused by all the different topics being scattered across multiple forum entries.  For example, there is one about the 1.5gb ram limit, but that is its own thread, and then there are several about about improving 9.2 as well as some relevant discussion in emulation topics.
Maybe I'm the only one losing track of all the intersecting discussions that all converge on this topic?

I agree this would be useful. I've tried to put them where they are relevant, but I'm not always sure either.

Maybe a child board would be better as having a single thread with multiple topics get's kind of confusing too.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline Protools5LEGuy

  • Global Moderator
  • Platinum Member
  • *****
  • Posts: 2749
Re: Any one want to help build a community made OS 9.3?
« Reply #81 on: December 17, 2015, 09:42:03 AM »
My reply on MacRumors:
Quote
Nanopico has said those will be third party patches to the system. You could consider addons to original 9.2.2 OS.

Quote
    First and foremost there is the OS9 EULA. Then you're talking distribution of a copyrighted OS (I would assume this project is so not just the devs would be using it and that it would be provided free).

The MacOS9Lives! page has been the best mirror for latest 9.2.2 OS for years without a single call from Apple. They are more worried about iPhones and iPads than on Obsolete hardware/software as all Macrumors PowerPC members know. They simply do not care a shit about MacOS9. They also do not care much about OSX PPC.

We have regular access to Apple Developer Conference (ADC) thru Internet Archive. It is more or less open. At least MacOS7 to 9 and most of MacOSX. No one has to be agree with the EULA to reach those documents.

Some topics we are sorting out:
The 2040 issue. http://macos9lives.com/smforum/index.php?topic=2862.0
Mac OS 9 Development Requests (Application and Non-OS Level) http://macos9lives.com/smforum/index.php?topic=2838.0
Mac OS 9 Development Requests (OS Level Items) http://macos9lives.com/smforum/index.php?topic=2837.0
H264 codec, the "video game" is over in Mac Os 9. http://macos9lives.com/smforum/index.php?topic=2403.0
MacOS 8&9 Devices doc. for drivers develop http://macos9lives.com/smforum/index.php?topic=1931.0
Mac OS 9.2.2 Maximum RAM and Real world observations http://macos9lives.com/smforum/index.php?topic=2101.0
That post derived on
1.5GB Limit (some answers) http://macos9lives.com/smforum/index.php?topic=2860.0

Closing thought.  Wouldn't it be a good idea to have a central thread, like a pinned topic where the several ongoing threads are located regarding getting os 9 going on later machines?  It's kind of spread out and I for one am a bit confused by all the different topics being scattered across multiple forum entries.  For example, there is one about the 1.5gb ram limit, but that is its own thread, and then there are several about about improving 9.2 as well as some relevant discussion in emulation topics.
Maybe I'm the only one losing track of all the intersecting discussions that all converge on this topic?

I agree this would be useful. I've tried to put them where they are relevant, but I'm not always sure either.

Maybe a child board would be better as having a single thread with multiple topics get's kind of confusing too.

Nanopico, this is your mother post. I think I have quoted every child post. Ask DieHard if he wants to make a child board for all those post on improving 9.2.2, But the H264 is in Codec childboard, others are on OS9 on unsupported hardware, etc. We are open to make changes if it is needed. Now this post is sticky for to be easy to find to everyone.

I guess, in the end, this Any one want to help build a community made OS 9.3? post will be 3 times longer than Downgrade firmware of FW800 for OS9 comp. post, will have more of us understanding how OS9 works, some more help will come and we will achieve some things.

Thanks nanopico for your valuable time!
Looking for MacOS 9.2.4

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Any one want to help build a community made OS 9.3?
« Reply #82 on: December 17, 2015, 11:08:01 AM »
Just an FYI,  with the holidays here I won't be doing much if any work with this for the next couple of weeks (in case any one comes looking for an update, don't expect one). But come January I will be going head first into this.  Hopefully I can get something at least interesting accomplished in the not too distant future.

As for the legal side of it (and trust me I'm no lawyer here), there is a part of me that just wan't to go straight to apple and ask for their blessing on this, but that may or may not be a good idea.  Probably won't happen, but it might amuse me for a few days after they say "nope, not going to happen"
If it ain't broke, don't fix it, or break it so you can fix it!

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Any one want to help build a community made OS 9.3?
« Reply #83 on: January 04, 2016, 08:00:55 AM »
So the polls for development updates are now closed.
If you want to see where they ended here's two convenient links for you to look at.

http://macos9lives.com/smforum/index.php?topic=2891.0
http://macos9lives.com/smforum/index.php?topic=2890.0

Thanks to those of you who voted.  This feedback is invaluable and really helps me establish the direction to go.

I'm currently trying to figure out the actual effort (how much time I still need to invest in research, design and coding) for the items.
Based on the votes and the effort I'll provide the things I will actually be tackling and in what order.

I've been reading all of Inside Macintosh (there is a lot of pages there) and I have to say the amount of API's documented in there, it would be possible for someone to re implement the entire system new (though that would be a massive effort with little return), but there is general documentation on how things like have been suggested would be implemented and enough documentation in of the individual areas to find the areas needing patching. 

More to come in 2016!!!!
If it ain't broke, don't fix it, or break it so you can fix it!

Offline mrhappy

  • Platinum Member
  • *****
  • Posts: 1152
  • new to the forums
Re: Any one want to help build a community made OS 9.3?
« Reply #84 on: January 04, 2016, 12:36:59 PM »

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Any one want to help build a community made OS 9.3?
« Reply #85 on: January 05, 2016, 11:41:02 AM »
I reached out to this guy to collaborate.  We'll see what happens.

last post on his site is from 2008. :)
insert arbitrary signature here

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Any one want to help build a community made OS 9.3?
« Reply #86 on: January 05, 2016, 12:05:56 PM »
I reached out to this guy to collaborate.  We'll see what happens.

last post on his site is from 2008. :)
Yeah I saw that too so I wasn't really holding out too much hope, but hey nothing gained if you don't try.  The only failures come from those who don't even try. (Or maybe that's just my opinion)
If it ain't broke, don't fix it, or break it so you can fix it!

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Any one want to help build a community made OS 9.3?
« Reply #87 on: January 11, 2016, 11:36:58 AM »
Small tiny update. (I'm a bit busy right now so I haven't gotten a timeline of dev projects to update OS 9 yet).

Two notes.
One.
MacsBug loads early in the boot process (nothing new there), but looking through apple docs,  it loads in the upper part of RAM outside of that controlled by the process/memory managers.  This means that it is running in ram outside of the 1.5 GB limit! A normal program can't load up there and run correctly, but at least the OS is capable of addressing that memory and transferring control to something up there.

Two.
My assumptions on the boot process ( think I've listed them here before) are no longer assumptions/theories.  I found Apple documentation on the early boot process from open firmware to handing off to the nanokernel in the rom.
In case you don't feel like looking for my rambles from before, here is an overview of the boot process copied straight from Apple docs.

Quote
  • User presses power key. Between the time that the power key is pressed and the boot beep is heard, while the screen is still black, a ROM checksum is taken, the processor is checked, the interrupt controller is started, all the clocks are determined, the memory controller is initialized, NVRAM is checked, RAM is sized checked and initialized, and the L2 cache is sized and prepared (L2 cache is enabled in POST).
  • The POST code runs (preliminary diagnostics, boot beep, initialization, and setup). This is like similar code in an older Macintosh ROM, but it is different in that it does not contain code specific to an operating system.
  • Open Firmware initializes begins probing the hardware and the PCI bus to locate attached interfaces and hardware so that is can begin building the device tree.
  • Open Firmware loads the Mac OS ROM image file, based on defaults and the path settings found in NVRAM.
  • Open Firmware executes the Forth script in the bootinfo file, which contains information about the rest of the file and instructions to read both the Trampoline code and the Mac OS ROM file and place them into a temporary place in memory.
  • The Forth script transfers control to the Trampoline code, which functions as the transition between Open Firmware and the beginning of the Mac OS execution.
  • The Trampoline code gathers information about the system from Open Firmware, creates data structures based on this information, terminates Open Firmware, and moves the contents of memory to an interim location in physical memory space.
  • The Trampoline code transfers control to the Mac OS ROM initialization code.
A little more detail from the same set of documents
Quote
Here is a high-level view of the execution path taken when a NewWorld-based computer starts up.
  • The POST code runs (preliminary diagnostics, boot beep, initialization, and setup), with possible intervention in the mini nub, a small debugging tool.
  • Open Firmware initializes and begins execution, including building the device tree and the interrupt trees.
  • Open Firmware loads the Mac OS ROM file, based on defaults and NVRAM settings.
  • Open Firmware executes the Forth script in the Mac OS ROM file, which contains instructions to read both the Trampoline code and the compressed Mac OS ROM image and place them into a temporary place in memory.
  • The Forth script transfers control to the Trampoline code, which functions as the transition between Open Firmware and the beginning of the Mac OS execution.
  • The Trampoline code decompresses the Mac OS ROM image, gathers information about the system from Open Firmware, creates data structures based on this information, terminates Open Firmware, and rearranges the contents of memory to an interim location in physical memory space.
  • The Trampoline code transfers control to the HardwareInit routine in the Mac OS ROM bootinfo file.
  • The HardwareInit routine copies data structures to their correct places in memory, and then calls the NanoKernel.
  • The NanoKernel fills in its data structures and then calls the 68K emulator.
  • The 68K emulator initializes itself, then transfers control to the startup initialization code.
  • The startup initialization code begins execution, initializing data structures and managers, and booting the Mac OS.
« Last Edit: January 11, 2016, 11:53:04 AM by nanopico »
If it ain't broke, don't fix it, or break it so you can fix it!

Offline mrhappy

  • Platinum Member
  • *****
  • Posts: 1152
  • new to the forums
Re: Any one want to help build a community made OS 9.3?
« Reply #88 on: January 12, 2016, 01:34:14 AM »
Very interesting!!

Offline Jakl

  • Gold Member
  • *****
  • Posts: 323
Re: Any one want to help build a community made OS 9.3?
« Reply #89 on: January 12, 2016, 04:06:48 AM »
Sure is interesting!!

Offline Mat

  • Platinum Member
  • *****
  • Posts: 644
Re: Any one want to help build a community made OS 9.3?
« Reply #90 on: January 12, 2016, 04:11:43 AM »
Hey nanopico, please keep up that good work! It is a joy to see you getting deeper and deeper into Mac OS 9! I hope you will find enough time this year to get some improvements up and running.
The entire posting about the boot process is very interresting.

This means that it is running in ram outside of the 1.5 GB limit! A normal program can't load up there and run correctly, but at least the OS is capable of addressing that memory and transferring control to something up there.
But that information is the most motivating one. I always hoped that making the additional memory (at least up to 2GB) available to the system itselve, at least as RAM- and Scratchdisk, more easily than for the programs. That would speed up several programs a lot.

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Any one want to help build a community made OS 9.3?
« Reply #91 on: January 12, 2016, 11:24:15 AM »
Here's the update I promised earlier regarding what my specific goals on developments will be.
(here comes the broken record part where I regurgitate what I sort of said earlier)
The polls I posted were great for letting me know what people want and the results of that were factored into this.
My goals of what prompted me to start down this also weighed in.
The last factor was what I felt would be of benefit in a general sense.
So here they are with a little explanation with each.  They are listed in order that I will tackle them.

  • Support for G4 cpu's not currently supported (not machines but the actual G4 chip) without open firmware hacks. This can be added to the current work done to get unsupported machines working so that booting the entire G4 line will be easier.
  • Ram usage limits (the 1.5 GB ram limit).  Unlock the potential to utilize the most ram we can.  When implementing this I will attempt to just enable usage of all ram that is not used by the system. I will not put a limit to 2GB as if we ever get support for the G5's we will be able to use almost all of the 4GB the 32bit address space allows.
  • Right drivers/Enablers/Extensions to get all yet unsupported G4 machines running (including the mac mini/xserve). As part of this a few other items will come a long with it as I would like for all features of each machine to work.
    • Video card drivers.  As there are chips in the yet unsupported G4's then  updated video card drivers would be needed.  This part is the most likely to not succeed as there isn't any good source/documentation of the ISA's of the various cards.  Most cards should work without drivers, but won't have hardware acceleration.
    • USB 2.0 Support.  As there are G4's with USB2 ports this is a good place to also tackle USB2.  Initially I will attempt to get the built in chips working. Once that is done we can start testing third party cards and investigating them. Also of note is that any non-class compliant USB 2 devices will not have drivers and will more than likely not work at all.
    • USB Class Compliant Drivers.  Although Apple has some level of support for class complient devices, there will need to be some added, and some updated for USB 2. So this goes hand in hand with that.
    • FW800 Support. This will come with the G4 support as like USB2 there are G4 machines that have these ports.
  • 2040 Bug.  I had previously said I would attempt this one.  That is still the goal, but I have pushed it down on the priorities.  Changing the epoch would not be difficult, but file created on and modified dates would not be correct for files touched before the update was applied.  This could be an issue for several things (including sharing files and version tracking of files).  The other option I had was keeping track of when the value overflows, but again that would require changes possible to third party applications as well that are not aware of this and don't use the OS date/time functions. Still on the list though.
  • G5 Machine support.  The very early G5 revisions are the most likely to work (as they had PCI busses making less work to get up and going).  There are three hurdles to get the OS to even start booting.
    • U3 Drivers.  The drivers in Darwin are a good base and I have a pretty good idea where they need to be activated in the boot process.
    • AGP 8x support shouldn't require much work (because it's part of the U3 north bridge) as it's mostly just a faster version of AGP 4x.  They are both based on PCI and the north bridge pretty much just gives that bus a higher more dedicated priority.  Still there would likely need to be some changes made to make it work enough to boot. (The changes most likely will be part of the U3 Drivers).
    • The MMU.  I'm still trying to digest the full spec of the MMU in a 64bit PPC cpu.  From what I understand currently is that although the 64bit cpu is backwards compatible to 32bit ones, the MMU instructions are an exception. The MMU in 32bit cpus is a 32bit physical address, a 52bit translation register (you can't access that though) and 32bit virtual address space (this is what applications utilize).  The os sets up the mapping between virtual and phsyical address spaces (in the case of OS 9 there isn't any translation it's just a straight through mapping).  The G5 is 64bit straight through so all memory management functions of the 32bit os need to be updated to accomadate the 64bit addressing (this is why 32bit OS X on the G5 is able to access more than 4GB of ram with out PAE)

I didn't put this on the list as I don't know exactly where it would fit with in the order of other items, but I will be trying to write an H264 codec. I will be working on this early on, but I'm really not sure when this would be done.

To avoid as much legal issue as possible I am going to try to refrain from reverse engineering as much as I can.  I will be relying heavily on official Apple documentation and Darwin source code (as a basis to determine how to control various chips and the order to initialize them).

So timing.  I hope to have something to show/test for item one around April/May.  I know this is a ways out, but I have a full time job as a developer that some times requires upwards of 80 hours a week (though pretty rare for that) and I have a family. 

This list may change over time as I dig deeper into this and re-assess the feasibility/effort required for these items.

Finally just to reiterate what I have said before, I make no promises that I will accomplish any of this (as I am only one person) and any help testing or developing any one can provide is greatly appreciated.  A big thanks should go out to those who helped get the machines run that were previously unsupported, their work was a big inspiration for me to even consider this sort of project.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline DieHard

  • Global Moderator
  • Platinum Member
  • *****
  • Posts: 2366
Re: Any one want to help build a community made OS 9.3?
« Reply #92 on: January 12, 2016, 12:40:15 PM »
I am sure many will consider even 1 item finished on the list an amazing feat. 

We can provide coffee and donuts (and maybe some movie tickets to get the kids/wife out of your hair) while you work on this important task.  Thanks, as always :)

Offline MacTron

  • Global Moderator
  • Platinum Member
  • *****
  • Posts: 2116
  • keep it simple
Re: Any one want to help build a community made OS 9.3?
« Reply #93 on: January 12, 2016, 01:13:09 PM »
This is in definitive a great project. !!!
I wish to said that I have a little background in Mac Os Pascal and C programing and I had compiled a few Linux programs. My knowledge in this area is small, but enough to know that exceed my capacities. :)
I'm only saying this, to avoid you to feel alone, may be at some point I can help a bit into testing and debugging some code ...
At some time in the past, I even worked in a few assembler hacks, may be it's time to re engage this task :) and let aside my "unwanted music" LOL
Please don't PM about things that are not private.

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Any one want to help build a community made OS 9.3?
« Reply #94 on: January 12, 2016, 01:32:40 PM »
I am sure many will consider even 1 item finished on the list an amazing feat. 

We can provide coffee and donuts (and maybe some movie tickets to get the kids/wife out of your hair) while you work on this important task.  Thanks, as always :)

The kid/wife get out of the house often enough and they both go to bed before I do so I still get some time (work is usually the bigger problem).

This is in definitive a great project. !!!
I wish to said that I have a little background in Mac Os Pascal and C programing and I had compiled a few Linux programs. My knowledge in this area is small, but enough to know that exceed my capacities. :)
I'm only saying this, to avoid you to feel alone, may be at some point I can help a bit into testing and debugging some code ...
At some time in the past, I even worked in a few assembler hacks, may be it's time to re engage this task :) and let aside my "unwanted music" LOL
If you are somewhat familiar with MacsBug and know c you can be a big asset in just figuring out various registers and instruction for hardware (such as video cards).
If it ain't broke, don't fix it, or break it so you can fix it!

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Any one want to help build a community made OS 9.3?
« Reply #95 on: January 14, 2016, 02:25:28 AM »
There is no problem in getting Mac Os 9 hardware at all. Have a look at the 68k Macs. There is no problem to get 68k Macs as well, and those are 20 years old now.

these things mainly depend on ones location and social connections.

a quick search on ebay germany gives you 220 results for "mac pro", 15,000 results for "apple g4", and 0 for "apple 68k".

but if you live in indeonesia and dont want to (or ant) buy from internet offers the situation looks different.
insert arbitrary signature here

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Any one want to help build a community made OS 9.3?
« Reply #96 on: January 14, 2016, 07:18:42 AM »
I need some help from users out there.
To get things off the ground and running there are some hardware details I need.
As I don't have hardware for all the unsupported machines I ask any one out there who does have these machines to gather some details for me.
If you have an unsupported g4 then you have a machine I need details of.  What I'm currently looking for are CPU version numbers (PVR). I realize there are some lists out there, but they list all known cpu's and not exactly what machines they are in. (of course if you know a good location for that info, that would be great too.)

The info I need is out of Open firmware.  This should be unaltered details from open firmware.
I will post more detailed instruction on how to get this information if you are not familiar enough with open firmware to get this, when I am at home, but if you know how to get it then awesome.

So here's the exact details I need.
  • The model as identified in open firmware.
  • If the machine boots using one of the unsupported methods/images then how and what you do to boot it. (do you have to do any open firmware hacks, does one of the unsupported images here just boot).
  • If the machine will not boot with one of the unsupported methods then note what happens (generally this will be it starts and just hangs on a gray screen which at this point is directly related to cpu version).
  • the version identifier of the cpu. This will be a longer number not the 7447/7445/7447A that we are used to identifying them by.  The PVR is manufacturer specific and there can be multiple revisions of the same cpu so it is possible that there could be multiple PVR's for a 7447 (though I haven't seen that done)

If you want to get the PVR for any G5's as well, I will take those (in the event I do actually get to trying to get OS 9 running on a G5).
If it ain't broke, don't fix it, or break it so you can fix it!

Offline MacTron

  • Global Moderator
  • Platinum Member
  • *****
  • Posts: 2116
  • keep it simple
Re: Any one want to help build a community made OS 9.3?
« Reply #97 on: January 14, 2016, 08:29:54 AM »
Here you have the full PVR list, G5 is not included  :'(  in case you need it:

https://github.com/tycho/pearpc/blob/master/doc/powerpc_pvr_list.txt

I have a unsupported eMac. It boot in to Mac Os 9 with the iMic ROM and the OF cpu swap trick. The big issue is the lack of video acceleration. I'll will post it's PVR as soon as I can.
Please don't PM about things that are not private.

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Any one want to help build a community made OS 9.3?
« Reply #98 on: January 14, 2016, 08:56:39 AM »
Here you have the full PVR list, G5 is not included  :'(  in case you need it:

https://github.com/tycho/pearpc/blob/master/doc/powerpc_pvr_list.txt

I have a unsupported eMac. It boot in to Mac Os 9 with the iMic ROM and the OF cpu swap trick. The big issue is the lack of video acceleration. I'll will post it's PVR as soon as I can.
I have that list thank you.  PearPC has another list that has the G5's in it that is shorter and appears to have only the models apple used.
http://pearpc.sourceforge.net/pvr.html

I'm looking to see what the pvr's are for the individual models to verify these lists and make sure any code I write accounts for any oddities.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline Mat

  • Platinum Member
  • *****
  • Posts: 644
Re: Any one want to help build a community made OS 9.3?
« Reply #99 on: January 15, 2016, 01:27:38 AM »
There is no problem in getting Mac Os 9 hardware at all. Have a look at the 68k Macs. There is no problem to get 68k Macs as well, and those are 20 years old now.

these things mainly depend on ones location and social connections.

a quick search on ebay germany gives you 220 results for "mac pro", 15,000 results for "apple g4", and 0 for "apple 68k".

but if you live in indeonesia and dont want to (or ant) buy from internet offers the situation looks different.
Sure, you are right. It is always a problem that the male, white western users have access and many many others don´t. But still, emulation is absolutely NOT the way to go in my opinion.

I see nanopicos ideas about further developements as necessary and real improvements. An emulation that would be really usable at completely new hardware is not an good idea.