How to find a pointer in a game? - heap-memory

I am trying to find the offset/pointer for FIFA 22 timed finishing.
For example, if you double press "D" it will activate the timed finishing mechanic.
If you press them too quickly, too late or in the right time it will show like this "TOO EARLY" "TOO LATE" "EARLY" "GREAT TIMING"
I am trying to find this offset to modify, so everytime you shoot with timed finishing, so it will appear" GREAT TIMING" even if you don't do it right.
In FIFA 20, the offset is right here, in the attached photo.
Memory adress : 142BEC9A and you need to modify the C5 into C7, and all shots will be with green saying great timing.
But in FIFA 22, I cant' find it.
Can someone help me please, how do I know where to look? I mention I didn't found fifa 20 memory adress alone, I just got it from someone's cheat engine table.
How do I know where to find that memory adress for fifa 22 ?
https://www.youtube.com/watch?v=tk_F...channel=247CTF
Here it's a video so you can know how this game mechanic works, here in fifa 21, I had timed finishing hack activated, and as you can see, all shots were perfect.
How do I find that offset/pointer? Because it's not like searching for HP or Ammo in a shooter, to search 100, get some damage, and then do some rescan.
In the photo I posted, the adres 142BECD9A it's responsible 4for timed finishing.
The only thing I should do in that dump, is to modify the C5 into C7, and voila, all shots will be perfect.
My question is, how do you find this to modify in FIFA 22??

Ok, I don't personally own or play FIFA, but i've looked at the mechanic and can give you a few tips as to how to find it. But before that keep in mind that finding a code and knowing how to modify it is not a trivial task, like finding a value and changing it and may require you to have way more experience with cheat engine, game logic and assembly.
What you are trying to find is an instruction or instructions somewhere in the code which are responsible for figuring out how well you did the timing shot. There are many ways to get there, but my usual method is to start by finding a value very closely related to the instruction.
For example: If you are looking for an instruction that executes when the player gets damaged, you should probably find the player health, since it will likely be modified by that instruction.
With FIFA i noticed there is a bar that appears over the player's head when he does the timing shot in which bar there are lines moving towards the center. There is likely a value associated with the current value/position of that bar. Maybe when it's in the red zone the value is:10, and when it's in the green zone it might be 95-100.
To find it you can use the speedhack to slowdown your game and then search for unknown float/4 byte value and search for incremented.
Once you find the value play around with it and see if you can force it to be such that it always gives you the 'Great shot'
For changing the code:
With the value in hand you can use a 'find out what writes to that address' to find the code that modifies that value. If you can understand it and the instructions around it, you may be able to write a script that always sets it to a value that would cause it to give you 'Great timing'

Related

How to loop through Roblox studio to find all the humanoid and choose which is the closest one to chase? (For an Npc)

I want to make a Npc that chases the nearest humanoids (Npc or Player) and I'm not sure how to loop through workspace to do that.
I tried experimenting with for loops but I'm a noob and I need help.
Ok i figured it out but One problem though, I use this script to check whether the npc is close and if its less than 3 to damage the other fighter... (fighter.HumanoidRootPart.Position.X. - closestEnemy.HumanoidRootPart.Position.X).Magnitude < 3...but when it runs and the npcs chase each other and they Touch each other it prints 55 or 30 even though they are legit touching each other.
Get the distance between you and the entity and check if its smaller. Its very simple math

XOR neural network seems to converge around 0.5

I'm trying to code a XOR neural network for some weeks, but I always face the same problem. First of all you have to know that I spent hours and hours trying all I found on the net but nothing worked.
After trying to do it using 3Blue1Brown videos on the subject without success, I am now using this http://neuralnetworksanddeeplearning.com/chap2.html. I coded a Matrix library
with all the necessary functions.
My network does have 3 layers with: 2 input neurons, 2 hidden neurons, 1 output neuron.
Moreover I have 2 biases pointing the hidden neurons, and one pointing the output neuron. I use the sigmoid function to have values between 0 and 1, and the quadratic cost function. Everytime I train the network (ie everytime I use backpropagation) I choose a random input with its corresponding output.
The problem is, whatever how many times I train it, the output is never even close to 0 or 1 but always messing around 0.5, and my cost function is stuck around 0.14.
ANY HINT OR HELP IS APPRECIATED -- I really don't get where the problem is, I feel like I've tried everything. PS: Did not show any code here, if needed, don't hesitate to say it.
I've managed to resolve my problem by adding layers in my network. Moreover, when I improved it in order to code an OCR, I added a learning rate to escape from local miminas which were partly the problem everytime my network was getting stuck.

