Nintendo SWITCH Cheat Codes Download
Nintendo SWITCH Cheat Codes Download
Group details

Finding Moonjump Tutorial for Beginners

  • Thread starter Thread starter Eiffel2018
  • Start date Start date
  • Views Views 1,372
  • Replies Replies 26
  • Likes Likes 21

Eiffel2018

Well-Known Member
Member
Joined
Aug 23, 2020
Messages
1,629
Reaction score
8,666
Trophies
3
Age
26
XP
11,039
Country
Hong Kong
There are several programming mechanisms for dealing with Moonjump,
the more common being a fixed acceleration (gravity), where the velocity (or let say speed) decreases from a positive number to a negative number

Here is the simplest example. It uses sign 32-bit integer for storing the speed




Concept:
When jump button is pressed, the speed variable will set to a initial value, e.g. 500,
and the player will start jumping upward.

Then this value is decreasing continuously until it reach 0 (or the case of the user release the jump button),
As this moment, the height of actor reaches the topest point, and the direction changes to downward

However, this speed value will continue to decrease even if it becomes a negative number,
until the actor touch the ground.

What we can do is finding a positive value when the actor jumps up
and then finding a negative value when the actor drops down




First of all, I will add the freezing code by EdizonSE and change the pausing keys
Here are the codes to freeze the game
[Freeze Game (L)]
80000040 FF000000 20000000
[Resume Game (R)]
80000080 FF100000 20000000

Then, start a jump and pause the game when the player drop down

2022031001155900-6D90EF56D858FF65702B61063AB2CD52.jpg

Since the actor is dropping down, I expect the value of speed is between -10000 and 0,
but I will not use -1, 0, 1 since there are so many such values in the memory
So, I use [A..B] range search (type sign 32) from -10000 to -2
2022031001355700-DB1426D1DFD034027CECDE9C2DD914B8.jpg

The result will not get too many candidates
2022031001362300-DB1426D1DFD034027CECDE9C2DD914B8.jpg

Then, go back to the game, and prepare another jump for second search.
Freeze the game immediately after pressing jump
2022031001363800-6D90EF56D858FF65702B61063AB2CD52.jpg

Now, search with positive range, I used 2 .. 10000 this time
2022031001370700-DB1426D1DFD034027CECDE9C2DD914B8.jpg

Nice, there is only 1 result!
2022031001372100-DB1426D1DFD034027CECDE9C2DD914B8.jpg

Make a test to check whether this value is correct. I'll freeze this candidates by pressing X2022031002172900-DB1426D1DFD034027CECDE9C2DD914B8.jpg
Then go back to the game, try jumping again
2022031001393400-6D90EF56D858FF65702B61063AB2CD52.jpg
Fine, it works as expected.

Now, press + and give the cheat a name, Moonjump
The address was added to bookmark. We can press L to check it.
2022031002173400-DB1426D1DFD034027CECDE9C2DD914B8.jpg
Now, press ZL+A, a new Cheats was added,
Then, press R3 (right stick) to add an activate button for it, I use X, (X for moonjump, B for normal jump)
Finally, Press ZL+L3 to write back the code to cheat file.

2022031002240200-DB1426D1DFD034027CECDE9C2DD914B8.jpg
That is.
1646850205687.png

Note:
in many case the value of speed uses float 32,
you may search with 0.01 to 10000.0 and -10000.0 to -0.01
the searching method is the same. just the type is need to change to f32

and Edizon SE is the best tool for making cheat currently
 
Last edited by Eiffel2018,
thanks for this, i spent a bit of time looking for this and did it the correct way but only searched upto 100, didnt expect it to go that high. now i know why i couldnt find it
 
You do the gravity/jump height approach as your primary?

I would normally point people first at double jump -- find the double jump flag, set it to zero in cheats and boom.
After that any stats/pickups that can count in it (including pumping them way beyond anything normally seen in the game, same also goes if you have a "5% faster move speed" option somewhere while we are on the subject).
Only then do I look at gravity and jump height.
 
A. Infinite jumping (i.e. jumping in the air, for those games with built-in double jumping)
B. High jump (i.e. jump with a very large initial velocity, or reduce the 9.81 gravity)
C. Moonjump (i.e. fix the velocity to positive before releasing the button)

A and B will be easier if you hack the assembly code
C is easier if you freeze memory with Cheat-VM

If the velocity for upward and downward is well controlled, the user experience of C is better.
The time required to make jumping cheat, the fastest is also C
 
