Jump to content

Finally, the sdl2 version of raine : 0.92 !


Tux
 Share

Recommended Posts

It was epic, with 2 months where I simply gave up about this before returning to it finally, anyway... !
What to say about it ? It's huge, it's probably the version with the most changes inside even if there are almost no changes on the emulation side, except for the bug fixes I made while testing things.

The 1st goal was to get rid of the opengl blits in windows while having a usable gui even in fullscreen, it's done. By the way it's a "desktop fullscreen" meaning it's just an invisible window using the whole desktop place, so it behaves exactly like a normal fullscreen and normally you don't see any difference. Also the games using rasters and the emudx games work correctly (didn't test all the emudx games, just 2, but the rest should be ok).
The keys configuration has changed, because keys constants have changed in sdl2, so even if it still reads its configuration from the same file, it reads the keys from a new section, with -sdl2 at the end of the name of the section. Sorry for those who had a lot of custom inputs, but there were too many incompatible changes, it's better to restart from scratch here.
New "game controllers" interface, so that you can plug or unplug a joystick during game play without problem, don't abuse this though, I tested it a little, but not sure I tested all the possible cases. And joystick 1 in raine won't become joystick 2 just because you plugged a new joystick. There is also a new command in the inputs menu "joysticks indexes" to change these joysticks positions if you have at least 2 joysticks plugged. There's a lot less changes in the configuration saved for the joysticks, maybe a few buttons will be different in configs which use more than 4 buttons though, just check and adapt... Also if you use a gamepad recognized by sdl2, the digital cross on the left should be automatically mapped to the left stick, so it can be used for movement without doing anything.
The sound has a new 48 Khz option which is almost useless, just added that for testing.
Opengl has the adaptive vsync now, check in "video info" after playing something to see if it works for you. Better vsync in windowed mode, but I double checked you can disable vsync if you want in "renderer options", yeah it works, but it didn't last night !
There is no video driver selection for windows anymore, useless normally. A new video renderer "sdl2 native", mainly for testing, not spectacular, and no specific options for now. Notice the opengl rendering is not super optimized yet, all the games are rendered in 32 bits, the simplest solution, but not the fastest one. It's enough for current hardware... Same thing for emudx, it could be remade using new functions for better performance...
The gui has the most obvious changes, a simple animation now runs behind the transparent menus, if you load a game it starts in the background behind the menus, but if you start to play it's paused when you return to the gui, like before.

While testing things the most obvious bugs fixed were :
 - all the cps1 games using 6 buttons had lost their 3 1st buttons ! It's due to the code to include inputs from another game, went too fast on this one, this time it should be fixed for good.
 - and bubble bobble has been broken in the 64 bits version since version 0.91.14, which was released about 9 months ago ! At least it's not a generic bug, it's something very specific to this driver, it's an old thing with non portable ideas inside which created a black screen on boot here, it's fixed anyway.
 - commands displayed from the command.dat file (like the buttons of 1941 in the "controls" section) were bad for quite some time, it's fixed too.

There is a new index_roms file with this binary, it's to get the sizes of the roms from the internet archive so that the dialog is not inert while it's downloading since their server doesn't send the size of the file before the download starts. The 2 vera fonts have been replaced by DejaVu versions, which look about the same but contain more utf8 characters inside to be able to display more things without problems. they don't contain Japanese characters though.

There might be a few other things I forgot. Well it's so huge that I can't be sure there won't be any problem anyway, we'll see... !
Don't forget to grab the dlls32-0.92 or dlls-0.92 file depending on the version you are using, it's bigger with plenty of useless stuff inside, but it's the price of using precompiled packages in mingw32 and mingw64, it simplifies things and allows fast updates, but it's bigger on disk.

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

  • Like 1
Link to comment
Share on other sites

Wow! That came fast! 🤩👏

Thank you so much for your hard work in this super upgrade!

I guess you deserve to rest now. I'll leave this preliminary feedback here just in case you wish to play with it again sooner or later:

- the mouse wheel does not work to scroll in the GUI.

- the background effect makes reading the games list a little more difficult than in previous versions. Perhaps the default option could be a clean background?

- CPS2 games seem to load with bi-linear filter on when you load them after another game from another driver (such as Neo-Geo) has been loaded.

- the new default key for full screen mode (Return) is not so easy to guess because generally this key is used for confirming actions, not switching between screen modes. Perhaps you could finally swap it to Alt+Enter in SDL2, which is the default for most programs and emulators?

- the input bug which does not allow executing the "Sonic Boom" command on the Player 2 side is still present in Marvel Super Heroes. Curiously I was able to perform this command the first time I tried the emulator in a clean install, but then I couldn't anymore. Very weird.

- The default keys for Player 1 are a little unusual. It's really rare, for example, to have the Caps Lock key mapped for actions in a program. Maybe they could be the same as for the SDL1.2 version?

- The emulator still tries to automatically assign the controls to your game pads, but the assignment is not ideal for many arcade games, especially fighting games, which work better with the d-pad and not the analog stick. Isn't it better to turn this feature off and let the user decide the best mappings for every game or driver?

- When I click on Analog controls and select "Controller (Xbox 360 Wireless Receiver for Windows)", the emulator crashes.

That's it for now. Thank you so much again for your time! 🙂

 

Link to comment
Share on other sites

6 hours ago, mer-curious said:

Wow! That came fast! 🤩👏

Not so fast for me, it was long, but yeah it was time to slow down and to get some feed back...

6 hours ago, mer-curious said:

Thank you so much for your hard work in this super upgrade!

I guess you deserve to rest now. I'll leave this preliminary feedback here just in case you wish to play with it again sooner or later:

- the mouse wheel does not work to scroll in the GUI.

missed it ok...

6 hours ago, mer-curious said:

- the background effect makes reading the games list a little more difficult than in previous versions. Perhaps the default option could be a clean background?

You can also lower the transparency for the background color, or increase the min font size (I should increase the default value here).

I have an idea of another presentation for the game selection dialog, but I didn't want to do it now, I wanted a 1st release as fast as possible, and it was long enough...

6 hours ago, mer-curious said:

- CPS2 games seem to load with bi-linear filter on when you load them after another game from another driver (such as Neo-Geo) has been loaded.

How did you learn to identify "bi-linear filtering" ? And where do you see it exactly, behind the main menu or after that using play ?

6 hours ago, mer-curious said:

- the new default key for full screen mode (Return) is not so easy to guess because generally this key is used for confirming actions, not switching between screen modes. Perhaps you could finally swap it to Alt+Enter in SDL2, which is the default for most programs and emulators?

It was supposed to be alt+return, something went wrong in the encoding of default keys, I'll have a look...

6 hours ago, mer-curious said:

- the input bug which does not allow executing the "Sonic Boom" command on the Player 2 side is still present in Marvel Super Heroes. Curiously I was able to perform this command the first time I tried the emulator in a clean install, but then I couldn't anymore. Very weird.

I think it's more probably a timing issue, there is no way an emulator would change how the inputs are from the left side or the right side...

6 hours ago, mer-curious said:

- The default keys for Player 1 are a little unusual. It's really rare, for example, to have the Caps Lock key mapped for actions in a program. Maybe they could be the same as for the SDL1.2 version?

I didn't map everything, just started with button 1 on ctrl, then mapped some buttons where it seemed logical. Stopped around caps lock which I used as a test.

v, b, n were really not convenient as default button inputs, but you can't map 6 buttons starting on ctrl clearly.
The current mapping is fine for 3 buttons configs or less. I am open for suggestions here...

6 hours ago, mer-curious said:

- The emulator still tries to automatically assign the controls to your game pads, but the assignment is not ideal for many arcade games, especially fighting games, which work better with the d-pad and not the analog stick. Isn't it better to turn this feature off and let the user decide the best mappings for every game or driver?

?! What's wrong with that ? I mean if you don't want to use the dpad, just don't use it. Did you use for something else ?
As it is now you can't remap it anyway. I'll need more details on that one.

6 hours ago, mer-curious said:

- When I click on Analog controls and select "Controller (Xbox 360 Wireless Receiver for Windows)", the emulator crashes.

That's it for now. Thank you so much again for your time! 🙂

I didn't test the analog inputs, they should be redone differently anyway.

I don't see if you noticed, but the window handling changed a little too, it should keep the size and position of the window better, even quiting the emulator in fullscreen, in sdl-1.2 you had to use a hack for the window postion and it was done only for windows, now there is a real function for that and it's done for everyone...

Thanks for the quite lengthy report already anyway ! I have noticed another problem with the merged inputs, in popbounc again, I am on it, but more slowly... !

 

EDIT : ok, fixed the mousewheel, it has a separate event now to be able to handle horizontal scroll wheels... ! I just ignore that, I only handle the vertical one, avoiding all the fancy stuff. By the way the reason I didn't notice that is that I don't use the mouse wheel and almost never use the mouse in raine, it's really more efficient to use it with the keyboard, just type the 1st characters of a game to go to it in the game selection dialog, and the 1st characters of any menu item anywhere in the interface, blazingly fast... ! That's also why I use the english version of the gui (too many menu items start with the same letters in french !) and why the menu item to change controls in english is called "inputs" and not "controls" !
Also fixed the modifiers for the emulator keys, and at the same time the handling of scancodes - the keys which don't have a symbol and just a scancode, the left gui or windows key is in this case but since it opens the windows menu by default it's harder to use !). If you want to have the right default keys for the emulators you'll have to delete the section in your config file or restart with a new one. The number of keys with only a symbol has been dramatically reduced in sdl2, the gui keys, the menu one on the right if you have it, + the multimedia keys, but everything standard has a symbol (a sym code) now.
And fixed again the problem about merged inputs for popbounc, is it the last time ? ;-) Actually this thing was a trap from mame, that's something I wouldn't have used in the inputs because too many possibilities of errors, but they used that in mame in their inputs and since I imported quite a few definitions from them, I thought it was a good idea at the time, without thinking too much about it... ! Oh well, now I think I have rounded it quite well, but it took me some time for sure, it looks innocent, but it's more complex than what it seems... ! And in the end, it's not a bad idea, just a dangerous one !

