gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS homebrew announcements > Wolfenstein 3D DS - Alpha Release

#135903 - Lazy1 - Fri Jul 27, 2007 9:29 am

Took me long enough eh?
http://lazyone.drunkencoders.com/wordpress/

Please post any bugs or issues you encounter.

#135911 - Diddl - Fri Jul 27, 2007 11:12 am

cool, it's long awaited! your old version only runs on my old SC and only first level.


do you continue development so all levels of both of the full versions are playable? do you offer the source code with the final version?

#135941 - Metaluna - Fri Jul 27, 2007 6:29 pm

Thanks Lazy1, it was really worth waiting!

#135960 - Lazy1 - Fri Jul 27, 2007 11:01 pm

I just posted an updated binary which I hope will fix the gfx issues with ds-x cards, so if your having that problem try the updated binary.

Diddl: As far as I know all versions are playable, but some work still needs to be done for them.
For example, the menu in spear of destiny is missing it's background and you cannot return to game.

The source code will be released once I have builds for all 4 wolf3d versions available.

Metaluna: :) Though I hadn't realized it had been more than a year since I last released a wolf3d build.

I may also look into adding a map since it's very easy to get lost and run in circles.

#135976 - OSW - Sat Jul 28, 2007 3:08 am

Awesome. trying it out now.
I also agree a map could be quite useful.


btw, are you still continuing dev for mini vmac DS?

#135985 - Jakeohagan - Sat Jul 28, 2007 6:49 am

Lazy1 i find myself strangely happy.

thank you.
_________________
God Speed

#135994 - Diddl - Sat Jul 28, 2007 11:57 am

Wolf3d workd fine, I'm happy to see this game running.


On my R4 it works properly. on my ds linker (Neo MK-5) it doesn't. The upper screen shows an incorrect picture. The menu text isn't really readable. But you can move up and down. After starting a new game the lower screen shows a red background and register listing as an error???

I've tried this with latest v1.45 OS of MK-5. Same result with older one: v1.42, v1.44

#135995 - Lazy1 - Sat Jul 28, 2007 12:11 pm

Unfortunately there is not much I can do to fix the problems with the MK5, unless Neoflash offers them free to developers I don't see that being fixed until I release the source. (soon enough).

#135996 - Diddl - Sat Jul 28, 2007 12:32 pm

If you want I can enter whole mesage from lower screen? I think it's maybe a problem of initializing screen, - maybe the MK-5 menu has a special setting for crt controller register.

there is no other homebrew doesn't work at my MK-5.


NeoFlash has offered to send MK-5 cartridges to developer for free. many developer got their free MK-5 cartidge already. you only have to register at their homepage and write it is for testing Wolf3d. klick

#135997 - Lazy1 - Sat Jul 28, 2007 12:44 pm

If someone has an MK5 and wants to fix this bug let me know so I can get the source to you, I'll talk to neoflash in the meantime.

#135998 - Diddl - Sat Jul 28, 2007 12:48 pm

I want to fix this bug and I have a MK-5. I have good C skill and I already have a devkitpro r20 installed. But I don't have any experience in NDS programming.


I have made some screenshots, hopely it helps you:

[url=http://web3.vs2066076.netfabrik.de/nds/CIMG4541_Bildgr??e ?ndern.JPG]klick[/url]
[url=http://web3.vs2066076.netfabrik.de/nds/CIMG4542_Bildgr??e ?ndern.JPG]klick[/url]
[url=http://web3.vs2066076.netfabrik.de/nds/CIMG4543_Bildgr??e ?ndern.JPG]klick[/url]
[url=http://web3.vs2066076.netfabrik.de/nds/CIMG4544_Bildgr??e ?ndern.JPG]klick[/url]
[url=http://web3.vs2066076.netfabrik.de/nds/CIMG4545_Bildgr??e ?ndern.JPG]klick[/url]
[url=http://web3.vs2066076.netfabrik.de/nds/CIMG4546_Bildgr??e ?ndern.JPG]klick[/url]


Last edited by Diddl on Sat Jul 28, 2007 12:50 pm; edited 1 time in total

#135999 - Lazy1 - Sat Jul 28, 2007 12:50 pm

From what I see neoflash is only offering MK2s to developers and even then that looks expired :/

Image links are broken too btw...

#136000 - Diddl - Sat Jul 28, 2007 12:52 pm

sorry, it's a problem with a blank in this URL's ...

http://web3.vs2066076.netfabrik.de/nds/CIMG4541_Bildgr%F6%DFe%20%E4ndern.JPG
http://web3.vs2066076.netfabrik.de/nds/CIMG4542_Bildgr%F6%DFe%20%E4ndern.JPG
http://web3.vs2066076.netfabrik.de/nds/CIMG4543_Bildgr%F6%DFe%20%E4ndern.JPG
http://web3.vs2066076.netfabrik.de/nds/CIMG4544_Bildgr%F6%DFe%20%E4ndern.JPG
http://web3.vs2066076.netfabrik.de/nds/CIMG4545_Bildgr%F6%DFe%20%E4ndern.JPG
http://web3.vs2066076.netfabrik.de/nds/CIMG4546_Bildgr%F6%DFe%20%E4ndern.JPG

#136002 - Lazy1 - Sat Jul 28, 2007 1:05 pm

Maybe the DLDI driver has a bug?
Wolfenstein seems to work on everything else, did you try the updated version I posted on my blog?

#136004 - Diddl - Sat Jul 28, 2007 1:24 pm

yes, this updated version gives same result.


there is no DLDI driver, cause MK-5 has auto DLDI patching like DS-X.

All DLDI tests pass without an error. I used a test program from myself (klick) and this one from Chishm.

#136005 - Lazy1 - Sat Jul 28, 2007 1:33 pm

Unless I see lots of people with other carts having problems I'll assume it's their buggy I/O drivers.
Not much else I can do.

#136007 - Diddl - Sat Jul 28, 2007 1:41 pm

I'm sure it isn't the io driver itself.

DSdoom v1.1.1 works fine on MK-5 without problems and with saving. So I cannot believe in a problem with this DLDI driver.

#136008 - Diddl - Sat Jul 28, 2007 2:15 pm

Diddl wrote:
DSdoom v1.1.1 works fine on MK-5 without problems and with saving.


oh, I just have seen there is a new dsdoom version out in SVN - v1.1.2.

now it is compileable with my devkitpro r20!


and it also works fine on my MK5 with all four wad files (doom, doom2, tnt, plutonium).

#136011 - Lazy1 - Sat Jul 28, 2007 2:31 pm

I don't know what to say then, maybe doom has it's data packed into WAD files differently than wolfenstein's vswap file.

#136012 - tepples - Sat Jul 28, 2007 2:42 pm

Lazy1 wrote:
I don't know what to say then, maybe doom has it's data packed into WAD files differently than wolfenstein's vswap file.

Especially because some DLDI drivers act defective when asked to perform reads and writes that are not aligned to 4-byte boundaries.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#136013 - Lazy1 - Sat Jul 28, 2007 2:47 pm

tepples wrote:

Especially because some DLDI drivers act defective when asked to perform reads and writes that are not aligned to 4-byte boundaries.


I guess neoflash users are stuck until they decide to fix their driver to allow unaligned reads, I doubt ID is going to re-pack the wolf3d data files any time soon.

#136014 - Diddl - Sat Jul 28, 2007 2:49 pm

tepples wrote:
Especially because some DLDI drivers act defective when asked to perform reads and writes that are not aligned to 4-byte boundaries.


sorry, but this is bullshit!

the dldi io driver only performs block read and block write commands. all file read and write issues are done by libfat and this part is same on all cards.

#136015 - Lazy1 - Sat Jul 28, 2007 2:52 pm

Actually it's not, because I seem to remember the DS-X forcing aligned reads and breaking several applications.

#136017 - Diddl - Sat Jul 28, 2007 3:02 pm

Lazy1 wrote:
Actually it's not, because I seem to remember the DS-X forcing aligned reads and breaking several applications.


I cannot believe this.

Look into the DLDI driver API, there are only functions to initialize driver and to read and write whole sectors. nothing about 4 byte boundaries, this is done by libfat itself not by the DLDI driver.

#136018 - Lazy1 - Sat Jul 28, 2007 3:09 pm

http://forums.ds-xtreme.com/showpost.php?p=29945&postcount=106
Full thread: http://forums.ds-xtreme.com/showthread.php?t=2667&highlight=align

Though that was for the DS-X, I would assume that neoflash has the same issue.

#136020 - tepples - Sat Jul 28, 2007 3:20 pm

Diddl wrote:
Look into the DLDI driver API, there are only functions to initialize driver and to read and write whole sectors.

But when some drivers are asked to read a whole sector into a data buffer that is not aligned, they misbehave. For example, if your code causes libfat to ultimately make a disc_io call like this:
Code:
void bug(u32 sector) {
  char buf[516] __attribute__((aligned(4)));
  driver->fn_readSectors(sectorNo, 1, buf + 1);
}

a driver might become confused.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#136021 - Metaluna - Sat Jul 28, 2007 3:48 pm

Lazy1 wrote:
I may also look into adding a map since it's very easy to get lost and run in circles.


If you add it, please make it optional. Because, I do believe part of the fun of this game is to get a bit lost in some of the hardest levels. :)

About the release, is it me or the "humming" sound when we search the walls for secret passage is currently missing?

#136023 - Lazy1 - Sat Jul 28, 2007 4:00 pm

The only way I could get some of the sounds working such as ammo pickup, health, treasures was to capture the output of them in dosbox and package them separately in place of a real YM3812 sound chip needed to make those sounds.
The hit wall sound did not work well with this method unfortunately, but if it's that important I will try again.

I think the map would be either accessible from the menu or only show areas you have been, but I would probably keep it in the menu.

#136110 - Lazy1 - Sun Jul 29, 2007 8:55 am

I'm 99% sure that the corruption problem lies with the MK5 DLDI driver, removing unaligned read support from the SCCF DLDI provides roughly the same issue you are having.

I don't know what I can do about this now though.

#136134 - Diddl - Sun Jul 29, 2007 4:02 pm

Lazy1 wrote:
I'm 99% sure that the corruption problem lies with the MK5 DLDI driver ...


I beg your pardon, you are absolutly right. This MK-5 driver has a bug. I have changed my fat test program and can reproduce it. I will notify NeoFlash about it.

It is possible to make a small change in the libfat to avoid the problem. In case of a address where bit 0 or 1 isn't 0 you can add a memcpy to a buffer. But this will decrease the performance of libfat a little bit. With this libfat version wolf3d should run on MK-5.

#136159 - Lazy1 - Sun Jul 29, 2007 8:52 pm

Diddl wrote:

It is possible to make a small change in the libfat to avoid the problem. In case of a address where bit 0 or 1 isn't 0 you can add a memcpy to a buffer. But this will decrease the performance of libfat a little bit. With this libfat version wolf3d should run on MK-5.


Well, it seems MK5 owners may be in luck then...

Code:

int8_t ReadInt8( int fileHandle ) {
   int8_t result;

   if ( fileHandle > -1 ) {
      fread( &result, 1, 1, ( FILE* ) fileHandle );
      return result;
   }

   return 0;
}

int16_t ReadInt16( int fileHandle ) {
   byte data[ 2 ];

   if ( fileHandle > -1 ) {
      fread( data, 1, 2, ( FILE* ) fileHandle );
      return ( int16_t ) ( data[ 0 ] | data[ 1 ] << 8 );
   }

   return 0;
}

int32_t ReadInt32( int fileHandle ) {
   byte data[ 4 ];

   if ( fileHandle > -1 ) {
      fread( data, 4, 1, ( FILE* ) fileHandle );
      return ( int32_t ) ( data[ 0 ] | data[ 1 ] << 8 | data[ 2 ] << 16 | data[ 3 ] << 24 );
   }

   return 0;
}

int ReadBytes( int fileHandle, byte* data, int size ) {
   if ( fileHandle > -1 )
      return fread( data, 1, size, ( FILE* ) fileHandle );

   return 0;
}


If someone can modify that code to properly align reads then I could release a "fix" for MK5 users.
I'd do it myself but I don't fully understand the problem, I have never had to deal with this sort of thing before.

#136223 - Diddl - Mon Jul 30, 2007 8:34 am

I try to make a "special" libfat library file (.a).

#136235 - Lazy1 - Mon Jul 30, 2007 11:38 am

I think that's taking it too far, if it can be done in those wrapper functions I posted earlier then fine, that is a sort of acceptable workaround.
Modifying libfat is not.

#136237 - chishm - Mon Jul 30, 2007 1:27 pm

Try the latest DLDI tester on the MK5. If it fails any test, then the DLDI driver is at fault. I don't believe that programs should be modified to accomodate faulty DLDI drivers, rather the driver should be fixed or the device discarded as faulty.
_________________
http://chishm.drunkencoders.com
http://dldi.drunkencoders.com

#136319 - Diddl - Tue Jul 31, 2007 7:49 am

With latest DLDI Tester the error message appears: Can't handle unaligned reads.


Could we implement a "switch" or a "Property" in the libfat to support such devices which has a bad dldi driver?


I will send this latest DLDI Tester to NeoFlash and beg for a updated DLDI support.

#136323 - chishm - Tue Jul 31, 2007 10:03 am

Diddl wrote:
Could we implement a "switch" or a "Property" in the libfat to support such devices which has a bad dldi driver?

I look at it like this:
Q1) Did you buy the hardware to play pirate warez or homebrew applications?
warez -> GTFO
applications -> Goto Q2.

Q2) Does the card run homebrew applications that it should be able to (ie, ones that run on a comparable card from a different manufacturer)?
Yes -> Congratulations, you got what you paid for.
No -> Your card is faulty. Send/take it back and get a refund, or ask for a fix. Do your research next time.

As an analogy, let's say you bought a video card for a Linux PC. It is advertised as working under Linux so you buy it. However, when you get it home you realise that it will only operate at 320x240 resolution. Do you:
a) take it back and buy the similarly priced card from another manufacturer that has full Linux compatibilty in all modes,
b) spend dozens of hours reverse engineering it so you have a chance of getting it to run, or
c) ask everyone to reduce the minimum window size of their applications so you can use them on your crippled system?
_________________
http://chishm.drunkencoders.com
http://dldi.drunkencoders.com

#136354 - phanboy_iv - Tue Jul 31, 2007 9:08 pm

This port actually introduced me to this game, and was enough to make me buy the full version on CD off of ebay.

Thanks, Lazy1!

#136368 - Lazy1 - Tue Jul 31, 2007 11:11 pm

phanboy_iv wrote:
This port actually introduced me to this game, and was enough to make me buy the full version on CD off of ebay.

Thanks, Lazy1!


Good to hear, once I get a few issues worked out the full version will be playable with the DS port.

#136495 - Diddl - Thu Aug 02, 2007 9:55 am

I have a problem to save a game into an allocated slot. There appears a message to confirm overwrite. The only key working is SEL, but it overwrites only "sometimes". I have repeated it often, it save sometimes not always.

