Language…
10 users online: DanMario24YT, Fozymandias, JPhanto, Majink12, mathew, Maw, Rhubarb44230,  Saphros, simon.caio, TheOrangeToad - Guests: 252 - Bots: 289
Users: 64,795 (2,378 active)
Latest user: mathew

I want to make a SNES game

  • Pages:
  • 1
  • 2
Well... I don't know if this is a load or not.
But I heard that coding for 6502 ASM is a lot harder than coding for
65816 ASM. I think that coding for the Genesis and the GBA is a lot easier from what I've heard. Because from what I've seen the Genesis and GBA have compilers that use actual programming languages as opposed to assembly language. There's a compiler out there for the Genesis that converts C++ into Motorola 68000 Assembly Code, Which is the processor that the Genesis uses. (Correct me if I misspelled Motorola 68000 wrong.) I'm even planning on learning C++ just to use this compiler!(If I can find it again that is.)
There's another compiler out there for the GBA that converts some programming language into assembly like the one for the Genesis, But it's a different language from C++... I forget what the language is though, Maybe Basic? But unless you have a Genesis/GBA(like me). Then go ahead and learn whatever language/assembly you want! (Just make sure you have the original console your developing for.)


P.S.
Also 6502 is alot more limited than 65816.
Thanks for letting me know!

First things first: I don't have any retro consoles except for a N64 (and I heard coding for that is a nightmare) and a wii/wii u ( (If those are even considered retro). I just felt like giving myself a challenge trying to learn how to program an old console with a bunch of limitations. Second, have you ever seen a compiler for the snes, or even the n64, to make it easier? It seems possible. Anyway, I might transfer over to GBA or Genisis (Im not a sega person, so most likely the GBA), so thanks for telling me about that!
This is more of a technical question.

I am trying to make a Macro, and in that macro I am trying to branch somewhere. I can't use a label like "Start:" or "End:" because that just ends up being duplicated every macro, and it won't let me do that.

I need to branch backwards, and I know that the first bit of the branch instruction normally makes the branch positive (0) or negative (1). So, logically if I need to branch (in this scenario) 111 bytes (01101111) backwards, I would put in "bra $EF" (11101111).

But, what continues to happen to me is that as long as that branch instruction is $80 or above (10000000), then it gives me the error "INPUT_NUMBER: Out of 8bit range.", even though when I use the Labels mentioned before and look through a debugger, it is perfectly fine with using numbers over 80.

Could someone help me figure out why this does this?

Thank you in advance!

P.S. I use the wla_dx assembler and Geiger's SNES9x Debugger
I actually can help you with this! So the issue is that you are using the opcode "bra" which is a branch to an address up to 127 spaces away, as it uses 8 bits as you mentioned. If you wish to branch to any code in the bank (up to 16 bits), you have to change it to brl (branch long). I hope this helps!

P.S. If you wanna chat about your project, I would love to hear about it!
Need help with ASM? Hit me up, I am always happy to help any way I can!
  • Pages:
  • 1
  • 2