Skeetendo

’Cause all games were better on the GBC

You are not logged in.

#1 2013-10-18 18:46:41

wyatt8740
New member
Registered: 2013-10-18
Post 1/4

Can't find a working link to pointer berechner?

I can't use another pointer calculator due to my using WINE in linux, and none of the other calculators work, so I'd like to know if anyone can send me a PM with a link to pointer berechner (or link to it publicly). I REALLY need to find it, and I can't get it anywhere.

EDIT: If this is in the wrong section, please tell me. I'm new here.

Last edited by wyatt8740 (2013-10-18 18:51:08)

Offline

#2 2013-11-09 13:57:42

Pokemon_Master
Member
From: emuNAND
Registered: 2013-05-18
Post 533/947
Website

Re: Can't find a working link to pointer berechner?

That's what i'm searching too.

Offline

#3 2013-11-09 15:02:01

Danny-E 33
Administrator
Registered: 2012-06-09
Post 674/1,034

Re: Can't find a working link to pointer berechner?

Pointer berechner really isn't very necessary.
Calculating a pointer is this easy:
(address && 0x3FFF) + 0x4000
Then just switch the bytes if you need the pointer in little endian.


Red Hack: Pokémon Prototype

Total number of registered users: 8000+
Total number of active users: ~12

Offline

#4 2013-11-09 16:41:26

Pokemon_Master
Member
From: emuNAND
Registered: 2013-05-18
Post 535/947
Website

Re: Can't find a working link to pointer berechner?

Danny-E 33 wrote:

Pointer berechner really isn't very necessary.
Calculating a pointer is this easy:
(address && 0x3FFF) + 0x4000
Then just switch the bytes if you need the pointer in little endian.

And what can i do betwen 0x3FFF and 0x4000?

Offline

#5 2013-11-09 16:56:38

Danny-E 33
Administrator
Registered: 2012-06-09
Post 676/1,034

Re: Can't find a working link to pointer berechner?

That doesn't make any sense.
Please better explain your question.


Red Hack: Pokémon Prototype

Total number of registered users: 8000+
Total number of active users: ~12

Offline

#6 2013-11-09 17:04:52

Pokemon_Master
Member
From: emuNAND
Registered: 2013-05-18
Post 536/947
Website

Re: Can't find a working link to pointer berechner?

Well than pointer berechner is needed.
And i'm saying. Are there other bytes betwen 0x3FFF and 0x4000? And what happens if i change those bytes?

Offline

#7 2013-11-09 17:28:29

Danny-E 33
Administrator
Registered: 2012-06-09
Post 677/1,034

Re: Can't find a working link to pointer berechner?

I'm telling you that what you are saying does not make any sense.
It's clear you don't know what you are talking about and therefore cannot ask your question correctly.


Red Hack: Pokémon Prototype

Total number of registered users: 8000+
Total number of active users: ~12

Offline

#8 2013-11-09 17:39:00

Miksy91
Member
Registered: 2010-10-16
Post 1,963/2,317

Re: Can't find a working link to pointer berechner?

Danny-E 33 wrote:

Pointer berechner really isn't very necessary.
Calculating a pointer is this easy:
(address && 0x3FFF) + 0x4000
Then just switch the bytes if you need the pointer in little endian.

That's also a kinda clever way of calculating them, never really thought about it.
Personally I like using the four last digits of the offset and "adjusting" it between 0x4000 and 0x7FFF, but both work.

Pokemon_Master wrote:

Well than pointer berechner is needed.
And i'm saying. Are there other bytes betwen 0x3FFF and 0x4000? And what happens if i change those bytes?

Pointer Berechner is pretty useless tool actually. But if you really want to have a GB pointer calculator to use, search for one in romhacking.net.
But the thing is that without knowing how to calculate pointers by yourself, you can't do much with the results either.

The formula that Danny wrote here ANDs the offset with hexadecimal value 0x3FFF, and adds 0x4000 to the result. AND is a mathematical operation (more info in Google).

Example:

address = 0x2B8A0

(address && 0x3FFF) = (0x2B8A0 && 0x3FFF) = 0x38A0
pointer: 0x38A0 + 0x4000 = 0x78A0 --> A0 78

Last edited by Miksy91 (2013-11-09 17:45:07)

Offline

#9 2013-11-09 17:51:34

Crystal_
Member
From: Spain
Registered: 2012-09-16
Post 132/434
Website

Re: Can't find a working link to pointer berechner?

Holy jeez, it's just so easy:

