YesNoOk
avatar

Let's make an interactive Artmoney tutorial. Yay! (Read 82845 times)

Started by JustNoPoint, April 07, 2005, 07:34:48 am
Share this topic:
Let's make an interactive Artmoney tutorial. Yay!
#1  April 07, 2005, 07:34:48 am
  • ******
    • www.justnopoint.com/
Okay this is going to (hopefully) be the (sp->)layman-ist tutorial ever :P Basically I will start off with a post and some people that want to use artmoney can interact and let me know any problems they have. People that know how to use artmoney can post the next phase of the tutorial but only people wanting to learn to use artmoney should reply saying that they succeeded or had a problem with what was last mentioned. Never tried a tutorial like this but I always thought it may work well. Experiment time. :D

Download Artmoney.
http://www.artmoney.ru/

Now I want a few people that are interesting in learning how to use artmoney to name a few games that we may use as reference. Whichever game seems to be amongst the most people I will start with that game and probably do a couple more (provided I have the game of course).

So name a couple of games and their emulator. No Neo Rage X :P


Feel free to post Artmoney tables here.
To use someone else's artmoney table you may have to find an offset. Sometimes artmoney tables will just work for you without you doing anything but this will show you what to do if they do not work. You will be required to know how to use artmoney a bit to do this. I generally find the timer value as it is usually the easiest/fastest. If that does not work I find an axis.


First thing you do is load up the artmoney table.

Next find any value that is on the artmoney table. If the timer or axis is on the table I already showed you how to find them above. Find one of them.

Next highlight the value you found then highlight the same value that was already in the table you uploaded. Right click and press "Apply the Offset to all"
Alternatively you can simply press Alt+A while both are highlighted.



That's it. You can save your new table and it should work with your game from then on without you having to repeat this process. If you change computers or something you may have to do this again but it is simple enough.

Here are artmoney tables contributed:

http://www.justnopoint.com/Tables/

Last Edit: October 12, 2008, 10:07:30 pm by Just No Point
Re: Let's make an interactive Artmoney tutorial. Yay!
#2  April 07, 2005, 07:07:17 pm
  • ******
    • www.justnopoint.com/
Let's get this thing started. I'll direct link from Joram's site on a few things :P
The next 2 pics and information come straight from Joram's tutorial's page. (main site) There is no reason to remake these as he did an excellent job describing the images :yes:


Joram"Zwei Fuss" Nowak said:
The marked areas on the screenshot are of importance and I'll just briefly describe them here:

1 - 'Search' - Search will be used to look for values in memory. This will only be used the first time you search for a new value, every new search for this value will be searched for using the 'Filter' button.

2 - 'Filter' - This is used after 'Search' is used once. It filters the searches down based on certain criteria, which will be expanded on later.

3 - 'Process Selector' - Using the pull-down menu here, select the running Chankast process. This tells ArtMoney which process to search in.

4 - 'Found Addresses Window' - If you tell ArtMoney to do so, it will dump all the found addresses in here. Usually it's not a good idea to do this at the very start of the search, as thousands of unintelligable values will be dumped here on the first search.

5 - 'Address Editor Window' - Here is where you'll be editing the addresses. The arrows between these two areas push all the values to this window. The top one puts the selected values in the left window to the right, while the bottom one puts all of them in.

6 - 'Load' - This loads up an ArtMoney table. I will provide you with some that I have done, with help from JJWE for some addresses.

7 - 'Save' - Save the table once the values have matched up with your PC. This will be explained later.

Now if you want to mess around with options go ahead. I'll highlight the areas of interest for you

Joram"Zwei Fuss" Nowak said:
In the 'Additional' Tab, The top portion played a great role for me when I was ripping 'non-flashing' Gill way back when I first started using ArtMoney. But after I discovered the animation test method, I sort of disregarded this part. Either way, I found the values above for refresh-time and freeze-time to be good enough to hold the freeze on Gill to prevent him from altering his colour. You see, if these values aren't low enough he would rapidly switch between colours even if I had his colour address frozen! This happened because as the game was feeding him his new palette, ArtMoney wasn't quick enough to turn it back to the value I had frozen. So that's why they have to be low to work. The bottom box I highlighted is useful if you want to see the addresses in Hexadecimal mode. It's just nice sometimes to be able to see how the game works, because this is much closer to actual program code than the Integers we will be using.

