don't click here

Dr. Robotnik's Mean Bean Machine Disassembly

Discussion in 'Engineering & Reverse Engineering' started by RadioTails, Oct 20, 2021.

  1. RadioTails

    RadioTails

    Member
    29
    16
    3
    Just to mention that Neto actually released his own Dr. Robotnik's Mean Bean Machine Disassembly this year. While that one is impressive:
    - I'm not a fan of how the disassembly is laid out.
    - It uses Snasm68K instead of Asm68k, which means it only works on 32-bit machines (although I did convert it myself)
    However, some of the data has been labelled better, which I have used in this disassembly.

    Anyway, back last year, Ralakimus contacted me that he was working on a Dr. Robotnik's Mean Bean Machine Disassembly and shared what he was working on. Ralakimus sadly can't work on it any more, so I'm going to carry on with improving it and will report any findings.

    I have uploaded a current version to GitHub: https://github.com/radioshadow/Dr-Robotnik-Mean-Bean-Machine-Disassembly
    You can compile the rom, and making changes is very easy. Just beware that there is some data that is currently unknown.

    The settings.asm allows you to make some quick changes:
    - Puyo Art uses Nemesis Compression (big hanks to Neto for the Puyo Compile decompressor)
    - Region free the rom (will run in PAL, but only music is optimized)
    - Change how the region lock works.
    - Change how the checksum works.

    Now the main loop code is located at: game > bytecode_game.asm
    What's interesting about this part is it uses byte-codes instead of 68000 code (a list can be found here: https://info.sonicretro.org/Dr._Robotnik's_Mean_Bean_Machine/Technical_information#Bytecode). I will produce a list on want to enter for each code. It's also possible to add your own.

    At around hex 3316, I found this data that controls the frames that Has Bean uses (the size of the sprites is stored separately).
     
  2. RadioTails

    RadioTails

    Member
    29
    16
    3
    Merry Christmas everyone! Have an update!

    List of some of the changes:
    - Sound files have been organized, along with some notes. I do know where the effects sounds are stored, I just need to separate them.
    - All the fix palettes have names. Some of left over from Puyo Puyo.
    - Engima files are now stored as separate files.
    - Started to organize the subroutine code.
    - Made some notes on AI.
    - In the settings.asm file:
    • Use a faster Nemesis decompression by vladikcomper & carljr17
    • Use 4 letter names for the opponent during battle (like Puyo)
    • Each mode/opponent can use a custom board.
    • During the Demo, you can set opponent/opponent is random.
    I'm having a break from updating this, but I will carry on in January 2022. I plan on adding support to SonicPLN (https://sonicresearch.org/community/index.php?threads/sonpln.5734/) so we can easily edit the backgrounds. I'm hoping MainMemory can add support to load uncompressed mappings, which some art like the Battle Boards use.