Edited by Tux
  • Like 1
Link to comment
Share on other sites

39 minutes ago, pmc2 said:

I did a blank installation, without adding anything else. The menu gives me this:

https://ibb.co/rwftnG4

 impossible to select anything. 

so ?? ^^

I remember seeing something like that while testing stuff with fonts and the normal truetype font could not be loaded.
Normally it should be able to use a raster font when it happens, but it was broken, and I didn't try to fix it since everybody is supposed to have this tt font...

But with a "blank" installation, it shouldn't happen.

Try to run from a command line, redirecting output to a file :

raine > log

and look into the log to see if there is something interesting...
Anything special, it's some usual windows ?

EDIT : yeah I confirm I can reproduce the 2nd picture by renaming the Vera.ttf file to Vera.ttf0, but no idea where the 1st on 2 columns comes from... !

Edited by Tux
Link to comment
Share on other sites

 RAINE (680x0 Arcade Emulation) 0.92 (c)1998-2021(!) Raine Team

CPU: 
load_emulator joys
no index found, 0 assigned
controller 0 opened (iBuffalo SNES Controller) index 0
can't get any index, using 1
no index found, 1 assigned
controller 1 opened (vJoy Device) index 1
This seems to be the first time you have run Raine 0.92.
Please read the docs before running... also read raine.cfg.
If you have any problems, please visit
http://raine.1emulation.com/

