Vic Posted January 16, 2021 (edited) DOOM 32x Resurrection ---------------------- Latest release: v3.1 https://www.romhacking.net/hacks/6269/ https://github.com/viciious/d32xr/ Although I didn't own a 32X back in the day, I've recently become fascinated with the tech after watching a few documentaries on YT. The general impression was that had the 32X had better games released for it, it's reputation and maybe faith would have been much better. DOOM was one of the more promising titles but it was rushed to the market. The mere fact John Carmack (and American McGee, I believe) had managed to get it working and shipped in such a short timeframe is quite astonishing. Doom 32X Resurrection started when I contacted John Carmack on Twitter back in 2020, asking if he had any recollection of where the source code of the Sega 32X port of Doom might be. He believed it had been long lost. And although I never had a 32X myself, I thought it might be a fun project to reconstruct the missing source code and improve upon it. I started messing around with original Jaguar Doom sources from Songbird Productions, to see what was missing in order to get the 32X support working again and then I stumbled upon the Calico Doom project, which is a port of Jaguar Doom for modern PCs. That was a godsend since Calico Doom is practically all written in C, which is what you want when you're working on a cross-platform project. The 32X-specific bits had been all but present, but that was comparatively a much smaller problem than reverse engineering m68k assembly. So I basically merged the two things together back together and stared working on getting the hardware portion of things. Now on to the state of the project thus far: Network support via the Zero Tolerance (aka Technopop) link cable. Splitscreen coop and deathmatch modes. Rendering has been spread across both SH2 processors for better speed. The Cyberdemon and Spider Mastermind have been re-added to the game. The iconic screen melt effect for scene changes. Mip-mapping for walls and flats. Low (two pixel modes) 128×144, 128×160, 160×180 and three high detail 224×128, 256×144, 320×180 video modes. Anamorphic widescreen support for 16:9 screens. Improved visual fidelity (aka ‘high color’) mode. Kick-ass FM synth soundtrack courtesy of Spoony Bard: https://www.youtube.com/c/spoonybard13 Selecting between no music, VGM FM music, or playing music from attached Sega CD (requires Sega CD in addition to 32X). Support for 32X+ (CDDA tracks from CUE files) on the MegaSD flashcart. Sound driver that uses the Sega CD hardware to offload sound mixing from the 32X. New port of "Slough of Despair" by Wavy. Stereo panning for game sounds. Save ram support - keeps track of finished levels, health, armor, weapons and ammo - eight save slots as well as an auto-save at the end of each level. New title screen that resembles the Saturn and PlayStation versions. User input is processed at 30FPS, while game logic runs at 15FPS. Supports all Jaguar levels (when the binary is made using Jaguar Doom wad), along with sprite directions and monster in-fighting. Supports Jaguar HUD assets. Level fixes courtesy of Wavy. Spectres look the way they did in the original PC version. When made with the original Doom 32X wad, has the same limitations on levels and sprites and monster in-fighting. Three drawing modes: the regular sector based lighting (although it's better than the original Doom 32X in that sprites also use this lighting, no more 100% bright sprites!), "potato" mode which doesn't texture floors or ceilings for slightly better speed, or the original Doom fading light rendering (which is just a smidgen slower and looks a little muddy given the fifteen bit palette of the 32X). 'Always run' option. Support for three-button and six-button pads, as well as the Sega mouse. You can choose how to map the primary three buttons in the menu. Verified as working on Kega Fusion 3.64, a Model 2 Genesis + Model 2 CD + launch 32X (NTSC), Model 2 MD + 32X (PAL), a CDX + 32X, with a NeoFlash NeoMyth MD and the V1 Mega EverDrive, and also with Mega EverDrive Pro and MegaSD. To compile the ROM: Download and install Chilly Willy's 32X Devkit Dump the IWAD file "doom32x.wad" from your Doom32x cartridge. Dump from address 0xBB000 to the end of the ROM. Clone https://github.com/viciious/d32xr and run 'make -f Makefile.mars' in the project directory To compile CD sountrack follow the instructions at https://github.com/viciious/d32xr/blob/master/readme-cdda.txt License: All original code, as well as code derived from the 3DO source code, is available under the MIT license. Code taken from Jaguar DOOM is still under the original license for that release, which is unfortunately not compatible with free software licenses (if a source file does not have a license header stating otherwise, then it is covered by the Jaguar Doom source license). Credits: DOOM 32X Resurrection Programming ... Victor Luchits Joseph Fenton Music ... Spoony Bard Mapping ... Wavy Additional support ... MatteusBeus TrekkiesUnite118 Barone Calico DOOM Programming and rev engineering ... James Haley Additional code ... Samuel Villarreal Rebecca Heineman Special thanks to id Software, Songbird Productions and RetroRGB https://github.com/Arc0re/jaguardoomhttps://github.com/team-eternity/calico-doom/ https://www.retrorgb.com/ MD+ .bin/.cue files https://www.zeldix.net/t2466-doom-resurrection-32x Edited August 30, 2023 by Vic : Added proper HTML links to external resources, minor things 37 Share this post Link to post
WadArchive Posted January 17, 2021 I got a 32x and I will give it a go if I can compile it 1 Share this post Link to post
taufan99 Posted January 17, 2021 Seems like an excellent idea. Would like to see it get fleshed up further on. 1 Share this post Link to post
Death Egg Posted January 17, 2021 12 hours ago, Vic said: - Sega Mouse and Keyboard support (do those even exist?!) Sega Mouse did, and XBAND released a keyboard that was specifically for their networking service. 1 Share this post Link to post
Vic Posted January 17, 2021 1 minute ago, Death Egg said: Sega Mouse did, and XBAND released a keyboard that was specifically for their networking service. Yes but are these or modern-day alternatives easily obtainable nowadays? 1 Share this post Link to post
Death Egg Posted January 17, 2021 Just now, Vic said: Yes but are these or modern-day alternatives easily obtainable nowadays? Almost certainly not. :p Though I'd love to see them be made. 1 Share this post Link to post
Roebloz Posted January 17, 2021 Hmmm. I feel like we might want to cooperate. I've been making Doom 32x: Delta, which is all about bringing the PC maps and textures back to the 32x. If you managed to improve the code then we could probably have made Doom 32x the Ultimate Console Doom port. 4 Share this post Link to post
Alter Posted January 17, 2021 55 minutes ago, Roebloz said: Hmmm. I feel like we might want to cooperate. I've been making Doom 32x: Delta, which is all about bringing the PC maps and textures back to the 32x. If you managed to improve the code then we could probably have made Doom 32x the Ultimate Console Doom port. I feel like adding support for map numbers and being able to customize your level order will be key :P tl;dr MAPINFO for the 32x version. 1 Share this post Link to post
Roebloz Posted January 17, 2021 53 minutes ago, Alter said: I feel like adding support for map numbers and being able to customize your level order will be key :P tl;dr MAPINFO for the 32x version. Actually, we ( @TheLesha and I) have already managed to customize the level order. 3 Share this post Link to post
Vic Posted January 17, 2021 (edited) I've added support for DMAPINFO lump in my local branch but the test wad I made in SLADE wouldn't load. If you PM me your test files, I can flesh it out from there. The engine expects the lump to be in the following format: map "lump1" { next = "lump2" } map "lump2" { next = "lump3" } All other keys are ignored. Edited January 17, 2021 by Vic 2 Share this post Link to post
Vic Posted January 19, 2021 (edited) OK, committed DMAPINFO with support for next, secretnext and sky options. 4 Share this post Link to post
Vic Posted January 20, 2021 Got 32x: Delta levels to run today. But I'm having issues with level 11 and up: the switch does nothing and the game crashes after a few flips. 7 Share this post Link to post
Vic Posted January 22, 2021 (edited) Ok, I've setup Github actions to produce ROM on each git push, for instance: https://github.com/viciious/d32xr/actions/runs/504366697 Scroll to the bottom of the page to the "Artifacts" section and click the "32X ROM File" link. The ROM file inside the archive contains no game data but you can patch in the original IWAD with the following command (Linux or cygwin/git bash on Windows): dd if=doom32x.wad seek=6093 bs=16 conv=notrunc of=D32XR.bin Edited March 28, 2021 by Vic 4 Share this post Link to post
vyruss Posted January 22, 2021 I'll have to set up my 32x to test this. Looks fantastic! 2 Share this post Link to post
cybdmn Posted January 23, 2021 16 hours ago, Vic said: The ROM file inside the archive contains no game data but you can patch in the original IWAD with the following command (Linux or cygwin/git bash on Windows): There is a Windows port of dd, which i have used for making backups of all of my games released on floppies. http://www.chrysocome.net/dd 2 Share this post Link to post
Vic Vos Posted February 5, 2021 Speaking of Chilly Willy, I wonder whatever happened with his Doom 32X project. 2 Share this post Link to post
Vic Posted February 6, 2021 14 hours ago, Vic Vos said: Speaking of Chilly Willy, I wonder whatever happened with his Doom 32X project. I suppose it's halted indefinitely. We do communicate regularly btw. 2 Share this post Link to post
Vic Posted March 4, 2021 (edited) A small video update. Been mostly concentrated on optimizing the engine for the past month. Hopefully we can ultimately reach the goal of stable 25 (PAL) or 30 (NTSC) FPS on real hardware. Edited March 4, 2021 by Vic 13 Share this post Link to post
Vic Posted March 9, 2021 Thanks for the kind comments! I've updated the original post to fix instructions on how to dump the .wad from the original ROM as it contained a typo in the starting address, doh! 1 Share this post Link to post
Vic Posted March 9, 2021 (edited) Work in progress startup screen for #DOOM #32X: Resurrection, inspired by PSX Doom https://youtu.be/C5nQgU0crzw 7 Share this post Link to post
Vic Posted March 16, 2021 More performance improvements! The second SH-2 is now almost as busy as the main one. 7 Share this post Link to post
viti95 Posted March 16, 2021 Wow that's really impressive! I think the 32x is even able to handle the original Doom source code fast enough, for example GBADoom (https://github.com/doomhack/GBADoom) uses it and also performs really well. I wish I had a 32x to test it and give some feedback :D. 1 Share this post Link to post
CrowServo Posted March 16, 2021 I noticed the article; this is very anticipated. I would like to see, at least, episode 3 and the boss monsters implemented. After that and a few other neccessites, might we be able to add episode four?... 1 Share this post Link to post
VGA Posted March 22, 2021 Has anyone run this on real hardware? To see if it works and how it really runs? 1 Share this post Link to post
WadArchive Posted March 22, 2021 The video above by Vic is on real hardware. I have been meaning to test it out on my 32x but haven't had the time 2 Share this post Link to post