Forget everything you thought you knew about Fishing

For anything related to the various mini-games in Legend of Legaia.
User avatar
meth962
Level 23
Posts: 266
Joined: Tue Apr 03, 2012 8:37 am
Location: USA
Contact:

Re: Forget everything you thought you knew about Fishing

Post by meth962 » Tue May 27, 2014 10:02 am

Um, haha, why did a word in my post change to the japanese characters for vegetable? Did I cuss or something ^_^ Yet my signature doesn't seem to be working with japanese characters, doh!
まさかつあがつ

GoldenPower89
Level 57
Posts: 1638
Joined: Mon Sep 09, 2013 3:12 am
Location: Indiana

Re: Forget everything you thought you knew about Fishing

Post by GoldenPower89 » Tue May 27, 2014 11:17 am

meth962 wrote:Um, haha, why did a word in my post change to the japanese characters for vegetable? Did I cuss or something ^_^ Yet my signature doesn't seem to be working with japanese characters, doh!
That's our system of censors. If you swear, you'll likely see some Japanese characters. A few of the censors are in English, though.
Image

User avatar
Sephirothansylar
Level 19
Posts: 187
Joined: Tue Nov 12, 2013 3:28 pm
Location: Kansas

Re: Forget everything you thought you knew about Fishing

Post by Sephirothansylar » Tue May 27, 2014 1:52 pm

