ROM Hack prBoom GBA port and hack for GBA Doom 1 to use it.

FAST6191

Techromancer
OP
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
Saw https://www.romhacking.net/hacks/4899/ and thought it worth sharing.

For those unfamiliar then Doom and Doom II both got ports to the GBA. While I would personally pick almost any other version to play today there does remain those that like all these oddball ports and the GBA platform for such things, and to be fair the way the game plays is not as limiting for Doom as later FPS efforts would be. The Doom 1 port on the GBA being based upon the Jaguar port (so much so the tools for it fairly easily crossed over https://gbatemp.net/threads/doom-game-gba-rom-s.350513/ ) and the second a bit more of a custom effort.
For a more in depth discussion then the following pages do well
https://doom.fandom.com/wiki/Game_Boy_Advance
https://doomwiki.org/wiki/Doom_for_Game_Boy_Advance
That is at least until this. For those also unfamiliar with things then ID and its various offshoots and associates have often been seen to release source code to their games ( https://github.com/id-Software and might as well link https://osgameclones.com/ for some of the forks at least ) with Doom happening many years ago and getting a few dozen projects with their own take on it, in addition to mods and user made content (probably the worst of the obvious choices for a link but https://www.moddb.com/games/doom ).

First up is apparently prboom, one of the more notable open source takes on Doom, managed to get a GBA port.
https://github.com/doomhack/GBADoom

Second is we apparently have a port of said engine to the original GBA Doom game, one that is still being refined but by most accounts makes the game far nicer than the original GBA effort and far more in line with the original game. This one is apparently done by Kippykip.
https://github.com/Kippykip/GBADoom/releases

Edit. Also port of various PC resources to Doom II from the same author also happened
http://www.romhacking.net/hacks/3666/
They are apparently also working on some audio stuff for the first one to recreate final doom's soundtrack
https://kippykip.com/index.php?threads/wip-final-doom-evilution-impulse-tracker-soundtrack.1601/
source for all this
https://www.romhacking.net/hacks/4899/
 

Kippykip

j e f f
Member
Joined
Mar 30, 2013
Messages
543
Trophies
0
Website
kippykip.com
XP
643
Country
Australia
Woah wasn't expecting to see this here!
But yeah so basically doomhack made the PrBoom GBA port and does all the complicated backend optimisations to get it running pretty smooth, while I've been forking it as PrBoom SVN. Kinda like years ago here where I forked some changes on DsDoom calling it DsDoom SVN.
My fork of doomhack's port is intended to be play/look/sound more closer to the PC original. A lot of the forked changes do make it into the main branch though such as the GBA Doom II retail HUD port, some menu changes and other minor things/fixes.

Anyways, I just made another V1.5 update tonight that makes the Gamma a slider instead of a toggle, and also ported the same colour corrected palettes I made for the GBA Doom II PC Restoration hack but for this port. Works out better than simply boosting the brightness like on previous versions imo. So it should be a lot more visible on AGS-001's & AGB-001's now.
Have fun! :yaysp:

I wonder if I can run Brutal DOOM on a GBA now

Heh
I could barely get NUTS.WAD working 1/16 of the size, I could only imagine how it would handle the strain of brutal doom lmfao
GBADoom-TNT_01.png
 
D

Deleted User

Guest
https://www.romhacking.net/hacks/5090/

Doom II Paint Edition is a simple and goofy hack. Firstly it builds upon Kippykip’s PC Conversion pack, restoring the blood of the PC version as well as the pallette and fixing some render issues. But the most important change of this hack is that every wall texture is replaced by a cartoony, low-quality version made with Paint, hence the title. If you want to play Doom 2 GBA with simple textures (that surprisingly dont look that bad), this hack is for you!
 

Kippykip

j e f f
Member
Joined
Mar 30, 2013
Messages
543
Trophies
0
Website
kippykip.com
XP
643
Country
Australia
https://www.romhacking.net/hacks/5090/

Doom II Paint Edition is a simple and goofy hack. Firstly it builds upon Kippykip’s PC Conversion pack, restoring the blood of the PC version as well as the pallette and fixing some render issues. But the most important change of this hack is that every wall texture is replaced by a cartoony, low-quality version made with Paint, hence the title. If you want to play Doom 2 GBA with simple textures (that surprisingly dont look that bad), this hack is for you!
Ha this is kinda neat, I like the hud in particular
 

Bruno Jenso

Active Member
Newcomer
Joined
Jul 19, 2015
Messages
38
Trophies
0
Age
50
XP
124
Country
Hey Kippykip, I've noticed Doomhack's 1.9 is out with 10%-15% speed gains. Does this mean SVN 1.6 is coming soon?

I h0pe so - what you guys are doing for Doom on GBA is nothing short of a miracle. Seriously can't praise your kindness enough. Please keep it up. I'm hoping one day to have a smooth Ultimate Doom, Doom II, and Final Doom experience on the GBA. Even wad hacks like the amazing Castlevania Doom hack could provide whole new game experiences for my humble GBA SP.
 

Kippykip

j e f f
Member
Joined
Mar 30, 2013
Messages
543
Trophies
0
Website
kippykip.com
XP
643
Country
Australia
Hey Kippykip, I've noticed Doomhack's 1.9 is out with 10%-15% speed gains. Does this mean SVN 1.6 is coming soon?

I h0pe so - what you guys are doing for Doom on GBA is nothing short of a miracle. Seriously can't praise your kindness enough. Please keep it up. I'm hoping one day to have a smooth Ultimate Doom, Doom II, and Final Doom experience on the GBA. Even wad hacks like the amazing Castlevania Doom hack could provide whole new game experiences for my humble GBA SP.
Ah yes! It will be coming and I'm legit excited to test it out on Final Doom especially (when I saw the 10-15% speed increase email about the latest commit I shat myself in excitement).
Although since Covid, I've been personally working 6 x 9-6hr shifts at retail a week and I'm usually crashing to bed as of the past fortnight as the stores been so flooded with customers (office supply store with computers etc) that I've been exhausted by the end of the day.
So I haven't really been spending time tinkering with the source or testing out the simplified TNT levels I made or anything under this build at all yet.
But yeah there will be an update! :)
 
  • Like
Reactions: Tarmfot

Bruno Jenso

Active Member
Newcomer
Joined
Jul 19, 2015
Messages
38
Trophies
0
Age
50
XP
124
Country
[QUOTE
But yeah there will be an update! :)[/QUOTE]

Great! I'm genuinely excited too - but didn't quite soil my trousers :) Hearing how hard you work in your day job makes me appreciate your hard work on coding even more. Thank you so much :)
 