Game controller device 0 added.
Already have controller 0

64bits.


 

got base 114a000 length 53248
got base 1137000 length 77824
got base 1132000 length 4096
got base 10cf000 length 389120
got base 10c9000 length 24576
got base 1134000 length 12288
 RAINE (680x0 Arcade Emulation) 0.92 (c)1998-2021(!) Raine Team

CPU: Intel(R) Core(TM) i3-4160 CPU @ 3.60GHz
load_emulator joys
no index found, 0 assigned
controller 0 opened (iBuffalo SNES Controller) index 0
can't get any index, using 1
no index found, 1 assigned
controller 1 opened (vJoy Device) index 1
This seems to be the first time you have run Raine32 0.92.
Please read the docs before running... also read raine.cfg.
If you have any problems, please visit
http://raine.1emulation.com/

Game controller device 0 added.
Already have controller 0

32 bits

Link to comment
Share on other sites

Well nothing interesting in your logs, but it's not the usual kind of problem neither.
It's probably something very stupid. I can confirm that on my side if I rename the font to something else it prints it can't find it in stdout and uses the raster font instead, it's not the case for you apparently.
And you have the same problem in 32 & 64 bits !
No idea, I would need someone who knows how to use a debugger for that, or at least a way to reproduce this without renaming the font to something else, without that I can't do miracles, I'd say just forget it, you just won't be able to use it that's all !

Yeah I just tested the 64 bits version in a blank new directory by downloading dlls64-0.92, then raine64, extracting all this in the same directory -> no problem. I can't do anything more here.

