This is the bug/patch tracker for Rockbox. Click here for more information.
Quick links: Bugs · Patches · Rockbox frontpage
FS#2969 - Doom
Attached to Project:
Rockbox
Opened by Karl Kurbjun (kkurbjun) - Wednesday, 01 February 2006, 00:22 GMT+2
Last edited by Karl Kurbjun (kkurbjun) - Thursday, 23 February 2006, 03:19 GMT+2
Opened by Karl Kurbjun (kkurbjun) - Wednesday, 01 February 2006, 00:22 GMT+2
Last edited by Karl Kurbjun (kkurbjun) - Thursday, 23 February 2006, 03:19 GMT+2
|
DetailsHere's an initial doom port for the H300 and rockbox.
It always starts up and gets to the main menu, sometimes it will let you start a game. Unfortunately, there are graphics errors once the game starts. I will also include a diff against IDOOM if you want to try and find the problem with it. This port is based off digita doom which is in turn based off the original linux doom release (GPL'd). I started to port PrBoom but I didn't get that to a workable state. I think there may be some performance improvements from prboom that may be worth looking into specifically in the W_CheckNumForName under w_wad.c. The best guess I have for the map problems is with structure packing, but I think I'm handling that correct in gcc. Needleboy: I wouldn't recomend putting this in an optimized build or anything like that, it's in poor shape, and does not always run. |
This task depends upon
Closed by Dave Chapman (linuxstb)
Tuesday, 28 March 2006, 17:47 GMT+2
Reason for closing: Accepted
Additional comments about closing: Committed to CVS
Tuesday, 28 March 2006, 17:47 GMT+2
Reason for closing: Accepted
Additional comments about closing: Committed to CVS
Here is the diff file needed to compile the code also, it
increases the plugin buffer size and adds access to
vsnprintf to the plugins.
Thanks to Daniel Stenberg for hosting the source, here's the
code: http://daniel.haxx.se/rockbox/doom.zip
A couple of notes I forgot: it looks for wads in /doom/
also, make sure you re-run configure after applying the
patch to cvs rebuild and copy your new rockbox zip to your
player.
Also, I havn't made a sim or tested this out on one, but I
would be curious to know what the behavior is like.
With this new patch the game doesn't crash anymore (it was a
timing issue) I was sending it bad vales for tic's in
i_system.c. Also, the controls work a bit better. It
doesn't let you use more then one key at a time though.
Also sometimes the buttons get stuck. I've added in all the
packed attributes to structures ala prboom, but it doesn't
fix the graphics problems. Also, if you know the level that
you're playing pretty well (map1 of doom 2) you can beat the
level, unfortunately, the game will crash. This has to do
with lack of precision formatting in snprintf/vsnprintf or
more specifically the format function in sprintf.c under
firmware/common. I have a hack that works for the hub
loading in hu_stuff.c, and I tried briefly with wi_stuff.c,
but it didn't work for the end of game screens. To apply
this patch I think you have to name your directory olddoom
and then patch against that.
Here's a playable version of Doom. I havn't done much in
IRAM, but I've imported some of the wad handling code from
PrBoom which did give a noticable jump in performance. Thom
Johansen wrote an ASM function for the fixed multiply which
helped out as well. An ASM version of the Divide and
Absolute functions should help performance as well. The
game is now at least playable. Work still needs to be done
with the button handling (you can't run right now so there
are levels that can't be beaten). Sound needs to be done.
The compiler flags that need to be used on the IPOD are
-fpack-struct -mstructure-size-boundary=8 at least that's
what they use in iDoom. The code also still needs to be
cleaned up. And credit to the other doom ports given. An
interface for choosing the base game would be nice along
with command line option toggles. Also, Loading multiple
Wads will not work correct right now as realloc does not
copy the old malloc data over.
http://www.mines.edu/students/k/kkurbjun/doom.zip
As a note: the link in the last post is the source in case
it wasn't clear.
Here's the latest source for doom. The shareware wads are
now playable. The game is much faster as well. I am no
longer using the IDOOM code for scaling as it was a bit slow
on the H300. Their code is still present for other targets
as it's an excellent starting point. The game is running
about 150% right now (not in terms of frames, but game
speed) because of the timer. I am using HZ (100) ticks /sec
when the game is expecting 70 ticks/sec. Some code cleanup
still needs to be done. I've tried to credit code where
it's due, but I think there are still some sections that
need it. The game can now exit and the buttons are handled
ala rockboy, so it's very playable now.
The source code is here:
http://www.mines.edu/students/k/kkurbjun/doom.zip
I also updated the patch as there was another change I had
to make to rockbox (allow the button_hold() command to be
mapped in plugins for the H300.
I've updated the sources:
http://www.mines.edu/students/k/kkurbjun/doom.zip
This should fix simulator compiles and adds another speedup
in graphics for the H300. Now it is writing the doom buffer
directly to the LCD skipping the intermediate framebuffer.
I've updated the sources, this version fixes the problems
with the screen going blank. It also includes sound (no
music). The code still needs cleanups - - I also still need
to merge the changes Paul Louden has done for the ipod. An
interface for the Pwads and Iwads still has to be done.
Also, the midi patch I sent in needs at least some of this
doom patch against cvs.
The sources are still at:
http://www.mines.edu/students/k/kkurbjun/doom.zip
Here's the latest change in doom, it's extremely stable now
(at least for me). The changes are:
Fixed Nightmare mode
Fixed end game
Fixed quit crash
Added more prboom rendering code -> speedup
expanded rendering code -> speedup
Rewrote lowquality renderer and moved option to loader ->
adds 1 fps to speed
Changed Default Keys:
DOOM PLAYER
------ ------
UP REC
DOWN DOWN
LEFT LEFT
RIGHT RIGHT
SHOOT MODE
OPEN DOWN
ESC ON
ENTER SELECT
WEAPON OFF
Menu Keys now work independent of ingame keys
All code reformatted and warnings reduced (only 6 now)
New Menu code to select options and Base game
doom shareware doom1.wad
doom registered doom.wad
doom retail (ultimate doom) doomu.wad
doom 2 doom2.wad
plutonia plutonia.wad
tnt tnt.wad
Doom directory is now /games/doom/
Disabled mouse calls -> speedup
Finally have the right timer. -> run is actually usable now
Added a timedemo option for speed testing, only runs with
doom shareware,
Ultimate doom, or registered doom saves timedemo
information in /games/doom/timedemo.txt
Merged Paul's Ipod changes, hopefully it works now
Had to move doom to a new server, don't know what was wrong
with my old one:
http://alamode.mines.edu/~kkurbjun/doomnew.zip
This release eliminates all the compiler warnings for gcc 3.4 and has doom fitting into the standard plugin buffer size (0x80000).
http://alamode.mines.edu/~kkurbjun/doom.zip
Thanks!
* New sound code - no more stalls in game
* Playable external demos - place in /games/doom/demos/
* Addon code redone to search for files in /doom/addons (No more typing)
* Whole new doom engine - many more playable mods and mod features
* Rockbox volume control in game
* Save games have default text now
* 20% faster then 0.70
* Strafe button and modified keys again
* The low quality renderer has been disabled (broken)
* Freedoom is now playable http://freedoom.sourceforge.net/
Notes:
I tried a demos from: http://www.classicdoom.com/d1demos.htm and they seemed to work fine. Select "No demo" to play the game normally. After the demo is done playing the game will exit. Right now it can only handle 10 demo's in the directory.
This version will also play many many more mods for doom. This release has many of Prboom's mod features so chances are if it runs in prboom it will run in this version. The limit on addons in a directory is 10.
To play freedoom either replace your doom2.wad with the freedoom doom2.wad or place the freedoom wad in addons and select it in the addons menu (make sure you select doom2 under gametype otherwise the game will messup). Freedoom also shows some of the new in game features in this release (although it is slow at times).
GP32 mods will not play anymore. This is because of the menu screens that were made for the GP32 version. I may fix this later.
Here is a link to the top 100 wads of all time for some great levels and mods to try: http://www.doomworld.com/10years/bestwads/
I've disabled translucencies for this version due to some problems I was having with it.
The Rockbox volume change is under sound options. Unfortunately it's labeled MUSIC VOLUME for now as I don't have a graphic to use for it yet.
Save games are modified to place My Save[slot number] in the description also.
Old save games are broken and will no longer load. This unfortunate, but unavoidable. This should be the last and only time that save games are broken.
http://alamode.mines.edu/~kkurbjun/rockdoom-src-0.80.zip
Also, on my H300, it hangs in the game when I push the UP button.
Latest version:
alamode.mines.edu/~kkurbjun/rockdoom-src-0.81.zip
alamode.mines.edu/~kkurbjun/rockdoom-src-0.85.zip
This version simplifies the addon code and makes rockdoom run fine on the sim.
http://alamode.mines.edu/~kkurbjun/rockdoom-src-0.86.zip
Also the plugin says it 0.85 while I do have 0.86 installed..
How about we commit what Karl has now and give him CVS commit access to continue working with doom directly in the CVS tree?
As far as iAudio support, I think it needs a developer interested in that platform. I will be interested in working on other ports once I have all the foundation work done.
alamode.mines.edu/~kkurbjun/rockdoom-src-0.90.zip