View Full Version : Porting Wolfenstein 3D to Mac OS X
sixtyfive
2005.11.01, 01:19 PM
Why isn't anyone interested in porting the Macintosh version of Wolfenstein 3D to Mac OS X? We already have Doom, Marathon and Duke Nukem.
Why not Wolfenstein?
Leisure Suit Lurie
2005.11.01, 03:18 PM
You can always try running it through DOSBox. (http://dosbox.sourceforge.net/)
Carlos Camacho
2005.11.01, 07:21 PM
>Why isn't anyone interested in porting the Macintosh version of Wolfenstein 3D to Mac OS X
Daniel's idea is good. I'll take a wack at why no one is interested in porting the game..
1) If I recall, there is a great deal of ASM, whereas recent id code that was released is in C (or variant)
2) The 3d engine (which is really 2d) is pretty primitive for today. Considering that devs can use dim3, Unity or OpenGL to make their own FPS, I can't see a reason to revisit the game. Perhaps you should grab such dev tools and make an all new game that is set in the WW2 era?
Cheers,
Leisure Suit Lurie
2005.11.01, 07:39 PM
I *think* Bill Heinman released the mac source code to Wolfenstein. Not 100% on that. Its probably 68k assembly though.
sixtyfive
2005.11.02, 10:29 AM
I *think* Bill Heinman released the mac source code to Wolfenstein. Not 100% on that. Its probably 68k assembly though.
Yes, and I have a copy of the code.
It's really all C, except for a 16 KB PPC assembly document.
...
...
...
Just to confirm what I said, I remember that Axel Wefers (Fruitz of Dojo) once told me that porting that specific version of Wolfenstein to Mac OS X would be a half-a-day long work for a good coder.
If you want, I can put the source online somewhere, since it isn't available anymore from Contrabandent's Hotline server. :)
Malarkey
2005.11.05, 12:13 PM
We're all in the middle of a 6-week programming contest plus the holidays (for the US residents, at least) are coming up so it's probably more likely that no one has the time right now.
If you want, post it, and I'll take a look at it but don't expect anything for a while. :ninja:
sixtyfive
2005.11.07, 11:32 AM
History of Wolfenstein 3D: First & Second Encounter
Programming and Project Lead: Bill Heineman
Additional programming: Chris DeSalvo
Producer: Bill Dugan
Wolfenstein 3D for MacOS was released on October 1st, 1994 by Interplay Productions under license from id software. The code was based not on the PC version but of a Super NES version that was done at id software. This version of the game differs greatly from the PC version since it used BSP trees to help determine which walls were to be drawn instead of the ray-casting method.
The fixed point number system was 8.8 format so that it could fit in a 65816 register for the SNES and Apple IIgs version of Wolf 3D. (8 bits of integer and 8 bits of fraction)
The mac version also has two modes of drawing. In the 68000 version, 68000 code is generated at runtime to draw the vertical lines very quickly. The source file SetupScalers68k.c creates the 68000 code and then issues calls to it via a little 68000 assembly glue code. This is how the game got its speed. The powerpc version originally had this method as well but the performance sucked. So it was changed to a simple assembly loop and the game ran fine. This is why there is SetupScalersPPC.c and SetupScalers68k.c.
I took the code from Codewarrion DR/4 which was the development system at the time and updated the project to Codewarrior PRO 5 (Which is what I use today). I've compiled, tested and ran the game and the code runs fine. The sound code is copyright Steve Hales and Jim Nitchals. You cannot use the music driver in your own programs unless you get a license from Steve Hales. (Jim Nitchals sadly has passed on, may he rest in peace).
Yes, there is a level editor that I wrote. It sucks. I suggest you get WolfEdit that is available on the web from WolfAddict software instead. It doesn't suck.
Here it is 1/21/2000. Over 5 years since I did the mac version of Wolf 3D. Seems like yesterday. I hope you enjoy looking over this code and making little changes for your own pleasure and learning. If someone makes any improvements to this code like adding Sprocket support or GL support, please send me the new source. I can be found at burger@logicware.com
I want to thank those who helped make this project a reality. John Carmack, Jay Wilbur, John Romero, Brian Luzietti and my wife Lorenza.
Bill Heineman
Logicware Inc.
20628 E. Arrow Hwy. #6
burger@logicware.com
http://rapidshare.de/files/7312368/Wolf3dSource.sit.html
As I said before, only a 12 KB .ppc file actually contains assembly code. Shouldn't be a hard work for a talented programmer.
Have a nice day,
sixtyfive
unknown
2005.11.14, 08:04 AM
This is the origional wolf3d, I want this on x :D
Do you have xcode?
If not install it you will need it later,
this is all the files added to a project and it gets two errors (and a lot more if you comment out those lines)
the error is deferencing pointer to incomplete type
PalHand = (Handle) (**(*GameGWorld).portPixMap).pmTable;
update:
PalHand = (Handle)(**GetPortPixMap(GameGWorld)).pmTable;
seems to fix it
another update: fixed one file, out of I dont know how many will cause problems but basically the problems are things like
UpdateDialog(theDialog, theDialog->visRgn);
needs to be changed to
RgnHandle theDialog_visRgn;
GetPortVisibleRegion(theDialog, &theDialog_visRgn);
UpdateDialog(theDialog, theDialog_visRgn);
because of this being carbon and not mac os
sixtyfive
2005.11.14, 09:00 AM
My problem is, I'm not really used to working on other people's code. Also, my knowledge of C isn't that good, and is even worse when applied to the Macintosh environment.
By the way, I was formely known on these forums as SixtySoftWorks.:rolleyes:
unknown
2005.11.14, 09:05 AM
get xcode and try and compile this.
Im just uploading what ive done so far version,
search for EDEDED to see the changes,
theres some errors there just now I dont understand yet, if someone with some experience with Quickdraw could take a look would be very useful,
www.geocities.com/ed72678954/Wolf3D.zip
sixtyfive
2005.11.14, 09:12 AM
Just installed Xcode, now looking. Thanks for your prompt replies, mine will follow soon.
sixtyfive
2005.11.14, 09:16 AM
I'm actually getting erros on PrefsFile.c. It actually refers to Mac OS Classic directory structures (Macintosh HD:System Folder:Preferences), so that should be changed.
Also, I think file I/O routines changed with the newer systems. ;)
unknown
2005.11.14, 09:20 AM
Thats odd, it must be compiling in a order for you, I get errors in Mac.c, but im sure ill get errors in PrefsFile.c later ;)
Much of the code will still work, but yeah filesystem things can cause problems, that was the problem getting music in the candy crisis game.
Its just a matter of updating the some parts of the code for the altered carbon API, so hopefully it shouldnt be too much trouble. I am stuck with the setPort thing just now..
sixtyfive
2005.11.14, 09:22 AM
You are doing a good job I think. Any chances to continue this talk on AIM or MSN?
sixtyfive
2005.11.14, 11:59 AM
We are stuck on the ASM code for the rendering engine. Could someone join us? :)
unknown
2005.11.14, 12:54 PM
We need the following functions converted to c code for the game to run,
(also I have 24 errors, and slowly getting rid of them, once this file is done and this assembly code is converted it should build, startup and knowing programming probably crash.. :P)
Its just 5 functions that were written in assembly to make the rendering faster.
;
; Assembly language functions for wolf 3-D PPC version
; Written by Bill Heineman
; 9-12-94 (Rev for removing scalers and using direct code)
;
;
; Bullshit to make the PPC Mac environment know I'm here
;
import VideoWidth ; global variable from C program
import MacViewHeight
import ArtData
import VideoPointer
import ScaleDiv
toc
tc VideoWidth[TC],VideoWidth
tc MacViewHeight[TC],MacViewHeight
tc ArtData[TC],ArtData
tc VideoPointer[TC],VideoPointer
tc ScaleDiv[TC],ScaleDiv
export IO_ScaleWallColumn[DS]
export .IO_ScaleWallColumn[PR]
export SpriteGlue[DS]
export .SpriteGlue[PR]
toc ;Table of contents for the subroutines
tc IO_ScaleWallColumn[TC], IO_ScaleWallColumn[DS]
tc SpriteGlue[TC], SpriteGlue[DS]
csect IO_ScaleWallColumn[DS]
dc.l .IO_ScaleWallColumn[PR]
dc.l TOC[tc0]
csect SpriteGlue[DS]
dc.l .SpriteGlue[PR]
dc.l TOC[tc0]
;
; This routine will draw a scaled wall column.
;
; void IO_ScaleWallColumn(Word x,Word scale,LongWord column)
;
WALLHEIGHT EQU 128+1
; Passed from "C"
X equ R3 ;X coord
Scale equ R4 ;Scale factor
Tile equ R5 ;Tile to draw
Column equ R6 ;Packed wall column #
; Locals
ArtStart EQU R7 ;Pointer to wall art
ScreenPtr EQU R8 ;Pointer to screen memory column
Frac EQU R9 ;Fractional scaler
Integer EQU R10 ;Fractional integer
VWidth EQU R11 ;Video of the video screen in bytes
Delta EQU R6 ;Delta factor and temp
VHeight EQU R12 ;Height of mac screen
Temp EQU R3 ;Temp (Use AFTER X is added)
csect .IO_ScaleWallColumn[PR]
CMPLWI Scale,0 ;Is the scale factor zero?
BEQLR ;Exit NOW!
LWZ ScreenPtr,VideoPointer[TC](RTOC) ;Get handle to video
LWZ ArtStart,ArtData[TC](RTOC) ;Get handle to art data list
LWZ VWidth,VideoWidth[TC](RTOC) ;Get handle to video width
LWZ Frac,ScaleDiv[TC](RTOC)
LWZ VHeight,MacViewHeight[TC](RTOC) ;Get pointer to view height
LWZ ScreenPtr,0(ScreenPtr) ;I have the base pointer
LWZ VWidth,0(VWidth) ;Init video width
LWZ VHeight,0(VHeight) ;Get the number of lines visible
SLWI Scale,Scale,1 ;Mul scale by 2 (Get true pixel value
ADD ScreenPtr,ScreenPtr,X ;Add the X coord (Frees Temp)
SLWI Temp,Scale,1 ;Get low word index
SLWI Tile,Tile,2 ;Get the wall shape pointer
LWZX Frac,Frac,Temp ;Get the scale factor
SLWI Column,Column,7 ;Mul by 128 pixels
LWZX ArtStart,ArtStart,Tile ;Get pointer to the shape
ADD ArtStart,ArtStart,Column ;I have the shape ptr
CMPLW Scale,VHeight ;Too big?
BGE ClipTop ;Clip the top
;
; No clipping needed!
; Adjust the dest screen for the starting Y coord
;
MTCTR Scale ;Init counter
SUB Temp,VHeight,Scale ;How many lines to jump down?
LI Delta,0 ;Init the delta factor
SRWI Temp,Temp,1 ;Divide by to center vertically
SRWI Integer,Frac,24 ;Isolate the integer
MULLW Temp,VWidth,Temp ;Adjust the Y coord
SLWI Frac,Frac,8 ;Isolate the fraction
ADD ScreenPtr,ScreenPtr,Temp ;Create the dest screen pointer
;
; Tight loop
; Grab byte, adjust fractional scaler values and store to screen
;
More:
LBZ R0,0(ArtStart) ;Fetch a shape byte
ADDC. Delta,Delta,Frac ;Add the scaler fractional
STB R0,0(ScreenPtr) ;Store on the screen
ADDE ArtStart,ArtStart,Integer ;Add the constant
ADD ScreenPtr,ScreenPtr,VWidth ;Go down a line
BDNZ More ;All lines done?
BLR ;Exit routine
;
; Clip the top and bottom
; Calc the number of lost lines by clipping and "Fake"
; the numbers as if I processed those missing lines
;
ClipTop:
MTCTR VHeight ;I will draw a screen line full
SUB Temp,Scale,VHeight ;How many lines to jump down?
SRWI Integer,Frac,24 ;Isolate the integer
SRWI Temp,Temp,1 ;Divide by to center vertically
MULLW Temp,Frac,Temp ;Adjust the scaler by lost lines
SRWI Delta,Temp,24 ;How many bytes are lost?
ADD ArtStart,ArtStart,Delta ;Create the SOURCE art pointer
SLWI Frac,Frac,8 ;Isolate the fraction
SLWI Delta,Temp,8 ;Init the adjusted delta
B More ;Jump to the code
;
; Call the compiled scaler to draw a run of the line
;
csect .SpriteGlue[PR]
SGArtStart EQU R3 ;Pointer to the 6 byte run structure
SGFrac EQU R4 ;Pointer to the scaler
SGInteger EQU R5 ;Pointer to the video
SGScreenPtr EQU R6 ;Pointer to the run base address
SGCount EQU R7
SGDelta EQU R8
SGVWidth EQU R9
LWZ SGVWidth,VideoWidth[TC](RTOC)
LWZ SGVWidth,0(SGVWidth)
MTCTR SGCount
SMore:
LBZ R0,0(SGArtStart) ;Fetch a shape byte
ADDC. SGDelta,SGDelta,SGFrac ;Add the scaler fractional
STB R0,0(SGScreenPtr) ;Store on the screen
ADDE SGArtStart,SGArtStart,SGInteger ;Add the constant
ADD SGScreenPtr,SGScreenPtr,SGVWidth ;Go down a line
BDNZ SMore ;All lines done?
BLR ;Exit routine
sixtyfive
2005.11.15, 07:50 AM
Da: Axel Wefers
Oggetto: Re: Wolfenstein 3-D
Data: 15 novembre 2005 0:34:40 GMT+01:00
A: (hidden)
On 14 Nov 2005, at 16:54, Francesco Valeri wrote:
Hello,
We are currently discussing porting Wolfenstein 3-D to Mac OS X. We know you actually did it in the past, so perhaps you could help us with the rendering engine.
A discussion is currently taking place here:
http://www.idevgames.com/forum/showthread.php?t=10669
Thanks in advance,
Francesco
Hi,
I didn't port it using xCode (or ProjectBuilder). I did use CodeWarrior and "carbonized" the source.
Nowadays it seems more sensible to use xCode because CodeWarrior is going to stop their mac support and it seems to be a good idea to remove any PPC asm code since the Intel machines are around the corner.
I had a quick look at your forum thread: It seems that your only problem is the PPC asm code. It is rather trivial and you should be able to convert it very quickly to C code. If you are not familiar with PPC asm I would suggest that you have a look at IBM's online PPC assembler language reference located at: http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixassem/alangref/alangref373.htm
Don't hesitate to ask if there are more questions,
Axel
PS: It's Rebecca Heineman who did do the original SNES/Apple IIe/Mac port. She is transgendered.
...
...
...
:D
unknown
2005.11.15, 08:32 AM
This is good news, looks like we might manage to get this running In the near futre, I do hope so!
unknown
2005.11.15, 12:23 PM
http://fax.xmgfree.com/Wolf3D.zip
(thanks for hosting this sixteyfive!)
Ive fixed all the errors I can as yet, I still get a bunch of warnings about SetPort though, the current errors are undefined types:
SFTypeList MyList = {'SAVE'};
SFReply Reply;
and
AppFile Stuff;
Anyone know what files I need to include to get these or what equivelant I should use for Carbon?
once these errors are fixed, there are no more in the rest of the files so It should startup or load maybe.
If anyone could shed some light on the warnings that would be most appreciated, because I dont know if they are acceptable warnings or will cause problems when the programs running.
unknown
2005.11.16, 10:37 AM
Apart from the SFTypeList and SFReply and stuff, im trying to fix the warnings too. I think that because the API has changed somewhat that I need to try and fix the warnings..
Im fixing warnings like
Passing arg 1 of ']ShowWindow' from incompatable pointer type.
Passing arg 1 of 'SetPort' from incompatable pointer type.
by explicit casting, but is that the right thing to do. I dont know if this is going to cause errors later?
ShowWindow(MyDialog); /* Display with OK button framed */
to
ShowWindow((WindowRef)MyDialog);
SetPort((WindowPtr) MyDialog);
to
SetPort((GrafPtr) MyDialog);
is this right, can I assume that if theres no warnings its going to work?
edit: also doesn anyone know about the SFType list stuff, is there a replacement I should use or what, because once thats done this will build, and all I need is to fix the assembly code then whatever bugs crop up.
Taxxodium
2005.11.16, 10:54 AM
edit: also doesn anyone know about the SFType list stuff, is there a replacement I should use or what, because once thats done this will build, and all I need is to fix the assembly code then whatever bugs crop up.
My MacToolbox is a bit rusty, but SF is the Standard Filemanager you had back in pre OS 9. The Carbon version are the Navigation Services, so you'll need to replace all the SF calls to Navigation Services calls.
Maybe someone knows of a better way though..
unknown
2005.11.16, 12:04 PM
Ill give that a shot, thanks Taxxodium.
sixtyfive
2005.11.17, 05:57 AM
Damn, I wish I could help you more. :(
unknown
2005.11.17, 09:43 AM
I commented out the save and load game functionality and now it builds except there are a lot of functiont like
//MaxApplZone(); /* Expand the heap so code segments load at the top */
//InitGraf((Ptr) &qd_thePort); /* Init the graphics system */
//InitFonts(); /* Init the font manager */
//InitWindows(); /* Init the window manager */
//InitMenus(); /* Init the menu manager */
//TEInit(); /* Init text edit */
//InitDialogs(nil); /* Init the dialog manager */
all of those, Is there a replacement for them?
For InitGraf for example the quickdraw documentation has this:
/*
* InitGraf()
*
* Availability:
* Mac OS X: not available
* CarbonLib: not available
* Non-Carbon CFM: in InterfaceLib 7.1 and later
*/
sixtyfive
2005.11.17, 12:07 PM
Have you uploaded the latest source already?
unknown
2005.11.17, 12:35 PM
Good idea, this build on my computer but has save functionality taken out.
May need alterations for another os.
http://fax.xmgfree.com/Wolf3D.zip
Taxxodium
2005.11.17, 01:07 PM
Maybe, just maybe, we can separate the engine code from the mac specific code. The mac code can then be replaced with Cocoa code to add save functionality.
sixtyfive
2005.11.17, 01:41 PM
it doesn't build here. could you upload a binary too?
unknown
2005.11.17, 02:50 PM
Yeah that would be good, If this goes well I might try and port it to opengl but thats probably going to be much more difficult than im thinking just now, hopefully though.
sixteyfive: It just crashes.
sixtyfive
2005.11.19, 12:45 PM
Well, good job anyways. Keep me posted on how the job proceeds. ;)
akb825
2005.11.19, 08:26 PM
Looking at the warnings, it looks like you're having a problem of not including the frameworks with all the files. Try doing a project-wide search in project and frameworks for the types it's not seeing, and make sure the base frameworks of those header files are being included.
sixtyfive
2005.11.21, 08:40 AM
Feel free to download the source and try it yourself. ;)
akb825
2005.11.22, 10:54 AM
If you add -DALLOW_OBSOLETE_CARBON=1 to the compiler flags, it no longer throws the 3 errors. I'm not sure if the functions will actually work or not, but you can try.
It looks like other functions are defined but not provided. I think you're going to need to figure out what's going on, then re-write the functions throwing errors and warnings with modern carbon. Sorry. :(
Edit: if you also get rid of the Build ResourceManager phase, it also gets rid of another compiler error.
akb825
2005.11.22, 02:35 PM
I found an OpenGL port for Linux and Windows (here (http://sourceforge.net/projects/wolfgl)), and I'm working on porting the window system and events to Mac. The rest is pretty much cross-platform. (AFAIK, the source is mostly the original, as well)
unknown
2005.11.22, 02:49 PM
Thats a much better idea, sounds a lot more likley to be well... possible too.
The whole thing was pretty much quickdraw and other deprecated api's so, best of luck!
If I can help in any way just say :)
akb825
2005.11.22, 02:54 PM
Do you happen to have the data files? Let's just say that it's easier to test when you can actually test it. ;)
sixtyfive
2005.11.23, 11:27 AM
Files here: http://download.sourceforge.net/wolfgl/wolfdata.zip.
Notice that that's the PC edition of Wolfenstein. Not the same as the Mac version.
akb825
2005.11.23, 12:11 PM
Oops, I probably should have checked their website. :blush: It's the demo, but that should be just fine for test purposes.
Are you sure the data files are different on the Mac? Usually they're the same for games. Are they mostly the same with just a different extension? (hopefully: that way it's likely the only difference is the byte order) The code I have is for the PC version of the data, but most people who download this will likely want it for the Mac version... If they datafiles are similar enough, though, I can have it be able to use both.
sixtyfive
2005.11.23, 01:25 PM
Unlike newer games (Doom, Unreal, etc) the Macintosh version is not just a port (exact translation) of the PC version. The levels and the game engines are actually quite different. Thus, you can not use levels and mods for one version with the other version.
Levels
The first major difference is the level design. While the PC version contains 6 episodes with each episode containing 10 levels (1 of those is a hidden bonus level), the Macintosh version (reffered to as the 2nd Encounter) contains 30 levels with no divisions into episodes. The Mac version is divided into floors, but you can not start on a specific floor and every floor has a different amount of levels. A 3rd Encounter was later released for Macintosh containing 60 more levels which were supposed to make up episodes 2 to 6.
Obviously, the number of levels aren't the same but this doesn't necessarily mean that the Macintosh version is giving you more. Many of the levels are similar, but the Macintosh levels are usually much less intricate and much shorter. This is apparent in the first level where the path to the exit is exacly the same in both versions, but the PC version contains many more possible side-trips and many more rooms. Other levels in the games are completely different. Basically, the 2 games play extremely differently and offer unique experiences.
Game Engine
Another major difference is in the game engines. At first glance, the Macintosh engine, which is 2 years newer, seems to be the more advanced. The graphics in the Macintosh version are much sharper, clearer, and better looking at twice the resolution of the PC graphics. Also, the game takes up a slightly larger portion of the screen and the sounds are much higher quality in the Macintosh version.
However, the enemies in the Macintosh version are only 2D sprites whereas the enemies in the PC version are 3D sprites. This means that the Macintosh enemies only have 1 side, a front side, and thus, they are always facing you. In contrast, the PC enemies have 8 sides, making for much more realist play; in the PC version, it is possible to sneak up behind guards and kill them before they see you - something that can't be done in the Macintosh version.
The enemies in the PC version also offer an extra level of realism by being able to patrol an area. In the Macintosh version, the enemies will just stand in one spot until they see you or hear you; in the PC version, enemies will stand in place or patrol an area until they see or hear you. These differences make the PC version's game engine more advanced despite being 2 years older.
Weapons, Items, and Enemies
Several other difference worth noting include the addition of 2 extra weapons in the Macintosh version: the flamethrower and the rocket launcher. Those two weapons and some other items (bullet crates, flamet thrower and rocket ammo, backpacks) are not found in the PC version.
Also, some other pick-ups and dropped items are different. For example, in the PC version, dropped clips give 4 ammo and other clips give 8 ammo; in the Macintosh version, all clips give 5 ammo. Also, picking up treasure in the PC version adds to your score (40000 points gets you an extra life); in the Macintosh version, picking up treasure increases your item count by one until you get an extra life at 50 items.
Other differences include an additional enemy, the Flying Hitler, in the PC version and different bosses in the 2 versions (see the enemies and bosses pages); the Mac version actually uses some bosses from Wolfenstein 3D and some bosses from Spear of Destiny.
Miscellaneous
Yet another difference is that changing the difficulty level in the Macintosh version only affects the damage taken and starting ammo whereas in the PC version it affects the damage taken and the number of enemies; the PC version tends to be much more difficult. The Macintosh version also has an auto-map that is helpful in finding you way around; there is no mapping feauture in the PC version.
The last difference I can think of is the pools of blood in the PC version. In the Mac version, you only have pools of water - no pools of blood. If your health is less than 11 in the PC version, you can drink the blood to gain back some health.
Other Versions
The Atari Jaguar version was a direct port of the PC version.
There was also a Super Nintendo version of Wolfenstein 3D released; it was a cross between the PC and Mac versions. For example, the flamethrower and rocket launcher from the Mac verison are present as is the abilty to sneak up on enemies from the PC version. Unfortunately, it was extremely censored through the changing of the guard dogs into rats and removal of the Natzi symbols.
Released in 2002, the Game Boy Advance version is an nearly exact port of the PC version. It contains all 6 Episodes. The only difference is that you can only save the game at the end of a level - not during.
akb825
2005.11.23, 02:02 PM
Wow, that's a huge difference... Well, so much for supporting the Mac data files. At least this will give Mac users the ability to play the PC version, and maybe we'll be successful in porting the original Mac version eventually. I think the largest problem that I've seen is that at least one function is declared and not defined, namely to play sounds. It looks like it should be part of the source code, and not a system function, though I'm not 100% sure.
sixtyfive
2005.11.23, 03:15 PM
I'd like to play the PC version too, so whatever. ;)
sixtyfive
2005.11.25, 10:32 AM
Has anyone had success?
akb825
2005.11.25, 03:21 PM
I'm quite close to finishing this version. As I've told you over AIM, I have done most of the coding necessary to port it. So far I have the menus up and running perfectly. It crashes when trying to start a game, but I know exactly what's causing it and where to fix it, so that should be fixed rather quickly. If all goes well, I should have a playable build up by the end of today. (*crosses fingers*) After I get it playable, there will be a few things I will fix.
First of all, it doesn't seem to like how it processes mouse input from the original code. I will probably have to re-write that section, but I'm thinking it won't be that major of a re-write. Second of all, it seems that being able to select custom controls is broken. I have already started making a config file system so I could have custom resolutions, which works beautifully. I'll likely add the ability to set custom key bindings there. Finally, it looks like everything that has to do with music has been commented out. I'll see if I can manage to re-integrate it back into the game. I'll be sure to get a playable version up first, though!
unknown
2005.11.25, 05:29 PM
I cant wait to play this, I loved to the old game on mac. Its great of you to take on this project as I was really struggling, thanks and I hope to see a playable build soon!
:D
akb825
2005.11.25, 05:45 PM
This is the PC version, which is quite different from the Mac. I might tackle the Mac version later after learning from porting this one.
Right now I have the levels loading, but the graphics don't show correctly and it doesn't process any movements etc. Most likely endian issues, which always pop up in the smallest nooks and crannies. Now I know what porters have to go through all the time, since these developers like to use byte-order-dependent algorithms for everything. *sigh*
akb825
2005.11.26, 12:07 AM
Hm, this is definitely being more stubborn than I expected. I fix one part, and there's always something else there. I don't suppose there is anybody else out there willing to take a look at what I've done so far?
unknown
2005.11.26, 09:49 AM
Ill try and see if I can work out whats happening whats going wrong and so on.
akb825
2005.11.26, 04:21 PM
Sure, here's the source. (http://akb825.xmgfree.com/downloads/Wolfenstein%203D.zip)
The xcode project file was done in 10.4, so here's the info you need to create one on your own. It's a carbon application. I have a copy build phase for OpenAL, but IIRC you already have OpenAL installed so it won't matter, as long as you include it. You will also need to include the OpenGL framework. The datafiles are already in the Debug build directory for easy use, but I think Panther uses a different name, so you may need to move them.
Now on to where I'm having problems. It seems to be dying around where the map is being loaded and it's trying to load the textures. My guesses are either it isn't loading the map correctly, and therefore doesn't correctly know where to find the pages for the textures, or it isn't loading the page file correctly, so it doesn't have the locations of the textures correctly known. Regardless, it's most likely a byte order problem. I'm using the same endian C files that I gave you before, so that at least should be familiar. Hopefully I just need another pair of eyes looking at it to find the problem. Thanks for helping. If you have any questions, feel free to post and/or AIM me. (screenname same as username)
sixtyfive
2005.11.27, 05:06 AM
I think you also need the latest release of Xcode.
unknown
2005.11.27, 07:31 AM
With a few modifications it builds and runs on 10.3.9, except when you start new game it still gets 99% loaded and quits.
sixtyfive
2005.11.27, 08:25 AM
You can obtain the full data files from:
http://sixtyfive.xmgfree.com/private/wolf.zip
akb825
2005.11.27, 02:31 PM
Thank you. If it was just the data files, we'll find out here.
unknown: to get it to work with those datafiles, instead of defining _WOLF_SHAREWARE_ in version.h, define _WOLF_FULL_.
akb825
2005.11.27, 02:41 PM
Whoa. Just whoa. I started it up and it shows random pictures all over the menus, and just crashes when loading the maps. *sigh* It really would help if any of this code was commented, especially given the kind of pointer magic that's going on. When it crashes, the stack trace doesn't even make sense: it's basically saying it was in a particular function (StatusDrawPic) without any calling functions! It has to be called from somewhere! I'm going to post about this in another, higher traffic forum. There is only so much I can look at the same code and not know what's wrong.
sixtyfive
2005.11.29, 07:04 AM
Just in case, use the files from the demo.
Now you should get the data files from the version 1.4 of Wolfenstein, you can get the shareware files here or from your favorite shareware mirror site. It's important to make sure that you have version 1.4, the game data changed a lot from the other versions and WolfGL will crash if you don't have the right files.
akb825
2005.11.29, 02:17 PM
Those are the files that I was using before. I'm assuming that they were in fact 1.4 since there was a particular #define to use different file names. Regardless, these are the files that came (more or less) with the source, so you'd think they would work. Unfortunately, I can't get them to work... :(
sixtyfive
2005.12.03, 08:40 AM
Dropping the project? :cry:
akb825
2005.12.03, 03:18 PM
If nobody helps out. Since exactly 0 people replied to my call for help in the game programming fundamentals forum, it doesn't look to good. I might be able to revisit it later, however, since next year I'll be taking more of the advanced algorithm classes. Perhaps after then I will understand the decompression algorithms etc. better and have a better idea where to swap the bytes.
Also, since I got the windowing and event system etc. up, and all I need to worry about is the byte order, so when the Intel Macs come out it should work fine, since they use the same byte order as PCs.
I would also like to see this through, but I've run out of ideas. Hopefully, though, later when I learn more I will have a few more ideas to try.
unknown
2005.12.03, 07:06 PM
Im going to have another look at the files and so on, it seems very promising that the menu's come up and that there already 3D view's in game, the only problem (just now) being loading not working which means it cant be terribly far off.
I'd really like to port the origional version though, because thats the one I know and love. :)
sixtyfive
2005.12.13, 09:20 AM
I might contact Axel again..?
Leisure Suit Lurie
2005.12.13, 09:49 AM
Wolfenstein was so fugly. I still don't see the attraction.
Mac_Naccarato
2005.12.19, 12:35 PM
I hope you guys finish the game. I am looking forward to playing old Wolfenstein. I used to play it as a kid, then my father deleted it off my computer. Anyway, i am new to this programing thing, so count me out. I am going to support you in tring to finish it thouhgh. :)
Mac_Naccarato
2006.01.02, 03:24 PM
Wolfenstein was so fugly. I still don't see the attraction.
It was a pretty amazing game for its time.
sixtyfive
2006.01.08, 05:55 AM
It deserves a port IMHO.
Jones
2006.01.08, 09:00 PM
Why isn't anyone interested in porting the Macintosh version of Wolfenstein 3D to Mac OS X? We already have Doom, Marathon and Duke Nukem.
Why not Wolfenstein?
Because there are already way too many WWII games.
g8m3rtag
2006.01.20, 10:51 PM
i was wondering is there a port of second encounter for windows, thanks
Ice_Keese
2006.02.08, 06:00 PM
Ah, Wolfenstein...
The first FPS of all times...
4 guns, crappy semi-3d graphics, low AI, and lots of secret passages...
That really should be ported.
unknown
2006.02.13, 11:39 AM
Hi, just letting anyone who's interested know im working on this just now.
I'm just slowly going through the code working out what it's all doing, hopefully Ill end up with an exact clone of the game running with OpenGL instead.
I've got the title screen done right now anyway :P
You can get the origional mac source from my site: http://www.fax.xmgfree.com/
Leisure Suit Lurie
2006.02.13, 06:15 PM
Wouldn't it be easier to rewrite the drawing routines in OpenGL? You're not still raycasting are you?
Just draw every block with some textured quads and be done with it.
zenoen
2006.06.12, 01:44 AM
When Will You Be Finished With The Port
Make Shure It Is A {Intell/power pc} bundle
so when your done please let me know
i want to play the old wolf3d so bad
Remember to include a speed governor
So we don't get smashed
i really appreciated the effort going into this project
tye:D
unknown
2006.06.12, 02:00 AM
Make Shure It Is A {Intell/power pc} bundle
Not shure why you are telling me what to do but I make my own decisions :\
Anyway, all the data files etc are big endian so it makes that extremly difficult. If I get an intel computer though, ill be making it run on intel blah blah..
anyway as far as progress goes theres very little. I got levels loading but I need to tackle this problem (porting a large game) from another direction. If anyone has some links to documents about this kind of thing that would be great.
Taxxodium
2006.06.12, 03:39 AM
Make Shure It Is A {Intell/power pc} bundle
I doubt it'll be possible to create a universal binary of it. Wolf3D was written way before even the PowerPC's were made so I assume the game itself contains quite a lot of assembly which would be hard to port to the Intel Macs.
Ed, you may wanna try to contact Ryan Greenstone. While he won't help you with the port, he may give some advice on how to continue porting the game.
I would help, but I know nearly nothing about porting.
Leisure Suit Lurie
2006.06.12, 01:15 PM
Ed, you may wanna try to contact Ryan Greenstone. While he won't help you with the port, he may give some advice on how to continue porting the game.
I think Bill "Burger" Heinman did the Mac port. I might be crazy though.
While you're waiting for the port, try this (http://www.wolf5k.com/) or this. (http://www.symphonyplanet.com/glenrhodes/wolf/myRay.html)
Frank C.
2006.06.12, 02:43 PM
I think Bill "Burger" Heinman did the Mac port. I might be crazy though.
Crazy or not you're right - I think he's still heading up Contraband Entertainment, though they've been awfully quite of late...
Jones
2006.07.03, 01:52 PM
You might try installing classic, and then getting it here:
http://209.120.136.205/index.php?show=game&id=175
Or spear of destiny here:
http://209.120.136.205/index.php?show=game&id=2315
Jones
2006.07.03, 02:06 PM
I think Bill "Burger" Heinman did the Mac port. I might be crazy though.
While you're waiting for the port, try this (http://www.wolf5k.com/) or this. (http://www.symphonyplanet.com/glenrhodes/wolf/myRay.html)
http://homepage.mac.com/gareth.cross/piccy.png
Leisure Suit Lurie
2006.07.03, 02:17 PM
I wouldn't worry about porting the drawing code. Redoing it from scratch has got to be less of a chore. There's no sense using a raycaster when everyone on OS X has to have some kind of 3D hardware now.
XiBen
2007.06.14, 07:55 AM
Hello everybody!
Excuse my English, I'm french.
I've compiled the PC version of Wolf3D/SOD for Macintosh. I use the wolf3d engine SDL port by Steven Fuller published on BeBits by Jack Burton. You can found his source code here (http://www.bebits.com/app/2718).
You can download Wolf3D/SOD for MacOS Tiger (10.4 only!) here:
Wolfenstein SDL for Mac (http://benawatt.free.fr/fichiers/mac/Wolf_Mac_0_2.zip)
There is 4 applications in the .zip file:
-Wolfenstein 3D Shareware (with Shareware files)
-Spear Of Destiny Shareware (with Shareware files)
-Wolfentein 3D (6 Episodes Version without .wl6 files, you must buy the game!)
-Spear Of Destiny (Full Version without .sod files, you must buy the game too!)
Warning: Thoses releases are really badly tested, they can bring your whole system down, even burn your hard-disks or your monitors ! I'm NOT responsible of the possible damages!
Note: sound doesn't work.
Cheat code list:
-Tab+G= god mode
-Tab+P= pause mode
-Tab+I= Free Items
-Tab+V= Program version
Enjoy!
Good game
I search some good SDL/openGL coders because I'm very bad with C, and I can't do the openGL/sound port... :(
TommyTBone
2007.07.03, 05:55 PM
I am a member of the Marathon : Aleph One community and I know of plans to port Wolfenstein to Aleph One. I might be helping with this project.
Fearandloathing
2007.10.19, 12:36 AM
I am a member of the Marathon : Aleph One community and I know of plans to port Wolfenstein to Aleph One. I might be helping with this project.
Is this truly going to happen? I am a huge fan of Wolfenstein 3d & Aleph One... :cool:
notanother
2008.08.18, 08:20 PM
It seems as though I stumbled upon this forum a bit too late. I am also another fan of the original mac os version, and I am desperate to find if sixty five and unknowns coding was successful.
It would be very unfortunate if all that coding was in vein. It has been about a year since the last post, but I am still very interested. After a lot of searching I am still not aware of a finished code of Wolf3d for Mac OSX. My own coding was very haphazard, and got me nowhere.
If anyone knows of an accomplished port of this game let me know :D.
vBulletin® v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.