0.93.4 / 02-03-2022
Raine is mainly a M68000 and M68020 arcade game emulator focusing on Taito and Jaleco games hardware. It started as an experiment and is now capable of emulating some games which MAME can't emulate and more continue to be added quite frequently.
Most Recent Changes
This binary is only about the sound associations, particularly those related to kof2001, so if you are not interested in this, you can skip this one because it changes the colors encoding so if you load it with a previous config file you'll need to use the "revert to" command from the colors menu in options. It also includes a new dll for libmpg123, which is included in the archive for this version, it will go to the dlls package soon for the next versions.
Yeah, annoyed by a nasty thread bug in 0.93.2 for those who installed without a previous config file, so here is a fix.
Not a few changes except that, 0.93.2 was only 2 days ago, but :
- curl should now know how to download a parent set when needed (not totally sure it will work all the time, but it should).
- A fix for the sound dialog which got some strange strings inside when you tried to change the driver
- And all the rest are memory leak fixes, most of them harmless, but the file selector leaked quite a lot of memory and I hadn't noticed, since it's not used very much it was not a very big deal, but still it's better like that. these fixes are thanks to https://sourceforge.net/projects/memwatch/
Notice that this annoying bug could be worked around by simply quitting raine once using the quit command so that it writes its config file, so it was not so disastrous, but here is the fix anyway... !
Yes, 0.93 was for gauntlet in case you didn't know, and finally the 32 bits and the 64 bits version work, actually the 32 bits version even has the attract mode sounds working, which even mame has not, but this game is crazily programmed anyway, and there's no reason to be proud of that. I am not 100% sure everything works because I only tested in single player, but afaik gauntlet 1 & 2 are both working, the code is slightly different from what there was in this famous mge since I use the old excellent slapstick emulation from mame, and I am still not 100% sure it will work everywhere, but it should be good normally.
Except that a few interesting changes :
- finally fixed the annoying black zone which appeared when jumping in some super street fighter 2 games in cps2 drivers. The reason was again the cps2 rasters, it allowed me to fix a few bugs in the previous emulation. I didn't retest the other places using rasters, I'll just hope for the best !
- Also since most of these cps2 games used finally a 4:3 screen despite their 16:9 resolution, there is now the option to display them in 4:3, see the new "fix aspect ratio to 4:3" option in renderer options for opengl, it has now a new option "always" to force any game to 4:3. This is discussed in detail in the 0.93.1 thread here.
- A fix when loading some games in the same session, like multi pang after super pang, it was because of something badly done when adding the new sound chips recently, it probably affected quite a few games, not these 2 only.
- Some cheats had some serious syntax error, finding a variable which didn't exist and displaying the error message in a loop. The conversion was updated, and the cheats fixed (at least those I could detect).
- For those using the "controller mapping", I had forgotten the case when more than 1 controller is using these special mappings, it's fixed.
- And fixed a weird bug when trying to run the windows version of raine in wine.
- gauntlet finally works with starscream (you'll get 4 welcome when you start the game, but after that everything seems fine). Gauntlet 2 doesn't work though (with starscream), still some problems with the slapstick there... (it means it works in the 32 bits version !).
- fix for timers badly saved in savegames made with the optimized builds ! This one was quite a surprise, and it's suprising nobody noticed before that, but anyway. You got a strange warning about a bad id in the savegame with previous version, for all the games which used timers, and there are quite a few. (I didn't notice because it happens only on optimized builds, and I use a debug build most of the time !).
- Finally merged the controllermap program from sdl2 inside raine ! It's because of the findings from mer-curious. Anyway most people shouldn't need this, it's in case where your game controller doesn't behave normally at all, as a last resort. You can try it by curiosity if you want... ! The command is in the inputs menu, "Controller mapping", and it saves its settings in config/userdb.txt. By the way I could only test this with a controller which was already recognized as a game controller, for those who have a beast which isn't even recognized as such, you might have to quit raine and restart it after using this so that it reads the new gamecontroller configuration. I can't test all the possibilities here... !
Ok, particular version since it adds 3 gauntlets games (the main one, the spanish version which doesn't speak spanish so it's not really interesting, and the 2) which work perfectly with the C cpu cores (64 bits version), but not well at all with the asm cpu cores (32 bits). I might return to that with new ideas later, but since the changes are already becoming quite big, it was probably a good time to release this. These games are really a playground for hackers with all the crazy stuff inside, I might play more later then... ! About the games themselves, these are really multiplayer games, you can test this in solo, but you won't get far. By the way, big thanks to the advancmame team which maintained an old version of mame which can still be compiled nowdays, I used this for testing stuff while trying to understand how things worked, very convenient... Again the new games can be played only in 64 bits, they can be launched in 32 bits, but don't complain if there are problems ! They were some big beasts finally, adding 2 new sound chips + the slapstic support. Ah also despite the original hardware having a 68010, I found they work very well with a 68000 only, so I left the 68000, it's easier.
You'll notice the binaries are 1 Mb bigger than usual, that's because they contain an update to sdl2 (I'll update the dlls package later), the updated history.dat file (which won't be in all releases but this time it was updated with the new games info). There are also some new cheats for the new games but these are small.
Except that, a lot of fixes as usual, this version is smarter with internet archive so it's able to get its files from more directories so it's already able to get the gauntlet roms and the updated toaplan2 ones. It also removes the ssl verification which gave me an error when I tested this in windows (I wonder if it ever worked in windows, I don't think I tested this in windows ?). Other fixes for the ksystem games which were still trying 8bpp functions (kikikai, knightb and kicknrun, very old games too), for toaplan2 (there was a high probability of crash if loading more than 1 toaplan2 game in the same session), the gui (mouse wheel support was not perfect), the console (basic support for the 6502 which also allows to use cheats for games using only some 6502, never noticed they didn't work before, too many things to test, really... ! And some fix for the 68000 breakpoints too).
That's all ? Yeah I think... Ah I had a problem when testing the windows binaries in wine, but they work well in my native windows 10, so I released them anyway, I'll make some more tests with wine later. And the linux binaries will be updated soon too...
edit1: for the linux binaries there was an update to muparser in arch just now, my 64 bits version is now 2.3.3 while the 32 bits version is still 2.3.2 ! So well the 32 bits version can't be compiled for now, I'll fix that tomorrow.
edit2 : finally I updated my 32 bits libmuparser manually so that I can compile this. The pkgbuild and the archive are posted, but you won't be able to compile this on your side without muparser-2.3.3 in 32 bits ! You can use the archive though (.tar.xz), should be binary compatible with 2.3.2.
Anyway it's just a quick fix of 0.92.5 problems : crash if opening the sound options dialog, leaving it, and opening it again (!)
Bad playing frequency of external audio tracks (except the raw format ones !)
And there was a bad entry added to the hiscore.dat hosted here, it's probably me who added it, but a very long time ago, it was for viewpoint, and the syntax was a mix between the old format and the new one, and the hiscore parser didn't like it (what a surprise !). Since this file was here for more than 1 year, I fixed the parser to accept this syntax too, even if it's the only entry of this kind in the hiscore.dat !
And I added the hiscore.dat to all the binary packages, linux & windows (going from 2.5 Mb to 2.6 Mb, what a deal... !).
Except that a few more fixes, the more outstanding one at least for me was a bug in the hiscores which could wrongly reset its status for some game, I found out on some very old one, "ms pacman attacks", which is available from "multipac 1.5", it lost its hiscores a few seconds only into the game ! It probably affected some other games too.
Lots of small fixes for emudx games, it's been a long time since I didn't touch this, by the way the initialization of emudx games crashed in 0.92.4, so if you want to test that you need this version !
Also a lot of sound chips now correctly save their state in the savegames, games like batrider now restore correctly their sound finally (yeah it should have been done long ago... oh well !).
Finally more time to finish this one... I even thought about adding something new to emulate for a while, but too many things to do for that for now, maybe later... So the main fixes are around the game controllers, and the dead zone of some which canceled the moves from the d-pad. Also there are about 100+ new recognized game controllers for linux, and 400+ for windows ! (more people would use windows ? What a surprise !). All these new controllers mappings come from there : http://raine.1emulation.com/download/latest.html
The other big part is the improvement for cps2 rasters, and the priorities in xmvsf, notice the priorities are still not perfectly emulated, there are probably places left in some cps2 games where there are problems.
Except that most of the emulated games are now rendered in 16bpp because most of the emulated games have color palettes of 16bpp or less. 2 exceptions : the taito f3 games, and macross +, for these 2 it's still 32bpp, for all the others it's 16bpp. The reason ? Smaller bitmaps, so it's faster to draw and faster to render to screen.
And there were problems with some taito f3 games, especially in 64 bits, but even in 32 bits there was a black screen for puchcar on boot because of a recent fix. All this should be fixed now... It's almost a Christmas version this time !
Yeah I think I can call it like that, that's him who reported all the bugs to fix, with great descriptions to be sure to be understood, he was perfect on this one, even if I was a little disappointed to see 0.92.2 disappear so fast ! Anyway here are the fixes this time :
- the sound associations were deleted if you loaded any game which had some. This reason alone was enough to make a new binary to avoid that people delete all their associations !
- yet another gui problem where the loading dialog was zoomed too much. Fixed, and the default is now to use opengl for rendering, which makes much more sense since it has more options and is much more tested.
- cps2 rasters are better, see the details in the 0.92.2 thread if you want to know how.
- and the joysticks configuration changes again, which obliged me to reset again the keys configuration since they are saved with the keys. Sorry, it should be the last time I do that. This fixes a conflict between the hat of a gamepad and a stick direction if the gamepad was not recognized as an sdl2 game controller. This one was hard to precisely pinpoint, but anyway it's fixed too.
It's still mainly about fixing the sdl2 issues, the only emulation change is the addition of some rasters emulation for cps2, finally, but I didn't test that a lot (actually only on the lava level in attract mode for msh !), so don't expect miracles. It's easier to emulate than the neogeo rasters though, so it's fast. Except that :
- mouse wheel fixed again
- the gui handles some strings too long to be displayed properly (they are cut now, but the default is still a small 640x480 window for raine, so just change that to fullscreen or anything bigger before complaining !)
- fix broken screenshots in opengl
- some experimental game controllers mappings for mer-curious, we'll see how it goes...
- the option to use the dpad for movement only or to be able to remap it when the dpad is recognized (game controllers)
- and some little details (more default inputs for the joysticks, the hats are handled again natively for unknown game controllers...).
t's mainly something to fix the little problems of 0.92... The dlls change again to address the incompatibility with xp of the previous set in 32 bits (there seems to be other problems with xp related to the 3d, but at least it's not a stupid message from microsoft to tell you are not allowed to run this in xp anymore !), and it's changed too for the 64 bits version because it allows me to make both versions the same way, + it's almost half the size of the previous archive. The only dlls packages listed in the download page are the ones required for the latest version, so just update and it should be ok.
Except that, mostly fixes for 0.92 as I said. The key codes change again, we switch to all scancodes to be able to have default keys which don't change with each international mapping, but you have nothing to do here, it will overwrite all the keyboard configuration if it reads an config file from the previous versions. The joysticks use some saner defaults too but for them I didn't overwrite the config sections in case you have something fixed on your side which is different from the default. The famous bug found by mer-curious which prevented special moves from the right side in msh is fixed, and there was again a problem with merged inputs which should be fixed for good this time. Also you have the option of integer scaling in opengl. I tested it, and I am not convinced, there's no real improvement in the scaled image for me, but I left the option, you can test it and report in the forum. (The option is in "renderer options" for opengl).
Also sdl is updated to 2.0.18, actually they mostly add new functions, it's very different from sdl-1.2 which was frozen in time, for now I don't use them, but updated anyway...
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.
The biggest one is about the 32 bits asm functions which suddenly started to crash in windows. I didn't know because I test in linux and wine doesn't care about the memory regions protections ! What probably happened is that this new protection came with the update of gcc, like what happened in linux. The difference is there is no /proc in windows, making things more messy. If someone knows how to get the base address of the region containing a given function, tell me ! For now I just used some rough approximation... Anyway normally all this asm code works again, assuming I didn't miss anything.
The other big one is that I broke the init of all the neocd games in 0.91.20, sorry, it was easy to fix, but it made a lot of games unloadable !
And the last one is the return of the opengl blits : to fix the asm code I needed to test this in the real windows, and the gui is becoming almost unusable without this feature. So it's back, but this time it's optional, you can disable it in video options / Renderer options / Opengl blits. Like last time, it breaks emudx games and neogeo games using rasters, so it's not an ideal solution, but it's better than nothing, especially if you want fullscreen ! The real fix to that would be sdl2... ! They are enabled by default in windows, and it's saved in the configuration of course.
And I also added some test before saving the neogeo backup ram because mine was probably saved at a bad time and it corrupted it. You'll see a warning if it detects it can't save the backup ram. Afaik, it happens only from the test mode.
This is to address the bugs found by Augusto (some of them at least) :
- fix burning fight and "fatal fury 3" in 64 bits
- fix the inputs for irrmaze and popbounc : this is very specific to these games since they are the only neogeo games which can use a paddle. Originally there was a specific bios for these games, but in asian only and it's now unavailable. Unibios has a workaround built inside apparently, and so you'll need a version of unibios to run these games with the mouse (it might be possible to use popbounc with the joystick). For popbounc, you choose which input to use with the soft dips, you can change this in real time in the raine dialog for that, in "neo-cd/neo-geo options" once the game is loaded. Tested only with unibios 3.2 and 4.0, works with both, mouse is not recognized with the standard european mvs vers 2 bios. Hum, don't try to move the mouse while the game is initializing... !
- added some basic setting to slow down the modern mice ! You can configure that in the inputs dialog, the setting is saved when you quit raine (with the quit command as usual, closing the program by any other mean doesn't save the config). It can only be slowed down, modern mouses are already too fast for the low resolution of these games. This setting should be used by all the games using the mouse of course...
- a few misc fixes, like the break console command which didn't work anymore with starscream
- recent versions of curl forbid spaces in the urls so I had to work around that, this fix is useful only for linux, I didn't update curl for the windows version.
Sorry guys, I'm out of motivation to finish the sdl2 port, I have committed my changes so far to git but it's not finished. But as it is, the sdl-1.2 version can still be built without problem, and with the problems reported about the bad blits because of the opengl gui, it's a good time to release something. So the changes are:
new Brazilian Portuguese locale
curl now gets the rom from the full internet archive for raine instead of trying to guess where it can find it. As I said it's quite slow, but as a remainder, when Antiriad was working on the f3 emulation, it took him a whole night to retrieve one of these roms, so it's very fast compared to this !
And reverted the opengl gui, meaning you get the fullscreen bugs back for the windows version, but it also fixes the emudx games + neo turf masters (you'll probably have to disable the speed hacks in neocd options for neo turf masters). For those who prefer the opengl gui and don't care about these fixes, just stay with 0.91.18 !
Hey, it would make a very nice final version for raine I think. Lots of locale, can even get its roms from the internet, nice way to finish it.
If ever I find some new motivation I might finish this sdl2 port one day, but nothing is less sure for now...
I might have released 0.91.16 & 0.91.17 too fast, but this one finally holds its promise : all the cps2 games supported (at least those using qsound, gigaman2 being a bootleg without any z80 rom it's out of the list, I even added it to non working games !).
Except that I finally added some breakpoints in the console for the z80 which helped me a lot to finish this. And updated the help for the regs and break commands, still in the console.
Sorry for all the bad binaries lately, it should be finished this time !
Timely fix for the previous version !
The cps2 music detection was crap in the previous version, here is the fixed version !
This one is based on reading the code in the z80 rom and using directly a table which describes the sounds to play, so it's very reliable to detect if something is a music, but it doesn't work for all the roms, it works for the majority though. For those which don't work (mainly the oldest ones including cps1 qsound and the newest ones !) the sound commands dialog is simply disabled. Anyway it's good enough for me for now... sorry for the double release !
Just for the sound associations
Everything is in the title, it's a binary only for those playing with sound associations to play with customized musics, look in the forum for details. This version fixes the sound commands for matrimelee and adds support for cps2 games... yeah all of them, even the cps1 games using qsound. It's still quite experimental for the cps2, but it seems functional enough for a release...
It's almost only fixes, but there are quite a few:
unlikely incompatibility between mslug2 & pbobblen, this fixes both this time.
there were some problems in neocd with speed hacks, they are now disabled for the kof games and kabukikl
still on neocd, there was a crash when reading an audio track merged with the main data track, this worked before, but anyway it's fixed.
old capcom savegames prior to some time in march 2020 couldn't be restored anymore, I added a callback to fix things on the fly, it might not work for all the games, I don't have savegames for all of them, but it should work for most of them.
the year is updated automatically now there was a strange "stack smash" on my laptop when opening the console, it happens only on this computer, which has exactly the same software setup as my main computer, so it's probably a gcc bug, but for now I disabled their stack protection to work around that, even if it's required only for 1 file related to the console, I disabled it everywhere.
the scripts can now handle more than 100 arguments, required for some cheats about the starting level !
fix pbobble2/2o/2x always on help line cheat
fix pbobble2 alternate world levels cheat
fix cheats comments containing ", and handle multi-line comments for cheats, the bottom line of the screen will "flash" if the comment is too long, just click on it to get the full comment. Example of such a cheat : the last one for strider.
and by the way finally update the default background color to be darker and less transparent, I did it here on my default settings a long time ago but I should have committed it, here it is, handy to be able to read these big comments for the cheats. (if you keep your settings while updating and want to try the default new color, just delete the bg_color line in rainex_sdl.cfg/raine32_sdl.cfg in the config directory).
one is about the speed of games like pang for the 64 bits version (they were too slow !), it's specific to the z80 emulation using the C version only.
and the other is quite original, a graphical glitch in some cps2 games like hyper street fighter 2 and some others which was unnoticed for more than 10 years ! You can see pictures along with the discussion there : https://github.com/zelurker/raine/issues/25#issuecomment-799135733
the main problem this time is in the 64 bits build, all the kabuki games were broken (pang, super pang, block, pengo, and quite a few cps1 games).
Also fixes chasehq and continental circus graphics. chasehq and night striker gain a region switch too.
And a last fix (hopefully !) for the sound associations with kof99, a song which never stopped during the intro.
Cabal (cabalbl) is finally fixed, graphics and sound. The kind of game which seems easy to emulate and which is tricky. This one is quite different in raine, we don't have at all the same way to handle the samples (but thanks for finding the crazy bitswap for the sound command !).
neogeo/neocd saves didn't contain the 68000 bank, it's fixed (problem hard to locate though !).
a last fix for the sound associations, the one included in the test build earlier.
sound associations fixes for kof98/99/garou and aof3, see mer-curious post
big toaplan2 update finally. Changes for the romsets : batridera becomes batriderja (mame name), added batsuguna (which is the old batsugun we had before if I remember correctly) and batsugunsp (which is really a special version and not a stupid clone), bgarreganv which was supposed to be a new version of battle garegga, but good luck to find what's changed inside, also bgareggat2 which is supposed to be "type 2", same comment, and bbakraidja which was the old bbakraid. kgpe becomes kingdmgp, same game but different crc for the rom and official mame name, comes with cheats so it's better. sstriker had been mistakenly removed from the list of drivers so it's back, with a new clone, sstrikerk. Also batrider and bbakraid gain the biggest region switch ever seen in raine with 25 countries inside ! Not 25 languages though of course, it's japenese or english for the language, but it's still impressive ! Also there are some new fixes for batsugun inside to handle the graphical glitches, it should be ok until the end of stage 3 if I remember wel, the big boss here is still too black but it's much better than before anyway !
peekaboo didn't run in 64 bits, specific problem to the emulation there, it's fixed but there are still emulation problems.
added new clone tetristh which is like tetrist but on some different taito hardware (taito h), but it's exactly the same game though, it's more a curiosity.
new cheats for the new clones, kingdmgp, tetristh, batsugunsp, sstriker (it's not a clone but it was gone !).
you couldn't disable the shaders without quiting in this 0.91 version, fixed now (at least in linux, but probably in windows too).
fixes again region switch for lots of games which got broken when changing something else lately. The list of affected games is big, found out for syvalion.
avoid deleting a rom when downloading with curl : if trying to get a clone which doesn't exist on the server but it is on the disk without its parent, then the clone was deleted ! Now it's not at least !
makaiden didn't load its correct gfx rom, so it looked exactly like its parent (very old bug since 2010 !).
And some big source changes to make rom structs more readable and a little smaller, it should have been done long ago, but there is always something else to do... !