#136524 - Diddl - Thu Aug 02, 2007 4:16 pm

Diddl wrote:
I have a problem to save a game into an allocated slot. There appears a message to confirm overwrite. The only key working is SEL, but it overwrites only "sometimes". I have repeated it often, it save sometimes not always.


forget this, I was silly. overwrite savegames works fine with 'Y'!!

the only thing ...
... it would be nice to leave the menu "return to game" with "B" button.

#136525 - Lazy1 - Thu Aug 02, 2007 4:38 pm

That's a good idea since there is no exit in the DS version.
Music may also be possible if two things happen:

1) I can get midis to play on the arm7
2) The guy who made the music releases all of it and allows me to use it in the port

There are a few midis out there (not the ones made by imf2midi) and they sound so much better than the old adlib hardware.

#136533 - needlesmcgirk - Thu Aug 02, 2007 5:35 pm

Excellent work on this! Can't wait till its working with the whole game. I never actually beat Wolfenstein (never beat any of the Dooms either) but it was so much fun to play back in the day. Thanks man!

#136536 - Diddl - Thu Aug 02, 2007 6:12 pm

needlesmcgirk wrote:
Excellent work on this! Can't wait till its working with the whole game. I never actually beat Wolfenstein (never beat any of the Dooms either) but it was so much fun to play back in the day. Thanks man!


Yes!! thanks for this port!!!

I also can't await to run "spears of destiny". :-)

#136597 - Lazy1 - Fri Aug 03, 2007 2:20 am

I am working on getting spear to work, though there are quite a few issues with the menu that I hope I can fix without taking too much time.

I have also decided that the next release will come with the source code, maybe this will encourage to use the wolf3d engine as the basis for an entirely new game.
Sure the engine may be simple, but sometimes the simplest games are the best ones :)

#136598 - Jakeohagan - Fri Aug 03, 2007 2:36 am

Lazy1 wrote:
I am working on getting spear to work, though there are quite a few issues with the menu that I hope I can fix without taking too much time.

I have also decided that the next release will come with the source code, maybe this will encourage to use the wolf3d engine as the basis for an entirely new game.
Sure the engine may be simple, but sometimes the simplest games are the best ones :)


well said my friend! have you release a Wolf3d full version yet? i can't wait to play spear. and i also know a guy that made a game from the wolf engine...
_________________
God Speed

#136614 - Diddl - Fri Aug 03, 2007 7:55 am

Lazy1 wrote:
I am working on getting spear to work, though there are quite a few issues with the menu that I hope I can fix without taking too much time.


can I help you? testing, coding, anything I can do?

#136622 - Metaluna - Fri Aug 03, 2007 11:40 am

Lazy1 wrote:

Music may also be possible if two things happen:

1) I can get midis to play on the arm7
2) The guy who made the music releases all of it and allows me to use it in the port

There are a few midis out there (not the ones made by imf2midi) and they sound so much better than the old adlib hardware.


Maybe, you could try to contact Robert Prince : http://www.bpmusic.com/

#136636 - Diddl - Fri Aug 03, 2007 1:39 pm

concerning midi player - look at this URL: klick

source code is includes in this zip files.


(Pulse DS turns the DS into a MIDI synthesizer that uses the DS's PSG (programmable sound generator) to produce Game-Boy-like sounds.)

#136649 - Lazy1 - Fri Aug 03, 2007 3:29 pm

Actually I have decided on using raw adpcm audio, the filesize is good and everything sounds ok.
There is the problem of finding a command line adpcm converter (sox won't work).

I will be providing tools to:
- Extract IMF files from the audiot data
- Convert the IMF to raw pcm audio

This also means you can probably use your own music if you wanted to.

[Edit]
FFMPEG Produces DS compatible IMA-ADPCM audio.

#136943 - Lazy1 - Mon Aug 06, 2007 7:02 pm

I'm going to need some testers and someone to write music conversion scripts on windows and linux.
I figure that having more people looking for bugs, the better.

Also, I have decided against enabling the configuration menu in-game.
The menu code is so messy and complicated it was just taking too much time, instead a simple text file will be used.

Example:
Code:

# Wolfenstein 3D for Nintendo DS Configuration
# 2007 TheLazy1 (http://lazyone.drunkencoders.com)

# Input configuration
turnleft=left
turnright=right
forward=up
backward=down
strafeleft=lbutton
straferight=rbutton
shoot=a
use=b
run=x
changeweapon=y

# Gamma correction
gammalevel=2.2

# Textured ceilings/floors
# NOTICE:
# This WILL slow down the renderer!
#
# floorpage and ceilingpage Are which texture to use for the ceiling and floor.
# You can use a program such as wolfedit to find the page of a certain texture.
textureplanes=false
floorpage=3
ceilingpage=42

# Sound
sound=true
music=true


Source will also be available to testers if they request it.

#136954 - Diddl - Mon Aug 06, 2007 8:57 pm

I would like to be a tester for you.

#137067 - Lazy1 - Tue Aug 07, 2007 7:04 pm

I just have to get music working now, the next release will support registered wolf3d but not spear of destiny since it still has menu issues.

#137236 - Diddl - Thu Aug 09, 2007 7:34 am

For testing the full version maybe a cheat code would be useful.

I have tested shareware version up to e1m9. But here is a large hall and two doors. After the second door there is boss opponent who is unconquerably (for me).

All levels up to e1m9 work fine. I have entered all rooms and found some secret places.

#138695 - Metaluna - Mon Aug 27, 2007 11:38 pm

To beat the boss, you must use the secret passage on the left wall : plenty of ammo and medipak.

#138702 - MP2E - Tue Aug 28, 2007 1:58 am

Hey, lazy1, when you finish the ARM7 music player could I please have the source to add music to DSDoom?

#138709 - Lazy1 - Tue Aug 28, 2007 3:47 am

I have barely started anything, I have a few functions for reading wav files so far but my time is split between many things.
IF I do manage to finish it, sure.

#138719 - Diddl - Tue Aug 28, 2007 7:51 am

midi music should be no problem since GPF had released SDL-mixer lib for NDS.

But ARM9 have to extract midi stream from wad and send it to ARM7 by a FiFo. Has ARM7 code a size limitation?

#138858 - MP2E - Wed Aug 29, 2007 10:21 pm

Diddl wrote:
midi music should be no problem since GPF had released SDL-mixer lib for NDS.

But ARM9 have to extract midi stream from wad and send it to ARM7 by a FiFo. Has ARM7 code a size limitation?

Well, also, you could provide a tool to extract the midis on the computer, then put them in a directory thus removing all ARM9 instruction. But wad extraction would be much better

#138859 - Lazy1 - Wed Aug 29, 2007 10:32 pm

There is no CPU time left for music on the arm9.
The music is also not in MIDI format, there are a few re-released songs from wolf3d as MIDIs but it's nowhere near the full 27 tracks.

I will get around to writing my adpcm decoder at some point, I have more work to do in Mini vMac first though since that project has been idle for more than a year.

#138983 - Doom5 - Fri Aug 31, 2007 12:47 pm

I found another OPL2/OPL3 emulator besides the one in the MAME sources. This one is by Ken Silverman, famous for Ken's Labyrinth and the BUILD engine here http://www.advsys.net/ken/ksmsongs.zip

#139128 - Metaluna - Sun Sep 02, 2007 2:27 pm

finished the shareware version twice. Can't wait for full version and Spear of Destiny! ^^

Thanks again for all your hard work Lazy1, it is a real pleasure to rediscover this great game!

#139140 - Diddl - Sun Sep 02, 2007 5:45 pm

I am also waiting hard for next release. SOD!

In the meantime you could play ROTT, the game after wolf3d with the extended wolf3d engine. It works very fine for NDS: click

#139147 - Metaluna - Sun Sep 02, 2007 8:35 pm

I already had an eye on Dopefish's amazing work but thanks anyways!

ROTT is amazing so far, but I do hope Dopefish will manage to add sound support pretty soon!

#140516 - Lazy1 - Mon Sep 17, 2007 12:37 am

Status update:

I have my development environment set up again and will be starting on Wolfenstein again very soon.
There is lots to do because of the loss of recent features in a weird source loss accident but they should be easy to add again.

However, I did complete the tools required to extract and convert the music files. All I need to do now is test them on win32, linuxppc and osx.

Also, I have sent an email to ID software asking for the source code to be re-licensed under the GPL.
If this is successful I will add the helix MP3 decoder and the next release will have MP3 support.

If not, I will just have to go back to writing and ADPCM decoder.
They both sound the same but MP3s are a lot smaller.

Shareware music:
PCM: 55MB
ADPCM: 15MB
MP3: 5MB

The source code to the music tools getimfs and imf2wav are available on request.

#141097 - emuflux - Sat Sep 22, 2007 2:01 am

I can not wait for the next release. Keep up the great work Lazy1!

#141199 - Lazy1 - Sun Sep 23, 2007 4:17 am

Well, my IMF extraction tool finally works on ppc but unfortunately imf2wav does not since for some reason the OPL emulator crashes.
So far I'm not getting any output from the dosbox OPL emulator either, hopefully something will work soon.

#141213 - Lazy1 - Sun Sep 23, 2007 6:30 am

After talking to someone in the FSF IRC channel it doesn't look like there would be any issues with license incompatibilities after-all if I were to have an MP3 decoder on the ARM7.
Since both binaries run independently it should be fine. It doesn't look like keeping both in the same container is a problem either.

I'm no lawyer but it looks like this is a good enough workaround to begin adding MP3 support.
However, if there are experienced legal people who know otherwise please let me know.

#141231 - Doom5 - Sun Sep 23, 2007 10:33 am

Simon, the QuakeDS porter uses the Helix MP3 decoder on his port and never mentioned any licensing issues. I don't know if Quake and Wolf 3d were released under difference licenses though.

#141232 - Lazy1 - Sun Sep 23, 2007 10:39 am

Quake was licensed under the GPL which is compatible with the RSPL, wolfenstein has the incompatible ID software license.
This shouldn't be a problem though since the arm7 and arm9 binaries are essentially two separate applications.

I did a quick hack-in of the helix mp3 example that was posted on this forum and the music sounds perfect coming out of the DS :)
This hack job won't stand for release since I will need to stream the MP3s since some are too large to fit in RAM (not good anyways).

I'll have to see how quake does it.

#141254 - Doom5 - Sun Sep 23, 2007 4:17 pm

Lazy1 wrote:
Quake was licensed under the GPL which is compatible with the RSPL, wolfenstein has the incompatible ID software license.
This shouldn't be a problem though since the arm7 and arm9 binaries are essentially two separate applications.

I did a quick hack-in of the helix mp3 example that was posted on this forum and the music sounds perfect coming out of the DS :)
This hack job won't stand for release since I will need to stream the MP3s since some are too large to fit in RAM (not good anyways).

I'll have to see how quake does it.


Which Adlib emulator are you using? The mame/adplug one or Ken Silverman's one he developed for his .ksm files? I don't know if you've given the latter one a shot, I would hope getting his emulator to read IMFs wouldn't be any more difficult than properly parsing the different header information.

BTW, would you be able to release your IMF extraction and conversion tools for those who would like to listen to these classic adlib tunes from Wolf/SOD on our PCs?

Thanks for your hard work, updates, still keeping interesting, and keeping us in the the loop!

#141295 - Lazy1 - Sun Sep 23, 2007 9:21 pm

Adplug uses that OPL emulator and it does not play the music properly so unfortunately I cannot use it.
I will release the tools once I can be sure it will work on big-endian platforms as well. (ppc)

#144497 - Lazy1 - Sat Nov 03, 2007 12:55 am

Good news: MP3 Support is in and working.
Bad news: It hitches and pops around every 10 seconds.

Maybe 128kbps mono is still too much to ask of the arm7?
Any ideas if mp2 would use less resources?

In either case, don't expect to use mp3s already lying around on your card.

#144525 - Diddl - Sat Nov 03, 2007 7:34 am

maybe ADPCM16 would be the better choice?

#144527 - Lazy1 - Sat Nov 03, 2007 8:11 am

It might be as a last resort, there are a few tricks I can try to smooth out MP3 playback.
Hopefully at least one will produce good results.

Still, it's pretty hard to notice the pops as it is but I'd rather it work perfectly :)

#144569 - Lazy1 - Sat Nov 03, 2007 11:37 pm

Wow, I'm a moron...
The problem all along is that I decided to update the IPC during vblank and of course this is not often enough to keep the arm7 fed.

MP3 Support now seems to work perfectly!
Maybe I can fix a few bugs and *sneak* out an unofficial test release.

#144718 - Lazy1 - Tue Nov 06, 2007 12:48 am

There are still a few bugs hiding in some remote areas and I need help finding them.
If you'd like to play around with the registered/shareware version with MP3 support let me know by PM.

At the moment I cannot compile the music conversion tools for win32 so they will come in source form, unless someone else wants to do it.

Spear of Destiny is pretty broken at the moment, well, one title screen is blank for some reason and the high scores screen is messed up.
Until I fix that I won't be doing any spear builds.

Regardless, the music extraction and conversion tools should work with all versions.

EDIT:
Registered spear seems to work fine actually, aside from the high scores screen being a little weird.

#144773 - tepples - Wed Nov 07, 2007 2:10 am

Lazy1 wrote:
At the moment I cannot compile the music conversion tools for win32 so they will come in source form, unless someone else wants to do it.

I can compile C or C++ code under GCC 3.4.2 for Windows as long as 1. it doesn't depend on unistd functionality, and 2. I know how to test the software.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#144776 - Lazy1 - Wed Nov 07, 2007 2:14 am

UPDATE:
Demo Spear of Destiny released, mainly to test MP3 playback.
See http://lazyone.drunkencoders.com/wordpress/?p=59 for more info.

Wolfenstein 3D Music tools source:
http://rapidshare.com/files/67932276/wolf3d-music-tools.tar.bz2.html

getimfs: Extracts music from audiot and audiohed files.
imf2wav: Converts imf music to wav format, needs libsndfile (crashes on powerpc)

#144782 - tepples - Wed Nov 07, 2007 2:45 am

I've tried compiling libsndfile on Windows months ago without success. I think I'd need help. Should I try it again to give people more specific error messages?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#144814 - Diddl - Wed Nov 07, 2007 10:09 pm

Wonderful this test Spear with mp3 playback!!! I don't find any problems up to now (playing since one hour and continue), it works perfectly!

I will try to compile music tool source on win32 tomorrow.

#144820 - Lazy1 - Wed Nov 07, 2007 10:55 pm

You don't have to actually, I just got a PM from bob_fossil who has compiled them for win32.
I still have yet to test them though.

EDIT:
The output for some songs is very quiet, how can I make all of them have more or less the same volume?

My conversion process:
Code:

./getimfs -sdm
for i in *.imf
do
./imf2wav $i
done

for i in *.wav
do
normalize $i
lame -m m -q 0 --cbr -b 128 --resample 32000 mp3/${i%.*}.mp3
done


^^ From memory, more or less how I did it.

#144890 - XDelusion - Thu Nov 08, 2007 11:42 pm

Seems to run great, I just can't get over the fact that FIRE is waaaaayyyy over on A instead of B, king of makes Strafing while running and firing impossible for me, aside of that, awsome job!

#144902 - Lazy1 - Fri Nov 09, 2007 12:53 am

Key remapping will be in the next release, thanks for testing it.

#144904 - XDelusion - Fri Nov 09, 2007 1:01 am

I figured as much! Thankx for coding it! ;)

#144968 - Lazy1 - Fri Nov 09, 2007 10:32 pm

I encountered a random freeze yesterday while playing around with the registered version, hopefully it will happen again so I can track down why it's happening.

In the meantime I have decided to move the status bar to the top of the bottom screen thanks to the suggestion of someone on irc.
I feel it's much better this way since you don't have to look too far down to find out how well BJ is doing :)

That being said I need new graphics for the bottom screen for both wolfenstein and spear of destiny.
If anyone wants to donate some graphics that would be great otherwise I'll throw something together.

#144974 - Lazy1 - Fri Nov 09, 2007 11:59 pm

WIP Automap:
[Images not permitted - Click here to view it]

Thoughts?
Suggestions?

#144976 - tepples - Sat Nov 10, 2007 12:04 am

Obvious suggestion #1: Put it on the touch screen. :-)
Right now you're just showing the title on the touch screen.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#144981 - MechaBouncer - Sat Nov 10, 2007 12:19 am

Agreed. +1
_________________
Cobalt/Black NDSL
CycloDS Evolution (firmware 1.55 BETA 3) and EZFlash 3-in-1
Kingston SD-C02G JAPAN 2GB MicroSD
MoonShell 1.71, DSOrganize 3.1129, QuakeDS Pre3, ScummVM DS 0.11.1, Pocket Physics 0.6, OpenTyrian DS 0.3

#144984 - XDelusion - Sat Nov 10, 2007 2:11 am

I third that emotion. :)

#144985 - Lazy1 - Sat Nov 10, 2007 2:16 am

Damn, it's not proving easy to put it there.
It would be pretty hacky and take extra cpu time to draw it but it can be done.

I have made a few changes of my own however:
- Only parts of the map you have visited will be shown
- Only visible enemies are shown
- Changed color from blue to black

#144987 - Lazy1 - Sat Nov 10, 2007 3:16 am

^^
Never mind...

As requested:
[Images not permitted - Click here to view it]

Any way to disable index 0 transparency?
BJ's Eyes look weird because some parts are _supposed_ to be black but instead they show the gfx in the background.

#144991 - XDelusion - Sat Nov 10, 2007 3:36 am

Lazy1, if you are talking CPU time as in a slight slow down in game play...

...I don't think I'd notice, that thing is BLAZING fast!!! :)

#144993 - Lazy1 - Sat Nov 10, 2007 3:42 am

It was my mistake, this shouldn't cause any or too much slowdown.
I did just fixup the status bar though so those teal edges are gone, looks much nicer now.

I still need to make up some background graphics though.

Screenshots/info here: http://lazyone.drunkencoders.com/wordpress/?p=60

#144998 - XDelusion - Sat Nov 10, 2007 8:12 am

Progress! Looking good, but that map looks kind of out of place over the back ground...

...maybe a boarder?

#144999 - Lazy1 - Sat Nov 10, 2007 8:31 am

The background will either be replaced or removed, I'm thinking of just leaving the bottom screen black.

#145094 - Doom5 - Sun Nov 11, 2007 3:56 pm

Lazy1 wrote:
The background will either be replaced or removed, I'm thinking of just leaving the bottom screen black.


Wow, the map, is nice! I haven't seen anyone else implement that in Wolf3d before.

Nice work!

#145113 - tepples - Sun Nov 11, 2007 7:34 pm

Doom5 wrote:
Wow, the map, is nice! I haven't seen anyone else implement that in Wolf3d before.

You more than likely never owned an Atari Jaguar console and a copy of Wolf3d for the Jaguar. I had one of those while I was waiting to get an N64, and it had automap. Did the version for Super NES have it?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#145116 - XDelusion - Sun Nov 11, 2007 8:08 pm

I miss my Jag. :/

#145225 - Lazy1 - Mon Nov 12, 2007 10:43 pm

Opinions needed:

I have been working more with the sound today and have re-enabled the sound menu where you can enable/disable sounds and music.
The thing about sounds is the way I do it now differs from the original wolfenstein.

In the original version a new sound will interrupt the old one, on the DS it just plays it on a different channel.
If you have played my port and noticed how funky it sounds when you pick up multiple ammo packs or treasure items then this will fix that.

On the other hand like in the original if you push a wall then fire the rest of the pushwall sound will not be played.

A side note: I fixed the issue where MP3 playback crashes no$gba, it was a very dumb mistake on my part :)

There is still an issue where it sounds like the arm7 randomly gets starved and the music playback starts to crack up really bad.
I still have to track this one down.

Graphics related:

I have removed the graphics from the bottom screen, all that is there now is the statusbar and automap (if enabled).

#145232 - MechaBouncer - Mon Nov 12, 2007 11:15 pm

I'm not sure if this helps or not, but is it possible to specifically assign what channel is used for each sound effect, or does it just grab an open channel? If so, could you have the same sound effects interrupt each other in the same channel, while different sound effects would mix and play at the same time?
_________________
Cobalt/Black NDSL
CycloDS Evolution (firmware 1.55 BETA 3) and EZFlash 3-in-1
Kingston SD-C02G JAPAN 2GB MicroSD
MoonShell 1.71, DSOrganize 3.1129, QuakeDS Pre3, ScummVM DS 0.11.1, Pocket Physics 0.6, OpenTyrian DS 0.3

#145233 - Lazy1 - Mon Nov 12, 2007 11:20 pm

The original wolfenstein didn't know about sound channels, though it could play an adlib sound and a sampled one at the same time.

If I remember correctly each sound has a priority so that more important sounds like boss speech don't get interrupted by a door or weapons fire.
It doesn't look like I have added support for that either, I guess it goes on the list :)

EDIT:
Hmm, looking in on it I would need a new sound system to have sound priorities working.
Maybe next time...

#145235 - MechaBouncer - Mon Nov 12, 2007 11:27 pm

I guess I was just a little confused by what you were asking opinions on. Were you asking if you should just leave it as is and not spend the extra effort to fix it if it's non-critical? Or were you already considering changing it and wanted to see how people want it to sound?
_________________
Cobalt/Black NDSL
CycloDS Evolution (firmware 1.55 BETA 3) and EZFlash 3-in-1
Kingston SD-C02G JAPAN 2GB MicroSD
MoonShell 1.71, DSOrganize 3.1129, QuakeDS Pre3, ScummVM DS 0.11.1, Pocket Physics 0.6, OpenTyrian DS 0.3

#145237 - tepples - Mon Nov 12, 2007 11:39 pm

In a GBA game using the GBC tone generators, I implemented a simple priority system: if all channels are in use for a sound effect, stop the channel with the least remaining time if it is shorter than the sound effect being requested. The same system would apply to a GBA game using sampled sounds through a mixer. On the DS, you'd have to track the time remaining yourself (e.g. sample_period * sample_length, then subtract a constant after each vblank).
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.


Last edited by tepples on Mon Nov 12, 2007 11:40 pm; edited 1 time in total

#145238 - Lazy1 - Mon Nov 12, 2007 11:39 pm

I was just asking if people wanted it to be more like the original.

Original benefits:
Treasures, ect. don't sound funky when you pick up several.
Sounds closer to original wolf3d.

Current system:
Does not override sounds.

#145303 - Lazy1 - Tue Nov 13, 2007 11:27 pm

I would have released test versions today but unfortunately the music tools are broken under win32.
For some reason they only convert part of the song, I'll have to work this out before anything else can happen.

EDIT:
About cheats...
What would be a good way of enabling/using them?

I'm thinking of adding:

noclip
godmode
all weapons, keys
skip level
reveal map (automap shows everything)

#145328 - Jakeohagan - Wed Nov 14, 2007 3:04 am

Lazy1 wrote:


noclip - no.
godmode - yes.
all weapons, keys - yes.
skip level - level chooser
reveal map (automap shows everything) - yes.


+ unlimited ammo.

+speed boost.

(knife only god mode would be interesting.)
_________________
God Speed

#145384 - MechaBouncer - Wed Nov 14, 2007 6:42 pm

Maybe you could have a "Cheats" option in the menu to enter a cheat from a virtual keyboard and enter the original Wolfenstein code using the stylus? Once it's added, it could be enabled by a toggle button or checkbox from the Cheats menu. That way, people have to unlock them first before they can use them. Or you could just have the aforementioned cheat menu be present all the time. It would be less work than adding in a virtual keyboard just to unlock options.
_________________
Cobalt/Black NDSL
CycloDS Evolution (firmware 1.55 BETA 3) and EZFlash 3-in-1
Kingston SD-C02G JAPAN 2GB MicroSD
MoonShell 1.71, DSOrganize 3.1129, QuakeDS Pre3, ScummVM DS 0.11.1, Pocket Physics 0.6, OpenTyrian DS 0.3

#147353 - Doom5 - Wed Dec 19, 2007 3:00 am

Just got around to trying this out today, the SOD build. WOW, is all I can say!

This brought back so many great memories. Thanks for all your hard work on this project, and I hope you continue it(hopes for a registered version)!

:)

#147423 - Lazy1 - Thu Dec 20, 2007 11:14 am

I really wanted to get a registered release out there before the 25th but the past few weeks I have been feeling like crap and haven't touched the code.

The main issue is my horrible IPC code broke down for some unknown reason (lol) so the app hangs waiting in one place.
I tried the MP3/Sound library that was put up on these forums but never got any sound out of it.

I'm sure it could be made to work but as I mentioned earlier, crap...

Hopefully I can get some work on it done in the next few days, unless you want to start hacking around with the source.

#147430 - Doom5 - Thu Dec 20, 2007 4:43 pm

Lazy1 wrote:
I really wanted to get a registered release out there before the 25th but the past few weeks I have been feeling like crap and haven't touched the code.

The main issue is my horrible IPC code broke down for some unknown reason (lol) so the app hangs waiting in one place.
I tried the MP3/Sound library that was put up on these forums but never got any sound out of it.

I'm sure it could be made to work but as I mentioned earlier, crap...

Hopefully I can get some work on it done in the next few days, unless you want to start hacking around with the source.


Besides the occasional crackling, your sound system seems pretty good. I was just amazed you ported it running at full speed, with sounds and music all going at the same time.

I noticed ROTTDS seems like it uses compressed WAV files for it's music vs MP3s. I don't know if that's less CPU intensive, or worth looking at.

If I had the the know how, I'd attempt to mess around with the source, but it's over my head.

Have a good holiday.

#163281 - Lazy1 - Sun Sep 28, 2008 6:15 pm

Soooo....
The project died for quite a while, but I managed to locate my source!

I was worried since I could not find it and my latest build had an "exploding hitler" feature.
For some reason I had it set where killing a guard would turn him into hitler and run the death sequence where he melts/explodes.

Luckily the source I found does not have this issue and seems to be working very well, even better news is that it is definitely possible to emulate the OPL2 chip in realtime on the Arm7!

The next build will have support for music and not require any external conversion tools!
I have also fixed the color issue so things no longer look off or washed out.

However, once I get it to a point where I'm satisfied there will be no more changes to that specific port.
Too many hacks were made and I have lost track.

Currently I'm looking into Wolf4SDL as a new porting possibility.

Keep an eye out though, hopefully soon all versions of wolf3d will be supported.
Or, at least the registered and shareware versions of wolf3d and spear of destiny.

#163292 - Doom5 - Sun Sep 28, 2008 10:35 pm

Will the next build have an automap function? How about support for mods?

I'm glad to see you've picked the project back up; the psp version has really progressed, but I'd certainly rather play this on the DS.

Will you be writing your own OPL2 emulator, or using one similar to the one in the Jenesis emulator?

Keep up the good work!

#163302 - Lazy1 - Mon Sep 29, 2008 8:17 am

Quote:
Will the next build have an automap function? How about support for mods?


No support for mods initially, though I may take a look at it still.
The automap function is already in and working perfectly.

Quote:

I'm glad to see you've picked the project back up; the psp version has really progressed, but I'd certainly rather play this on the DS.


I tried the PSP version and it's very nicely done, the only problem is the LCD ghosting is much worse than on the DS or DSLite which still ghosts but nowhere near as much.

Quote:

Will you be writing your own OPL2 emulator, or using one similar to the one in the Jenesis emulator?


The OPL2 emulator I'm using comes from ScummVM since it seemed to be heavily modified for increased speed.

Quote:

Keep up the good work!


Thanks :D

Depending on how I feel I may release the source, though it's full of horrible hacks which I'm embarrassed about now so maybe not.
I will release the source to the Arm7 binary because the OPL2 emulator has a GPL license.
So like the other test I did before with MP3 I am building and treating the arm7 and arm9 binaries separately.

#163358 - Lazy1 - Tue Sep 30, 2008 2:49 pm

Here are a few new images, I'm not sure about the graphics on the bottom screen though.
That text on the left looks out of place but I'm not sure if it's a good idea to remove it.

http://img258.imageshack.us/my.php?image=img1rk0.png
http://img258.imageshack.us/my.php?image=img2ls2.png
http://img518.imageshack.us/my.php?image=img3tq3.png

Here is a picture that was posted on my blog by a user showing the colour problems I mentioned earlier:
http://img518.imageshack.us/my.php?image=wolfdseu7.png

Here is a picture showing how it looks now:
http://img140.imageshack.us/my.php?image=img4zi6.png

It's not from the same place but the door looks a lot better now :D

#163364 - Badablek - Tue Sep 30, 2008 7:56 pm

Nice to see some news from this great homebrew...

the screens seem perfect for me, you rocks !

#163419 - Jakeohagan - Wed Oct 01, 2008 11:54 pm

Good to see this is still alive.
looking good so far, I'm excited for the release.
_________________
God Speed

#163468 - Asaki - Thu Oct 02, 2008 9:25 pm

Lazy1 wrote:
Here is a picture that was posted on my blog by a user showing the colour problems I mentioned earlier:


That was me ;)

I did convert all the colors for you, but you never got back to me, and I ended up losing them in a hard drive mishap >_< Good to see that you got it sorted out anyway, looks perfect now =)

Putting the sbar at the top of the bottom screen was a nice move. Can't wait to try your next build, MIDI music will be a nice addition (or whatever it is you're doing).

The new bottom screen background seems kind of out of place, but I suppose you can always replace it with the automap whenever you get that good and polished. Maybe a quick inventory, like I've seen some games do (but Wolf only has like what, four different weapons?).

#163497 - Lazy1 - Fri Oct 03, 2008 5:45 pm

Sorry about that, I came to a point where I just didn't feel like coding anything and so the project just sort of got frozen.

At least today I managed to get the music to work without cracking but that is in a separate application so I still need to move the code over.

