Giter Site home page Giter Site logo

retrogamer02 / gbafreedoom Goto Github PK

View Code? Open in Web Editor NEW

This project forked from doomhack/gbadoom

6.0 0.0 3.0 81.58 MB

A FreeDoom fork of DoomHacks port of prBoom to the Nintendo GBA.

QMake 0.21% C++ 61.10% C 38.31% Makefile 0.28% Assembly 0.10% Batchfile 0.01%

gbafreedoom's Introduction

GBAFreedoom

The Freedoom IWAD was made thanks to the Freedoom team, a free and open-source game based on the Doom engine.

A port of prBoom to the GBA.

This is a result of me, Devin "RetroGamer02", messing around, it works but it's not great. With some help maybe it could be.

What's hot?

  • Supports Freedoom IWAD.

  • 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 (e.g.: C4M2) chug along at about 10 FPS. It's running around the same as the original GBA Doom I and Doom II ports. Doom I Episodes 1-3 are all completely playable. Episode 4 chugs.

  • Sound and music support. Big thanks to BloodShedder for his Chiptune Doom MOD files.

What's not?

  • My Markdown skills.

  • Demo compatibility is broken.

  • General optimisation. We're never going to get a perfect 35FPS, but I think there is still another 25% left without changing the visual quality/correctness/game behaviour. For reference, the first time I ran a build 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.

KippyKip is maintaining an upstream fork of DoomHacks GBADoom with new features and fixes. KippyKip GBA fork

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

Controls:

Fire: B
Use / Sprint: A
Walk: D-Pad
Strafe: L & R
Automap: SELECT
Weapon up: A + R
Weapon down: A + L
Menu: Start

Building:

To build the GBA version, you will need DevKitArm. The easiest way to get up and running for Windows users is to download the installer from here and install the GBA dev components.

You will also need to use GBAWadUtil, included in the "GBAWadUtil" directory. Alternatively, download the latest build from the main source Windows (x64) users can download the binary release from the releases page.

  1. Download or Clone GBAFreedoom source code. Extract the contents to a folder: (e.g.: C:\DevKitPro\Projects\GBAFreedoom)

  2. Use GBAWadUtil to create a header file with the WAD data. Open a command prompt. Type the following: GbaWadUtil.exe -in Freedoom1.wad -cfile Freedoom.wad.c And 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.

  3. Open C:\DevKitPro\Projects\GBADoom\source\doom_iwad.h in text editor or code editor of your choice.

  4. Change the first line to #include "iwad/yourfile.c" e.g. #include "iwad/Freedoom1.c" #include "iwad/Freedoom2.c"

  5. Run msys2.bat and type make 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.

  6. The project should build GBAFreedoom.gba and GBAFreedoom.elf. You may see a lot of warning messages on the screen. These are normal.

  7. Copy GBAFreedoom.gba (this is the ROM file) to your flash cart or run in an emulator.

Developers:

For development, this project also builds for Windows with Qt. Use the MingW 32bit version or MSVC 32bit. The .pro file at the root of the source tree can be opened in Qt Creator.

gbafreedoom's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

gbafreedoom's Issues

EvilJagaGenius's Request's

  • Level transition music replaced with FreeDoom's and reduced to 6 channels.
  • E1M4 - Some Box's restored
  • E1M5 - Big room has Nuke Pits again
  • E1M5 - Zombie's at start missing elevator raise trigger so I found best to move the zombies so the player has time to react at level load.
  • E1M5 - Texture alignment fixed.
  • General - Switches not changing texture needs investigation.
  • E1M6 - FPS Chugs some optimalizations applied may need more.
  • General - Save dropped on level E1M7 possible save buffer issue?
  • General -FreeDoom Dialog added in d_englsh.h and Doom 1 hardcoded for now.

Some maps don't load

I'm using Doom Builder 2 + Slade and GLBSP + pack side defs option to simplify and compress these maps.

  • E1M5 Works - Currently reduced to 236.67kb from 817.77kb old size.
  • E1M6 Works but laggy in spots - Currently reduced to 211.17kb - old size 310.53kb
  • E1M7 Works - Currently reduced to 240.25kb - old size 501.74kb
  • E2M5 Works waiting full testing - Currently reduced to 271.15kb - old size 699.66kb
  • E2M9 Works waiting full testing - Currently reduced to 270.81kb - old size 439.55kb
  • E3M4 Works - Currently reduced to 231.36kb
  • E3M5 Works - Currently reduced to 214.52kb
  • E3M7 Works but laggy in spots Currently reduced to 194.42kb
  • E3M9 Works - Currently reduced to 265.29kb
  • E4M2 Started Currently reduced to 394.42kb
  • E4M6 Not Working
  • E4M7 Not Working
  • E4M9 Not Working

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.