Jump to content


Emulator Author
  • Posts

  • Joined

  • Last visited

  • Days Won


Tux last won the day on November 23

Tux had the most liked content!

1 Follower

About Tux

  • Birthday August 18

Profile Information

  • Gender
  • Location
    Nantes, France

Recent Profile Visitors

3,158 profile views

Tux's Achievements


Contributor (5/14)

  • Dedicated Rare
  • Very Popular Rare
  • Conversation Starter Rare
  • First Post Rare
  • Collaborator Rare

Recent Badges



  1. Tux

    1st contact with sdl2...

    And forgot something again : the new "game controllers" api as they call it. I thought 1st you got it without doing anything just by linking with sdl2, but no, it's a new api on top of the old joystick api... Meaning I need to test this. Well without it, we have exactly the same joystick handling as with sdl-1.2. With it, it handles joysticks which are added or removed during the emulation, and it's easier to convert dpad to joy movements (because they are standardized to the xbox/playstation model, one dpad, 2 sticks, 4 buttons on the right, plus the triggers and left and right buttons. It doesn't look too complex...
  2. Tux

    1st contact with sdl2...

    It's almost over, probably done tonight or tomorrow. It would be nice to test the opengl "anisotropic filtering", some kind of filtering which is supposed to work better, I am not sure it's good for 2d though, that's the kind of thing which is used in 3d games to make things readable in the 3d world. It's worth a try. Now I am starting to get tired, so not sure I'll test it now. And I noticed the display of commands from the command.dat is broken, it's been broken for a few versions actually but nobody noticed. It's probably not very hard to fix, so I'll try to have a look. The most obvious changes are in the gui, clearly, now the game starts as soon as it's loaded behind the main menu (so that you can change options like dipswitches or anything else, but at the same time the game's demo can play). If you start playing and return to the gui, then it's paused, it's a very bad idea not to pause it here, it might be in the middle of a game ! Otherwise if no game is loaded there is now a simple animation running behind the dialogs... A lot of dialogs didn't really need any title, so only needed titles are displayed now, for those that don't need it it makes more room for the background display. Emudx is fixed, it can be improved with the new sdl2 functions, but I'll probably keep this for later, it's enough to know it's working for now.
  3. Tux

    1st contact with sdl2...

    ... and I got a cold. No kidding, got an electric scooter and the wind was just freezing the other morning, I didn't feel my hands anymore on arrival, and got a cold through my nose ! So finishing this might take more time, and even if the biggest part is done, there are still lots of small things to look into. Some small improvement I noticed in sdl2 : vsync support is better in opengl (and likely in sdl2 native too), now it supports adaptive vsync if your driver supports it (you'll see if it's supported in "video info" after having run something in opengl), and more importantly, I could never fix the tearing in windowed mode before (specially visible in a game like batrider, in the intro after inserting a coin, the super big letters crossing the screens from right to left there is nothing worse than that for tearing), well now no visible tearing anymore even in windowed mode, finally ! For adaptive vsync, it's like vsync but if you've already missed the vertical retrace for a given frame, it swaps buffers immediately, which might be less jarring for the user during occasional framerate drops, which should normaly never happen in raine anyway but it can't hurt to have it. The key configs are now saved in sections ending in config_sdl2 instead of just config before in raine.cfg and games.cfg. That's because too many keys are now different, and it's better to go back to the default keys than having most of the keys not recognized and not responding. Also raine has never been easier to compile than now, especially in windows with mingw, I'll probably update the notes on how to compile, but in a nutshell : you get the msys2 installer, it installs 4 shells, but only 2 of them are interesting for raine, either the 32 bits or the 64 bits one, you choose your flavor, then install gcc, g++, and nasm + the basic environment tools. Then all the libs are available as packages, you just need to install git (to get raine sources, although you can get a zip file from github if you prefer), sdl2, sdl2_image, sdl2_ttf, muParser, and that's all. All this can be installed in just 1 command line using their pacman tool. After that cd to the sources directory, type make, or make -j4 if you have at least 4 cores, and after a few seconds you'll have your new binary... ! If you try that on current git sources, the makefile will build a debug build, you have to edit it to build an optimized binary, but it's explained in comments at the beginning of the file and very easy to do.
  4. Tux

    1st contact with sdl2...

    Some unexpected problems in windows, as usual I would say, a solution is in progress but it takes time... I won't have finished before the end of the week ! (for the gory details, for some reason when calling SDL_OpenAudio the callback is never called, and when calling SDL_OpenAudioDevice, SDL_PauseAudio is ignored and I must use SDL_PauseAudioDevice... ! These 2 combined made me search for a long time ! Apparently everything needs to be migrated to the new audio device api in windows, when there's no need like that in linux... ! I'll do more testing later...) after a new session, all this mess was because the default sound driver in windows is something called "wasapi". Clearly it sticks to the device preferred setting and refuses to convert anything, for me that was 48000 Hz, samples in floats of 32 bits ! Simply unthinkable, I would have to rewrite a big part to handle this kind of samples... Forcing the directsound driver goes back to what we had with sdl-1.2, much better. There was also some allergy between direct3d and opengl : start raine in windowed mode with a game like gunbird. Start the game, then go to fullscreen while the game runs using the keyboard shortcut. Call the gui... and bam ! Message CreateTexture(D3DPOOL_DEFAULT): INVALIDCALL and return to desktop... ! There is a solution to that, thanks to people on the net who had the same kind of problem, there is a hint to tell sdl2 to use opengl instead of direct3d for its rendering : problem solved ! Still a few things to look into tomorrow, but it's starting to look good... And I think the new dlls will actually make a bigger archive because the mingw32 libs use all the optional libs, which would be totally useless here, but now they must be present on disk, so there is a ton of useless stuff to add... ! At least it simplifies a lot the installation when programming raine, binary packages are convenient... !
  5. Tux

    1st contact with sdl2...

    Yeah might be a way to do that...
  6. Tux

    1st contact with sdl2...

    Bad day for those who have some complex key configs, most of the key configs have changed, which means you need to update almost everything ! More keys are handled though... The joystick buttons seem to be the same though... Except that most of the work is done, opengl works fine (got a lot of trouble with DrawPixels and the overlay text in opengl which conflict with the sdl2 renderer), as expected the emulation of neogeo rasters is back to normal. Didn't test emudx yet. Still a few obvious fixes to make in the gui, and the console is totally broken, so it's not over, but most of the hard work is probably done now !
  7. Tux

    1st contact with sdl2...

    1st successful link, lot of things broken inside of course... sdl_sound was merged into raine for sdl2, that's what the authors seem to want, and it was impossible to get a 32 bits package out of their build system (+ no package in mingw32/mingw64 !).
  8. I think this time it should work, I have a working test program for the gui (even if it's basic) and I am making good progress for the rest, even if it's awfully long to do... A patch of almost 900 kb so far, and it's not over, still quite a lot to do ! Things to expect : - no more normal blits ! This sdl2 is really different, there is almost no way to have direct access to the screen pixels like before, it's possible but not accelerated, so advised against. I'll keep the code, might be useful later to combine a scaler with something else, but for now they are gone. Those still in love with normal blits after all this time will have to stay with an old version... ! - the yuv overlays are gone too. For them it's because they have become useless : they were 1st done as a 1st approach to scaling to fullscreen in any resolution without opengl. Well today it's very hard to find a computer without opengl, and the picture with yuv overlays is not so good, so for now they are leaving too, but they are still supported in sdl2 if they are needed one day... So the only 2 rendering methods for now are opengl like before, and sdl2 native which uses either opengl or direct3d behind the scene, but is a lot easier to handle than native 3d programming. What's better then ? Well small things mainly, except in windows where the gui had become unusable without opengl blits, at least it will fix this mess for sure. Except that yes the gui can be rotated when rotating the screen, very easily, even if it's not done yet. Detects when a joystick is plugged or unplugged without relaunching, and it should be easier to assign a joystick to some specific inputs (will test that later). SDL_sound doesn't require any external lib anymore which means less dlls in the archive, good thing. Since everyting is 3d now, we have real hardware transparency, so it's easy to have some animation working in the background instead of a static picture like before. This is already done in the gui test program, just for fun ! There might be some better ways to render emudx games too since flip and rotation are supported in hardware now, will have to experiment. One of the biggest reason to upgrade for non windows users is simply the fact that this sdl2 is actively maintained contrary to sdl-1.2... Ah also it might allow to make an android version... well it would be a non asm version of course, but it should work. Also I hope to still be able to build the sdl-1.2 version at the end, just in case it's needed. I did this kind of update once when moving from allegro, but it was not so violent at the time, sdl-1.2 like allegro was using bitmaps to access the screen. It's not the case anymore in sdl2, and it changes a ton of things. For the gui, it can't update just a portion of the screen, so the whole thng needs to be redrawn all the time, it's very fast so it's working well, but it completely changes the way it works internally. Anyway I hope to see the end of it soon, since there should be bad weather in the following days, I hope to finish it then !
  9. I had this autofire button configured for months, so it would be an extremely rare occurence... screenshot useless in this case. It's probably not random, but good luck to find the cause in this case !
  10. Tux

    Raine 0.91.21 !!!

    It doesn't make much sense to play with the windows version in wine, I use it just to quickly check if it works that's all. For info it's not the emu which crashes, it's the x server. You should just not use these opengl blits in fullscreen with this version, they are here for the real windows only.
  11. Just tested with sonicwi2, added 3 autofires because I had already 1 for p1 a, configured their buttons, quit, relaunched, everything is here with the right speed setting for the autofire. Did you use the command quit to quit and not closing the window ?
  12. Nice find, well there's probably something weird here, but I can only confirm I have the same problem, for now I can't really look into it, deep inside sdl2 now... ! All I can say is samsho4 has correct soft dips. Ok, I took the time to look into this : it's probably a bug from samsho3 neocd, I guess they were mainly interesting by the Japanese strings, but not so much by the international ones. The specs say these strings should be 12 characters long, padded with spaces, apparently they used tabs sometimes to separate theirs, and maybe a / too in one of the bottom choices. Anyway, I added something to cope with at least the tab, which makes most of the strings readable, much better like that, now you just have to wait until I get something out of the sdl2 build (for now, just a very basic gui test program, but it's a start at least !).
  13. I suggest you try it to see the effect anyway, quite impressive. Try with dimahoo, which looks really "slim" on a horizontal screen, then rotate the screen and behold ! By the way most of the vertical games are shoot'em up that's right, but not all of them. I just added an option to be able to add -rol and -ror on the command line when using -gl to display games rotating on the left and on the right, which gives as non shoot'em up vertical games : - pacman, all its clones, including miss pac man & cie. - arkanoid 1, 2, & returns. About returns it's been broken for quite a few versions, I just noticed it yesterday while checking for this windows asm compatibility. It's fixed. - block block, which I never played - bomb jack twin - Don Doko Don (platform) - Donkey Kong (better with emudx graphics, which are broken with opengl blits in windows, too bad !) - Drift Out - Exciting hour / matmania which is one of the rare games I played a lot with my cousin in the arcades, back in the day, a wrestling game... ! - fantasia (!) - frogger (same comment, better with emudx graphics) - gal's panic - Grand Cross Pinball - Kiki Kai Kai / knight boy - Liquid Kids - Maze of Flott - Mercs (although it's a commando like game, so shoot'em up but not in space !) - Pengo - us classic golf (not as good as the neogeo version) But yes, the vast majority are shoo'em ups, some very good ones being vertical indeed ! And while testing yesterday, I finally understood why there was no progression in the dialog when loading a rom from internet archive : it's because of their server which doesn't send the size of the file before the download. So I added a workaround by taking the list of the files in an index file, and getting the sizes from there. It works, the progression works again, useful for such a slow download, at least it proves that it works and it's not frozen !
  14. You meant p3_b1b2 & p4_b1b2 I suppose ? Because you succeed to have 3 or 4 people playing at the same time on the same computer ? Lucky you ! I found out lately my flat screen can be easily rotated on its side for vertical games, then just update the rotation setting in video option to have rotation = 90, and suddenly the vertical games look a lot more impressive ! Less people, but still impressive ! (ideally we should also rotate the gui in this case, but it was hard to do with sdl-1.2, maybe easier with sdl2, we'll see...). For your special move working on the left but not on the right, don't hold your breath, it's ultra low priority for now, I'll have another look at sdl2, hoping that I am not pissed again at what I find... !
  • Create New...