Jump to content

Tux

Ultra Members
  • Posts

    1,229
  • Joined

  • Last visited

  • Days Won

    266

Everything posted by Tux

  1. - An amazing bug was fixed which made it impossible to run a game from the command line in windows... and it's been here for very long. Does it mean that nobody use frontends with raine anymore in windows ? - Big acceleration in the console for mouse tracking (which displays some underlying text in reverse video), and scrolling speed once the window has reached its maximum size (actually you don't even see it scrolling anymore, but the result seems good). Also added some colors and sorted the commands for the help command. - Improvements for the sound associations for real bout fatal fury and samurai shodown, hoping it didn't break any other game... !!! Get it from there : http://raine.1emulation.com/download/latest.html edit : I forgot to commit the sound association fixes to git, so they were not included in the linux binaries. I just rebuilt them because of that, 0.94.4a, linux only, windows had them.
  2. Ok it becomes problematic, rbff1 seems to be a "type 2 extended", it recognizes more sounds and so they added a new prefix for it, 1d, which is not recognized by the others. Well lately I added 1c, which is not recognized by at least 3countb, so I hope it won't break anything, it shouldn't normally. For samsho, it's a weirdness on which values the sound prefix commands can take, there was a comment to say only commands >= 0x20 can be taken here, well clearly here its >= 0x11. So well I put >= 0x11 for all the type 2, and hope for the best... !!! Too bad the comment didn't say for which games I observed >= 0x20... ! I'll make a new version for at least the bug of yesterday related to the command line in windows...
  3. Yeah I guessed it was older than that after posting, it would be here since opengl became the default display method then, which would make it a very, very old bug ! Well since most people in windows probably don't even know there is a command line, the only ones who could use that would be the ones using frontends to run raine. It's quite surprising none tried and failed to use one then... !
  4. ... and fixed ! It's a bug which is here since the 1st sdl2 version, which means that nobody ever tried to run a game from the command line in windows with the sdl2 version, or didn't report the problem, it's because windows requires a special glsl initialization, which was skipped if using the command line this way. Sorry !
  5. what error do you get ? No error, don't bother, you just found a windows specific bug, it works perfectly in linux though !
  6. hum then in this case I don't have any limitation on my attachment sizes then, this raine picture up there is 225 Kb alone ! If they provide a bblink, the link inside is the link to the picture !
  7. The bbcode function doesn't seem to work, I wonder if bbcode hasn't been disabled here, but except that embedding pictures here works very well. This one above is done by dragging a local file from here to the attachment zone on the bottom left zone. Once it's inserted into the document, you can drag and drop it to the exact point you want it in the text. And for the 3 old pictures in the console search posts, these are external pictures, so it's the "other medias" in the bottom right corner, insert image from url, it requires the url to be https, but it's not too important since everything is https these days. Same thing for this one, the picture is inserted where the cursor is when using the function, and you can drag and drop it later to adjust placement if you want, all in all it works rather well ! But yeah, this forum was nice, but on the other hand maintaining it took me quite some time, so it was nice to say bye bye to all the maintenance part here, even though we lost a few small things... ! (I have some bad memories with the spammers, and also our theme which had become incompatible after an update of the forum, forcing us to switch to an horrible white theme for a while, until I finally took the time to fix everything in the theme to make it compatible again. The irony here is that this good old theme worked out of the box, but the upgrade did not, it failed miserably while trying to update the database, so it would probably be a nightmare to maintain again... !).
  8. After a long fight of a few hours, I was finally able to make my very old backup (from 2015 already !), to work, with php8 and mariadb. The least I can say is that it was not easy ! And it was worth a picture. Don't look for it, it's a local webserver on my machine, no connection to the outside, I was just curious to check a few old posts... but it's right that it was a nice forum !
  9. I had the funny idea to try to restore an old backup from rainemu to look at old posts... It's now in a horrible state, mysql was bought by oracle which made most distribution move to mariadb instead, php is mostly incompatible with itself and it's impossible to load the old site unless you want to spend hours fixing all the bugs... ! And the sql dump is probably unusable because the table names still use "yabbse" when it was changed to "smf" quite a long time ago already... ! Finally I just took a text editor to search directly in the ascii dump of the database, and here it is : --- start --- How to find the location of the weapon for metal slug in ram ? Welcome to the relative searches we started to talk about in the other topic... So just start the game as usual, and open the console just before picking the machine gun, and close it immediately. In doing so it takes a snapshot of the ram, and you'll be able to look for differences later. Now take the machine gun and type: search != which will search all the bytes which are different. Well there a few hundreds of differences, so it will take time. The idea is to wait a little in game, then return to the console and type search == to look for the areas which didn't change. Half of the results are gone, but you still have a lot of them. Play a little until the flame thrower and just before picking it up, type : search == and after picking it up : search != normally when you pick the machine gun again and you type search !=, you'll get only 2 results which are both valid : After a few tests, the 2nd address is the one you want, putting 4 in it gives the machine gun and 2 is the flame thrower (I didn't test all the weapons !). This is a lot harder than the simple life counter... !!! But it works well. Todo : mouse support in the console (too tiresome to type all these addresses), history for the console to access the previous commands, and the scripts I talked about in the other topic to be able to save what we find. Now with the old cheat system, you would have to add 1 cheat/weapon, which is not very convinient. Here you can add a single cheat using the alert function. First here are the weapons you can get : - 00 : Normal Gun - 01 : Shotgun - 02 : Flamer - 03 : Rocket Launcher - 04 : Machine Gun the alert function works like this : alert("message|button1|button2...") and returns the number of the button you selected starting at 1, or 0 if you pressed ESC or used the 2nd button of your mouse. So you can type : poke $1004d1 alert("select weapon (ESC for normal gun)|Shotgun|Flamer|Rocket launcher|Machine gun") dpoke $1004e2 999 The 2nd line gives 999 munitions at the same time, it's more convenient. Once you have tested, you can add it to your scripts using the script command, and it will appear in the cheats dialog (which you can now call directly using a key from the game). --- end --- Luckily it's probably the only post really worth retrieving, and I even found the image. Notice that now mouse support is ok in the console, and by default it's less transparent than that for readability reasons. And the topic which started this one, which was probably the 1st one on the console, posted in march 2008 apparently, "console basics" : --- start --- I know a command line is quite intimidating, but it will be much more powerful for what I want, and also it will be much easier to add new features this way. So here in mslug, I wanted to look for the number of lifes, so I started by search 3 just at the beginning of the game and there were more than 39000 results. So I lost a life, typed 'search 2' and I was down to 4 results already ! Lost another life, and this time 'search 1' sent back only 1 result : 100397. This is the very first beta for this, I want to add other functions like the ability to modify any address in ram (to test the result by putting any life number for example), to be able to explore the ram at any address to see if there are other interesting addresses nearby, and so on... As you see the syntax for the command line is extremely simple, and should remain as simple as possible... And this thing could probably be used as a debuger too (68000/z80 debuger). --- end --- This one was extracted using a script, way faster ! Well all this has been done since then, you see a few commands in the 1st post like poke and alert. There are also debug functions like list to see the assembler code, break for breakpoints, and so on... + the integrated help for everything, mandatory here. It's been a long time, but it was fun ! ... and I just found a 3rd pat, now that I have repaired my old backup after some heroic fight and some help from MikeDX who happened to have a backup (I destroyed a big part of mine while trying to upgrade, I would never have thought it would be so hard !!!). Anyway here is the 3rd part, this time on invulnerability : --- start --- This one is possible mainly because of the explanations from Stephh about how it works. You probably noticed by now that almost every arcade game makes your character to blink when it first appears, and while it blinks it is invulnerable... This is the secret of invulnerability : while it works, there is a counter in ram which goes down to 0, and once it reaches 0 you are vulnerable again, so the idea is to use a script which will be called for each frame to prevent the counter from reaching 0. It's a lilttle tricky in mslug because of the little animation when the player 1st appears in the level. For the 1st level, it starts to blink while it is still in the air, then stops blinking for a short time (it is vulnerable at this point), and then starts blinking again when reaching the floor. In fact the counter is set to a high value 3 times during this animation if I am not mistaken ! It's easier to loose a life and then start the search for the 2nd life because the counter is initialised only once then... So : as soon as you see the player is starting to appear, go in pause mode (p key). Then call the console to take a first snapshot of the ram (using its key, default is tilde), and then exit immediately from the console. Press the space bar while still in pause mode, and the game will run exactly 1 frame. Do that until you see the player character has changed its color. It shows the invulnerability counter just changed. You can then type : search < It will give you a lot of results of course, there are a lot of things which change at every frame in mslug. So you can repeat the same process a few times, calling the console every time the character changes on screen and type "search <", until the results shrink. Then once it has stopped to blink, you can type : search 0 because then the counter should be at 0. In the end, you should have only 2 or 3 results if you made enough searches. To test this, just poke a big value inside. Since the value goes down by 1 for every frame, if you put 180 inside you will be invincible for 3s (60 frames/s). You should find quite quickly that $1004a5 works great for that. Notice that you have a different invulnerability when you are in the tank. In this case, $1005e5 is the address you want. --- end ---
      • 1
      • Like
  10. This one is mainly for linux since these leds emulation can't be done in windows, description in the forum there : The other small improvements : - fixed a big bug where games with more than 1 cpu of the same type like darius would break during the intro behind the menu. This one has been there for a long time, so either nobody played with these old games, or they didn't bother to report it ! - Improvement to sound associations for rbff2 - command.dat included is shorter which makes a smaller archive (removed useless stuff). - Also for some unknown reason, command.dat was bundled with the windows version, but not the linux version ! It's now fixed, and it's in git too. I have hesitated quite a lot to add this leds emulation thinking it would not be very useful, but in the end it's fun to see working, and it was quite easy to do, so no regret, it's just too bad it's not used by more games ! http://raine.1emulation.com/download/latest.html
      • 2
      • Like
  11. Tux

    Raine 0.94.1

    Don't worry so much, anyway this code was some paranoid attempt to fix things, but finally it was useless and had absolutely no effect, I just reverted it for more clarity.
  12. Create the sequence ? I guess you mean to ask if each game has a separate handling for sound associations ? Of course no there are similarities, but not always obvious, there is an ascii signature in the sound rom at offset 0x3e, but it gives only a hint, sometimes roms with this same signature have a slightly different behavior. And then there in a table at an offset to find based on the analysis of the rom which tells if a particular command is a song or not. Beside the songs there are basic commands, those which are < 0x21, this is what makes most differences for the neogeo games at least. To find this here, I add some debug message telling me which sound command is processed in real time, so I got the sequence 3 4 7 (which is usually a reset and followed by a new song number), except this time it was followed by a sound and not a music, the few short notes you hear when the menu appears. So I tested the 3 4 7 separately on the vanilla to know at which point the song is interrupted, 4 seems like a good choice, and I did the same here. Now it's not because some games look similar that their sound rom is similar, this one is a type 1, the most modern neogeo games like garou, kof98 and up are like this.
  13. Ok, here's your experimental build, it's not really experimental this time, it just adds the handling of the reset sequence used here by rbff2 to stop its intro music in console mode, and only in console mode, usually this sequence is followed by a music number so I never bothered to emulate it fully until now, this is the only place I know where it's not followed by anything and the music must really be stopped here. I attach the binary here because it's very possible you'll find other problems like this one later, so I won't make another version all the time. Thanks for your finding anyway ! (still the 64 bits version, if you prefer the 32 bits one, just tell it). (attachment removed, it's released in 0.94.3).
  14. Yeah I hoped we would be lucky, but it's rarely the case. It will probably take quite some time, I'll look into it a little later... well it went much faster than anticipated because for me in arcade mode when I insert a coin the music indeed stops ! I'll try to switch to console mode then... !
  15. Tux

    Raine 0.94.1

    Fixing : not interested, I guess some other emus used some generic code found elsewhere for that, I didn't have it, I don't really care, it's supposed to stay easy, I already spent way too much time on this. Reverting : no need, with controllers buttons 0 & 1 are mapped to buttons A & B or X & O on playstation which means the main button to validate and to cancel, and anyway I don't plan ever to add something to map controls in the gui. The light : it's actually more fun when you program it, you have access to its red, green and blue components from 0 to 255 and by combining these you can display whatever color you want. But it's still useless, I guess it's in the spirit of these pc cases with a glass panel to see neon lights inside... ! It's also much heavier than the DS3, making it more fragile if it falls (my nephew had to replace one because of a bad fall, my ds3 fell an incredible number of times without any problem ! And actually I had to reuse it lately on an old windoze game which doesn't allow to select the joystick to use and it insisted on using this one, and I had to press heavily on the square button which was almost dead... It actually made it return to life, now all buttons work correctly ! I don't remember the exact age of this ds3 controller but it must be more than 10 years old now !).
  16. This was supported in the old dos version, through the 3 keyboard leds, but of course accessing these leds with a multitasking os can be more problematic and the emulation was just dropped when switching to the sdl version, a very long time ago... Now there are ways to access the leds available on the system in linux through sysfs. It makes accessing any led and controlling it much easier. These leds are available in /sys/class/leds, see the description in any kernel documentation in /usr/src/linux/Documentation/leds, they had neat ideas on how to use all these leds... I finally made a good interface to choose which led on your system you want to assign to the emulated leds, you can choose any led displayed in /sys/class/leds as long as its brightness file is writable. I found a nice udev rules to assign group leds to all files in /sys/class/leds from there : https://unix.stackexchange.com/questions/20125/how-can-i-change-the-permissions-in-sys-to-alter-the-state-of-a-led-light-using After this, just add your user to group leds, and he has access to these leds... There are at most 4 emulated leds, so if you have only the keyboard leds you'll be able to assign only 3, but it's usually enough, these leds are not of an uttermost importance ! The status of the leds is restored when raine quits, and the thing is super fast, so even if it's not spectacular, it would have been a shame not to emulate it ! If you have a dual shock 3 connected, it adds 4 new leds that you can assign here ! The new "leds..." option is at the end of the "Options" dialog, it displays leds assignments so far, the names are taken directly from /sys/class/leds so it's not always super user friendly, but it's understandable, it looks like this for the keyboard : (see attachment). For windows users, sorry, there is no such interface for leds in windows. There is a way to assign keyboard leds though, but it's complicated, there is a demo source included in mame source for that, and even them chose not to merge it (unless it's been done since then but it's unlikely). Well microsoft usually loves to make things complex, here it's just too easy to use not to use them ! The games supporting these leds : most taito games (taito f3, darius, exzisus, bonze adventure, rainbow island, the taito xsystem1 68000 games), the toaplan2 games. There are probably more which can be added, this feature has been completely forgotten for many years now ! While doing this I found a bad bug when loading a game which uses more than 1 cpu of the same category, like darius, and a forgotten free in the game selection header if the number of games played is more than 5. Of course all this is totally optional, if you don't want to see your leds changed by raine, just don't assign any in the leds assignment dialog and it will fail silently.
  17. Yeah welcome to the wonderful world of utf8 insanity, your 3 bytes is just a weird utf8 sequence which is ignored if seen in a browser but raine can't ignore it of course ! It happens sometimes especially when getting a text from the web, you have to find a way to filter out this kind of sequence in this case. Anyway you found a way around the problem so it's fine.
  18. Tux

    Raine 0.94.1

    Ah yes you're right, forgot this "detail". Well good news : it doesn't change anything in linux, because there is some compensation built in the driver for this controller for its horrific dead zone. But in windows where there is no compensation, indeed it happens. I'd say maybe there is a way to improve the dead zone compensation for that in raine, but really, the easiest solution is just to use the left stick in the gui instead of the dpad OR just not relying so heavily on the auto repeat, OR even better, just use the keyboard it's much faster to navigate the menus anyway ! Apparently the dead zone compensation works as long as there is only 1 axis moving, if there is more than 1 at the same time, it creates havoc and since this thing is a dead zone nightmare, moving the left sitck 1st as you do makes sure that raine will receive moves from the left stick forever after this, add either the right stick or one of the triggers, and the dead zone compensation becomes crazy ! I'll see if it can be improved, but it's super low priority because you have many ways to work around that. Well the difference with the ds3 is that you can stop the perpetual movement with the ds3, it's not always easy, but always possible. Here it seems to have become impossible (in windows at least !). What's this horrible light for by the way, the big one they added on the controller ? It's a generation 2 too, yes. edit : after looking at the code, I don't want to make it more complex. If you find a case where it's problematic without moving one axis while pressing the dpad (that is all the axis close to their neutral position), I'll have another look, but for now it's just not worth the trouble. I noticed that usually most games don't even bother adding an auto repeat for the joystick when it's usable in the gui, so it's already better than most here.
  19. Tux

    Raine 0.94.1

    On 2nd thought I can add something : if your right stick still interrupts movement in 0.94.2 then it means it sends some left stick movement. I don't know if it comes from a bad mapping or from a hardware problem, but that's the only possibility.
  20. Tux

    Raine 0.94.1

    Well in this case you are on your own. Tested here, without any fancy configuration file or anything and it works, if it doesn't for you, it's something on your side, I can't help you there.
  21. - In the gui only the left stick and buttons 0 & 1 are now handled - sound associations improvements for kof94/95, and enable this for samsho4 and real bout fatal fury 2. - and the hiscore.dat file is smaller, got rid of a ton of useless stuff in it. That's all !!! http://raine.1emulation.com/download/latest.html
      • 1
      • Like
  22. Tux

    Raine 0.94.1

    Ok tested this famous ds4 controller, well nothing fancy here, it didn't require any driver in linux or in windows, recognized immediately. In raine too, no need to add a mapping it's one of the most well known game controller. With 0.94.1 yeah you can interrupt the auto-repeat from the gamepad either by the right stick or by L2 or R2, it's because these are axis movements and axis movement are used to move the selection like the gamepad. With latest binary since only the axis coming from the left stick are recognized, all the other axis are ignored in the gui and so the auto-repeat started by the dpad is never interrupted. Tested in win10 & linux, without any fancy mapping in both cases. I guess I should finally release an official binary for 0.94.2 to finish all this for good... ! (+ the new sound associations need some testing from players anyway). The only slight complaint I have against this controller is that if you are using testjoystick on it from the SDL distribution and move one of the analog sticks, it's impossible to stop the move, it's a dead zone nightmare, but if you use something which handles the dead zones correctly it's not really an issue.
  23. Tux

    Raine 0.94.1

    You are in luck, my nephew will lend me one tomorrow for testing ! (but I am almost certain I won't have that many problems !)
  24. Tux

    Raine 0.94.1

    yeah my cheap controller has analog triggers, although their resolution is not very high (it jumps very quickly from minimum to maximum, very hard to do something precise with that). So you can interrupt the auto repeat with the right analog stick ? Well I have absolutely no idea how then, and no I can't do that here, with the dual shock ps3 controller or the chinese xbox one ! No I don't plan to buy a new controller specially to test your setup, that's too much to ask, eventually one day, but your problems are really not a motivation !
  25. Same kind of signature, will be enabled next time, and will require some more testing too.
×
×
  • Create New...