AROS for Mac

I’m hoping to make some progress this weekend on my AROS (AmigaOS) clone for QEMU’s Mac Quadra 800, which apparently runs too quickly to boot a normal Mac Toolbox ROM? I mean, that’s my theory because I don’t care to run 68k MacOS, but it would be a testament to Apple’s poor software quality control if their boot ROM had a timing loop that stopped it from working on a fast JIT emulation of a 68040.

I haven’t disassembled Apple’s Quadra 800 ROM, because, again, I don’t care, but based on the PC and other registers where it’s getting stuck, it seems to be fairly early, like probing for I/O cards or testing the RAM or something where timing could matter.

Anyway, I have a dozen small .c files that I need to convert from the Amiga’s two CIA chips to the Mac’s two VIA chips and also get debug serial working and I think I can use color palette register 0 as another debug signal in the way AROS and AmigaOS do on an Amiga.

I just need to get some early boot log output to motivate me to do the real “fun” work of a SCSI driver for a controller that can normally do DMA transfers, but not the way Apple wired it up, so instead you have to use what’s called “pseudo-DMA”, which is DMA mode but then the CPU has to copy the data in a loop, like a non-DMA transfer, which would apparently be slightly slower?

I know I can get on Hackaday for that, but it’s just my warmup practice. Once I write all those fun drivers for Apple’s silly ancient hardware to do my “m68k-mac” port, I want to port AROS to a new retro machine that’s much cooler than the original Amiga line but in the same spirit, and has FPGA custom chips that are just brilliantly well thought-out, the Foenix A2560-040V.

I’m curious what % of Amiga games actually need the custom chips, out of the games that don’t turn off the OS completely and go straight to the hardware, and what % I could get working with minimal effort by emulating things like color palette and audio registers with the MMU (the M68040V has no FPU, but it does, thankfully, include an MMU).

And even for the games that do a lot of low-level tricks, I have the source to some, like Agony, that could easily be ported to the A2560-040V, but not to the Mac Quadra, so is there a way to abstract that? From what I can see right now, if I wanted to port a game like Yves Grolet’s Agony to the A2560-040V, as a challenge, which is really tightly tied to the Amiga’s dual playfield and hardware sprites, do I try to port it to run on top of Tilengine and then do an optimized port of Tilengine for A2560-040V, or try to port it to write directly to the video chipset in the FPGA?

I like the idea of trying to port Tilengine, but trying to port Agony (written in m68k assembly) to a different m68k system is definitely an extra credit challenge rather than a sensible one.



, ,




Leave a Reply

Your email address will not be published. Required fields are marked *