GBADoom: Difference between revisions

From GameBrew
No edit summary
No edit summary
Line 26: Line 26:
* Framerate is pretty variable. Simple areas run at ~35fps. Complex areas (Eg: E4M2) chug along at about 10 FPS. It's running around the same as the original GBA Doom1 and Doom2 ports. Doom1 Episodes 1-3 are all completely playable. Episode 4 chugs.
* Framerate is pretty variable. Simple areas run at ~35fps. Complex areas (Eg: E4M2) chug along at about 10 FPS. It's running around the same as the original GBA Doom1 and Doom2 ports. Doom1 Episodes 1-3 are all completely playable. Episode 4 chugs.
* Sound and music support. Big thanks to BloodShedder for his Chiptune Doom MOD files.
* Sound and music support. Big thanks to BloodShedder for his Chiptune Doom MOD files.
==Building==
To build the GBA version, you will need:
* DevKitArm. The easiest way to get up and running for Windows users is get the [https://github.com/devkitPro/installer/releases installer] and install the GBA dev components.
* GBAWadUtil, included in the "GBAWadUtil" directory. Alternatively download the latest build from the [https://github.com/doomhack/GbaWadUtil main source].
* Download or Clone GBADoom source code. Extract the contents to a folder (e.g. C:\DevKitPro\Projects\GBADoom).
Use GBAWadUtil to create a header file with the WAD data.
* Retail, Ultimate and Doom2 wads have been tested. Plutonia and TNT should mostly work.
* Open a command prompt. Type <code>GbaWadUtil.exe -in doom.wad -cfile doom.wad.c</code>. Copy it to the source\iwad\ directory.
* Alternatively just run the build_XXXX.bat files and it'll create it in the source\iwad\ path.
Then go to C:\DevKitPro\Projects\GBADoom\source\.
* Open doom_iwad.h in text editor or code editor of your choice.
* Change the first line to <code>#include "iwad/yourfile.c"</code>
* (e.g. #include "iwad/doom1.c" #include "iwad/doom.c" #include "iwad/doom2.c" #include "iwad/tnt.c" #include "iwad/plutonia.c")
Now run msys2.bat and type <code>make</code>.
* You may need to edit the msys2.bat with notepad and change the path to go to your real "msys2\msys2_shell.bat" file within it if it doesn't work.
* The project should build GBADoom.gba and GBADoom.elf. It will take about 5 minutes or so.
* You may see a lot of warning messages on the screen. These are normal.
Copy GBADoom.gba (this is the rom file) to your flash cart or run in a emulator.


==User guide==
==User guide==

Revision as of 14:44, 3 February 2023

GBADoom
Gbadoom2.png
General
Authordoomhack
TypeShooter
Version2.5
LicenseMixed
Last Updated2023/01/29
Links
Download
Website
Source

GBA Doom is a port of prBoom to the GBA. Comes with a pre-compiled build with the shareware wad embedded.

Features

  • Supports Doom Shareware, Retail, Ultimate and Doom2 IWADS.
  • Renderer is largely intact. Z-Depth lighting is gone and there is mip-mapping but it's otherwise complete.
  • Monster behaviour is all intact (I.e sound propagation etc).
  • Framerate is pretty variable. Simple areas run at ~35fps. Complex areas (Eg: E4M2) chug along at about 10 FPS. It's running around the same as the original GBA Doom1 and Doom2 ports. Doom1 Episodes 1-3 are all completely playable. Episode 4 chugs.
  • Sound and music support. Big thanks to BloodShedder for his Chiptune Doom MOD files.

User guide

Cheats

  • Chainsaw - L, UP, UP, LEFT, L, SELECT, SELECT, UP
  • God mode - UP, UP, DOWN, DOWN, LEFT, LEFT, RIGHT, RIGHT
  • Ammo & Keys - L, LEFT, R, RIGHT, SELECT,UP, SELECT, UP
  • Ammo - R, R, SELECT,R, SELECT,UP, UP, LEFT
  • No Clipping - UP, DOWN, LEFT, RIGHT, UP, DOWN, LEFT, RIGHT
  • Invincibility - A, B, L, R, L, R, SELECT, SELECT
  • Berserk - B, B, R, UP, A, A, R, B
  • Invisibility - A, A, SELECT,B, A, SELECT, L, B
  • Auto-map - L, SELECT,R, B, A, R, L, UP
  • Lite-Amp Goggles - DOWN,LEFT, R, LEFT, R, L, L, SELECT
  • Exit Level - LEFT,R, LEFT, L, B, LEFT, RIGHT, A
  • Enemy Rockets (Goldeneye) - A, B, L, R, R, L, B, A
  • Toggle FPS counter - A, B, L, UP, DOWN, B, LEFT, LEFT

Mod and conversions

Controls

B - Fire

A - Use, Sprint

D-Pad - Walk

L/R - Strafe

Select - Automap

A+R - Weapon up

A+L - Weapon down

Start - Menu

Screenshots

gbadoom3.pnggbadoom4.png

Compatibility

Plays on most emulators or a real device if you have a flash cart.

Known issues

Demo compatibility is broken.

General optimisation. It is never going to get a perfect 35FPS but there maybe still another 25% left without changing the visual quality/correctness/game behaviour. For reference, the first build ran under the emulator it ran at about 3FPS.

Although it is based on prBoom, most of the engine enhancements (dehacked, limit removing etc) have been reverted back to Vanilla. This is either for memory or performance reasons. Sadly, NUTS.wad and Okuplok are right out.

No multiplayer.

Changelog

2.5

  • Remove Invulerabiliy cheat on type-11 floors. (E1M8 ending) With thanks to ez-me.
  • Fix sprite render error in low-detail mode where sprites would spill off the right edge of the screen

2.4

  • Fix sprites not rendering properly.

2.3

  • Fix broken sound in 2.2.

2.2

  • Added high detail graphics mode. In this mode sprites are drawn at full resolution and texture mipmapping is removed. There is a modest framerate penalty.
  • Various Memory savings. Saved a few kb here and there by using bitfields, factoring out struct members. All of Plutonia with the exception of Map 28 will load and play now on Nightmare.
  • Use the original iD Doom Zone memory allocator. This removes some overhead from each memory allocation.
  • Minor performance improvements.

2.1

  • Add screen wipe effect back in. Backported from here.
  • Some fairly minor optimisations. Mainly factoring out division.
  • Build with Link time code gen. (-flto).

2.0

  • Lots of optimisations. Factored out more division, use reciprocal table, move more code to IWRAM. Offers around a 15-25% improvement in FPS.
  • Some memory savings. There's still a couple of levels in Plutonia that won't load, (Map 23 & 28).
  • Added framerate display. (Which can be accessed via a cheat. Thanks KipyKip. Why didn't I think of that!?) It replaces your current weapon ammo display and is in 10th's. So 234 = 23.4FPS.
  • Fixed cyberdemon and spiderdemon not being drawn at distances over 1280 units.
  • Allowed PC build for debugging with MSVC compiler too (Use 32bit. I don't think it works 64bit due to struct alignment).

External links

Advertising: