cvghivebrain / s1disasm

Sonic the Hedgehog (Mega Drive) Hivebrain 2022 disassembly
45 stars 8 forks source link

Github Actions to verify bit-perfectness? #14

Closed Awuwunya closed 3 years ago

Awuwunya commented 3 years ago

as I assume the goal is still to keep bit-perfectness intact, why not introduce Github actions to check for that automatically? I can give it a shot to create a script for this (although I can't create the workflow myself), that would basically just give a little checkmark or x icon next to each commit to make sure bit-perfectness works. This should be fairly easy to setup with minimal changes to the actual disassembly itself as well, given it can just run the assembler natively, and compare outputs to the rev00 and rev01 ROMs. This should help make sure that all commits are still bit-perfect. This would probably also be only a check, rather than directly rejecting commits based on the result.

The only caveat I can see, that sometimes gha is a little flakey, so there may be false negatives from time to time. It's easy to check if it failed, and I don't expect it to do so very often.

cvghivebrain commented 3 years ago

Sounds good. Does Github actually run the exe in s1disasm, or does it run its own assembler?

Awuwunya commented 3 years ago

you can configure it to run commands essentially, anything you desire. It's almost like a VM environment, but the return value of scripts or programs is used to determine if it was successful. There are some caveats of course and I'll have to actually look into that, but in theory it will work and use the same programs as any other user, probably with a modified script to enable full automation

Awuwunya commented 3 years ago

Implemented this in #18, just needs to be tested in production