Last edited by Bruno Jenso,
  • Like
Reactions: Kippykip

Kippykip

j e f f
Member
Joined
Mar 30, 2013
Messages
543
Trophies
0
Website
kippykip.com
XP
643
Country
Australia
Great! I'm genuinely excited too - but didn't quite soil my trousers :) Hearing how hard you work in your day job makes me appreciate your hard work on coding even more. Thank you so much :)
upload_2020-5-20_23-47-0.png

Oh wow... that was easy.
Github pretty much picked up 90% of the differences and merged automatically.

Although I'm gonna make sure that nothing else got broken. So far though absolutely MASSIVE speed improvement on MAP31 and MAP04, at least 30%-40% speedup.
If you wanna test it out currently, here's the dev branch.
https://github.com/Kippykip/GBADoom/tree/in-dev
 

Bruno Jenso

Active Member
Newcomer
Joined
Jul 19, 2015
Messages
38
Trophies
0
Age
50
XP
124
Country
  • Like
Reactions: Kippykip

Bruno Jenso

Active Member
Newcomer
Joined
Jul 19, 2015
Messages
38
Trophies
0
Age
50
XP
124
Country
It's now ready SVN 1.6 should appear on RomHacking soon!
Yeah! great stuff. Did much change in the end?

Now I just need to figure out how to compile an Ultimate Doom, Doom 2, and maybe even Final Doom versions! Imagine a better than commercially-released engine of all those titles and maybe even stuff like this: https://www.moddb.com/mods/castlevania-simons-destiny on my Gameboy Micro! All thanks to Doomhack and your good self.

btw why does the SVN bit mean?
 
  • Like
Reactions: Deleted User
D

Deleted User

Guest
Yeah! great stuff. Did much change in the end?

Now I just need to figure out how to compile an Ultimate Doom, Doom 2, and maybe even Final Doom versions! Imagine a better than commercially-released engine of all those titles and maybe even stuff like this: https://www.moddb.com/mods/castlevania-simons-destiny on my Gameboy Micro! All thanks to Doomhack and your good self.

btw why does the SVN bit mean?
Haha, great! This mod is like Doom + Hexen + Castlevania.
 

Bruno Jenso

Active Member
Newcomer
Joined
Jul 19, 2015
Messages
38
Trophies
0
Age
50
XP
124
Country
@Kippykip actually this Castlevania mod is an .ipk3 file. Can that be complied with this prboom version for GBA?

Also do you have any tips for compiling normal .wad files - especially using a Mac?
 

EvilJagaGenius

Well-Known Member
Member
Joined
May 27, 2020
Messages
110
Trophies
0
XP
341
Country
United States
.pk3 files are usually used by the ZDoom family of engines, which are a lot more advanced (pardon puns) than the engine Doomhack and KippyKip are porting, which is fairly close to vanilla. You'd probably need something a lot more powerful than a GBA to run the Castlevania mod. Maybe a couple extra controller buttons too.

I'd love to have a way to compile vanilla or Boom-compatible WADs in too... though I think my favorite maps might melt my poor little GBA, lol

I did give it a shot with the Freedoom IWADs though. They do compile and run, I haven't done full playthroughs of them, but it seems they use more complex level geometry than vanilla. They defaulted to using the original Doom and Doom 2 music and SFX too, so I had a fascinating hybrid of knockoff-looking Doom with authentic audio.
 
  • Like
