Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,483,090
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 04-25-24 07:49 PM
Guest: Register | Login

0 users currently in ROM Hacking | 1 guest

Main - ROM Hacking - editing BN4Blue moon... New thread | New reply


ARK1001
Posted on 09-04-16 08:18 AM Link | Quote | ID: 164041


Level: 8

Posts: 1/11
EXP: 1929
Next: 258

Since: 08-27-16
From: N/A

Last post: 2765 days
Last view: 2383 days
Hello. nice to meet you. I am new member.
I have bit question.

I am modding Megaman Battle network4 blue moon(JP). and there is things I don`t go next.

I don`t search address of hitting sprite. I am using vba(cheat sercher).
what should i do?



____________________
THANK YOU!!!

blackhole89
Posted on 09-04-16 12:08 PM Link | Quote | ID: 164044


The Guardian
Moloch whose eyes are a thousand blind windows!
Level: 124

Posts: 4150/4196
EXP: 21531863
Next: 304738

Since: 02-19-07
From: Ithaca, NY, US

Last post: 470 days
Last view: 83 days



Hello, nice to meet you too.

Could you be a bit more specific about what you are intending to do? What do you mean by "address of hitting sprite" - an address that changes value when a sprite is hit, or perhaps one that holds the number of the sprite that the player is hitting? What have you tried to do so far? (英語では説明しにくいのなら、日本語でもどうぞ...)

____________________



ARK1001
Posted on 09-04-16 03:01 PM Link | Quote | ID: 164047


Level: 8

Posts: 3/11
EXP: 1929
Next: 258

Since: 08-27-16
From: N/A

Last post: 2765 days
Last view: 2383 days
blackhole89 thank you!

I am sorry. I apologize for any confusion.

address of hitting sprite is Collision detection(Hitbox). For example Theire is Map of BN4World. when character hit It`t map, I want to mod to pass wall.
but I don`t search address.

thank you for comment.



____________________
THANK YOU!!!

blackhole89
Posted on 09-04-16 11:06 PM (rev. 2 of 09-04-16 11:29 PM) Link | Quote | ID: 164059


The Guardian
Moloch whose eyes are a thousand blind windows!
Level: 124

Posts: 4151/4196
EXP: 21531863
Next: 304738

Since: 02-19-07
From: Ithaca, NY, US

Last post: 470 days
Last view: 83 days



So you are looking for a memory location that is used to store whether the player sprite has hit a wall and can't move?

It seems like the right process to do that would be something along the lines of:
1. Go near a corner, but make sure you can still move freely.
2. Reset cheat search. Press "ok".
3. Move the player character a bit without hitting a wall.
4. Start up cheat search without resetting. Set search type to "old value", compare type to "equal", data size to 8 bits, unsigned. Press "Search". The number of memory locations visible should have been reduced. Press "OK" to leave.

Repeat steps 3 and 4 a few times. This will get rid of many memory locations that change over time, but have nothing to do with the collision detection.

5. Now, start walking towards a wall. When you hit the wall, pause the emulator WITHOUT RELEASING THE MOVEMENT KEYS (so it freezes while still showing the walking animation), like so:

|
->o| (o: player character, |: wall)
|

6. Start up cheat search without resetting. Set search type to "old value", compare type to "not equal". Press "Search". This should have reduced the number of memory locations further. Leave with "OK".

This will reduce the memory locations you are seeing to the set of those that only became different once you started being prevented from walking into a wall. However, some of those might still be unrelated to collision detection - for instance, because they are for graphics or scrolling.

7. Press OK. Unpause the game. Walk around some more, and once again pause the emulator while "pressing against a wall", i.e. while holding down the movement key in a direction that is blocked.
8. Start up cheat search without resetting. Set search and compare type to "old value", "equal". Press "Search". This should further reduce the number of memory locations. Leave with "OK".

Repeat steps 7 and 8 a few times. This will restrict your selection to memory locations that are always in a certain state when you are colliding with a wall. This may be a problem if the collision detection stores details about the type of collision (so for instance it write "0" when there is no collision, "1" when there is a collision with a wall to the right, "2" when there is one with a wall below, ...); in that case, it may make sense to restrict yourself to only do 8 and 9 in a fixed direction, or use "specific value", "not equal" with 0.

I think that if you do the above steps right, at this point you will almost certainly be down to very few candidate memory locations (and can try setting them to a fixed value with a cheat manually to see what happens). If not, you can also walk away from the wall again and use cheat search once with "old value", "not equal" as steps 9 and 10.

If at any point your list of memory locations becomes empty, you
- either slipped up somewhere (getting even one step wrong, e.g. pausing one frame after having released the movement key that makes you walk into a wall in steps 5-8, will destroy the data and you will have to start anew), or
- the memory location is periodically erased and you caught it at the wrong time at least once, or
- the game does not actually have a fixed memory location in which it stores a "collision" flag (stack-based data passing?), or
- the collision flag is used for some other information while you are not colliding with a wall (so you lost the location in steps 3 and 4) already. Be creative.

I hope this was of help.

____________________



ARK1001
Posted on 09-06-16 04:31 PM Link | Quote | ID: 164073


Level: 8

Posts: 4/11
EXP: 1929
Next: 258

Since: 08-27-16
From: N/A

Last post: 2765 days
Last view: 2383 days
blackhole89 Thank you!!

you are excellent. I am grateful to you.
I was helped you. thank you!

____________________
THANK YOU!!!

Main - ROM Hacking - editing BN4Blue moon... New thread | New reply

Acmlmboard 2.1+4δ (2023-01-15)
© 2005-2023 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.020 seconds. (349KB of memory used)
MySQL - queries: 32, rows: 56/57, time: 0.015 seconds.