**RNG Reporter Support**

On any method J/K frame right click and select "Calculate Encounter Slots". It will do all of the work for you and provide links to charts so that you can look up what monster appears on which frame. Unless you are interested in the low level details you may skip all of the information below.

For encounters on grass/caves

To use this requires getting the RNG call previous to the frame of the Pokemon you are attempting to capture. To do this switch to method 1 and take the last 4 digits of the PID of the frame before your method J frame. For example, if you are targeting Method J frame 99, switch to Method 1 and take the last 4 digits of the PID on frame 98. This is the previous RNG result in hexadecimal. Use a calculator to convert this to decimal and then use the steps below to figure out what the monster will be for the frame.

Divide this number by 656 and discard any remainder or the decimal portion of the result (ie round down).

This gives a result between 0 and 99.

This number is then evaluated to produce and encounter slot that is between 0 and 11 (12 possible values).

Slot 0: 0-19 20% (Swarm)

Slot 1: 20-39 20% (Swarm)

Slot 2: 40-49 10%

Slot 3: 50-59 10%

Slot 4: 60-69 10%

Slot 5: 70-79 10%

Slot 6: 80-84 5% (Trophy Garden, Current)

Slot 7: 85-89 5% (Trophy Garden, Previous)

Slot 8: 90-93 4%

Slot 9: 94-97 4%

Slot 10: 98 1%

Slot 11: 99 1%

Use the charts linked below to find a slot for a particular area.

And finally the code:

Code:

;bcs Unsigned higher than or the same
;bcc Unsigned lower than
; rng call and create number from 0-99 with result
bl #0x201B9EC ; call rng
mov r1,#0x29
lsl r1,r1,#0x4 ; set r1 to 0x290
blx #0x20EBC80 ; divide r0/r1, results in r0 (0-99)
0223C5C6 0400 lsl r0,r0,#0x10
0223C5C8 0C04 lsr r4,r0,#0x10
; Check to see if r4 is >= 0x64 (how can this happen?)
; what is #0x2020C2C ?
0223C5CA 2C64 cmp r4,#0x64
0223C5CC D301 bcc #0x223C5D2
0223C5CE F5E4FB2D bl #0x2020C2C
; put the original result back into r0
0223C5D2 0620 lsl r0,r4,#0x18
0223C5D4 0E00 lsr r0,r0,#0x18
:check0-19
0223C5D6 2814 cmp r0,#0x14 ; is r0 < 0x14 (20)
0223C5D8 D201 bcs #0x223C5DE
0223C5DA 2000 mov r0,#0x0 (0-19)
0223C5DC BD10 pop {r4,r15}
:check20-39
0223C5DE D303 bcc #0x223C5E8 ; if >= 0x14(20)
0223C5E0 2828 cmp r0,#0x28 ; 40
0223C5E2 D201 bcs #0x223C5E8 ; if r0 < 0x28 (30)
0223C5E4 2001 mov r0,#0x1 ; (20-29)
0223C5E6 BD10 pop {r4,r15}
:check40-49
0223C5E8 2828 cmp r0,#0x28 ; 40
0223C5EA D303 bcc #0x223C5F4 ; >= 40
0223C5EC 2832 cmp r0,#0x32 ; 50
0223C5EE D201 bcs #0x223C5F4 ; < 50
0223C5F0 2002 mov r0,#0x2
0223C5F2 BD10 pop {r4,r15}
:check50-59
0223C5F4 2832 cmp r0,#0x32 ; 50
0223C5F6 D303 bcc #0x223C600
0223C5F8 283C cmp r0,#0x3C ; 60
0223C5FA D201 bcs #0x223C600
0223C5FC 2003 mov r0,#0x3
0223C5FE BD10 pop {r4,r15}
:check60-69
0223C600 283C cmp r0,#0x3C
0223C602 D303 bcc #0x223C60C
0223C604 2846 cmp r0,#0x46
0223C606 D201 bcs #0x223C60C
0223C608 2004 mov r0,#0x4
0223C60A BD10 pop {r4,r15}
:check70-79
0223C60C 2846 cmp r0,#0x46
0223C60E D303 bcc #0x223C618
0223C610 2850 cmp r0,#0x50
0223C612 D201 bcs #0x223C618
0223C614 2005 mov r0,#0x5
0223C616 BD10 pop {r4,r15}
:check80-84
0223C618 2850 cmp r0,#0x50
0223C61A D303 bcc #0x223C624
0223C61C 2855 cmp r0,#0x55
0223C61E D201 bcs #0x223C624
0223C620 2006 mov r0,#0x6
0223C622 BD10 pop {r4,r15}
:check85-89
0223C624 2855 cmp r0,#0x55
0223C626 D303 bcc #0x223C630
0223C628 285A cmp r0,#0x5A
0223C62A D201 bcs #0x223C630
0223C62C 2007 mov r0,#0x7
0223C62E BD10 pop {r4,r15}
:check90-93
0223C630 285A cmp r0,#0x5A
0223C632 D303 bcc #0x223C63C
0223C634 285E cmp r0,#0x5E
0223C636 D201 bcs #0x223C63C
0223C638 2008 mov r0,#0x8
0223C63A BD10 pop {r4,r15}
check94-97
0223C63C 285E cmp r0,#0x5E
0223C63E D303 bcc #0x223C648
0223C640 2862 cmp r0,#0x62
0223C642 D201 bcs #0x223C648
0223C644 2009 mov r0,#0x9
0223C646 BD10 pop {r4,r15}
:check98
0223C648 2862 cmp r0,#0x62
0223C64A D101 bne #0x223C650
0223C64C 200A mov r0,#0xA
0223C64E BD10 pop {r4,r15}
:Check 99
0223C650 200B mov r0,#0xB
0223C652 BD10 pop {r4,r15}