0x1A92B6. This is an hexadecimal number right? Right. Hex numbers have the prefix 0x.

There's nothing between 0x3FFF and 0x4000 because there's no G, H, I or any other letter past F. So after 0x3FFF, it comes 0x4000. After 0x03FF, it comes 0x0400. After 0x78AFF, it comes 78B00. And so on.

Now let's go back to 0x1A92B6 and let's calculate the pointer in three incredibly simple steps:

1. Take the four digit starting from the end. That means from 0x1A92B6, you take the '9', from 0x519ED you'd take the '1' and from 0x1BCD06, you'd take the 'C'. Remove everything before that digit. That means that 0x1A92B6 becomes 0x92B6

2. Now that digit (the fourth from the end)...
is 0/4/8/C? If so it becomes 4.
is 1/5/9/D? If so it becomes 5.
is 2/6/A/E? If so it becomes 6.
Is 3/7/B/F? If so it becomes 7.

Since in our case it was a '9', it becomes a '5', so the number we got so far turns into 0x52B6.

3. Now notice that the number has four digits. Swap the first two with the last two. So we have 0xB652. And voila, or pointer is 0xB6 0x52.

If we wanted a three byte pointer we would divide, in hexadecimal, the original address (0x1A92B6) by 0x4000. The result is 0x6A. Thus, the 3-byte pointer would be 0x6A 0xB6 0x52.

There is a very simple logic behind this all and you should be able to calculate two-byte pointers in your head in just five seconds once you get used to them. But if a step-by-step guide is what fits you, then here you have it.

Last edited by Crystal_ (2013-11-09 17:51:57)

Offline

#10 2013-11-10 00:19:17

Tauwasser
Member
Registered: 2010-10-16
Post 415/448

Re: Can't find a working link to pointer berechner?

Danny-E 33 wrote:

Calculating a pointer is this easy:
(address && 0x3FFF) + 0x4000
Then just switch the bytes if you need the pointer in little endian.

Won't work for rom bank 0x00, won't work for MBC6, etc. :-|

cYa,

Tauwasser

Offline

#11 2013-11-10 02:39:48

Danny-E 33
Administrator
Registered: 2012-06-09
Post 681/1,034

Re: Can't find a working link to pointer berechner?

Tauwasser wrote:
Danny-E 33 wrote:

Calculating a pointer is this easy:
(address && 0x3FFF) + 0x4000
Then just switch the bytes if you need the pointer in little endian.

Won't work for rom bank 0x00, won't work for MBC6, etc. :-|

cYa,

Tauwasser

Eh. Bank 0 pointers don't need to be calculated. The address is the pointer. So I think that's a fair exception.
And why would this not work with MBC6?


Red Hack: Pokémon Prototype

Total number of registered users: 8000+
Total number of active users: ~12

Offline

#12 2013-11-10 04:16:29

Hat
Member
Registered: 2013-02-04
Post 55/118

Re: Can't find a working link to pointer berechner?

Offline

#13 2013-11-10 04:33:04

Tauwasser
Member
Registered: 2010-10-16
Post 416/448

Re: Can't find a working link to pointer berechner?

Danny-E 33 wrote:

Eh. Bank 0 pointers don't need to be calculated. The address is the pointer. So I think that's a fair exception.

Actually, I don't think so. I made my point exactly because even bank 0x00 pointers need to be calculated correctly when they're user input for example. I have seen lots of tools that cannot handle certain 3-byte pointers and die in ridiculous ways because of this. Repoint the map table to RB 0x00? Have code access it at 25:204D? --> Crash :|
Basically, whenever your program needs to calculate a pointer, it would have to sanitize the input before. Since this is probably in more than one place, you'll run into trouble using the above formula on its own.

Danny-E 33 wrote:

And why would this not work with MBC6?

See Hat's link. It's quite excellent that he found it so fast :) Thanks. I kinda forgot I posted about this before :-$

cYa,

Tauwasser

Offline

#14 2013-11-10 04:45:48

Kumar
Member
From: UNOVA
Registered: 2013-03-18
Post 161/383
Website

Re: Can't find a working link to pointer berechner?

use hack-o-matic.
it contains pointer calc.

Offline

#15 2013-11-10 14:30:37

Hat
Member
Registered: 2013-02-04
Post 56/118

Re: Can't find a working link to pointer berechner?

Tauwasser wrote:

See Hat's link. It's quite excellent that he found it so fast :) Thanks. I kinda forgot I posted about this before :-$

No problem, Tauwasser.

Offline

Board footer

Powered by FluxBB