I'll leave this post being all of Joram's work. After all he did make the 1st and best tutorial ^_^ (well that I know of :P)

I'll begin gaining screenshots and posting the 1st 3 steps you will learn.
Last Edit: October 12, 2008, 09:59:57 pm by Just No Point
Re: Let's make an interactive Artmoney tutorial. Yay!
#3  April 07, 2005, 08:04:14 pm
  • *****
  • Helpful Hermit
    • USA
I've come across this before and didn't know how to fix it until recently.

The "Select Process" bar is replaced by a "Select File" bar, like so:


Click options, then select "Process", then ok.


Yeah it's easy to do, but I'm sure some people have had the problem and didn't know how to fix it. :P
If you require my assistance, please feel free to contact me on Discord: 2DMirage#5299
Commissions/Requests are closed. Please do not ask.
Re: Let's make an interactive Artmoney tutorial. Yay!
#4  April 07, 2005, 08:15:46 pm
  • ******
    • www.justnopoint.com/
Now that you have learned what everything is and how to set some options up lets go to what I usually start off doing when I first get a game.

Trying to find the 1st value the fastest. The fastest easiest value to generally find in a fighting game is the timer.

So load up SFA3 on kawaks and select the game from the list in artmoney.


Now get to the fight.


Click "SEARCH" in artmoney.

Go to custom and set artmoney to only search for 1 and 2 bytes.



Since in the SFA3 image above the timer is at 99 before we begin the search we want to search for that exact value.


Now click "OK" to begin the search.


Now let the clock go down to 98 in the game.


This time you will push "FILTER" and search for the exact value 98.



You will find 1 value.


Add it to the list on the right with either arrow. The Red arrow will add whatever is selected and the green arrow will add everything.


Now you can name that value whatever you like and save it so you will always have it. You can alter the value 99 to be any number and the timer will change correspondingly.


If you want to freeze the timer all you simply have to do is click to the left of the name under the "F"

This wraps up this part of the tutorial. Feel free to ask questions I don't want to leave anyone behind.

In the next post I will tell why finding this value 1st will help save you time on future values and we will find Ryu's X and Y axis.
Re: Let's make an interactive Artmoney tutorial. Yay!
#5  April 08, 2005, 06:11:13 am
  • ******
    • www.justnopoint.com/
Go back to this step and change the search to only find values of 2 bytes.

We won't be needing 1 bytes anymore since we are not going to search for anymore exact values.

Now look at the time's address.


Generally all the game data you will be looking for will now be near this number. So instead of lengthy searches and thousands of results to filter through let's try to narrow it down abit.
Go to options>Searching and I will search in between the range of 00000000 and 02000000


If by chance I can't find the timer on some games or the game does not have a timer *cough* Melty Blood *cough* I locate the X axis as default instead. Now we have a range to look in it shouldn't take too long to find.

Go to "SEARCH" again.
This time we will look for an unknown value.

Search away.

After it finds all possible take player 1 (Ryu) and move him to the right abit.

                                     V

In every game I have tried so far walking to the right increases the value and walking to the left decreases it so you can mix these up to filter down the values to be more tolerable.


I found 1279 values. That is way too many so I will move Ryu again.

Move Ryu (or homever you are) to the left and right filtering for increased valus and decreased values accordingly. You may also unpause the game and keep Ryu still and filter for a value that "was not changed". I filtered about 7 times and came up with 30 addresses.

I see 2 of these 30 addresses start with 00E so I am almost certain it will be one of these 2 addresses.
I select those two and push the red arrow to only move the selected and I freeze the values.



