Jump to content

Doom 32X Resurrection


Vic

Recommended Posts

To clarify, this was just a quick test to see if the partial invisibility effect is feasible to do on the 32X and it seems like it totally is! It'll only be applied to spectres when the port gets released.

 

image.png.5fc5cb6fa7788413ce157a4d704c60d2.png

Edited by Vic

Share this post


Link to post
  • 2 weeks later...

Hello! Yes, this is Chilly Willy. My old account used my yahoo email, which I allowed to expire, so I had to create a new account with my gmail email. Most of my other yahoo based accounts were successfully converted before it went away, but this was one of a handful I didn't get to in time.

 

Anywho, been helping Victor with this, and boy is he doing a great job! I'm continually amazed at what he gets from this. Here's a video on my system of the current (as of a day or two ago when I fixed the CD support).

 

Doom 32X Resurrection

 

Yes, that's on real hardware... a Model 2 Genesis + launch 32X + Model 2 CD. Yes, the Model 2 audio sucks. I really need to get around to adding the CCAM (Tiido's Crystal Clear Audio Mod) to it. It really kills the FM, which sounds much better on a better system (or with CCAM).

 

The list of currently working features is rather long:

 - Low and high detail video (three resolutions for low detail, two for high detail).

 - Selecting between no music, VGM FM music, or playing music from attached Sega CD (requires Sega CD in addition to 32X).

 - Save ram support - keeps track of finished levels, health, armor, weapons, keys, and ammo - ten save slots as well as an auto-save at the end of each level.

 - Has all Jaguar levels (when the binary is made using Jaguar Doom wad, along with sprite directions and monster in-fighting.

 - When made with the original Doom 32X wad, has the same limitations on levels and sprites and monster in-fighting.

 - Rendering has been spread across both SH2 processors for better speed.

 - 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).

 - Support for three button pads, six button pads, and the Sega mouse.

 

Edited by ChillyWilly

Share this post


Link to post

So, Sega CD hardware is now utilized too? I'm wondering, how is it going with emulation of CD 32X games? Bizhawk doesn't seem to support it.

Edited by Dimon12321

Share this post


Link to post
4 hours ago, Dimon12321 said:

So, Sega CD hardware is now utilized too? I'm wondering, how is it going with emulation of CD 32X games? Bizhawk doesn't seem to support it.

I'm sure kega fusion supports it

Share this post


Link to post

I really need to get around to trying this as I have a 32x, Mega CD and the Mega Drive has the CCAM installed. If only there were more hours in day....

Share this post


Link to post
3 hours ago, Redoom said:

I'm sure kega fusion supports it

 

Not mode 1. That's where the game boots from a cart like normal and inits the CD. No emulator supports that with the 32X yet.

 

Share this post


Link to post

Hey guys, I compiled it from the github repo to try on my 32X. It compiled fine but there is no sound and only the 32X graphics layers are show, cant see the menus or any other stuff. I've tested to see if the Genesis -> 32X video signal is normal but it is fine with other games. This behavior also shows on emulators. Do I messed up somewhere? Used chilly willy devkit on ubuntu 20.04 as said in the instructions.

 

Besides that, awesome job! Eager to try it on my 32X!

Share this post


Link to post
19 hours ago, Gregory Stephens said:

This is turning out so awesome. It is possible to make the FM sound more like the original DOS OPL music? If not it's fine, but that'd be pretty cool.

Getting MDs to sound consistent across different revisions is already impossible due to differences in sound circuitry, so what you hear on Model 1 MD is probably as good as it's gonna be.

 

17 hours ago, soniccd123 said:

Hey guys, I compiled it from the github repo to try on my 32X. It compiled fine but there is no sound and only the 32X graphics layers are show, cant see the menus or any other stuff. I've tested to see if the Genesis -> 32X video signal is normal but it is fine with other games. This behavior also shows on emulators. Do I messed up somewhere? Used chilly willy devkit on ubuntu 20.04 as said in the instructions.

 

Besides that, awesome job! Eager to try it on my 32X!

 

The original wad doesn't contain 32X compatible sounds or graphical assets, so those need to be ripped from JagDoom. I keep track of the list of files for such a hybrid wad here: https://github.com/viciious/d32xr/blob/master/content/content.json

The tools I'm using are also available on github: https://github.com/viciious/wadcode

 

Share this post


Link to post
On 8/7/2021 at 11:48 AM, Vic said:

Getting MDs to sound consistent across different revisions is already impossible due to differences in sound circuitry, so what you hear on Model 1 MD is probably as good as it's gonna be.

 

 

The original wad doesn't contain 32X compatible sounds or graphical assets, so those need to be ripped from JagDoom. I keep track of the list of files for such a hybrid wad here: https://github.com/viciious/d32xr/blob/master/content/content.json

The tools I'm using are also available on github: https://github.com/viciious/wadcode

 

 

Hey, thanks! I got it to make a hybrid wad as you said using the "combine" command on wadcode. Compiled a new rom and the graphics seems fine now, but still no SFX or music. Do i missed something?

 

Edit: Actually, trying to use wadcode to decompile the files seems to not be working, it doesn't gives me any error, but simply no files are created in the directory i am pointing at. I'm also using it with ubuntu 20.04, does it have compatibility issues maybe?

Edited by soniccd123

Share this post


Link to post
Just now, soniccd123 said:

 

Hey, thanks! I got it to make a hybrid wad as you said using the "combine" command on wadcode. Compiled a new rom and the graphics seems fine now, but still no SFX or music. Do i missed something?

Yes, you're missing the VGM files: https://github.com/viciious/d32xr/tree/master/content/files/VGM

Decompile the hybrid WAD, open up the produced content.json in text editor, copy&paste VGM entries from here: https://github.com/viciious/d32xr/blob/master/content/content.json#L9402, then compile the hybrid WAD again.

Share this post


Link to post
4 hours ago, Vic said:

Yes, you're missing the VGM files: https://github.com/viciious/d32xr/tree/master/content/files/VGM

Decompile the hybrid WAD, open up the produced content.json in text editor, copy&paste VGM entries from here: https://github.com/viciious/d32xr/blob/master/content/content.json#L9402, then compile the hybrid WAD again.

 

Thanks, I'm also just noted that stupid me was not using the --big-endian argument, thats why it was not producing any file when decompiling lol

 

Edit: Got it working in my 32X, AWESOME Port, simply awesome, thank you very much man!!!

Edited by soniccd123

Share this post


Link to post
On 8/3/2021 at 6:01 AM, ChillyWilly said:

Hello! Yes, this is Chilly Willy. My old account used my yahoo email, which I allowed to expire, so I had to create a new account with my gmail email. Most of my other yahoo based accounts were successfully converted before it went away, but this was one of a handful I didn't get to in time.

If you contact some of the mods/admins on the board, they should be able to get the accounts merged and/or get your password reset.

 

Good work on this project by the way. And good work getting those Joshua Schaferhund reworks in, too. The YM2612 and the PWM channels of the 32X can actually crank out really nice music if you know how to use them. Problem is, a lot of people didn't. :)

Share this post


Link to post

Wavy has also contributed bug-fixes for all maps, so 100% kills-100% secrets playthrough should now be possible.

Share this post


Link to post
35 minutes ago, Vic said:

Wavy has also contributed bug-fixes for all maps, so 100% kills-100% secrets playthrough should now be possible.

Oh hey that's me! 

 

Well, I'm glad I could help be apart of this project!

Edited by Wavy

Share this post


Link to post
On 8/9/2021 at 9:45 PM, Dark Pulse said:

Good work on this project by the way. And good work getting those Joshua Schaferhund reworks in, too. The YM2612 and the PWM channels of the 32X can actually crank out really nice music if you know how to use them. Problem is, a lot of people didn't. :)

 

The FM music is currently just FM, no PCM at all. To make it all fit in 4MB, the VGMs are compressed, and I'm not sure how to play compressed PCM and compressed FM at the same time (on the fly), so it's just FM decompressed on the fly. The 32X PWM is just playing sound effects. That's why the drums aren't as good as they could be - they're FM synth drums. At some point, it would be nice to move to >4MB using the standard Sega mapper (commonly called the SSF2 mapper), but there's lots of places in the code that would have to be converted to setting the mapper as well as using a relative pointer where it currently just uses a pointer.

 

Share this post


Link to post
6 hours ago, ChillyWilly said:

The FM music is currently just FM, no PCM at all. To make it all fit in 4MB, the VGMs are compressed, and I'm not sure how to play compressed PCM and compressed FM at the same time (on the fly), so it's just FM decompressed on the fly. The 32X PWM is just playing sound effects. That's why the drums aren't as good as they could be - they're FM synth drums. At some point, it would be nice to move to >4MB using the standard Sega mapper (commonly called the SSF2 mapper), but there's lots of places in the code that would have to be converted to setting the mapper as well as using a relative pointer where it currently just uses a pointer.

