gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS development > Porting DOOM to DS?

#53971 - cybereality - Wed Sep 14, 2005 4:48 am

I am concidering trying to port the original DOOM to DS and I wanted to know where to start. Since there are already Heretic & Hexen ports to the DS, I'm sure that this would be possible (unfortunately, I haven't gotten either to work with my DS for some reason). I already downloaded the source code for Doom and skimmed through it. I undersood what was going on, but I am not the most advanced C programmer and I know no assembly whatsoever. I am not a complete noob however, and have been coding games since BASIC, so I believe I can do it with some help.

My first idea was to just see if I could compile the libraries into a format the DS could play. That way I could send tests to the game functions and see if they return anything. When I get some text on the screen I will know at least that the code is running on the DS. I imagine some of the core code will have to be rewritten as I hear the Doom engine had heavy use of the FPU. Then convert all the input/graphic/sound code to be DS specific. Seems straight forward, but I've never done a port before and only worked on my own games from scratch. If anyone can point me in the right direction, it would be much appriciated. Thanks.
_________________
// cybereality

#53973 - TJ - Wed Sep 14, 2005 6:14 am

Er...

#53974 - $CyBeRwIz$ - Wed Sep 14, 2005 6:23 am

I'm quite sure he is talking about the 1993 game by id Software.
_________________
Author Of The CD Freaks Offline Help

#53975 - MrAdults - Wed Sep 14, 2005 6:27 am

Quote:
I am concidering trying to port the original DOOM to DS and I wanted to know where to start.

HexenDS contains the full source code, and the changes made for the DS port are well marked. Taking those changes to the Doom codebase would probably be more straightforward than porting Doom into Hexen, but either way it should be a quick and easy job.

Quote:
I hear the Doom engine had heavy use of the FPU

Seems like you heard wrong. HexenDS already includes ARM versions of the main fixed point math functions as well.

Quote:
Er...

This and that are completely different things (remake as opposed to direct port).

-Rich

#53978 - TJ - Wed Sep 14, 2005 7:38 am

It's not a direct port, but it's not a ground up remake either, DOOM DS is still based on the DOOM engine.

#53979 - cybereality - Wed Sep 14, 2005 7:41 am

TJ: I am talking about a port. DoomDS is a remake and is not even out. I have known about that for a while. I am talking about a port. Two different things.
EDIT: DoomDS uses full polygon 3D enemies and polygon 3D levels. The original Doom used a raycasting engine with 2D sprite enemies. Not the same.

MrAdults: Thanks for the reply. I have the HexenDS code and I am going to study it, I'm sure that will help.

If anyone else has any pointers on porting code to DS, please dont be shy.
_________________
// cybereality

#53994 - TheChuckster - Wed Sep 14, 2005 11:52 am

My advice is to take it one source file at a time to avoid getting overwhelmed. Try to split the task into smaller pieces to work towards your goal. Treat it as a puzzle.

#54033 - deltro - Thu Sep 15, 2005 12:31 am

I don't think the DoomDS project has anything on the hardware yet.

#54085 - Defect - Thu Sep 15, 2005 3:17 pm

Thats true deltro, I think people are assuming that DoomDS is alot more ambitious then it really is, therefore its hard to get people interested in helping with the programming aspect.

It really is just a port of Doom with new levels, textures and the inclusion of a new weapon and possibly a new monster(s).

DS performance will limit us to using sprites at first untill we determine how much we can get away with polygon wise. I'm also working with Voxels at the moment, but how the DS handles them is an unknown.

I've had quite a few people interested in helping on the programming side, but noone has stepped up to take on the lead programming role.
Alot of the good Doom engine programmers are PC users, and some arent so willing to buy a DS and the required equipment.

I'm happy to keep going with my artwork and level design, but the lack of engine progress is an obvious turn off to the project.

There is lots of talent around here.. is anyone interested??

#54088 - El Hobito - Thu Sep 15, 2005 3:45 pm

