Name: | SMW Central's ASM Workshop 2019 - Compiled Lessons |
Authors: | AuraDee, Blind Devil, Erik, Major Flare, MarioFanGamer, Telinc1, Thomas |
Added: | |
Platforms: | SNES |
Games: | SMW |
Type: | Tutorial |
Language: | English |
Description: | This is a compilation of all lessons taught in the ASM Workshop 2019, hosted in SMW Central's Discord starting on June 28th. Teachers: 1. Basic Lessons: - Major Flare - Meirdent - Blind Devil 2. Basic-Intermediate Lessons: - Major Flare - Meirdent - Erik 3. Intermediate-Advanced Lessons: - Erik - Thomas 4. Advanced Lessons: - MarioFanGamer - Telinc1 - Thomas Compilation done by me, Major Flare. Currently, this is only a draft from the workshop. I plan to enhance this document on a later date. |
Tags: | asm asm workshop tutorial |
Comments: | 10 (jump to comments) |
Rating: |
Download
1.19 MiB | 1,946 downloads
Comments (10)
REP #$30 ; set A/X/Y to 16-bit mode 2 LDA #$0010 ; size = 0x10 bytes LDX #$8010 ; source = $xx8010 LDY #$2000 ; dest = $xx2000 MVN $007E ; initiate transfer from $008010 -> $7E2000 SEP #$30 ; send A/X/Y back to 8-bit mode
is incorrect. This will transfer 0x11 bytes, from $8010-$8020 (not $8010-801F) to $2000-$2010 (not $2000-$200F).
This is because most numbers start at 0 when dealing with things like indexing (like 0-based numbering), for tables, for example have 2 bytes, their indexes aren't 1 and 2, but rather 0 and 1. With 16-bit numbers, multiply them by 2 (0*2=0 and 1*2=2).
It was a parallel work by MFG; I did not, at the time, request permission from him to integrate those particular lessons.
In my personal and honest opinion, this document isn't terribly well suited for teaching a beginner from scratch. It makes for an excellent companion document to reinforce lessons learned from elsewhere, but many of the the earlier lessons tend to move very quickly and/or broach intermediate concepts like addressing modes and processor flags with the promise of "to be described later." And to be perfectly fair they are, and their mention makes sense as they are core concepts, but their early introduction in the asides gets to be confusing for someone who just learned what CMP is.
Where I feel this document truly shines is in reinforcing intermediate concepts, and helping intermediate-level coders start to understand and master the advanced topics. The coverage of stack manipulation and (H)DMA, the in-depth look into memory mapping and screen rendering, many higher-level topics are laid out very comprehensively (there are some neat tools and visual aids linked in the document, too).
Be aware that in many respects this document is still a transcript of the workshop itself - there are instances of exercises without answers, or other minor oddities that reflect the relatively extemporaneous nature of a live presentation. I could only find two outright technical errors in the document - the HDMA example code on Page 107 contains an unnecessary REP #$20, and Page 122 incorrectly claims that 4 NOPs is equivalent to 16 cycles (which would be 8 NOPs).