I'm quite aware of the Genesis hardware limits, yes, and VGMs as well. I'm one of the co-founders of Project2612, so I got a pretty intimate knowledge of the stuff. :P

 

SSF2 is probably the no-brainer option since IIRC it allows for a ROM size up to 32 MByte, which should be more than enough to put in pretty much every texture and level in the official games with room to spare, and it'll be supported by any reasonable flashcart or emulator nowadays. You'd have to do some conversion work, but I do think it'd be possible to stuff Ultimate Doom, Doom II, and both Final Dooms into 32 MB since Doom II and the Final Dooms will share a lot of textures. I figure you'd probably get into the 20-25 MB range or so.

 

The downside though is that even though the mapper supports that, most flashcarts don't - IIRC even the Mega Everdrive only supports up to 16 MB on the SSF2 mapper right now. Downside is, of course, you'd have to ensure that whatever gets swapped could fit neatly into that bank of 512 KB that the mapper defines, but that's part of the challenge.

Edited by Dark Pulse

Share this post


Link to post
2 hours ago, Dark Pulse said:

I'm quite aware of the Genesis hardware limits, yes, and VGMs as well. I'm one of the co-founders of Project2612, so I got a pretty intimate knowledge of the stuff. :P

 

SSF2 is probably the no-brainer option since IIRC it allows for a ROM size up to 32 MByte, which should be more than enough to put in pretty much every texture and level in the official games with room to spare, and it'll be supported by any reasonable flashcart or emulator nowadays. You'd have to do some conversion work, but I do think it'd be possible to stuff Ultimate Doom, Doom II, and both Final Dooms into 32 MB since Doom II and the Final Dooms will share a lot of textures. I figure you'd probably get into the 20-25 MB range or so.

 

The downside though is that even though the mapper supports that, most flashcarts don't - IIRC even the Mega Everdrive only supports up to 16 MB on the SSF2 mapper right now. Downside is, of course, you'd have to ensure that whatever gets swapped could fit neatly into that bank of 512 KB that the mapper defines, but that's part of the challenge.

The go-to emulator for the 32X (Kega) only supports ROM sizes up to 6MiB. Going above that would most likely result in an even smaller playerbase for the port.

Share this post


Link to post
1 hour ago, Vic said:

The go-to emulator for the 32X (Kega) only supports ROM sizes up to 6MiB. Going above that would most likely result in an even smaller playerbase for the port.

Kega Fusion is most definitely not the go-to emulator anymore. It was great back in the day, but it's most definitely showing its age. It has problems running properly in Windows 7, much less 10, and it was last updated 11 years ago.

 

BlastEm or Genesis Plus GX are eventually going to take this mantle one way or another. They have source code available and people willing to update it. Steve Snake chose to keep Kega Fusion closed source, and as a result, if he doesn't want to update it, nobody else can, and it will inevitably fade with time.

Share this post


Link to post
1 minute ago, Dark Pulse said:

Kega Fusion is most definitely not the go-to emulator anymore. It was great back in the day, but it's most definitely showing its age. It has problems running properly in Windows 7, much less 10, and it was last updated 11 years ago.

 

BlastEm or Genesis Plus GX are eventually going to take this mantle one way or another. They have source code available and people willing to update it. Steve Snake chose to keep Kega Fusion closed source, and as a result, if he doesn't want to update it, nobody else can, and it will inevitably fade with time.

Neither supports the 32X. Wake me up when things have actually changed :)

Share this post


Link to post
10 minutes ago, Vic said:

Neither supports the 32X. Wake me up when things have actually changed :)

Purely is a lack of people interested in it, that's all. Doesn't change a thing in the long run. If the mapper can handle a higher cart space and an emulator is not properly reflecting that, the emulator is wrong. Period. And as Kega Fusion is not going to get updated anytime in the next thousand years probably, it's just a solution for now. (PicoDrive, it should be noted, does emulate the 32X, but it is definitely flakier than Kega Fusion; however, Doom 32X is not listed as one of the games that does not work with it, so presumably it will be just fine.)

 

The only reason it even matters for you is because of course this is Doom 32X. I would say that a project that mods the game should not assume a max cartridge size of 6 MB for that reason. Fine to make a version of it that runs with it, but it'd be silly to artificially limit it just because something doesn't exist NOW when it almost certainly will as soon as someone takes an interest in doing the grunt work of adding it.

 