To be honest i think its a bad idea to use the doom engine for the basis of any game on the ds due to being very inefficient (in terms of doom ds as opposed to the actual port). I'm sure you could get the ds to do 3d models fine with the appropriate backface culling/lod/mip mapping(texture lod). Maybe you could render the weapons as sprites too

#54090 - Defect - Thu Sep 15, 2005 4:04 pm

I know theres alot of work involved in porting the Doom engine then geting the engine upto an acceptable speed, but alot of Dooms character is in the engine itself and those characteristics would be very difficult to capture in another from-scratch engine.

It may well be faster to go through the porting and optimization process.

I'm really speaking with no experience here, but i would assume the process of writing an engine from scratch would be harder then the porting process. Having access to the official SDK may be a different story though.

I'm commited to the idea of 3D models, but if we cant have decent monster counts because of it, its gotta go back to sprites. Otherwise its just not Doom.

#54091 - MrAdults - Thu Sep 15, 2005 4:57 pm

I was just going from the mockup shots on your page, which obviously are not being rendered in the Doom engine.
Edit: Apparently it's Quake/Half-Life. So, yeah.

Porting Doom and trying to put your assets in it would be a bad idea, especially if you want to use new 3D models and some form of multitexturing (since your concept shots seem to be making use of lightmaps). It would be faster to port a very basic port of Doom that's already been modified to work with OpenGL (as long as it still has proper area culling) than it would be to hand-optimize the software renderer until it's capable of rendering your assets at a reasonable speed. You run into a whole new set of issues with that, and it might very well just be easier to make a whole new base for the engine that is crafted around the DS's hardware capabilities. But that's rather subjective.

That said, it would be a large amount of work either way. The legalities of your project are questionable, since you clearly don't intend to make use of the original Doom assets directly. Given that, you'll need to redistribute your own assets. Even if they're all original, you're blatantly copying layout and concepts from a commercial product, and using the name of the original product on top of that. This sort of thing has been done before and made it through the pipe unscathed, but I would rather not invest a great deal of my time in something that could just as easily get squashed before seeing the light of day.

From a personal standpoint, if I had a team of artists and designers at my whim, the last thing I'd want to make would be a glorified Doom port. But that's just me.

-Rich

#54093 - El Hobito - Thu Sep 15, 2005 5:07 pm

Defect you say that the engine has a lot of character but i believe from what your saying is that your not making doom style maps, your using 3d maps which the doom engine cannot do properly. I never used jdoom that much but i was a great follower of the doom ports a few years back and their way of doing things is rather hacky. Mario kart ds seems to be able to handle levels+8 carts on screen at 60fps so im sure its possible to make it how you'd like too. Thats just my opinon though all i can say is good luck!

#54099 - Defect - Thu Sep 15, 2005 5:30 pm

Oh dont think i'm venturing into quake territory with my level designs, its quite the opposite. I've already remade the level featured in the video in JDoom and have the custom textures loaded and everything looks really nice. Plays really well too.

My use of the Quake and Halflife engine were purely for test reasons. I've never been keen on lightmaps for this project at all, the sector based ligting in doom is one of the games biggest charactoristics.

I think JDoom (Doomsday engine) is close to what i'm after, its based on the doom engine and features opengl rendering. Theres no shearing when looking up and down which is great.

I think the fact that projects such as Generations for Q3 and Doom64: Absolution (doomsday engine) have never had trouble are sure signs that my project is pretty safe.

The Doom64: Absolution team distributed all of the textures, sprites, (they used a tile dumper to extract these from the rom) sounds and music from Doom64 freely online and was not shut down. They even have links to download every piece of Doom music available on their site!

The Generations project remade all of the art assets from Doom, Wolf3D, Quake1, Quake2 and released them with no problems.

I think if Generations tried to sell their art, even if it was original, it would be subject to issues your mentioned MrAdults.

BTW, i dont have a team at my disposal.. its just me. The Revenant and Barron model were originally constructed by Eclipse, but everything else on the website (which is old stuff) is my work.

#54108 - Defect - Thu Sep 15, 2005 6:07 pm

This may be a little off topic, but I've been in talks with the lead artist and the lead programmer on Doom64 and both have stated to be more then happy to answer any questions and help where at all possible.

Sakru Gilman was the lead artist and Aaron Seeler was the lead programmer. Aaron is also Sakru's brother in law.

I'm sure Aaron will no doubt come in handy for answering some technical questions about the Doom64 engine, which i think would not be too different to that of the doomsday engine. Sakru has been very helpful regarding visual aspects of the game, but of course is legally unable to pass on any original content.

#54138 - MrAdults - Thu Sep 15, 2005 9:08 pm

Quote:
Oh dont think i'm venturing into quake territory with my level designs, its quite the opposite. I've already remade the level featured in the video in JDoom and have the custom textures loaded and everything looks really nice. Plays really well too.

You may get more interest from potential programmers if you advertised these facts plainly on the web site, and replaced the Quake/HL-based concept shots with shots taken in JDoom. Which isn't to say porting JDoom is better than other possible approaches, but it makes your goal appear easier to attain. I imagine people are going to judge the scale of your project more by the running asset images you have up than anything else, I know that's what I typically pay most attention to.

Quote:
The Doom64: Absolution team distributed all of the textures, sprites, (they used a tile dumper to extract these from the rom) sounds and music from Doom64 freely online and was not shut down. They even have links to download every piece of Doom music available on their site!

The "they did it and no one shut them down" argument doesn't have much relevance in reply to my remark, but that isn't to say it isn't relevant at all. id has never been the kind of company to be assertive about these matters, but the fact remains that you're relying on their view of the situation rather than the actual legality of the project. If your assets are really original, you could simply change your project's name in the event of any legal entanglement. If you intend to directly copy what's already in Doom, that's a different matter. One which you may or may not run into trouble with, depending on the whims of the company or companies that have you at their mercy.

To get back on the initial topic, what you're going to end up doing is probably going to be more than a little different than just direct-porting Doom with the original software renderer intact. So if someone were to make a direct port (as cybereality seemed interesting in doing) they would not be wasting their effort.

-Rich

#54145 - El Hobito - Thu Sep 15, 2005 10:09 pm

So what doom ds is really is a mod for jdoom, but your gonna port jdoom to the ds first and include this mod with it?

#54154 - cybereality - Thu Sep 15, 2005 11:35 pm

Defect, I guess I was little mis-informed about what you're trying to do with DoomDS. My suggestion would be to code a DS specific engine from scratch. I would even be interested in helping, but I am in the middle of like 3 different projects right now and want to finish them first. Once I get into 3D DS programming I may be interested in contributing.

If you code the engine specifically for the DS, you will be able to optimize it for the DS. Running an emulator of a source port is almost like double emulation (so its going to lose a lot of speed). If you look at the performance of DS games like Mario64 or Metroid Hunters, that is the best you can expect from a custom DS 3d engine. If you use a port of JDoom you are most likely not going to get those speeds from the DS.

Oh, and on copyright issues, don't even worry. If it were any other company it might be a problem. But ID has been known to support the community (like the recent release of QIII code). Hell would freeze over before Carmark sued someone in the mod community.
_________________
// cybereality

#54176 - Defect - Fri Sep 16, 2005 3:08 am

I got in contact with Midway a while ago when i was trying to track down Sakru Gilman, and sent an email to the Intellectual Property Infringement Notification and explained my project and also brought to their attention the Absolution project and what they had done.

I thought it would be best to contact them considering my artwork resembles Midways Doom64 efforts more then it does id's original stuff.

I did not get a reply, nor has the Absolution project been shut down.
Its a good sign, but doesnt mean i'm in the clear.

El Hobito: Yes DoomDS is pretty much that, a mod for Jdoom but on the DS. Kind of like the FreeDoom project. I'm just supplying my own art assets and levels. Sound will be same as what was used for the absolution project, so they wont be hard for people to obtain. Music may be new, but we will see how things go, there are a few people doing test tracks.