Jump to content

Tux

Ultra Members
  • Posts

    1,172
  • Joined

  • Last visited

  • Days Won

    250

Posts posted by Tux

  1. No problem, it's very easy to reproduce. It comes from the very special nature of the console, contrary to other dialogs in the interface, it always exists, but since the interface has a parent system to be able to draw the background, it can create problems when the parent of the console disappears. Here because of the error, it takes one of the temporary messageboxes as parent and so the 1st time you try to display it, it just crashes because the parent has disappeared !

    Yeah it's normal, this part of the gui is a hack, because I wanted the console to always exist, which is not the normal way of working for this gui.

    So there is a workaround, not too complex, maintain a list of active dialogs to be able to check if the parent is still active when drawing a dialog. If it's not, just remove the parent that's all. So patch very short and efficient.

    Pushed to git.

    • Like 1
  2. xp last update was in 2010 or 2011, so it doesn't make much sense to loose too much time on it. I would have kept compatibility but virtualbox removed direct3d support for xp in 6.1 because of a big security hole in their driver, I would have preferred that they would simply add a big red button to click to allow users to install this despite the security hole, but they just removed direct3d support, so it's impossible for me to run any version of raine in xp in virtualbox now, so too many people want xp to disappear.
    On my end I quite liked some custom xp editions like tinyxp : small, fast and efficient, but oh well, I guess it's too outdated now.

    And it's not hardware obsolescence, you still do what you want with your hardware, you can install something else on it, it's software obsolescence only here.

    And the next victim will be win7, but maybe I won't have to deal with that... !

    • Like 1
  3. Well you can always test the last sdl1 version to check, sdl2 started in 0.92, so the last sdl1 must be in 0.91.15. Also if you saw the post in the other thread, we became xp incompatible with 0.97.2, so it's probably because of the new function to detect the soundcard. It doesn't really matter anyway, xp is ancient now, and you are bound to hit an incompatibility like that if you keep adding new functions. Also something you probably didn't think about, but if you set Autodetect as default, then you will never see which card is selected, it probably doesn't matter much anyway as long as it can be heard, but if you want to have the detect and store result as before, the only way is not to have this autodetect as default. (or modify the interface to show which card was detected when Autodetect is selected, but I prefer to keep things as simple as possible).

    And for the unexpected return of the black border : I had actually tested this in windows, but apparently this function doesn't return the same thing when you call it in windowed mode and fullscreen ! So it got me, because I didn't think about saving the config and run again. And it doesn't make much sense, it's supposed to be state-less normally... ! Anyway !

    • Like 1
  4. 1) autodetect as default : we used the other way for years and you are the 1st to have a problem with that, I think we can keep the old default for now, I prefer to see precisely my soundcard name when I go to options.

    2) your haunting black border : well not for me in linux. Maybe it's windows only... I am terribly tempted to simply stop to support windows, what a marvelous idea it would be ! :) I might try that in windows later, but for now in linux :

    1) removed my config file, started raine, went to fullscreen loaded dino, took a screenshot of the title screen, then quit
    2) run raine again in the same config, loaded dino, took the same screenshot, got exactly the same picture, end of the test for now.

    ... and same result in windows, same picture in both case (compared the files they are identical).

    got it, I hadn't the latest binary in windows, it's still the same old problem because I changed the way to get the screen coordinates, in windows we get the height of an invisible windows title bar added, not in linux. 1 line fix, a function name instead of another, but it's really annoying.

    At least the site is fixed, back with some disk space, you can get the ultimate test binary there : https://raine.1emulation.com/archive/tux/raine.7z

    • Like 1
  5. Oh, ok I surrender, I added an Autodetect choice for the soundcard in the gui, and I fixed the detection of the sample rate which was linked to the sound driver instead of the soundcard... !

    You won't have a test binary for now because after the forum, it seems the ftp is broken for now, I can't send raine.7z ! (deleted the file to avoid any mistake).

    It's still a rare case in my opinion, but it's quite interesting to see how it can be done without having something too big. Since I had to fix the sample rate detection too it's a little longer than what I anticipated but it's still ok, and maybe someone else would use that !

    Notice that the behavior is the same as before : if you don't choose "Autodetect" explicitely and you have no config file, then it will detect the soundcard only once, there's no reason to detect it all the time except on a crazy laptop changing its output device all the time !

    Difference from before : now if you change the soundcard in sound options and the sound card driver has a preferred sample rate, you'll see this sample rate selected in the options in real time. Not all drivers have a preferred sample rate, if there is none the frequency is not changed.

    By the way the error on the server is because of a full disk !

    • Like 1
  6. Centering the window : of course raine keeps as many coordinates as it can, it's since we added all these windows statuses which created so many problems ! So it knows where to position precisely a window when exiting from fullscreen to return to its previous state, but if the physical screen changed and now the resolution is not the same anymore, then it will mess things up. There's not much which can be done about it, it's obliged to reduce the size to stay in the screen, but then should the position be changed too and how ? For now it isn't touched, it's the safest way, it would really become crazy to try to adjust position when the size has changed too.

    The black screen in windowed mode : yeah my fault, I didn't get the right values for the desktop resolution, now I ask the desktop resolution for display 0, hoping we will never handle more than 1 physical display because I don't plan to use more than 1 here.

    autodetect sound all the time : yeah but it would force to have a special value which says "detect the soundcard but don't store the result, just stay in autodetect", so it's a little tricky, and not necessary in most setups, your setup when plugging a new dispaly changes the soundcard priority is quite original. And always detecting the soundcard is not a good idea neither in the case where you run without a desktop, which I do on the mini computer, it has a bare environment, no desktop, and in this case it can get some rather crazy value for the detected soundcard. Now I admit that if I was to use regularly raine on that machine, I would put a window manager, at least for fullscreen, here it's bothersome... !
    Anyway since it takes you only a few seconds to adjust manually, it's the easiest solution for now.

    • Like 1
  7. No I think it's enough for the sound. It works well enough for me. There was an autodetect for sound in the old dos days for those who didn't know which sound card they had, but the time was very different ! Since then it never came back, and you can easily do without it even now, if you forget and find you have no sound, you can restore your sound by a quick visit to sound options, so it's not worth the trouble adding an explicit autodetect choice in my point of view.

    For the 1080p -> 1366x768 not sure what happens, I might do some tests later.
    edit : after testing, it's minor, it's just about the placement of the window, not sure there is something to do about it, it's after resizing the screen so that it fits in the new resolution, so no wonder it can change the position while doing so. And it can be fixed manually without too much trouble, or just stay in fullscreen, so really minor.

    Cool, I finally see the end of it !

    For the config not updated if you just run and quit, normal, it does nothing related to the sound in this case, you have to either load a game or go to sound options.

  8. Nope, sound_card becomes a string value in the config file for sdl versions from now on, the old config file is converted on the fly so you don't have to edit it manually. Actually sdl2 accepts only a soundcard name when opening a soundcard, not an id, so it's easier this way. While testing I stumbled upon the case where you get a strange soundcard name with trailing spaces, in this case the trailing spaces are removed when reading from the config file which added another case to fix... ! Anyway it should work in all cases now, hopefully !

    Test your thing... same link.

    • Like 1
  9. For the smaller screen : yeah it can be done, I thought about it after posting this binary, easily done.

    For replacing 1 soundcard by another one : not convenient for now, it obliges to change a number by a string as a setting, and for now I prefer to avoid it, so I think it's going to be my limit, you'll have to live with it !

    edit : actually it might be possible to do something for the soundcard too, it's not convenient because it breaks compatibility with the dos version, but it shouldn't be too complex to do, I might have a closer look later.

    • Like 1
  10. Ok, I'll take a look later, but there's no need to make a video all the time, just saying

    1 load a game while being in fullscreen, the game starts normally while in the gui
    2 go fullscreen -> the screen becomes blank

    It's shorter, takes less time, and is more efficient for everyone. I have tested this too fast, seeing that the gui seemed ok in fullscreen I assumed it was a windowed problem only. Later, then...

    edit : well sorry for my mistakes, I was half awaken when I did that and it shows, I went way too fast especially for the video resizing part. For the sound I didn't think just opening the sound options would make such a mess in such a case ! Anyway it's fixed again, you can have your test which was indeed useful here : http://raine.1emulation.com/archive/tux/raine.7z

    • Like 1
  11. 19 minutes ago, mer-curious said:

    Hello Tux! This is really good news! I should be testing these workarounds as soon as a new version is released.

    Thank you so much for that. Hopefully those were the last issues related to the sound device detection and the window management feature...

     

    Oh well you can always test this binary, since normally it can now work around the issue of soundcard not present you shouldn't be able to reproduce this error with it.

    https://raine.1emulation.com/archive/tux/raine.7z

    • Like 1
  12. 1 hour ago, pmc2 said:

    hello

    just for your own information, the latest xp-compatible version (if you replace the dlls, of course) is 0.97.1 (the .2 version definitively breaks this compatibility). After so many years, someone had to let you know ^^. 

    No idea how it was broken so I can't do anything about it, sorry ! I would love to have someone maintain the windows version, it would be a lot less troubles for me !

    Actually there are very few patches between 0.97.1 and 0.97.2 of course since it's mainly about the sound problem alone, raine does nothing fancy in this version, just calling sdl2 functions which were not called before, so I guess your incompatibility comes from there.

    But as explained before there is nothing much to do about it after a certain point, Microsoft does this willingly, they do nothing to maintain their old versions, not even security patches, and keep on adding new kernel functions to the new versions which are then used by some libraries. After a while the new functions become unavoidable and you have an incompatibility.

  13. After some thinking, it's not so hard to add a small test for the video info to keep the window within the screen boundaries in case the physical screen has changed since the config was recorded, so I did just that.

    And in case the recorded soundcard is not available to just force a re-detection of it.

    2 small workarounds for people who change their config all the time on their laptops while still keeping things easy, it should work...

    But I won't track the z80 error, yeah it can report an error like that if sound config is messed up when booting the game, even if I can't seem able to reproduce it for now no matter what.

    • Like 1
  14. I won't try to recreate a rare bug, it's rare so just avoid it that's all. There are known issues in sound like changing the sample rate in a game which use fm music after the game has started will produce bad sound, the known workaround is just to quit when you change the sample rate. Yeah I know it's not super ideal, now if someone wants to send patches to improve all this, I'll accept them !

    It's assumed people can setup their sound once and then keep the settings for normal play.

    A program which works in all conditions is a crazy thing, that's something you learn quickly when you learn how to program, even if you try to do it with some sample code it can quickly become crazy. Now for some safe environments where it's a necessity, people try to keep programs small to avoid that things become too crazy. For raine it's already very big, you have to be a minimum reasonable about what to do in this case, it's already working as well as possible with some pitfalls which can be easily avoided.

    • Like 1
  15. Of course it was never thought to be used on a machine which changes its setup like that, it's supposed to be stable.

    Well you can always install in 2 directories, 1 for your tv and the other one for the laptop, that's clearly the fastest solution because raine has worked like that for something like 20 years so I don't think I'll change that now, and I am not even sure how I would do it anyway.

    For your sound option which disappears after you remove the tv, well same thing I guess, delete your config file if you want to keep just 1 install to allow it to reset its settings for the new setup. That's an idea for later eventually to allow it to detect such radical configuration changes, but I won't make a hotfix for that.

  16. 5 hours ago, mer-curious said:

    Hello Tux! I'm sorry for the late reply on this report.

    I tested again the sound device saving operation and it is indeed saved as you said. But I think I found what led me to think it wasn't being saved. There are two bugs related to that:

    1- if you load a game, the sound output device is reset to the 1st one found in the computer.
    2- whenever you visit the GUI, the sound output device is also reset to the 1st sound output device in the computer.

    That is why I was reporting the sound device selection wasn't being saved, it was being hindered by these two bugs.

     

    This part alone almost made me crazy. There is a compatibility hack in sdl2 to stay compatible with sdl1 so that it never returns the device id 1 on success when opening an audio device ! So it means you must ignore the returned device id (if using something else than autodetect).

    Crazy stuff... I'll fix that ASAP... It's changed in sdl3, it correctly returns the logical device id which was opened, I guess sdl3 is soon now. I would have spotted this earlier if I hadn't changed my installation here, no 2nd audio card to test... oh well... !!!

    Ok, fixed. The autodetection is totally different now, it can't rely on opening the device as it did before, so it might work better for you now. Tested in many configurations, it should be ok everywhere.

    For the neocd bios, yes it looks for neocd.zip in the raine directory, it can't look anywhere else since there are no roms directory in neocd. It's always been like that.

    • Like 1
  17. 48 minutes ago, pmc2 said:

    I don't want to rub it in, but Mercurious is right, the default audio device is never the right one (that's how I discovered I had an HP in my screen, thanks for that^^), it's been like that for a few releases now. On the other hand, it saves once I change it (but I'll retest on the latest version to be sure). I don't know how it's done in Windows, why it wasn't like this until a few versions ago and since then it's changed. Is defect 0 the output of my screen instead of the classic HP one, I don't know. It's not important to me but something happened either in windows or in raine.

    No idea, but as you said, it's not important as long as the setting is properly saved and restored since it takes just a few seconds to setup that. Tested with the latest version, and it is, so that's all that matters for now, if someone wants to investigate further, he's welcome to !

    for your change, I changed the way the soundcard is 1st selected in 0.97, I let sdl2 choose instead of always selecting the 1st one, but I don't know how it chooses ! It was discussed in another thread, started by mer-curious too. Notice that if you preserve your config file and always unpack a new version in the same dir, you won't notice this change.

  18. 1 hour ago, mer-curious said:

    Hello Tux! Thank you so much for this new release. I hope more users can also benefit from the fixes to the window status, and from the other changes too.

    Here I have a quick and short feedback for this version:

    - the issue with the default sound output device detection is still present in this version unfortunately (and in version 0.97.1 as well). Raine can't detect the sound device which is currently used in desktop. Also, the sound device setting is not saved and restored if we change it and reopen the program after properly quitting it. Perhaps this could be fixed too...?

    But I think the most important improvement would be to detect the sound device set in desktop when the program is opened and use it as default, because this is what happens with most emulators, so users are not used to configuring that. I think this would let Raine more user-friendly, especially when using it for the first time.

    Anyway, hopefully you'll be able to test this in a Windows device and finally see what is going on with it.

    Thank you so much again for your work.

    PS: there are some very cheap USB sound cards available in the market which could be possibly used to reproduce this issue (see here: https://www.aliexpress.com/w/wholesale-usb-sound-card.html). But I don't think it is worth it getting one just for this test, unless you know someone who could lend it to you...

    Non issue, already talked about it.

    And no sorry, already said but I can't detect your desktop sound setting (and really don't care).

    I tested that quickly in the mini with its 2 soundcards and selecting the 2nd soundcard was saved when quiting normally using the quit command. You can check it in the config file in [Sound] section, sound_card is just a number, 1 for the 1st sound card, 2 for the 2nd, and so on.

    edit : and in windows too of course, I plugged this usb soundcard which became the 1st soundcard in windows for god know which reason but anyway at this point I could change or keep the soundcard in raine and it was saved all the time. End of the problem for me.

  19. It mainly fixes the untested games in 0.97.0, but I took the opportunity to totally overhaul the disassemblers in the console, they are not external anymore, they use the functions provided by mame to disassemble. With that you can disassemble z80 encrypted roms which is convenient, but I did it mainly because my offsets arrays was becoming way too big with the sh2 emulation, it had been done for the 68000 for 32k regions, here it was really far over the limit ! But those who don't use the console shouldn't notice anything.

    Except that added the "psikyo SH2" driver to the drivers list in the game selection dialog options to be able to select these games more easily. That's all, the overhaul of the disassemblers is a very big change in git, it gets rid of most of the directories settings too.

    http://raine.1emulation.com/download/latest.html

    For the gory details : dz80 was one of the external disassemblers, the one used by the z80, it was with raine since the old allegro dos version actually ! Very good disassembler, but it can't cope with encrypted roms... !
    Also there was no support for the 6502 disassembler in the console, although it supported an external disassembler ! ;-)
    The list command changes because of that although its functionality remains the same, now the pc line is not in the middle of the listing but at the top. That's all for now, it was a very furious coding session !

    • Like 2
  20. 16 minutes ago, _MADrigal said:

    A new version of RAINE is always very welcome!

    What is the major effect of the updated sh2 emulation? Are there new games supported by RAINE, or does this change improves the general quality of emulation to the previously available games?

    Previously the sh2 emulation worked only in 32 bits, the asm version, using the gens sh2 emulation, so all the psikyosh games were usable only in 32 bits. I'll add some driver selection for Psikyo SH2 in the game selection dialog to be able to list them more easily next time.

    This includes :

     - Gunbarich
     - Gunbird 2
     - Sol Divide
     - Strikers 1945 II and III

     - Tetris the absolute grandmaster 2, and 2 plus.

    These games are the biggest and the most modern ones in raine, all using 24 bits colors.

    I just noticed that I released a little too fast and sol divide and Stikers 1945 II don't work well in this version, I'll probably release a fix later today.

    This was something which bothered me for long actually ! For info the ultimate motivation to finish this came from a news in slashdot about some avx512 optimization in assembler by ffmpeg : https://news.slashdot.org/story/24/11/04/2140206/ffmpeg-devs-boast-of-up-to-94x-performance-boost-after-implementing-handwritten-avx-512-assembly-code

    up to 94x acceleration, and for hand written assembler you don't see that everyday particularly these days, and some comments doubt it's possible since recent compilers include options to use avx, avx2 or avx512 to optimize, you can do it even with raine, the binary is slightly faster, but since it's slightly only it's not enough to justify another binary. But raine shows very well how the compilers improved in the last 20 years : the 32 bits assembler version includes crazily optimized assembler code for the video part, and nowdays the 64 bits version is almost as fast, and this version uses only C, relying entierly on the compiler to optimize ! This is really impressive. So I became really curious to see what a compiler could do with some C sh2 emulation... !
    Actually it's still a lilttle slower than the assembler version and it would require some more work to be at a similar level of speed, but it's already quite good.

  21. And what took me so long ? Finding something to use for the sh2 emulation in 64 bits, and it was not easy !

    Finally I took the sh2 emulation from an old mame version (153), and modified it to be compatible with what gens did, so that it's compatible with the psikyosh driver. The result is slightly slower than the asm version, but not by a lot, so it will do for now. I lost a lot of time with yabause which I looked at before that.

    Except that the windows status bugs seem fixed for good for those who missed the latest update of this painful story in the forum, there was a binary specific for that.

    And you can update your dlls for 0.96 if you want a more recent sdl2 version, but it's not mandatory, it should work fine with the old dlls.

    Have fun : http://raine.1emulation.com/download/latest.html

    Oh yeah, I also added some links to some strategy guides in the about dialog for galaxian, pacman & clones, and dodonpachi. It's nothing fancy, it will just open your current browser with the corresponding page in the web, some kind of integrated bookmarks to raine, but I thought these guides deserved some more visibility !

    • Like 2
×
×
  • Create New...