Mod testing, realistically, should be done on real hardware whenever possible, as well. Anyone who went through the ZSNES ROM hack days remembers how those immediately fell apart on both real hardware and more accurate emulators.

Edited by Dark Pulse

Share this post


Link to post

Incompatibilities due to large ROMs with mappers seems to be a pretty consistent problem with modern development for the system. Demons of Astenborg just came out which is 15 MB and has a disclaimer saying it won't work on certain Everdrives.

Share this post


Link to post
2 hours ago, lazygecko said:

Incompatibilities due to large ROMs with mappers seems to be a pretty consistent problem with modern development for the system. Demons of Astenborg just came out which is 15 MB and has a disclaimer saying it won't work on certain Everdrives.

Yeah, not all Everdrives can handle a ROM that big.

 

The original could handle a ROM up to 10 MB, V2 up to 15 MB.

 

V3 (the models that end in X3/X5/X7) differ: X3 and X5 can only handle 8 MB/128KB SRAM, X7 can handle ROMs up to 16 MB/256 KB SRAM.

 

The problem there is, of course, that the hardware is, to some extent, shaving costs since nobody has ever really pushed the limits of what the mapper could theoretically do. But they won't really up those limits until some game or homebrew or hack comes out and actually uses them.

Share this post


Link to post
  • 2 weeks later...

@Vic I've built the project using the latest code and extracting the WAD from an original 32X cartridge (USA) as described in the instructions, but I got no menus/status bar nor any kind of sound. I've tested the generated ROM with Kega Fusion and Picodrive and both have the same problem. Maybe I'm missing something or am I doing something wrong?

 

Edit: got the graphics working using the wadcode combine method, but still don't know how to add the music. What command line parameters are you using? Maybe it's a good idea to add a Wiki page to describe the whole process since is not trivial and is not described in the github project.

Edited by viti95

Share this post


Link to post
22 hours ago, viti95 said:

@Vic Maybe it's a good idea to add a Wiki page to describe the whole process since is not trivial and is not described in the github project.

Maybe it is, but I don't have neither motivation for that and I'd rather have no documentation at all than a lousy one.

 

Anyway, the general idea is that you should be using the content.json found in the "content" directory when using the wadcode tool: https://github.com/viciious/d32xr/blob/master/content/content.json

Share this post


Link to post

Got it running on real hardware and it works great. The map screen is a bit jank, but to my knowledge, that is derived from the Jaguar port, so it's no fault of your own. I'm impressed with the new lighting and the speed of the game as a whole, but I have noticed that when the framerate is set to unlimited, the game logic seems to speed up as well. To help others build this, I've created these scripts https://drive.google.com/drive/folders/1Rflu0foJi8Nyqoi7MELQn0wroi5-ArIV?usp=sharing.

  • doom32x-clean deletes the entire dev environment, in case you need to start from scratch
  • doom32x-devkit builds Chillys Sega devkit
  • doom32x-build does all the wad magic (you're gonna need to find ROMs of the 32x and Jaguar versions yourself) and then builds the final ROM

Share this post


Link to post
9 hours ago, Mittens0407 said:

Got it running on real hardware and it works great. The map screen is a bit jank, but to my knowledge, that is derived from the Jaguar port, so it's no fault of your own. I'm impressed with the new lighting and the speed of the game as a whole, but I have noticed that when the framerate is set to unlimited, the game logic seems to speed up as well. To help others build this, I've created these scripts https://drive.google.com/drive/folders/1Rflu0foJi8Nyqoi7MELQn0wroi5-ArIV?usp=sharing.

  • doom32x-clean deletes the entire dev environment, in case you need to start from scratch
  • doom32x-devkit builds Chillys Sega devkit
  • doom32x-build does all the wad magic (you're gonna need to find ROMs of the 32x and Jaguar versions yourself) and then builds the final ROM

 

Yeah, we're working on resolving the game logic framerate issue, but it's a bit tricky. Btw, the highest setting doesn't correspond to "unlimited", it's actually 30/25 FPS on NTSC/PAL :)

 

Good job on those scripts, although this will obviously break at some point. Ideally you should be using content.json from D32XR repository without any modifications whatsoever.

tail -n +9401 ../d32xr/content/content.json | head -n -7 > VGM.json

 

Edited by Vic

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...