Edited by Tux
Link to comment
Share on other sites

9 hours ago, Tux said:

You can also lower the transparency for the background color, or increase the min font size (I should increase the default value here).

I have an idea of another presentation for the game selection dialog, but I didn't want to do it now, I wanted a 1st release as fast as possible, and it was long enough...

Where is this option? I couldn't find it to test it. But I'd still prefer a background without this graphical effect just like in the previous versions...

 

9 hours ago, Tux said:

How did you learn to identify "bi-linear filtering" ? And where do you see it exactly, behind the main menu or after that using play ?

I don't know if it's really bi-linear, but that's the most common filtering effect for emulators. It applies a smoothing effect to the picture. Take a look:

https://imgur.com/a/rycFR0N

The smoothing effect shows as soon as the game is loaded, even before hitting "Play game". And it also happens if you change one CPS2 game for another too, not just from different drivers/systems.

9 hours ago, Tux said:

I think it's more probably a timing issue, there is no way an emulator would change how the inputs are from the left side or the right side...

Yeah, the problem is that I can perfectly and repeatedly perform it on the left side (P1 side) of the screen and can perfectly perform it on both sides of the screen in FBNeo.

But I've noticed something interesting: I loaded Street Fighter 2 and selected Guile to perform his Sonic Boom move and everything worked correctly. Then I changed to Marvel Super Heroes in the same Raine session and I could perfectly perform the same command with Shuma-Gorath too! Now if I load MSH in a new Raine session I can't perform the move in the P2 side of the screen. Pretty weird! Anyway, I wish other Raine user could test it to confirm that I'm not crazy... 😞

 

10 hours ago, Tux said:

The current mapping is fine for 3 buttons configs or less. I am open for suggestions here...

What do you think of the FBNeo bindings?

https://imgur.com/a/UFpbssk

 

10 hours ago, Tux said:

?! What's wrong with that ? I mean if you don't want to use the dpad, just don't use it. Did you use for something else ?
As it is now you can't remap it anyway. I'll need more details on that one.

I'm sorry, I think I made a mistake. I was judging by the behavior we had in the SDL1.2 version, which mapped the Up, Down, Left and Right directions to the game-pad's analog stick, which is not convenient for fighting games. Now in SDL2 the directions are mapped both to the analog stick and d-pad.

By the way, I guess there's an error with the mappings for an X input /X360-like controller. The middle kick and coin controls are mapped for the same "Back" button (Select in the PS2-style controller), which is not functional for 6-button fighting games such as Street Fighter. The same goes for the strong kick, which is currently mapped to the Guide / PS button.

 

10 hours ago, Tux said:

I don't see if you noticed, but the window handling changed a little too, it should keep the size and position of the window better, even quiting the emulator in fullscreen, in sdl-1.2 you had to use a hack for the window postion and it was done only for windows, now there is a real function for that and it's done for everyone...

I haven't noticed that yet. One thing that I noticed though is a glitch that happens if you visit Video options or Console once a game is loaded. The GUI gets out of bounds and has a smoothing/bi-linear effect applied to it. Take a look:

https://imgur.com/a/Gr24j02

 

I guess that completes this long post. Thank you so much again for your continuing support and development of this emulator. 🙂👍

Link to comment
Share on other sites

@mer-curious

"The emulator still tries to automatically assign the controls to your game pads, but the assignment is not ideal for many arcade games, especially fighting games, which work better with the d-pad and not the analog stick. Isn't it better to turn this feature off and let the user decide the best mappings for every game or driver?"
In fighting games is good having both d-pad and analog ... charge move use analog and other move use d-pad.

@Tux
The screenshot
https://ibb.co/rwftnG4
I had posted about a random issue that autofire config not is loaded and happen graphics errors in the menu to config similar how the screeshot above.
I will use 64 bits version to see if the issue happen again.

Tested in Lubuntu 20.04.3 using WINE.
THANKS !!!!!!!!
Raine is fast to startup and load any game.
Not more issues when accessing the menu options in gameplay.
I not understand if was because the new OpenGL option.
Using OpenGL is much more fast and video output have better quality than Raine previous version.

I had tested 2 times with a PS3 controller and both d-pad and analog had worked. In third time in same game the analog pad was correct, but the d-pad had changed the positions. left not move, down-up-right was inverted.
I not had changed buttons or d-pad ... need use other time because WINE have issues.

