Jump to content

Recommended Posts

Posted (edited)

Some news : I finally committed the script for xmcotar1d, I don't think I'll change it a lot more now. One of the latest changes inside is that you can now poke directly the characters if they happen to use the ascii code, as is the case in this game obviously.

Except that there are the few variables added, the printed tests, and the whole thing is indented using a perl script. See it there : https://github.com/zelurker/raine/commit/3482f5b51a7bd8c9ba19896c5329d9fda546bc4a#diff-09023d1e9c13785c9473fd6277a4469afdae3fd95ddf7bf02d8a9a3b9dcbe2b1

You can use "view file" in the "..." menu, and then raw if you want to download it. But of course this script will work only with the git version of raine for now, you'll need to compile your version, or at least change back the poke which use character strings back to poke which use normal values !

Also I finally added something to preserve the parsed state of the script (for the run: section), it's not really compilation, but it speeds up things considerably. I am not finished with my ideas about this yet, but it's already a big improvement compared to what we had before (hoping I didn't add too many bugs !).

An example of this poke with characters :

poke $6B6F0 'PRESS START@'

or for arcade :

if (peek(choice)==$00) #Arcade#
                poke $908E71 ' '
                poke $908EF1 'A'
                poke $908F71 'R'
                poke $908FF1 'C'
                poke $909071 'A'
                poke $9090F1 'D'
                poke $909171 'E'
                poke $9091F1 ' '


And by the way it was a pretty neat trick to update the layer this way to display your text, especially with their weird layout.

By the way the text you put in rom, replacing "insert coin" by "press start", it's actually wrong, it's right only if you configure the game in free play mode (I didn't even verify if there is a free play mode in the service mode), but in the default normal mode you still need to insert a coin to arrive to the main menu and make your selection.

Edited by Tux
  • Like 1
Posted

I reach the limit of what can be done in a "reasonable" way, that is I tried some pseudo byte code : almost no acceleration, I tried to keep marks to jump directly to the end of an if block when a condition is false, same thing, no effect or almost.

So now it appears the biggest slowdown seems to be about managing lines like :
if ((peek($FF4BAB)==$00)and(peek($FF4BAD)==$00))and(peek($FF2001)==$FF)

doesn't seem very impressive to me though, maybe it's because muparser works with doubles internally and so there are some crazy conversions behind the scene here, quite surprising because usually muparser is very fast and our modern cpus can handle double numbers almost like ints, I checked peek and dpeek and they are as fast as they can be, so I don't know. Maybe I missed something, for now I have no more ideas.

Oh well it was an interesting try at least !

The unreasonable way would be to redo a parser from scratch using ints this time and which keeps some pseudo byte code along the way, really too crazy here. Maybe some other ways like having an lua interface, but it would really be unreasonable just for that. I'll just stop here for now, I'll release the binary later.

The core code is more complex of course, but it still seems solid and error messages are much better now.

Posted

Oh, a windows annoyance !

Well in linux at the beginning of the console script in xmcotar1d I am at around 2% misc.

In windows it's more like 20% !

When reaching the menu, it's around 8-9% in linux.

In windows it's like 50% !!!

Well, it's the same binary, how can it do such a difference ? It's even the same muparser version !

So I'll keep it a little longer then, time to investigate this, even though I hate investigating windows stuff... !

Posted (edited)

Hello ffman1985 and Tux! It's nice that you are improving the cheats code and their way of working.

I'd like to know from ffman1985 if he could possibly remove the "flash effect" which is present in the K.O.F games before K.O.F. '98. In K.O.F '98 and later titles SNK introduced an option to disable the flash effect probably due to seizure complaints. I don't suffer from seizure but indeed prefer playing with the effect off especially if in a dark room.

You can see the flash effect in K.O.F '97 here, in minute 3:10:

As you see in the video, when a character is defeated with a special move the screen will flash white and red and also quickly before and after the letters K.O. show in the screen. I doubt if it could be removed through a cheat, but since ffman is doing miracles with the Capcom titles, perhaps this could be possibly doable looking at what SNK did with the later titles?

Anyway, just a request for the future of this thread perhaps.

Thank you for your time.

PS: by the way, Tux, in case you missed it, I finally replied to your concern about the "command/commands" discussion in the other thread. 👍

 

Edited by mer-curious
Posted (edited)

Hello, mer-curious,  I don't know the way to create a cheat to remove the flash. But luckily, someone already made a hack rom for this function (set in the option). Here is the link to the ips, apply it on the p1 rom.

kof97 ips: option to remove flash 

https://drive.google.com/file/d/188QcLXwZt53obOFxw10-y4o8-He6LZ-l/view?usp=share_link

kof 96 ips: option to remove flash

https://drive.google.com/file/d/1VSA9ronyF6f9adni7ctNFHPcG9auLEbV/view?usp=share_link

Edited by ffman1985
Posted

Hello, Tux, thank you for making the optimisation on the script function for us. Looking forward to see the finished job on Windows. The support for direct poke of Ascii code is very convenient for me, especially in the case of changing the value of consecutive address like the ‘insert coin’, now only need one line of command.
(P.S. I think I can use this to make a menu for all CPS game, due to their similarity. However, I cannot find a way to add text on neogeo rom, that’s why I make less neogeo cheat. In real bout special, I can just change the ‘game start’ text to other text in my console mode plus cheat.)(if anyone know how to do this please let me know.)

For the problem of ‘insert coin’ to ‘press start’, i know it become misleading after the change, so i am finding a way to support the start button to start game. It cannot be solved by switching to free mode, because in this mode, the title screen is skipped when pressing start in the opening (directly jump to the character select screen.). And also, the coin button is disabled in this mode. So my cheat does not work anymore.

Posted

Well after testing this thing deeply, I can say what it's not, but I can't say what it is !

It's not a muparser problem, the author has made it easy to integrate it with a program, I tried that, got the same result, it's convenient to debug the lib to check if it doesn't make initializations in loop which could explain this behavior, but no it doesn't.

The same exe launched from mingw32 terminal windows seems faster than when launched from the explorer ! Crazier and crazier... ! I don't give up yet, but it sure is crazy. Too bad there is no windows lover who would want to look into this around here, I'd be glad to just forget about all that ! ;-)

 

Posted (edited)
15 hours ago, ffman1985 said:

Hello, mer-curious,  I don't know the way to create a cheat to remove the flash. But luckily, someone already made a hack rom for this function (set in the option). Here is the link to the ips, apply it on the p1 rom.

kof97 ips: option to remove flash 

https://drive.google.com/file/d/188QcLXwZt53obOFxw10-y4o8-He6LZ-l/view?usp=share_link

kof 96 ips: option to remove flash

https://drive.google.com/file/d/1VSA9ronyF6f9adni7ctNFHPcG9auLEbV/view?usp=share_link

Notice that an ips file is actually super easy to read, you can find its super basic format here : http://fileformats.archiveteam.org/wiki/IPS_(binary_patch_format)

it's just a series of offsets + sequence of bytes to write, that's all. They should have included at least the base file name just in case, with an option to overwrite it, but anyway. So it could be converted to a series of pokes, here the p1 file is loaded with words inverted so if you want to translate this to poke on the loaded rom I'd have to experiment to make sure the byte order is right, but it's not complicated to do.

But it's probably better to leave it as it is, I wouldn't know where to fit an ips reader in the overloaded raine interface, and ips files are quite easy to apply so it's good as it is now.

Edited by Tux
Posted

It may be useful to find the way to translate the ips to poke. I don’t know mer-curious is looking for the ips or want me to make the cheat script? Some people may not like hacking the rom I think, they may prefer a switch to enable the hack instead of the permanent effect, so player can play game with hack sometime or in normal sometime . Also, there are crc error message for hack rom which may be disturbing (but it can be avoided by unzipped the rom).

Posted
38 minutes ago, ffman1985 said:

It may be useful to find the way to translate the ips to poke. I don’t know mer-curious is looking for the ips or want me to make the cheat script? Some people may not like hacking the rom I think, they may prefer a switch to enable the hack instead of the permanent effect, so player can play game with hack sometime or in normal sometime . Also, there are crc error message for hack rom which may be disturbing (but it can be avoided by unzipped the rom).

Yeah it's the very last case where it's useful to use an unzipped rom !

Well if you want to make a converter which works in all the cases it's not that easy, because it must :
1) get the name of the file it will apply the ips to

2) get the way this file is loaded into the rom, and change its behavior based on that. Then the 68000 swaps the bytes words, but it's the only cpu doing that.

Plus there is the problem of how to handle the result : generate a new script for that, and just apply the ips on the fly after loading the rom ?

Anyway if you have an ips which makes a more obvious change, like changing something on the title screen so that you can check if it's been applied or not very quick, I am ok to play a little with that !

Just committed the stop function to git.

Posted

I am currently not interested in anything about ips now. I prefer hacking the rom directly in most case, like the boss hack and practice mode hack in the kof series. As I think these are the basic staff that should be included in the game.

Also, I can alway keep the normal rom and hack rom at the same time if the game has different variations of rom. For example, the kof97 kept unhacked, and kof97h is for hacking purpose.

Posted

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 !

Posted (edited)

If there is support of ips function, i may have some good hack to share, since I have collected many good hack rom before. (But mainly the boss hack only). Even it is hack rom not ips, I have a tool to create the ips.

Edited by ffman1985

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...