Last edited by Eiffel2018,
if you have any questions about creating cheat codes, is it okay to ask questions on this forum?
 
There are several programming mechanisms for dealing with Moonjump,
the more common being a fixed acceleration (gravity), where the velocity (or let say speed) decreases from a positive number to a negative number

Here is the simplest example. It uses sign 32-bit integer for storing the speed




Concept:
When jump button is pressed, the speed variable will set to a initial value, e.g. 500,
and the player will start jumping upward.

Then this value is decreasing continuously until it reach 0 (or the case of the user release the jump button),
As this moment, the height of player reaches the topest point, and the direction changes to downward

However, this speed value will continue to decrease even if it becomes a negative number,
until the actor touch the ground.

What we can do is finding a positive value when the actor jumps up
and then finding a negative value when the actor drops down




First of all, I will add the freezing code by EdizonSE and change the pausing keys
Here are the codes to freeze the game
[Freeze Game (L)]
80000040 FF000000 20000000
[Resume Game (R)]
80000080 FF100000 20000000

Then, start a jump and pause the game when the player drop down

View attachment 301078

Since the actor is dropping down, I expect the value of speed is between -10000 and 0,
but I will not use -1, 0, 1 since there are so many such values in the memory
So, I use [A..B] range search (type sign 32) from -10000 to -2
View attachment 301081

The result will not get too many candidates
View attachment 301082

Then, go back to the game, and prepare another jump for second search.
Freeze the game immediately after pressing jump
View attachment 301083

Now, search with positive range, I used 2 .. 10000 this time
View attachment 301084

Nice, there is only 1 result!
View attachment 301085

Make a test to check whether this value is correct. I'll freeze this candidates by pressing XView attachment 301090
Then go back to the game, try jumping again
View attachment 301086
Fine, it works as expected.

Now, press + and give the cheat a name, Moonjump
The address was added to bookmark. We can press L to check it.
View attachment 301091
Now, press ZL+A, a new Cheats was added,
Then, press R3 (right stick) to add an activate button for it, I use X, (X for moonjump, B for normal jump)
Finally, Press ZL+L3 to write back the code to cheat file.

View attachment 301095
That is.
View attachment 301094

Note:
in many case the value of speed uses float 32,
you may search with 0.01 to 10000.0 and -10000.0 to -0.01
the searching method is the same. just the type is need to change to f32

and Edizon SE is the best tool for making cheat currently
I tried the above methods in order, but MegaMan 8.9.10 does not work even if I freeze the address found by code search. Do you know what the cause is?
 
I tried the above methods in order, but MegaMan 8.9.10 does not work even if I freeze the address found by code search. Do you know what the cause is?
I've tested for Mega Man 8
no result for [s32][-10000 .. -2] and then [s32][2 .. -10000]

then I search again with [f32][-10000 .. -0.1] no result found!

Try [s32] again with a larger range [s32][0xFFF00000 .. 0xFFFFFFFE] (which will be very slow!)
and then [s32][0x2..0xFFFFF] get 49 candidates
and then [s32][0xFFF00000 .. 0xFFFFFFFE] get 21 candidates
and then [s32][0x2..0xFFFFF] get 15 candidates
and then [s32][0xFFF00000 .. 0xFFFFFFFE] get 3 candidates
and then [s32][0x2..0xFFFFF] get 1 candidate left

the address is main+531F8EC





[Moonjump (Mega Man 7)]
80000004
04000000 052D3424 00000574
20000000

[Moonjump (Mega Man 8)]
80000004
04000000 0531F8EC 00054900
20000000
 
Last edited by Eiffel2018,
In Mega Man 9
I test for both method in version 7 and 8, it fails
Then I reverse the sign of speed, i.e. negative for upward , positive for downward
Which get the address

[Moonjump (Mega Man 9)]
80000004
04000000 0542EADC FFFFFB80
20000000

The last one is left for you,
find it by yourself
 
  • Like
Reactions: RK-ONE
Note:
Range search for floating point number
it should be [f32][-0.1 .. -10000] instead of [f32][-10000 .. -0.1]
the order is reverse.

For this kind of search,
we can just use the presets (R3 - right Stick In),
and also the negate (R)


edited: This case has changed in the latest version
 
Last edited by Eiffel2018,
  • Like
Reactions: RK-ONE
A. Infinite jumping (i.e. jumping in the air, for those games with built-in double jumping)
B. High jump (i.e. jump with a very large initial velocity, or reduce the 9.81 gravity)
C. Moonjump (i.e. fix the velocity to positive before releasing the button)