Filter out text-only spams

I have been getting these spam emails that are just text and the spam filter can't seem to do anything about it. I'm trying to come up with a regular expression that can possibly catch these spams. Below is couple samples. I would very much like to hear ideas on how to filter out these nuisance spams that the spam filter can't seem to filter out.
The spams contains just texts and there does not seem to be any particular pattern that I can see. There is always links, of course. But, no discernible pattern I can see. Love to hear ideas on how to filter something like this.
=======================
CBS Report - There are 3 so called “health foods” you should NEVER eat
See them > http://www.cielcardenst.com/881j8x6386eIrTb65xkMhhxvKaFgOUqZtzMhff05/buzzwords-stroker
These are foods that are being marketed to you as super foods for your health.
If you're serious about regaining your health and energy, I urge you to
watch every second of this brief presentation I've made to help you do
just that
Full Story > http://www.cielcardenst.com/881j8x6386eIrTb65xkMhhxvKaFgOUqZtzMhff05/buzzwords-stroker
All statements above are an-ad
go here to end
http://www.cielcardenst.com/af78s6s3x8Y6f_b65KkMhhxvKaFgOUqZtzMhfb45/buzzwords-stroker
218 E. Bearss Ave. , Ste. 203, Tampa, FL 33613
Discard your email from our database by submitting your name here
http://www.cielcardenst.com/chooses-concretes/9908S9j3870ib65ZkMhhxvKaFgOUqZtzMhf2f1
Eleanor Dimaria / 3308 Lovell Ct Las Vegas Nv 89121-3733
resolute that Dalzell was forced to give ground. As he slowly retreated and shifted, Jetson drove in more impetuously than ever. Midshipman Dan found himself at last in a position of advantage. Now, hammer him, Danny advised; Farley,
nerve-energy, was now just the least bit confused. Dan landed on one ear, and then against his enemys chin. Both were hard, dazing blows, though neither left a mark. Then an uppercut and Dalzell landed on Jetsons jugular. With, a gasp the fellow went down to the floor. One, two, three, four Hepson began counting. Dont bother
right soon, broke in Dan Dalzell eagerly. Joyce had already stepped into the room, leaving the door open. Now, as though by instinct, the midshipmen seemed aware that the O.C., who to-day happened to be Lieutenant Cotton, U.S.N., was standing in front of the doorway gazing in. Instantly the middies came to the position of
attention, looking straight ahead of them. Good evening, gentlemen, greeted the O.C. Is anything unusual going onWe have been discussing the football situation, sir, announced Midshipman Hepson quite truthfully. Had Hepson been asked if there had recently been a fight in progress he would have answered truthfully, but he
===================================
Did You See What Drastic Things This Mom Did To Her Face? (Photos Included In Article)
Doctors around the world are angry that THIS mother posted her simple facelift trick online.
(She is 55 but now looks 33)
Only 5 complimentary samples are left.
Please HURRY and read her exclusive story here
http://www.clintoscraziness.com/begotten-breakaway/936E8o634bBNb2imMjjywKbFiOVsav0Mjh1a6
You may stop by going below
http://www.clintoscraziness.com/5edR8m6sk34cKb2MmMjjywKbFiOVsav0Mjhb9d/multi-triplets
Or by writing to PO Box 26383 2700 Louisiana Ave. S. Minneapolis, MN 55426
Take off your account from our listing
by confirming your information http://www.clintoscraziness.com/pertaining-Westfield/31eu89sy3v-4dXb2EmMjjywKbFiOVsav0Mjh14e this way
35 Yosemite Dr Cherokee Village Ar 72529-5219

Pacman: how do the eyes find their way back to the monster hole?

