+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  I'm Exceptionally Confused (MMX3)
Pages: [1]
Author Topic: I'm Exceptionally Confused (MMX3)  (Read 1 times)
justin3009
Guest
« on: February 06, 2011, 01:42:10 pm »

I was figuring out the last piece of graphical issues for Mega Man X3 and I stumbled upon the code and such.  I didn't post that because..well I'm not sure if that's extremely relevant to what's going on here.

- Take a look at this.  Notice it says 00 80 and then the graphics are at 8000.  That leads me to believe 00 80 is reversed.  This SAME THING happened with Zero's Buster shot.  The graphics were in the exact spot just reversed order.  Now check this out.

- How the heck does this work?  BFE0 being the pointer yet the graphics are at 4000  (Note: These are all in Bank 18).

What would cause it to do this?  It doesn't make any sense to me D:  The code didn't seem to help either as it says it's loading BFE0 as well.

Also, look at 30 and 31.  Those from what I saw are the banks (Strangely.. maybe it's chunks but that wouldn't make any sense either).
Vanya
Guest
« Reply #1 on: February 06, 2011, 02:22:12 pm »

I can only suggest testing different values and looking at the 'pointers' for all the graphics and do a compare and contrast.
Ryusui
Guest
« Reply #2 on: February 06, 2011, 02:24:51 pm »

Good call, looking at the 00 80 and figuring it must be a little-endian pointer - but personally, I'd take the inconsistency as a hint that maybe your assumption is wrong. At the very least, you should do some tracing to see what the game actually does with the value.

One trick you can use is to set a read breakpoint for the beginning of the graphics in the ROM and working backwards from there to find the pointer. IIRC, Geiger's SNES9X will still break on a DMA transfer.
Lenophis
Guest
« Reply #3 on: February 08, 2011, 10:54:20 am »

Quote from: justin3009 on February 06, 2011, 01:42:10 pm
That leads me to believe 00 80 is reversed.
Well, yeah. Everything NES and SNES are going to be reversed cause it's all little-endian.
justin3009
Guest
« Reply #4 on: February 08, 2011, 01:45:22 pm »

I sounded like an absolute idiot with no experience babbling up there.

They do appear to be little-endian pointers for the most part.  I'm not sure why a few cases are different but it seems fairly rare from what I'm noticing.
Nightcrawler
Guest
« Reply #5 on: February 09, 2011, 01:56:29 pm »

Quote from: Lenophis on February 08, 2011, 10:54:20 am
Quote from: justin3009 on February 06, 2011, 01:42:10 pm
That leads me to believe 00 80 is reversed.
Well, yeah. Everything NES and SNES are going to be reversed cause it's all little-endian.

Remember, they can also ready by byte and construct a pointer regardless of endian. Therefore, pointers are not guaranteed to be stored reversed.
justin3009
Guest
« Reply #6 on: February 10, 2011, 01:07:31 pm »

Though I'm still confused in regard on how it picks these weird values up when they're not directly from ROM, I've managed to complete a new animation with custom sprites.  The topic can be closed if one wants but I may end up posting in here why once I look further into the code.
Hayden
Guest
« Reply #7 on: February 11, 2011, 12:54:20 am »

Sounds stupid, but try just putting 8 0 0 0 or whatever it was, maybe that might work, but I think its stupid, well if you decide to try it, you do that, good luck
Pages: [1]  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC