Doom on Playdate

Wow thanks for sharing!

I didn't know that book existed :playdate: . Although I never attempted porting, I dove into the source a few times to get inspiration for various clones and such. This makes my week!

What next steps are you planning, now that you got it up and running?

wow this is so cool, thanks for sharing

I was not able to work on the port so much this week. This is still a gif of the rolling demo and this is not playable yet.

06

This is still pretty rough. I tried to add controls but now the game crashes in the simulator when I try to launch the proper game. I also have a new crash on device, a totally different one. It will be (not) fun to track them down.

image

At least the rendering is a bit better. I use a dithering map texture which indicate which part of the screen is blue noise, ordered of just threshold. On the long term the key will be to add contrast to make some element like enemies pop more.

image

But now I went back to the blue noise rabbit hole and started to experiment generating my own blue noise textures. That will be interesting to improve the picture quality (and I have an idea that might force me to go back to my video experiments)

14 Likes

That is amazingly awesome.

I don't want to throw extra work on your plate, but this made me think about a post about dithering in Return of the Obra Dinn, and how the dither pattern was rotated with the camera. Since you're working with Doom's source directly, I would imagine this means you have easy access to the camera rotation angle, yes? If so, I wonder how easy it would be to scroll the blue noise texture correspondingly, and if it would make the scene look any better or worse?

6 Likes

That’s an excellent idea!
I will look into it but it shouldn’t be too hard indeed.

So if you don't go on the discord you might not have seen that Poom is kind of playable. I say kind of because I still have a lot of random crashes when navigating the menus. I am waiting to be able to debug on the simulator figure out what is the issue.

And because of popular demand I've added using the crank to use the Gatling. :playdate_shocked:

DoomGatlingMini.2020-06-01 23_25_12

We also had a discussion about Chex Quest and I don't think my code can support it so I am considering switch fully to Doom Chocolate. That would be an opportunity to clean up the code I did.

The early results are encouraging but there is still so much to do. :playdate_dizzy:

18 Likes

SO FREAKING GOOD :smiley:

Incredible progress!

A couple friends of mine who don't know anything about playdate or that I'm in the preview, individually shared your update tweet with me saying how cool it is and how the device is so unique and looks fun.

1 Like

This is absolutely nuts in a brilliant way.

How's the music sound? :grimacing:

No sound or music yet.

This is not my specialty so I didn't even look at it yet. Especially since this seem to have been the least portable part of the original doom. But I will come to that [art eventually.

oh man so good... i'll just start over now

Great job with this! would love to try out how it feels to shoot using the crank. do you have a pdx avail to play test?

@NewJorg was asking me for the build of the game and I realized I never uploaded a build because the game was always unstable in the main menu.

So here the old build that was simply recompiled with the new SDK.
Doom.pdx.zip (2.2 MB)

And here is the full project
DoomProject.zip (6.4 MB)

The game is still unstable and there is no sound. After this proof of concept I basically started again using Doom Retro this time as a starting point but soon after I simply drifted away from the project. I will try to go back to it now.

5 Likes

Hey Nic - thank you! I managed to load it and gave it a quick spin (magic!) until the Playdate starting giving me a battery warning. Plugging it in doesn't make the charging light come on. Argh! Anyway, you've done a great job - and I look forward to returning to it, hardware permitting.

Isn't "Poom" already used for the name of the PICO-8 demake?

1 Like

I think I've worked on it before Pico-8 Poom existed (not sure about the timing though) but it was just not public.
But I'll rename the thread just to avoid any confusion.

2 Likes

I just checked, this came first :slight_smile:

the first mention of POOM (Pico-8) July 2020 https://twitter.com/FSouchu/status/1284608280459980807

1 Like

Okie dokie, this works. I thought it might cause confusion since the PICO-8 version has been very popular.

Thank you very much for the tips on fixing _sbrk, this helped me fix my build.

For anyone else using plain Makefile instead of cmake, here's what I did:

  • Applied the above link_map.ld change
  • Added -specs=nano.specs -specs=nosys.specs to the end of the MCFLAGS = line in common.mk

Look like, playdate will be able to run cyberpunk 2077.

1 Like