I found a lot of references to the AI of the ghosts in Pacman, but none of them mentioned how the eyes find their way back to the central ghost hole after a ghost is eaten by Pacman.
In my implementation I implemented a simple but awful solution. I just hard coded on every corner which direction should be taken.
Are there any better/or the best solution? Maybe a generic one that works with different level designs?
Actually, I'd say your approach is a pretty awesome solution, with almost zero-run time cost compared to any sort of pathfinding.
If you need it to generalise to arbitrary maps, you could use any pathfinding algorithm - breadth-first search is simple to implement, for example - and use that to calculate which directions to encode at each of the corners, before the game is run.
EDIT (11th August 2010): I was just referred to a very detailed page on the Pacman system: The Pac-Man Dossier, and since I have the accepted answer here, I felt I should update it. The article doesn't seem to cover the act of returning to the monster house explicitly but it states that the direct pathfinding in Pac-Man is a case of the following:
continue moving towards the next intersection (although this is essentially a special case of 'when given a choice, choose the direction that doesn't involve reversing your direction, as seen in the next step);
at the intersection, look at the adjacent exit squares, except the one you just came from;
picking one which is nearest the goal. If more than one is equally near the goal, pick the first valid direction in this order: up, left, down, right.
I've solved this problem for generic levels that way: Before the level starts, I do some kind of "flood fill" from the monster hole; every tile of the maze that isn't a wall gets a number that says how far it is away from the hole. So when the eyes are on a tile with a distance of 68, they look which of the neighbouring tiles has a distance of 67; that's the way to go then.
For an alternative to more traditional pathfinding algorithms, you could take a look at the (appropriately-named!) Pac-Man Scent Antiobject pattern.
You could diffuse monster-hole-scent around the maze at startup and have the eyes follow it home.
Once the smell is set up, runtime cost is very low.
Edit: sadly the wikipedia article has been deleted, so WayBack Machine to the rescue...
You should take a look a pathfindings algorithm, like Dijsktra's Algorithm or A* algorithm. This is what your problem is : a graph/path problem.
Any simple solution that works is maintainable, reliable and performs well enough is a good solution. It sounds to me like you have already found a good solution ...
An path-finding solution is likely to be more complicated than your current solution, and hence more likely to require debugging. It will probably also be slower.
IMO, if it ain't broken, don't fix it.
EDIT
IMO, if the maze is fixed then your current solution is good / elegant code. Don't make the mistake of equating "good" or "elegant" with "clever". Simple code can also be "good" and "elegant".
If you have configurable maze levels, then maybe you should just do the pathfinding when you initially configure the mazes. Simplest would be to get the maze designer to do it by hand. I'd only bother automating this if you have a bazillion mazes ... or users can design them.
(Aside: if the routes are configured by hand, the maze designer could make a level more interesting by using suboptimal routes ... )
In the original Pacman the Ghost found the yellow pill eater by his "smell" he would leave a trace on the map, the ghost would wander around randomly until they found the smell, then they would simply follow the smell path which lead them directly to the player. Each time Pacman moved, the "smell values" would get decreased by 1.
Now, a simple way to reverse the whole process would be to have a "pyramid of ghost smell", which has its highest point at the center of the map, then the ghost just move in the direction of this smell.
Assuming you already have the logic required for chasing pacman why not reuse that? Just change the target. Seems like it would be a lot less work than trying to create a whole new routine using the exact same logic.
It's a pathfinding problem. For a popular algorithm, see http://wiki.gamedev.net/index.php/A*.
How about each square having a value of distance to the center? This way for each given square you can get values of immediate neighbor squares in all possible directions. You pick the square with the lowest value and move to that square.
Values would be pre-calculated using any available algorithm.
This was the best source that I could find on how it actually worked.
http://gameai.com/wiki/index.php?title=Pac-Man#Respawn
When the ghosts are killed, their disembodied eyes return to their starting location. This is simply accomplished by setting the ghost's target tile to that location. The navigation uses the same rules.
It actually makes sense. Maybe not the most efficient in the world but a pretty nice way to not have to worry about another state or anything along those lines you are just changing the target.
Side note: I did not realize how awesome those pac-man programmers were they basically made an entire message system in a very small space with very limited memory ... that is amazing.
I think your solution is right for the problem, simpler than that, is to make a new version more "realistic" where ghost eyes can go through walls =)
Here's an analog and pseudocode to ammoQ's flood fill idea.
queue q
enqueue q, ghost_origin
set visited
while q has squares
p <= dequeue q
for each square s adjacent to p
if ( s not in visited ) then
add s to visited
s.returndirection <= direction from s to p
enqueue q, s
end if
next
next
The idea is that it's a breadth-first search, so each time you encounter a new adjacent square s, the best path is through p. It's O(N) I do believe.
I don't know much on how you implemented your game but, you could do the following:
Determine the eyes location relative position to the gate. i.e. Is it left above? Right below?
Then move the eyes opposite one of the two directions (such as make it move left if it is right of the gate, and below the gate) and check if there are and walls preventing you from doing so.
If there are walls preventing you from doing so then make it move opposite the other direction (for example, if the coordinates of the eyes relative to the pin is right north and it was currently moving left but there is a wall in the way make it move south.
Remember to keep checking each time to move to keep checking where the eyes are in relative to the gate and check to see when there is no latitudinal coordinate. i.e. it is only above the gate.
In the case it is only above the gate move down if there is a wall, move either left or right and keep doing this number 1 - 4 until the eyes are in the den.
I've never seen a dead end in Pacman this code will not account for dead ends.
Also, I have included a solution to when the eyes would "wobble" between a wall that spans across the origin in my pseudocode.
Some pseudocode:
x = getRelativeOppositeLatitudinalCoord()
y
origX = x
while(eyesNotInPen())
x = getRelativeOppositeLatitudinalCoordofGate()
y = getRelativeOppositeLongitudinalCoordofGate()
if (getRelativeOppositeLatitudinalCoordofGate() == 0 && move(y) == false/*assume zero is neither left or right of the the gate and false means wall is in the way */)
while (move(y) == false)
move(origX)
x = getRelativeOppositeLatitudinalCoordofGate()
else if (move(x) == false) {
move(y)
endWhile
dtb23's suggestion of just picking a random direction at each corner, and eventually you'll find the monster-hole sounds horribly ineficient.
However you could make use of its inefficient return-to-home algorithm to make the game more fun by introducing more variation in the game difficulty. You'd do this by applying one of the above approaches such as your waypoints or the flood fill, but doing so non-deterministically. So at every corner, you could generate a random number to decide whether to take the optimal way, or a random direction.
As the player progresses levels, you reduce the likelihood that a random direction is taken. This would add another lever on the overall difficulty level in addition to the level speed, ghost speed, pill-eating pause (etc). You've got more time to relax while the ghosts are just harmless eyes, but that time becomes shorter and shorter as you progress.
Short answer, not very well. :) If you alter the Pac-man maze the eyes won't necessarily come back. Some of the hacks floating around have that problem. So it's dependent on having a cooperative maze.
I would propose that the ghost stores the path he has taken from the hole to the Pacman. So as soon as the ghost dies, he can follow this stored path in the reverse direction.
Knowing that pacman paths are non-random (ie, each specific level 0-255, inky, blinky, pinky, and clyde will work the exact same path for that level).
I would take this and then guess there are a few master paths that wraps around the entire
maze as a "return path" that an eyeball object takes pending where it is when pac man ate the ghost.
The ghosts in pacman follow more or less predictable patterns in terms of trying to match on X or Y first until the goal was met. I always assumed that this was exactly the same for eyes finding their way back.
Before the game begins save the nodes (intersections) in the map
When the monster dies take the point (coordinates) and find the
nearest node in your node list
Calculate all the paths beginning from that node to the hole
Take the shortest path by length
Add the length of the space between the point and the nearest node
Draw and move on the path
Enjoy!
My approach is a little memory intensive (from the perspective of Pacman era), but you only need to compute once and it works for any level design (including jumps).
Label Nodes Once
When you first load a level, label all the monster lair nodes 0 (representing the distance from the lair). Proceed outward labelling connected nodes 1, nodes connected to them 2, and so on, until all nodes are labelled. (note: this even works if the lair has multiple entrances)
I'm assuming you already have objects representing each node and connections to their neighbours. Pseudo code might look something like this:
public void fillMap(List<Node> nodes) { // call passing lairNodes
int i = 0;
while(nodes.count > 0) {
// Label with distance from lair
nodes.labelAll(i++);
// Find connected unlabelled nodes
nodes = nodes
.flatMap(n -> n.neighbours)
.filter(!n.isDistanceAssigned());
}
}
Eyes Move to Neighbour with Lowest Distance Label
Once all the nodes are labelled, routing the eyes is trivial... just pick the neighbouring node with the lowest distance label (note: if multiple nodes have equal distance, it doesn't matter which is picked). Pseudo code:
public Node moveEyes(final Node current) {
return current.neighbours.min((n1, n2) -> n1.distance - n2.distance);
}
Fully Labelled Example
For my PacMan game I made a somewhat "shortest multiple path home" algorithm which works for what ever labyrinth I provide it with (within my set of rules). It also works across them tunnels.
When the level is loaded, all the path home data in every crossroad is empty (default) and once the ghosts start to explore the labyrinth, them crossroad path home information keeps getting updated every time they run into a "new" crossroad or from a different path stumble again upon their known crossroad.
The original pac-man didn't use path-finding or fancy AI. It just made gamers believe there is more depth to it than it actually was, but in fact it was random. As stated in Artificial Intelligence for Games/Ian Millington, John Funge.
Not sure if it's true or not, but it makes a lot of sense to me. Honestly, I don't see these behaviors that people are talking about. Red/Blinky for ex is not following the player at all times, as they say. Nobody seems to be consistently following the player, on purpose. The chance that they will follow you looks random to me. And it's just very tempting to see behavior in randomness, especially when the chances of getting chased are very high, with 4 enemies and very limited turning options, in a small space. At least in its initial implementation, the game was extremely simple. Check out the book, it's in one of the first chapters.

How do I detect whether the sample supplied by VideoSink.OnSample() is right-side up?

We're currently using the Silverlight VideoSink to capture video from users' local webcams, kinda like so:
protected override void OnSample(long sampleTime, long frameDuration, byte[] sampleData)
{
if (FrameShouldBeSubmitted())
{
byte[] resampledData = ResizeFrame(sampleData);
mediaController.SetVideoFrame(resampledData);
}
}
Now, on most of the machines that we've tested, the video sample provided in the byte[] sampleData parameter is upside-down, i.e., if you try to take the RGBA data and turn it into, say, a WriteableBitmap, the bitmap will be upside-down. That's odd, but fairly easy to correct, of course -- you just have to reverse the array as you encode it.
The problem is that at least on some machines (e.g., the single Macintosh in our test environment), the video sample provided is no longer upside-down, but right-side up, and hence, flipping the image actually results in an image that's received upside-down on the far side.
I reported this to MS as a bug, but their (terse) response was that it was "As Designed". Further attempts at clarification have so far been ignored.
Now, I'll grant that it's kinda entertaining to imagine the discussions behind this design decision: "OK, just to make it interesting, let's play the video rightside up on a Mac, but let's turn it upside down for Windows!" "Great idea!" "Yeah, that'll keep those developers guessing!" But beyond that, I can't find this, umm, "feature" documented anywhere, nor can I find any documentation on how one is supposed to be able to tell that a given video sample is upside down or rightside up. Any thoughts on how to tell this?
EDIT 3/29/10 4:50 pm - I got a response from MS which said that the appropriate way to tell was through the Stride property on the VideoFormat object, i.e., if the stride value is negative, the image will be upside-down. However, my own testing indicates that unless I'm doing something wrong, this isn't the case. At least on my own machine, whether the stride value is zero or negative (the only options I see), the sampled image is still upside-down.
I was going to suggest looking at VideoFormat.Stride provided at VideoSink.OnFormatChange but then I noticed your edit. I went ahead and tested it at my dev machine, image is upside down and stride is negative as expected. Have you checked again recently?
Even though stride made perfect sense for native applications (using stride at pointer operations), I agree that current behavior is not what you expect from a modern API. However performance wise, it is better not to make changes on data received from native API.
Yet at this point, while we are talking about performance, why not provide samples in formats other than PixelFormatType.Format32bppArgb so that we can avoid color space conversion? BTW, there is a VideoCaptureDevice.DesiredFormat property which only works for resolution as there is no alternative to PixelFormatType.Format32bppArgb.

Resources