Notice Ryu cannot move to the left or right. We found the value. Unfreeze one and see if he still sticks. I unfroze value 23 and he still did not move so value 24 is his X axis.
Rename it and save your new table. Now you can manipulate that number and move player 1 around. It will work on any player 1 not just Ryu.


Finding player 1's Y axis will be just as easy.
Search again for "Unknown Value"
This time make Ryu jump.
Any time Ryu is going up his value is increasing and any time he is going down his value is decreasing.

So say I jump and pause the emulator and filter for "was increased" when he starts to fall I can filter for "was decreased".

If you just don't make him jump you can filter "was not changed" since his Y axis did not move. You can even move him left and right and filter for "was not changed" because as long as he isn't moving up or down his Y axis is not changing.

I don't think I need images to show this. Just do pretty much exactly like you did when finding the X axis.

Let me know if you do need visual references to help find the Y value. After you find it you can freeze player 1 in the air. Move him around the air with the numbers and have hours of fun  :D
Remember to always save anytime you find a new value.

These methods will work to find player 2's X and Y values as well.

YAY!

Let me know if you have any questions thus far. The next update will be the part everyone has been waiting for. Freezing animation values to cycle through all sprite. Yipee skippy
Re: Let's make an interactive Artmoney tutorial. Yay!
#6  April 09, 2005, 02:53:55 pm
  • ******
  • Hedgehog Whisperer
  • Red Bull addict
    • Spain
    • xgargoyle.mgbr.net
Some "minor" stuff:

- Loona: Artmoney can allow you to disable layers, so there's no need for you to have an emulator with layer disabling features. It may be tricky to find the right address, but if you find an animated element in a background (such as a walking person) you can search for its offset and put it offscreen. The remaining addresses for static BG elements will be in a close range to the animated one. Example: if an animated BG element has this addres (00364B), usually the other bg elements have addresses like 00364C, 00364D, 00364E, 00364F, 003650..., and the same in the other way around.

Sample:


- TDS: I think you should mention this. Many emulators (MAME, Kawaks...) store their addresses in VRAM. What does it mean? It means they change anytime you boot your computer, so stored values in tables won't work.

This problem affects many people, but there's an easier way to solve that other than searching the same values again and again.

You must have a "reference" value in your table, usually the fastest one to find (in 2 or 3 steps). I always use the timer as the reference value, but for other games I use the player ID or the score.

