Doom 64 Dreamcast
Doom 64 Dreamcast is a port of Doom 64 to the Sega Dreamcast by JNMartin. It is based on a fork of the reverse-engineered Doom 64 code (specifically Doom 64: Merciless Edition). You can obtain a functional Dreamcast CDI or ISO file by following the compilation procedure in the following section.
Compiling
You will need a Nintendo 64 ROM of Doom 64 to compile Doom 64 Dreamcast. Additionally if you also provide the "doom64.wad" from the Doom 64 Remaster it will unlock the Lost Levels.
Pcercuei's Doom 64 Builder is an online tool hosted on Google Colab which contains the right software and steps to compile Doom 64 for the Dreamcast. After following its three steps, the "selfboot" directory will be created which will contain the Doom 64 assets while the "src" directory contains the code. If you decide to make any changes, running the third step in Pcercuei's tool will rebuild the game with your changes.
Alternatively you can build the Dreamcast/KallistiOS compiler toolchain as outlined in JNMartin's guide. This toolchain requires a Linux environment. If you are using Windows you can use the Windows Subsystem for Linux (WSL), VirtualBox with a Linux installation, or other similar Linux system software.
Customizing
Doom 64 Dreamcast's "wadtool" will extract the assets of the Nintendo 64 ROM of Doom 64 into folders within the "selfboot" directory. This makes many of the assets more accessible for modification than other console ports.
Maps
Maps must be in the Nintendo 64 format to run on Doom 64 Dreamcast. With that said, when designing a custom map in Doom Builder 64, it is recommended to make your map initially in the PC format for easy playtesting. Afterwards you can use d64tool to convert the PC map to the Nintendo 64 format. Alternatively, Doom Builder 64 has an option when loading a map to convert a PC map to the Nintendo 64 format. After saving this map, you will need to delete the "SCRIPTS" text file from the map WAD with a tool like Slade. In general map WADs should only contain one map and no other files except the map data itself.
Once you have a map in the proper format, you can replace any of the maps in the "selfboot/maps" folder with it. If you would like the name of the map to be different in-game, the "src/in_main.c" file contains all of the level names in which you can edit. Then "src/m_main.c" has the names of the episodes if you wish to change those names too.
Audio
In general, the audio assets are in a raw, interleaved, and headerless ADPCM format. Music resides in the "selfboot/mus" folder in 44.1 kHz 8-bit stereo ADPCM format. While the sound effects reside in the "selfboot/sfx" folder in 22.05 kHz 8-bit mono ADPCM format. To convert WAV files to ADPCM format, KallistiOS contains a tool "wav2adpcm" for this process.
Graphics
Textures are in the Nintendo 64 format and reside in the "pow2.wad" while their normal maps reside in the "bump.wad". These WADs can be edited with Slade 64. In general the sprites exist in sprite sheets in the "selfboot/tex" folder, where each sheet is in its own palette. If the sprites are edited in the Nintendo 64 Doom 64 ROM first, they will automatically put in sprite sheets if the sprites retain the same size.