VOGONS


DingusPPC - Mac Emulator In Progress

Topic actions

Reply 20 of 34, by kataetheweirdo

User metadata
Rank Newbie
Rank
Newbie

For the most part, we've been working on the emulator independently of MAME.

I have looked into the MAME code myself, but haven't really used anything. That said, Richard did correct us on some Ethernet stuff recently and a patch is in the works.

Reply 21 of 34, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

I have been poking at a build from your latest trunk, and cannot see how to pass what the boot and or, storage devices are to the emulator.

I have it trying to boot, and giving a ? disk icon, indicating that the G3 rom is successfully being executed, but that it cannot find the boot device.

Does this thing accept .HFV files, .ISO files, or does it need raw block devices passed? If so, how?

Edit:

I dug inside the actual main .cpp file, and kinda-sorta understand how to pass info.

First, you must specify the machine ID for the ROM you are using, then pass the appropriate value to the emulator afterward with double-dashes.

Valid inputs for, eg, the G3 Beige, are:

--fdd_img=<somepath/somefile>
--cdr_img=<somepath/somefile>
--cdr_img2=<somepath/somefile>
--hdd_img=<somepath/somefile>
--hdd_img2=<somepath/somefile>
--rambank1_size=<somesize in mbyte>
--rambank2_size=<somesize in mbyte>
--rambank3_size=<somesize in mbyte>
--rambank4_size=<somesize in mbyte>
--gfxmem_size=<somesize in mbyte>
--serial_backend=<somepath/somedevice>

So, a G3 beige using a real CDROM drive, and a real disk device under linux, with 1gb of RAM (as 4 256mb sticks), 4mb ATI video, and a USB serial cable as the serial device, would look like this:

dingusppc -m pmg3dt --fdd_img=./fdd.hfv --cdr_img=/dev/sr0 --hdd_img=/dev/sdb --rambank1_size=256 --rambank2_size=256 --rambank3_size=256 --rambank4_size=256 --gfxmem_size=4 --serial_backend=/dev/USBTTY0

(assuming you have set up appropriate permissions to talk to real block devices first! 😜)

Reply 22 of 34, by kataetheweirdo

User metadata
Rank Newbie
Rank
Newbie

The emulator does have some automatic checking though and displays which ROM is being loaded based on an internal boot string (there are plans to change this to checksums though).

Do be warned though, the Power Mac G3 Beige only can handle up to 768 MB of RAM. There's no patching for anything within the ROM, so the limitations are pretty similar to an actual Mac. There's still a fair amount left to implement before it's complete too.

Reply 23 of 34, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

Loving the progress with the emulator!

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.
READ: Right to Repair sucks and is illegal!

Reply 24 of 34, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

Maybe I am missing something, but I can't get hard drive images to actually show anything in the emulated mac.

I get that much is not fully implemented yet; the Beige G3 os8.1 disk for instance, hangs on boot, and disktools disk misbehaves a bit on boot, but does start.

Is there some special requirement for hard disk images?

--edit

Nevermind, I figured it out. You need to use the patched hard disk setup utility to initialize the simulated disk drive, because it lacks apples blessed firmware that the stock tool looks for.

Reply 25 of 34, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

Small update a few weeks later.

The OP has continued working on this emulator. It now is able to successfully boot 8.1 (with the networking, appleshare, and ATI accelerator extensions disabled... I haven't fully worked out which of these breaks boot just yet), from a physical USB stick (presented as IDE 0:0)

OS81_USB_Boots.png
Filename
OS81_USB_Boots.png
File size
140.69 KiB
Views
3987 views
File license
CC-BY-4.0

(With the accelerator extensions off, it can only do 256 color mode though. Display goes crazy when setting it to thousands. Graphical glitches in some windows, like the About This Mac window shown.)

The issue with the mouse not tracking in time with the system mouse is kinda off-putting though...

Reply 30 of 34, by lolo799

User metadata
Rank Oldbie
Rank
Oldbie

I couldn't get the emulatorto start with pm4400 as a model, is it supposed to be working already?

The 8500 worked in MacOS 8, atleast the install cd booted fine, trying to initialize a blank hfs hdd image failed.

And curiosity got the better of me, I didn't expect it to work so no surprise, it hanged there

dingus-8500.png
Filename
dingus-8500.png
File size
21.62 KiB
Views
2144 views
File license
Public domain

PCMCIA Sound, Storage & Graphics

Reply 31 of 34, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

You need to use apple's HDSetup tool (hacked to support non-apple disks) to initialize the blank HDD, as it is emulating an IDE (or SCSI) device.

It needs to have an appropriate apple partition table, and apple disk driver installed at the start of the image, just like it was a physical disk drive. I had a similar hurdle with setup months ago when I tried it out.

Reply 32 of 34, by roytam1

User metadata
Rank Newbie
Rank
Newbie
kataetheweirdo wrote on 2024-07-24, 01:17:

Shouldn't be too hard, if a bit cumbersome. I've used Visual Studio 2022 and installed Clang and CMake on top of it. We've had people compile it on MSYS2 to varying levels of success.

I have a Win7 SP1 x64 host for this, I wonder if it is buildable on it.

Reply 33 of 34, by kataetheweirdo

User metadata
Rank Newbie
Rank
Newbie
lolo799 wrote on 2024-07-25, 16:33:

I couldn't get the emulatorto start with pm4400 as a model, is it supposed to be working already?

Surprisingly, pm4400 isn't among the models supported yet. The ROM is recognized, but no machines are attached to it. Not too big of a deal, but I'll keep this in mind for later. As for BeOS, that's another thing the SCSI refactor will hopefully address.

roytam1 wrote on 2024-07-26, 07:03:

I have a Win7 SP1 x64 host for this, I wonder if it is buildable on it.

I actually began development on a Win7 computer. You might be able to build it, but I'm not sure if VS2022 17.6 LTSC can still compile it. Your best bet otherwise is to use a different compiler set-up.

Reply 34 of 34, by roytam1

User metadata
Rank Newbie
Rank
Newbie
kataetheweirdo wrote on 2024-07-31, 03:23:
Surprisingly, pm4400 isn't among the models supported yet. The ROM is recognized, but no machines are attached to it. Not too bi […]
Show full quote
lolo799 wrote on 2024-07-25, 16:33:

I couldn't get the emulatorto start with pm4400 as a model, is it supposed to be working already?

Surprisingly, pm4400 isn't among the models supported yet. The ROM is recognized, but no machines are attached to it. Not too big of a deal, but I'll keep this in mind for later. As for BeOS, that's another thing the SCSI refactor will hopefully address.

roytam1 wrote on 2024-07-26, 07:03:

I have a Win7 SP1 x64 host for this, I wonder if it is buildable on it.

I actually began development on a Win7 computer. You might be able to build it, but I'm not sure if VS2022 17.6 LTSC can still compile it. Your best bet otherwise is to use a different compiler set-up.

hmm, I got it working, and my cl /? shows 19.29.30154