(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
05-02-24 10:41 PM
0 users currently in SMW Hacking.
Acmlm's Board - I3 Archive - SMW Hacking - So You Wanna Learn ASM [ASM howto] New poll | |
Pages: 1 2 3 4Add to favorites | Next newer thread | Next older thread
User Post
DahrkDaiz

Nipper Plant
U wan hax Mario?!








Since: 11-17-05

Last post: 6284 days
Last view: 6283 days
Posted on 07-07-06 10:12 AM Link | Quote
And the BNE, BEQ, etc etc aren't Break, they're Branch (Branch if Equal, Branch if Not Equal). Might want to fix that
Sukasa

Birdo
Not quite as active as before.
Xkeeper supporter
Xk > ||bass
I IP Banned myself! Twice!








Since: 11-17-05
From: Somewhere over there

Last post: 6284 days
Last view: 6282 days
Posted on 07-07-06 01:35 PM Link | Quote
...Right. Will do. Thanks for letting me know that.

EDIT: What do you guys want me to do next?


(edited by Sukasa + on 07-07-06 12:58 PM)
Giga_Bowser_009

Red Paragoomba


 





Since: 04-16-06

Last post: 6501 days
Last view: 6501 days
Posted on 07-08-06 04:31 PM Link | Quote
How about a tutorial that tells us how to make custom enemies/bosses in SMW? That's something I'd like to learn how to do.
Sukasa

Birdo
Not quite as active as before.
Xkeeper supporter
Xk > ||bass
I IP Banned myself! Twice!








Since: 11-17-05
From: Somewhere over there

Last post: 6284 days
Last view: 6282 days
Posted on 07-08-06 07:15 PM Link | Quote
I meant for this tutorial.

So... NO.
DahrkDaiz

Nipper Plant
U wan hax Mario?!








Since: 11-17-05

Last post: 6284 days
Last view: 6283 days
Posted on 07-09-06 09:57 AM Link | Quote
BVC and BVS Are Branch if oVerflow is Set/Clear.
Basiclly, if an addition/subtraction operation causes a byte to go below/over 0 (like FE + 3 or 3 - 6) the V flag is set, meaning there was an over/underflow.


(edited by DahrkDaiz on 07-09-06 08:58 AM)
Tatrion
<_<;


 





Since: 11-17-05

Last post: 6284 days
Last view: 6283 days
Posted on 07-09-06 10:35 AM Link | Quote
Originally posted by Sukasa +
EDIT: What do you guys want me to do next?


Hmm... could you please make a "cheat sheet" of opcodes with their names, shorthand, bit lengths, and definitions? That would help me out a lot personally

Either that, or directing me to one would be great.


(edited by Tatrion on 07-09-06 09:36 AM)
Sukasa

Birdo
Not quite as active as before.
Xkeeper supporter
Xk > ||bass
I IP Banned myself! Twice!








Since: 11-17-05
From: Somewhere over there

Last post: 6284 days
Last view: 6282 days
Posted on 07-09-06 02:05 PM Link | Quote
I'l post the link to 65816ref.hlp. Note that it contains every single opcode, so it's more complesz than this tutorial, and doesn't explaine the opcodes all that well.
spel werdz rite









Since: 11-19-05

Last post: 6284 days
Last view: 6282 days
Posted on 08-06-06 01:57 AM Link | Quote
Any chance on giving info about the Program Bank and Data Bank Registers?
I'm trying to make custom palettes for my SMB-SMAS hack, but I'm not that good with the PBR.

Also, I have one question.
How does LDA, (x or y) know to load from a RAM address or ROM address?
ziratha

Koopa


 





Since: 11-19-05

Last post: 6301 days
Last view: 6283 days
Posted on 08-08-06 08:05 PM Link | Quote
What might help out would be to take a couple of the various hacks, post their codes and then comment and demonstrate how they do what they do. Even simple hacks, like some of the blocks and such. I know you have that one, but more is better.
Goldensunboy

Snifit








Since: 12-30-05
From: Georgia

Last post: 6288 days
Last view: 6287 days
Posted on 08-10-06 06:15 PM Link | Quote
How do you write data to SRAM? Is it just a bunch of ram addresses at a different bank? Or is there some special method involved?
Kailieann



 





Since: 11-18-05

Last post: 6282 days
Last view: 6282 days
Posted on 08-10-06 07:45 PM Link | Quote
SRAM is bank 0x70
3.14159265358979323846

Red Paragoomba








Since: 05-30-06
From: China

Last post: 6292 days
Last view: 6293 days
Posted on 08-13-06 08:12 AM Link | Quote
For some strange reason I can't visit freeweb or smwcentral, so the 65816ref.hlp link does not work for me.

...Could anybody re-upload it on rapidshare or savefile etc. ?

Thanks a lot

[edit] Oh I have forgot to say that Geo****ties is not aviliable for me, either.

Sorry.

(Get a proxy to visit so all of the above voids)


(edited by 3.14159265358979323846 on 08-14-06 04:21 AM)
(edited by 3.14159265358979323846 on 10-05-06 12:36 AM)
Goldensunboy

Snifit








Since: 12-30-05
From: Georgia

Last post: 6288 days
Last view: 6287 days
Posted on 08-13-06 02:31 PM Link | Quote
Sup'

...the link does work, right...? It works for me.


(edited by Goldensunboy on 08-13-06 01:32 PM)
(edited by Goldensunboy on 08-14-06 06:06 AM)
Sukasa

Birdo
Not quite as active as before.
Xkeeper supporter
Xk > ||bass
I IP Banned myself! Twice!








Since: 11-17-05
From: Somewhere over there

Last post: 6284 days
Last view: 6282 days
Posted on 08-14-06 06:22 PM Link | Quote
Spel Werdz Rite: The CPU doesn't know, but the address will point to either a ROM or RAM address, as banks 7E and 7F are the RAM, but for the CPU they're just banks that seem to be able to written to as well.
Goldensunboy

Snifit








Since: 12-30-05
From: Georgia

Last post: 6288 days
Last view: 6287 days
Posted on 08-14-06 07:46 PM Link | Quote
How does the game go about loading data from rom, indexed with the direct page number? (and Y, but I know how it does THAT) I don't understand it at all.
Sukasa

Birdo
Not quite as active as before.
Xkeeper supporter
Xk > ||bass
I IP Banned myself! Twice!








Since: 11-17-05
From: Somewhere over there

Last post: 6284 days
Last view: 6282 days
Posted on 08-14-06 11:07 PM Link | Quote
That's a more advanced command... it's

LDA [$xx], Y



For example: Your direct page for this example is $7E00.

Say at $7E0000, you have a big-endian 24-bit address to $034F78. Now, if Y is $0000, and you execute the instruction LDA [$00], Y, what do you think will be loaded? The value at $7E0001, or the value at $034F78? If you guessed the latter, you are right. That's because LDA [$00], Y loads a referenced value, incremented by Y. In other words, that instuction loads up the 24-bit address at $7E0000, and then loads the 8- or 16-bit value at the address just loaded PLUS the Y, similar to (LDA $xxxxxx, X).

Clear as mud, right?
Goldensunboy

Snifit








Since: 12-30-05
From: Georgia

Last post: 6288 days
Last view: 6287 days
Posted on 08-16-06 05:53 PM Link | Quote
Clear as a tarpit in the cold of January.

Let me get this straight... (time for ME to make it clear as mud )

-Is the direct page register 8-bit or 16-bit?
-Does it load a 3-byte value from a pointer stored in ram after adding the [$xx] to the direct page, then indexes that with Y? (because that's what I got out of what you said)
-All I've seen this used for was to load data from the rom. However, I wouldn't be surprised if my guess that the rom was stored in the first (few?) bank(s) of ram. Is my guess right?

-In SMW (unheadered, if you ever want to search for this), you can find this, pertaining to storing a byte to the level's map16 low byte table, and I was wondering about the mechanics of how this code does what it does:
$00/C0EF 97 6B STA [$6B],y[$7E:C987] Y:0187 P:envMxdizC
Where does the 6B come into play, and what do you think the direct page must have been for it to store whatever to $7E:C800 (disregarding the 16-bit Y index)? If my presumption that the direct page number being 16-bit is correct, would it be (big endian) C87E? Or (again) is the direct page something unknown, and it ends up loading a pointer to $7E:C800 from the direct page + 6B?

Gosh, I made less sense that you did, I'm sorry if you can't read it.
Sukasa

Birdo
Not quite as active as before.
Xkeeper supporter
Xk > ||bass
I IP Banned myself! Twice!








Since: 11-17-05
From: Somewhere over there

Last post: 6284 days
Last view: 6282 days
Posted on 08-16-06 06:37 PM Link | Quote
The direct page register is 16-bit, and coupled with a one byte address, becomes $dd:ddbb, where dddd is the direct page register and bb is the address byte.

Alsxo, the line

$00/C0EF 97 6B STA [$6B],y[$7E:C987] Y:0187 P:envMxdizC

Means that at the direct page + $6B is the 24-bit address $7E:C987. So, if the direct page was $7E00, then at $7E006B would be $87 $C9 $7E.
RDOG

Goomba








Since: 11-17-05
From: London, Ontario, Canada

Last post: 6312 days
Last view: 6307 days
Posted on 08-16-06 06:53 PM Link | Quote
Can you tell me how to display sprite tiles on the screen?
Goldensunboy

Snifit








Since: 12-30-05
From: Georgia

Last post: 6288 days
Last view: 6287 days
Posted on 08-16-06 09:09 PM Link | Quote
Heh, after all those questions, I make an answer for someone. Ah, thanks very much Sukasa! That was wonderful of you to help me. However in your demonstration you forgot that the destination was $7E:C800, it was $7E:C987 because Y changed the destination. But that doesn't matter, as I understand now.

Ringodoggie, sprite tiles can only be displayed when they are loaded to the sprit tile OAM, which starts at $7E:0300. There is one entry per 8x8 tile, consisting of four bytes per tile. Since the sprite number must be indexed, so must the tiles, so use the Y index (whichever one's told to you in Mikeyk's tutorial) to load it. (STA $7E030#, Y, where # is 0, 1, 2, or 3)You store the X position relative to the screen border at 7E0300, Y; you store the Y position relative to the screen border to 7E0301, Y; you store the tile number to 7E0302, Y; you store the tile properties to 7E0303, Y.

The tile properties are in a format called "xyppccct", where the letters here are individual bits in a byte:
X bit: Flip 8x8 tile horizontally.
Y bit: Flip 8x8 tile vertically.
PP bits: Priority, there are four levels of priority.
CCC bits: Palette bits, set them appropriately to make the tile use palettes 0-7 (add 8 and look at the palette editor to see them in Lunar Magic)
T bit: Decides whether the tile number should be loaded from page one or two.

Take the bits you want to set, and add only the set ones up, don't add disabled bits (this is in hex):
X..Y..P..P..C..C..C..T
80.40.20.10.8..4..2..1


You must then increment the Y register four times to set up the data for the next tile to be drawn. If you are trying to call this data from a block code or something, it may be tougher, but I would imagine that it would be alright to use Mikeyk's library codes (at least some of them, not sure which ones) to get what you need to set up some things like what's in Y. If you are trying to call the graphics in a sprite code, just follow his document on the steps on how to do that.


(edited by Goldensunboy on 08-16-06 08:12 PM)
Pages: 1 2 3 4Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - SMW Hacking - So You Wanna Learn ASM [ASM howto] |


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.044 seconds; used 441.43 kB (max 569.74 kB)