Released — MacDoom for SE/30

  • Board Nominations
    Nominations have now closed and the results are available here.
  • Hey Guest, MARCHintosh 2026 is upon us. Check out community projects, join GlobalTalk, and have fun!

MacOfAllTrades

Tinkerer
Oct 5, 2022
233
248
43
Ok fixed it!! i was writing directly to the video memory buffers but when trying to do this on newer-than-se/30 macs i was writing into addresses that weren’t reliably working.. somehow they worked in 32-bit addressing (via mode32) on my emulated Mac IIcx but not on 24-bit addressing. Anyway I got it sorted out.

Posted a v1.1.0 release just now. No real improvements for SE/30 but I got 256-bit color mode working for color macs, including 68030 color macs. The MacIIcx (emulated) is within noise of FPS/performance compared to the B&W Se/30. Color comes at a negative cost (i.e. a tiny gain in performance) because you save on dithering from color->B&W. All pretty much within noise - but color makes the low quality modes I made for the SE/30 look pretty bad — Simply because with color graphics you can see what you’ve done to the graphics more. But hey pick whatever of the 4 graphics quality modes you want. (Hi, Lo, Quad, Mush).

Hey if it gets Doom working on 68030 color macs that never had it before, it’s worth it.
 

MacOfAllTrades

Tinkerer
Oct 5, 2022
233
248
43
I’ve been very curious how performance of this doom port compares to the official Lion Entertainment release from the 90s. Unfortunately those do not support 68030 macs at all (and def. not black and white macs). And I don’t know of any good 68040 emulators that can faithfully reproduce performance (in the way that Snow awesomely faithfully reproduces 68030 performance close to real-world, at least in my experiments).

So the best I could do was use Snow emulating a Mac IIcx, then use WishIWere to pretend it’s a 68040 machine (I picked a quadra 650) so that the Lion version of Doom would run and I could compare performance. Then the Lion version doesn’t let me change the quality settings as low as I can on my port so it’s impossible to compare anything but the highest of settings or two. But the game is pretty unplayable at what I’ll call these Lion “retail doom” quality settings.

Of all the quality settings and tweaks, the biggest was probably a tie between turning OFF ceiling + floor textures and, less surprising, halving or quartering the number of rows and or columns that are being drawn (effectively dropping resolution). Plain black for floors and ceilings works pretty well generally visually, except for areas of toxic slime or lava which now you have very limited awareness of.

So from my seat-of-the-pants feel, MacDoom SE/30 runs significantly better on a 68030 with similar quality settings as the Lion port does. Lion port feels like it runs below 2 fps while MacDoom SE/30 on the same machine feels like it runs at 3-4 fps. Again - the better difference is that beyond running better, you can disable floor/ceiling textures as well as go into lower quality modes so that the game runs around 6-10fps which can really make the difference between non-playable and playable.
 
Last edited:

YMK

Active Tinkerer
Nov 8, 2021
417
350
63
This is really neat, great work!

I could only get DOOM2.WAD to work. Timedemo doesn't work. I was hoping to get some performance numbers.

With timedemo and other wads, it stays at the black loading screen until I click, then the program exits.

Default graphic options
System 7.5.5
Rominator II
Bolle P33 (50MHz, L2 cache on)
Synchr030/S Rev B. (128MB fast SDRAM)

Is there some hidden FPS counter?
 
  • Like
Reactions: MacOfAllTrades

MacOfAllTrades

Tinkerer
Oct 5, 2022
233
248
43
This is really neat, great work!

I could only get DOOM2.WAD to work. Timedemo doesn't work. I was hoping to get some performance numbers.

With timedemo and other wads, it stays at the black loading screen until I click, then the program exits.

Default graphic options
System 7.5.5
Rominator II
Bolle P33 (50MHz, L2 cache on)
Synchr030/S Rev B. (128MB fast SDRAM)

Is there some hidden FPS counter?
Ah timedemo option is misleading. It is hardcoded to look for a specific timedemo .LMP file name and it needs to be on doom 1. Also the timedemo outputs wouldn’t be the traditional doom ones, they’re a deeper detailed log file that only gets produced on debug builds. Id love to have runs from folks on various hardware though. I should make that button work on release builds as well
 
  • Like
Reactions: YMK

YMK

Active Tinkerer
Nov 8, 2021
417
350
63
I see. On my hardware, I'd call it decently playable with the defaults.

What compiler do I need to build this? I might take a shot at full screen 1-bit rendering.
 

MacOfAllTrades

Tinkerer
Oct 5, 2022
233
248
43
Doom II is heavier on the machine than doom I from my testing. But 50 MHz I’d expect a heck of a lot more performance than on the stock 16MHz se/30.
If doom II works I can’t imagine doom I not working on your setup.

as for mods yes by all means. The code uses retro68 to cross compile for 68k processors. If you make a change feel free to post an MR or I welcome anyone to fork outright. All the more fun!