What's new

Artmoney and Mupen64

Giffyguy

New member
I need to know how I can apply a "cheat" to a game in the current Mupen64 release, using Artmoney.

I know I can just use PJ64 or something else, but this is a TAS so Mupen64 is pretty much required.

Of course, I'm not trying to actually cheat in a TAS, but I would very much like to apply the subscreen delay fix GameShark patch to my TAS of the Legend of Zelda: Ocarina of Time.

I know this can be done successfully, as shown by Ajax at EmuXHaven. However, I can't safely use Ajax's specific table file because it is not the same version of the rom or the same version of Mupen64. I imagine the most common TAS scenario would be using the most recent release of Mupen64 and OoT (U) v1.0, so I am requesting information on how to apply the subscreen delay fix for this specific combination of emu+rom.

(Of course, the subscreen delay fix has been found for virtually all versions of this rom, and I suppose Artmoney would only need a little tweaking to work with any version of OoT, given a specific emulator.)

I am using the verified good dump of OoT (U) v1.0
I am using Mupen64 v8 reset v2
My Mupen64 exe file is 720,896 bytes, last modified on Thursday, November 08, 2007 at 4:23:06 PM (GMT-8?)
I believe that there have been no further releases of Mupen64, but I admit I could be wrong.

Now, I appreciate Ajax's effort on this, and I would love to see someone provide a similar solution so that everyone could benefit from the subscreen fix in their TASes without having to risk damaging their emulator process by patching Artmoney incorrectly. However, I'm not just going to whine until someone makes another Artmoney table file for me. I would be content if someone could step me through the process of creating a table file to patch a rom in the emulator process. I imagine it's simply a matter of finding the correct offset and adding it to the GameShark cheat address to produce the final patch - but I'd like to hear a more educated opinion before I attempt anything that could cause damage to my computer.

Since this is a very common scenario for anyone attempting a TAS with OoT, I believe that a solution to this problem could benefit many people in their TAS endeavors (until Mupen64Plus is suitable for TASing, that is).
 
Last edited:

Tranquilite

New member
This is Ajax from EmuXHaven forums,

i figured that since i went through all the work to remember how to port the subscreen fix to other non-cheat-enabled emulators with ArtMoney, that I might as well post it here.

This is a copy of the PM that I sent GiffyGuy

me said:
Alright, i remember how I actually did it now, because I went and retraced my steps, and redid everything.

Here is what you do:

First, you open up an emulator with a working cheat engine (I used 1964), then use ArtMoney to find a cheat that will let you modify rupees (we use this as a reference point), then use 1964's built in cheat engine to activate the subscreen fix cheat (but instead of having the last 4 digits of the cheat be 0002, change it to something definitely hex, such as 000A, because ArtMoney seems to have a hard time telling if you're a hex-savvy user, so if we always search for values that could only be hex, there is no ambiguity), then begin a search in ArtMoney and enter in what the cheat codes value for the subscreen fix is currently at, then it is a simple matter of refining your search using different values for the subscreen cheat (001A, 002A, etc) until you have the value in ArtMoney for the subscreen cheat.

At this point you should disable 1964's cheat, and see if you can fix the subscreen delay in 1964 using only ArtMoney, once you do this, then it is time to move onto Mupen64 (or whatever emulator you want to "port" the subscreen fix to).

Once in Mupen64, use ArtMoney to find a cheat to change your rupees, chances are you are changing your rupees in the same way that you did 1964, so you now have the "key" for this whole excercise in annoyance.

now its time for a little math. I will be using the values that I found for this demonstration.

Code:
All addition and subtraction is done in HEX

1964 artmoney rupees     -> 2011A606 Find this by searching a little.
1964 artmoney subscreen  -> 201DA5C8 Find this by changing the cheat code's value in 1964's cheat manager,
                                     until you find the proper value, and can fix the subscreen delay
                                     wihout cheats with artmoney in 1964.

then subtract one from the other to find their relative offset
201DA5c8 - 2011A606 = 000BFFC2

Mupen artmoney rupees    -> 00A07096 + 000BFFC2
Mupen artmoney subscreen -> 00AC7058 <- this is what you are looking for, set it to 2

I must admit that it is a very convoluted way to get things working, but it works, and that's what matters right?

Also, technically, at this point all you have to do for any emulator is find the rupees code, then add 000BFFC2 to it to find the address of the subscreen delay fix for the Zelda OoT v1.00 rom.

This was all done using 1964 1.1, Mupen 64 v8 reset v2, and ArtMoney 7.32, using Zelda OoT v1.00.

Enjoy, also forgive me if I'm hard to understand, because I really should have been sleeping instead of figuring this out. :nuke:
 
Last edited:

Top