He's talking about lowering graphical detail and other things to get more frames per second. For instance, perhaps re-compressing textures to half their original size, etc. If that's even how the Doom engine works. I have no idea.Versus wrote:Sorry, can't understand this.blabla wrote: PS : I suggest you poking it around a little bit with it and try to downgrade some things if possible.
3DO Doom succesfully compiled (but no way to run it)
Re: 3DO Doom succesfully compiled (but no way to run it)
Re: 3DO Doom succesfully compiled (but no way to run it)
Started to make own font for ingame messages. All works now, but now I need to redraw all letters. Current are terrible
http://www.youtube.com/watch?v=-JIs6_-VeK4
http://www.youtube.com/watch?v=-JIs6_-VeK4
Re: 3DO Doom succesfully compiled (but no way to run it)
First experience. Successfuly started new inserted map.
http://www.youtube.com/watch?v=V6u_iRKFcKA
http://www.youtube.com/watch?v=V6u_iRKFcKA
- Austin
- Master Poster & Pricing Expert
- Posts: 1839
- Joined: Sun Dec 20, 2009 11:30 am
- Location: Fairfax, VA
- Contact:
Re: 3DO Doom succesfully compiled (but no way to run it)
Interesting! It would be great to see if better performance can be had out of this version of DOOM. A playable 3DO DOOM would be awesome!
Re: 3DO Doom succesfully compiled (but no way to run it)
Here it's some new videos showing progress.
Extramap 3DO:
http://www.youtube.com/watch?v=zc5zXPtrJvI
100 Barons of Hell (3DO Doom)
http://www.youtube.com/watch?v=NlXqot5GaCk
Burning barrel
http://www.youtube.com/watch?v=z0GZvIxl7YE
Doom 2 map 1 test
http://www.youtube.com/watch?v=E9Smizzobqc
Extramap 3DO:
http://www.youtube.com/watch?v=zc5zXPtrJvI
100 Barons of Hell (3DO Doom)
http://www.youtube.com/watch?v=NlXqot5GaCk
Burning barrel
http://www.youtube.com/watch?v=z0GZvIxl7YE
Doom 2 map 1 test
http://www.youtube.com/watch?v=E9Smizzobqc
Re: 3DO Doom succesfully compiled (but no way to run it)
Any progress Versus ? Still figured out the resources format ?
You did a great job on 3DO Doom !
You did a great job on 3DO Doom !
Re: 3DO Doom succesfully compiled (but no way to run it)
Hi, blabla!
My recent work:
1) I can add a flats now:
https://www.youtube.com/watch?v=-KmL5MTraUQ
https://www.youtube.com/watch?v=jf794Q8Gqos
Video below shows all flats from Ultimate Doom, which I inserted in REZFILE.
https://www.youtube.com/watch?v=Ig9fkgDDPtg
Later I'll redraw small font. Now it's only for test.
2) I made IR goggles workable:
https://www.youtube.com/watch?v=7z61eoWryUU
They are working with strange bug (sometimes they doesn't turned off).
3) I made a monster teleport feature:
https://www.youtube.com/watch?v=xxvtmOomGSc
4) I wrote a cel cutter app for flats and fonts.
5) PC WAD file -> 3DO WAD file app is ready. Thanks to aliast!
Here it's a pack for generating REZFILE. You can add flats, maps or some other resources.
https://cloud.mail.ru/public/He5P/AKKJSJPVR
Archive contains new Launchme (without monster teleport and IR goggles yet, this is old version), doom.wad for level designing, all flats, scripts, apps for converting and others. You can run _Convert.bat, then go to Converted folder and run Makerez. You'll get a REZFILE!
You can look into the _Convert.bat file to find out what's going on.
Bad news:
1) I can not make a sprites for REZFILE. Rebecca gave me a slicer app source, but I can't compile it... Maybe you can try?
2) I can't make a wall textures or Sky textures without a Rebecca's slicer app.
My recent work:
1) I can add a flats now:
https://www.youtube.com/watch?v=-KmL5MTraUQ
https://www.youtube.com/watch?v=jf794Q8Gqos
Video below shows all flats from Ultimate Doom, which I inserted in REZFILE.
https://www.youtube.com/watch?v=Ig9fkgDDPtg
Later I'll redraw small font. Now it's only for test.
2) I made IR goggles workable:
https://www.youtube.com/watch?v=7z61eoWryUU
They are working with strange bug (sometimes they doesn't turned off).
3) I made a monster teleport feature:
https://www.youtube.com/watch?v=xxvtmOomGSc
4) I wrote a cel cutter app for flats and fonts.
5) PC WAD file -> 3DO WAD file app is ready. Thanks to aliast!
Here it's a pack for generating REZFILE. You can add flats, maps or some other resources.
https://cloud.mail.ru/public/He5P/AKKJSJPVR
Archive contains new Launchme (without monster teleport and IR goggles yet, this is old version), doom.wad for level designing, all flats, scripts, apps for converting and others. You can run _Convert.bat, then go to Converted folder and run Makerez. You'll get a REZFILE!
You can look into the _Convert.bat file to find out what's going on.
Bad news:
1) I can not make a sprites for REZFILE. Rebecca gave me a slicer app source, but I can't compile it... Maybe you can try?
2) I can't make a wall textures or Sky textures without a Rebecca's slicer app.
Re: 3DO Doom succesfully compiled (but no way to run it)
Downloaded the pack for generating the REZFILE :
It seems indeed you have made some great progress , this is great !
Also, it would be nice if you could give me the source code for TexCutter.exe, WAD_converter.exe and MakeREZ.exe as well.
I would like to run it on Linux.
Thanks
It seems indeed you have made some great progress , this is great !
Could you give me the "slicer app" source code for me, please ?Versus wrote: 1) I can not make a sprites for REZFILE. Rebecca gave me a slicer app source, but I can't compile it... Maybe you can try?
Also, it would be nice if you could give me the source code for TexCutter.exe, WAD_converter.exe and MakeREZ.exe as well.
I would like to run it on Linux.
Thanks
Re: 3DO Doom succesfully compiled (but no way to run it)
Thank you!
You can download all sources below.
1) Contains source for FirstFileInRez, TexCutter, WADConverter (BlockMapWAD folder), Makerez (Makerez_2008 folder)
https://cloud.mail.ru/public/JQuF/pBooyZHuD
2) Contains my cel2shp util. Doesn't work! Maybe you'll find something useful there. I think that some functions are missing in lib, but it's only my suggestion.
https://cloud.mail.ru/public/HXWW/JcLRTcA6x
3) Contains Rebecca's files. Slicer app, cel2shp (standalone app) app, New BurgerLib (lib files for VisualStudio 2008 and *.h files). EXE files are from github repository and are new. Our old functions doesn't work in there. I putted them only for working examlpe.
https://cloud.mail.ru/public/8voU/F9T4EdkiC
I't would be great, if you'll try to help!
You can download all sources below.
1) Contains source for FirstFileInRez, TexCutter, WADConverter (BlockMapWAD folder), Makerez (Makerez_2008 folder)
https://cloud.mail.ru/public/JQuF/pBooyZHuD
2) Contains my cel2shp util. Doesn't work! Maybe you'll find something useful there. I think that some functions are missing in lib, but it's only my suggestion.
https://cloud.mail.ru/public/HXWW/JcLRTcA6x
3) Contains Rebecca's files. Slicer app, cel2shp (standalone app) app, New BurgerLib (lib files for VisualStudio 2008 and *.h files). EXE files are from github repository and are new. Our old functions doesn't work in there. I putted them only for working examlpe.
https://cloud.mail.ru/public/8voU/F9T4EdkiC
I't would be great, if you'll try to help!
Re: 3DO Doom succesfully compiled (but no way to run it)
Well, burgerlib is a mess.Versus wrote: 3) Contains Rebecca's files. Slicer app, cel2shp (standalone app) app, New BurgerLib (lib files for VisualStudio 2008 and *.h files). EXE files are from github repository and are new. Our old functions doesn't work in there. I putted them only for working examlpe.
https://cloud.mail.ru/public/8voU/F9T4EdkiC
I't would be great, if you'll try to help!
Your slicer app requires it but when i try to compile it on my ubuntu computer, it fails to detect it.
"Unknown compiler / environment"
When i tried to open "burger.h" to see if i could fix it, i was surprised to see that the compiler detection is
a bunch of defines that is 300 lines long...
Maybe you forgot to put the "burger.h" file in the same directory as the slicer source code.
Try to do that and tell me if this works on your side.
Re: 3DO Doom succesfully compiled (but no way to run it)
I can't understand what you trying to say me.
I'm working on Windows XP, VisualStudio2008. Try to open my cel2shp project. The correct burger.h is there (and in BurgerLib folder, of course).
Burger.h is reading from my project correctly, .lib file too. But I'm getting this, while trying to compile:
I'm working on Windows XP, VisualStudio2008. Try to open my cel2shp project. The correct burger.h is there (and in BurgerLib folder, of course).
Burger.h is reading from my project correctly, .lib file too. But I'm getting this, while trying to compile:
Code: Select all
1>------ Построение начато: проект: Cel2shp, Конфигурация: Release Win32 ------
1>Компоновка...
1>Cel2shp.obj : error LNK2001: неразрешенный внешний символ ""void __fastcall Burger::Free(void const *)" (?Free@Burger@@YIXPBX@Z)"
1>Cel2shp.obj : error LNK2001: неразрешенный внешний символ ""int __fastcall Burger::MemoryCompare(void const *,void const *,unsigned long)" (?MemoryCompare@Burger@@YIHPBX0K@Z)"
1>Cel2shp.obj : error LNK2001: неразрешенный внешний символ ""public: __thiscall Burger::ConsoleApp::ConsoleApp(int,char const * *)" (??0ConsoleApp@Burger@@QAE@HPAPBD@Z)"
1>Cel2shp.obj : error LNK2001: неразрешенный внешний символ ""public: virtual __thiscall Burger::ConsoleApp::~ConsoleApp(void)" (??1ConsoleApp@Burger@@UAE@XZ)"
1>Cel2shp.obj : error LNK2001: неразрешенный внешний символ ""public: __thiscall Burger::Filename::~Filename(void)" (??1Filename@Burger@@QAE@XZ)"
1>Cel2shp.obj : error LNK2001: неразрешенный внешний символ ""public: void __fastcall Burger::Filename::SetFromNative(char const *)" (?SetFromNative@Filename@Burger@@QAIXPBD@Z)"
1>Cel2shp.obj : error LNK2001: неразрешенный внешний символ ""public: static void * __fastcall Burger::FileManager::LoadFile(class Burger::Filename *,unsigned long *)" (?LoadFile@FileManager@Burger@@SIPAXPAVFilename@2@PAK@Z)"
1>Cel2shp.obj : error LNK2001: неразрешенный внешний символ ""public: __thiscall Burger::File::File(void)" (??0File@Burger@@QAE@XZ)"
1>Cel2shp.obj : error LNK2001: неразрешенный внешний символ ""public: __thiscall Burger::File::~File(void)" (??1File@Burger@@QAE@XZ)"
1>Cel2shp.obj : error LNK2001: неразрешенный внешний символ ""public: unsigned int __fastcall Burger::File::Open(class Burger::Filename *,enum Burger::File::eFileAccess)" (?Open@File@Burger@@QAIIPAVFilename@2@W4eFileAccess@12@@Z)"
1>Cel2shp.obj : error LNK2001: неразрешенный внешний символ ""public: unsigned long __fastcall Burger::File::Write(void const *,unsigned long)" (?Write@File@Burger@@QAIKPBXK@Z)"
1>Cel2shp.obj : error LNK2001: неразрешенный внешний символ ""public: unsigned int __fastcall Burger::File::Close(void)" (?Close@File@Burger@@QAIIXZ)"
1>I:\..............................\REZFILE\Cel2shp\Release\Cel2shp.exe : fatal error LNK1120: 12 неразрешенных внешних элементов
1>Журнал построения был сохранен в "file://i:\.......................................\REZFILE\Cel2shp\Release\BuildLog.htm"
1>Cel2shp - ошибок 13, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Re: 3DO Doom succesfully compiled (but no way to run it)
Looks like we are wasting our time using the pre-compiled libraries of burgerlib...
Try to compile burgerlib again using the latest version on github : https://github.com/Olde-Skuul/burgerlib
I see no other solutions, sorry.
Try to compile burgerlib again using the latest version on github : https://github.com/Olde-Skuul/burgerlib
I see no other solutions, sorry.
Re: 3DO Doom succesfully compiled (but no way to run it)
The library I'm using is the newest lib from Rebecca. When I'm trying to compile libs from github, I'm getting an errors...
Re: 3DO Doom succesfully compiled (but no way to run it)
I can make my own sprites now!
https://www.youtube.com/watch?v=oOHaLYuQtfA
Now I can see the way to make new enemies, powerups and weapons! First of all I' add a Megasphere there!
And my old intro with PSX music:
https://www.youtube.com/watch?v=u9Ae2h9r_dU&
https://www.youtube.com/watch?v=oOHaLYuQtfA
Now I can see the way to make new enemies, powerups and weapons! First of all I' add a Megasphere there!
And my old intro with PSX music:
https://www.youtube.com/watch?v=u9Ae2h9r_dU&
Re: 3DO Doom succesfully compiled (but no way to run it)
Very cool, that's what we needed !
I wonder how you managed to do it tho... you were able to compile it ?
Thanks for the christmas gift Versus !
I wonder how you managed to do it tho... you were able to compile it ?
Thanks for the christmas gift Versus !
Re: 3DO Doom succesfully compiled (but no way to run it)
My pleasure
1) Finding the correct cel format. I saved many cel files using old Photoshop (and CelWriter plugin). Then I compared saved cels with exsisted sprites using Hex editor.
2) Using a new cel2shp app from Rebecca Heineman.
3) Manually added offsets and X,Y coordinates to all shapes in sprite file.
I'll write new app to make this more quickly.
What do you mean? I was able to compile launchme file about 2 years ago... Or are you speaking about sprite files?
1) Finding the correct cel format. I saved many cel files using old Photoshop (and CelWriter plugin). Then I compared saved cels with exsisted sprites using Hex editor.
2) Using a new cel2shp app from Rebecca Heineman.
3) Manually added offsets and X,Y coordinates to all shapes in sprite file.
I'll write new app to make this more quickly.
What do you mean? I was able to compile launchme file about 2 years ago... Or are you speaking about sprite files?
Re: 3DO Doom succesfully compiled (but no way to run it)
New types of objects and sprtites! I wrote an app for making a Sprite files from cel frames. Now I must prepare sprites for... Hell Knight I think.
https://www.youtube.com/watch?v=6WBKbUrCP-0
https://www.youtube.com/watch?v=zFqHrpLg9Q0
https://www.youtube.com/watch?v=6WBKbUrCP-0
https://www.youtube.com/watch?v=zFqHrpLg9Q0
Re: 3DO Doom succesfully compiled (but no way to run it)
Nice !
Also, i'm noticing how it runs a little faster compared to, you know, the original game.
Maybe it's just due to the simple map or maybe you sped up your code a bit ?
It would be interesting to try to port a 32X map over the 3DO port just to see how well it would run.
Also, i'm noticing how it runs a little faster compared to, you know, the original game.
Maybe it's just due to the simple map or maybe you sped up your code a bit ?
It would be interesting to try to port a 32X map over the 3DO port just to see how well it would run.
Re: 3DO Doom succesfully compiled (but no way to run it)
All new objects and their frame delays are corresponding with the PC source and converted to 3DO values. It's strange that speed is different...
I didn't edit any of the "speed" functions in the code yet.
And, some news:
https://www.youtube.com/watch?v=_kfalvvLLtc
https://www.youtube.com/watch?v=MAYmz_AYPK4
I think that 32x map will work correctly.
I didn't edit any of the "speed" functions in the code yet.
And, some news:
https://www.youtube.com/watch?v=_kfalvvLLtc
https://www.youtube.com/watch?v=MAYmz_AYPK4
I think that 32x map will work correctly.
Re: 3DO Doom succesfully compiled (but no way to run it)
I think we should move to this thread.
Thank you, Optimus, your bar is working! But I think its scale was set incorrectly or sprites are using another memory space (?).
Here it's the demonstration:
https://www.youtube.com/watch?v=aRt0aA80QWk
As you can see, level is overloaded with many different sprites. For example: Spider Mastermind sprite filesize is about 491kb... After I killed all enemies the game runs faster. But memory bar displays strange results. What do you think about that?
Thank you, Optimus, your bar is working! But I think its scale was set incorrectly or sprites are using another memory space (?).
Here it's the demonstration:
https://www.youtube.com/watch?v=aRt0aA80QWk
As you can see, level is overloaded with many different sprites. For example: Spider Mastermind sprite filesize is about 491kb... After I killed all enemies the game runs faster. But memory bar displays strange results. What do you think about that?
Re: 3DO Doom succesfully compiled (but no way to run it)
I have seen the video, I am not sure why the monsters are so slow, don't know if it's the ram or some other bottleneck. If it was the memory, it would have possibly crashed? Although there is a place in code where it's rendering all the stuff in batches, and when it reaches a certain amount of cels, it flushes them and starts again. If this number is extremely small, too many flushes, it's very slow. Also, there is memory detection and if it's very low it emergency flushes the cels. But if it's really a problem, the bar doesn't make sense. In my tries, I try to fill up more, and I make it very small till it resets. Also, from what I see, when a new level loads, the remaining memory is stable, I see this 816 all the time, it rarely only jumps. I guess when a level is loaded, all sprites are loaded, done. It's only the creation, rendering and destruction of cels with this flushing that in my guess could make the memory go a bit up and down a bit. It's only at this part there is this emergency memory safety, if some more cels are added maybe, it flushes them before they fill memory. If you loaded before the spidermastermind and the monsters and memory was already full, it would crash I think. I was on the main screen with less memory, then loading the level wouldn't fit so it reseted. But if you are already inside, in my guess only if the bar was very close to zero, and changes in cel rendering numbers occure, it would flush and reflush regularly. The sprites and all graphics are already loaded once. Unless I am missing something, but I don't know.
Also, you can take the value from GetTotalFreeMem() and print it somewhere. Now, I do it with my own font, I won't post the code yet because it's more complex and maybe there is easier way in the API (with 3DO text output or Doom fonts?) unless you want it, I could open repository. But if you can print the value on screen, you can see directly.
Oh and here I print in several screens, divided by 1024, so I get the kbytes. If it's correct, it seems there is enough memory left, but maybe in later levels I have not tried, things are getting too tight, I don't know. I will have to be sure, because if I make changes or optimizations that need some precalced data, it might run well on first levels but I have to test all levels to be sure.
Also, you can take the value from GetTotalFreeMem() and print it somewhere. Now, I do it with my own font, I won't post the code yet because it's more complex and maybe there is easier way in the API (with 3DO text output or Doom fonts?) unless you want it, I could open repository. But if you can print the value on screen, you can see directly.
Oh and here I print in several screens, divided by 1024, so I get the kbytes. If it's correct, it seems there is enough memory left, but maybe in later levels I have not tried, things are getting too tight, I don't know. I will have to be sure, because if I make changes or optimizations that need some precalced data, it might run well on first levels but I have to test all levels to be sure.
Re: 3DO Doom succesfully compiled (but no way to run it)
I have frequent access to CD drive during this freezes. And yes, sometimes during this game crashed. Perhaps you are right, we have frequent flush of cels. All new cels reaches the sprite limit and flushes starts again.
I'm not preloading SpiderM like other enemy sprites. All SpiderM sprites are loading during the game by engine demands when enemy is in FOV or behind the corner. When I'm trying to preload ALL enemy sprites (old and new) the game crashes during loading screen. But that is predictable.
I'm using the PrintNumber function to display values on screen. I saw that remaining memory GetTotalFreeMem() on my simple level never goes below 800 000 bytes. But I have crazy freezes at the same time. So maybe I should find a some value that starts flushing cels and try to encrease it?
I'm not preloading SpiderM like other enemy sprites. All SpiderM sprites are loading during the game by engine demands when enemy is in FOV or behind the corner. When I'm trying to preload ALL enemy sprites (old and new) the game crashes during loading screen. But that is predictable.
I'm using the PrintNumber function to display values on screen. I saw that remaining memory GetTotalFreeMem() on my simple level never goes below 800 000 bytes. But I have crazy freezes at the same time. So maybe I should find a some value that starts flushing cels and try to encrease it?
Re: 3DO Doom succesfully compiled (but no way to run it)
If you want to change the flushing value, at threedo.c there is #define CCBTotal 0x200. I have managed to set it to something like 0x1000 and still fits in memory. I also managed to count the CCBs per frame by increasing a counter in every function that adds ccbs, and it can go from 240 to 1500 in worse cases. When it's over 700-800 things get choppy. Usually the wall columns contribute the most.
Also, I found out that sprites usually are drawn as a single quad, unless they are partially occluded by walls. Then they are drawn by individual column CCBs. Most of the time in your video they are in open, not occluded by walls, so I would guess at most times, very few CCBs are thrown for the sprites in your video. I noticed in your video, when the monsters have not woken up, it is smooth. It's only as they wake up and before they die that it's very slow. I am wondering if there is something in the scripting of the monsters. Btw, how did you work to pass these new monsters? Besides transferring the resources, did you copy the gameplay code for these monsters from PC Doom to the 3DO code? I hope there is no bug there that creates this problem. I am wondering about the hitscanning frequent shooting of the spider. Have you tried to remove a single monster each time and retest, to detect which one is creating the problem?
Also, I am interested in how you create these maps for 3DO. If I had the original WADs or could make this REZ file out of them, I could maybe edit the WADs with Doom Builder or something. I would be curious to make some maps that really push the 3DO in terms of many many sectors, visplanes, lines or sprites and test the performance.
Also, I found out that sprites usually are drawn as a single quad, unless they are partially occluded by walls. Then they are drawn by individual column CCBs. Most of the time in your video they are in open, not occluded by walls, so I would guess at most times, very few CCBs are thrown for the sprites in your video. I noticed in your video, when the monsters have not woken up, it is smooth. It's only as they wake up and before they die that it's very slow. I am wondering if there is something in the scripting of the monsters. Btw, how did you work to pass these new monsters? Besides transferring the resources, did you copy the gameplay code for these monsters from PC Doom to the 3DO code? I hope there is no bug there that creates this problem. I am wondering about the hitscanning frequent shooting of the spider. Have you tried to remove a single monster each time and retest, to detect which one is creating the problem?
Also, I am interested in how you create these maps for 3DO. If I had the original WADs or could make this REZ file out of them, I could maybe edit the WADs with Doom Builder or something. I would be curious to make some maps that really push the 3DO in terms of many many sectors, visplanes, lines or sprites and test the performance.
Re: 3DO Doom succesfully compiled (but no way to run it)
Here it's the link to all utilities I'm using and my current progress.
https://cloud.mail.ru/public/J8dK/k4nrqT2oh
Source folder contains all edited source files (not original ones). This is my current progress.
CompileFS - makes an ISO file.
PACK folder contains all the resources for REZFILE and all utils. Check _Convert.bat file for details.
Start _Convert.bat to convert resources for REZFILE. Then go to "Converted" folder and start MakeREZ.exe to make a REZFILE.
If you need the sources for utilities I’ll upload them. FirstFileInREZ.exe makes a first file (r_TexData) that contains width and height of all textures in the game. TexCutter.exe converts cel files to cel shapes for directly using in REZFILE. WAD_converter.exe converts pc wad files to 10 lumps in 3DO format. Converter has some limitations, so if you are getting errors, it may be fixed in source. It may occurs when level WAD is too big. You need press F6 in GZDoom Builder and set NodeBuilder to BSP-W32 in all active configurations. You’ll need to attach 3DO doom.wad file (in zip file) in resources tab. This WAD file contains all the resources you may use in your levels. When I made a new object, I add corresponding resource in this WAD file. Now you can create any level in GZDoom Builder and test it in 3DO Doom.
_Convert.bat file and MakeRez.exe app in Converted folder do all the job for making the REZFILE. Please note that all txt files are necessary.
Ph-win32 – Phoenix 3DO emulator for testing the ISO.
To_ISO_Doom3DO – folder with all files. Use CompileFS app to create ISO file from these.
3DO doom.wad – attach this file in GZ Doom Builder.
As for the new objects and sprites… For SpiderM for example, I divided sprite for 6 files for walking, 1 for attacking, 1 for pain, 1 for dying, 1 for dead body. That’s because the enemy is huge! In most cases I’m making 1-3 files for the enemy. See my current progress in link. Why I’m using many files for SpiderM? Because pointers for sprite shapes inside each sprite file are bigger than 0xFFFF and I couldn’t use any of 0x8000 prefix, that saves size of the sprite and perhaps their location in memory. I assume that sprite with and without prefix is loaded only once in memory.
So, when enemy is simply standing, only 1 sprite file is loaded. When it starts to move, next sprite file is loaded by demand. If we have many different types of enemies and they are started attacking at once, we have this freezes. If there are less monsters, the game runs faster. No matter which type of monster is on level.
I’m converting all pc code very carefully. It can’t be the reason I think.
PS. My oneclick compile project is working with some strange bug. That is because the compiler(?). When level 20 is finished loading a fantom torch appears on the moment and then dissapears. May be there are some others bugs, I don't know...
https://cloud.mail.ru/public/J8dK/k4nrqT2oh
Source folder contains all edited source files (not original ones). This is my current progress.
CompileFS - makes an ISO file.
PACK folder contains all the resources for REZFILE and all utils. Check _Convert.bat file for details.
Start _Convert.bat to convert resources for REZFILE. Then go to "Converted" folder and start MakeREZ.exe to make a REZFILE.
If you need the sources for utilities I’ll upload them. FirstFileInREZ.exe makes a first file (r_TexData) that contains width and height of all textures in the game. TexCutter.exe converts cel files to cel shapes for directly using in REZFILE. WAD_converter.exe converts pc wad files to 10 lumps in 3DO format. Converter has some limitations, so if you are getting errors, it may be fixed in source. It may occurs when level WAD is too big. You need press F6 in GZDoom Builder and set NodeBuilder to BSP-W32 in all active configurations. You’ll need to attach 3DO doom.wad file (in zip file) in resources tab. This WAD file contains all the resources you may use in your levels. When I made a new object, I add corresponding resource in this WAD file. Now you can create any level in GZDoom Builder and test it in 3DO Doom.
_Convert.bat file and MakeRez.exe app in Converted folder do all the job for making the REZFILE. Please note that all txt files are necessary.
Ph-win32 – Phoenix 3DO emulator for testing the ISO.
To_ISO_Doom3DO – folder with all files. Use CompileFS app to create ISO file from these.
3DO doom.wad – attach this file in GZ Doom Builder.
As for the new objects and sprites… For SpiderM for example, I divided sprite for 6 files for walking, 1 for attacking, 1 for pain, 1 for dying, 1 for dead body. That’s because the enemy is huge! In most cases I’m making 1-3 files for the enemy. See my current progress in link. Why I’m using many files for SpiderM? Because pointers for sprite shapes inside each sprite file are bigger than 0xFFFF and I couldn’t use any of 0x8000 prefix, that saves size of the sprite and perhaps their location in memory. I assume that sprite with and without prefix is loaded only once in memory.
So, when enemy is simply standing, only 1 sprite file is loaded. When it starts to move, next sprite file is loaded by demand. If we have many different types of enemies and they are started attacking at once, we have this freezes. If there are less monsters, the game runs faster. No matter which type of monster is on level.
I’m converting all pc code very carefully. It can’t be the reason I think.
PS. My oneclick compile project is working with some strange bug. That is because the compiler(?). When level 20 is finished loading a fantom torch appears on the moment and then dissapears. May be there are some others bugs, I don't know...
Re: 3DO Doom succesfully compiled (but no way to run it)
Thanks for the files and all the information. I would love to try get used with the whole process and make some tests soon.
Btw,. this is my first video of investigating the performance, and little experiments with lowres floor/wall quality settings I am testing, to see if they improve (they only do a little, much more work and research will be needed to run this smoothly).
https://www.youtube.com/watch?v=NHIGxEwZSnA
Btw,. this is my first video of investigating the performance, and little experiments with lowres floor/wall quality settings I am testing, to see if they improve (they only do a little, much more work and research will be needed to run this smoothly).
https://www.youtube.com/watch?v=NHIGxEwZSnA
Re: 3DO Doom succesfully compiled (but no way to run it)
Very interesting! May I see your source? I want to play with your bar and hacks on my test level.
Re: 3DO Doom succesfully compiled (but no way to run it)
Yes, here it is, I just opened a public bitbucket repository with the code so far.
https://bitbucket.org/Optimus6128/3donewprojdoomsource
I have a separate bench.c/h with the bar code, then it's used by calling startBenchPeriod and endBenchPeriod between the code part I want to test like in rmain.c or phase6.c atm, I see I have to clearBench every frame, so I do it on rmain.c (there are also some things I bench there, like BSP calculation and others. SegCommands() is called there which runs in phase6.c where most of the wall/floor preparation and adding of CCBs happen (even though everything will be rendered/flushed only on threedo.c at the end, something I don't benchmark yet). Anyway, it's a bit convoluted, also don't forget to call initBench just once in the beginning, I do that on initTools on threedo.c.
https://bitbucket.org/Optimus6128/3donewprojdoomsource
I have a separate bench.c/h with the bar code, then it's used by calling startBenchPeriod and endBenchPeriod between the code part I want to test like in rmain.c or phase6.c atm, I see I have to clearBench every frame, so I do it on rmain.c (there are also some things I bench there, like BSP calculation and others. SegCommands() is called there which runs in phase6.c where most of the wall/floor preparation and adding of CCBs happen (even though everything will be rendered/flushed only on threedo.c at the end, something I don't benchmark yet). Anyway, it's a bit convoluted, also don't forget to call initBench just once in the beginning, I do that on initTools on threedo.c.
Re: 3DO Doom succesfully compiled (but no way to run it)
Thank you! I'll insert this in my project and try to explore.
Re: 3DO Doom succesfully compiled (but no way to run it)
My enemies takes almost all time in BSP calculations (the left blue bar)...
https://www.youtube.com/watch?v=KUgs7qjAIL4
https://www.youtube.com/watch?v=KUgs7qjAIL4