Reactions: Kippykip

Bruno Jenso

Active Member
Newcomer
Joined
Jul 19, 2015
Messages
38
Trophies
0
Age
50
XP
124
Country
Thanks @EvilJagaGenius That's very useful - I watch a youtube of that mod yesterday and thought it looked, as you say, way too 'advanced'. I forgot how good it looks. Generally, is compiling vanilla iwads a difficult task? - I'm just starting to dip my toes in the pool with my learning. And is it possible on a Mac? I can access a PC if I have too.
 

EvilJagaGenius

Well-Known Member
Member
Joined
May 27, 2020
Messages
110
Trophies
0
XP
341
Country
United States
It's pretty straightforward once you have a way to compile with devkitPro set up. I'm not sure how hard that is on a Mac, I use Windows. The Doomhack repository has fairly easy instructions, though. (Gah, I'm new here, can't post links yet... just search for GBADoom on Github)

Once you've got devkitPro set up, download the GBADoom code from the repository and extract it someplace you can easily find with the MSYS shell that comes with devkitPro. I keep my stuff in C:\\devkitPro\projects.

Go inside the GBAWadUtil folder. Drop your IWAD files here. If you're on Windows, you can open up a command line window here (Shift+right click gives you an Open PowerShell option), and run a command like this:
Code:
.\GbaWadUtil.exe -in IwadFileName.wad -cfile CFileName.c
For Freedoom, I used
Code:
.\GbaWadUtil.exe -in freedoom1.wad -cfile freedoom.wad.c
There's ready-made batch files too that you can use. These output straight into the source\iwad folder.

Move the generated .c files into the source\iwad folder (if they're not there already).

Look in the source folder, find doom_iwad.c and open it in a text editor. Comment out (put // before) the "#include iwad/doom1.c". Add a new line in that block that looks like "#include "iwad/CFileName.c"". When I was doing Freedoom, at the end my doom_iwad.c file looked like:
Code:
#pragma GCC optimize ("-O0")

//#include "iwad/doom1.c"
//#include "iwad/doomu.c"
//#include "iwad/doom2.c"
//#include "iwad/tnt.c"
//#include "iwad/plutonia.c"
#include "iwad/freedoom.wad.c"

#include "doom_iwad.h"

const unsigned int doom_iwad_len = sizeof(doom_iwad);

When yours looks similar, close the text editor, navigate the MSYS shell to the top folder (where you can see the build, source, include, etc. folders), and run "make". Let it chug and it should eventually spit out a GBADoom.gba ROM.

Hope this helps!
 

Kippykip

j e f f
Member
Joined
Mar 30, 2013
Messages
543
Trophies
0
Website
kippykip.com
XP
643
Country
Australia
It's pretty straightforward once you have a way to compile with devkitPro set up. I'm not sure how hard that is on a Mac, I use Windows. The Doomhack repository has fairly easy instructions, though. (Gah, I'm new here, can't post links yet... just search for GBADoom on Github)

Once you've got devkitPro set up, download the GBADoom code from the repository and extract it someplace you can easily find with the MSYS shell that comes with devkitPro. I keep my stuff in C:\\devkitPro\projects.

Go inside the GBAWadUtil folder. Drop your IWAD files here. If you're on Windows, you can open up a command line window here (Shift+right click gives you an Open PowerShell option), and run a command like this:
Code:
.\GbaWadUtil.exe -in IwadFileName.wad -cfile CFileName.c
For Freedoom, I used
Code:
.\GbaWadUtil.exe -in freedoom1.wad -cfile freedoom.wad.c
There's ready-made batch files too that you can use. These output straight into the source\iwad folder.

Move the generated .c files into the source\iwad folder (if they're not there already).

Look in the source folder, find doom_iwad.c and open it in a text editor. Comment out (put // before) the "#include iwad/doom1.c". Add a new line in that block that looks like "#include "iwad/CFileName.c"". When I was doing Freedoom, at the end my doom_iwad.c file looked like:
Code:
#pragma GCC optimize ("-O0")

//#include "iwad/doom1.c"
//#include "iwad/doomu.c"
//#include "iwad/doom2.c"
//#include "iwad/tnt.c"
//#include "iwad/plutonia.c"
#include "iwad/freedoom.wad.c"

#include "doom_iwad.h"

const unsigned int doom_iwad_len = sizeof(doom_iwad);

When yours looks similar, close the text editor, navigate the MSYS shell to the top folder (where you can see the build, source, include, etc. folders), and run "make". Let it chug and it should eventually spit out a GBADoom.gba ROM.

Hope this helps!
Yep! For custom wad's you may wanna do this extra step if you're using my fork otherwise your titlescreen will be the original one.
VP1hXP4.png
 
  • Like
Reactions: DanTheManMS

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    OctoAori20 @ OctoAori20: Ello