mihaip / infinite-mac

A classic Mac loaded with everything you'd want
https://infinitemac.org
Apache License 2.0
1.17k stars 70 forks source link

Add support for uploading a disk image before launching emulator #265

Closed ghost closed 9 months ago

ghost commented 9 months ago

So I am trying to test the DingusPPC emulator(s) and the disk chunk load errors are becoming a problem as the emulator craps out when it should not. Unfortunately, since the HDD emulation is not finished, I can't use one of the pre made Mac OS disks. I have to boot from floppy or CD. To me it seems like it would be useful to be able to upload an image and then boot from that image, so there would be no disk chunk load errors getting in the way of booting. I also think it would be useful to boot up the emulator(s) with no disk images attached, for testing reasons (dragging in an image to boot from)

that-ben commented 9 months ago

@lg0735 You can feed an invalid disk image to boot from (e.g. System 1.0 paired with PM G3 (Beige) for DingusPPC) which will essentially boot it without a boot disk: https://infinitemac.org/1984/System%201.0?infinite_hd=false&saved_hd=false&machine=Power+Macintosh+G3+%28Beige%29

@mihaip Could we have http://localhost added to the list of whitelisted domain names to attach disk images? This would enable us to use our local disk image files to boot the emulator from (OP's issue would be solved easily with this). Or even better: Allow the user to select a local disk image file to boot from in the "Custom Configuration" window before launching the emulator.

Screenshot 2023-12-15 at 4 42 03 PM
mihaip commented 9 months ago

This is now implemented: when running a custom instance there is a "Disk File…" option when choosing a disk. .iso files will be mounted a CD-ROMs, which is necessary for DingusPPC to be able to actually load the 7.1.2 startup image.

@that-ben: loading of files via URL is handled by the Cloudflare Worker, so unfortunately the localhost option won't work -- the worker can't see your local web server.