News:

11 March 2016 - Forum Rules

Main Menu

FCEUX PPU Viewer: Left Table

Started by RaidouJFlo, March 10, 2016, 10:27:44 AM

Previous topic - Next topic

RaidouJFlo

#20
Quote from: Rockman on March 12, 2016, 01:10:24 PM
I don't know how many sprites are on the second line, but instead of ELEVATOR, you could call it:

TURBO
LIFT

or just LIFT.  Just an idea.

EDIT:

By the way, I have never even considered doing a translation before.  But in light of your project, I may one day do a translation of my own, assuming it's a game that I like and it hasn't been done yet. :P

On each row there are 8, though only 6 could be used I believe since the first and last are used by the white borders.

I could most definitely used TURBO and LIFT, or just LIFT haha.  Not a bad idea.

Mind if I take one of those?  I don't want to feel like an idea thief :')

Also, I'm glad I could somewhat inspire you.  The games I'm choosing aren't in particular "random" I'd say.  If there's a franchise I'm interested in playing that's late in the gen (PS3 for example), then I'll try to play it from the beginning.  If the first game is Japanese only, then I'll look for a patch.  If there's no patch, or if it was an existing project that died, then I'll think about maybe doing it myself.

RetroRain

Don't worry about it, you may use those names if you wish.  That's why I mentioned them to you. :)
My YouTube Channel: RetroRainZX85 - https://www.youtube.com/channel/UCdHK6fSwUlcM-q8_EgZQfdw

RaidouJFlo

Quote from: Rockman on March 14, 2016, 07:19:30 PM
Don't worry about it, you may use those names if you wish.  That's why I mentioned them to you. :)

Just out of curiosity, as I'm attempting to understand how to read "Indexed indirect addressing" since you brought it up.

If the A register was being stored at an address using the indexed indirect method (or loaded)

For example, we'll use the following:

Y = 0A
A = 81

$0028 = F7
$0029 = 64

Code:

STA ($28), Y

$28 always confused me, but apparently when seeing an address that's just 2 digits, this is a reference to an address in the zero page?  Why not just use absolute then, which I believe would be $0028, Y?

But apparently, calling $28 is actually giving a concatenated $0028 with whatever is above it, right?  And we have to read that concatenation from right to left all the time?

With that said, I'd be reading it as 64F7, rather than F764, I believe.

Then finally, that parameter Y is added onto that reversed $28, so we get a final address of $6501, and that's where "81" from the accumulator is being stored.

How strange though, as I've only used STA with Y as an example...

I assume a raw STA $28 would mean to store the accumulator at just 64F7, but for X there are 2 cases.

I won't go over Absolute since I already get that, but here are the 2 X cases.

STA $44,X     
STA ($44,X)


Can't wrap my head around that, lol.

The upper one is called "Zero Page, X" and the bottom one is "Indirect, X" but I thought indirect always referred to a Zero Page address.  What would the difference between these 2 be?

STARWIN

#23

LDA #$28 load 28 to A "load A from the literal value of 28 given in the instruction"
LDA $28 load A from 0028
LDA $0028 load A from 0028
LDA $0028,Y load A from 0028+Y
LDA $28,X load A from 0028+X
LDA $0028,X load A from 0028+X
LDA ($28),Y load A from 64F7+Y
LDA ($28,X) load A from address stored in 0028+X


as you see, parenthesis mean dereference of their content (interpreted as 2 byte address, little end first), and a comma means addition

super hasty reply of a topic "long forgotten", let's hope for an embarrassing mistake in there. edit: corrected it, thanks kingmike :P

RaidouJFlo

Quote from: STARWIN on March 18, 2016, 10:56:10 AM

LDA #$28 load 28 to A "load A from the literal value of 28 given in the instruction"
LDA $28 load A from 0028
LDA $0028 load A from 0028
LDA $0028,Y load A from 0028+Y
LDA $28,X load A from 0028+X
LDA $0028,X load A from 0028+X
LDA ($28) load A from 64F7
LDA ($28),Y load A from 64F7+Y
LDA ($28,X) load A from address stored in 0028+X


as you see, parenthesis mean dereference of their content (interpreted as 2 byte address, little end first), and a comma means addition

super hasty reply of a topic "long forgotten", let's hope for an embarrassing mistake in there

LDA ($28,X)   load A from address stored in 0028+X

I see...

Assuming X = 0A,

With LDA ($28, X), it would load whatever is stored into concatenated bytes in the form of an address ($0033 and $0032) in the accumulator.  Now I see the difference, thank you.

I'm also saying 0033 before 0032 because I'm assuming we are looking from right to left again, or little endian is the proper name I believe.

It's pretty much just the ordering that's different then.

KingMike

Note that NES lacks the "LDA ($28)" instruction, so often games will do
LDY #$00
LDA ($28),Y
"My watch says 30 chickens" Google, 2018