If anyone wants to double check it, feel free, more eyes can't hurt.

Looks like there is nearly enough information to go ahead and add this to RNG Reporter in the near future, but for now it should be easy enough to do by hand for those serious about it.

**For encounters surfing and scenting in water**

To do this, make a note of your method J frame and then locate the this frame - 2 in a method 1 list. Take the last 4 digits of the PID on this method 1 frame and convert it from hexadecimal to decimal.

Divide this number by 656 and discard any remainder or the decimal portion of the result (ie round down).

This gives a result between 0 and 99.

This number is then evaluated to produce and encounter slot that is between 0 and 4 (5 possible values).

Slot 0: 0-59 60%

Slot 1: 60-89 30%

Slot 2: 90-94 5%

Slot 3: 95-98 4%

Slot 4: 99 1%

Use the charts linked below to find a slot for a particular area.

Code:

0223C654 (water encounter code)
; rng call and reduce it to a number between 0 and 99
0223C654 B510 push {r4,r14}
0223C656 F5DFF9C9 bl #0x201B9EC
0223C65A 2129 mov r1,#0x29
0223C65C 0109 lsl r1,r1,#0x4
0223C65E F6AFEB10 blx #0x20EBC80
0223C662 0400 lsl r0,r0,#0x10
0223C664 0C04 lsr r4,r0,#0x10
0223C666 2C64 cmp r4,#0x64
0223C668 D301 bcc #0x223C66E
0223C66A F5E4FADF bl #0x2020C2C
0223C66E 0620 lsl r0,r4,#0x18
0223C670 0E00 lsr r0,r0,#0x18
;check 0-59
0223C672 283C cmp r0,#0x3C
0223C674 D201 bcs #0x223C67A
0223C676 2000 mov r0,#0x0
0223C678 BD10 pop {r4,r15}
;check 60-89
0223C67A D303 bcc #0x223C684
0223C67C 285A cmp r0,#0x5A
0223C67E D201 bcs #0x223C684
0223C680 2001 mov r0,#0x1
0223C682 BD10 pop {r4,r15}
;check 90-94
0223C684 285A cmp r0,#0x5A
0223C686 D303 bcc #0x223C690
0223C688 285F cmp r0,#0x5F
0223C68A D201 bcs #0x223C690
0223C68C 2002 mov r0,#0x2
0223C68E BD10 pop {r4,r15}
;check 95-98
0223C690 285F cmp r0,#0x5F
0223C692 D303 bcc #0x223C69C
0223C694 2863 cmp r0,#0x63
0223C696 D201 bcs #0x223C69C
0223C698 2003 mov r0,#0x3
0223C69A BD10 pop {r4,r15}
;check/fallthrough 99
0223C69C 2004 mov r0,#0x4
0223C69E BD10 pop {r4,r15}

For encounters fishing

Fishing is handled a bit differently from the previous two encounter scenarios.

First, since you can't sweet scent you have to determine if you are going to catch something at all for a particular frame. To do this, make a note of your method J frame and then locate the this frame - 3 in a method 1 list. Take the last 4 digits of the PID on this method 1 frame and convert it from hexadecimal to decimal.

Divide this number by 656 and discard any remainder or the decimal portion of the result (ie round down).

This gives a result between 0 and 99.

Now depending on your fishing rod here are the results:

Old Rod: Numbers between 0 and 24 mean a catch will be made.

Good Rod: Numbers between 0 and 49 mean a catch will be made.

Super Rod: Numbers between 0 and 74 mean a catch will be made.

Numbers that do not meet the criteria above will result in the "not even a nibble message"

Next take the last four digits of the method 1 PID that is on your method J frame - 2.

Divide this number by 656 and discard any remainder or the decimal portion of the result (ie round down).

