That's not so great for anyone doing archives for distribution. Dependency creep if anything. Of course you could check every icon just before or even leave all of them out (of the archive).
For the brave and the bold here's a test build. The game will crash at exit, because it tries to free the textures after the context is destroyed. I had the same problem on AROS too, and it won't be easy to fix. The loading will be slow as s**t, and there's not much I can do about that. The game uses OpenGL so you'll need a Warp3D supported card. To play it just grab any of the official 0.8.1 packages from http://siedler25.org, preferably the windows one. You also need the data files from a settlers II gold cd-rom. The GOG version will do too.
It may or may not work, I have to way to test it until I get my matching pair of 512MB DDR module. I mainly interested wether someone with more than 512MB RAM can get to the gameplay.
This is just like television, only you can see much further.
Thanks i will test it soon (just need to download all the game files) Aniway i just try to start it as is but it immediately ask for libsmpeg-0.4.so and then for sure all the others deps !
So how about making a static version to avoid all that annoying deps ? If you are interested Kas1e wrote an excellent article about that
Give it a go, and for sake of testing running it firstly without installed s2-gold data files (just your binary + 0.8.1 win's data from main site): in console it says all necessary info, but when at end it says "error: some files failed to load", then it didn't close main window, and in console i have "***command 's25client' returnred with unfreed signals 0600000 !".
Then, i installed s2-gold as well to test if it all works at all, running from shell, its bring me a welcome window, loading start to happens, pics and stuff loads, and then when it says:
Quote:
Target sampling-rate set to 44100.0000. Writing output to "t:tmp.NDFERERG". Smapling rate ocnversion factor set to 4.00000
Starting Conversion Attenuating resample scale factor by 0.95 to reduce robability of clipping
Then all crashes because of low stack for resample binary or how it called. I then tried to set some pretty fat stack, like "stack 50000000" , and then run game from shell again (all tests done after hard reboots of course) : all start to works on this moment : i.e. after loading conversion of sounds happens and game starts. I was able to choice loading of the compain, and choice there Atomium 1, its loads (not so fast , but loads) and seems to show something operational, but:
-- sounds distorted (i assume because you didn't change all those mixer's parts on AUDIO_16MSB where need it, and originally there LSB or something)
-- in the menu, mouse pointer overwrite the gfx data there and there , like forget to erase itself after move. Check screenshot:
-- in game itself half of sprites borks (maybe endian related way of parsing data files). Check in game screenshot:
-- no music as well, even if i enable it in the options and choice sdl-mixer driver.
And as you says it crashes on exit on glDeleteTextures as well.
Then all crashes because of low stack for resample binary or how it called. I then tried to set some pretty fat stack, like "stack 50000000" , and then run game from shell again (all tests done after hard reboots of course) : all start to works on this moment : i.e. after loading conversion of sounds happens and game starts. I was able to choice loading of the compain, and choice there Atomium 1, its loads (not so fast , but loads) and seems to show something operational, but:
-- sounds distorted (i assume because you didn't change all those mixer's parts on AUDIO_16MSB where need it, and originally there LSB or something)
The sound conversion utility uses very little stack. I can't test the sounds, because I don't have speakers hooked up to my machine currently.
Quote:
-- in the menu, mouse pointer overwrite the gfx data there and there , like forget to erase itself after move.
The menu background is a huge 1920x1080 bitmap, which gets rounded up to the next power of two. There used to be some sanity checks for GL_MAX_TEXTURE_SIZE, which might got removed from 0.8.1. edit: The game uses a proxy texture to determine the maximum supported size, which might not be supported by minigl.
Quote:
-- in game itself half of sprites borks (maybe endian related way of parsing data files).
This is a driver issue, and has nothing to do with endianness. Remember, this port comes from MorphOS. Is there any way to get debug output from Warp3D?
Quote:
-- no music as well, even if i enable it in the options and choice sdl-mixer driver.
I can't test it, see above.
I probably have to put this port on hold until I receive the additional 512 MB module.
This is just like television, only you can see much further.
@kas1e Those warnings and errors are probably about the menu background texture. Could you replace RTTR/LSTS/menu.bmp with some smaller (512x512) bitmap, or resize it to see if the errors go away?
This is just like television, only you can see much further.
@BSzili Resized to 512x288, and there is good news: for first , background image now loads in menu, and for second, no more bug with pointer (i.e. all auto-erases fine). Seems they re-blit that background image all the time when mouse move:
Also game itself loads now faster a lot on second runs (as all those sounds generation done). But there is what we have in debug log on debug w3d, while we load game and come till menu:
Quote:
Created Profiling for module W3D_R200.library [Notice ] [InitContextMask] Initialising mask Created Profiling for module Warp3D.library [vid_CreateWarp3DContext] context->w3dContext = 0x61B30760 [Notice ] [_W3DHW_W3DHW_AllocZBuffer] Allocated Z buffer (800x600x2) [vid_AllocDepthStencil] Allocating an S-Buffer [vid_AllocDepthStencil] No SBuffer: Operation not supported [mgl_CreateContext] Initializing context [MGLInitContext] Suppressing frame statistics Initializing lighting [mgl_CreateContext] Setting up default parameters [mgl_CreateContext] Lockmode = MGL_LOCK_SMART [mgl_CreateContext] Done [cgl_LockMode] Lockmode set to MGL_LOCK_SMART [RebindTextures] Warning: rebinding texture that does not exist [MGLConvert] ConvertBuffer too small (0), reallocating (4096)
Then menu shows and in debug we have:
Quote:
[Notice ] [_W3DHW_W3DHW_FreeTexObj] Texture 0x65A486C0 [1024 x 1024 x 4] used: 1 uploaded: 1
Then i choice "single player" , "unlimited play" and first map. And have in debug:
Quote:
[Notice ] [_W3DHW_W3DHW_FreeTexObj] Texture 0x5CA9FD00 [ 512 x 256 x 4] used: 464 uploaded: 1
Then i press "Start game", and map loading starts, and in debug output i have:
Quote:
[Notice ] [_W3DHW_W3DHW_FreeTexObj] Texture 0x5CAA0090 [ 512 x 256 x 4] used: 1997 uploaded: 1
Then loading of map going on (take about 2 minutes i think) , and then in debug output i have:
Quote:
[MGLConvert] ConvertBuffer too small (4096), reallocating (16384)
And game starts, through, the same white/blue sprites everywhere as i show before. Like something wrong with some ogl calls somewhere . I remember that for example in GISH port, i have on second level the same kind of problem for some of "enimies" : they just white strips instead of actual data. Before i think that it some missing sprite somewhere, but maybe it can be something in minigl which do or not do something which other ogl implementation do different..
@BSZili Some good news: after i turn off "optimized textures" in the graphics options, game data start to works fine, as well as it loads now MUCH faster (with optimized textures enabled loading of maps take about 2-3 minutes, with disabled - few seconds):
So its almost playable now, just with distorted sound and with no music its a bit broken fun :) Strange that sound and music works on morphos, because distorted sound looks exactly like non added AUDIO_S16MSB which is need it for big endianes. Sometime it happens also in vorbis's ov_read() fucntion , which also want to know Endianes and bring such kind of distortion too.
@BSZili I also do count exact time of loading on my peg2 from my slow ide hdd, from morphos's sfs0 partition: it take 1 minute 12 seconds till menu come up. All the other loading (maps, and co) with disable optimized textures loads pretty fast without noticable slowdowns.
Imho not _that_ slow.
Quote:
The game will crash at exit, because it tries to free the textures after the context is destroyed. I had the same problem on AROS too, and it won't be easy to fix
Cant something like just moving closing of context after freeing of textures help ? (when i meet with such problems in ports, i usually just comment out freeing of textures, which is ugly and pure suck, but no crashes at least, just memory wasting :) )
@kas1e Dude, you are awesome! I never really looked into what "optimized textures" does. It tries to merge all the small textures into a few big ones to avoid texture switches. I'm going to disable it compile time. edit: I tried disabling it, but it didn't really reduce the loading times. Oh well, as long as it fixes the gameplay...
Edited by BSzili on 2013/11/26 9:09:05
This is just like television, only you can see much further.
Strange that sound and music works on morphos, because distorted sound looks exactly like non added AUDIO_S16MSB which is need it for big endianes. Sometime it happens also in vorbis's ov_read() fucntion , which also want to know Endianes and bring such kind of distortion too.
Probably differences in SDL ports.
Anyway you should rather use AUDIO_S16SYS than either AUDIO_S16LSB or AUDIO_S16MSB directly especially if you want your changes to have any chance of making it into the main source tree.
edit: I tried disabling it, but it didn't really reduce the loading times. Oh well, as long as it fixes the gameplay...
For me it speed up loading times of maps (not the whole game at first start). With enabled 2-3 minutes, with disabled really 2-3 seconds. Maybe 5 seconds max.
@Salas00 Thanks ! As for different SDL ports, dunno as when i do some sdl ports to morphos as well, there i was in needs to change all those AUDIO_ things too. Maybe differences in vorbis's ov_read() then..