VOGONS


DingusPPC - Mac Emulator In Progress

Topic actions

Reply 20 of 32, 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 32, 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 32, 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 32, 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 32, 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 32, 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)

The attachment OS81_USB_Boots.png is no longer available

(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 26 of 32, by sndwv

User metadata
Rank Member
Rank
Member

Is or will this emulator be able to run games SheepShaver has issues with, like X-Wing CD-ROM, or is that still far away?

Reply 27 of 32, by kataetheweirdo

User metadata
Rank Newbie
Rank
Newbie

We'll want to implement CUE/BIN support first for CD-ROM based titles. Right now, it only recognizes raw-formatted disk images. That's part of a project to add Pippin support.

Reply 28 of 32, by roytam1

User metadata
Rank Newbie
Rank
Newbie

I wonder how to build it in windows?

Reply 29 of 32, by kataetheweirdo

User metadata
Rank Newbie
Rank
Newbie

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.

Reply 30 of 32, 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

The attachment dingus-8500.png is no longer available

PCMCIA Sound, Storage & Graphics

Reply 31 of 32, 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 32, 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.