I'm not sure about an inventory system yet, all I want to do is get the registered build out the door.
Releasing only shareware builds was a horrible move on my part.

The graphics for the sub screen are still open to suggestion though, I thought BJ kicking a nazi would be a nice idea but other pictures are welcome.

I only don't like the text since it looks like it was an advertisement or box image.
Unfortunately not many suitable images exist since you have to keep in mind aspect ratio, relevance and the fact that the first 40 pixels will be covered by the status bar.

#163509 - Asaki - Fri Oct 03, 2008 10:01 pm

Lazy1 wrote:
Sorry about that, I came to a point where I just didn't feel like coding anything and so the project just sort of got frozen.


"Lazy1" is a fitting name, I see ?_?

Yeah, I think it is scanned straight from a box, that was the part I thought looked out of place.

I've always been rather fond of this poster (or whatever it is): http://www.3drealms.com/wolf3d/images/wolf3d.jpg

But I found some different sources for the pic you're using...I'm gonna mess with them in Photoshop a bit and see if I can't remove those icons.

Okay, I wasn't getting very good results from the green sources, but I'm really happy with how this color version turned out...I've got one cropped and ready for 256x192, and another one that's uncropped/unsized, if you wanna recrop it yourself (my resize is a little bit soft, Idunno if that'll look good on a DS screen or not).

[Images not permitted - Click here to view it]

[Images not permitted - Click here to view it]

Or if you really like the green one, I can try working the kinks out of that one a little more.

#163510 - Lazy1 - Fri Oct 03, 2008 10:39 pm

That is amazing!
Where did you find it?!

#163514 - Doom5 - Sat Oct 04, 2008 12:06 am

Asaki: That image is fantastic!

Lazy1: Please use that image for the bottom screen :)

#163526 - Asaki - Sat Oct 04, 2008 5:51 am

Took the GBA box art and superimposed the DOS box art over it, and did some color matching and blending...and kind of faked the rocky bits a little, using some recolored green boxes for help.

Aside from the rocky bits (which don't even show up in the crop), the GBA art by itself would've worked fine, but I couldn't find any scans that were sharp enough.

#163558 - Lazy1 - Sat Oct 04, 2008 11:24 pm

Your image is now being used for the bottom screen :D
I still need to get music added in properly, IPC is being annoying right now but I'm sure things will get figured out fairly quickly.

#163577 - Lazy1 - Sun Oct 05, 2008 4:09 pm

It's getting there...
Music is in and works perfectly, I'm going to see if I can get the other sound effects like ammo pickup to work through the YM3812 emulator as well.

There are still a few more things I have to do before release though:
- Fix scaling artifacts from 320x200 screens scaled using the 2D hardware
- Move directory from /wolf3d to /data/wolf3d for all those who require an organized disk
- Separate arm7 and arm9 binary build process (license issue)

#163688 - (sniper) 109 - Wed Oct 08, 2008 11:58 pm

What about the wolf3d mods? will there ever be a folder within the data folder to put the wolf3d and sod mods?
_________________
1987 bmw 750il 2003 bmw m3 csl

#163690 - Lazy1 - Thu Oct 09, 2008 12:15 am

I haven't planned mod support yet, because almost no loaders let the application know where it started from this is difficult to do.
You could probably hex edit the .nds file to point to a different directory though and keep a copy for each mod.

#163692 - Lazy1 - Thu Oct 09, 2008 12:54 am

Preview video up:
http://ca.youtube.com/watch?v=Q_pcc8EORnM

#163693 - (sniper) 109 - Thu Oct 09, 2008 1:20 am

Wow it looks great!A very cool SOD mod I found (coming of the storm) is the best SOD mod I have ever played

http://ca.youtube.com/watch?v=XtfwbXMAFEo

I was hooked on this for along time I always wanted to play that on my ds but I am no nothing about nds editing or c++ for that matter,I'm able to edit wolf3d but my skill is doom.I'm working on a wolf3d like mod for dsdoom would you be interested in trying it?if you do I'll pm you a link.(the weapons have been edited with dehacked so they are at par with the ones from wolf3d.
_________________
1987 bmw 750il 2003 bmw m3 csl

#163695 - Asaki - Thu Oct 09, 2008 4:58 am

Niiice. That MIDI music sounds great.

Cool touch with the automap, too. I like how it only reveals what's in your field of view, kinda like NetHack or something.

#163725 - Kyoufu Kawa - Thu Oct 09, 2008 7:59 pm

Epic job.

#163778 - Lazy1 - Fri Oct 10, 2008 9:43 pm

Thanks for all the comments so far.
Right now I am trying to do something for mod support.

What I plan on doing is having a separate loader application which will allow you to select which directory to launch wolf3d from.
I could even go more generic and (in theory) any application which supports libnds's command line code would benefit.

#163782 - Asaki - Sat Oct 11, 2008 5:25 am

It's kind of sad to say, once this thing is running Spear of Destiny, it'll be my first time playing it ?_?

#163790 - (sniper) 109 - Sat Oct 11, 2008 6:47 pm

Sweet Thank you so much lazy1!by the way did you like the video on coming of the storm?
_________________
1987 bmw 750il 2003 bmw m3 csl

#163791 - Lazy1 - Sat Oct 11, 2008 8:12 pm

It looked good but the problem is that if the mod made any significant code changes it simply will not work on the DS.
Maybe later I'll give it a try.

#163795 - (sniper) 109 - Sun Oct 12, 2008 4:18 am

Well good luck!I'm really excited for the release of wofl3ds
I can't remember if I asked you this but would you like to try
"Nazi resurrection" a doom wad I made Its very similar to wolf3d (use's the same textures too!)but there are more guns and more enemy's!
_________________
1987 bmw 750il 2003 bmw m3 csl

#164415 - Lazy1 - Fri Oct 31, 2008 11:25 am

Another long delay, I tried to get the other sound effects working through the OPL emulator but it ended up sounding like a dying giraffe and figuring it out would take way too long.

Like earlier versions the sounds are raw pcm data so you still get (most) of those sfx like ammo pickup, treasure, ect...

PM Me if you are interested in trying the latest build out to help locate bugs before I release anything.

#164462 - Diddl - Mon Nov 03, 2008 8:45 am

NDS is too slow for a realtime OPL emulation. I had same problems some time ago.

But you could let NDS create PCM sound from internal OPL sounds so there is no copyright problem. After starting game you look if PCM sound files exists. If not a function does the creation of PCM files. OPL emu runs at 40% of real time ...

Yes I'm interested in testing a pre release, you have PM!

#164463 - theli - Mon Nov 03, 2008 9:32 am

Diddl wrote:
NDS is too slow for a realtime OPL emulation.

well.. that's not really true .. neibour topic "midi parser unfinished" has a link to opl demo running stereo on arm7 at <100%
though, idea of prerendering songs sounds interesting...
it would be better(faster) to create renders on a pc though

#164467 - Lazy1 - Mon Nov 03, 2008 3:04 pm

Actually, at 11KHz it runs on the arm7 perfectly.
The only thing is I need to set the heap to a vram bank mapped to the arm7 since there isn't enough memory.

I'll get out the builds as soon as I can.

#164558 - Dr Salvador - Fri Nov 07, 2008 6:17 am

sounds like it will be very good
I am yet to test the current build for bugs however
can you send me it?

#164567 - theli - Fri Nov 07, 2008 2:42 pm

Lazy1, on what source is your OPL emu based on?
do you do fixedpoint only?
have you tried to reduce the tables to fit into arm7-only memory??
will/can you post a sourcecode?

#164626 - Diddl - Mon Nov 10, 2008 3:34 pm

theli wrote:
Lazy1, on what source is your OPL emu based on?
do you do fixedpoint only?
have you tried to reduce the tables to fit into arm7-only memory??
will/can you post a sourcecode?


Yes that would be nice for ROTT also.

#164773 - Lazy1 - Wed Nov 19, 2008 9:36 pm

Really sorry that I haven't gotten the test builds out to who requested them yet, a few things have come up lately that have gotten in the way.
Hopefully very soon I can finish up the last things I need to do.

Quote:

Lazy1, on what source is your OPL emu based on?
do you do fixedpoint only?
have you tried to reduce the tables to fit into arm7-only memory??
will/can you post a sourcecode?


It's actually from the ScummVM source, it's very well optimized and worked perfectly after I made a few modifications.
I don't think I did much memory wise, here's what I remember:

- Give the arm7 vram bank D and set it as the heap
- Allocate ring buffer, sample out buffer on the arm9

There probably was 1 more but I'm not remembering it right now.
The arm7 binary will be open source since the GPL requires it but the arm9 binary has a different license and will remain closed source.

#165172 - Dr Salvador - Thu Dec 11, 2008 12:35 pm

hows progress going now?

#165374 - Lazy1 - Thu Dec 18, 2008 1:29 pm

Really, really sorry for delays.
I'm only just getting to build all of the game binaries right now, once I make sure everything is in order I'll send them out to the testers.

I need help with what to do with licenses since it's quite complicated so if someone can help me with that please PM.

#166167 - Dr Salvador - Sun Feb 01, 2009 3:38 am

can you release the version shown in the trailer you made a few months back?

#166296 - Lazy1 - Wed Feb 04, 2009 4:23 am

I will try, so many real life issues popped up and I haven't done anything with wolf3d in a long time.

#166318 - another world - Wed Feb 04, 2009 6:47 pm

take all the time you need. get it ready and release it when its done. we will all still be here =)

-another world

#166330 - Lazy1 - Wed Feb 04, 2009 8:55 pm

I took a look at the source again this morning and started making the changes needed to compile under the latest devkitARM and libnds releases.

The arm7 was easy to get working but a lot more things need to be done in the arm9 code which is a pretty big mess.

#166342 - Dr Salvador - Thu Feb 05, 2009 8:32 am

thats cool RLs more important than ds

#166361 - Lazy1 - Fri Feb 06, 2009 12:36 am

I got it to compile and run but it's getting stuck somewhere.
I have no idea where it is and for some reason the osx version of desmume does not have the debugging features.

#166385 - Lazy1 - Sat Feb 07, 2009 5:16 am

Found it.
The new sound functions seem to hang for some reason, gotta look into it more tomorrow.

#166558 - Lazy1 - Mon Feb 09, 2009 6:59 pm

Finally got music working with the new fifo system in libnds, it's so much cleaner than that horrible hack I used to have in place. :D

This also makes it easier for me to split up the arm7 and arm9 binaries.
There is still a little bit more to go but I'm really hoping that I can get this out very soon.

#166732 - (sniper) 109 - Mon Feb 16, 2009 4:00 am

Lazy1 wrote:
Finally got music working with the new fifo system in libnds, it's so much cleaner than that horrible hack I used to have in place. :D

This also makes it easier for me to split up the arm7 and arm9 binaries.
There is still a little bit more to go but I'm really hoping that I can get this out very soon.

How soon is that? Also would it be possible to use the new "fifo system" for midi support in dsdoom? If you pass me a copy of that code I'll edit it for Midi support (if I can)
_________________
1987 bmw 750il 2003 bmw m3 csl

#166734 - Lazy1 - Mon Feb 16, 2009 5:06 am

While you can probably use a YM3812 emulator to play music in the DS Doom port it would not be an ideal solution.
A few reasons why:
- At 11KHz it pretty much eats up all the cpu time on the arm7
- It's BIG, I had to leave out dswifi to even get it to build
- Needs a vram bank mapped to the arm7 since it needs lots of memory at runtime

A better solution would be to convert the music into something that the DS can play with little to no effort.
I believe the latest libnds release has something that can do this.

Also, the fifo system is just used to transfer data between the arm9 and the arm7 and has nothing to do with playing music.

There are 2 things slowing down Wolfenstein 3D at this time.
The first being that I cannot reserve audio channels for the music so the default sound playing functions overwrite and mess up the music at times.
The second issue is a mysterious timing problem, somewhere it gets stuck but unlocks maybe 30 seconds or so later.

The sound problem could be hacked if I could find a way to modify getFreeChannel() on the arm7 to ignore the first 2 channels.
I have no idea how to get the timing problem, I lost my no$gba debug key and desmume simply does not work with the latest libnds release.

What I need is a way to get the address of the currently executing instruction so I can look it up and track down the issue.

#167759 - NorQue - Thu Mar 26, 2009 8:33 am

Here's an interesting quote from the Slashdot thread about the Wolfenstein 3D port for iPhone:
Quote:
The game engine is open-source, but the levels and art assets have always been non-free.
Quote:
I suspected as much but when I checked out the zip, it's actually got all the level data there.
Is it still not allowed to redistribute a compiled port with leveldata?

Take that with a grain of salt, I haven't checked the zip myself.

#167764 - elhobbs - Thu Mar 26, 2009 2:25 pm

NorQue wrote:
Here's an interesting quote from the Slashdot thread about the Wolfenstein 3D port for iPhone:
Quote:
The game engine is open-source, but the levels and art assets have always been non-free.
Quote:
I suspected as much but when I checked out the zip, it's actually got all the level data there.
Is it still not allowed to redistribute a compiled port with leveldata?

Take that with a grain of salt, I haven't checked the zip myself.
I would imagine that we are not allowed to distribute the content. However, since the iphone version was released by the owner of the content, John Carmack, it is a little different. He also put a note in the release document saying why he did it and that he asked people to use the honor system when using the content.

#167765 - Lazy1 - Thu Mar 26, 2009 3:00 pm

In the past I only included demo data, if that.
The only data that comes with it would be the ripped sound effects that currently cannot be emulated. Even then those all came from the demo.

#168216 - Lazy1 - Wed Apr 15, 2009 6:46 pm

A small status update here:

I decided to re-write the port, starting once again from the wolf3d sdl sources I'm trying to make it more stable and with a lot less ugly hacks.

The way it's setup now is the game will be rendered into a 256x192 screen and any menus/ect will be drawn at 320x200 on top of the game screen and scaled using the hardware.

So far everything is looking good after a few hours and it shouldn't take too long to get registered builds out.

Source to this version will be released with the builds and can be requested any time.

#168254 - lord_hardware - Fri Apr 17, 2009 2:22 am

Lazy1 wrote:
A small status update here:

I decided to re-write the port, starting once again from the wolf3d sdl sources I'm trying to make it more stable and with a lot less ugly hacks.

The way it's setup now is the game will be rendered into a 256x192 screen and any menus/ect will be drawn at 320x200 on top of the game screen and scaled using the hardware.

So far everything is looking good after a few hours and it shouldn't take too long to get registered builds out.

Source to this version will be released with the builds and can be requested any time.



:) sounds excellent buddy :) looking forward to it
_________________
NDSL: M3Real, EZ4 Lite Deluxe, 2x Kingston 1GB Micro SD, 1x Kingston 4GB Micro HCSD 1x Kingston 8GB Micro HCSD

#168255 - Lazy1 - Fri Apr 17, 2009 3:29 am

I hope I can get something out soon, no more shareware only crap either.
The only reason I did that last time was I had more 320x200 screens to hunt down and modify but that's not an issue here.

At the end of today I have saving/loading working, input is pretty much done except for swapping left/right handedness and the beginnings of the status bar.