You want to return the background Bubble Bobble background in Raine ?
Selecting background images to choice in Raine background that you like have a good look. Is good see any images from Taito remembering the Raine first versions 😃

Link to comment
Share on other sites

14 minutes ago, mer-curious said:

Where is this option? I couldn't find it to test it. But I'd still prefer a background without this graphical effect just like in the previous versions...

In options ! Very hard to find ! "Min font size" and colors, then bg color. The game selection dialog has always had a transparent bg !

14 minutes ago, mer-curious said:

 

I don't know if it's really bi-linear, but that's the most common filtering effect for emulators. It applies a smoothing effect to the picture. Take a look:

https://imgur.com/a/rycFR0N

The smoothing effect shows as soon as the game is loaded, even before hitting "Play game". And it also happens if you change one CPS2 game for another too, not just from different drivers/systems.

You sure it's not some kind of shader ? There is nothing relating to filtering in the cps2 driver anyway, sure about that, the drivers are totally separated from the core in raine, that's why I could change the lib it relies on twice already... The only filtering options are in video options / renderer options filtering is the last option of the dialog, linear creates this smoothing a little fuzzy effect, and nearest makes the pixels more visible.

By the way I tested this "anisotropic" filtering, a failure, it doesn't seem to change anything for the 2d rendering I am using.

What would be interesting to try eventually is an integer scaling multiplier. Previously it was used only in the normal blits, but since there are no more normal blits, it could be interesting to try to render the same way. I'll try to add something like that, at least to see how it turns out...

So what you say is that your filtering is on nearest usually, and it changes to linear when you load a cps2 game ?!!! It would mean a rather massive buffer overflow somewhere, unlikely at this point, but... I am quite frustrated for now, I can't use the lib I usually use to detect these buffer overflows, totally incompatible with opengl, I'll have to make some tests with eventually the old version with sdl-1.2...

14 minutes ago, mer-curious said:

Yeah, the problem is that I can perfectly and repeatedly perform it on the left side (P1 side) of the screen and can perfectly perform it on both sides of the screen in FBNeo.

But I've noticed something interesting: I loaded Street Fighter 2 and selected Guile to perform his Sonic Boom move and everything worked correctly. Then I changed to Marvel Super Heroes in the same Raine session and I could perfectly perform the same command with Shuma-Gorath too! Now if I load MSH in a new Raine session I can't perform the move in the P2 side of the screen. Pretty weird! Anyway, I wish other Raine user could test it to confirm that I'm not crazy... 😞

You are crazy ! ;-)

Or there is some kind of buffer overflow somewhere... but don't hope too much about that, it's rather unlikely, but I'll try to check anyway...

14 minutes ago, mer-curious said:

What do you think of the FBNeo bindings?

https://imgur.com/a/UFpbssk

Yeah the standard mapping asd which is used by almost any game to move in 3d these days, and 3 keys below that for the other 3 buttons. Not a bad idea, it's better than the vbn which was in the middle of the keyboard, and you can use the 3 buttons config as well as the 6 one. Ok, will give it a try... !

14 minutes ago, mer-curious said:

 

I'm sorry, I think I made a mistake. I was judging by the behavior we had in the SDL1.2 version, which mapped the Up, Down, Left and Right directions to the game-pad's analog stick, which is not convenient for fighting games. Now in SDL2 the directions are mapped both to the analog stick and d-pad.

By the way, I guess there's an error with the mappings for an X input /X360-like controller. The middle kick and coin controls are mapped for the same "Back" button (Select in the PS2-style controller), which is not functional for 6-button fighting games such as Street Fighter. The same goes for the strong kick, which is currently mapped to the Guide / PS button.

As for the keyboard, I didn't map buttons 4, 5, 6, I decided if someone needed them he would customize them ! But ok, I'll try to make something saner, but 6 buttons configurations are not ideal with these pads, I guess you are forced to use the left and right "shoulder" buttons for the 2 last buttons then...

14 minutes ago, mer-curious said:

 

I haven't noticed that yet. One thing that I noticed though is a glitch that happens if you visit Video options or Console once a game is loaded. The GUI gets out of bounds and has a smoothing/bi-linear effect applied to it. Take a look:

https://imgur.com/a/Gr24j02

I guess that completes this long post. Thank you so much again for your continuing support and development of this emulator. 🙂👍

Yeah I know this one, but I couldn't reproduce it enough to fix it for good, it's on my wanted list... !

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...