Register | Login | |||||
Main
| Memberlist
| Active users
| Calendar
| Chat
| Online users Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album |
| |
0 users currently in SMW Hacking. |
User | Post |
Glyphodon Posts: 240/536 |
Good to know. I'll just assume that long addressing would fix the problem and thank you guys now because I'm tired.
Edit: Yeah, that worked perfectly. Thanks all. |
HyperHacker Posts: 2120/5072 |
Originally posted by Glyph Phoenix You basically answered your own question. Looking at this memory map, 00:8000-00:FFFF is ROM, and SMW usually has the data bank register (or whatever the hell it's called) at zero, so that certainly does appear to be the problem: You're writing to 00:C100, not 7E:C100. 00:0000-00:1FFF is mapped to 7E:0000-7E:1FFF, which is why the same code works with 7E1DFC. [edit] Posted at the same time as Bio. That's the second time someone's done that in this thread. |
C:/xkas bio.asm Posts: 957/1209 |
please, learn about ROM bank:
Originally posted by BMF98567 See, SNES adress XX:0000 to XX:1FFF is 7E0000 to 7E1FFF in RAM, meaning that they are the only one you can acess with absolute adressing |
Glyphodon Posts: 238/536 |
I'd rather not try that unless I were pretty sure that was the problem because I'd have to rewrite much of my reading code to match. It involves putting things in Y and Y only has an absolute mode, not a long one.
I don't think that that'd solve the problem anyway because where my code is now there used to be "A9 04 8D FC 1D". It STA'd 4 into 7E1DFC to make the spin jump sound without incident, which wouldn't be possible if it were writing to ROM, right? |
C:/xkas bio.asm Posts: 956/1209 |
that because you posted while I was making my post |
Cirvania Posts: 235/1181 |
Um.. That's kinda what I told him, Bio.
Replace 8D(STA abs) with 8F(STA long). |
C:/xkas bio.asm Posts: 955/1209 |
I think the problem is because you end up trying to write to ROM because you are using absolute adressing, example your 8D 00 C1 try to write to Snes 00:C100 wich is the ROM, use long adressing mode insted |
Cirvania Posts: 234/1181 |
Hmm.. weird. I actually had the same problem once. I decided to leave that section of RAM alone. But have you tried [A9 01 8F 00 C1 7E]? I know the game reads the 7E bank as default, but it could still work...
Of course, this is coming from a guy with little ASM experience, so meh |
Glyphodon Posts: 236/536 |
I first wrote something like A9 01 8D 00 C1 in my SMW hack. For those of you less hexadecimally inclined, that's:
LDA #$01 STA 7EC100 I even opened up Geiger's Debugger and put in a write breakpoint for 7EC100. Nothing. I put in an exec. breakpoint for where those two opcodes were, and they popped up quick so I know my code's being read -- it's just not being interpreted. I tried using 7EC101 and I was similarly screwed. I recalled that I had the same problem when I tried to access 7EC800, which is in the general 7ECxxx area, so I figured I might be having the same problem there. Am I trying to access RAM I can't, or what? I post it here in SMW hacking first because the problem is in my SMW hack. I don't know if that was such a great idea since this would seem to be a more general SNES processor problem. |