A and B will be easier if you hack the assembly code
C is easier if you freeze memory with Cheat-VM

If the velocity for upward and downward is well controlled, the user experience of C is better.
The time required to make jumping cheat, the fastest is also C
Finding flags (never mind those games with multiple air jumps) I would say is the easier thing for conventional cheat search approaches. It is still finding a flag so not as trivial as intro to cheat making infinite gold/potions/health/time/... but enough that you can get to a quiet point in the level and be quick on the cheat search button/do slowndowns or even frame by frame (have to hit search after jumping but before double, after double but before touching down, and then a few rounds of things that have changed despite not jumping or being in the right point of the jump for things to have changed all so as to get rid of any timers or music or background animation code), bonus is in 99% of such games the cooldown is instant or near enough that so it is not like other flags where you might have to wait/run in circles for two minutes for the no enemy attacks flag to wear off (or try your luck and possibly memory* with savestates).

*if playing cheat finder and trying to remember what you are looking for this instant is occasionally tricky when 5 minutes in and into a groove, only to lose it all because you fat fingered the wrong search option or double clicked change where literally not an instruction was made between those presses then adding savestates does not make the rage inducing moments happen less often. I have often toyed with making some kind of image editor like undo history with attendant savestates for just this reason.

Indeed C I would usually put as an assembly approach and start teaching people to look at OAM or cameras or maybe find the location/position of items in a game (assuming it is one of those games that moves the item/camera and not the whole world). Anything that changes that then involving gravity or some set value before you start which you can fiddle with. Not a particularly hard assembly hack (you need less understanding of code and more basic maths, even if you are adding in your own multiplier or addition) but still going there vs flags.

The items approach varies with game -- I had a little dungeon crawler once that gave a 5% in this case speed boost attached to this weapon/pickup, edited the save and/or level drops to have one with 500% (was not even XML and pure plain text) and promptly made it borderline unplayable with it equipped but the principle carries. Other things will be way harder or pointless even if you add it as it is a low fixed amount or something.
 
ロックマン9で
バージョン7と8で両方の方法をテストしましたが、失敗します
次に、速度の符号を逆にします。つまり、上向きの場合は負、下向きの場合は正です。
どちらがアドレスを取得しますか

[ムーンジャンプ(ロックマン9)]
80000004
04000000 0542EADC FFFFFB80
20000000

最後のものはあなたに残されています、
自分で見つけてください
Thank you for the cheat code. I will look for the rest myself. And it was helpful.
 
Last edited by RK-ONE,
In Mega Man 9
I test for both method in version 7 and 8, it fails
Then I reverse the sign of speed, i.e. negative for upward , positive for downward
Which get the address

[Moonjump (Mega Man 9)]
80000004
04000000 0542EADC FFFFFB80
20000000

The last one is left for you,
find it by yourself.
I found the address of Moon Jump by myself. I did it while watching how to add a cheat code in Edizon SE above, but it is not reflected in the game. The cheat code should be correct. After searching the code, the address is frozen and confirmed in the game. Is it a bug in Edizon SE? Should I remove the current Edizon SE and download it again? Also, if Mega Man 7.8.9.10 is the Japanese version, the address may be off.
It is the address of the moon jump of Mega Man 10 identified by code search.
0567F2E4 FFFFFC00
 
Last edited by RK-ONE,
I created my own cheat code.
I did it while watching how to add a cheat code in Edizon SE above, but it is not reflected in the game. The cheat code should be correct. After searching the code, the address is frozen andconfirmed in the game. Is it a bug in Edizon SE? Should I remove the current Edizon SE and download it again?
Also, if Mega Man 7.8.9.10 is the Japanese version, the address may be off.
[mm10 Moon jump]
80000004
04000000 0567F2E4 FFFFFC00
20000000
I don't think so,
Normally, if the address is located in MAIN section, it is fixed and does not need pointers
I've tried, it is main+0567E2E4

May be different stage / actors, get different address

Try these , need to test more and more

[Moonjump (Mega Man 7)]
80000004
04000000 052D3424 00000574
20000000

[Moonjump (Mega Man 8)]
80000004
04000000 0531F8EC 00054900
20000000

[Moonjump (Mega Man 9)]
80000004
04000000 0542EADC FFFFFB80
20000000

[Moonjump (Mega Man 10)]
80000004
04000000 0567E2E4 FFFFFC40
04000000 0567F2E4 FFFFFC40
20000000
 
  • Like