meth962 wrote:Woohoo! How long did it take you to catch after my message? XD I was literally running out the door when I looked in the assembly code and memory and saw that it SHOULD be possible to catch with a Normal lure. I got a chill down my spine thinking it's possible...! But I couldn't confirm, so I posted on here as quick as I could and ran out the door haha. Glad to see it was true!! I was a little skeptical that I didn't follow the assembly code 100% through.
I think I caught it about 3p.m. Central yesterday (5/26/2014) Then that night was when I made the video of catching the 2nd one. I actually knew it was real before I reeled one in...when something whips your fishing rod around like that and is rougher than a Baraba I knew it could only be a Spirit at that point and after about 10 broken lines I finally caught one. I can't emphasize enough though that to hook it you have to get "Good" to appear on left []. For some reason that's the only time getting "Good" to appear really matters. Timing is extremely tricky but if you can get it down then you can fish up the rarest of fish. I really hope other people catch one now. Catching it is extremely easy though if you have or get ePSXe since it comes with something called save states. Once you hook one just press f1 to save and if it breaks your line you can press f3 to load it back up and try again(infinitely).(I only used it for my video and don't plan to use it anymore because it gives an unfair advantage over console users which I'm pretty sure is the definition of cheating but for making sure it's real you can at least find out with this trick) Here is a fishing video that will hopefully help people with their fishing technique. I couldn't get my audio to work today for some reason so there isn't any commentary but I wrote what I would have said in the Description.

https://www.youtube.com/watch?v=Py4-Uy2 ... e=youtu.be
Death doth rain....Death doth reign

Fastest way to rake in fishing points(about 1,000/minute aprox.)
https://www.youtube.com/watch?v=IZF8OCR9T3E

User avatar
meth962
Level 23
Posts: 266
Joined: Tue Apr 03, 2012 8:37 am
Location: USA
Contact:

Re: Forget everything you thought you knew about Fishing

Post by meth962 » Tue May 27, 2014 7:42 pm

I used ePSXe to play Legaia from my cd tray, but then I found a great emulator for debugging which allowed me to learn assembly and step through the code. If anyone is curious, it goes by "PSX" (haha) and "psxfin.exe". You can set break points on memory or assembly lines and it comes stock with everything I needed to find the mystery of the Spirit fish! Here's a screenshot of it in use...

https://www.dropbox.com/s/xauqczj77fmbgzh/Assembly.png
まさかつあがつ

User avatar
Sephirothansylar
Level 19
Posts: 187
Joined: Tue Nov 12, 2013 3:28 pm
Location: Kansas

Re: Forget everything you thought you knew about Fishing

Post by Sephirothansylar » Tue May 27, 2014 8:53 pm

Sorry I was mesmerized by the Starcraft II icon XD That's my favorite game..well the starcraft games combined I'm not gonna pick any of them over any others.

Otherwise that looks like a bunch of confusing code and stuff...where'd you learn how to make sense of all that? I wish I knew more about code and whatnot.
Death doth rain....Death doth reign

Fastest way to rake in fishing points(about 1,000/minute aprox.)
https://www.youtube.com/watch?v=IZF8OCR9T3E

User avatar
meth962
Level 23
Posts: 266
Joined: Tue Apr 03, 2012 8:37 am
Location: USA
Contact:

Re: Forget everything you thought you knew about Fishing

Post by meth962 » Wed May 28, 2014 1:11 pm

I searched online for RISC 3000 Op codes or playstation op codes to get a list of what they do. Assembly may look crappy, but that's because it's super basic. It's down to the simplest form for the processor to use, but numbers are given three letter designations like "lui" and "beq". It's all a small set of instructions, you only have to learn a few things to read it.

However, that doesn't make it easy! Since the operations are so basic, it takes quite a number of instructions to make sense out of what is happening. So I take notes as I follow through the lines.

I can help get you started, as long as you can understand hex. First, in the assembly side, look at the two windows "dissassembly" and "registers". The registers are just a collection of small pieces of memory that the CPU uses internally. They each can only hold a small number, and you see r0-r31 listed there, plus their hex values that they are storing on the right. The register named "pc" you can ignore, it just holds which line of assembly it's on, and the "lo" and "hi" are for calculations like overflowing number etc. The assembly code will move things to and from those registers a ton, so you will get use to seeing r0, r1, r2 etc.

For assembly, the first big number is just a large hex number of what line of assembly code it is on. Sometimes the code will say jump to 0x0081fd0 for example, and it just jumps to that line of code and goes on. This is also the number you should write down when you're taking notes on "oo okay looks like around 0x0001dc6 it starts calculating this..." for instance.

The most focus you want to have is on the middle line, for example let's look at the top one in my screenshot:

00008f4C: lui r1, 0x8006

So you know 00008f4C is the line of code it is, the rest is just the "op code" or instruction. You should look up and reference the list of op codes until you remember them which will happen quite easily after you keep seeing them. But for now, we see the op code "lui", so we look that up.

lui = Load Upper Immidate - loads the 'upper' four bytes of a number into a register.
r1 = this is the register to load the number into
0x8006 = this is the hex number to load

So altogether this is saying load the number 0x8006 into the top half of register 1.

If you are watching your r1 register on the side, you will see it change. In the screenshot it currently is holding "8008 0000" (you can put spaces in to easily read upper and lower parts). After that line gets executed, you will see r1 equal to "8006 0000".

Next line is:
addiu r9, r0, 0x0001

addiu = ADD Immediate Upper - add two numbers and store the top half of the result in registry
r9 - this is the register to load the result into
r0 and 0x0001 are the numbers to add together. It will take the value of whatever is in r0.

r0 as far as I have seen, always holds the number zero. So really they're just adding 0+1.

Now there's one other I should show you before you start digging in. The playstation has 2MB of memory to use but the processor has to move bytes in memory to and from registers. You'll see this a LOT too. Here's an example.

lui r12, 0x8008
lw r12, -0x620c(r12)

So the first line is that same lui Load Upper immidate. It simply sets register r12 to 80080000. Now the second line lw is "Load Word" which pulls a number from memory into a register.

lw = load word
r12 - register to load the number from memory into

now it gives a negative number -0x620C plus the register (r12) again. This means it wants to load the number in memory at the address of what is stored in r12. You see this a lot too, it "points" to a location in memory by storing that location number in a register, and then loads what is in memory. But the negative number is going to offset that number, you could imagine it as adding them together: -0x620C + r12. Since we know r12 is 80080000 from the previous line, we can simplify it as -0x620C + 80080000, or 80080000 - 0x620C. If it was a positive number, we could easily say that it will equal 8008620C, but we're going to need to use the windows hex calculator to figure it out. The result is 80079DF4, and that will be the location in memory that is loaded into r12. Do note that it can use the same register for the address to pull and the location, essentially overwriting the address in r12.
まさかつあがつ

User avatar
meth962
Level 23
Posts: 266
Joined: Tue Apr 03, 2012 8:37 am
Location: USA
Contact:

Re: Forget everything you thought you knew about Fishing

Post by meth962 » Wed May 28, 2014 1:14 pm

Wow woops, I thought I was replying to a PM about how to read assembly :O

Well maybe I should move this to a new topic for people that are interested? Doh...
まさかつあがつ

Post Reply