øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;area=showposts;sa=messages;u=46e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index6b5a-2.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;u=46e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index6b5a-2.html.zxM‚h^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ`¼ez8OKtext/htmlISO-8859-1gzip@øÕz8ÿÿÿÿÿÿÿÿWed, 11 Mar 2020 06:33:10 GMT0ó°° ®0®P®€§²ð®M‚h^•z8 Show Posts - MathOnNapkins

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - MathOnNapkins

Pages: 1
1
A considerable percentage of the assembly was done by hand (idk, 25%? ). When I started to realize just how much code there was I wrote a utility called SnesDisasm that automated it to a large degree within the context of one subroutine. You write in a lower and upper bound for what you think is a subroutine (or subroutine with multiple entry points) with some initial guesses as to MX flag state and it tries to analyze whether it's a closure of sorts. Still fairly tedious but a few order of magnitudes faster and far more accurate. Sadly I still locate errors that were obviously the result of transcribing what I saw from a hex editor at 7 hours past bed time. If there's an error in that utility I suppose I could pull out the code, compile it, and see if the error is reproduced. However, the ASL, LSR, ROL, ROR, etc #{quantity} syntax is an xkas-ism. Thus, if there were errors on lines like that they were likely a hand edit done later anyway in the name of horizontal code golf.

A goal I had for a long time and still have is an assembler that takes my disassembly as input and validates that it produces the same binary as the vanilla rom. Just haven't gotten around to that for a variety of reasons. It would accept things like ADD, SUB, which are pseudo-instructions. I don't feel that this obscures the semantics at all, as long as there's no branch target between the CLC and the ADC, for example. pseudo instructions are quite common in assemblers in the broader industry. I have a heavily modified version of xkas that is WIP that was supposed to do this, btw.

Btw I'm on the Discord below regularly in #alttp-hacking if you need live Chat Support with a Friendly Representative:
https://discord.gg/FF4T4A


Pages: 1