Thanks to libnds's keyboard functions any name can be typed in for your high scores or save games now, although for some reason the uppercase P won't work. hmm.

#168281 - Lazy1 - Sat Apr 18, 2009 9:07 pm

I _REALLY_ hope this works for you all:
http://lazyone.drunkencoders.com/wordpress/

#168286 - NorQue - Sun Apr 19, 2009 2:20 pm

Not working on Acekard 2.1 for me. Have wolf3d-ds_wl6.nds in top level directory and all .wl6 files in /data/wolf3d/. :(

#168288 - Lazy1 - Sun Apr 19, 2009 2:54 pm

What happens?

#168290 - NorQue - Sun Apr 19, 2009 4:02 pm

A lot of garbled graphics in the menus and a red screen on top display, black screen on bottom when the game should start. Sorry for forgetting to write that in my first post, ahem.

#168293 - Badablek - Sun Apr 19, 2009 7:23 pm

NorQue wrote:
A lot of garbled graphics in the menus and a red screen on top display, black screen on bottom when the game should start. Sorry for forgetting to write that in my first post, ahem.


same on R4SDHC.

BTW Spear of Destiny (retail) works flawlessly (turning is a bit too fast, making it hard to play).

#168295 - Lazy1 - Sun Apr 19, 2009 7:38 pm

Could be one of two things:

a) Your card does not support unaligned reads
b) You are using a different version of the data files than the program was compiled for

I'm thinking b is more likely, where did your data files come from?
It works perfectly for me on a Supercard CF using the version from the RTCW CD.

#168296 - Leniad - Sun Apr 19, 2009 7:47 pm

It works flawlessly on my R4, I'm using YSmenu.
I'll agree that the turn speed is a bit too fast, though.

#168297 - Badablek - Sun Apr 19, 2009 8:20 pm

it seems that one of my files was corrupted when transfered to my microSD.

Now everything works great (Wolfenstein 3D CD retail) on both my R4SDHC and Acekard 2i

#168298 - Lazy1 - Sun Apr 19, 2009 8:36 pm

That's great to hear, I just made a small change to slow down the turning speed.
The main issue could still be timing which I'm not exactly sure of anyway.

I'll try to get a new upload later tonight with the slower turning speed.
For music I will probably use adpcm wav files, still working on the utilities to extract and convert the music though but I can only compile them for win32 at the moment.

#168299 - Badablek - Sun Apr 19, 2009 8:43 pm

Nice :-D

It's really great to replay this game on DS...and with music it's gonna be amazing !

#168308 - another world - Mon Apr 20, 2009 10:56 pm

when you do the final releae, and hopefully include a readme, can you list what files work on this? there were so many releases of wolf3d, it is a bit confusing and people may not know if they one they own is the one that is supported.

using ak2.1 black pcb, akaio 1.4.1 proper i can confirm that wolf3d runs.

i'm using build 1.4
AUDIOHED.WL6
AUDIOT.WL6
CONFIG.WL6
GAMEMAPS.WL6
MAPHEAD.WL6
VGADICT.WL6
VGAGRAPH.WL6
VGAHEAD.WL6
VSWAP.WL6

turning does *seem* to be a bit fast, but i'm not really sure. i haven't played this on a pc is so long, it could just be that everyone remembers how slowly it played on old pcs? currently the speed is only bothering me when shooting. pressing right in an attempt to align a shot, results in the gun going past the enemy.

cheers,
-another world

#168309 - Lazy1 - Mon Apr 20, 2009 11:05 pm

It's really only the registered version of wolf3d (episodes 1-6) that has all the problems with versions/ect.
What I've found is that you can update your data files so they work fine with the port.

Look for "vgafiles.zip" on google, that should update your wolf3d and hopefully it'll run perfectly on the DS.

Of course only if you are getting garbled graphics, if the data files work right out of the box you don't need to do anything.

[Edit]
Didn't see your edit, yes the turing speed is a bit too fast.
That could either be because the timing is wrong or the game is running too slowly or maybe something entirely unrelated.

The next release will have the turning speed slowed.

#168310 - another world - Mon Apr 20, 2009 11:13 pm

thats a good bit of into to know about. thankfully my files are working. i feel like i just got double for my money! =)

does the spear of destiny release support all 3 missions (episodes)? i remember there was Spear of Destiny, Spear of Destiny Return to Danger (Mission 2), and Spear of Destiny Ultimate Challenge (Mission 3). I can't recall if they were add-ons or stand-alone verisons.

<edit>
i also remember a cd version that contained all 3 with .voc files.

i just did a quick search and it appears that all 3 missions have the same files but different exe files. i have no idea what the exe files are doing. patching, adding other graphics, or what...

<edit2>
it appears that mission 1 and 2 both load and play (didn't test 3). they all load with the same "intro" screen, but display different sprites, etc. because the file names are the same you can't have both on the msd in the data directory at one time.

might be worth looking into this, if you have the time.

-another world


Last edited by another world on Mon Apr 20, 2009 11:42 pm; edited 6 times in total

#168311 - Lazy1 - Mon Apr 20, 2009 11:18 pm

I have no idea, in fact I didn't even know there was a SoD expansion :/
But I'll assume no, it probably won't work :(

#168312 - another world - Mon Apr 20, 2009 11:22 pm

from the wiki (http://en.wikipedia.org/wiki/Spear_of_Destiny_(video_game))

Quote:

Two further missions for Spear of Destiny, titled "Return to Danger" and "Ultimate Challenge" were also created and published by FormGen Corporation in May 1994; these are collectively known as the "lost episodes", due to the fact that their existence is not widely known. Each of these, too, consists of 21 levels, with a layout similar to that detailed above; they introduced some new graphics to Spear of Destiny, but are otherwise mostly a collection of more levels for the game. A CD version containing all three episodes, titled the "Spear of Destiny Super CD Package", was also released in late 1994. The Steam release includes the lost episodes.


curious! =)

-another world

#168315 - kjean - Tue Apr 21, 2009 7:28 am

Wolf3D:
1.4 = working
1.2 = don't know
1.1 = working, but gabled menu and red filled in-game screen so you can't play though

SoD:
Original and missioin pack 2 and 3 works! with a little hack (renaming and a bit of hex edit *oops*)

It's amazing! Thanks Lazy1!

P.S. hey hi another world. ;D

and about so called mission packs:
http://diehardwolfers.areyep.com/bunker/sodlost.htm

EDIT: aw, just forgot. on DSTT + YSMenu.

#168336 - Lazy1 - Thu Apr 23, 2009 12:02 am

I've almost got the status bar updates ready, after everything is cleaned up a bit I can get the automap going.
Test app:
[Images not permitted - Click here to view it]

It took me a bit to get the sprites to work properly but now it seems okay, if a bit hacky.

#168337 - another world - Thu Apr 23, 2009 1:34 am

great news! i'm enjoying the "alpha" release. i forgot how much i loved this game. it is so wonderful to play it again on my nds.

-another world

#168360 - (sniper) 109 - Fri Apr 24, 2009 10:28 pm

I'm not too fond of seeing the "Patrick Swayze" titlepic on the bottom screen... I always liked the automap displayed on the bottom screen on your preview video though. Maybe during gameplay you can have the auto map cover the entire bottom screen instead of just a portion of it. A cool styled auto map would be the one from Flo edit. Its the only thing that bothers me (and it doesn't bother me that much either) :P
I can't wait till the full release it will awesome! keep up the great work!
_________________
1987 bmw 750il 2003 bmw m3 csl

#168362 - Lazy1 - Fri Apr 24, 2009 10:55 pm

I'm hoping to have a similar automap toggle which would change that pic into an automap.
Right now I'm splitting my time between music and switching the sub screen graphics to use sprites.

An interesting thought for the automap would be to have sprites of the enemy's head floating around instead of a red dot.
Unfortunately I can't include a lot of enemies because they would come from registered versions that I cannot distribute.

For music, I have the extraction and conversion utilities written and pretty much ready to go.
At least I hope they are, I'm not sure how compatible they will be with other operating systems like linux or osx.

If someone wants to take a look, I can send out the source to the utilities.

#168366 - Vague Rant - Sat Apr 25, 2009 10:41 am

Any plans to implement Super 3D Noah's Ark support? It's essentially Wolf3D with new graphics; the layouts are even identical to Wolf3D. I tried renaming the .N3D files to .WL6, but it just crashed the app.
_________________
I've got nothing to say, but it's OK.

#168380 - kjean - Sun Apr 26, 2009 10:45 am

Hi Hi Vague Rant.

I'm no programmer or coder, and I don't think it's impossible, however there's no source code available for that game and I know they share same engine but you know different EXE mean that they'd altered it's codes here and there... and as you might already be aware, even v1.1 of wolf3d is not playable because of it's source base iirc.

Feel free to correct me if I'm wrong. :D

#168388 - Asaki - Sun Apr 26, 2009 10:03 pm

Nice to see some updates =) I'll have to try it out.

Edit: Nope, doesn't work on DSX yet =/



Only semi related, I saw this the other day, and thought it looked pretty awesome: http://www.vgmaps.com/Atlas/PC/Wolfenstein3-D-Episode1-Floor1.png

Would be sweet to see a Wolf 2D in this style, but it would be kind of difficult when monsters only have sprites for firing in one direction (and BJ has no sprites at all).

#168519 - Diddl - Sat May 02, 2009 10:01 am

Many Thanks to you Lazy!! It works wonderful! I like it to see this old levels of Wolf3d and Spears on my NDS. It is a phantastic fun for me to remember old days ...

#168563 - Lazy1 - Tue May 05, 2009 6:50 pm

I finally got ima-adpcm decoding working pc side, however I do remember how much it sucks to get music to decode properly on the DS.
Hopefully it'll come together quickly so I can get another build out along with the tools needed to extract and convert the music.

Some stats:
Music file count: 38 ( Registered Spear + Wolf3d )
Uncompressed 44100Hz: 220MB
32000Hz Adpcm mono: 39MB

#168564 - Badablek - Tue May 05, 2009 8:30 pm

great news !

32000Hz Adpcm mono >> gonna be enough (quality) ?

#168565 - Lazy1 - Tue May 05, 2009 9:35 pm

Well, it's mono because that is what the adlib chip would output, stereo would be pointless here.
The quality is pretty good I think, I'd upload a sample but I'm not sure if I can? It's from the demo but I'm not sure about copyrights/ect.

[Edit]
Unless I'm seeing things in my test app the arm9 is decoding it very fast, using 10 of 263 lines at the most.
Maybe I don't have to involve the arm7 at all?

#168617 - BastarB - Mon May 11, 2009 9:12 pm

Hi Lazy1! =)
I can't say that you live up to your nickname, since you have done an outstanding job on this Wolf3D port=D It's so nice to be able to play this nice game on my DS^^ Thank you so much^^ I hope you will add the music soon to=) But of course, take your time, and also have a nice day^^

#168628 - Lazy1 - Tue May 12, 2009 12:33 am

Thank you for your feedback :D always good to hear someone is enjoying the port.
Music is going to take a bit of time though since I do have to decode it on the other processor now.
I'm also working on the bottom screen graphics and the automap, hopefully everything will come together soon.

#168634 - BastarB - Tue May 12, 2009 11:27 am

Well, with time comes quality, so take your time^^ I'm looking forward to try it out when it is released=D Thanks again^^

Well, one thing I wonder, is it possible to make an option so the game jumps instantly into the gameplay when you have saved? Because now you have to scroll down to the "back to game" and then push the "A" button, this after the game has been saved. Oh my, now I feel like the lazy one here, since I just have to scroll down a little and then push the "A" button one time to get into the game again=P
However, it still would be nice to have an automatic return to the gameplay, but of course it's you choice^^

Have a nice day!!


Last edited by BastarB on Wed May 13, 2009 12:58 pm; edited 1 time in total

#168654 - sverx - Wed May 13, 2009 9:59 am

Can't find the link to the current version :| ...

#168656 - BastarB - Wed May 13, 2009 12:56 pm

sverx wrote:
Can't find the link to the current version :| ...


http://lazyone.drunkencoders.com/wordpress/

Scroll down and press the "Wolfenstein 3D Binaries" link! That is the way dude^^

Good luck on your mission!

#168659 - Asaki - Wed May 13, 2009 8:17 pm

So I take it nobody else has a DSX?

#168665 - sverx - Thu May 14, 2009 8:11 am

BastarB wrote:
Scroll down and press the "Wolfenstein 3D Binaries" link!


Those are the same binaries I already found before... but I guess the problem is that I skipped reading that line... :rolleyes:

Code:
Put your data files in /data/wolf3d, it doesn’t matter where you put the executables though.


so... sorry :|

#168667 - BastarB - Thu May 14, 2009 9:21 am

sverx wrote:
BastarB wrote:
Scroll down and press the "Wolfenstein 3D Binaries" link!


Those are the same binaries I already found before... but I guess the problem is that I skipped reading that line... :rolleyes:

Code:
Put your data files in /data/wolf3d, it doesn?t matter where you put the executables though.


so... sorry :|


Okey, no problem dude=), but have you managed to get it working by now?

#168673 - Lazy1 - Fri May 15, 2009 1:52 am

I've been working on different parts at the same time, some of you might like this addition:
[Images not permitted - Click here to view it]

I only have a few of those working since I just started it a few minutes ago but hopefully I can get all of them to work, if not I'll add something else in it's place.

Still left to go before next release:
- Finish converting status bar to better use the 2D hardware
- Finish cheat menu
- Add automap (needs status bar mod to be completed first)
- Add level warp screen after episode selection
- Remove "lives" from gameplay, figure out what to do with those 1up spheres
- Get adpcm decoding on the arm7

[Edit]
- Godmode works
- Noclip works
- All Hitler mode works (I love this one :D)
- All dog mode works

Lots more to do! :D

[Edit again]
I forgot that killing hitler ends the game, lol.
Gotta find a workaround :D

#168674 - another world - Fri May 15, 2009 4:57 am

cheats!! hell yes! haha. replay value!

cheers,
-another world

#168676 - NorQue - Fri May 15, 2009 12:41 pm

I was asking myself already if I should ask for an on-screen keyboard to somehow press MIL-keys. That's better. ;)

#168686 - BastarB - Fri May 15, 2009 4:58 pm

CHEATS!! YEEEEES!!!
I SAY YEEEEEEES AGAIN =D A cheat menu just rocks^^ Nice work Lazy1=D

#168688 - Lazy1 - Fri May 15, 2009 5:14 pm

You all can suggest cheats and I'll try to add them in if it's possible.

#168691 - Asaki - Fri May 15, 2009 7:12 pm

Just as long as the cheats prevent you from getting a high score, like the original game did.

Personally, I think the automap is a cool enough "cheat", but I guess that's just me.

#168692 - BastarB - Fri May 15, 2009 8:46 pm

Well, I'm going to think hard about different kinds of cheats! Is it possible to make a cheat there you can walk trough walls? Or is it not that important maybe?

