0.92 / 30-11-2021
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
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... !