I appreciate the feedback. I won't post everything in detail but for now...
Originally posted by yoshifanatic2). You ought to convert every RAM address into a define so that all RAM addresses can be remapped. Also, certain other things in the code could be replaced with defines as well, such as sound effect numbers.
The update sitting on my desktop has every single ram address, aside from SMW's palette/image table defined. It also has structs/enums created. Definitions for the sound effects, button presses, sprite ID's, etc. etc. are planned as well.
Originally posted by KaijyuuIsn't asar more or less SMW specific? Despite this being a SMW disassembly, I still value portability. That said, I can't recommend what assembler to use, as I'm not at all versed on their strengths and weaknesses.
Xkas was 100% neutral, then asar changed a couple small things to optimize it for smw. But asar is still homebrew capable.
Originally posted by Horrowind
I like the idea! Nonetheless in my current update I have a command line tool that can extract most of SMW's data since FuSoYa wouldn't add the option in LM. It can extract level data, overworld data, sprite lists, and RATS tag all from a ROM.
Originally posted by Hamtaro1264: as I said, WLA code is proven to be a bad SPC700 assembler, specifically, and also has a few other minor problems...
I agree that WLA's SPC assembler isn't the best. But nonetheless it works and assembles an identical rom. I tried many different assemblers, and technically CA65 would be the best but I liked the simple design of WLA more.
WLA? WHY??
Whenever I release the update, I'll go into full detail but in short here are some things i liked about it:
- Enumeration/structures for RAM (C/C++ people know this!)
- Library support (e.g. ditch patches and standardize code for everyone)
- Sectioning of code possible (pick and choose location)
- Makefile support (ohhhhh boy!)
- More well known, tutorials and examples written in WLA around the internet (SNES dev wiki)
- More portable/standard. WLA tends to look more like ANSI-C.
- More versatile macro commands. One can create table generating macros!
- Ability to specify the SNES header and memory map
- Ability to read specific data from an .INCBIN'd file. That is, writing GFX files across banks.
- (Asar needs this badly) Ability to do something based on user input. See below for example.
- Last but not least, WLA's definition system is more universal and versatile. You don't have to put an exclamation mark every time you need to reference a definition. Also, it allows you to redefine/undefine which is VERY useful. Especially in macros!!!
Code.DEFINE MySpriteXSpeed 34
.PRINTT "Do you want to change the sprite speed? 0 for no"
.INPUT BOOL_SPEED
.IF BOOL_SPEED != 0
.REDEFINE MySpriteXSpeed BOOL_SPEED
.ENDIF
Super Mario World Source Code