Edit: A bullet time cheat. You move like normal but all enemies moves very slow! May be quite boring thou, I don't know, it's just a suggestion=)

#168695 - Asaki - Fri May 15, 2009 9:41 pm

BastarB wrote:
Is it possible to make a cheat there you can walk trough walls?


That's the "noclip" cheat featured in the screenshot.

#168696 - BastarB - Fri May 15, 2009 10:20 pm

Asaki wrote:
BastarB wrote:
Is it possible to make a cheat there you can walk trough walls?


That's the "noclip" cheat featured in the screenshot.


Aha, sorry, I didn't know that, it was ages ago I used cheats with this game=S=P
Thanks for the info^^

#168710 - Lazy1 - Sat May 16, 2009 4:07 pm

I finally got my sub screen tests done so hopefully it can all be just dropped into the main wolf3d sources :D
[Images not permitted - Click here to view it]

I did have to change the backdrop a bit because the original did not convert to 16 colors very well.
It uses all 4 background layers:

bg0 - Backdrop
bg1 - Status bar image
bg2 - Status bar text
bg3 - Automap

The face is done using sprites and so far seems to be working out great :D

#168714 - BastarB - Sat May 16, 2009 5:42 pm

Nice work Lazy1 =D I actually like it when the background is more black and white^^

I have a suggestion, is it possible to add a date mark on the saves? So you can see exactly which date and time it was saved and at which gamelevel it was saved? Don't forget to add a 24 hour system if you want to add this feature ;)

Have a nice day!^^

EDIT: You wrote: "- Remove "lives" from gameplay, figure out what to do with those 1up spheres "
Why are you going to remove the lifes? =P

#168727 - Lazy1 - Sun May 17, 2009 6:17 pm

BastarB wrote:

EDIT: You wrote: "- Remove "lives" from gameplay, figure out what to do with those 1up spheres "
Why are you going to remove the lifes? =P


Because they didn't add much to gameplay and I needed to make room for the weapon icon in the status bar.
Getting it all to line up on an 8x8 grid was a real pain to begin with, removing lives got 2 birds with one stone.

#168731 - sverx - Mon May 18, 2009 10:46 am

Lazy1 wrote:
I did have to change the backdrop a bit because the original did not convert to 16 colors very well.


Why don't you use 256 colors instead? I'm curious...

And maybe you can show the left lives drawing some spots under the health percentage...

Just my two cents :)




?
_________________
libXM7|NDS programming tutorial (Italiano)|Waimanu DS / GBA|A DS Homebrewer's Diary

#168735 - Lazy1 - Mon May 18, 2009 11:29 pm

I had a good reason at the time... I'm sure I'll remember why at some point, had something to do with there not being enough colors in the wolf3d palette for everything.

As for lives, if they are really that important I'll think of a way to fit them in.
But... Are they that important?

[Edit]
Got music working (sort of), unfortunately maxmod breaks libnds's sound functions for some reason.
I'll have to look later on and see why.

#168741 - sverx - Tue May 19, 2009 12:43 pm

Lazy1 wrote:
[...] had something to do with there not being enough colors in the wolf3d palette for everything


Aren't you using extended palettes?

Ah, btw, I finally saw it yesterday: really a nice work :)

#168749 - BastarB - Tue May 19, 2009 11:56 pm

Lazy1 wrote:

As for lives, if they are really that important I'll think of a way to fit them in.
But... Are they that important?.


The Answer: No! But if you want the port to play 100% like the original game you should add it. But since modern fps doesn't have a live-system I don't think that anyone will care about it that much?!?!?

#168750 - Lazy1 - Wed May 20, 2009 2:55 am

Well, whenever I played and died I'd always quickload because starting again with a pistol and only a few bullets would suck. And then you have -1 life? Nah, I didn't like it back then either.

Good news however, music is in and it does work.
I may need help porting the music exporter to work on big endian systems though as I don't have anything ready to test on.

#168763 - BastarB - Wed May 20, 2009 9:37 pm

Well, if you now are going to remove the lives, what will happen when you die in game? Will you see a game over sign and then a opportunity to type your name on the highscore board, or will the game just automatically load the last saved game when you have died?
How will the highscore system work without the lives system?

Well, it's nice to hear that you have managed to get the music working^^=D

Good luck and take care!

#168767 - Lazy1 - Wed May 20, 2009 11:21 pm

Well, if you die you just start again from the beginning of the level.
You would enter your high score if you chose "End game" from the menu or beat the boss of whatever episode you are playing.

I don't even know where I would put / how I would do a lives display.
There really isn't any more room :/

#168768 - kjean - Thu May 21, 2009 2:03 am

Lazy1 wrote:
I don't even know where I would put / how I would do a lives display.
There really isn't any more room :/

How about add some small font text in the corner of the bottom screen below or something if that's that important.
e.g. "x3" or "3 Live(s) Left" or "<3 (=a small heart image) 3".

Keep up the splendid work! :D

#168771 - sverx - Thu May 21, 2009 8:53 am

Lazy1 wrote:
I don't even know where I would put / how I would do a lives display.
There really isn't any more room :/


What about placing the animated face lower in the subscreen and use that room left for lives? Just an idea...

#168774 - Lazy1 - Thu May 21, 2009 1:27 pm

Something like this?
http://img196.imageshack.us/my.php?image=lives.png

I want to leave the face where it would always be *easily* visible so moving that is not going to happen.

#168775 - elhobbs - Thu May 21, 2009 3:39 pm

Lazy1 wrote:
Something like this?
http://img196.imageshack.us/my.php?image=lives.png

I want to leave the face where it would always be *easily* visible so moving that is not going to happen.
what about something a little more subtle? like a red box/dot/heart in the bottom left corner for each life? or maybe just put the boxes under the health (though I am not sure if there is a max number of lives you can accumulate so that may not work)

edit: though to be honest - saves are much more usefull than extra lives. starting the level with nothing is a little frustrating.

#168781 - Lazy1 - Sat May 23, 2009 1:36 am

Another feature I added in today:
http://img34.imageshack.us/my.php?image=levelselect.png

It comes after episode select screen and before the skill select screen, I guess this is useful if you want to kill the bosses randomly.

[Added]
I've started on an options screen but the only 2 options I can think of are to smooth out scaling artifacts and swapping the dpad with abxy.

#168784 - another world - Sun May 24, 2009 12:00 am

Lazy1 wrote:
I guess this is useful if you want to kill the bosses randomly.


or replay a favorite level.

both sides of the life argument are valid. however, a purest who wants to play the game, the way the game was intended to be played, would want the lives left in. you are truthfully shaping this project up to be, arguably, one of the best 1st person shooter ports for the nds. i think you should try to keep it as pure to the original with all of the current enhancements, additions which really keep it a step above the rest.

finding a small area of the user interface or off to the side of the auto map to hold more data would work, if you can make it work. would you consider adding info to the side of the auto map like which cheats we are using, last game saved, number of lives, etc?

none of these are needed but it is nice to have all of the info right in front of your eyes and not behind sub sections. what about some type of clickable tabbed view. tab1 is auto map, tab2 is info on the game/stats, tab3 shows cheats, etc.

as for options, any visual efx that you can add in. anything to clean up old graphics? what about volume control? hmm....

cheers,
-another world

#168785 - Lazy1 - Sun May 24, 2009 12:48 am

Thank you for the feedback, it really is what keeps me working on this project :D
I will concede though, lives will remain in the game.

What I can do is sneak in a small sprite in the lower corner next to the face which represent how many lives you have left.
From what I imagined the automap would be toggled by tapping the touchscreen, any other features would come later.

Ideally I want to write a series of tools to convert and extract ALL of the pictures and make it a true port, something that looks like it belongs on the DS.

#168793 - Lazy1 - Mon May 25, 2009 12:21 am

How about this:
http://img29.imageshack.us/my.php?image=withlives.png
http://img40.imageshack.us/my.php?image=altlives.png

Lives are displayed next to BJ's face.

[Edit]
Is it really important to type save names/score names in using the keyboard or can it just be the DS owner's name?

[Added]
The process of moving the mockup statusbar into the wolf3d project has begun.
A few more bugs remain but it's looking good so far...
http://img269.imageshack.us/my.php?image=previewbbg.png

Also, the slowdown during screenfades (getting shot, picking up an item) are now gone.
Palette shifts are done at the next vblank instead of forcing a wait.

#168795 - another world - Mon May 25, 2009 7:44 am

that tiny number near the face is just perfect. just be sure to add to the readme in the final version what that number means.

as for saving by the ds owner's name, i use japanase characters to make up my name. they never appear correctly in any homebrew. i get the same problem in some retail games as well. sometimes i see characters, other times i see spaces and question marks. just FYI.

if you only allow 1 save per level why not just default to the version of wolf3d and the level. SOD_LEVEL1.SAV, etc. if you allow more than one save you could always have the code check to see if a save exists and then make a 2nd, 3rd, nth save which is automatically numbered.

-another world

#168800 - Asaki - Mon May 25, 2009 7:26 pm

Lazy1 wrote:
Lives are displayed next to BJ's face.


Looking good. I was going to suggest the exact same thing.

Lazy1 wrote:
Is it really important to type save names/score names in using the keyboard or can it just be the DS owner's name?


It would be nice, I wouldn't want someone else to play my DS and register their high scores under my name. Even if it was just one of those old-fashioned "press right and left to select letter" deals.

As for saves, I find it convenient to not have to type anything in...if it automatically set it to the level name and maybe the date or something, that would be cool.

#168804 - lord_hardware - Tue May 26, 2009 3:09 am

i float in and out of this forum, but its nice to see that due to this one homebrew the forum has not died :)
_________________
NDSL: M3Real, EZ4 Lite Deluxe, 2x Kingston 1GB Micro SD, 1x Kingston 4GB Micro HCSD 1x Kingston 8GB Micro HCSD

#168805 - kjean - Tue May 26, 2009 3:12 am

A brilliant solution. I like that. xD

And that save stuff. How about a profile system? like a number of modern FPS does. Just an idea.

Profile management (main)
- Create profile (sub)
- Change profile (sub)
- Rename profile (sub)
and if you create a profile "Lazy1" it also generate folder "Lazy1" and you can save there separately!

Keep up the good work!

#168807 - MrSkiz - Tue May 26, 2009 11:24 am

All these updates really kill me Lazy1 :) I'm highly impatient to test the next release. Do you have an approximative date ?

#168810 - Lazy1 - Tue May 26, 2009 12:59 pm

I can't put an approximate date on it yet, there is still quite a bit to do:

- Port music converter to linux, test on big-endian systems
- Add level select for Spear of Destiny
- Add cheats for Spear of Destiny
- Add 50% slowdown cheat
- Re-add keyboard for user input (was broken anyway)
- Finish automap stuff
- Fix the few status bar bugs remaining
- Fix demos (they are horribly broken timing wise)
- Figure out how to add fm synth sounds (ammo pickup, treasure, ect)

What is done:

- Level select for Wolfenstein 3D
- Cheat menu
- Music support (32768Hz mono IMA-ADPCM)
- Updated status bar
- Power off button added to main menu

That's all I can think of for both lists at the moment, there probably is more than that still.

#168856 - Lazy1 - Sun May 31, 2009 3:06 am

Demos have been fixed, turns out it wasn't a timing problem after all.
The modifications I made to the movement code for strafing broke demos without me noticing.
I did manage to get the music converter working under linux, the makefile is pretty cheap though.

Maybe in the next week I can send out test builds to some of you who have been participating in this thread.

#168857 - Asaki - Sun May 31, 2009 3:20 am

I'd be glad to test.

#168858 - Badablek - Sun May 31, 2009 4:41 pm

I'd be happy to test it too ;)

#168868 - Diddl - Mon Jun 01, 2009 11:29 am

Badablek wrote:
I'd be happy to test it too ;)

Yes!!

#168883 - another world - Mon Jun 01, 2009 5:07 pm

this is exciting news! please keep us posted.

-another world

#168915 - KillerMapper - Tue Jun 02, 2009 1:41 pm

Why not using the down screen as a map screen?
_________________
www.mariokartsource.com

#168918 - Lazy1 - Tue Jun 02, 2009 5:17 pm

I haven't got around to it yet, been busy doing other things the last 2 days or so.

#169066 - BastarB - Thu Jun 11, 2009 10:43 pm

Hey Lazy! =D I really like that you are going to add a lifesystem like the original, I like when it's shown below the face picture^^ I hope that the development goes well! But of course take your time, this port is so great=D Thank you so much=D And have a nice day^^

#169324 - wolfmanz51 - Fri Jul 03, 2009 6:02 am

Asaki wrote:
Lazy1 wrote:
Lives are displayed next to BJ's face.


Looking good. I was going to suggest the exact same thing.

Lazy1 wrote:
Is it really important to type save names/score names in using the keyboard or can it just be the DS owner's name?


It would be nice, I wouldn't want someone else to play my DS and register their high scores under my name. Even if it was just one of those old-fashioned "press right and left to select letter" deals.

As for saves, I find it convenient to not have to type anything in...if it automatically set it to the level name and maybe the date or something, that would be cool.

yeah this seems like a good way to put in the names for saves and scores also great job on the lives. cant wait to see this release. Also good to finaly see progress on the music file conversion i asked you about this on your blog and Im glad its going well . good luck with the fm synth sounds. with both this and DS doom reciving updates soon DS home brew fans have a lot to look forward to.

#169529 - Lazy1 - Tue Jul 21, 2009 4:28 am

Going to try restarting development tomorrow.
Sorry all but I had to take a break from it, you can only work on one thing for so long...

#169531 - another world - Tue Jul 21, 2009 7:44 am

i know that feeling. great news by the way. we are all looking forward to updates.

cheers,
-another world

#169928 - wolfmanz51 - Sat Aug 15, 2009 6:44 am

yeah as long as you keep coming back and making small progress Im very happy because even though you take your time and have been working on this for a long time you keep at it and never give up. Thats very respectable especially since many DS game ports and Emus are no longer updated or even worked on Aka Quake DS, Snemul DS and DScent its kind of sad because many of these where/are sooo close to great working form. Take DScent for example its a Awesome port almost perfect but it crashes and corrupts SDHC cards I hope to acquire more programing knowledge to one day Fix broken projects like this because It seams like it would just take some code clean up to fix DScent. So sorry about the long rant but as long as you dont give up I think your project will become perfected one day. its all ready Very polished...

#171196 - Lazy1 - Thu Nov 05, 2009 9:04 pm

What?
It's just an automap after all...

[Images not permitted - Click here to view it]

Colors are not correct, gotta figure out a better way of getting a single color from each texture.

[EDIT]
Cool, found a new bug in that picture.

// TODO:
// You do not start with a key, remember to clear that sort of thing

#171197 - MechaBouncer - Thu Nov 05, 2009 10:05 pm

Haha! Sweet! Who care's if it's in the wrong colors. It's a map. Most are red or white anyway.
_________________
Cobalt/Black NDSL
CycloDS Evolution (firmware 1.55 BETA 3) and EZFlash 3-in-1
Kingston SD-C02G JAPAN 2GB MicroSD
MoonShell 1.71, DSOrganize 3.1129, QuakeDS Pre3, ScummVM DS 0.11.1, Pocket Physics 0.6, OpenTyrian DS 0.3