Reactions: RK-ONE
私はそうは思いません、
通常、アドレスがMAINセクションにある場合、アドレスは固定されており、ポインタは必要ありません。
私が試しました、それはmain+0567E2E4です

異なるステージ/俳優である可能性があり、異なるアドレスを取得します

これらを試して、ますますテストする必要があります

[ムーンジャンプ(ロックマン7)]
80000004
04000000 052D3424 00000574
20000000

[ムーンジャンプ(ロックマン8)]
80000004
04000000 0531F8EC 00054900
20000000

[ムーンジャンプ(ロックマン9)]
80000004
04000000 0542EADC FFFFFB80
20000000

[ムーンジャンプ(ロックマン10)]
80000004
04000000 0567E2E4 FFFFFC40
04000000 0567F2E4 FFFFFC40
20000000
Thank you for the cheat code.
I will try it immediately.
 
Last edited by RK-ONE,
I don't think so,
Normally, if the address is located in MAIN section, it is fixed and does not need pointers
I've tried, it is main+0567E2E4

May be different stage / actors, get different address

Try these , need to test more and more

[Moonjump (Mega Man 7)]
80000004
04000000 052D3424 00000574
20000000

[Moonjump (Mega Man 8)]
80000004
04000000 0531F8EC 00054900
20000000

[Moonjump (Mega Man 9)]
80000004
04000000 0542EADC FFFFFB80
20000000

[Moonjump (Mega Man 10)]
80000004
04000000 0567E2E4 FFFFFC40
04000000 0567F2E4 FFFFFC40
20000000
I tried the moon jump cheat code.
Correct. The Moon Jump cheat code that I told you did not reflect all of Mega Man 7.8.9.10 in the game.
Please tell me what is the cause. Thank you.
 
Last edited by RK-ONE,
I don't think so,
Normally, if the address is located in MAIN section, it is fixed and does not need pointers
I've tried, it is main+0567E2E4

May be different stage / actors, get different address

Try these , need to test more and more

[Moonjump (Mega Man 7)]
80000004
04000000 052D3424 00000574
20000000

[Moonjump (Mega Man 8)]
80000004
04000000 0531F8EC 00054900
20000000

[Moonjump (Mega Man 9)]
80000004
04000000 0542EADC FFFFFB80
20000000

[Moonjump (Mega Man 10)]
80000004
04000000 0567E2E4 FFFFFC40
04000000 0567F2E4 FFFFFC40
20000000
Posting in a row and ruining the forum
I'm sorry to have become.
I will be careful from now on, so I look forward to working with you. I'm sorry.
 
Last edited by RK-ONE,
I don't think so,
Normally, if the address is located in MAIN section, it is fixed and does not need pointers
I've tried, it is main+0567E2E4

May be different stage / actors, get different address

Try these , need to test more and more

[Moonjump (Mega Man 7)]
80000004
04000000 052D3424 00000574
20000000

[Moonjump (Mega Man 8)]
80000004
04000000 0531F8EC 00054900
20000000

[Moonjump (Mega Man 9)]
80000004
04000000 0542EADC FFFFFB80
20000000

[Moonjump (Mega Man 10)]
80000004
04000000 0567E2E4 FFFFFC40
04000000 0567F2E4 FFFFFC40
20000000
This is also posted continuously and it feels like a troll in the forum
I'm sorry to have become.
I will be careful from now on, so I look forward to working with you. I'm sorry.
 
Last edited by RK-ONE,

About this group

Avoid creating cheat Request Topic​

Request cheats are made in :​

cheat-codes-ams-and-sx-os-add-and-request-general​


This group provides cheat code authors to post works, share experience, learn and exchange

This group also provides cracking game players to get the latest and most complete cheats, and assist in testing

Since GBATemp is the most famous place in the industry, we hope to improve the content quality of this group

The main contents of this group include:
1. Publish personal originals.
2. Improve the quality of secondary creation (including version updates, repairs, and enhancements)
3. Request to create game cheats
4. Tutorial sharing on developing game cheat codes

For technical exchanges, sharing the code of others must attach the URL of the webpage published by the original author (do not copy the complete code)

Although the content of this group is very precious, it is provided for free, and it is not allowed to reprint it to commercial places or paid membership websites for profit.

Group statistics

Group owner:
matias3ds
Members:
91703
Threads:
8461
Messages:
44094
Photos:
0

Site & Scene News

New Hot Discussed User Submitted