Now use this number to figure out which slot you will get.

Old Rod:

Slot 0: 0-59 60%

Slot 1: 60-89 30%

Slot 2: 90-94 5%

Slot 3: 95-98 4%

Slot 4: 99 1%

Good and Super Rods:

Slot 0: 0-39 40%

Slot 1: 40-79 40%

Slot 2: 80-94 15%

Slot 3: 95-98 4%

Slot 4: 99 1%

Use the charts linked below to find a slot for a particular area.

Code:

; start, rod type passed into r0 (0=old, 1=good, 2=super)
0223C6A0 B570 push {r4-r6,r14}
0223C6A2 1C05 mov r5,r0
0223C6A4 2400 mov r4,#0x0
; Call RNG and end up with 0-99
0223C6A6 F5DFF9A1 bl #0x201B9EC
0223C6AA 2129 mov r1,#0x29
0223C6AC 0109 lsl r1,r1,#0x4
0223C6AE F6AFEAE8 blx #0x20EBC80
0223C6B2 0400 lsl r0,r0,#0x10
0223C6B4 0C06 lsr r6,r0,#0x10
0223C6B6 2E64 cmp r6,#0x64
0223C6B8 D301 bcc #0x223C6BE
0223C6BA F5E4FAB7 bl #0x2020C2C
0223C6BE 0630 lsl r0,r6,#0x18
0223C6C0 0E00 lsr r0,r0,#0x18
; old rod
0223C6C2 2D00 cmp r5,#0x0
0223C6C4 D004 beq #0x223C6D0
; good rod
0223C6C6 2D01 cmp r5,#0x1
0223C6C8 D014 beq #0x223C6F4
; super rod
0223C6CA 2D02 cmp r5,#0x2
0223C6CC D024 beq #0x223C718
0223C6CE E035 b #0x223C73C
; old rod routine
0223C6D0 283C cmp r0,#0x3C ;
0223C6D2 D201 bcs #0x223C6D8
0223C6D4 2400 mov r4,#0x0
0223C6D6 E033 b #0x223C740
0223C6D8 285A cmp r0,#0x5A ;
0223C6DA D201 bcs #0x223C6E0
0223C6DC 2401 mov r4,#0x1
0223C6DE E02F b #0x223C740
0223C6E0 285F cmp r0,#0x5F ;
0223C6E2 D201 bcs #0x223C6E8
0223C6E4 2402 mov r4,#0x2
0223C6E6 E02B b #0x223C740
0223C6E8 2863 cmp r0,#0x63 ;
0223C6EA D201 bcs #0x223C6F0
0223C6EC 2403 mov r4,#0x3
0223C6EE E027 b #0x223C740
0223C6F0 2404 mov r4,#0x4
0223C6F2 E025 b #0x223C740
; good rod routine
0223C6F4 2828 cmp r0,#0x28
0223C6F6 D201 bcs #0x223C6FC
0223C6F8 2400 mov r4,#0x0
0223C6FA E021 b #0x223C740
0223C6FC 2850 cmp r0,#0x50
0223C6FE D201 bcs #0x223C704
0223C700 2401 mov r4,#0x1
0223C702 E01D b #0x223C740
0223C704 285F cmp r0,#0x5F
0223C706 D201 bcs #0x223C70C
0223C708 2402 mov r4,#0x2
0223C70A E019 b #0x223C740
0223C70C 2863 cmp r0,#0x63
0223C70E D201 bcs #0x223C714
0223C710 2403 mov r4,#0x3
0223C712 E015 b #0x223C740
0223C714 2404 mov r4,#0x4
0223C716 E013 b #0x223C740
; super rod routine
0223C718 2828 cmp r0,#0x28
0223C71A D201 bcs #0x223C720
0223C71C 2400 mov r4,#0x0
0223C71E E00F b #0x223C740
0223C720 2850 cmp r0,#0x50
0223C722 D201 bcs #0x223C728
0223C724 2401 mov r4,#0x1
0223C726 E00B b #0x223C740
0223C728 285F cmp r0,#0x5F
0223C72A D201 bcs #0x223C730
0223C72C 2402 mov r4,#0x2
0223C72E E007 b #0x223C740
0223C730 2863 cmp r0,#0x63
0223C732 D201 bcs #0x223C738
0223C734 2403 mov r4,#0x3
0223C736 E003 b #0x223C740
0223C738 2404 mov r4,#0x4
0223C73A E001 b #0x223C740
0223C73C F5E4FA76 bl #0x2020C2C
; DONE, final results in r0
0223C740 1C20 mov r0,r4
0223C742 BD70 pop {r4-r6,r15}

**Charts and stuff**

Charts are here:

Platinum Chart

Diamond Chart

Pearl Chart

Heart Gold Chart

Soul Silver Chart