Register | Login | |||||
Main
| Memberlist
| Active users
| Calendar
| Chat
| Online users Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album |
| |
0 users currently in ROM Hacking. |
User | Post |
Sukasa Posts: 504/2068 |
All right. It's just level mode $00, so based on that, there shouldn't be a problem finding out the offsets.
Thanks! |
HyperHacker Posts: 507/5072 |
Yeah, it stays the same no matter what the level length is (length just defines how far you can scroll), but other factors such as the level type will affect it. |
Sukasa Posts: 499/2068 |
Yea, All I really want to know is if it changes sepending on the length of the level, i.e. is it the same in a 1-screen level as a 20-screen level (would block at x, y in one be in the RAM RAM address for both memory maps)? If I knew, then I could easily create a program that would let people find out which RAM address to change. |
HyperHacker Posts: 483/5072 |
At 7E8000-7EFFFF and 7F8000-7FFFFF is what's known as the Map16 data (low and high bytes respectively), which is the decoded level layout. Each entry in this array is a 16x16 tile number. This is what you need to modify if you want your changes to stick, however, nobody who's found out how to determine a block's address will tell anyone. The address can vary depending on the level style (horizontal/vertical, 1 or 2 layers, memory options, etc), so it's complicated. You might have to update VRAM as well, I've never actually done it, so I dunno. |
Sukasa Posts: 473/2068 |
I get the feeling I don't understand how SMW changes the Layer 1 tilemap.
I thought that it worked by DMA'ing parts of the level's tilemap into the VRAM, and worked off of that. If not, what should I change to make bother the gameplay tilemap and the VRAM tilemap work when scrolling back? |
HyperHacker Posts: 456/5072 |
They'll only reappear if you edit the Map16 or re-apply the VRAM changes. |
Sukasa Posts: 468/2068 |
But as soon as I scroll back, they would reappear, would they not?
That doesn't matter thougj, this level is only 1 screen large, so there is no scrolling, at all. |
d4s Posts: 13/98 |
Originally posted by Sukasa unless you dont mind that your changes will be erased once they scroll out of the screen boundary: yes. |
BMF54123 Posts: 119/876 |
I've wanted to do this for a long time as well. I'm probably going to dissect some routines pretty soon and try to figure it out myself... |
Sukasa Posts: 401/2068 |
I didn't say that . I just prefer PalASM because It works, for me |
ghettoyouth Posts: 72/332 |
Originally posted by Sukasa why should LevelASM not work? |
Sukasa Posts: 365/2068 |
Nah, I prefer PalASM because it works.
No, I need to get the location of a tile in the Memory Map, so that I can change the layout of the level on-the-fly. I.E. changing the block at X: 6 Y: 8 from A to b, for example. That sort of data is what I need, how to find out where X: xx Y: yy is. |
spel werdz rite Posts: 296/1796 |
Do you mean a tile in the map16?
If so, it's A0 xx A9 yy 8D 93 16 A0 loads the first two numbers (xx) A9 loads the last two numbers (yy) 8D stores it at 7E1693 the map16 memory address (noted 93 16 is 1693 backwards and without 7E) P.S. Try Level ASM rather than PalASM. |
Sukasa Posts: 357/2068 |
Does anyone know how to calculate the RAM address of a tile in SMW's memory map? I need to know how to change a specific block through PalASM, and to do that I need to know this.
Also, I can just DMA parts of the memory map to VRAM to make the changes appear in-game, right? |