#171198 - Lazy1 - Fri Nov 06, 2009 12:00 am

It matters to me for some odd reason, I did change it to only draw what has been seen though.
The weird thing about projects you haven't touched in a long time is forgetting what you did, maybe odd hacks you "temporarily" had in place for one reason or another...

First it was the random exploding hitler bug, now it's the random weapon change bug.
I really should have commented all of my changes, bah laziness.

#171200 - Asaki - Fri Nov 06, 2009 12:05 am

Lazy1 wrote:
Colors are not correct, gotta figure out a better way of getting a single color from each texture.


Can't you just say "if texture == gray_bricks || grey_bricks_swastika || gray_bricks_flag (etc), draw a #A0A0A0 pixel"?

Lazy1 wrote:
I really should have commented all of my changes, bah laziness.


I don't think anybody really comments their stuff unless it's a more-than-one-person job...and even then, maybe they let stuff slip ?_?

#171201 - Lazy1 - Fri Nov 06, 2009 12:10 am

I thought about that approach but it causes a few problems, mainly requiring a lot more effort to create such color tables manually.
That and if custom graphics were used nothing would line up.

#171202 - Asaki - Fri Nov 06, 2009 12:11 am

Ah, yeah, forgot about mods.

#171203 - MechaBouncer - Fri Nov 06, 2009 12:13 am

I know the feeling. I had a program I would take year-long hiatuses from every time it frustrated me too much. Never quite figured it out. A lot of reverse engineering of PS2 save files was needed and I gave up on it because it wasn't relevant anymore.

Sorry, off topic. The only thing I can think of is some complicated mess that would read in a texture and pretty much count how many pixels there were of each color and pick the highest one. Although I'm not sure what format the textures were in. If they're indexed palette it might be a little easier, but still a lot of work for minimal payoff.
_________________
Cobalt/Black NDSL
CycloDS Evolution (firmware 1.55 BETA 3) and EZFlash 3-in-1
Kingston SD-C02G JAPAN 2GB MicroSD
MoonShell 1.71, DSOrganize 3.1129, QuakeDS Pre3, ScummVM DS 0.11.1, Pocket Physics 0.6, OpenTyrian DS 0.3

#171207 - sverx - Fri Nov 06, 2009 9:40 am

Asaki wrote:
I don't think anybody really comments their stuff unless it's a more-than-one-person job


Well, I do comment a lot, almost one comment for each code line. Maybe it's because I'm not a really experienced coder...

#171210 - kusma - Fri Nov 06, 2009 11:26 am

sverx wrote:
Asaki wrote:
I don't think anybody really comments their stuff unless it's a more-than-one-person job


Well, I do comment a lot, almost one comment for each code line. Maybe it's because I'm not a really experienced coder...


I really like the commenting philosophy from the Git Coding Guidelines:
Quote:

- Try to make your code understandable. You may put comments
in, but comments invariably tend to stale out when the code
they were describing changes. Often splitting a function
into two makes the intention of the code much clearer.

#171213 - Drovor - Fri Nov 06, 2009 3:21 pm

Comment your commit's and algorithms at least :)

#171217 - vuurrobin - Sat Nov 07, 2009 12:11 am

I always put comments before my functions (in doxygen style). what does the function do, what is the required input/parameters, what is the output/return value and what else does the function change. the key is that I describe what the function does, not how they do it (unless its a well known algoritm, then I may put it in).

in the functions however, I try to avoid putting comments in the code. when you put comments in your function, then you should first see if you can make the code itself better understandable, instead of trying to cover up onreadable code with comments. if the code is just hard (like with algorithms) then you can put comments in.
_________________
my blog:
http://vuurrobin.100webcustomers.com/

#171218 - Lazy1 - Sat Nov 07, 2009 12:41 am

It appears that my music system is unstable!
/me cries

I guess it needs a good rethinking.

#171242 - Lazy1 - Mon Nov 09, 2009 5:50 am

Tried another automap style:
[Images not permitted - Click here to view it]

It fills out as the engine renders the level rather than looping through the map every frame.
Problem is it looks like crap.

1) I need to get the map more visible
2) Proper colors per texture are needed

#171264 - KillerMapper - Tue Nov 10, 2009 6:21 pm

I think a minimap like Doom's one should be better, I mean something scrolling so you can have a good zoom level.
_________________
www.mariokartsource.com

#171267 - Lazy1 - Tue Nov 10, 2009 11:01 pm

All my time now is going into the automap, I'm not sure how it'll turn out yet.

#171287 - Lazy1 - Thu Nov 12, 2009 1:49 am

Thanks to some excellent help from #dsdev the automap currently looks like this:
http://img35.imageshack.us/img35/451/amaptake4.png

- Still needs a player blip
- Still needs enemy blips
- Currently always on, gotta add a toggle

It scrolls around with you :D

#171290 - Asaki - Thu Nov 12, 2009 10:05 am

Very nice, very readable.

Perhaps a dark gray foggy color for the unexplored areas? Stippled, maybe?

I was going to suggest it before, but there was already too much gray in the wall "blips".

Enemy blips should be a cheat code or something.

BTW, would you mind if I gave it at test sometime? The last build you released didn't work on my DSX card =/

#171325 - KillerMapper - Fri Nov 13, 2009 7:31 pm

You don't need to show enemies I think.

Maybe if you can create new items, something like "enemy detector", but I don't know if you can modify the game and the levels.
_________________
www.mariokartsource.com

#171328 - Lazy1 - Fri Nov 13, 2009 8:30 pm

Actually, you're right.
Since enemies would only appear on the map if you can see them there is not much point in making blips for them.

As for new items, I'm trying to leave gameplay mostly unchanged.
I was intrigued by some of the iPhone changes but decided to stick to the classic version as much as I could aside from menu changes.

Just like how I was thinking on adding another difficulty level where the enemies respawn, for now I'll just keep working on getting it all together.

#171330 - Asaki - Fri Nov 13, 2009 8:44 pm

Porting over the iPhone graphics would be interesting. I heard they had a guy come in and finish up the Jaguar version art so you could see enemies from different angles.

Not that I personally need flashy graphics to enjoy the game...mostly I just don't play it (the original PC version) because it makes me motion sick, there's no strafe buttons, and the GBA port doesn't have music, a solid framerate, or support Spear of Destiny etc.

Speaking of iPhone, I had no idea Wolfenstein RPG came out.

#171566 - Asaki - Sat Nov 28, 2009 9:29 pm

Scratch that part about the iPhone version graphics. I'm looking at them right now (version 1.2), and I guess redrawing the enemies didn't work out, because these are all the original 64x64 sprites. Unless they were in a previous version and got taken out? Which I kind of doubt.

Also, scratch the part about it using the Jaguar version graphics. The weapons, most of the textures, and some of the objects are higher res...I'm not too familiar with the Mac or 3DO ports, but they look to be from there. Version 1.0 doesn't seem to have any high res art at all. Version 1.1 looks about the same as 1.2, except there's no SoD.

Thirdly, scratch the part about me testing your port on a DS-X. I got a new flash cart and gave the old one away.

Of interesting note, the MIDI sounds/music in the iPhone port have all been pre-rendered into OGGs, like what you were doing before. Also, they censored the medkits to have hearts on them instead of red crosses.

#171585 - Lazy1 - Tue Dec 01, 2009 5:50 pm

Well, I'm trying to keep it as close to the DOS version gameplay/graphics wise as I can.
The exception being the automap because it's a damn good feature to have :)

I did make a copy of the source code which removes all the menus and everything except the gameplay stuff to play around with.
Maybe at a much later date that could be used as a starting point for something more advanced.

#171586 - Asaki - Tue Dec 01, 2009 8:06 pm

Oh, I didn't mean that, I was just mentioning it because I remember a while back, you said something about supporting the Jag graphics as a mod.

#171587 - Lazy1 - Tue Dec 01, 2009 9:53 pm

I wondered as well about using the music from the Mac/ect versions since if I remember correctly it was in MIDI format or something.
So far I've put off rewriting the ADPCM streaming code to get more ideas on what to do.

#172651 - lord_hardware - Tue Feb 23, 2010 1:15 am

Well you could always just use DOS-midi winamp plugin to rip those badboys to WAV or MP3s
_________________
NDSL: M3Real, EZ4 Lite Deluxe, 2x Kingston 1GB Micro SD, 1x Kingston 4GB Micro HCSD 1x Kingston 8GB Micro HCSD

#172654 - Asaki - Tue Feb 23, 2010 4:17 am

He had already been doing that before. It was a really big package, and just generally not that great (plus, that means no support of mods with custom music).

#172658 - Sektor - Tue Feb 23, 2010 10:26 am

The DSx86 emulator author might release source to his Adlib/Soundblaster emulator, so they could be used for Wolf 3D eventually.
_________________
GTAMP.com/DS

#172659 - Pate - Tue Feb 23, 2010 11:19 am

Yeah, I plan to do that at some point. I need to clean up the code and add some missing features before that, though.

Or, if Lazy1 wants to take a look at my code and fix and improve it while I fix other things in DSx86, I'm sure that could also be arranged.

Pate
_________________

#172662 - Lazy1 - Tue Feb 23, 2010 2:26 pm

I don't speak arm assembly yet :P
I haven't touched the wolf3d code in months due to health issues, once those are under control I will pick up where I left off.

Btw, I did have music from an adpcm decoder I wrote but it was not stable and actually I have a music extractor/converter already written.
If anyone wants to play around with it I can post the source since it's pretty much done.

#172675 - Pate - Wed Feb 24, 2010 6:15 am

Understood, hope you get your health back soon!

I'll try to release my AdLib/SB emulator code as an easy-to-use library at some point, but that will most likely take a while yet.

Pate
_________________

#172678 - Lazy1 - Wed Feb 24, 2010 3:10 pm

Such an emulator would bring certain extra item sounds in addition to music.
The music format used by wolf3d is dead simple, it's pretty much just:

byte reg
byte value
word delay

Just has to be fed to the adlib hardware at 700Hz.
If I get bored enough today I'll write a player for DOS and see how well it goes on dsx86 :)

#173390 - Lazy1 - Sun Apr 04, 2010 3:02 pm

I've decided to rework the graphics/menu portions of the Wolfenstein source, right now this is being done in a testbed app first.
http://yfrog.com/5bdesmumescreenshot0p

What I'm hoping to do is replace all the software blitted 320x200 graphics with ones better suited to the DS's screen and use the DS's 2D hardware properly.
This will take some time to do but hopefully in the end it will be worth the wait :)

#173421 - wolfmanz51 - Tue Apr 06, 2010 7:02 am

Awesome love to see u work on this project Lazy1

#173438 - Lazy1 - Tue Apr 06, 2010 6:27 pm

It's giving me something to do at the very least, a bit slow going though.

#173469 - another world - Thu Apr 08, 2010 5:48 am

as i have said before.... take your time. =) we will enjoy your hardwork when it is done and show our support of this project in the meantime.

-another world

#175054 - Asaki - Fri Aug 27, 2010 7:43 pm

Hey Lazy,

Lately I've been porting Wolfenstein 3D to the Quake engine (DarkPlaces, to be more specific) and I was wondering if you had any ideas for converting Adlib sound effects into WAVs.

Right now I'm using the OGG files from the iPod port of the game, but several sounds are missing (all of the menu sounds and most of the "use button" sounds). I've already converted all of the music over using a WinAmp plugin, but there doesn't appear to be any program for the sounds (or at least I got tired of looking after about an hour).

I guess if I really need to I'll just record straight from the sound card, but I was hoping you knew of a better way.

http://i99.photobucket.com/albums/l315/lordasaki/wolf000013.jpg
http://i99.photobucket.com/albums/l315/lordasaki/wolf000014.jpg
http://i99.photobucket.com/albums/l315/lordasaki/wolf000015.jpg

Outdated shots, but you get the idea =)

#175089 - Lazy1 - Mon Sep 06, 2010 12:01 am

Sorry, been away far too long it seems.

I had the same problem with sounds, when I last tried I knew a lot less about how wolf3d used the adlib hardware.
I just used dosbox and extracted the important ones.

Be careful with the winamp plugin though, at least when I tried it some things were played incorrectly.
An example would be episode 1 level 10.

Looks nice so far though. :)

#175090 - Asaki - Mon Sep 06, 2010 6:19 am

Oh wow, I see what you mean about level 10's music, I hadn't even noticed.

Well it still sounds a lot more accurate than the music in the iPod version (and loops properly, too). Do you have a better way of converting the music?

How do you extract sounds from DOSBox? Does it have an option to log the sound output as a WAV?

#175091 - Lazy1 - Mon Sep 06, 2010 7:11 am

What I'm going to suggest will sound insane:

Put an adlib emulator inside your Quake source port.
You'll save a tonne of disk space and it'll sound fairly close to the original.

ScummVM's emulator comes fairly close, real hardware of course sounds better but no longer exists.
:D

The IMF format is dead simple, I wrote an app a ways back to do the conversions.
Once I find it I'll upload it so you can use it as a starting point.

The sound effects should follow a similar route, you'll just need to check out the original sources and or other wolf3d source ports to see how it's handled.
Likely it's going to be a bunch of adlib commands fed to the hardware at 700hz - just like the music.

[Edit]
Make sure ScummVM and your source port's licenses are compatible though.

#175092 - Asaki - Mon Sep 06, 2010 6:03 pm

That doesn't sound too crazy, I'd considered it before...the problem is that I really don't know much of C at all =) I just barely know enough to figure out what's what and convert it to QuakeC language.

Which is rather unfortunate because I'm pretty sure that's the only way I could make this project legal. Right now I'm just sort of hoping since it won't get too much attention that id won't really mind. I know there's two different Wolf mods for DOOM that have been around for a while and haven't had any legal action taken against them...and Romero already knows about my mod, and hasn't said anything outside of "Interesting..."

But I'm not going to worry about it much unless there's a Quake Expo this year.

#175408 - Lazy1 - Mon Nov 15, 2010 4:27 pm

I plan on reopening this project.
I'm feeling quite a bit better now so I can focus on what needs to be done.

Damn, I haven't even played with Pate's adlib emulator yet - and that makes me sad.

#175409 - LDAsh - Tue Nov 16, 2010 3:04 am

Great to hear, Lazy1, hope you'll be getting better!
I don't know if there's anything I could do to help, but if you need any graphics please let me know.

#175410 - wolfmanz51 - Tue Nov 16, 2010 5:43 am

nice to hear as always cant wait to see what u do!

#175464 - Lazy1 - Fri Nov 26, 2010 1:57 am

News:
Pate's adlib emulator used to successfully play an IMF tune from wolf3d!

[Added]
Adlib based sounds appear work as well, things like item pickups should have sound when I get around to adding this.

Pate:
The adlib emulator in your downloads section is dated earlier than when your blog says it was completed.
I was just curious if any major changes were made between the two versions.

