Jump to content

Tux

Ultra Members
  • Posts

    1,060
  • Joined

  • Last visited

  • Days Won

    219

Everything posted by Tux

  1. And I still didn't understand how you got 2 kof97 directories, I can't reproduce that here... About your strange looking window with the big blue area : it's because you are again at the minimum window geometry, 640x480, I should include a setting just for you that would forbid this setting, but anyway... ! It's just that this area reserves at least 224 pixels in height so that the pictures would still look like something (most have a size of 304x224, a few rare ones are bigger, for those they are resized to fill in the blue area). Anyway this blue area doesn't look so big if you have a "normal" window area which would be much bigger than that !
  2. Well I tested, and I am not really convinced, you see the effect of rnd(), the %Misc varies now, but it's not really faster... I return to the normal script for now... (I prefer stable numbers which can be read easily, and the numbers are < 10% even in debug mode here, so it's not worth something like that).
  3. And you just won a hotfix release : 0.94.12b. Mostly for using SLASH[0] instead of '/' to separate directories otherwise it isn't compatible with windows, but except that I had the time for : - Fixed a few stupid segfaults in the console due to the recent script changes - I had forgotten to include some cheat file for the new kof2002 clone, it's fixed. - while I was at it I added an experimental script to block the selection timer in kof97 since it seems it's impossible to find an ips which doesn't conflict with the training mode to do it. It works, but once you have selected your character you must disable the script otherwise the game will never start ! That's all : http://raine.1emulation.com/download/latest.html Notice that for windows their \ doesn't make any sense to separate directories, in normal scripts \ is used to quote the following character (block its interpretation). But it dates back from the dark ibm days when they wanted to make a bad machine with a bad OS so that people would not like it and would buy the super big machines from ibm instead. It failed, and after that they had to maintain their crap for many years, and they never dared to change their mind about \ to separate directories... !
  4. for the last message it might be windows specific, I'll have to check in windows. For the 1st I didn't understand half of what you did, but it looked like you tried hard to break the dialog, and you succeeded in the end. I don't really want to make something unbreakable... ! For now I'll slow down, but I'll start by checking your 2nd error, there might be a 2nd release because of that (a b version).
  5. Frequency in a random number ?! Sounds odd to say the least, I'll take a look later... !
  6. Yeah this version is mainly about the support of these ips files found on the net, the best source so far was found by mer-curious, see his topic on the subject in the forum if you are interested. So the dat files and the ips must be placed in an ips directory that raine will create next time you run it, or you can create it yourself (for linux it's in ~/.raine/ips ). The format is the one already used by these packs of dat files you can find on the net, subdirectories with the short name of the game containing the dat files + ips files related. A word of caution : it's the crazy bootleg world, some patches are not stable alone, and you add to the risk if you enable more than one, raine will warn you about conflicts it finds while applying the patches though. So the 2 ways to apply them are through the command "preload ips dat file" which appears at the top of the main menu if no game has been loaded. It opens a file selector where you can select any dat file you want to add for a particular game in the ips directory. Your choice is saved in this same ips directory in an ini file with the short name of the game. You can either return to this function later to uncheck the dat files you chose if you don't want them anymore or just delete the ini file. Raine will check for conflicts when you load the corresponding game and will warn about them at the end of loading. And the other is once the game is loaded, it can be applied only to code roms, from ips files only, not dat files, and it works only when the rom patched is in the right format, it's very specific and it was the only thing I wanted to add at first before being convinced to add the rest. Except these ips features, you'll find : - a new kof2002 clone, kf2k5uni which was mainly added to test an ips dat file... ! - a new setting to choose to have the profiler (f11 key) to display its % based on sdl2 performance counters instead of the rdtsc. It's a good option if the frequency of your cpu changes all the time, it's a good try if you have doubts about the results anyway. - a new script command : stop, see help in the console for details. That's all ! http://raine.1emulation.com/download/latest.html
  7. Hey good news, one of the conflict resolved itself during the night ! I was just getting tired last night and forgot to check the patches applied to the same rom ! So you keep only the 1st one, the time and training conflict. Ok I think it's finished now... ! And I looked a little more in this conflict : there are 2 parts, the 1st part is harmless, code in common, but the 2nd part is not. Now in this case the patch which "wins" is the one which is applied last, here it's the time patch, so I guess a part at least of the training is broken if you keep this time patch. If you want to change the order of the patches just change the order of the lines in the ini file, notice this ini file doesn't like to be edited by hand, don't leave anything like an empty line when you save it !
  8. The checking code is in place, and too bad for you, it finds 2 conflicts in your collectio The 1st one is between the infinite time and the practice mode, I tested ingame and both seem to work which is rather surprising, I might look better into this one, the 2 might have some code in common then (the checker just checks if they write to the same place in rom, it doesn't check what is written). And the 2nd one is about the bonus characters, it's a pack, and there is a conflict between the 5th and the 6th, it's in the sprites rom so it might create graphical glitches. It's for 2 characters only though. If you reply no to the dialog it quits immediately, which might not be my best idea here, maybe just a message at the end with the list of conflicts would be enough. Notice that it gives the name of the ips file, most of the time without extension because there is no extension given in the dat file, but at this point the name of the dat file is lost, so you have to find it by yourself. I hope the screenshots will show, but they should... Also I added some support for the crc given in most dat files because sometimes the rom name is bad and in this case you can recover with the crc, what we already do when loading a rom so it's not really a surprise (found an example with 2-flash.dat which is a variation on the infinite time you used, this date shares the same patch as your dat so it has the same conflict, but it also has the bad rom name which can be recovered if using the crc !). I think it's not bad for a release, but it's too late for that. And I'll replace the dialog by a list of conflicts at the end of loading tomorrow... ! Notice these guys must like instability to add the ability to combine these patches when 1 patch alone is often not perfect and without a way to check for conflicts... !
  9. And now I have the info in text and picture in the status bar at the bottom of the screen, this part was easy. Now it would be cool to add some code to check if there are conflicts between the selected ips, but I'll keep that for tomorrow... !
  10. Ok it's pushed to git, I used the collection you posted as a test, good thing because there was 1 of the dat file containing garbage utf8 characters at the start which needed to be filtered out... Apparently it works now. The file selector which appears when choosing "preload ips dat files" now allows to select multiple files in a game directory (and it can't leave the ips directory), when you leave the game directory or close the file selector the corresponding config is saved in the ini file in the ips directory. This ini file is read when a game is loaded with a corresponding name. That's all there is to it, quite simple to sum up, but full of small annoyances when coding it. There is a hard limit of 20 ips files at max, the prog will complain if you try to go over that, but you would really want to push the limit to do it, your collection uses 11 ips files, and that's already quite something, and there is still some margin here ! Congratulations for finding this combination by the way, it's right that kof97 is much better with this ! I should improve the way it looks by displaying some description and maybe the picture while browsing the dat files, but I keep that for later... !
  11. It will take longer than anticipated because I must start by adding a gui widget and it's been a long time since I did it for the last time, a little rusted here. By the way I even found a french dat file : 2-plus06.dat, it should be relatively understandable in english even without google ? They say this modification is major, contrary to most of the others which are very targeted, it probably explains why you can use many at the same time without problem, still lucky though, it means they don't use the trick of adding a jump and moving the code at the end of the rom, otherwise all the code of all the patches would happily overwrite each other at the end of the rom... ! Still crazy, but indeed this time there are more valuable approaches there.
  12. Well you are lucky to be able to use these patches simultaneously, these are not simple plugins, these are patches, I mean if 2 patches you use happen to patch the same area, it's boum ! For now I didn't add any support to have more than 1 dat file at a time, but it shouldn't be too hard to do. Yeah the git repo is definitely low quality, it's not a super idea to put this in git to begin with because ips are binary files and even if git allows to put binary files, it shines for ascii files, here it looks like a waste of space. For your broken roulette patch, if I have to guess I'd say it was 8r-hcsjh2n.dat, replaced by 3-hchr2ps.dat... (names similar !). I'll try to add the possibility to make combinations of dat files later then.
  13. The most broken dat file found so far is for double dragon, doubledrsp_20220717.dat its 1st ips references the code rom beyond its size, thanks to the new size limit for avoiding the crash and then the 2 following ips files in the dat file don't even have the same name as on disk, so they can't be found ! It's almost a shame to add some support for something which can be so broken... ! So don't worry if you have problems with all that, it was worth an experiment, but probably not worth loosing too much time on it. At least the code to add support for that is short, there won't be any problem with that !
  14. Ok after a good break I finally decided to add some support for these dat out of curiosity (curiosity works well on me usually !). So it's some basic support, it works by preloading the dat file, a new command appears in the main menu when no game is loaded : preload ips dat file, it gives a file selector where you must choose the .dat file you want. Normally you should return to the main menu without message after that, you can load the real rom now. If the patches apply without error, you won't get any message, and then you can play normally. In my tests I found some dat files reference a rom file that I don't have, specifically for kof97 in the github repository kof97ae_20180212.dat and kof97ae_20200810.dat both reference a very big 232-v3.v3 rom. We have this rom, but not so big, our size is $400000 when they try to access it as far as $f00000, which created a very nice rom crash here. So I added some tests for the maximum size allowed, for now it just displays a message on the console and tries to patch what it can as long as it's not over limit. I have tested pacman (in Misc), it changes everything, but is not very interesting, I prefer the original version ! and puzzle bubble 3, there are changes alright, but it seems to force you in a duel against the computer (there is some kind of cheat in the menu of the game which selects the right choice before you can move !). Anyway at least it shows it works. The previous command to load an ips file is still here for the cases where you have just an ips file, it still has the same rules, applies only to the rom code on the fly. These dat files apply the ips files referenced at a super low level, just after the rom has been loaded but before any decoding could take place. I didn't try to put a super interface for that, because I didn't find a really interesting dat file yet. Maybe later, I am far from having tested everything, but I am at saturation now... ! So it doesn't try to extract any description from the dat file, you'll have to select your dat file yourself !
  15. Yeah I had the same kind of idea, that's the 1st thing I did after releasing 0.94.11, I added an option to have the profiler ignore the rdtsc whose reading is dependant on the cpu frequency, so if something changes your cpu frequency during gameplay it can ruin this kind of measurement. I keep the option, it can be useful in windows where there are tools which change the frequency all the time, but in linux my frequency is quite stable and I get almost the same readings when using sdl2 instead of the rdtsc. The setting is in gui options : profiler mode, you should set that to sdl2 performance counter if you want it to be independent of your cpu frequency.
  16. Yes it's because it now keeps its parsing results, impoving a lot the speed to jump over code which is not executed. I had planned to add some jump points to make it skip this code even faster, but after testing I found it's now useless, you don't even see any difference with that, and the code gets more complex, so I just didn't do it.
  17. After a longer look, it's lacking more descriptions for sure ! It's in the spirit of bootlegs where sometimes you really wonder what the difference is... ! Found a few oddities like the sailormn ips which make the game crazily harder, oh well.... the kf2k5uni which does an update without telling what is in the update and it's not obvious... ! Except that a ton where I couldn't tell what the difference is actually ! I'd say for now it's not motivating at all to add more support for that, I'll try to have a look at the video though...
  18. Yeah even if it's convenient sometimes while testing one of your special scripts to have it survive a reset, logic tells all scripts should be stopped when there is a reset, it's easy to do, I'll push the commit soon.
  19. Just tried it in xmcotar1d, started the Console script in the gui, opened the console, typed stop "Console Mode" it worked, the script is stopped. I didn't try with a hidden thing, because I never even made a hiiden script which uses a run: section so far... And to be even more sure I tested from a script by adding a stop "Console Mode" at the beginning of the if !printed section so it stops actually itself when it reaches the menu, it worked too. Funny thing is that you see ARCADE, because the script isn't stopped immediately, it's stopped in the next frame, so it has time to write ARCADE before stopping for real. Everything works as far as I know !
  20. Yeah well for now I am not sure I'll add the patching for sprites. The big difference with the patches is that they can't be patched on the fly, you have to patch the rom before it's decoded, which is a lot trickier. There are already a few interesting patches in the github repo, I liked the patch to update the kf2k5uni clone, too bad it doesn't detail what the changes are exactly (I added kf2k5uni because of that, it has a bug with sound when using the 32 bits version and there is a memory leak somewhere, but it works). I'll check the bugs later eventually, but this patch patches only the rom, and it's quite good. Yeah most of the arcade bootlegs come from Korea and China apparently, these people are crazy hackers for roms, that's why the ips files come from there. Most of the stuff doesn't look very interesting though, sadly all the bootleg are not interesting too, far from that. The idea was to have a simple way to try an ips file without having to deal with the bad crc warning if you patch the rom directly. That's done for the code part at least, I'll see if I push this further or not, for now I take a break !
  21. Interesting, they added some dat files for info, but also to tell which ips file to apply to which rom, which can be done automatically by following what's there. Now the problem is that once the game is loaded the sprites are already decoded, so to be able to patch this they would need to be reloaded, then patched, then redecoded. All the games wouldn't support that because some have their custom decoding mechanism ! So it becomes quite a headache... ! So this part is much harder, but I guess we can keep at least the basic ips patching for code roms. I'll think about the other options there... ! There was an example of this rle thing, now that I could confirm how it works I added it in the code, this part is still very easy, it's not pushed to git, no reason for now.
  22. Yep found it here on github : https://github.com/taoenwen/FBNeo_IPS.git but it's made by Japanese people, but there are some dat files with some english description inside... Apparently they don't always patch just the code rom. I'll look into it in more detail...
  23. You have enough ip files to fill a directory ? Good news, it's probably from some very foreign sites because I had a quick look on the net yesterday and couldn't find any. But yes good idea I'll make at least the ips directory and set this as default directory when opening the file selector. Notice I didn't test these ips ingame, but I checked the code after patching looking at the changed offsets and it looked good, it pushed me to make another commit for the l command because I couldn't get the right assembler listing from the patched address (overlapped by the garbage which was there before the patching). Anyway it's done, ips directory created when you launch raine if it doesn't exit, and it becomes the default for ips files, pushed to git.
  24. Well just added some support in git, based on these 2 ips files. The command appears below "Game cheats" (I thought 1st to include it in the cheats dialog, but this one is very specific and it's better not to touch it). It's an ultra basic support, it doesn't support the rle chunks the doc talked about because I had nothing to test that, and it assumes there are no word inversions which was the case for these 2 ips files. AFAIK, it works well, I can't be super sure since you have to finish totally the game to see if it works, and I didn't feel like doing that ! It was really super easy to add, look at the length of the do_ips function in git, simply ridiculous ! It doesn't ask for the name of the file to apply the ips, it assumes it's applied on the currently loaded rom with the given offsets in the ips file.
  25. Plus they are extremely hard to find for arcade roms, it's mostly used for translations for console games. But anyway if you have a simple ips one day it's worth spending a few minutes on it !
×
×
  • Create New...