When you load a table and the stored addresses don't match the real values then it means you must fix the table. To do that, you have to find your reference value. Once you've found it, select it on the results table (don't import this value to your table) and also select the reference value in your table. After highlighting both addresses, click the right button of your mouse and select "auto-apply offset to all".

That will adjust all the stored addresses using the offset difference between your old reference address and the new one. Once you've done that you will be able to continue working with your table. Hint: save the table once you've fixed it. If Artmoney crashes during the search process, at least you won't need to fix the offset again.

XGargoyle: Battle posing since 1979
http://xgargoyle.mgbr.net
http://www.pandorabots.com/pandora/talk?botid=e71c0d43fe35093a  <-- Please click that link
http://paypal.me/XGargoyle  <-- Donations welcome!
Re: Let's make an interactive Artmoney tutorial. Yay!
#7  April 11, 2005, 09:18:55 am
  • *****
  • Helpful Hermit
    • USA
Now just for the record, the method for finding the various x and y axis can be used for other games, correct?
If you require my assistance, please feel free to contact me on Discord: 2DMirage#5299
Commissions/Requests are closed. Please do not ask.
Re: Let's make an interactive Artmoney tutorial. Yay!
#8  April 11, 2005, 10:17:43 am
  • ****
  • Notorious Procrastinator
  • Proudly banned from /r/mugen
    • USA
You have to set a "saving pointer" to make your table work 100% of the time without having to apply an auto-offset on every restart, the way to do this, is in the Artmoney - User Manual.
(It's presented in the same format that TDS has posted this tutorial)

I would post this method, but if you're following TDS's tutorial, you already have the manual and can look it up.  ;)

Hoshi: Yes.
Last Edit: April 11, 2005, 10:22:51 am by VinnyJ
Re: Let's make an interactive Artmoney tutorial. Yay!
#9  April 12, 2005, 07:34:10 am
  • ***
  • Teksetter!
Good shit!  :o I been tryin to get results with Artmoney usin joram/zweifuss' tutorial. His is too specific (though helpful). So far I have managed to get the x and y axes, though the counter is elusive? I am trying Kawaks running Marvel vs Capcom...Keep up the good work.

A question: anyone know the relation between the addresses you get in artmoney and those specified in shot factory (Kawaks)? They don't seem to be the same...
Re: Let's make an interactive Artmoney tutorial. Yay!
#10  April 12, 2005, 07:37:45 am
  • avatar
  • ******
A question: anyone know the relation between the addresses you get in artmoney and those specified in shot factory (Kawaks)? They don't seem to be the same...
I don't think these addresses are related.
Re: Let's make an interactive Artmoney tutorial. Yay!
#11  April 12, 2005, 09:22:34 am
  • avatar
  • ***
  • Original characters are my forte.
    • http://network.mugenguild.com/bane84/
Question:  Does this method work in other games?

Answer:
http://www.geocities.com/bane84mugen/artmoney.gif

Yes it does.  I have been able to isolate memory addresses for the P1 and P2 X and Y axis, jumping velocities, and the timer.

This game also runs in a DOS based console window.
Last Edit: April 12, 2005, 06:43:19 pm by Bane84
Re: Let's make an interactive Artmoney tutorial. Yay!
#12  April 13, 2005, 06:45:13 am
  • ****
  • Notorious Procrastinator
  • Proudly banned from /r/mugen
    • USA
The only thing I get annoyed with is, when certain values refuse to stay frozen.
Re: Let's make an interactive Artmoney tutorial. Yay!
#13  April 13, 2005, 06:51:40 am
  • ******
  • In after lock
    • mugenguild.com/~messatsu/index.html
I have a theory that that is dependent upon your processor speed.  On my old computer, I couldn't freeze anything, but once I bought my laptop, everything froze. :sugoi:


Many people risk their lives everyday by having Mugen.
Re: Let's make an interactive Artmoney tutorial. Yay!
#14  April 13, 2005, 06:56:50 am
  • ****
  • Notorious Procrastinator
  • Proudly banned from /r/mugen
    • USA
Processor speed is 2Ghz, 1GB of RAM, mang.  values should freeze...

Quote
4. I found the memory addresses of all the resources, but when attempting to freeze them or to change them your program will change the value, then the game will update with the old values again a few seconds later. What to do?

 Value can be coded. Use "Search of coded value".

Late Edit: Values still don't freeze...  --;
Last Edit: April 13, 2005, 09:20:31 am by VinnyJ
Re: Let's make an interactive Artmoney tutorial. Yay!
#15  April 13, 2005, 08:11:32 am
  • avatar
  • ***
  • Original characters are my forte.
    • http://network.mugenguild.com/bane84/
I think it actually depends on the game...

I've tried searching for addresses in WWF Wrestlemania the Arcade Game, but nothing...
Re: Let's make an interactive Artmoney tutorial. Yay!
#16  April 13, 2005, 09:07:31 am
  • avatar
  • ****
Yeah, I figured as much.
There has to be something to get around this.
Re: Let's make an interactive Artmoney tutorial. Yay!
#17  April 14, 2005, 01:46:21 am
  • ******
  • In after lock
    • mugenguild.com/~messatsu/index.html
How do I keep mahns from not jittering in MVC2??  The artmoney table doesn't offer much of an explanation.  :deal2: I'll clean cvs2 estilo Vega (US Bison) if you rip him. :deal2: [font size=0pt]can't find cvs2 torrent[/size]


Aztec_mahn: use Kawaks cheat finder for something first, then use artmoney to find that value that you have displayed, but remember to pause it when you do it. :ninja:


Many people risk their lives everyday by having Mugen.
Last Edit: April 14, 2005, 02:13:12 am by Messatsu
Re: Let's make an interactive Artmoney tutorial. Yay!
#18  April 14, 2005, 03:06:36 am
  • ******
  • In after lock
    • mugenguild.com/~messatsu/index.html
Doesn't worked.


Timer 01E29630 (plus bias) frozen at 255 does nothing. :(


Many people risk their lives everyday by having Mugen.
Re: Let's make an interactive Artmoney tutorial. Yay!
#19  April 14, 2005, 04:12:44 am
  • ******
  • In after lock
    • mugenguild.com/~messatsu/index.html
He didn't include it! >:(  Now, who to rip...


Many people risk their lives everyday by having Mugen.
Interactive Artmoney Tutorial, Part 5
#20  June 03, 2005, 06:02:59 pm
  • ******
    • www.justnopoint.com/
Cycling through the sprites.

I got tired of searching in the large range I showed above. I know all the values will begin with 00E now so I am only gona search in that range. In capcom games I havn't found anything game related outside of the range you find the axis and timer values.

In Melty Blood the screen turning dark effect was FAR away from the rest of the game data so this means narrowing down the searches may not ALWAYS find a certain value depending on how it is stored in certain games.

In every game I have tested the numeric values of the stance are smaller than the duck, which is also smaller than an attack. Knowing this can be very usefull in isolating the sprite and animation values.

First search for Unknown Value while your player is standing.


Next make your player duck and FILTER for INCREASED VALUE


Next make your player attack and FILTER for INCREASED VALUE again

Now go back to duck and FILTER for DECREASED VALUE


Now go back to standing and FILTER for DECREASED VALUE

Now go back to ducking and FILTER for INCREASED VALUE (basically you started over)

Keep repeating these steps till you have narrowed your search down enough for your liking.
Once again you will use the freeze option to find the value

Once you freeze the correct value your player will not move (animate) anymore. They may just kinda jitter as if they are trying to go to their next frame. In some games like for example SF3, SFA3, CVS2 on Dreamcast, SFA3 on PSX, and MB ReAct you can cycle through the sprites while the game is paused. Elliminating the jitter problem.

In some games (such as Melty Blood ReAct) the sprites are set up in two groups. One for animations and one for each frame in those animations.

That means to cycle correctly you will need both values. You will Change animations with one value and change the sprite in each animation with the other value.

If you find yourself missing a lot of frames while cycling from the method I gave above then that MAY be your problem.

Try filtering each frame of a punch or a kick. Frame 1 will be lees than frame 2 and so on.

To cycle through the sprites you will need to know how much a value increases to get to the next frame. With most games this is a fairly fixed amount.

To find this do what I said above. Take a punch or kick and see how much the value increases per frame.

Example:


See how in the 1st frame of the punch the last two digits were 50 and then in the second frame of the punch they were 70?
That means that if you add 20 to each value you can go to the next frame.

The easiest way to do this is to make a shortcut button.
You want it to be something that does not interfere with the emulator/game. CTRL+Z or CTRL+X are the two buttons I generally set the most.

Here's how we do this.
Click the integer of the Frame Value.

Click disable next to the words "Add to Value" and in the box that appears press the keys you wish to set as the hotkeys.

Now just type in the number the value needs to increase eaxh time you press the hotkey. In this case it is 20.
To go back 20 type in -20.

Press OK and you are done. When you save your artmoney table this will be saved as well.

In the next tutorial I will show you how to get rid of that pesky jitter.

Remember to ask if you have any questions.

Oh I almost forgot. In some games every few groups of sprites will crash it once it reaches that group. You may have to find another frame that you didn't get to see where new groups are. For example in Vampire Savior every time you get to a new group and the game resets simply add 4 to the value you was at during the crash and reload.

Keep practicing and you will figure it out. Feel free to add any tips.
Last Edit: June 03, 2005, 06:19:34 pm by The Dreamslayer