So far it sounds amazingly close, some instruments are a bit off or quiet but all things considered it's a damn amazing piece of work.

#175467 - Pate - Fri Nov 26, 2010 12:10 pm

Hi Lazy1!

Firstly, great to hear you are healthy again! :-)

I believe the AdLibSrc package is of the latest version, I think I just mentioned it on my blog somewhat later than I actually finished it.

Glad to hear you feel it worth incorporating into Wolf3D (or at least testing it). My primary goal was speed (as I wanted to get all 9 channels working), so I had to do some shortcuts regarding the accuracy.

Thanks for the compliments! :-)

Pate
_________________

#175468 - Lazy1 - Fri Nov 26, 2010 2:26 pm

Oddly enough neither no$ or desmume can emulate it correctly, but after some rethinking and simplifying it was insanely easy to use.
My testbed code looks like this:

Code:

#include <nds.h>
#include <stdio.h>
#include <string.h>

struct IMFCommand {
   u8 Reg;
   u8 Value;
   u16 Delay;
};

struct AdlibInstrument {
   u8 mChar,
   cChar,
   mScale,
   cScale,
   mAttack,
   cAttack,
   mSus,
   cSus,
   mWave,
   cWave,
   nConn,
   Voice,
   Mode,
   Unused[ 3 ];
};

struct AdlibSound {
   u32 Length;
   u16 Priority;

   struct AdlibInstrument Instrument;
   u8 Block;
};

#define alChar 0x20
#define alScale 0x40
#define alAttack 0x60
#define alSus 0x80
#define alFeedCon 0xC0
#define alWave 0xE0

u8 MusicBuffer[ 65536 ];
u8 AdlibBuffer[ 65536 ];

volatile struct IMFCommand* MusicBase = NULL;
volatile struct IMFCommand* MusicPtr = NULL;
volatile int MusicSize = 0;

volatile u8 AdlibBlock = 0;
volatile u8* AdlibData = NULL;
volatile int AdlibLength = -1;

static inline u16 SwapU16( u16 Value ) {
   return ( Value & 0x00FF ) << 8 | ( Value & 0xFF00 ) >> 8;
}

static inline void alWrite( u8 Reg, u8 Value ) {
   fifoSendValue32( FIFO_USER_01, ( Reg << 8 ) | Value );
}

static void SetAdlibInstrument( struct AdlibInstrument* Instrument ) {
   struct AdlibInstrument NullInstrument = {
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, { 0, 0, 0 }
   };

   if ( Instrument == NULL )
      Instrument = &NullInstrument;

   alWrite( 0 + alChar, Instrument->mChar );
   alWrite( 0 + alScale, Instrument->mScale );
   alWrite( 0 + alAttack, Instrument->mAttack );
   alWrite( 0 + alSus, Instrument->mSus );
   alWrite( 0 + alWave, Instrument->mWave );

   alWrite( 3 + alChar, Instrument->cChar );
   alWrite( 3 + alScale, Instrument->cScale );
   alWrite( 3 + alAttack, Instrument->cAttack );
   alWrite( 3 + alSus, Instrument->cSus );
   alWrite( 3 + alWave, Instrument->cWave );

   alWrite( alFeedCon, 0 );
}

void OnTimerIRQ( void );

int PlayAdlibSound( FILE* AudioT ) {
   struct AdlibSound* Sound = ( struct AdlibSound* ) AdlibBuffer;

   fread( AdlibBuffer, 1, sizeof( AdlibBuffer ), AudioT );
   DC_FlushRange( AdlibBuffer, sizeof( AdlibBuffer ) );

   if ( Sound->Length > 0 ) {
      SetAdlibInstrument( &Sound->Instrument );

      AdlibBlock = ( ( Sound->Block & 7 ) << 2 ) | 0x20;
      AdlibData = &AdlibBuffer[ sizeof( struct AdlibSound ) ];
      AdlibLength = Sound->Length * 5;

      timerStart( 0, ClockDivider_1024, TIMER_FREQ_1024( 700 ), OnTimerIRQ );

      iprintf( "Playing... " );

      while ( AdlibData ) {
         swiWaitForVBlank( );
      }

      iprintf( "done.\n" );
   }

   return 0;
}

/*
   Ticbase = 700Hz
   Delay = n Tics
*/

void OnTimerIRQ( void ) {
   static int InDelay = 0;

   if ( AdlibData ) {
      if ( AdlibLength < 0 ) {
         alWrite( 0xA0, 0x00 );
         alWrite( 0xB0, AdlibBlock );
         AdlibData = NULL;
      } else if ( AdlibLength == 0 ) {
      }
      else if ( ( AdlibLength % 5 ) == 0 ) {
         alWrite( 0xA0, *AdlibData );
         alWrite( 0xB0, AdlibBlock & ~2 );
         AdlibData++;
      }

      AdlibLength--;
   }

   if ( MusicPtr && MusicSize > 0 ) {
      if ( InDelay > 0 ) {
         InDelay--;
         return;
      }

      alWrite( MusicPtr->Reg, MusicPtr->Value );

      if ( MusicPtr->Delay ) {
         // Delay here
         InDelay = MusicPtr->Delay;
      }

      MusicPtr++;
      MusicSize-= 4;
   }
}

int MusicStart( FILE* AudioT ) {
   u16 Length;

   fread( &Length, sizeof( u16 ), 1, AudioT );
   fread( MusicBuffer, 1, Length, AudioT );
   DC_FlushRange( MusicBuffer, sizeof( MusicBuffer ) );

   iprintf( "Length = %d\n", ( int ) Length );

   iprintf( "Playing... " );

/*
   alWrite( 0x20, 0x01 );
   alWrite( 0x40, 0x10 );
   alWrite( 0x60, 0xF0 );
   alWrite( 0x80, 0x77 );
   alWrite( 0xA0, 0x98 );
   alWrite( 0x23, 0x01 );
   alWrite( 0x43, 0x00 );
   alWrite( 0x63, 0xF0 );
   alWrite( 0x83, 0x77 );
   alWrite( 0xB0, 0x31 );
*/

   if ( Length > 0 ) {
      MusicPtr = ( volatile struct IMFCommand* ) MusicBuffer;
      MusicSize = Length;

      timerStart( 0, ClockDivider_1024, TIMER_FREQ_1024( 700 ), OnTimerIRQ );

      while ( MusicSize > 0 ) {
         swiWaitForVBlank( );
      }
   }

   iprintf( "done\n" );
   return 0;
}


The adlib sound code came from SDL Wolf3d which was not commented.
Normally I don't like using code I don't understand but for this I'll make an exception. :D

#175469 - sverx - Mon Nov 29, 2010 9:49 am

Lazy1 wrote:
Code:

static inline u16 SwapU16( u16 Value ) {
   return ( Value & 0x00FF ) << 8 | ( Value & 0xFF00 ) >> 8;
}


I think you don't really need to mask Value with 0xFF00 before doing >> 8 :D (mmm... and maybe also the other mask is useless...)

#175470 - Lazy1 - Mon Nov 29, 2010 5:24 pm

You're right, and that is another reason I hate looking at my old code. :)
That little piece was borrowed from an earlier project of mine which needed to work on both big and little endian machines.

No idea how it snuck in here though, another point against late night coding I guess.

#175502 - Lazy1 - Mon Dec 06, 2010 9:47 pm

Finally I got wolf3d to enter the game again as I was having trouble with a bug that must have been introduced almost a year ago.
Basically the code I was using to generate a single colour from each texture for the automap was broken.
I assumed the registered version so the shareware would die cryptically when it requested data which was not in the files. (PML_ReadFromFile: Zero Offset)

I have a bit more tidying to do and updating for the newest libnds changes but once that is done I'd like to have the source hosted somewhere.
Any personal recommendations for source control?

Oddly enough looking at the code everything was set to go using ADPCM compressed wave files for music.
I'll add in the adlib emulator later but cannot release anything until I finish/integrate the other code for the bottom screen.

#175503 - Asaki - Mon Dec 06, 2010 10:19 pm

Seems like almost everyone just uses SourceForge. I've never used it myself, but it seems like a pretty nice place.

#175518 - another world - Sat Dec 11, 2010 1:55 am

i see some homebrew project and a lot of wii projects hosted on the google pages.

-another world

#175812 - Lazy1 - Thu Feb 10, 2011 6:06 pm

I'm going to try and burn through the sound code in the next few days, a lot of stuff will be left out but dammit I started this project in 2005!
It's too damn late already!

#175815 - LDAsh - Fri Feb 11, 2011 7:58 am

It's not too late! I'm still really looking forward to updates and will be playing it thoroughly. It's a shame what seems to have happened to the DS homebrew scene, not many people get the accolades they deserve, but that doesn't mean it's not worthwhile and it doesn't mean it's not played and appreciated, even after these years.
:)

#175853 - wolfmanz51 - Sat Feb 19, 2011 8:19 pm

Nice i was just playing this on my cyclo Ds ievo id love to see how this runs after your next release. Always looking forward to your work. do you plan to support dsi mode?

#175854 - Lazy1 - Sat Feb 19, 2011 11:22 pm

It should run in DSi mode, I haven't done research yet to see if I have to do anything specifically or if it will "just run".
The only thing you might gain is a higher frame rate though.

The sound code is in an odd state, odd as in I removed most of it for some reason and I cannot remember why.
Bah.

More work than I thought.

#175893 - Asaki - Thu Feb 24, 2011 7:45 pm

Hey, I don't know if this interests you at all, but I just found the source for the Macintosh version: http://www.karland.com/code/cplusplus/files/Wolf3DMacSource.sit

There's some SNES stuff in there, too.

#175902 - Lazy1 - Fri Feb 25, 2011 10:55 pm

The Mac/SNES ports are quite interesting, in fact I believe it's renderer is BSP based.
Unfortunately I don't think any code is shared between it and the PC version.

I'm taking a look at implementing a proper sound system which would also properly handle positioned sound.
Time is split very thin though, I'll do what I can though.

#175906 - Asaki - Sat Feb 26, 2011 3:54 pm

Lazy1 wrote:
Unfortunately I don't think any code is shared between it and the PC version.


I know, I just had a heck of a time finding the source, and wondered if you'd be interested in it at all.

I'm beginning to consider porting the SNES/Jag/Mac version to Quake after I finish the Ep1 shareware. Shouldn't take too long, since there's less levels and they're much more simplistic.

#175950 - Lazy1 - Mon Mar 07, 2011 10:30 pm

Taking a look at the positioned sound code from the SDL/Id source:
I have no idea what is going on, it looks like a table of modifiers to either sound position or volume level.

Code:

*
==========================
=
= SetSoundLoc - Given the location of an object (in terms of global
=   coordinates, held in globalsoundx and globalsoundy), munges the values
=   for an approximate distance from the left and right ear, and puts
=   those values into leftchannel and rightchannel.
=
= JAB
=
==========================
*/

#define ATABLEMAX 15
static const byte righttable[ATABLEMAX][ATABLEMAX * 2] = {
{ 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 6, 0, 0, 0, 0, 0, 1, 3, 5, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 6, 4, 0, 0, 0, 0, 0, 2, 4, 6, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 4, 1, 0, 0, 0, 1, 2, 4, 6, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 6, 5, 4, 2, 1, 0, 1, 2, 3, 5, 7, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 6, 5, 4, 3, 2, 2, 3, 3, 5, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 6, 6, 5, 4, 4, 4, 4, 5, 6, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 6, 6, 5, 5, 5, 6, 6, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}
};
static const byte lefttable[ATABLEMAX][ATABLEMAX * 2] = {
{ 8, 8, 8, 8, 8, 8, 8, 8, 5, 3, 1, 0, 0, 0, 0, 0, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 2, 0, 0, 0, 0, 0, 4, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 2, 1, 0, 0, 0, 1, 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 7, 5, 3, 2, 1, 0, 1, 2, 4, 5, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 5, 3, 3, 2, 2, 3, 4, 5, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 6, 5, 4, 4, 4, 4, 5, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 6, 6, 5, 5, 5, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}
};

static void SetSoundLoc(fixed gx, fixed gy)
{
   fixed xt, yt;
   int x, y;

// translate point to view centered coordinates
//
   gx -= viewx;
   gy -= viewy;

//
// calculate newx
//
   xt = FixedByFrac(gx,viewcos);
   yt = FixedByFrac(gy,viewsin);
   x = (xt - yt) >> TILESHIFT;

//
// calculate newy
//
   xt = FixedByFrac(gx,viewsin);
   yt = FixedByFrac(gy,viewcos);
   y = (yt + xt) >> TILESHIFT;

   if (y >= ATABLEMAX)
      y = ATABLEMAX - 1;
   else if (y <= -ATABLEMAX)
      y = -ATABLEMAX;
   if (x < 0)
      x = -x;
   if (x >= ATABLEMAX)
      x = ATABLEMAX - 1;

   leftchannel  =  lefttable[x][y + ATABLEMAX];
   rightchannel = righttable[x][y + ATABLEMAX];
}

#175984 - Lazy1 - Mon Mar 14, 2011 8:30 pm

Support for positioned stereo sound has been added and appears to be working perfectly so far.
We're limited to 5 sounds at once though and I still need to finish merging the AdLib emulator from my testbed app into Wolf3D.

#175986 - LDAsh - Tue Mar 15, 2011 6:37 am

Awesome news, well done! I am salivating in anticipation of a release soon. :D

#175992 - Lazy1 - Tue Mar 15, 2011 10:48 pm

There are a few kinks that need to be worked out, but must be done on hardware since neither desmume or no$gba can handle the arm7 opl emulator.
What I'm trying to do now is get the priority stuff working so that picking up a machine gun sound isn't overridden by moving against a wall.

Not to mention all the code for the bottom screen is probably horrible and in need of a rewrite.
It also has no keyboard to enter in high scores or saves.

// TODO:
// Stuff

[Edit]
An interesting thing happened...
I noticed a bug where the pickup +1 life sphere would lower the volume of all other sounds that come after it.
I wasn't sure if it was my problem or a quirk of the opl emulator, a quick run of wolf3d in dsx86 tells me:

- All of the adlib based sounds are being played back improperly
- The other bugs I noticed are not there when running under dsx86

So it appears there is a flaw in my implementation, looks like I'll have to rewrite it based on the original x86 asm based sound manager in the wolf3d source.
I don't know x86 assembly but it shouldn't be too hard to figure it out... Right?

:/

#176035 - Asaki - Thu Mar 24, 2011 4:33 pm

I know you're not using this anymore, but I found another good source:

[Images not permitted - Click here to view it]

#176036 - Lazy1 - Thu Mar 24, 2011 5:22 pm

Kurt Russel?

#176101 - elhobbs - Mon Apr 11, 2011 6:22 am

lazy1 - I am not sure if you already have the mus files playing yet for music. you may want to take a look at MUSLib and MUSPlay. I was able to cobble something together (in conjunction with pate's adlib emulator) that plays a MUS file on the ds if you are interested. it sounds a little tinny but am not sure if I ever played anything with a pre SBII compatible card before.